diff --git a/examples/cesium/index.html b/examples/cesium/index.html index 0e7ac5ea5..8184f188c 100644 --- a/examples/cesium/index.html +++ b/examples/cesium/index.html @@ -13,8 +13,8 @@ - - + + diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_0.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_0.json new file mode 100644 index 000000000..0dbf15782 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_0.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":0,"numberOfSamples":1000,"samples":[-0.002403025022753476,-2.5083047211757836e-5,-1.721638967214743e-8,-0.002402558217007106,-2.5020003017226545e-5,-1.7146589882925253e-8,-0.002402152743739069,-2.4908815008776256e-5,-1.7018183343380784e-8,-0.0024018177616850914,-2.4779340864272868e-5,-1.686693112266686e-8,-0.0024015512294922256,-2.4661265859267777e-5,-1.672851429567895e-8,-0.0024013415089134365,-2.4580601237402673e-5,-1.6634308307010567e-8,-0.0024011692853140917,-2.4557354638250633e-5,-1.660856911234815e-8,-0.0024010094083213077,-2.460379520847823e-5,-1.666634004388421e-8,-0.002400832781870665,-2.472274606391698e-5,-1.681138635859172e-8,-0.0024006088674261195,-2.490565851910724e-5,-1.7033840158805374e-8,-0.0024003096414815053,-2.513083477542098e-5,-1.7307985763326293e-8,-0.002399915678730765,-2.5363106308028472e-5,-1.759177707540246e-8,-0.0023994239684226163,-2.5557205638682287e-5,-1.7830822072448312e-8,-0.0023988549431304905,-2.566700881355288e-5,-1.7969488578482e-8,-0.0023982538707374547,-2.5660422954022525e-5,-1.7968844164137065e-8,-0.002397681821948537,-2.553480284678542e-5,-1.7825226886235993e-8,-0.0023971964165357008,-2.53237668313255e-5,-1.7578462540315414e-8,-0.002396830441918346,-2.50885777844268e-5,-1.7301586465142487e-8,-0.0023965800106651434,-2.4896546614298096e-5,-1.7075078798371497e-8,-0.0023964084361551537,-2.4797687943490375e-5,-1.695902560230991e-8,-0.002396262002993096,-2.481096708533641e-5,-1.6976666372280337e-8,-0.0023960882393536166,-2.4923817586803518e-5,-1.7113670694608337e-8,-0.002395849219877066,-2.5101106375207836e-5,-1.732863106912266e-8,-0.002395527525579831,-2.5297461255455714e-5,-1.756761197379987e-8,-0.0023951260596151974,-2.546854998291281e-5,-1.7777564319951067e-8,-0.0023946640036132836,-2.5579325396643004e-5,-1.7916241394922998e-8,-0.0023941708783994835,-2.5608875350224024e-5,-1.7958135357141878e-8,-0.0023936800199459637,-2.5552141704174967e-5,-1.7896681829365477e-8,-0.00239322243029576,-2.5418865388500117e-5,-1.774311016303839e-8,-0.0023928218677541743,-2.5230314934074022e-5,-1.7522587181791123e-8,-0.0023924917832175113,-2.5014690159013176e-5,-1.7268730448048223e-8,-0.0023922342643846748,-2.480218762163173e-5,-1.7017686942652696e-8,-0.0023920407464684762,-2.4620565317509125e-5,-1.6802798466007283e-8,-0.0023918939307276768,-2.4491771693316273e-5,-1.6650542584010726e-8,-0.0023917702332855676,-2.442975015807349e-5,-1.6577888357278284e-8,-0.002391642329452238,-2.443909807420655e-5,-1.6590679729922046e-8,-0.002391481763245852,-2.4514179502452957e-5,-1.6682551340715887e-8,-0.0023912619080620466,-2.4638499724969643e-5,-1.6834129065335303e-8,-0.002390961805205984,-2.478455800610903e-5,-1.701276797456279e-8,-0.00239057134744484,-2.4915132198915024e-5,-1.717399678816932e-8,-0.0023900974268101054,-2.4987729973603072e-5,-1.7266795508165544e-8,-0.0023895689055318833,-2.496391501976109e-5,-1.7244787681999786e-8,-0.002389036165074365,-2.4823284691699932e-5,-1.7083063873624844e-8,-0.002388560578292379,-2.4577378315217863e-5,-1.6794918110509053e-8,-0.0023881937570601162,-2.4274142413621198e-5,-1.643724545979219e-8,-0.0023879553394346147,-2.3985163329236852e-5,-1.6095335313882396e-8,-0.002387823242597225,-2.3778727505381422e-5,-1.5850778179207802e-8,-0.002387743703083488,-2.3693514905278695e-5,-1.575012576846581e-8,-0.002387654469699301,-2.3727803248252375e-5,-1.57919573836453e-8,-0.0023875068224310926,-2.384701163322787e-5,-1.5935693828749185e-8,-0.0023872766838733636,-2.4000872036063545e-5,-1.6121849968027748e-8,-0.0023869645383715133,-2.4139837531397063e-5,-1.6291451853276617e-8,-0.0023865890688437295,-2.4225578577636494e-5,-1.6398545934918142e-8,-0.002386179207668243,-2.4235415814278647e-5,-1.641560182566368e-8,-0.0023857671367677994,-2.4162608465253676e-5,-1.633403013000638e-8,-0.00238538293231372,-2.4014446579879058e-5,-1.6162059832962554e-8,-0.002385050648932289,-2.3809267842749758e-5,-1.5921265822080736e-8,-0.0023847856192039767,-2.357281279621325e-5,-1.564223465313254e-8,-0.002384592973846085,-2.333418942320294e-5,-1.5359717819261274e-8,-0.0023844674152753756,-2.3121781930974167e-5,-1.5107704928910368e-8,-0.0023843942234786524,-2.2959461734624766e-5,-1.491486592392592e-8,-0.002384351361188566,-2.2863520256191973e-5,-1.4800873864748202e-8,-0.0023843123252193354,-2.28406536006252e-5,-1.4773996666932113e-8,-0.0023842493365599203,-2.2887020091128393e-5,-1.4829969279080835e-8,-0.0023841366567967904,-2.2988230871289267e-5,-1.4951960812478233e-8,-0.0023839539952364617,-2.312021069380629e-5,-1.5111546301631272e-8,-0.00238369008534005,-2.3251022890859802e-5,-1.527079819049034e-8,-0.0023833464925758774,-2.3344139544444378e-5,-1.5386101234343148e-8,-0.002382941139623567,-2.336411463944466e-5,-1.5414884137776942e-8,-0.002382509826925251,-2.328539769468119e-5,-1.532618136616557e-8,-0.0023821027927208825,-2.3103440347943915e-5,-1.5114003628255345e-8,-0.002381773349088804,-2.284408291453904e-5,-1.4808671898883374e-8,-0.0023815590512039917,-2.2563826220574735e-5,-1.4477243667166011e-8,-0.002381463086871345,-2.233471929550198e-5,-1.4205559558666824e-8,-0.0023814485095478804,-2.221697578834785e-5,-1.4065641166745777e-8,-0.002381452228381859,-2.2233998994991225e-5,-1.4085907881538568e-8,-0.002381411455037569,-2.2365307161191684e-5,-1.424262147988882e-8,-0.0023812864408547367,-2.2559894107652725e-5,-1.447559680357265e-8,-0.002381068549780454,-2.2758766135733266e-5,-1.4714854003566721e-8,-0.0023807747559344136,-2.291337561706086e-5,-1.4902487127724783e-8,-0.002380436370789755,-2.2994297064707167e-5,-1.5003052078078702e-8,-0.0023800885646524635,-2.299177707261808e-5,-1.5004382649226507e-8,-0.00237976327801646,-2.291211671228343e-5,-1.4913466509235396e-8,-0.0023794853741548514,-2.277298527889861e-5,-1.4750994633350504e-8,-0.0023792708581126575,-2.2599122259547465e-5,-1.4546281765613793e-8,-0.0023791261518308006,-2.241861685502684e-5,-1.4332799297124966e-8,-0.002379048025038435,-2.2259517123002332e-5,-1.4144070736454437e-8,-0.002379024159088545,-2.214660348294054e-5,-1.4009774292460906e-8,-0.0023790344674725033,-2.209831973031592e-5,-1.395206580492697e-8,-0.0023790533562057336,-2.2124111902023713e-5,-1.3982415286808531e-8,-0.002379052917494198,-2.222265873839312e-5,-1.4099513692685225e-8,-0.0023790067355613062,-2.238139064397462e-5,-1.428869841454831e-8,-0.002378893869389061,-2.257747476862916e-5,-1.4523091866730754e-8,-0.002378702581053121,-2.2780337278386994e-5,-1.476653436627111e-8,-0.002378433361551305,-2.2955662245878917e-5,-1.4978254730954575e-8,-0.002378100828725866,-2.3070719458652143e-5,-1.511914018072533e-8,-0.0023777339193535064,-2.310095367991105e-5,-1.515956714522654e-8,-0.0023773732909614727,-2.303748192499462e-5,-1.5088399696609955e-8,-0.0023770645160716658,-2.2893966475516838e-5,-1.492131520640025e-8,-0.002376846389675512,-2.2709585344523315e-5,-1.4704506770614907e-8,-0.0023767362857042957,-2.2543662682762967e-5,-1.4508420483594385e-8,-0.0023767187552697256,-2.2459283627088534e-5,-1.4408307234147157e-8,-0.0023767459611238515,-2.2499820209175073e-5,-1.445625065299755e-8,-0.0023767538670920077,-2.2670163085399482e-5,-1.4658709621930782e-8,-0.0023766872411040843,-2.2934727415897178e-5,-1.4973964372283597e-8,-0.0023765193201164465,-2.323369224805631e-5,-1.5331258141108677e-8,-0.0023762563410213845,-2.350669143427009e-5,-1.5658866089500266e-8,-0.002375928430938125,-2.371079089789632e-5,-1.5905466616878e-8,-0.0023755754730009244,-2.382701217823089e-5,-1.6047996748580552e-8,-0.0023752354105984904,-2.3857755177899014e-5,-1.6088754695381856e-8,-0.002374937643938984,-2.3820288416794153e-5,-1.6047823960984603e-8,-0.002374700710601401,-2.3740166302795695e-5,-1.5955340321399732e-8,-0.0023745323579410426,-2.364615831678585e-5,-1.584546360315411e-8,-0.002374430478790293,-2.356666639934087e-5,-1.575205426032653e-8,-0.002374384221762089,-2.352701024171114e-5,-1.57053729084508e-8,-0.0023743752258978223,-2.3547031862098734e-5,-1.572919102890182e-8,-0.0023743792463522813,-2.3638741087943782e-5,-1.5837991897107692e-8,-0.002374368580960303,-2.380412406762251e-5,-1.60343866710735e-8,-0.002374315566041234,-2.403369636554169e-5,-1.6307405665562255e-8,-0.0023741969508027684,-2.4306554286211768E-05,-1.663253558578559e-8,-0.0023739984897390765,-2.4592488041431972e-5,-1.6974166769903272e-8,-0.0023737187937815855,-2.485635257581502e-5,-1.729069822860392e-8,-0.0023733713634909127,-2.506433547134887e-5,-1.75419012861819e-8,-0.002372983923689407,-2.5191127286277645e-5,-1.769739737193478e-8,-0.002372594652471399,-2.5226659292504724e-5,-1.774469317666995e-8,-0.0023722453489884105,-2.518097690876975e-5,-1.7695084665231785e-8,-0.0023719720500917853,-2.508558541252764e-5,-1.758542950683843e-8,-0.0023717945137316262,-2.4989429346639012e-5,-1.7473550411127092e-8,-0.002371707467356645,-2.494832237534192e-5,-1.7425795584798645e-8,-0.002371677894372136,-2.5008867215187453e-5,-1.7497939205762146e-8,-0.0023716521953735695,-2.519167607485704e-5,-1.7715125311405072e-8,-0.002371573067713854,-2.548183725590846e-5,-1.8060341886620035e-8,-0.0023713996123746663,-2.5833052724984733e-5,-1.8479137373701417e-8,-0.002371120733790304,-2.6184543627960917e-5,-1.8899572452170946e-8,-0.002370755545988175,-2.6481976563885553e-5,-1.925703522704526e-8,-0.0023703426289241364,-2.6692240399045317e-5,-1.951183288718046e-8,-0.002369925545652223,-2.6807480392539526e-5,-1.9654094044252732e-8,-0.0023695414256623836,-2.6840554567015164e-5,-1.969852847864199e-8,-0.0023692152111846727,-2.681698378371743e-5,-1.9675010651785046e-8,-0.0023689586030738027,-2.676742403134865e-5,-1.961971546979294e-8,-0.002368771517557994,-2.672230169153053e-5,-1.9568738474777108e-8,-0.0023686442754798733,-2.6708491821190418e-5,-1.9554090992955217e-8,-0.0023685596467347297,-2.6747237733667733e-5,-1.960116950419851e-8,-0.0023684946354959537,-2.68525198499682e-5,-1.97267938434712e-8,-0.002368422377939945,-2.7029396546161804e-5,-1.9937245693158044e-8,-0.002368314731930507,-2.7272358283705946e-5,-2.0226327583010683e-8,-0.002368145999280894,-2.7564325967266348e-5,-2.0574158419038293e-8,-0.0023678977178564387,-2.7877297359742607e-5,-2.0947880438817348e-8,-0.002367563716932125,-2.8175607003251493e-5,-2.13054362009557e-8,-0.0023671538835179904,-2.842219417818171e-5,-2.1602912348808545e-8,-0.0023666947656918185,-2.8587099112517685e-5,-2.1804557557978034e-8,-0.002366225711058261,-2.865603679897383e-5,-2.1892948933762033e-8,-0.0023657906850576426,-2.8636207775475263e-5,-2.1875955583981355e-8,-0.0023654275601418958,-2.855700316341736e-5,-2.178772414823076e-8,-0.0023651577407058874,-2.8464659629023123e-5,-2.168254086275059e-8,-0.002364979157822262,-2.8411626526095733e-5,-2.162241058543541e-8,-0.0023648650418965824,-2.8442979454826838e-5,-2.166103733977592e-8,-0.0023647696710966484,-2.858341235909699e-5,-2.182833892955203e-8,-0.0023646404647817425,-2.8828964162584613e-5,-2.2120438590644107e-8,-0.002364433315624853,-2.9147094222646294e-5,-2.2499504905555506e-8,-0.0023641258489594833,-2.9486173871872614e-5,-2.2904806040155516e-8,-0.0023637232753826293,-2.979130710829397e-5,-2.3271375506734424e-8,-0.0023632546433513643,-3.0020135017275484e-5,-2.3548762139194928e-8,-0.002362761919778162,-3.0152532930312014e-5,-2.371261331000258e-8,-0.002362287259213515,-3.019176737033716e-5,-2.3766181246292998e-8,-0.002361863354709199,-3.015895406508579e-5,-2.3733906423839642e-8,-0.0023615089325091636,-3.0084812691876054e-5,-2.3651770841389847e-8,-0.00236122863993826,-3.0002168291456246e-5,-2.355846990290136e-8,-0.002361015342081342,-2.9940748794497447e-5,-2.3489231721847384e-8,-0.002360853090462664,-2.99242064708113e-5,-2.347223119682423e-8,-0.0023607198261957722,-2.9968579872684983e-5,-2.352671480071416e-8,-0.0023605896206938806,-3.008134175253829e-5,-2.3661849584525067e-8,-0.002360434817332799,-3.0260449420114613e-5,-2.3875596082544623e-8,-0.002360228724551759,-3.049336232044938e-5,-2.4153533560309604e-8,-0.002359949398259028,-3.0756647438100245e-5,-2.4468344706144205e-8,-0.0023595845450922696,-3.1017291850921676e-5,-2.4781284325725616e-8,-0.0023591366902662777,-3.1236974924948935e-5,-2.5047141991886597e-8,-0.0023586265980894577,-3.1379935910133564e-5,-2.5223485405296768e-8,-0.0023580922330621156,-3.1423318194842274e-5,-2.5282880705071384e-8,-0.002357581446433621,-3.136654245445751e-5,-2.5224014627911062e-8,-0.0023571393504713037,-3.123511772789739e-5,-2.507629936540768e-8,-0.0023567945569627356,-3.107585378526121e-5,-2.4894381030997065e-8,-0.002356549808293787,-3.094425143746427e-5,-2.474345004782824e-8,-0.0023563808398743354,-3.088856588907149e-5,-2.468058353057825e-8,-0.002356243673347264,-3.093631165990455e-5,-2.473883210055294e-8,-0.0023560873309623623,-3.108742146766624e-5,-2.491898425872327e-8,-0.002355867681615853,-3.131543790559243e-5,-2.5190695953120915e-8,-0.0023555585115042363,-3.157564626292947e-5,-2.5501820575724358e-8,-0.0023551570793018816,-3.1817414987353845e-5,-2.5792819079502532e-8,-0.0023546830395721335,-3.199708556138092e-5,-2.601196397786125e-8,-0.0023541715928763573,-3.2087761735616844e-5,-2.612699814404651e-8,-0.0023536634728575476,-3.208356074308803e-5,-2.6130313106072467e-8,-0.002353195112875602,-3.199796079202877e-5,-2.6037164980856268e-8,-0.0023527917127598285,-3.185788963483199e-5,-2.5878832104811108e-8,-0.0023524643421163408,-3.1696231806253835e-5,-2.569384848742031e-8,-0.002352210558042157,-3.15451429795799e-5,-2.5520122001298037e-8,-0.002352017095867703,-3.1431404225224024e-5,-2.5389404645823923e-8,-0.0023518632011028735,-3.137387309610943e-5,-2.532421829510982e-8,-0.0023517237164243985,-3.138241693585632e-5,-2.5336544634470662e-8,-0.0023515716747720653,-3.1457557889187125e-5,-2.542738407693742e-8,-0.002351380666688492,-3.159026777706401e-5,-2.5586503563180176e-8,-0.002351127544409854,-3.1761819323126654e-5,-2.5792232842799336e-8,-0.002350795997438297,-3.194420346482523e-5,-2.601189004377488e-8,-0.00235038109753939,-3.210218902073709e-5,-2.620411988036901e-8,-0.0023498939766626002,-3.2198362784118887e-5,-2.6324761207664516e-8,-0.002349364441336059,-3.2201906185988056e-5,-2.6337171516754927e-8,-0.002348838300113838,-3.2099820884316304e-5,-2.622549250364978e-8,-0.002348367104865175,-3.1906193387378433E-05,-2.6005638953133388e-8,-0.002347991928908947,-3.16632964565759e-5,-2.572670334096174e-8,-0.0023477278385863123,-3.1430895046698076e-5,-2.5458524871709287e-8,-0.0023475573302447783,-3.1266834683295797e-5,-2.526903432937616e-8,-0.0023474365947856223,-3.1207840834265524e-5,-2.5201788974958383e-8,-0.0023473111312674834,-3.125926073193481e-5,-2.5263855985966862e-8,-0.0023471329217680113,-3.139668630853095e-5,-2.5427484190962568e-8,-0.0023468725828316842,-3.157629805487812e-5,-2.564195034641037e-8,-0.00234652400711633,-3.174838223286182e-5,-2.5849203831761563e-8,-0.0023461023891960834,-3.1869477830964374e-5,-2.5998061315297644e-8,-0.0023456379459007243,-3.191071358278629e-5,-2.6054089874945166e-8,-0.002345167714297938,-3.1861618822297345e-5,-2.6004274687434745e-8,-0.0023447273964050676,-3.1729710102991125e-5,-2.5856743363241975e-8,-0.0023443447623778383,-3.15367263237694e-5,-2.5636504725218675e-8,-0.002344035611415732,-3.1312828941514695e-5,-2.5378716588854288e-8,-0.0023438025868741026,-3.1090321324122036e-5,-2.5121307043493483e-8,-0.002343636419494298,-3.0898215687290654e-5,-2.4898533605619872e-8,-0.0023435187346924568,-3.075840762917019e-5,-2.473640851696107e-8,-0.002343425470101371,-3.06836209512552e-5,-2.4650217468068794e-8,-0.002343330156203922,-3.067678824239108e-5,-2.46437581014699e-8,-0.0023432067557343844,-3.0731268964403044e-5,-2.4709591242115973e-8,-0.002343032205144756,-3.083142896996042e-5,-2.482971769728214e-8,-0.0023427890317182145,-3.09534849684997e-5,-2.4976536733214626e-8,-0.002342468429998982,-3.1066960867543575e-5,-2.5114480866863458e-8,-0.0023420738829506476,-3.113759753821509e-5,-2.520334251191813e-8,-0.0023416245655075696,-3.113286617338482e-5,-2.5204692814982757e-8,-0.002341156456037676,-3.1030702451985074e-5,-2.5092155875587517e-8,-0.0023407180452088712,-3.083007768640861e-5,-2.4863906224778936e-8,-0.0023403583393829482,-3.055874873840108e-5,-2.4551880478986413e-8,-0.002340109110049135,-3.027131810595971e-5,-2.421961909495806e-8,-0.0023399695530012623,-3.0033690127916367e-5,-2.394416454197952e-8,-0.0023399035996637175,-2.9898874983898596e-5,-2.378781857784365e-8,-0.0023398534173924984,-2.9886919236503446e-5,-2.3774659522504135e-8,-0.002339761711113448,-2.9979953784273124e-5,-2.388461211409085e-8,-0.0023395905205925225,-3.0132912884441697e-5,-2.4065731184666787e-8,-0.002339328969507674,-3.0291463113513845e-5,-2.4254908440399182e-8,-0.0023389905263682936,-3.0407909014329455e-5,-2.439632805788379e-8,-0.002338604647812188,-3.0450610353352113e-5,-2.4452510933726005e-8,-0.002338207386718835,-3.0406942615971795e-5,-2.4407957962391716e-8,-0.002337833512955816,-3.0281802581374335e-5,-2.4267646192649814e-8,-0.002337510916804099,-3.009374007485284e-5,-2.405271127085375e-8,-0.00233725717872705,-2.9870050109659613e-5,-2.379481298482102e-8,-0.0023370780896862574,-2.96415499392353e-5,-2.3530020163429226e-8,-0.0023369679571642664,-2.943765111817507e-5,-2.3292964938693384e-8,-0.002336911380731853,-2.928228272071026e-5,-2.311196745938867e-8,-0.0023368860519105425,-2.9191004014698512e-5,-2.3005572673000774e-8,-0.0023368660995786595,-2.9169474421886248e-5,-2.2980719814710166e-8,-0.002336825467155114,-2.921325593941368e-5,-2.3032512896595408e-8,-0.0023367409423963475,-2.9308629309781252e-5,-2.3145193486284356e-8,-0.002336594789812839,-2.94340434461076e-5,-2.329383537317645e-8,-0.002336377141683103,-2.9562078747041886e-5,-2.3446595994696407e-8,-0.0023360882937399465,-2.9662099579462933e-5,-2.3567732219797592e-8,-0.0023357408585416017,-2.9704065354320472e-5,-2.36219691020052e-8,-0.0023353611169372288,-2.9664178807460198e-5,-2.3581074777115405e-8,-0.002334987901996926,-2.953256184083392e-5,-2.3432902238347995e-8,-0.002334666656879615,-2.9321444023828176e-5,-2.3191111499019182e-8,-0.002334437144125591,-2.906967526378198e-5,-2.2900614292587276e-8,-0.0023343170286952335,-2.8837540628692366e-5,-2.263164135915559e-8,-0.002334289377364724,-2.868863915936848e-5,-2.245863079739621e-8,-0.0023343042731189534,-2.8664576401788524e-5,-2.243065985991554e-8,-0.002334297427240077,-2.8766728884431434e-5,-2.2550060161150142e-8,-0.00233421602436304,-2.8956937999179782e-5,-2.277304822604038e-8,-0.0023340366493231914,-2.9175695277364925e-5,-2.3030723691705274e-8,-0.0023337675567428337,-2.9365148437702835e-5,-2.325572494540632e-8,-0.002333439019167699,-2.948499872544599e-5,-2.3400714149062195e-8,-0.002333090235900311,-2.9517803647735512e-5,-2.3444668908795366e-8,-0.002332758701346869,-2.9466638538369463e-5,-2.3390385484474364e-8,-0.0023324738052357035,-2.934937562502968e-5,-2.3258055105401835e-8,-0.0023322540424882687,-2.919255582833955e-5,-2.3078281732160556e-8,-0.0023321064600515273,-2.902614663617285e-5,-2.2885999487207492e-8,-0.002332027286009202,-2.8879263050207602e-5,-2.271540058262342e-8,-0.0023320033619865835,-2.877662704188809e-5,-2.259567613496163e-8,-0.002332014289946477,-2.873576097567269e-5,-2.2547631244607782e-8,-0.002332035177135321,-2.8765014379972653e-5,-2.2581326280258576e-8,-0.0023320398449503863,-2.8862571973660708e-5,-2.2694919143851268e-8,-0.0023320042471653172,-2.9016654866027363e-5,-2.287492871831799e-8,-0.0023319096779583115,-2.9206946607571382e-5,-2.3097917898279694e-8,-0.002331745434296553,-2.940702053860624e-5,-2.333330260051453e-8,-0.0023315107913132412,-2.9587554741398894e-5,-2.354703004535643e-8,-0.002331216183994399,-2.9720241445388588e-5,-2.370604059396504e-8,-0.0023308833968589734,-2.9782371874826208e-5,-2.378354402409868e-8,-0.0023305442821816677,-2.976211745161164e-5,-2.376519028712881e-8,-0.002330237019842478,-2.9664138028036154e-5,-2.3655730605611676e-8,-0.002329998741183291,-2.9513937315933643e-5,-2.3484296706424633e-8,-0.0023298543227104943,-2.935776247905231e-5,-2.3304483190610554e-8,-0.0023298039688696283,-2.9254146272590037e-5,-2.3184600111912306e-8,-0.0023298161627486316,-2.9255771124284795e-5,-2.3186513526067538e-8,-0.002329833717182933,-2.9387407680729007e-5,-2.3339799540173714e-8,-0.00232979429485865,-2.963251445919433e-5,-2.3625939095795707e-8,-0.0023296555485235837,-2.993876684354111e-5,-2.3984573422930422e-8,-0.002329410031430962,-3.0240089226068864e-5,-2.433902191722381e-8,-0.002329082684861528,-3.048133910260082e-5,-2.4624941076546366e-8,-0.002328716252266335,-3.063272313348873e-5,-2.4807118980201846e-8,-0.0023283552432151315,-3.0691090518933916e-5,-2.4881121231374615e-8,-0.002328035235814446,-3.067316204035687e-5,-2.486564617259907e-8,-0.002327778453652459,-3.060672619689269e-5,-2.4792504271784795e-8,-0.0023275936390781573,-3.052324005011218e-5,-2.4698123022970693e-8,-0.002327477917828302,-3.0452785078251434e-5,-2.461765146651857e-8,-0.002327419112590265,-3.0420884134364205E-05,-2.458113394257909e-8,-0.0023273980040969685,-3.0446326357327403e-5,-2.4610839446448034e-8,-0.002327390669521878,-3.0539531096370326e-5,-2.4719266183936192e-8,-0.0023273711094918687,-3.070139397965835e-5,-2.4907774784639605e-8,-0.002327314298389271,-3.0922803788878494e-5,-2.5166047977091938e-8,-0.002327199604182002,-3.118523180180453e-5,-2.5472802828543438e-8,-0.0023270141555905726,-3.146275582275373e-5,-2.579813850369303e-8,-0.002326755507257778,-3.1725524753218145e-5,-2.6107509797618743e-8,-0.002326433025242352,-3.194433915074523e-5,-2.636696380227279e-8,-0.00232606757107646,-3.2095816875852493E-05,-2.6549064620552972e-8,-0.0023256892347763903,-3.216744119251998e-5,-2.663874128588696e-8,-0.0023253330548705857,-3.216173673953351e-5,-2.6638224765391106e-8,-0.002325032753407156,-3.209873777588853e-5,-2.6570101510359574e-8,-0.0023248127299698297,-3.201549252585091e-5,-2.6476970450584947e-8,-0.002324679419257254,-3.1960909325668365e-5,-2.641563798078472e-8,-0.002324614738368727,-3.198471760129885e-5,-2.6444333423830437e-8,-0.0023245759518624605,-3.2121629871326e-5,-2.6604171937243653e-8,-0.002324505785473568,-3.237602913514e-5,-2.6901108196581215e-8,-0.0023243518127423596,-3.271591879496891e-5,-2.7298653087985366e-8,-0.00232408675837698,-3.308237216229446e-5,-2.772870037338478e-8,-0.0023237183421038277,-3.341134600686158e-5,-2.8116827565107905e-8,-0.0023232834120907914,-3.365603424276712e-5,-2.8408283829963784e-8,-0.0023228315250686865,-3.379852594585868e-5,-2.8581601521190148e-8,-0.0023224081917482394,-3.384823308876176e-5,-2.8646918820079517e-8,-0.0023220447513682056,-3.3832392487888304e-5,-2.8635163154902712e-8,-0.0023217556857669294,-3.378539642682306e-5,-2.8585851446400122e-8,-0.0023215406467797794,-3.374081042009061e-5,-2.8537897313167375e-8,-0.002321388188291431,-3.3726795999537757e-5,-2.8524238705810844e-8,-0.002321279357326137,-3.376398701175925e-5,-2.8569237172436706e-8,-0.002321190580067218,-3.3864561252015965e-5,-2.8687469509032147e-8,-0.0023210960815719848,-3.403170234189584e-5,-2.8883032294239802e-8,-0.0023209703112198727,-3.425921865422195e-5,-2.9149091545929388e-8,-0.0023207907692627456,-3.453153525414017e-5,-2.9467892708359517e-8,-0.002320541348280485,-3.4824632907782434e-5,-2.9811852888919886e-8,-0.002320215787982576,-3.510859047522046e-5,-3.014647119465895e-8,-0.002319820326628823,-3.5352020534393274e-5,-3.0435397604764066e-8,-0.002319374429235887,-3.5528027890910064e-5,-3.064726176518535e-8,-0.0023189086929537852,-3.562058707993201e-5,-3.0763027321289934e-8,-0.0023184596969337903,-3.562967431567573e-5,-3.078198150000386e-8,-0.0023180625159862473,-3.557348082881343e-5,-3.072444153370548e-8,-0.0023177424037032486,-3.548664144440317e-5,-3.062992075551395e-8,-0.0023175074984734543,-3.5414226963611394e-5,-3.0550393228261676e-8,-0.0023173444808164832,-3.5402047537825155e-5,-3.053919267474974e-8,-0.002317219043515323,-3.548478675955916e-5,-3.063722510387765e-8,-0.0023170825452282313,-3.567474791693208e-5,-3.085971138660794e-8,-0.0023168847150472982,-3.595522696647335e-5,-3.118819869005432e-8,-0.0023165894160324624,-3.628263070896687e-5,-3.157275232013399e-8,-0.0023161874027681608,-3.659879209134966e-5,-3.194610912976707e-8,-0.002315699674318987,-3.6849589557777495e-5,-3.224527727736699e-8,-0.002315169322935829,-3.7001624225642415e-5,-3.2430960432418255e-8,-0.002314646199700832,-3.704960690848625e-5,-3.249625130896201e-8,-0.0023141720768090047,-3.701289220350198e-5,-3.246278529929417e-8,-0.0023137719944856,-3.692533958583261e-5,-3.2369181497699095e-8,-0.002313452787336121,-3.682436937453514e-5,-3.225850415814049e-8,-0.002313206349815514,-3.674303927821273e-5,-3.216911319350878e-8,-0.002313014513893187,-3.6705975238209506e-5,-3.21298653443614e-8,-0.002312853494672486,-3.6728114464930174e-5,-3.215852030546475e-8,-0.0023126972338266515,-3.681481612065799e-5,-3.226175333094992e-8,-0.0023125198655322456,-3.696232465768661e-5,-3.24356389814037e-8,-0.002312297893017724,-3.7158178604489365e-5,-3.266612338087536e-8,-0.0023120126639769563,-3.7381726521067834e-5,-3.292962936131338e-8,-0.002311653424383115,-3.760539504033395e-5,-3.319450237088803e-8,-0.0023112206387045776,-3.7797568417562995e-5,-3.3424282093674193e-8,-0.002310728536788081,-3.7927679776685745e-5,-3.3583518129125895e-8,-0.0023102052694704335,-3.7973269632081315e-5,-3.3645883688399196e-8,-0.002309689114953737,-3.792741024238655e-5,-3.3602769741033175e-8,-0.002309220367796046,-3.780365018678395e-5,-3.34690861984953e-8,-0.0023088306454635615,-3.763560952953059e-5,-3.328295822689161e-8,-0.0023085331437765486,-3.7470095324169245e-5,-3.30979876994702e-8,-0.0023083175552887736,-3.7355299923970754e-5,-3.296981668241202e-8,-0.0023081517291295645,-3.732774019023125e-5,-3.2941121239366296e-8,-0.0023079897002703125,-3.740204716129852e-5,-3.302971182509186e-8,-0.0023077837234663535,-3.7566599907923365e-5,-3.322321468544985e-8,-0.0023074969972720206,-3.778618699150824e-5,-3.348181192736664e-8,-0.002307113642460123,-3.801111136025596e-5,-3.374850764245679e-8,-0.002306642967714749,-3.819047303514916e-5,-3.3964389987148476e-8,-0.0023061164179579287,-3.8285780849737995e-5,-3.40844388236443e-8,-0.0023055780533455137,-3.828042081343265e-5,-3.408864550347391e-8,-0.0023050720265702773,-3.818189606197478e-5,-3.3984813393723e-8,-0.0023046316398957264,-3.801683262139339e-5,-3.3802987367837267e-8,-0.00230427334288954,-3.7821682524135505e-5,-3.358486019035794e-8,-0.0023039963644423222,-3.7633111972824855e-5,-3.337272686138091e-8,-0.002303786336992908,-3.748100255910153e-5,-3.320135317605305e-8,-0.0023036204437704402,-3.738497046118624e-5,-3.3093833427999516e-8,-0.002303472191629436,-3.735370107695463e-5,-3.306068870435814e-8,-0.002303315004370737,-3.738581151208172e-5,-3.310077586295026e-8,-0.0023031247168510474,-3.7471158388023855e-5,-3.32027746012847e-8,-0.002302881512812013,-3.759204402485969e-5,-3.334659244660564e-8,-0.002302571933303701,-3.772437161974421e-5,-3.3504698526810776e-8,-0.0023021913377570913,-3.7839318120416736e-5,-3.364401288936653e-8,-0.0023017466592312736,-3.790639624397905e-5,-3.3729365113627754e-8,-0.002301258499438132,-3.789868982799408e-5,-3.3729469251606456e-8,-0.0023007607416336475,-3.780025860121621e-5,-3.362545368835861e-8,-0.0023002955727393715,-3.761398422436507e-5,-3.341996763976326e-8,-0.002299903135206751,-3.7366095073082776e-5,-3.314251715734096e-8,-0.002299608241321281,-3.7103131944292765e-5,-3.284613208267745e-8,-0.002299409859179875,-3.687991824381861e-5,-3.259369265324991e-8,-0.002299279285932504,-3.674229260682073e-5,-3.243819215569253e-8,-0.002299168823546775,-3.6712133551511284e-5,-3.240551750739637e-8,-0.002299027108588892,-3.678121604662647e-5,-3.248721326687466e-8,-0.0022988143521173038,-3.6915489318077446e-5,-3.2645093229978927e-8,-0.0022985121434507642,-3.706652291671608e-5,-3.282408232012828e-8,-0.0022981259731840605,-3.718510344513982e-5,-3.296765596479805e-8,-0.002297681444338649,-3.723291069296564e-5,-3.3031266622567177e-8,-0.0022972163826716816,-3.7189964304819385e-5,-3.299108395567988e-8,-0.002296771289655474,-3.705699893642229e-5,-3.284699771750507e-8,-0.0022963804162048507,-3.685301926143306e-5,-3.2620069474865724e-8,-0.0022960653412444033,-3.66092080660818e-5,-3.234570517089325e-8,-0.0022958321994601843,-3.6361104881873565e-5,-3.206471491834107e-8,-0.002295672602594345,-3.6141216362085723e-5,-3.181475278986125e-8,-0.002295567237924504,-3.5973699239903435e-5,-3.1624065630400416e-8,-0.0022954906243840873,-3.5871742882865936e-5,-3.150833328403298e-8,-0.002295415668514197,-3.583734289021038e-5,-3.1470303577740756e-8,-0.002295317231199662,-3.5862619387422194e-5,-3.15012747362056e-8,-0.002295174587684972,-3.593175025312556e-5,-3.158334026307848e-8,-0.0022949731503511582,-3.6022919077861825e-5,-3.169165951737354e-8,-0.0022947059593891967,-3.6110200777476796e-5,-3.1796616976641045e-8,-0.0022943752972072132,-3.616576445549112e-5,-3.186629056886203e-8,-0.002293994395917849,-3.616308491839482e-5,-3.1870055583428156e-8,-0.0022935884913046806,-3.608188698839053e-5,-3.1784218012190775e-8,-0.002293193570220022,-3.591490428985524e-5,-3.159981966187581e-8,-0.002292850700555697,-3.567488665407547e-5,-3.1330816136700846e-8,-0.0022925949121289655,-3.539799888834784e-5,-3.101814903088958e-8,-0.002292441079759657,-3.5138654460845667e-5,-3.072396888884776e-8,-0.0022923737482313526,-3.495377210004042e-5,-3.051367324612897e-8,-0.0022923487357085484,-3.4881645478195986e-5,-3.043169702193616e-8,-0.0022923082878944408,-3.492651926994169e-5,-3.048374540670587e-8,-0.0022922023645509603,-3.5057777584302726e-5,-3.063565736187704e-8,-0.002292004823110608,-3.522321745129158e-5,-3.0828335408719365e-8,-0.002291718031987991,-3.536782916311345e-5,-3.099901295008251e-8,-0.0022913672330241424,-3.544908418763723e-5,-3.109866179650461e-8,-0.002290990059070643,-3.544468044302114e-5,-3.1100956371175926e-8,-0.0022906260283061795,-3.535334262818601e-5,-3.1003445892457103e-8,-0.0022903084934227853,-3.5191150650947184e-5,-3.082366001102285e-8,-0.002290059645962504,-3.4985740590012e-5,-3.059271116004469e-8,-0.002289888308889336,-3.476990829758171e-5,-3.034806608016834e-8,-0.002289790112933232,-3.457553303386381e-5,-3.0126527996035566e-8,-0.0022897496397346197,-3.442855427528838e-5,-2.995832382862933e-8,-0.002289743927638933,-3.434557978525591e-5,-2.986303752963534e-8,-0.002289746588173612,-3.433235628935457e-5,-2.984772570762622e-8,-0.002289731806192985,-3.438399705495003e-5,-2.9907130752155833e-8,-0.0022896776371395563,-3.448658144544781e-5,-3.0025539997263514e-8,-0.002289568333240068,-3.4619516180843974e-5,-3.0179546880832127e-8,-0.002289395830989697,-3.47581192864351e-5,-3.034104020878307e-8,-0.0022891606980330746,-3.487624615385044e-5,-3.048017863245395e-8,-0.0022888727561433233,-3.494909690242651e-5,-3.0568516096956604e-8,-0.0022885513883073552,-3.4956571873741554e-5,-3.058275352336701e-8,-0.002288225022291335,-3.4887629910986334e-5,-3.050971134872694e-8,-0.0022879285346280604,-3.474558680788467e-5,-3.0352495822772635e-8,-0.002287697014005668,-3.4552914595581084e-5,-3.013619110840197e-8,-0.002287555258528512,-3.4352264826514714e-5,-2.990924381258495e-8,-0.002287505296293813,-3.419939650252042e-5,-2.9735499630763315e-8,-0.0022875185392014596,-3.414608973943245e-5,-2.9674650423240414e-8,-0.002287540654767576,-3.421841512072958e-5,-2.975725826269698e-8,-0.0022875109191809696,-3.44028369555647e-5,-2.9968681291149824e-8,-0.0022873866431173677,-3.4650463730046105e-5,-3.025373403994287e-8,-0.002287158332342123,-3.489747604808045e-5,-3.05398504214709e-8,-0.0022868484445149025,-3.5088852879194874e-5,-3.076405861695239e-8,-0.0022864982748903593,-3.519317267669936e-5,-3.0889870385194194e-8,-0.002286152562989151,-3.520525313625685e-5,-3.091044534452543e-8,-0.002285848351995372,-3.514064936767193e-5,-3.084259232463975e-8,-0.0022856095545583004,-3.5027359972136336e-5,-3.071759518882632e-8,-0.0022854458582351883,-3.4898128170332654e-5,-3.057260162184731e-8,-0.00228535406658743,-3.4784542000901826e-5,-3.0443888195242704e-8,-0.0022853205545476122,-3.471284955278595e-5,-3.0361936066289834e-8,-0.0022853242782383083,-3.4701131164836125e-5,-3.034799776992067e-8,-0.0022853401172956323,-3.475768108400181e-5,-3.0412079618106474e-8,-0.0022853423369857883,-3.488055943683937e-5,-3.055234935450222e-8,-0.0022853079331452636,-3.505829657473036e-5,-3.075595068991225e-8,-0.002285219540357508,-3.5271714452898415e-5,-3.1001145596984345e-8,-0.0022850675526555806,-3.5496617417606936e-5,-3.12604400979373e-8,-0.0022848513167228906,-3.5706935033342264e-5,-3.150417106161792e-8,-0.0022845794630886704,-3.587803665272236e-5,-3.170422273669897e-8,-0.0022842694256383967,-3.599011192601114e-5,-3.183778648177624e-8,-0.00228394612191299,-3.6031573527607656e-5,-3.1891182357691236e-8,-0.002283639559272516,-3.6002497987339216e-5,-3.1863829412209876e-8,-0.0022833807000028155,-3.591781523569677e-5,-3.17720571397393e-8,-0.002283194835117489,-3.580895633737797e-5,-3.1651234007313374e-8,-0.0022830926687873554,-3.572151453512309e-5,-3.155331255203707e-8,-0.0022830615120185546,-3.57062013456485e-5,-3.1536574359696766e-8,-0.002283061910144253,-3.5802515052971905e-5,-3.1646865496677e-8,-0.0022830358716624693,-3.602024681505544e-5,-3.1896238479571526e-8,-0.002282927452508825,-3.6329876875859376e-5,-3.2251745516056244e-8,-0.0022827062816265977,-3.667107036558002e-5,-3.264498114105585e-8,-0.0022823796709535715,-3.697658131461953e-5,-3.299928501542816e-8,-0.0022819864232603475,-3.719735460090399e-5,-3.325834215160285e-8,-0.0022815785791103415,-3.731532145924846e-5,-3.340080377913226e-8,-0.0022812032084957965,-3.734128205682896e-5,-3.3438034270071183e-8,-0.002280891871937716,-3.7304369843453694e-5,-3.3402379181189025e-8,-0.00228065814223643,-3.724061603780327e-5,-3.333439792808469e-8,-0.0022805000038872204,-3.718451764462349e-5,-3.327337443004344e-8,-0.0022804039844390635,-3.7164175330215406e-5,-3.325171023981485e-8,-0.002280349211641098,-3.7198996010101034e-5,-3.3292116454290506e-8,-0.0022803108906574855,-3.729879835377055e-5,-3.3406389414515064e-8,-0.002280263357184188,-3.746369139111816e-5,-3.359514042205903e-8,-0.0022801829142725643,-3.76845561343038e-5,-3.3848312986735143e-8,-0.0022800505440541212,-3.794419075362827e-5,-3.4146529008746734e-8,-0.002279854394613768,-3.821932509749697e-5,-3.446344080378021e-8,-0.002279591667380771,-3.8483592197162534e-5,-3.4769134737453335e-8,-0.0022792694769532365,-3.8711202674219674e-5,-3.503427192200282e-8,-0.002278904453787725,-3.888090559245803e-5,-3.523451107453436e-8,-0.002278520994022731,-3.897981593858639e-5,-3.5354790439935546e-8,-0.0022781481387727765,-3.900661067575245e-5,-3.539296714173588e-8,-0.002277815196272408,-3.897358681368924e-5,-3.536228182941742e-8,-0.0022775462453310945,-3.8907078916294634e-5,-3.5292063500544346e-8,-0.0022773537578315915,-3.88453723888866e-5,-3.5225611058902015e-8,-0.0022772323066882973,-3.88328268780596e-5,-3.5213664861948535e-8,-0.002277154719218136,-3.89093864059176e-5,-3.5302432695555914e-8,-0.0022770743013513575,-3.909671606337604e-5,-3.551757119061668e-8,-0.0022769361938568297,-3.93858582620144e-5,-3.584980135264396e-8,-0.0022766965332619883,-3.9734321357865546e-5,-3.625133407898208e-8,-0.002276341115211891,-4.007817531691193e-5,-3.664954907985626e-8,-0.0022758922917568173,-4.035551223226274e-5,-3.697373201351628e-8,-0.0022753992488523085,-4.0528709716748785e-5,-3.7180470529775404e-8,-0.0022749180581077707,-4.059371095721217e-5,-3.726429156698758e-8,-0.0022744933359550488,-4.057442247318822e-5,-3.7251455930854735e-8,-0.0022741491150162865,-4.0509294110553696e-5,-3.718495011122612e-8,-0.0022738888817427747,-4.043836498717976e-5,-3.7109976390399145e-8,-0.0022737006122365193,-4.0394935220934196e-5,-3.706454561541384e-8,-0.0022735628534328385,-4.0401953921682715e-5,-3.7075254422409025e-8,-0.0022734497848497666,-4.047142453162688e-5,-3.7156399239620105e-8,-0.0022733348583905645,-4.060512607912676e-5,-3.731060746631049e-8,-0.0022731934580261463,-4.0795705115488924e-5,-3.752998308750005e-8,-0.00227300512552994,-4.102789765037355e-5,-3.7797496246937914e-8,-0.0022727556876095496,-4.128004247365327e-5,-3.808875005360056e-8,-0.002272439315133133,-4.152626986166031e-5,-3.837450044928072e-8,-0.0022720601389120266,-4.173970137526162e-5,-3.862427282168575e-8,-0.0022716327599983676,-4.1896595491755895e-5,-3.8811002059216745e-8,-0.0022711810539608945,-4.1980908267824755e-5,-3.8916135263443654e-8,-0.00227073496835204,-4.1988409487146426e-5,-3.8934279948754235e-8,-0.002270325441507122,-4.192927899551331e-5,-3.8876227340469446e-8,-0.002269978122215947,-4.1828177158028644e-5,-3.8769219119330844e-8,-0.00226970702629286,-4.172123601459589e-5,-3.865378498185866e-8,-0.0022695094556672577,-4.1649926366732944e-5,-3.857700174244831e-8,-0.002269363629343624,-4.165219466353312e-5,-3.858250738357373e-8,-0.0022692306298698933,-4.175204263636338e-5,-3.869853604806306e-8,-0.0022690619905320303,-4.195007217268219e-5,-3.892687238355782e-8,-0.0022688127656313537,-4.22189359377569e-5,-3.923733305382498e-8,-0.0022684568851602466,-4.2507766167857475e-5,-3.9572560430991624e-8,-0.002267998326091102,-4.275672312180571e-5,-3.986449700076138e-8,-0.0022674714734245843,-4.291695195769548e-5,-4.005713795935709e-8,-0.0022669291597497737,-4.296662160132691e-5,-4.012487438155247e-8,-0.0022664242564903914,-4.2915295188340505e-5,-4.007760659904807e-8,-0.0022659940652150863,-4.279611123618072e-5,-3.995206908990567e-8,-0.002265653503930502,-4.265191244855833e-5,-3.979631362883339e-8,-0.0022653969340296893,-4.252261313043785e-5,-3.965552378432056e-8,-0.0022652046236925952,-4.243769493960012e-5,-3.95634861733223e-8,-0.002265049794477369,-4.241380155046763e-5,-3.9539697044729416e-8,-0.0022649041082798216,-4.245547864330964e-5,-3.9589986428501323e-8,-0.00226474124918325,-4.255711975844435e-5,-3.970856627954339e-8,-0.0022645391613217362,-4.270500455743162e-5,-3.988028806109427e-8,-0.0022642816799547678,-4.287910780361013e-5,-4.008272167427198e-8,-0.002263960087918555,-4.3054900809357125e-5,-4.028824466566982e-8,-0.002263574719130994,-4.320567695985923e-5,-4.0466687322319195e-8,-0.0022631362204558894,-4.330590165289405e-5,-4.058908270551296e-8,-0.0022626656639188536,-4.3335670173572484e-5,-4.063264302083518e-8,-0.0022621925719040524,-4.328569846595285e-5,-4.0586363627982455e-8,-0.0022617502460647106,-4.316153538197371e-5,-4.045582192050501e-8,-0.0022613686905826485,-4.298517863381172e-5,-4.02651379123331e-8,-0.002261066659628733,-4.279254577136207e-5,-4.0054328367112326e-8,-0.002260845254738966,-4.2626492298289355e-5,-3.9871642378719045e-8,-0.002260685452234943,-4.252671070386968e-5,-3.976228848354713e-8,-0.0022605509404802003,-4.251909481418603e-5,-3.9756384567982686e-8,-0.002260396131472639,-4.260760900980759e-5,-3.985954021720435e-8,-0.002260177694963087,-4.277131989594658e-5,-4.004914789052283e-8,-0.002259866766101412,-4.2968166060102e-5,-4.027830918497738e-8,-0.002259458210637815,-4.3145372744970057e-5,-4.048742944540769e-8,-0.0022589733613924707,-4.3254145791464096e-5,-4.062085419440258e-8,-0.002258454294531585,-4.326392054614321e-5,-4.064315339359069e-8,-0.0022579511436190353,-4.3170655978861896e-5,-4.0548734377790825e-8,-0.0022575073922757242,-4.2995916330466316e-5,-4.036104128218041e-8,-0.0022571489718927946,-4.2777865460527206e-5,-4.012258232791228e-8,-0.0022568805697357453,-4.255884861731508e-5,-3.988102778980891e-8,-0.0022566887016491335,-4.2374725671374876e-5,-3.967716426716014e-8,-0.002256548444902981,-4.2248875604791526e-5,-3.953799287615894e-8,-0.002256430457477919,-4.2190877177150564e-5,-3.9475031093020603e-8,-0.0022563063262742698,-4.219814048656945e-5,-3.9485967035225393e-8,-0.0022561518892659908,-4.225864272457631e-5,-3.9557654446514965e-8,-0.0022559490620141626,-4.235363463796422e-5,-3.9669178707093105e-8,-0.0022556869196150115,-4.245992921932744e-5,-3.9794503964805914e-8,-0.002255362650026142,-4.2551960746738174e-5,-3.990484416493067e-8,-0.00225498259128279,-4.260418776905965e-5,-3.9971363026047316e-8,-0.0022545629951551973,-4.259443556510106e-5,-3.996888136177645e-8,-0.002254129647814144,-4.2508371758274345e-5,-3.988086135327218e-8,-0.0022537151993712646,-4.234455193159232e-5,-3.970509132900266e-8,-0.00225335330209883,-4.2118407480589275e-5,-3.9458268320626675e-8,-0.0022530698916637996,-4.186263655252896e-5,-3.917660732834667e-8,-0.0022528740190121094,-4.162180095563857e-5,-3.8909958155369906e-8,-0.002252752217450626,-4.1441201489894646e-5,-3.870944411348118e-8,-0.0022526698614514173,-4.1353325375690816e-5,-3.861225482382609e-8,-0.0022525801000990234,-4.136713774543938e-5,-3.862947201208333e-8,-0.0022524373733573866,-4.146464933767827e-5,-3.8741929345072135e-8,-0.002252210525373519,-4.1605994325611274e-5,-3.89055852814104e-8,-0.0022518911377591767,-4.1740803405337114e-5,-3.906405012373955e-8,-0.0022514949999607,-4.182182996698903e-5,-3.9163825942864726e-8,-0.0022510569958787445,-4.181681135790668e-5,-3.916776403591502e-8,-0.002250621342141275,-4.171557236139564e-5,-3.906331946104076e-8,-0.0022502301294550285,-4.15308425955026e-5,-3.886378396708598e-8,-0.002249913449319389,-4.129306958437996e-5,-3.860271679338941e-8,-0.002249683726453224,-4.104130530740587e-5,-3.832383998911728e-8,-0.002249535283975047,-4.0813295369522146e-5,-3.8069884935159855e-8,-0.0022494483048860476,-4.0637702512655366e-5,-3.787370255806774e-8,-0.002249395075586441,-4.053008747505458e-5,-3.775352485809548e-8,-0.002249346228387429,-4.049258564563083e-5,-3.771239510768213e-8,-0.0022492755010270257,-4.0516052192387256e-5,-3.774046242612261e-8,-0.0022491626277783426,-4.058321264511812e-5,-3.7818520580070174e-8,-0.0022489947436900195,-4.0671780343274614e-5,-3.7921589641568395e-8,-0.002248766957445944,-4.075711343877572e-5,-3.8021986797907276e-8,-0.0022484826632076446,-4.081452585563666e-5,-3.8091951714669235e-8,-0.002248153838048646,-4.0821728247974105e-5,-3.8106341905870566e-8,-0.002247801079960905,-4.076195151424849e-5,-3.804605949402225e-8,-0.002247452593148405,-4.0628012018448585e-5,-3.790257146744856e-8,-0.0022471409301629466,-4.042682459236734e-5,-3.768302732502345e-8,-0.00224689646765886,-4.018263561138499e-5,-3.7414039313886286e-8,-0.0022467379334867687,-3.993603737751534e-5,-3.71407722402369e-8,-0.0022466629330224067,-3.973603731085064e-5,-3.6918205817805125e-8,-0.0022466437937668942,-3.962548372148706e-5,-3.679484541297912e-8,-0.0022466332626418345,-3.962510713746668e-5,-3.679475135912498e-8,-0.0022465795112438054,-3.972433968955547e-5,-3.690704831574807e-8,-0.002246443844399572,-3.988431149987231e-5,-3.7089012125681974e-8,-0.0022462127331009103,-4.005144641550452e-5,-3.728104124941213e-8,-0.002245899726127667,-4.017461828870116e-5,-3.742571513024981e-8,-0.0022455385610210964,-4.021870065905526e-5,-3.7482979092119534e-8,-0.002245171991501091,-4.017101257208119e-5,-3.743755699529912e-8,-0.0022448406857828573,-4.0040872064166135e-5,-3.729877117661851e-8,-0.002244574842630709,-3.985434389103751e-5,-3.709499167218068e-8,-0.00224438953153147,-3.964658315948225e-5,-3.6865281132306804e-8,-0.002244283739282433,-3.9453769098646514e-5,-3.6650395806950313e-8,-0.0022442425786291715,-3.9306138580895836e-5,-3.648483998275852e-8,-0.0022442417262513318,-3.9223235736532204e-5,-3.639130046745756e-8,-0.002244252825270072,-3.921193238763609e-5,-3.637818766334322e-8,-0.002244248580715095,-3.926701981343953e-5,-3.6440147045714485e-8,-0.002244206665010873,-3.9373614587264704e-5,-3.656072898333406e-8,-0.0022441120851505714,-3.9510449394149734e-5,-3.671615220159067e-8,-0.002243958158082218,-3.9653224799783987e-5,-3.687916687487293e-8,-0.002243746569982561,-3.977754481038861e-5,-3.702240992509356e-8,-0.0022434870012997396,-3.986143852984975e-5,-3.7121211995940224e-8,-0.002243196539261886,-3.9887788360821346e-5,-3.715623183345602e-8,-0.002242898748955786,-3.984704324325663e-5,-3.711640914072695e-8,-0.0022426218280860106,-3.974042123909537e-5,-3.7002547544910815e-8,-0.0022423948446182447,-3.9583186860967147e-5,-3.683110598566761e-8,-0.002242241179018976,-3.940641160112801e-5,-3.663638469156625e-8,-0.00224216956598242,-3.925442123747653e-5,-3.646787712775838e-8,-0.002242165743912653,-3.917522022806908e-5,-3.63796461283401e-8,-0.0022421904430927637,-3.92042809462743e-5,-3.641210968875951e-8,-0.0022421888363345576,-3.934800163595166e-5,-3.657333079382851e-8,-0.0022421101287026773,-3.957707112540881e-5,-3.683135600408295e-8,-0.0022419276065207064,-3.983591431005777e-5,-3.712457446970693e-8,-0.0022416477393448642,-4.0063753426798325e-5,-3.73851192566621e-8,-0.0022413045475564155,-4.0215340963561835e-5,-3.7561970560884604e-8,-0.0022409449338205603,-4.0271819274777205e-5,-3.7633148529958066e-8,-0.0022406136872176463,-4.0240309319839884e-5,-3.7605480019251675e-8,-0.002240343470877864,-4.0146522531138636e-5,-3.750668536605433e-8,-0.002240150677565745,-4.002533269708593e-5,-3.7375157741474976e-8,-0.002240035711440105,-3.991240818250783e-5,-3.725076167766338e-8,-0.002239985804253139,-3.9838071993125945e-5,-3.7167903625866e-8,-0.0022399789880449567,-3.9823368021104823e-5,-3.715090319780558e-8,-0.0022399885175577506,-3.9878050065343086e-5,-3.721146830451135e-8,-0.002239987272940578,-4.000036042511323e-5,-3.734824122526935e-8,-0.0022399516443405575,-4.017838712946535e-5,-3.7548239619326853e-8,-0.002239864499431365,-4.0392596449678075e-5,-3.778973496167977e-8,-0.0022397169957782525,-4.061908331716644e-5,-3.804599535317224e-8,-0.002239509163109704,-4.083302738834809e-5,-3.828923970936112e-8,-0.00223924945058436,-4.101186342286681e-5,-3.8494196874711744e-8,-0.002238953599371396,-4.113797301515876e-5,-3.8641048926455915e-8,-0.0022386430618668383,-4.120100796303263e-5,-3.871793082545036e-8,-0.002238342944066297,-4.1200001151770064e-5,-3.872324181388282e-8,-0.0022380791839847307,-4.114530686782865e-5,-3.866788607866194e-8,-0.002237874380510262,-4.1060002066053976e-5,-3.857703907310176e-8,-0.00223774180926945,-4.097948394853225e-5,-3.848995354296783e-8,-0.00223767825635013,-4.094712480839855e-5,-3.845528558322179e-8,-0.002237658399419641,-4.1004061797862145e-5,-3.851967858482813e-8,-0.0022376356888406273,-4.11738325963669e-5,-3.8710382858211906e-8,-0.0022375542283195344,-4.144791944811161e-5,-3.9018797372337954e-8,-0.002237369976256706,-4.178239537910177e-5,-3.939648342269923e-8,-0.0022370705865857117,-4.211192540677199e-5,-3.97707040733493e-8,-0.002236681021205403,-4.237528136520402e-5,-4.0072894403993155e-8,-0.0022362515136581293,-4.2537390808246587e-5,-4.026326754963274e-8,-0.0022358368811051695,-4.2596592517748946e-5,-4.033897314519272e-8,-0.002235479455892738,-4.257760540665977e-5,-4.032647668471118e-8,-0.0022352014732815342,-4.251839568376904e-5,-4.026725325138652e-8,-0.0022350055128588357,-4.245824814262653e-5,-4.0204769494537755e-8,-0.002234879072292001,-4.2429981973685345e-5,-4.017588031994506e-8,-0.002234800143287794,-4.245617891594765e-5,-4.020647152992803e-8,-0.0022347421748675988,-4.254810062132713e-5,-4.030997076660549e-8,-0.002234678089860464,-4.2706022024608e-5,-4.04874490318804e-8,-0.002234583596800719,-4.292040013149177e-5,-4.072877100486095e-8,-0.0022344399196055193,-4.3173776366831664e-5,-4.101470592062815e-8,-0.002234235865992565,-4.344333894544913e-5,-4.13198704377615e-8,-0.002233969089473579,-4.370403283753067e-5,-4.1616299339581775e-8,-0.0022336463289874286,-4.393200590097062e-5,-4.1877337327494744e-8,-0.002233282501130823,-4.410796757286399e-5,-4.2081351239347404e-8,-0.0022328987863395795,-4.422003807868895e-5,-4.2214822045642e-8,-0.0022325199496675764,-4.426587777665794e-5,-4.227465236873269e-8,-0.0022321710530385326,-4.4253972215963034e-5,-4.226962591744968e-8,-0.0022318736432929433,-4.420392191805795e-5,-4.2220888713159193e-8,-0.0022316414113256896,-4.414545555348796e-5,-4.216110347774086e-8,-0.0022314754270215662,-4.4115440270257426e-5,-4.213136166132721e-8,-0.002231359823442391,-4.415175418461966e-5,-4.217445054382591e-8,-0.0022312601532689185,-4.4283382554984865e-5,-4.232367827957026e-8,-0.002231127767120565,-4.4518168017474204e-5,-4.258888372588604e-8,-0.0022309127621388284,-4.483326721123653e-5,-4.2945429863533486e-8,-0.0022305832777618443,-4.5176107345948044e-5,-4.33350641470657e-8,-0.0022301417812274774,-4.548042189951665e-5,-4.3683804639003184e-8,-0.00222962696006888,-4.5691654474732635e-5,-4.3930355472978606e-8,-0.0022290982784922498,-4.578732224176004e-5,-4.404886114752745e-8,-0.0022286126995498105,-4.578096414425489e-5,-4.405337631430236e-8,-0.002228207126679372,-4.571064953482692e-5,-4.39852734699268e-8,-0.002227893056699919,-4.562206961243283e-5,-4.38947320909112e-8,-0.002227660846567752,-4.555526540573994e-5,-4.382620421038141e-8,-0.002227487702103169,-4.55379758899719e-5,-4.381102028222137e-8,-0.0022273451775774154,-4.558426004228901e-5,-4.386564409422788e-8,-0.0022272045720067527,-4.569590592468164e-5,-4.39929402649985e-8,-0.002227040330898362,-4.586469098944103e-5,-4.418444952301841e-8,-0.0022268322499077128,-4.607464729273845e-5,-4.4422813065954085e-8,-0.0022265671012077232,-4.6304319138032545e-5,-4.46843227290974e-8,-0.002226239866699384,-4.65292374402582e-5,-4.4941773047288794e-8,-0.002225854484890745,-4.6724799757426735e-5,-4.51677431041688e-8,-0.0022254237956320375,-4.6869601410910074e-5,-4.5338309138385286e-8,-0.002224968272659459,-4.694890763075256e-5,-4.543684582222292e-8,-0.002224513374267207,-4.695764552052053e-5,-4.545727907051517e-8,-0.0022240857042466885,-4.690227807341315e-5,-4.5406156340506795e-8,-0.0022237084214524207,-4.680103654287797e-5,-4.530300679993751e-8,-0.002223396530534961,-4.668216756519775e-5,-4.517860947561035e-8,-0.002223152787249789,-4.658014304122351e-5,-4.507104168252101e-8,-0.002222964935742375,-4.652995213290346e-5,-4.501951893274435e-8,-0.002222805166025817,-4.655966574712351e-5,-4.505611999008108e-8,-0.0022226330833182246,-4.6682000764129616e-5,-4.519616588800026e-8,-0.002222403496610867,-4.6886909508180545e-5,-4.542958762812166e-8,-0.002222079087811143,-4.7138819175493126e-5,-4.571749442657403e-8,-0.0022216449448798823,-4.738267384694757e-5,-4.59987335824701e-8,-0.002221118171827722,-4.7560111136303446e-5,-4.620795613858712e-8,-0.002220545312392466,-4.763048075773373e-5,-4.629917145710085e-8,-0.002219986393474025,-4.758588464850228e-5,-4.626262271116031e-8,-0.002219493466999461,-4.745169161788492e-5,-4.612549476134362e-8,-0.0022190950899372997,-4.727349057060608e-5,-4.5937616176018814e-8,-0.0022187928437108866,-4.709946526084481e-5,-4.575211981967887e-8,-0.0022185676608473866,-4.6967148258508964e-5,-4.561086581454774e-8,-0.0022183897340214403,-4.6897877865561347e-5,-4.5538205382200175e-8,-0.002218227112864587,-4.689730372738356e-5,-4.55412865670691e-8,-0.0022180511931498754,-4.6958726789225835e-5,-4.5613476972552826e-8,-0.002217839478448058,-4.706684563405332e-5,-4.573834204511953e-8,-0.002217576767892167,-4.720088385532349e-5,-4.5893088802846886e-8,-0.0022172557391592737,-4.7337099909682e-5,-4.605143273264397e-8,-0.0022168773700565656,-4.74510906017821e-5,-4.6186255635813826e-8,-0.0022164511799183666,-4.752034046529439e-5,-4.627248139736567e-8,-0.002215994899699834,-4.7527295848164124e-5,-4.629045712510837e-8,-0.002215532947978386,-4.746279506796771e-5,-4.622968509992351e-8,-0.0022150932151455763,-4.732912349998839e-5,-4.60921625117704e-8,-0.0022147021652644183,-4.714160221841957e-5,-4.589418230010463e-8,-0.002214378969883185,-4.692762570971198e-5,-4.566542228593394e-8,-0.0022141300645164186,-4.672255695780222e-5,-4.544463178449744e-8,-0.0022139458137362612,-4.6562850713633075e-5,-4.52722393117001e-8,-0.00221380060967952,-4.64777591528412e-5,-4.518126383051442e-8,-0.0022136569173281237,-4.648149783906708e-5,-4.518852648490155e-8,-0.0022134729343128413,-4.65678409922886e-5,-4.5288350736913463e-8,-0.002213212730213477,-4.670898079689068e-5,-4.545089717714251e-8,-0.002212856797894262,-4.686004182357243e-5,-4.562684735817594e-8,-0.0022124099074522273,-4.6969555866714336e-5,-4.575890861717408e-8,-0.0022119026018825377,-4.699407898397332e-5,-4.579813949784263e-8,-0.0022113839010346006,-4.691226389953383e-5,-4.5719800103478644e-8,-0.0022109065487812933,-4.673212611187127e-5,-4.553166994833471e-8,-0.0022105106421530336,-4.6487513953655795e-5,-4.52703652159344e-8,-0.002210212924897253,-4.622545023671105e-5,-4.498750033432147e-8,-0.0022100056515220326,-4.599082657138239e-5,-4.4732842639896e-8,-0.0022098634270506174,-4.58151562763414e-5,-4.454182124988341e-8,-0.002209753114187779,-4.5712337116466916e-5,-4.4430643000829475e-8,-0.0022096423610802776,-4.568024895658921e-5,-4.439779129857697e-8,-0.0022095048224221024,-4.570516696428774e-5,-4.4428692789315846e-8,-0.0022093223580628898,-4.576643434562114e-5,-4.45008081941231e-8,-0.0022090854104389146,-4.5840198863217866e-5,-4.458782308690369e-8,-0.002208792684048753,-4.590211841998753e-5,-4.4662757683266604e-8,-0.002208450773065764,-4.592949249699432e-5,-4.470041059236587e-8,-0.0022080738356743857,-4.590342965342051e-5,-4.467976024450722e-8,-0.0022076829208446235,-4.581149511652582e-5,-4.45868263584567e-8,-0.0022073042325302127,-4.565081152181556e-5,-4.441802397944935e-8,-0.002206965605216999,-4.5430915166275075e-5,-4.418331181075295e-8,-0.0022066909305378285,-4.51749843519472e-5,-4.390764665471133e-8,-0.0022064933389565914,-4.49177448738443e-5,-4.3628860219709356e-8,-0.0022063692939843756,-4.469903269899099e-5,-4.339076928750656e-8,-0.002206296459441618,-4.455384182826084e-5,-4.323234070924075e-8,-0.002206237344690818,-4.450182876565845e-5,-4.317610450389361e-8,-0.002206148437110928,-4.454022855258338e-5,-4.322014158498983e-8,-0.0022059920678573607,-4.464314996140854e-5,-4.333696738013364e-8,-0.002205747078655037,-4.47677698551155e-5,-4.3480006469238615e-8,-0.0022054149560458707,-4.4865453971987394e-5,-4.359562672668298e-8,-0.0022050197778874484,-4.4894469310904836e-5,-4.363714563703815e-8,-0.002204602080350687,-4.483081733338681e-5,-4.357698088947024e-8,-0.0022042082496701748,-4.4674256976108435e-5,-4.34136267011671e-8,-0.002203878355963061,-4.444767502332483e-5,-4.317130450908105e-8,-0.002203636131830214,-4.418988337579432e-5,-4.289227455216706e-8,-0.0022034842767954172,-4.3944313012475434e-5,-4.2624468807672645e-8,-0.0022034062225738905,-4.374765150444576e-5,-4.240888990786396e-8,-0.0022033728732570334,-4.362214656382595e-5,-4.22709113039624e-8,-0.0022033511472193176,-4.357325021474196e-5,-4.2217405326860426e-8,-0.002203311259278957,-4.359184072021775e-5,-4.2238963148967383e-8,-0.002203231161403219,-4.365884984553331e-5,-4.2314893940482235e-8,-0.0022030981896355236,-4.37501815219e-5,-4.241868804084055e-8,-0.0022029088590102435,-4.3840715442687394e-5,-4.252255845087228e-8,-0.002202667855443351,-4.390713159132299e-5,-4.2600676139939876e-8,-0.0022023869397814195,-4.392991328620103e-5,-4.263141972686281e-8,-0.002202083971331653,-4.389514078579005e-5,-4.259929970541784e-8,-0.0022017817509400405,-4.3796571313615305e-5,-4.2497155377534966e-8,-0.002201506019114991,-4.363807773550661e-5,-4.232878802184368e-8,-0.002201281829056389,-4.3435865519477696e-5,-4.211145676298463e-8,-0.0022011278651603286,-4.321905966755535e-5,-4.187668985882363e-8,-0.002201049428771376,-4.3026635343832115e-5,-4.166711799444936e-8,-0.0022010326564595945,-4.2899212226683795e-5,-4.1527605488542144e-8,-0.0022010438605880736,-4.2866701401245325e-5,-4.149168981230639e-8,-0.002201036815050561,-4.2936311524374124e-5,-4.156826007306663e-8,-0.0022009668005209242,-4.3087189621691026e-5,-4.1735408849570453e-8,-0.002200805687849186,-4.3275540935940235e-5,-4.194576010041846e-8,-0.0022005511147673534,-4.344845205145683e-5,-4.214141087930924e-8,-0.0022002261579351164,-4.356010243054483e-5,-4.2271627325288035e-8,-0.0021998709471877614,-4.3583870411128616e-5,-4.230621553318354e-8,-0.0021995306329296136,-4.351713167905666e-5,-4.2241049980976345e-8,-0.002199244012936336,-4.337907539302264e-5,-4.209604395428574e-8,-0.0021990354974688524,-4.3203716761038325e-5,-4.190782352683438e-8,-0.0021989114882803953,-4.303068697336216e-5,-4.1719808660383815e-8,-0.0021988611198272934,-4.2896143039547516e-5,-4.157220587465444e-8,-0.002198860529686386,-4.28256834219112e-5,-4.149400848221767e-8,-0.0021988792290551736,-4.283052362484336e-5,-4.149848437908441e-8,-0.0021988868020958604,-4.290728558961128e-5,-4.158266825085552e-8,-0.002198858332636107,-4.30407374421635e-5,-4.1730227888167276e-8,-0.0021987776559889718,-4.320815607531913e-5,-4.191627227789234e-8,-0.0021986383828306827,-4.338394252488224e-5,-4.211255171468341e-8,-0.0021984432617016725,-4.354352417484422e-5,-4.229189520363366e-8,-0.0021982026851288055,-4.366616419637895e-5,-4.243138177200893e-8,-0.002197932987833362,-4.373685585806035e-5,-4.2514400830429825e-8,-0.0021976547873646343,-4.374776948947891e-5,-4.2532145447490745e-8,-0.0021973912163822202,-4.3699666494011446e-5,-4.248507449934088e-8,-0.002197165565964018,-4.360339553726757e-5,-4.238455982416569e-8,-0.0021969976661542537,-4.348102472191013e-5,-4.2254266098886135e-8,-0.0021968986060033643,-4.3365344851824027e-5,-4.212983081364773e-8,-0.002196864488916266,-4.329582521635688e-5,-4.205462845468875e-8,-0.00219687177106506,-4.330950164594914e-5,-4.206983298743024e-8,-0.0021968783763478264,-4.342774012978813e-5,-4.219976819299261e-8,-0.002196833942465688,-4.364410781791684e-5,-4.2438344229764724e-8,-0.0021966974953614438,-4.392134829558463e-5,-4.274547229078794e-8,-0.0021964542822063117,-4.420215324008212e-5,-4.305868573313644e-8,-0.002196122004749595,-4.4429633911088055e-5,-4.3315482134634745e-8,-0.002195743141195934,-4.456667055575025e-5,-4.3474511881865136e-8,-0.0021953688213683063,-4.460502832877005e-5,-4.352567029416044e-8,-0.0021950430896256865,-4.456276883725236e-5,-4.34875261233581e-8,-0.00219479325103675,-4.447456387533459e-5,-4.339707996174946e-8,-0.0021946271302473947,-4.4380500039176534e-5,-4.329781770575668e-8,-0.0021945353071144784,-4.43168589575551e-5,-4.322972528487527e-8,-0.0021944959560133495,-4.4310062852754164e-5,-4.322252177775724e-8,-0.002194480563537203,-4.4373660852183527e-5,-4.32920524953864e-8,-0.0021944595227321863,-4.450786864707432e-5,-4.343945466521452e-8,-0.0021944069506842096,-4.4701191951449525e-5,-4.36527150890374e-8,-0.0021943042180325003,-4.49335617950116e-5,-4.391005375463803e-8,-0.002194141906377647,-4.518027077748843e-5,-4.4184332052663467e-8,-0.0021939201779301136,-4.5416019876788224e-5,-4.444764386522221e-8,-0.002193647790767406,-4.561847347713716e-5,-4.4675332295713537e-8,-0.0021933402416158846,-4.5770915859345256e-5,-4.484892453692752e-8,-0.00219301755709073,-4.586399243241319e-5,-4.495797173896476e-8,-0.0021927019881854267,-4.589680376520009e-5,-4.50011490514789e-8,-0.002192415581968075,-4.587758677189852e-5,-4.498696354861374e-8,-0.002192177416627541,-4.582404354917942e-5,-4.493420418458068e-8,-0.0021920001056428633,-4.576302032079154e-5,-4.487180284605771e-8,-0.0021918853630141493,-4.5728554041258204e-5,-4.483694086387648e-8,-0.0021918193971149852,-4.575678790110061e-5,-4.486962210563871e-8,-0.0021917704552939657,-4.5876737000029106e-5,-4.500249145208053e-8,-0.0021916921793231213,-4.609805171784536e-5,-4.524715951212536e-8,-0.002191535722030832,-4.640085504307758e-5,-4.558273256144663e-8,-0.002191268622527711,-4.673572239421093e-5,-4.5955562378608346e-8,-0.0021908911531643392,-4.703860588774864e-5,-4.6295536372601254e-8,-0.0021904389342049485,-4.725525462149562e-5,-4.654284579454351e-8,-0.0021899688757674282,-4.7361335435271427e-5,-4.667003748796585e-8,-0.002189537217572945,-4.736738240175443e-5,-4.66875152635767e-8,-0.002189182178099598,-4.730905371796731e-5,-4.6633131046491385e-8,-0.0021889175315774733,-4.723144495265606e-5,-4.655539679656418e-8,-0.0021887354256682617,-4.717574835041439e-5,-4.6499184056199204e-8,-0.0021886135162408732,-4.717157179860376e-5,-4.649736314449432e-8,-0.0021885224957076004,-4.723435333698451e-5,-4.656775348526145e-8,-0.002188432196672109,-4.736596568910569e-5,-4.671343301511786e-8,-0.0021883159915355365,-4.755688007918747e-5,-4.69247944722332e-8,-0.002188153797184117,-4.7789060056815985e-5,-4.7182558125506696e-8,-0.0021879339216937933,-4.8039252490120275e-5,-4.7461392605544466e-8,-0.0021876538472704776,-4.828243590852618e-5,-4.773381750934838e-8,-0.002187319992989988,-4.849521912185547e-5,-4.7974061450627616e-8,-0.0021869464613131022,-4.865894024085986e-5,-4.816152081756237e-8,-0.0021865528992877276,-4.87620998684626e-5,-4.828339410490294e-8,-0.0021861618199906937,-4.8801891534619e-5,-4.833627312095251e-8,-0.0021857956854069802,-4.878486309271509e-5,-4.832680892763946e-8,-0.0021854738600616984,-4.8726762987137e-5,-4.8271587194920043e-8,-0.0021852094900030724,-4.86515128943926e-5,-4.8196176656966384e-8,-0.002185006334014698,-4.858914285791343e-5,-4.8133122371377696e-8,-0.0021848556724831675,-4.8572182159752406e-5,-4.8118210423692764e-8,-0.0021847340908449993,-4.862969584851901e-5,-4.818398533821574e-8,-0.0021846040333787834,-4.8778729210677626e-5,-4.835019658202303e-8,-0.0021844197065521583,-4.901477659668526e-5,-4.861300583671992e-8,-0.002184139908137586,-4.9305740268685153e-5,-4.89380239589084e-8,-0.002183745208710712,-4.959578164277363e-5,-4.926436436193073e-8,-0.0021832508778272947,-4.9822400093252296e-5,-4.9523381452495355e-8,-0.0021827054179990426,-4.9940812964766306e-5,-4.9665452368679164e-8,-0.002182172657790118,-4.9941786271621964e-5,-4.967953305482646e-8,-0.0021817074157041024,-4.985220421423567e-5,-4.959386599256073e-8,-0.002181338673865619,-4.9720142395811015e-5,-4.945991919619401e-8,-0.0021810666706533364,-4.9595568980319e-5,-4.933166537295909e-8,-0.0021808703783844,-4.951657478515571e-5,-4.92507832762818e-8,-0.0021807181941960203,-4.950399504420421e-5,-4.924073730655143e-8,-0.0021805769182982548,-4.956218364039945e-5,-4.9307324380953e-8,-0.0021804174795038798,-4.968259370492711e-5,-4.9442212976376634e-8,-0.0021802179110294567,-4.9847836933814006e-5,-4.9627109424267564e-8,-0.002179964670767143,-5.003531159657192e-5,-4.983764252872737e-8,-0.0021796530724134083,-5.0220385609024966e-5,-5.004692161411961e-8,-0.002179287108625143,-5.0379309817940806e-5,-5.0228863268068284e-8,-0.0021788786984716967,-5.049197671212808e-5,-5.0361312329529946e-8,-0.0021784462256297563,-5.054452595703909e-5,-5.04289060225776e-8,-0.0021780122025803136,-5.053151803276535e-5,-5.042538797210063e-8,-0.002177600157916581,-5.045722929573454e-5,-5.035495070136917e-8,-0.0021772310966522526,-5.0335776567875636e-5,-5.023237210708531e-8,-0.002176919902460922,-5.0189932859938544e-5,-5.0081843179902245e-8,-0.00217667207082299,-5.004853269807545e-5,-4.993436120974221e-8,-0.0021764812441906808,-4.994249777622941e-5,-4.982363597059191e-8,-0.0021763280507105863,-4.98996114264398e-5,-4.978052270196503e-8,-0.0021761809437515654,-4.9938185981473035e-5,-4.982603516805561e-8,-0.002176000149806595,-5.006025793450334e-5,-4.9963621703133264e-8,-0.002175745817326205,-5.024622884164902e-5,-5.0172910484799115e-8,-0.002175390157594791,-5.0454365055776456e-5,-5.0408841281164365e-8,-0.002174930337153652,-5.06288459355e-5,-5.061036106903455e-8,-0.002174395353711165,-5.071699644838109e-5,-5.0719362989473973e-8,-0.0021738401034926535,-5.0689679713245726e-5,-5.0703131233504954e-8,-0.0021733265233010663,-5.055363671187018e-5,-5.056794205359903e-8,-0.0021729011128648096,-5.034775070284775e-5,-5.035513085813307e-8,-0.0021725811078602674,-5.012585939427826e-5,-5.012259516349527e-8,-0.0021723547388293137,-4.993700515060601e-5,-4.992354472562844e-8,-0.0021721915116131806,-4.9812811310871116e-5,-4.979285902848771e-8,-0.0021720546749986677,-4.976445626435847e-5,-4.9743630077680485e-8,-0.002171910550591354,-4.978612573658363e-5,-4.977057674929707e-8,-0.0021717334408312126,-4.986073223887547e-5,-4.985593590639394e-8,-0.0021715072056702122,-4.9965197761627746e-5,-4.997503848354697e-8,-0.002171225123681876,-5.007442062639999e-5,-5.010064735726323e-8,-0.0021708891541935235,-5.0164162613396194e-5,-5.020624123144993e-8,-0.002170509011565236,-5.021337352113505e-5,-5.026869269970753e-8,-0.0021701010201165194,-5.020633834079381e-5,-5.027067408474085e-8,-0.002169686481978018,-5.013479660142251e-5,-5.02029350445516e-8,-0.0021692892001323122,-4.999980622314807e-5,-5.006625128102955e-8,-0.002168932022375522,-4.9812758371010945e-5,-4.9872480658075486e-8,-0.002168632724515974,-4.95948957641629e-5,-4.96440934171442e-8,-0.0021683999304833723,-4.9374905475583854e-5,-4.94117279890712e-8,-0.0021682299884622017,-4.9184517024424835e-5,-4.9209644023520306e-8,-0.0021681057683319905,-4.905256550499114e-5,-4.906946354132325e-8,-0.0021679981084059274,-4.899850303697785e-5,-4.901315398366616e-8,-0.0021678702118165865,-4.902660625417457e-5,-4.904654790153962e-8,-0.002167684855459021,-4.912228342329066e-5,-4.915496722137846e-8,-0.002167413675346147,-4.9252117611135175e-5,-4.930287422769272e-8,-0.0021670467328493287,-4.9369236645834006e-5,-4.9439453319941026e-8,-0.0021665991445428225,-4.942457392269512e-5,-4.951084310411176e-8,-0.0021661107109958544,-4.9382031214902844e-5,-4.9476821013151695e-8,-0.0021656359860024264,-4.923205966050717e-5,-4.932584479686643e-8,-0.0021652269664645565,-4.8996524294130615e-5,-4.908058662160895e-8,-0.0021649159058167063,-4.872105249104496e-5,-4.878982557957179e-8,-0.002164706655984438,-4.8458301673946887e-5,-4.8510450968611894e-8,-0.0021645777385677746,-4.825084661063017e-5,-4.8288973195301046e-8,-0.0021644934054848965,-4.812122783466715e-5,-4.81506379139743e-8,-0.0021644159176900527,-4.8071024900689184e-5,-4.809815557247862e-8,-0.0021643141929952214,-4.808594061576428e-5,-4.81168922637752e-8,-0.002164167674411756,-4.814266053659258e-5,-4.818208341414474e-8,-0.0021639667146355628,-4.8214709519840826e-5,-4.8265144796799985e-8,-0.0021637113015193915,-4.8276471408607926e-5,-4.833815104674628e-8,-0.0021634093935051597,-4.8305717497990586e-5,-4.8376751136334334e-8,-0.0021630753860666465,-4.8285336142651836e-5,-4.836216222000512e-8,-0.0021627286667312874,-4.8204863846761885e-5,-4.828283802361071e-8,-0.002162391861482956,-4.8062097732630306e-5,-4.813613888210156e-8,-0.0021620882679398825,-4.786457221389886e-5,-4.792984469758117e-8,-0.0021618381966684985,-4.763020148052184e-5,-4.768283959318655e-8,-0.0021616544721947527,-4.738615688544101e-5,-4.74240049864915e-8,-0.0021615380479013072,-4.716519867376527e-5,-4.718845234479752e-8,-0.002161475302072799,-4.699937039553237e-5,-4.701091284755469e-8,-0.0021614386393250546,-4.6912154688658707e-5,-4.691736184216948e-8,-0.002161391201800069,-4.6911292679655636e-5,-4.691717630397373e-8,-0.002161295075484384,-4.698475296081406e-5,-4.6998506562417824e-8,-0.002161121034202,-4.710162372082691e-5,-4.712886694957854e-8,-0.002160857131367918,-4.7218339997966116e-5,-4.726153824963162e-8,-0.0021605135166616594,-4.728911357216719e-5,-4.734669635449493e-8,-0.002160121614640899,-4.727811102218645e-5,-4.7344670899897986e-8,-0.002159727070259186,-4.71700332472349e-5,-4.72376676723403e-8,-0.002159377681774251,-4.697546153405605e-5,-4.703590761080976e-8,-0.0021591097858532486,-4.672829423936533e-5,-4.677517141941328e-8,-0.002158938074167603,-4.6475408602648845e-5,-4.650582202815821e-8,-0.002158852916009944,-4.626235480050213e-5,-4.627738514230599e-8,-0.002158825801635166,-4.612087538018337e-5,-4.612493766194266e-8,-0.002158819709787541,-4.606270599802699e-5,-4.606214934513943e-8,-0.002158799607308813,-4.608051665422589e-5,-4.6081993496327766e-8,-0.0021587395273344563,-4.615361327504223e-5,-4.616267371658823e-8,-0.002158625286072611,-4.625494118904886e-5,-4.627511694149892e-8,-0.002158453953359905,-4.635691120285143e-5,-4.638936013416345e-8,-0.002158231790057722,-4.643523375110354e-5,-4.647887273854775e-8,-0.002157971911670394,-4.647108233605865e-5,-4.652305041561149e-8,-0.0021576922476335206,-4.6452294121769896e-5,-4.650856384345036e-8,-0.0021574138014324212,-4.637428430326153e-5,-4.6430286990051256e-8,-0.0021571587957101316,-4.624105015071745e-5,-4.629227406134107e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_1.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_1.json new file mode 100644 index 000000000..b4be24167 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_1.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":1000,"numberOfSamples":1000,"samples":[-0.002156948117797158,-4.6066106188504274e-5,-4.610870837852341e-8,-0.0021567976844821175,-4.587262928957953e-5,-4.590411215695837e-8,-0.002156713908245568,-4.569170874283684e-5,-4.5711626484184725e-8,-0.0021566893595621928,-4.555761003533914e-5,-4.5568113732113295e-8,-0.002156700743371349,-4.549983445555494e-5,-4.5505741530892555e-8,-0.0021567115663395065,-4.5533671389188886e-5,-4.5541790676334716e-8,-0.0021566804178876843,-4.5652915406612466e-5,-4.5670622833809834e-8,-0.002156572912636481,-4.582870678241587e-5,-4.58621255953264e-8,-0.0021563728566239655,-4.601620142754535e-5,-4.6068577295811786e-8,-0.0021560880133587525,-4.616711622705171e-5,-4.623794070121091e-8,-0.002155748222189647,-4.62434863816923e-5,-4.6328641438483505e-8,-0.002155396920669294,-4.622782396424562e-5,-4.632067580425877e-8,-0.00215507933393081,-4.612686483113469e-5,-4.621997607570151e-8,-0.0021548310204559523,-4.596856314722607e-5,-4.605556460572259e-8,-0.0021546697448800787,-4.579380803487395e-5,-4.5870948767990285e-8,-0.0021545925009090403,-4.564545026639773e-5,-4.571243253541094e-8,-0.00215457808447119,-4.555777214888923e-5,-4.561767662258407e-8,-0.002154594019620961,-4.554927142265337e-5,-4.560764640929833e-8,-0.002154605368940617,-4.562040509803385e-5,-4.568383677005805e-8,-0.002154582628502511,-4.575613804937631e-5,-4.583074108471704e-8,-0.0021545067042819666,-4.593156748733217e-5,-4.602179515117175e-8,-0.0021543704349080905,-4.6118291920214145e-5,-4.6226298143065905e-8,-0.002154177429419203,-4.628970757896518e-5,-4.64152905393417e-8,-0.0021539395320203554,-4.642448039496704e-5,-4.656547403677698e-8,-0.0021536740325304696,-4.6508347419083976e-5,-4.6661248300741016e-8,-0.002153401212638439,-4.6534852085000904e-5,-4.669548060691322e-8,-0.0021531422886805827,-4.650565883599465e-5,-4.666974436961425e-8,-0.0021529174221249937,-4.6430830311047396e-5,-4.6594529114611347e-8,-0.002152743281384537,-4.632899782380846e-5,-4.648943285318694e-8,-0.0021526297364554913,-4.622682327908873e-5,-4.6382720029024235e-8,-0.0021525757781952213,-4.615665217809799e-5,-4.6309007987320986e-8,-0.0021525657635618595,-4.615111791560906e-5,-4.630363581540198e-8,-0.0021525683606683156,-4.623433111379003e-5,-4.639321479077921e-8,-0.0021525411131787307,-4.641162808298889e-5,-4.658444896551646e-8,-0.00215244181360915,-4.6662730585749126e-5,-4.685650807739798e-8,-0.002152243559761613,-4.69438336830974e-5,-4.716299443903288e-8,-0.0021519463173773905,-4.720028130623982e-5,-4.744536946490242e-8,-0.0021515783140552483,-4.738487646555355e-5,-4.7652539659263205e-8,-0.0021511863195340735,-4.7473012892754915e-5,-4.775714558013054e-8,-0.002150820158632104,-4.74681988823182e-5,-4.7761682951372046e-8,-0.0021505186509381763,-4.739759003524929e-5,-4.769404722497823e-8,-0.002150301454146949,-4.7301602034095665e-5,-4.75967746928141e-8,-0.002150167504080223,-4.722237577724007e-5,-4.751493736774092e-8,-0.0021500984653760494,-4.7194327180898005e-5,-4.7486029043007825e-8,-0.002150065007643072,-4.7238211715320985e-5,-4.753336591146179e-8,-0.002150034011848315,-4.735890504159874e-5,-4.7663329284699034e-8,-0.0021499752813515308,-4.754650144645341e-5,-4.7866189097583804e-8,-0.0021498666614940885,-4.777999559892799e-5,-4.811985529955003e-8,-0.002149696844734374,-4.8032435641353954e-5,-4.8395408706038154e-8,-0.0021494657462589853,-4.8276239272205825e-5,-4.866295866283441e-8,-0.0021491829316347584,-4.848761715432387e-5,-4.8896590036391526e-8,-0.002148864888882999,-4.864954755615883e-5,-4.9077698538029214e-8,-0.002148531969661492,-4.875324012053347e-5,-4.9196590948451486e-8,-0.00214820559302335,-4.879845385417849e-5,-4.925275811633043e-8,-0.0021479058723801398,-4.8793211725869386e-5,-4.9254476683867235e-8,-0.0021476494691693242,-4.875326148772683e-5,-4.921820529983365e-8,-0.0021474473356039884,-4.8701280224926454e-5,-4.916782927985692e-8,-0.002147302025734625,-4.8665427348109735e-5,-4.913330991550414e-8,-0.0021472046146883317,-4.867636961659977e-5,-4.914769826441347e-8,-0.0021471322071707254,-4.8761685544412094e-5,-4.924121019381598e-8,-0.0021470482597085038,-4.893732048233069e-5,-4.943192954490526e-8,-0.002146908584499707,-4.91979967179343e-5,-4.97152190263401E-08,-0.002146674363316176,-4.9511646656850674e-5,-5.0057427768996096e-8,-0.002146328667920062,-4.982422622000098e-5,-5.0400872447169334e-8,-0.0021458875359486144,-5.007688042712524e-5,-5.0682229364308553e-8,-0.002145397011314185,-5.0228379818507437e-5,-5.0856638807463407e-8,-0.0021449161791735768,-5.0270217445764416e-5,-5.091394422090286e-8,-0.002144495917953705,-5.0226434247242504e-5,-5.087865414824122e-8,-0.002144164522903363,-5.01408709895491e-5,-5.079660476566392e-8,-0.002143924532470479,-5.0060878640441164e-5,-5.0717902245852795e-8,-0.002143757959315198,-5.002483607513269e-5,-5.068379162791456e-8,-0.002143634896737234,-5.005585115815337e-5,-5.071984838493151e-8,-0.002143521842854634,-5.0160650756850324e-5,-5.083446444779818e-8,-0.002143388120717485,-5.0331651201626866e-5,-5.102064773664288e-8,-0.002143210184954386,-5.055054311417113e-5,-5.125954074459971e-8,-0.002142974117514982,-5.079251129394976e-5,-5.152482507010141e-8,-0.0021426765074378826,-5.103064468172294e-5,-5.178753018681961e-8,-0.0021423238391256607,-5.124006797853224e-5,-5.202065134245872e-8,-0.002141930651324379,-5.140134181465216e-5,-5.220297342970296e-8,-0.0021415168281439588,-5.150282446702924e-5,-5.2321688446799315e-8,-0.0021411044645297406,-5.154180999406271e-5,-5.237359158139016e-8,-0.0021407148054202576,-5.152449499997826e-5,-5.236496558245039e-8,-0.0021403655678020684,-5.146510002939213e-5,-5.231059043138093e-8,-0.002140068652238457,-5.138444270295482e-5,-5.2232268635753575e-8,-0.002139828133292629,-5.1308028225241545e-5,-5.2156950212399334e-8,-0.002139638422673149,-5.126350568803761e-5,-5.2114230564000163e-8,-0.00213948268691379,-5.1277018333799685e-5,-5.213259191254482e-8,-0.002139332290822501,-5.1367795817320406e-5,-5.223357239670482e-8,-0.0021391489883805194,-5.154098912009453e-5,-5.242383088390882e-8,-0.002138891970010422,-5.1780522562900146e-5,-5.268710604455327e-8,-0.0021385305995390066,-5.20462253084977e-5,-5.2980835455315765e-8,-0.002138059594008942,-5.2280784568316565e-5,-5.324353111816718e-8,-0.002137508049281609,-5.242840674319948e-5,-5.341489927661907e-8,-0.0021369333564798328,-5.245794992558174e-5,-5.3460757754233854e-8,-0.0021364000567887635,-5.237659280739311e-5,-5.338772944526506e-8,-0.0021359554177806913,-5.222499524366457e-5,-5.323816602452792e-8,-0.0021356157132549174,-5.205829004263862e-5,-5.307010206523827e-8,-0.002135367798385966,-5.1925718630202697e-5,-5.293584770307225e-8,-0.0021351802309842655,-5.185853393324863e-5,-5.2869237987871783e-8,-0.002135015709675917,-5.186747116928778e-5,-5.288277568269625e-8,-0.0021348401734937695,-5.194616985504687e-5,-5.2970891829753475e-8,-0.002134627758060293,-5.2076667370690687e-5,-5.311539888620349e-8,-0.002134362664862016,-5.22346501846903e-5,-5.329085053332862e-8,-0.0021340393185033547,-5.2393733389077045e-5,-5.3469096840437146e-8,-0.002133661644592146,-5.252894430972528e-5,-5.362316413179043e-8,-0.0021332416919183183,-5.2619642849676823e-5,-5.373058405670703e-8,-0.002132797639105352,-5.265187989316952e-5,-5.377605953151373e-8,-0.00213235123299873,-5.262008658853691e-5,-5.3753301407695094e-8,-0.0021319247547086106,-5.252787431710746e-5,-5.366582385721862e-8,-0.002131537812166341,-5.2387711692295135e-5,-5.3526527141880856e-8,-0.002131204386649835,-5.221948578729788e-5,-5.335616249926751e-8,-0.002130930436840616,-5.204813499564776e-5,-5.3180922715721016e-8,-0.0021307122475242276,-5.190051666082856e-5,-5.3029303636494595e-8,-0.002130535691096194,-5.1801663288743484e-5,-5.2928303953712826e-8,-0.002130376577415983,-5.1770519389418736e-5,-5.289893815879023e-8,-0.0021302025383327134,-5.1815158911048855e-5,-5.2950976313991277e-8,-0.002129977378036466,-5.192792796725971e-5,-5.3077407334747964E-08,-0.0021296688087945386,-5.208214555192072e-5,-5.325050928388623e-8,-0.0021292592998348823,-5.2233329336141494e-5,-5.342289782969275e-8,-0.002128757014872047,-5.2328224363975537e-5,-5.353718707965699e-8,-0.0021282003685288873,-5.232211388239153e-5,-5.354471701182651e-8,-0.0021276495587692528,-5.219820202071707e-5,-5.342650421322242e-8,-0.002127165444777017,-5.1977374748586926e-5,-5.32037987462269e-8,-0.002126786408919701,-5.1710339300552144e-5,-5.292980367635397e-8,-0.0021265166937946525,-5.145633618560855e-5,-5.2667177244896215e-8,-0.00212633105580082,-5.126167160748416e-5,-5.246538067689548e-8,-0.002126189328271234,-5.114869660600918e-5,-5.234897812409529e-8,-0.0021260510373621883,-5.111638783278097e-5,-5.231801132895357e-8,-0.002125884513579751,-5.114733030685652e-5,-5.235503053809026e-8,-0.0021256702248682435,-5.121572331910457e-5,-5.243327665430199e-8,-0.002125400455812279,-5.1293642979333694e-5,-5.252321996716058e-8,-0.0021250775059338096,-5.1355096043385815e-5,-5.259696904862907e-8,-0.0021247116610059085,-5.1378537621995244e-5,-5.2631164024147827e-8,-0.0021243192352671083,-5.134861185069034e-5,-5.2609026267915535e-8,-0.002123920533294502,-5.125749504161394e-5,-5.252187717870801e-8,-0.002123537513917045,-5.1105899487825944e-5,-5.237017732952232e-8,-0.0021231909824004935,-5.0903510148269925e-5,-5.21639052525058e-8,-0.002122897386272381,-5.066840160744641e-5,-5.192188374186477e-8,-0.0021226656718111524,-5.042508933637542e-5,-5.166975788992617e-8,-0.002122494839571998,-5.0201204525872756e-5,-5.143662126873064e-8,-0.0021223728064571974,-5.002307532138799e-5,-5.125052539179263e-8,-0.002122277063662247,-4.9910792187481684e-5,-5.1133373559448276e-8,-0.002122177350465051,-4.9873571668336e-5,-5.1095958839310544e-8,-0.002122040271899325,-4.990621895883855e-5,-5.113395766297128e-8,-0.002121835670220407,-4.998749569171908e-5,-5.122580454826739e-8,-0.002121544289358671,-5.008151805352115e-5,-5.133380683137773e-8,-0.0021211653940700756,-5.0143498952941705e-5,-5.141007127166793e-8,-0.0021207216447338448,-5.0130441492102875e-5,-5.1407976149345016e-8,-0.002120257496141451,-5.001520456175847e-5,-5.1297441102601807e-8,-0.002119828397979043,-4.9798850489622e-5,-5.107840402680578e-8,-0.0021194826754195456,-4.9513892869127156e-5,-5.078451782729881e-8,-0.002119244086201465,-4.921409445932999e-5,-5.0472444375840066e-8,-0.0021191046402436534,-4.8954748273117716e-5,-5.0200988226733736e-8,-0.002119031138708923,-4.8773978554723135e-5,-5.001124485406591e-8,-0.002118980101862301,-4.8684026206295004e-5,-4.991720030835334e-8,-0.00211891220827597,-4.867379334879302e-5,-4.990812813538284e-8,-0.0021188006530865576,-4.8717674424215837e-5,-4.9957631878584515e-8,-0.0021186330805224884,-4.878489183979079e-5,-5.003335885442783e-8,-0.002118409606923484,-4.8846210672363946e-5,-5.010414572430475e-8,-0.0021181395569648243,-4.887764161794287e-5,-5.0144131459874775e-8,-0.002117838428140765,-4.8862089859800686e-5,-5.013472762586503e-8,-0.0021175254797301053,-4.87900395563563e-5,-5.006548391793509e-8,-0.0021172217039225403,-4.865995177280172e-5,-4.9934517707598465e-8,-0.0021169477453683006,-4.8478584561881674e-5,-4.9748766630150475e-8,-0.002116721392799632,-4.8261007717598124e-5,-4.952391111144196e-8,-0.00211655455107997,-4.802973321358578e-5,-4.928344153787555e-8,-0.002116450096966629,-4.781233066898358e-5,-4.9056238260434893e-8,-0.0021163995074253497,-4.763723300556185e-5,-4.88723175000772e-8,-0.00211638238176434,-4.752806896211847e-5,-4.8757005535652654e-8,-0.0021163687749273766,-4.749765415455074e-5,-4.872463016284184e-8,-0.0021163245129189124,-4.75433801208055e-5,-4.8773504423959966e-8,-0.0021162186131261293,-4.7645689733550204e-5,-4.888400543678275e-8,-0.0021160311239636605,-4.7770598620135224e-5,-4.902087037517744e-8,-0.0021157594156345004,-4.787624496808221e-5,-4.913984622203423e-8,-0.0021154210653734945,-4.792249771712643e-5,-4.919779498322852e-8,-0.0021150518661444766,-4.788171611098116e-5,-4.916427157162084e-8,-0.0021146983037815758,-4.774784549571525e-5,-4.903151581702451e-8,-0.0021144054214774677,-4.754043449876239e-5,-4.881909664190108e-8,-0.002114203335655032,-4.730071511555959e-5,-4.857004998709531e-8,-0.0021140976257717674,-4.7079605315396366e-5,-4.8338297363515245e-8,-0.002114068243449401,-4.6921741162987395e-5,-4.817168920274723e-8,-0.0021140776517754515,-4.685238849929127e-5,-4.8097948508555413e-8,-0.002114084019446718,-4.6872596236596724e-5,-4.81192411375788e-8,-0.002114053227237637,-4.6963141965845496e-5,-4.821604606694751e-8,-0.002113965448400426,-4.7093502898033734e-5,-4.8356449951288814e-8,-0.0021138158726727416,-4.7231060835115885e-5,-4.8505867927921634e-8,-0.0021136117434029157,-4.73475915439524e-5,-4.863405741638106e-8,-0.002113368243224607,-4.742253450655109e-5,-4.8718797175518944e-8,-0.0021131048107557887,-4.7443958322278066e-5,-4.874708212682086e-8,-0.002112842390293642,-4.740840058984932e-5,-4.87150037508711e-8,-0.002112601402461571,-4.732044050097083e-5,-4.8627229494421786e-8,-0.002112399898104981,-4.71923458598116e-5,-4.84965171325286e-8,-0.0021122513870208202,-4.7043586695278016e-5,-4.834314259144425e-8,-0.002112162155506463,-4.689959768605062e-5,-4.8193650389836864e-8,-0.0021121284044120486,-4.678902511400128e-5,-4.807810872069021e-8,-0.002112134192586928,-4.6738909755118304e-5,-4.802520783954363e-8,-0.002112151736011111,-4.676805674809973e-5,-4.8055358790222776e-8,-0.0021121455008559073,-4.68802207502431e-5,-4.8173435647070684e-8,-0.002112080244306887,-4.705993268071947e-5,-4.8364140938563196e-8,-0.0021119310664213338,-4.727368018370931e-5,-4.8592931302070324e-8,-0.002111691895111901,-4.747730114612249e-5,-4.881352739322071e-8,-0.0021113788749667064,-4.7627699607907756e-5,-4.898012188224292e-8,-0.00211102704677318,-4.7694954771803144e-5,-4.9060201272908396e-8,-0.002110681352249585,-4.767075494556609e-5,-4.90436883734857e-8,-0.002110384874318121,-4.7570663804349934e-5,-4.894570849816082e-8,-0.0021101677401916797,-4.7429813825341904e-5,-4.8802430880724736e-8,-0.002110039696581039,-4.729335730533683e-5,-4.866125590022362e-8,-0.0021099884072854364,-4.7204358850854926e-5,-4.8568084600913465e-8,-0.002109983945387274,-4.7192708949043166e-5,-4.855543459993911e-8,-0.0021099879117350232,-4.726846620998511e-5,-4.863507382826351e-8,-0.0021099639576379094,-4.7421428985429237e-5,-4.879720662545984e-8,-0.0021098861854816123,-4.7626298326830003e-5,-4.901567331796005e-8,-0.002109743186109511,-4.7850789510772105e-5,-4.9256450069474826e-8,-0.002109537586825893,-4.8063526347891254e-5,-4.948609768053289e-8,-0.002109282655958739,-4.8239580975826655e-5,-4.967782243823404e-8,-0.0021089979409871034,-4.8363148343395243e-5,-4.981449771751667e-8,-0.002108705341277884,-4.8427999229028034e-5,-4.988923858233261e-8,-0.002108426170116319,-4.843672757019664e-5,-4.990457813568429e-8,-0.0021081790939703336,-4.8399655340769195e-5,-4.987120855545762e-8,-0.002107978462340765,-4.8333815691984267e-5,-4.98068240380907e-8,-0.0021078325085235445,-4.8261883157006745e-5,-4.973500790876879e-8,-0.002107741182028866,-4.8210487087105704e-5,-4.968358842430621e-8,-0.0021076938773007476,-4.820714020935879e-5,-4.9681591379790985e-8,-0.0021076680383246907,-4.827513281127266e-5,-4.975399170959863e-8,-0.002107630376401887,-4.842654419791798e-5,-4.991432609044488e-8,-0.0021075425159545343,-4.865523284848443e-5,-5.015711147352186e-8,-0.0021073713272879244,-4.893349928726431e-5,-5.045403692151433e-8,-0.002107101054149504,-4.921621165090497e-5,-5.075804312180078e-8,-0.00210674158544731,-4.9453141274911964e-5,-5.1016160495136004e-8,-0.0021063277292051657,-4.960526660686225e-5,-5.1186657637328415e-8,-0.0021059088236712936,-4.965767137535703e-5,-5.1252729209342855e-8,-0.002105533355710234,-4.962333434846008e-5,-5.122672710022117e-8,-0.002105235298687669,-4.953725574759237e-5,-5.114433301511661e-8,-0.0021050267301768173,-4.9444765358431426e-5,-5.105262008384059e-8,-0.0021048975954977385,-4.938895653500951e-5,-5.099704564916817e-8,-0.0021048209457205044,-4.940083264676395e-5,-5.1011036159970786e-8,-0.0021047611320736954,-4.9493878141675046e-5,-5.110997819652719e-8,-0.0021046825545899023,-4.9663315734863536e-5,-5.1290024568352304e-8,-0.002104557033149279,-4.98893453161492e-5,-5.1531150434198844e-8,-0.0021043684802190066,-5.0143026698940785e-5,-5.1803180748147716e-8,-0.002104114312419352,-5.0393089164750924e-5,-5.2073008844431506e-8,-0.0021038039107087792,-5.0611974369170696e-5,-5.2311154609061635e-8,-0.002103455142864527,-5.077997300985246e-5,-5.249634587215205e-8,-0.0021030901973043527,-5.088713159052434e-5,-5.261767665298347e-8,-0.002102731754757487,-5.093327497583167e-5,-5.2674658453290784e-8,-0.002102400038249737,-5.0926853473763044e-5,-5.267593710089334e-8,-0.002102110741705476,-5.088333895282607e-5,-5.2637516149960456e-8,-0.002101873489403106,-5.08235740242651e-5,-5.2580999673824274e-8,-0.0021016904381226816,-5.07720385838116e-5,-5.2531862498246874e-8,-0.0021015548084289933,-5.0754644122074386e-5,-5.2517309070279127e-8,-0.002101449525764805,-5.079541727592946e-5,-5.256294807274047e-8,-0.002101346863688587,-5.091147619245311e-5,-5.268753767417356e-8,-0.0021012107625705593,-5.110647842638639e-5,-5.2895930277749896e-8,-0.0021010036231113496,-5.1364431323432054e-5,-5.317225671965255e-8,-0.0021006978474307205,-5.164780092740599e-5,-5.347763770609452e-8,-0.0021002887607210427,-5.1904283966139336e-5,-5.3757151991875933e-8,-0.0020998017811831972,-5.2082983385010847e-5,-5.3956856249473105e-8,-0.002099287305051419,-5.2153786677272464e-5,-5.404424493360183e-8,-0.002098803714303415,-5.211938886395136e-5,-5.402099729340937e-8,-0.0020983970909576486,-5.201310176200273e-5,-5.392087032373497e-8,-0.0020980879471518285,-5.1884788106360025e-5,-5.379525398388802e-8,-0.0020978694594535633,-5.178355560077695e-5,-5.3695353664609535e-8,-0.0020977146033212875,-5.1744897802943776e-5,-5.3658858151211176e-8,-0.0020975867206337855,-5.17850538647107e-5,-5.370387698001164e-8,-0.002097449252174256,-5.1901448471996434e-5,-5.382901325735156e-8,-0.0020972727165282454,-5.2076755488728516e-5,-5.4017187239652266e-8,-0.002097038679265766,-5.228448053746355e-5,-5.424119501315798e-8,-0.002096741115512614,-5.2494770950254756e-5,-5.446974146690214e-8,-0.0020963856479537316,-5.267968073580639e-5,-5.467310941300608e-8,-0.0020959871806476727,-5.281730553664611e-5,-5.482773870037851e-8,-0.002095566547851664,-5.2894425618154075e-5,-5.49192091763326e-8,-0.0020951467983804607,-5.2907580747666326e-5,-5.494346629557186e-8,-0.0020947496865052926,-5.2862703551995284e-5,-5.490641407062349e-8,-0.00209439283463895,-5.277366064911636e-5,-5.482230500560337e-8,-0.002094087719578533,-5.266022168051224e-5,-5.471156076175677e-8,-0.0020938383034884785,-5.2545818362760925e-5,-5.459846822588298e-8,-0.00209364009071615,-5.245512424241938e-5,-5.4508786421523974e-8,-0.002093479524987209,-5.241128303972207e-5,-5.4467015989831044e-8,-0.002093333866675805,-5.243244496307399e-5,-5.449285675295966e-8,-0.002093172238328941,-5.25272454837531e-5,-5.459637339444828e-8,-0.002092959192295158,-5.2689536740216397e-5,-5.47721861308031e-8,-0.002092662162437497,-5.289419192472436e-5,-5.4994709404817255e-8,-0.002092262731012093,-5.3097515495686634e-5,-5.5218327291160634e-8,-0.0020917682925749906,-5.3246152076680836e-5,-5.5386719323868286e-8,-0.0020912168729252238,-5.32948950916572e-5,-5.5451705931345774e-8,-0.00209066831104737,-5.322638039161152e-5,-5.539407826225248e-8,-0.002090182976448214,-5.306061034027742e-5,-5.523368866112795e-8,-0.0020897991792229852,-5.2847036022818596e-5,-5.502129784760488e-8,-0.0020895220312050072,-5.264403046194828e-5,-5.481735951820511e-8,-0.002089327651578887,-5.2498344531242285e-5,-5.4670817165440435e-8,-0.002089176601984936,-5.243402752975581e-5,-5.46075905285881e-8,-0.002089027832962104,-5.2451886161662154e-5,-5.462976227025945e-8,-0.002088848145979607,-5.253524957931374e-5,-5.4721159636310425e-8,-0.002088616519163286,-5.265749417095675e-5,-5.485481113266398e-8,-0.0020883247601802828,-5.278870213189013e-5,-5.499971074275159e-8,-0.0020879761659435914,-5.290068935685728e-5,-5.512613172786507e-8,-0.002087583221816599,-5.297058683962383e-5,-5.520959628157752e-8,-0.002087164777385674,-5.29832296796577e-5,-5.5233626895864976e-8,-0.002086742950109644,-5.2932455223265686e-5,-5.519126877302781e-8,-0.002086339956581604,-5.282138748957507e-5,-5.508542075950947e-8,-0.0020859750527439137,-5.266171847400609e-5,-5.492801945295256e-8,-0.0020856618891764334,-5.247200185689632e-5,-5.4738177469182e-8,-0.0020854066000901466,-5.227520696881749e-5,-5.453962120190033e-8,-0.0020852067040709943,-5.209587655834655e-5,-5.4357819901512334e-8,-0.002085050761531667,-5.19570440334916e-5,-5.421693100956444e-8,-0.0020849188250382576,-5.187695475340274e-5,-5.4136513752244604e-8,-0.0020847838283227895,-5.1865633386018315e-5,-5.4127943797766366e-8,-0.002084614302700284,-5.192134366393279e-5,-5.4190517439071605e-8,-0.002084379177216386,-5.202743147570318e-5,-5.4307801867957737e-8,-0.0020840552632532838,-5.2151132764179095e-5,-5.444603412637725e-8,-0.0020836367229090016,-5.2246983387897786e-5,-5.4557508305702125e-8,-0.0020831432642481086,-5.226727446908682e-5,-5.45915998704627e-8,-0.00208262110484632,-5.217892051956154e-5,-5.451267651801983e-8,-0.0020821314693878165,-5.1979995231158984e-5,-5.4317639028435655e-8,-0.002081728580818981,-5.170500269403149e-5,-5.404156653193917e-8,-0.0020814384597434145,-5.1412711832119855e-5,-5.374512512192592e-8,-0.0020812512548079114,-5.1162601970100065e-5,-5.349017232141276e-8,-0.0020811301739922143,-5.0993981576040526e-5,-5.331814200443522e-8,-0.0020810288964036128,-5.091778800135395e-5,-5.324144113486929e-8,-0.0020809068797548306,-5.0920708246115815e-5,-5.324742058440525e-8,-0.002080737412895719,-5.0975044648063965e-5,-5.330822538299496e-8,-0.0020805090765344805,-5.104836915559959e-5,-5.339054776415609e-8,-0.0020802235105041346,-5.111032019083676e-5,-5.3462654102947513e-8,-0.0020798920087048986,-5.113645247824958e-5,-5.349856905196274e-8,-0.0020795322310856322,-5.111013067736273e-5,-5.3480319452971573e-8,-0.002079165270330489,-5.102337145825212e-5,-5.339903379738613e-8,-0.002078812929807196,-5.0877027322918444e-5,-5.325522084868336e-8,-0.0020784951021789507,-5.0680399754512935e-5,-5.3058323468374344e-8,-0.0020782272019827155,-5.0450194248135284e-5,-5.2825530483115977E-08,-0.002078017796904138,-5.020860124030872e-5,-5.257971627504764e-8,-0.002077866846658982,-4.998045829403398e-5,-5.234652763334412e-8,-0.002077764949227266,-4.9789769777337244e-5,-5.215090293742938e-8,-0.002077693796213007,-4.96559598259346e-5,-5.201333928555749e-8,-0.002077627945643406,-4.959024266445353e-5,-5.1946199184189877e-8,-0.0020775379573369774,-4.959258117963107e-5,-5.1950458272378425e-8,-0.002077394847759163,-4.964972754567608e-5,-5.20133946027985e-8,-0.0020771757956997636,-4.973494898228385e-5,-5.2107934240242226e-8,-0.0020768707597667575,-4.981047198397003e-5,-5.21948928946358e-8,-0.002076488719453658,-4.9833950263944744e-5,-5.222962698296795e-8,-0.0020760607752435137,-4.976947981592237e-5,-5.217368787144459e-8,-0.0020756363255762,-4.960119521007246e-5,-5.2009327355383566e-8,-0.0020752699804712604,-4.934370262592132e-5,-5.175068444401802e-8,-0.002075002258206543,-4.904167747827994e-5,-5.144355599514386e-8,-0.002074843505137487,-4.875527236421879e-5,-5.115030112001243e-8,-0.002074770885112081,-4.85375576824606e-5,-5.092642497342114e-8,-0.0020747400769557814,-4.841647775431193e-5,-5.080178737543361e-8,-0.00207470360549399,-4.839002227744564e-5,-5.077538800998163e-8,-0.0020746254988324455,-4.843356303392952e-5,-5.082265162308837e-8,-0.002074487411936633,-4.8512066229528486e-5,-5.090778965666528e-8,-0.002074287589063454,-4.8590652566310444e-5,-5.099462507142112e-8,-0.0020740364229402913,-4.864094211986411e-5,-5.105327235216716e-8,-0.0020737516117730406,-4.864364377231825e-5,-5.1063071939584795e-8,-0.0020734542779023923,-4.858893563414716e-5,-5.101324060777878e-8,-0.0020731661303226793,-4.847596434842968e-5,-5.090249495797251e-8,-0.0020729072209830705,-4.831209437291138e-5,-5.073826475982897e-8,-0.002072693884949742,-4.81119863715466e-5,-5.053563043378728e-8,-0.0020725366574624164,-4.789627336170478e-5,-5.031584456326077e-8,-0.002072438244777095,-4.76894406001386e-5,-5.0104114550785046e-8,-0.0020723920062757552,-4.751664405123388e-5,-4.992640119935618e-8,-0.002072381620741844,-4.7399626029792626e-5,-4.980535122260885e-8,-0.002072382493146707,-4.735231857382114e-5,-4.975587690759763e-8,-0.002072365126038206,-4.737703392101369e-5,-4.9781211913094104e-8,-0.0020723002115636837,-4.746229500170882e-5,-4.987048608611002e-8,-0.002072164686144449,-4.758318793891755e-5,-4.9998772052492005e-8,-0.0020719476479477516,-4.7704672733856255e-5,-5.0130175273880784e-8,-0.0020716548762382742,-4.778785681354576e-5,-5.0224127220180263E-08,-0.002071310506859259,-4.779875995902617e-5,-5.0244500497020163e-8,-0.0020709542977483263,-4.7718213318121765e-5,-5.017014103512715e-8,-0.002070633392768585,-4.755018007788747e-5,-5.0003890279004845e-8,-0.0020703892518739446,-4.7324560969728754e-5,-4.9775852540256276e-8,-0.002070243556064142,-4.709095642120351e-5,-4.953713265926498e-8,-0.002070189582318923,-4.690347790577672e-5,-4.93441179578025e-8,-0.002070194443298303,-4.6802416516879245e-5,-4.9239360290252976e-8,-0.002070211781957937,-4.680166452708117e-5,-4.923831183218621e-8,-0.0020701982102484394,-4.688757653287808e-5,-4.9327848095478144e-8,-0.0020701254502533,-4.702784331254064e-5,-4.947517696147768e-8,-0.002069984310820259,-4.718405080239909e-5,-4.9640685225447364e-8,-0.002069781881963152,-4.732196406548829e-5,-4.978861540585559e-8,-0.002069535727065262,-4.741708010271714e-5,-4.989300757237092e-8,-0.0020692682062174064,-4.7456088345065395e-5,-4.993946266170168e-8,-0.0020690022999483347,-4.743604483466135e-5,-4.9924473337753236e-8,-0.0020687589325963695,-4.736278778201662e-5,-4.9853830021207306e-8,-0.0020685552095647745,-4.724938104372905e-5,-4.9740931313843226e-8,-0.0020684029471759965,-4.7114721697835956e-5,-4.9605222607596616e-8,-0.002068307113632894,-4.698198596032385e-5,-4.9470525465095644e-8,-0.002068264210735056,-4.6876359384872586e-5,-4.936274057243991e-8,-0.0020682611085878133,-4.682161851644506e-5,-4.930645763105391e-8,-0.002068275207205279,-4.683559588593652e-5,-4.932042167102954e-8,-0.002068276840995726,-4.692525626768796e-5,-4.941250393336782e-8,-0.0020682343681795467,-4.708286526062035e-5,-4.9575641749325084e-8,-0.002068121336074826,-4.728509807584928e-5,-4.9786665145860586e-8,-0.002067923897843404,-4.7496385865671217e-5,-5.0009436305109905e-8,-0.0020676460373650566,-4.7676378285878495e-5,-5.0202301586995866e-8,-0.0020673105644500745,-4.77898332491647e-5,-5.032822287464823e-8,-0.002066955050994269,-4.781625324925658e-5,-5.036486940750825e-8,-0.0020666233471462645,-4.7756464778773514e-5,-5.0311739548860085e-8,-0.002066354580310086,-4.763398187934115e-5,-5.0191974764700023E-08,-0.0020661724200392493,-4.7490128745401975e-5,-5.004766473653001e-8,-0.0020660778693884388,-4.737345115377653e-5,-4.9929071504630356e-8,-0.002066048524221078,-4.732603099287772e-5,-4.9880421809209325e-8,-0.0020660453797246812,-4.737129330364156e-5,-4.992704483799921e-8,-0.0020660250285791494,-4.7508085193365105e-5,-5.006889477610717e-8,-0.0020659523841825966,-4.7713206060515434e-5,-5.028283650859611e-8,-0.0020658090029066624,-4.795053885650078e-5,-5.053188956294247e-8,-0.002065594771846483,-4.818222569886375e-5,-5.0776768516938594e-8,-0.002065324117375244,-4.837752105633615e-5,-5.0985184294608874e-8,-0.002065019767433622,-4.851728875182688e-5,-5.1136723525022014e-8,-0.0020647068446275245,-4.8594594783670716e-5,-5.1223668798557995e-8,-0.0020644086381638085,-4.861304972472082e-5,-5.124938607964203e-8,-0.002064144097864555,-4.8584434676873395e-5,-5.122584536957933e-8,-0.002063926468637026,-4.852647936788248e-5,-5.1171225339119544e-8,-0.0020637623786124806,-4.846100605905334e-5,-5.11079143446867e-8,-0.0020636508879348973,-4.841213269692522e-5,-5.106066445180714e-8,-0.002063582435238546,-4.8403934845334516e-5,-5.1054290024565175e-8,-0.002063538168965467,-4.8457018960260466e-5,-5.1110281108115146e-8,-0.002063490642966396,-4.858388401565267e-5,-5.12421042751145e-8,-0.002063407082221286,-4.8783799285689586e-5,-5.144985988199522e-8,-0.0020632559577338995,-4.9039126710606216e-5,-5.1716281192541857e-8,-0.0020630160427410785,-4.931581340272001e-5,-5.200696102828744e-8,-0.002062684941410063,-4.95699691789468e-5,-5.2276889335559116e-8,-0.0020622829172062315,-4.9759696099219955e-5,-5.2482526161209284e-8,-0.0020618491854511264,-4.9858113731482825e-5,-5.259526114699326e-8,-0.0020614313126430684,-4.98622055714111e-5,-5.261072103110058e-8,-0.0020610717124268244,-4.979388598943105e-5,-5.255018976438976e-8,-0.00206079622917913,-4.9693307260769264e-5,-5.2454091838812215e-8,-0.002060608259750969,-4.960738794563041e-5,-5.2370482519734586e-8,-0.0020604893759882652,-4.957747244117635e-5,-5.234243575739418e-8,-0.0020604054583355405,-4.962944279368117e-5,-5.239769021503708e-8,-0.00206031622426224,-4.976850689463904e-5,-5.254290844467591e-8,-0.0020601854537221713,-4.997959938080869e-5,-5.276367005121703e-8,-0.002059989171420568,-5.0232827495872717e-5,-5.3029781808228276e-8,-0.0020597197607184654,-5.049196909900188e-5,-5.330394627200139e-8,-0.002059385412596773,-5.0723251719086136e-5,-5.35509256812709e-8,-0.002059005920337264,-5.0901931837912855e-5,-5.374455696877302e-8,-0.0020586068325025636,-5.1015438910330984e-5,-5.387122879648511e-8,-0.0020582139353274493,-5.106332394108202e-5,-5.3929977985066915e-8,-0.0020578492211639973,-5.105516573900859e-5,-5.3930358175955645e-8,-0.002057528552028513,-5.100771436745336e-5,-5.388943054436595e-8,-0.0020572605931187234,-5.094215881551009e-5,-5.382886471043966e-8,-0.0020570463828137086,-5.088182315066045e-5,-5.3772543032440546e-8,-0.0020568790450358394,-5.0850080664488783e-5,-5.3744486331419684e-8,-0.0020567435004348058,-5.086799254343324e-5,-5.376655829843546e-8,-0.0020566165172875277,-5.0951144908211624e-5,-5.38553140117008e-8,-0.002056468009873697,-5.1105440079060466e-5,-5.40176449522486e-8,-0.002056264887091375,-5.13224346701609e-5,-5.4245796040435814e-8,-0.0020559784072281106,-5.157623756835036e-5,-5.451389058844007e-8,-0.0020555942713637253,-5.1825209665744814e-5,-5.4779432398487804e-8,-0.0020551217432332926,-5.202108670480498e-5,-5.4992587084446835e-8,-0.002054595971680873,-5.212442299521637e-5,-5.511211091620739e-8,-0.002054069540827032,-5.212000715115373e-5,-5.51213256728815e-8,-0.0020535954582683582,-5.202381128623128e-5,-5.503543356010499e-8,-0.002053209667556904,-5.187728707364314e-5,-5.48959111155173e-8,-0.002052921320923942,-5.1732422490422854e-5,-5.4755490408141264e-8,-0.0020527136286440546,-5.163540619096735e-5,-5.466165472016251e-8,-0.002052552370246584,-5.16152962902263e-5,-5.464504010682952e-8,-0.002052397089200715,-5.167979779085585e-5,-5.471483931427527e-8,-0.0020522111175157827,-5.1817015362214554e-5,-5.4860156203498216e-8,-0.002051968552414977,-5.200091488002448e-5,-5.505518884494557e-8,-0.002051657757119859,-5.219838699551085e-5,-5.5266251947721564e-8,-0.0020512816489339715,-5.237636228823249e-5,-5.5459107581815276e-8,-0.0020508553095427784,-5.2507832957142995e-5,-5.5605365688318714e-8,-0.0020504017421625635,-5.2575890404729004e-5,-5.568690921630114e-8,-0.002049946887543557,-5.257533993074332e-5,-5.5697769382127575e-8,-0.002049514984834118,-5.251207506856239e-5,-5.5643570315387093e-8,-0.0020491250330573053,-5.240083953067565e-5,-5.553919797775131e-8,-0.0020487886736325817,-5.226219084775036e-5,-5.540559549606092e-8,-0.002048509350314085,-5.211942672300324e-5,-5.526655233827838e-8,-0.0020482822912756475,-5.1995876311308334e-5,-5.514595440180733e-8,-0.0020480948969156336,-5.191250486751777e-5,-5.506543751527602e-8,-0.0020479273660762303,-5.188554270222557e-5,-5.5042078174011434e-8,-0.002047753716271682,-5.19237834715236e-5,-5.5085654827554707e-8,-0.002047543853386551,-5.202532476066097e-5,-5.5195172880639046e-8,-0.0020472677925593256,-5.2174216124140644e-5,-5.535514660858792e-8,-0.002046902870774027,-5.2338771760351975e-5,-5.553355877045675e-8,-0.0020464432837271392,-5.247451873274851e-5,-5.568470840459575e-8,-0.0020459084093877532,-5.253449204712567e-5,-5.575981860047395e-8,-0.002045343640214381,-5.2486027294355265e-5,-5.5724461720487053e-8,-0.002044808785656605,-5.2326853813685626e-5,-5.557525555895152e-8,-0.002044356731611969,-5.208986005362827e-5,-5.534487592771635e-8,-0.002044013525552351,-5.183141847200364e-5,-5.5090255370018856e-8,-0.002043771226817781,-5.160953417781544e-5,-5.48704621303244e-8,-0.0020435956589243583,-5.1464429347744986e-5,-5.472704260792385e-8,-0.0020434418674889353,-5.1410036594933055e-5,-5.4675282541850294e-8,-0.0020432684427998627,-5.14362548539681e-5,-5.470618039648655e-8,-0.0020430462096218717,-5.1516940304592496e-5,-5.4794150517663037e-8,-0.0020427612302023604,-5.161886518563504e-5,-5.490581755587025e-8,-0.002042413976632722,-5.170911019925943e-5,-5.50074620408479e-8,-0.0020420165420526716,-5.1760253982835196e-5,-5.5070471238764245e-8,-0.0020415890123641396,-5.1753638794210315e-5,-5.507496856439569e-8,-0.002041155494939975,-5.168102371657047e-5,-5.501178570621877e-8,-0.0020407401651533347,-5.154474405169965e-5,-5.488278817879703e-8,-0.0020403637204026146,-5.135653343018677e-5,-5.4699684377973364e-8,-0.002040040576882192,-5.113526412477106e-5,-5.448162890443747e-8,-0.002039777091455139,-5.09039490226065e-5,-5.425206240270826e-8,-0.0020395709362431877,-5.068649756636404e-5,-5.4035371776647424e-8,-0.002039411459954195,-5.050467571637247e-5,-5.385385724355181e-8,-0.002039280756574348,-5.037542727193322e-5,-5.372512326084712e-8,-0.0020391552857087123,-5.030852534711591e-5,-5.365977061904039e-8,-0.0020390080427771986,-5.030447590753775e-5,-5.365921376204627e-8,-0.002038811568452725,-5.0352607930303213e-5,-5.3713516384989046e-8,-0.0020385424324039243,-5.042973944197244e-5,-5.379970190700536e-8,-0.0020381875739485158,-5.050077044952324e-5,-5.388206675784495e-8,-0.0020377516616928775,-5.052330199125621e-5,-5.391680200972993e-8,-0.0020372625651711995,-5.045802416725423e-5,-5.386277190055731e-8,-0.0020367698775526524,-5.028392416035833e-5,-5.3697376840582164e-8,-0.0020363321435952564,-5.001196000452072e-5,-5.34308014077663e-8,-0.0020359951521852593,-4.968703486004547e-5,-5.310816086035136e-8,-0.0020357726478473404,-4.937288418461528e-5,-5.279414480895378e-8,-0.0020356419556401216,-4.9126855995544544e-5,-5.2547399322285394e-8,-0.002035556684070434,-4.897959533240644e-5,-5.2399885499866514e-8,-0.0020354668174017705,-4.892970414356411e-5,-5.2351307750795756e-8,-0.0020353344578759418,-4.8951698867931034e-5,-5.237686688565701e-8,-0.0020351402813209166,-4.900893595997211e-5,-5.2440021527677685e-8,-0.0020348825479860966,-4.906468718670452e-5,-5.250353037457378e-8,-0.0020345726105927375,-4.908894182699448e-5,-5.253641005057569e-8,-0.002034229863541913,-4.906144649731033e-5,-5.251727392128725e-8,-0.002033877432711455,-4.897243922319491e-5,-5.2435389666249733e-8,-0.002033538711092817,-4.882223756648143e-5,-5.2290488844127926e-8,-0.002033234470164266,-4.8620156756388854e-5,-5.2091736421230884e-8,-0.0020329804185158853,-4.838285072517303e-5,-5.185597492180308e-8,-0.0020327852353072594,-4.813206614562613e-5,-5.160531630998899e-8,-0.002032649254192641,-4.789178910703803e-5,-5.136415864036497e-8,-0.00203256409568354,-4.7684964149517676e-5,-5.115586867184493e-8,-0.002032513412831578,-4.7530207576543425e-5,-5.099954932398015e-8,-0.0020324746777436327,-4.743890663944881e-5,-5.0907215491822745e-8,-0.002032421864725609,-4.741298395352246e-5,-5.088156196373777e-8,-0.002032328861343699,-4.744359026821503e-5,-5.091451930689139e-8,-0.002032173443614939,-4.7510913626487626e-5,-5.098678990055797e-8,-0.002031941783002499,-4.75853718193778e-5,-5.106873150905396e-8,-0.0020316332829377146,-4.763092567556373e-5,-5.112349305662727e-8,-0.002031264678451989,-4.7611506845454626e-5,-5.111354889776993e-8,-0.0020308711459007655,-4.7500835256465015e-5,-5.101094070015697e-8,-0.002030501384939176,-4.7293891553481265e-5,-5.0809346057054425e-8,-0.0020302046550841244,-4.7015069114082157e-5,-5.053271389164446e-8,-0.002030012417735536,-4.6715860633814e-5,-5.023306514824246e-8,-0.0020299237206302333,-4.645858056483108e-5,-4.997393446583235e-8,-0.002029904534219609,-4.629246101907128e-5,-4.980599835191041e-8,-0.0020299027081861383,-4.6235733219535855e-5,-4.974874457112798e-8,-0.0020298691085456756,-4.6273355836021885e-5,-4.9787942532947575e-8,-0.002029772836986357,-4.6368492929145236e-5,-4.9886997870461254e-8,-0.0020296053518841788,-4.6478270704142267e-5,-5.0002696473796485e-8,-0.0020293762284797076,-4.6565779984025805e-5,-5.009732090515303e-8,-0.0020291058975264805,-4.660586503998099e-5,-5.0144678766039385e-8,-0.0020288190745721122,-4.658611551409667e-5,-5.013139050785385e-8,-0.0020285401833065263,-4.650544482721242e-5,-5.0055709880198454e-8,-0.0020282905163081324,-4.637198758862261e-5,-4.9925521941264115e-8,-0.0020280863812595215,-4.6201017541421475e-5,-4.975620376898143e-8,-0.002027937697407739,-4.6012910954525015e-5,-4.95684364968778e-8,-0.0020278468548150497,-4.5830932166805734e-5,-4.938584335030445e-8,-0.0020278079352926354,-4.5678563130217145e-5,-4.923225233991149e-8,-0.0020278066732735607,-4.5576287146234076e-5,-4.9128512005390405e-8,-0.0020278216052989797,-4.553814792964579e-5,-4.908913495339701e-8,-0.0020278266184087235,-4.5568694544187735e-5,-4.91192941943901e-8,-0.0020277947861438816,-4.566099727855335e-5,-4.921277950752152e-8,-0.0020277030598136164,-4.579640243999685e-5,-4.9351559556919325e-8,-0.0020275370670149273,-4.5946459644631754e-5,-4.950743825762933e-8,-0.0020272951641109476,-4.6077038467505365e-5,-4.964594133297112e-8,-0.0020269909380996286,-4.615441491887575e-5,-4.9732349917762104e-8,-0.002026653192492816,-4.615293081887066e-5,-4.973956903588067e-8,-0.002026322209052732,-4.606314805429271e-5,-4.965671815932576e-8,-0.0020260414134917063,-4.5898197313257225e-5,-4.949598467985722e-8,-0.002025845064816443,-4.569487890022771e-5,-4.929407616837752e-8,-0.0020257453978966516,-4.550622741121225e-5,-4.9104815330766504e-8,-0.0020257254701901042,-4.538541867435896e-5,-4.898274157296879e-8,-0.0020257433889951937,-4.536680350718691e-5,-4.89636608578841e-8,-0.0020257476215753702,-4.5453789008186565e-5,-4.905208248604179e-8,-0.002025695654193513,-4.562012774480506e-5,-4.922225373647776e-8,-0.0020255663701208917,-4.582262170758979e-5,-4.943082479997011e-8,-0.0020253618227586557,-4.6016984020625265e-5,-4.963283638283841e-8,-0.00202510099803616,-4.6169328034816214e-5,-4.979343944742674e-8,-0.002024811017417274,-4.626077683867761e-5,-4.989278000082901e-8,-0.002024519795827304,-4.6286832571634604e-5,-4.992561400738215e-8,-0.0020242514862415977,-4.625433913083903e-5,-4.989840752411386e-8,-0.002024024252686185,-4.617810969109077e-5,-4.982595556164917e-8,-0.0020238493406938953,-4.607808430854788e-5,-4.972841725462505e-8,-0.0020237306112493255,-4.597702408116703e-5,-4.96288581956967e-8,-0.002023664162763472,-4.589834984431947e-5,-4.955099750636145e-8,-0.0020236381094273855,-4.586365827157764e-5,-4.951673189348936e-8,-0.0020236329502209293,-4.5889656355000434e-5,-4.954314934249165e-8,-0.002023623153744319,-4.5984715081919234e-5,-4.963915423232379e-8,-0.0020235804546441657,-4.6145777376813115e-5,-4.980235686787022e-8,-0.002023478863220688,-4.635676148666589e-5,-5.0017332271608656e-8,-0.0020233006158513526,-4.658965624449702e-5,-5.025648223081647e-8,-0.002023041531229927,-4.6808945440860525e-5,-5.048423155390615e-8,-0.0020227139642913913,-4.6978896318268104e-5,-5.066420578545552e-8,-0.002022346013528821,-4.7072161309276584e-5,-5.0767917079637096e-8,-0.002021976583923614,-4.7077557162162256e-5,-5.0782829172766134e-8,-0.002021646938817805,-4.700482993717928e-5,-5.071753209060727e-8,-0.0020213903373314294,-4.688457071627136e-5,-5.060204845365824e-8,-0.00202122225761361,-4.676225438165741e-5,-5.048208770780828e-8,-0.002021134399579563,-4.668682793085823e-5,-5.040757499631068e-8,-0.0020210955157597492,-4.66964938733245e-5,-5.041810897949245e-8,-0.002021060207166187,-4.680660727557303e-5,-5.053039604591645e-8,-0.0020209831787395298,-4.700501284627893e-5,-5.073317426465869e-8,-0.0020208331782008877,-4.7257207541469374e-5,-5.0992163914768974e-8,-0.002020600749527367,-4.751873684499668e-5,-5.126249359928724e-8,-0.002020297495132843,-4.7748817668834114e-5,-5.150253416122725e-8,-0.002019949045350994,-4.791973032907616e-5,-5.168357842505219e-8,-0.002019586148214338,-4.801998291591459e-5,-5.1793273968425187e-8,-0.0020192374342056386,-4.8052601996660434e-5,-5.183409256541799e-8,-0.002018925159106304,-4.8031175323490096e-5,-5.181942050354247e-8,-0.0020186634942643855,-4.797571811880198e-5,-5.1769350061628944e-8,-0.002018458307559683,-4.7909321720409155e-5,-5.17071934570522e-8,-0.0020183074793059634,-4.7855657746552463e-5,-5.1656878184229704e-8,-0.0020182012242393878,-4.783688725574289e-5,-5.164083264519561e-8,-0.0020181224346406887,-4.7871384574551e-5,-5.167777089044754e-8,-0.002018047515893418,-4.797092449356852e-5,-5.177995991815182e-8,-0.0020179484270965854,-4.813745696818201e-5,-5.1950004632217014e-8,-0.0020177966111187182,-4.836022705575067e-5,-5.217785319666721e-8,-0.0020175689778127058,-4.861471743161788e-5,-5.243952149084699e-8,-0.0020172549083493363,-4.886518940475764e-5,-5.2699404555608824e-8,-0.0020168618491771245,-4.9071739379400246e-5,-5.291720278700551e-8,-0.0020164165457899337,-4.920074189090056e-5,-5.305839885690176e-8,-0.0020159601254947663,-4.923537724905972e-5,-5.310497994930823e-8,-0.0020155377782343923,-4.9182101111894395e-5,-5.3062208619770655e-8,-0.0020151863264922898,-4.9070186505180795e-5,-5.2958496549887175e-8,-0.0020149239683831454,-4.894424255995497e-5,-5.28381974040878e-8,-0.002014745466484543,-4.8852234007670655e-5,-5.2749744360003565e-8,-0.002014623980385843,-4.8832737442584404e-5,-5.2732795661562925E-08,-0.0020145187675945538,-4.8905033515197663e-5,-5.2807996323674024e-8,-0.002014386463354211,-4.9064737170752646e-5,-5.297217537397421e-8,-0.0020141926071653754,-4.928613889269881e-5,-5.3200321420099145e-8,-0.002013919923050992,-4.953032530867741e-5,-5.3453543629696204e-8,-0.002013571006866503,-4.975617191211685e-5,-5.369014468097558e-8,-0.0020131652167542056,-4.993046123284049e-5,-5.3875992139383384e-8,-0.002012731692604997,-5.0034158097124634e-5,-5.399109718532883e-8,-0.0020123014742402913,-5.0063845602625036e-5,-5.403129483295887e-8,-0.00201190121087524,-5.002933955111049e-5,-5.4005977959494064e-8,-0.002011549521326985,-4.994945558883987e-5,-5.393385164637899e-8,-0.002011255743455944,-4.984764678639762e-5,-5.383846809376056e-8,-0.0020110201985696686,-4.974843179222414e-5,-5.374453985485008e-8,-0.002010835083772604,-4.9674777295965575e-5,-5.367526613695328e-8,-0.0020106854277154628,-4.964606496865315e-5,-5.365032901804489e-8,-0.0020105500400673802,-4.9676073962541255e-5,-5.3683953076972764e-8,-0.0020104028617102853,-4.9770593190928885e-5,-5.3782559234610896e-8,-0.0020102154280196164,-4.992472116898015e-5,-5.39419945769669e-8,-0.002009961203093299,-5.01205774324166e-5,-5.4145045648848874e-8,-0.0020096220475094026,-5.032702956215601e-5,-5.436091558231032e-8,-0.0020091956873586328,-5.0503577918817376e-5,-5.454893403638213e-8,-0.0020087010935627442,-5.060963041617747e-5,-5.466782814365228e-8,-0.0020081776870822868,-5.06175125618987e-5,-5.468889528583259e-8,-0.0020076760813480246,-5.052404157729019e-5,-5.4607820427235687e-8,-0.0020072426309083852,-5.03543523152836e-5,-5.444874990717472e-8,-0.0020069043511348767,-5.015493124700536e-5,-5.42575575233768e-8,-0.0020066610667815107,-4.997871174697851e-5,-5.40871357697118e-8,-0.0020064875013838,-4.98690470565664e-5,-5.3981449732444325e-8,-0.0020063429428621477,-4.9848723760962696e-5,-5.396442162152271e-8,-0.0020061836818402717,-4.991653940438004e-5,-5.40361687618578e-8,-0.0020059740082301832,-5.005060728795719e-5,-5.4175883241144576e-8,-0.0020056933781890086,-5.021595398427699e-5,-5.434910207886136e-8,-0.0020053390005447076,-5.037374382076034e-5,-5.4516829286568113e-8,-0.0020049242019915922,-5.048986269802197e-5,-5.464425732666e-8,-0.0020044736538592134,-5.054119841472836e-5,-5.470733410760349e-8,-0.0020040170112563204,-5.0518666909647305e-5,-5.469609132681992e-8,-0.002003582651521957,-5.0426916644760484e-5,-5.461455429534083e-8,-0.002003192848389794,-5.028151267800684e-5,-5.4477987905210974e-8,-0.0020028610069787686,-5.010484787898947e-5,-5.430874706071043e-8,-0.0020025908720933084,-4.992194480586509e-5,-5.413196542421391e-8,-0.0020023771463984017,-4.9756918400443195e-5,-5.3971933421660555e-8,-0.002002206808863418,-4.963034306888264e-5,-5.384945799572805e-8,-0.0020020606277349035,-4.955729195151486e-5,-5.3779965287491494e-8,-0.002001914752160842,-4.9545629165052306e-5,-5.377186303277142e-8,-0.0020017426370449094,-4.959424701946217e-5,-5.382477021649585e-8,-0.0020015178700865826,-4.9691252782268014e-5,-5.392756337052816e-8,-0.002001218597218113,-4.981272984636775e-5,-5.4056892268100934e-8,-0.0020008337756181305,-4.9923598500677135e-5,-5.417780009747694e-8,-0.002000370096206164,-4.998267559890689e-5,-5.4248682766537245e-8,-0.0019998563334538166,-4.995319905600739e-5,-5.423191853970226e-8,-0.0019993405058199324,-4.981692900508882e-5,-5.4108211202206056e-8,-0.0019988771595501596,-4.958544642961348e-5,-5.388813032255459e-8,-0.001998508235516319,-4.930060305686856e-5,-5.361273486836377e-8,-0.0019982470792282445,-4.902112276864653e-5,-5.3340329163181614e-8,-0.001998074636703137,-4.880149849864028e-5,-5.31255233957502e-8,-0.0019979490776461596,-4.867431780069525e-5,-5.300163018068865e-8,-0.001997822100817167,-4.864355803151583e-5,-5.2973805172126e-8,-0.0019976535169998273,-4.8688691267618395e-5,-5.3022777123200866e-8,-0.001997419552504148,-4.8774601604832057e-5,-5.311433704727912e-8,-0.001997114744774493,-4.8862226688571974e-5,-5.320970261330998e-8,-0.0019967494607951706,-4.891701856579829e-5,-5.3273961127601174e-8,-0.0019963452028423133,-4.8914377496388965e-5,-5.328171644965104e-8,-0.0019959291743273603,-4.884227819040176e-5,-5.3220032150562435e-8,-0.0019955289872912786,-4.870151669163586e-5,-5.3088954045228216e-8,-0.001995168161878916,-4.850401085939419e-5,-5.289994962557313e-8,-0.0019948628903654394,-4.8269744288963775e-5,-5.267284224427861e-8,-0.0019946202670904343,-4.8023026531601735e-5,-5.2431967802807096e-8,-0.0019944379707342885,-4.7788675113880514e-5,-5.220224766362233e-8,-0.0019943051797844005,-4.7588659781935926e-5,-5.200579146376313e-8,-0.0019942042706509,-4.743954711749449e-5,-5.1859386167826104e-8,-0.001994112859914415,-4.735069680607469e-5,-5.1772781475901097e-8,-0.001994006037341234,-4.732295848864623e-5,-5.1747440313270875e-8,-0.001993858894812306,-4.7347710668200726e-5,-5.177551950964653e-8,-0.0019936496579878314,-4.740627635058635e-5,-5.18390919640976e-8,-0.001993363861819001,-4.7470190253398286e-5,-5.1910146838977426e-8,-0.0019929996205191062,-4.7503541595903896e-5,-5.195272017060764e-8,-0.0019925728195238626,-4.746902878186876e-5,-5.1928915188607375e-8,-0.001992119310680294,-4.7338527946317814e-5,-5.1809644671995214e-8,-0.001991689987214206,-4.710613654808492e-5,-5.1587956392584026e-8,-0.0019913363447532006,-4.6797293437381455e-5,-5.128838764343941e-8,-0.0019910904742861894,-4.6465669201456026e-5,-5.096398901617266e-8,-0.001990950368197197,-4.617513909028325e-5,-5.067840830528089e-8,-0.0019908806466250022,-4.5975167125504204e-5,-5.048140368418561e-8,-0.0019908285309041696,-4.5883747649525306e-5,-5.039181646697579e-8,-0.0019907446103717484,-4.588605349155747e-5,-5.039601315964357e-8,-0.0019905972795608703,-4.59456274268961e-5,-5.045866854053545e-8,-0.0019903769307380295,-4.601920467643337e-5,-5.053718566759492e-8,-0.001990092573971516,-4.60683822052351e-5,-5.059317403618827e-8,-0.0019897653271612717,-4.6066023946311286e-5,-5.059894157366422e-8,-0.0019894219047486518,-4.5998288524238066e-5,-5.0539804388693425e-8,-0.001989089388356069,-4.5864029542767294e-5,-5.041380553085208e-8,-0.001988791342582684,-4.5672889943786124e-5,-5.023002279694939e-8,-0.0019885450270769787,-4.544267119758317e-5,-5.000598811628438e-8,-0.001988359611822744,-4.519623780012269e-5,-4.9764511439258186e-8,-0.001988235373861473,-4.4958196634044265e-5,-4.9530237154278555e-8,-0.001988163874878257,-4.475155292368226e-5,-4.932622435749737e-8,-0.0019881291494703197,-4.4594624487372946e-5,-4.917088069716583e-8,-0.0019881097672433527,-4.449860634103792e-5,-4.907562319610449e-8,-0.0019880814361664893,-4.446599676205845e-5,-4.9043404078743095e-8,-0.001988019896370336,-4.448984902371915e-5,-4.90679788963876e-8,-0.0019879040251158317,-4.455382789815783e-5,-4.9133842968146527e-8,-0.001987719144006088,-4.463316087772778e-5,-4.921694042093964e-8,-0.001987460558236463,-4.46967620556441e-5,-4.9286514917244204e-8,-0.0019871370966062707,-4.471122399257981e-5,-4.9308929889939364e-8,-0.0019867735413332,-4.464753053386993e-5,-4.925440944020967e-8,-0.0019864096922321078,-4.449046879624519e-5,-4.910667619111871e-8,-0.001986093293887148,-4.424847454638656e-5,-4.887310764941467e-8,-0.0019858657165408035,-4.395851101024967e-5,-4.858986252843164e-8,-0.0019857444502105696,-4.36793761172567e-5,-4.831531748591886e-8,-0.0019857123157436644,-4.3471892985409506e-5,-4.811032585031551e-8,-0.001985722442942424,-4.3374678707536145e-5,-4.801403302963816e-8,-0.001985717837909519,-4.3389861516746215e-5,-4.802953349265059e-8,-0.0019856536347009303,-4.348657983914437e-5,-4.812711300883761e-8,-0.001985509793314366,-4.3617293200771854e-5,-4.826016677840372e-8,-0.001985291041141802,-4.373551017512467e-5,-4.8382599589213666e-8,-0.001985018982825112,-4.380710889702349e-5,-4.8460059289153266e-8,-0.00198472269519155,-4.381413163467009e-5,-4.8473904889146595e-8,-0.0019844313817317153,-4.3753602107519224e-5,-4.8420335013601454e-8,-0.0019841698777690116,-4.3634265418978614e-5,-4.830740886578302e-8,-0.00198395631013117,-4.347308097731399e-5,-4.815167459106861e-8,-0.00198380093609794,-4.32920529085931e-5,-4.7974972464015794e-8,-0.0019837056325942176,-4.311530044265703e-5,-4.7801388949448075e-8,-0.0019836639326078916,-4.2966205027643966e-5,-4.765430103584804e-8,-0.0019836616788419274,-4.2864560277764126e-5,-4.755351001687462e-8,-0.0019836784835310212,-4.2823816969524074e-5,-4.75125667742844e-8,-0.0019836901334029686,-4.284880913635948e-5,-4.753661876885519e-8,-0.0019836717844280323,-4.293443985340406e-5,-4.7621167559884083e-8,-0.001983601577361672,-4.306561983656408e-5,-4.775195443764006e-8,-0.00198346427639853,-4.321860830029743e-5,-4.79061064744248e-8,-0.001983254503428399,-4.3363817575379086e-5,-4.805466061004061e-8,-0.001982979128261479,-4.3470011868281195e-5,-4.8166508580713625e-8,-0.0019826583317162807,-4.350982227820718e-5,-4.8213806615591725e-8,-0.0019823245270563744,-4.346642997860529e-5,-4.817876549475533e-8,-0.0019820179079688013,-4.334055689306835e-5,-4.806092503305833e-8,-0.0019817776241884424,-4.315546627647395e-5,-4.788249609663614e-8,-0.001981629243341138,-4.295622121243347e-5,-4.768788218876515e-8,-0.00198157253207564,-4.279964969343516e-5,-4.753376447678903e-8,-0.0019815768110193243,-4.273555993575656e-5,-4.747031671641675e-8,-0.0019815896914275643,-4.2786939561310826e-5,-4.752132323658576e-8,-0.001981556964728314,-4.294065163758243e-5,-4.767470277125102e-8,-0.001981442898715948,-4.315455768342111e-5,-4.788935301045354e-8,-0.001981239994932547,-4.337586664281439e-5,-4.811318043326988e-8,-0.001980965615592369,-4.3559380683812036e-5,-4.830112897720887e-8,-0.001980651104271411,-4.3677669740602314e-5,-4.842535724700544e-8,-0.001980330622165264,-4.37224614567855e-5,-4.8476842035870866e-8,-0.001980033601616317,-4.370082309922366e-5,-4.846185712372692e-8,-0.001979781186553916,-4.362987461869388e-5,-4.8396913373778846e-8,-0.0019795853426471683,-4.35321462310607e-5,-4.8304189751421825e-8,-0.001979449164923876,-4.343211096476673e-5,-4.8208004801788516e-8,-0.001979367516891493,-4.335355049589747e-5,-4.81320762404166e-8,-0.0019793277939190233,-4.331724667908914e-5,-4.8097157631997425e-8,-0.0019793109779484602,-4.333865671006025e-5,-4.811875302716466e-8,-0.00197929334115372,-4.342552864224307e-5,-4.8204839307820454e-8,-0.0019792491585166726,-4.3575840607934675e-5,-4.835390191602501e-8,-0.0019791544719827683,-4.377676979296662e-5,-4.855390559455163e-8,-0.0019789914659854206,-4.400538864917376e-5,-4.878285284376596e-8,-0.001978752618067997,-4.423151487384888e-5,-4.9011380729146134e-8,-0.001978443571552841,-4.442266642057841e-5,-4.920743293376487e-8,-0.0019780837559768326,-4.455044155192306e-5,-4.93424419569069e-8,-0.001977704189216635,-4.459716325964112e-5,-4.9397956177720134e-8,-0.0019773423735596264,-4.4561466986321577e-5,-4.937141684655841e-8,-0.001977034607825835,-4.446140319979623e-5,-4.927959934097138e-8,-0.0019768066566202684,-4.433345001834858e-5,-4.915798984075471e-8,-0.0019766648048065616,-4.422600808807836e-5,-4.905454320636164e-8,-0.001976590642014865,-4.418718038152136e-5,-4.901754862575995e-8,-0.0019765433922679146,-4.424941926591262e-5,-4.908018505043689e-8,-0.0019764714799322142,-4.441704193678446e-5,-4.924782281001948e-8,-0.0019763299672662825,-4.466351711965738e-5,-4.949503779025665e-8,-0.0019760958592488333,-4.494111748014449e-5,-4.9774988214425593e-8,-0.001975773776278894,-4.519821653836421e-5,-5.003649186587927e-8,-0.001975390495162118,-4.539533451112828e-5,-5.0239976118785304e-8,-0.0019749831859174212,-4.551335871876182e-5,-5.0365773681986254e-8,-0.0019745879207018306,-4.555320514137526e-5,-5.041400386812903e-8,-0.0019742323786003236,-4.553037719774458e-5,-5.039938833552872e-8,-0.0019739331147513276,-4.5468406296927464e-5,-5.03448680797245e-8,-0.001973695819172792,-4.539349471122782e-5,-5.0276287499947574e-8,-0.0019735168135767726,-4.533089935511781e-5,-5.0218721062822205e-8,-0.0019733846944876474,-4.5302611923024283e-5,-5.019408501320979e-8,-0.0019732817668098417,-4.532562487218592e-5,-5.021939519624579e-8,-0.0019731854504376916,-4.5410207074392044e-5,-5.0305107394665245e-8,-0.0019730701622044603,-4.5557997564901036e-5,-5.045329830787116e-8,-0.001972910223039121,-4.576026673732602e-5,-5.0655959638034884e-8,-0.001972684031500541,-4.5997198476817514E-05,-5.0894198826261366e-8,-0.001972379090884328,-4.623929153514652e-5,-5.113944114811148e-8,-0.001971996635686588,-4.6451727228890164e-5,-5.135753400078218e-8,-0.0019715539766186102,-4.660160044857538e-5,-5.1515737334611745e-8,-0.0019710828542270687,-4.6666477609024985e-5,-5.159115485388241e-8,-0.001970623298040414,-4.664162896085638e-5,-5.1578016403124346e-8,-0.001970214212090245,-4.65432620191606e-5,-5.1491151948029e-8,-0.001969883242927487,-4.6406229230851866e-5,-5.1364075446337285e-8,-0.001969638857557791,-4.627639846031354e-5,-5.124174919757445e-8,-0.001969467008160238,-4.6199420166105754e-5,-5.116961866658035e-8,-0.0019693336914688433,-4.6208627966382286e-5,-5.1181552597747694e-8,-0.001969193371546135,-4.631535486871011e-5,-5.128996338486575e-8,-0.0019690015104308046,-4.650497733936632e-5,-5.148150977961362e-8,-0.001968727504736385,-4.6740821064600386e-5,-5.172064567922468e-8,-0.001968363316252578,-4.697522012612561e-5,-5.196041523031695e-8,-0.00196792440570595,-4.71636765838571e-5,-5.2156492160433425e-8,-0.001967443051877653,-4.727655930735045e-5,-5.227890703313716e-8,-0.0019669575953292872,-4.730437768201357e-5,-5.2317472555509746e-8,-0.0019665022928231123,-4.7256201646844035e-5,-5.228042290007389e-8,-0.0019661009362071376,-4.715377406937989e-5,-5.218873377314962e-8,-0.0019657647779907092,-4.702464970878444e-5,-5.206938544394163e-8,-0.001965493477560509,-4.689660585321579e-5,-5.194979398067257e-8,-0.001965277377825799,-4.6794002474408414e-5,-5.185413345399812e-8,-0.001965099914950498,-4.67357278760477e-5,-5.1801254050097615e-8,-0.0019649396611614903,-4.673397854378611e-5,-5.180348656861776e-8,-0.0019647721014879383,-4.6793187059781656e-5,-5.186563289514447e-8,-0.0019645716558417217,-4.690878647692816e-5,-5.1983771468773974e-8,-0.0019643145874512157,-4.706604455706395e-5,-5.214404907793817e-8,-0.001963983213520618,-4.7239795327600476e-5,-5.232226406608289e-8,-0.0019635711534783046,-4.7396399391850306e-5,-5.248560550378622e-8,-0.0019630881783210172,-4.749923158841316e-5,-5.2597912011238834e-8,-0.0019625620385825687,-4.7517783547080394e-5,-5.262860028092075e-8,-0.001962034600536159,-4.743810866143697e-5,-5.2563034466538445e-8,-0.001961551663459193,-4.7270187530390955e-5,-5.2409958425237556e-8,-0.0019611493437624405,-4.7047867070956564e-5,-5.2201684891901307e-8,-0.0019608425118726406,-4.682012526184868e-5,-5.198578136085175e-8,-0.001960620223510975,-4.663679110534357e-5,-5.1811253235307756e-8,-0.00196044964691645,-4.65343886842311e-5,-5.1714684022350806e-8,-0.001960286244385532,-4.652696232149927e-5,-5.171103424799668e-8,-0.0019600861987816276,-4.660393314075276e-5,-5.1791161198884274e-8,-0.001959817384072231,-4.673447845393499e-5,-5.192571546679343e-8,-0.0019594663672666632,-4.687647620848606e-5,-5.207366237327364e-8,-0.0019590402013480103,-4.69873681531962e-5,-5.219291849091948e-8,-0.0019585630459199917,-4.7034093216261266e-5,-5.2250281015410575e-8,-0.0019580689434451474,-4.699963912862847e-5,-5.222813797470916e-8,-0.001957593098636109,-4.6884855780413277E-05,-5.212650982795257e-8,-0.0019571642607120374,-4.6705755925512453e-5,-5.196056523166988e-8,-0.001956800031936092,-4.648795164335014e-5,-5.175520387715332e-8,-0.0019565055327110657,-4.626040613743492e-5,-5.1538868280151164e-8,-0.001956274664949442,-4.605019885705157e-5,-5.133830575689433e-8,-0.0019560927255029953,-4.587904903303501e-5,-5.117507505063576e-8,-0.001955939273522816,-4.5761480824035993e-5,-5.106372503209461e-8,-0.00195579066288265,-4.570401845100373e-5,-5.101104052329391e-8,-0.001955622211363207,-4.570476038673568e-5,-5.101566680936453e-8,-0.001955410378080181,-4.575298140689403e-5,-5.1067700552761083e-8,-0.0019551355106216866,-4.5828851541139104e-5,-5.114829612455283e-8,-0.0019547856381423576,-4.590392133545704e-5,-5.122995115968192e-8,-0.001954361197611504,-4.594364275569868e-5,-5.127880370114713e-8,-0.001953879361532978,-4.591336545457481e-5,-5.126044894606853e-8,-0.001953375159198017,-4.5788157126795125e-5,-5.114965466945004e-8,-0.0019528960573228693,-4.556404200060815e-5,-5.094156483201756e-8,-0.0019524888638265663,-4.52650121756844e-5,-5.0658773399677315e-8,-0.0019521829510683111,-4.493969555783338e-5,-5.03482415102804e-8,-0.001951978224705543,-4.4646436883604996e-5,-5.006686001308755e-8,-0.0019518449631389671,-4.4433199757164185e-5,-4.9861909053352045e-8,-0.0019517355290165363,-4.43223575013476e-5,-4.9756164208185047e-8,-0.0019516011374687279,-4.430667685873654e-5,-4.9743737900243164e-8,-0.0019514058087092413,-4.4355660121435736e-5,-4.979589561049797e-8,-0.0019511334488388776,-4.442707829644108e-5,-4.987196748279403e-8,-0.0019507882121724506,-4.4478635729643045e-5,-4.993057447552316e-8,-0.0019503903208332868,-4.447687118184344e-5,-4.9938400968221414e-8,-0.0019499696523796678,-4.440237013879302e-5,-4.9875550740711113e-8,-0.0019495587983859016,-4.425144642123595e-5,-4.973750799595954e-8,-0.0019491867583722598,-4.403481674939329e-5,-4.953408613857425e-8,-0.001948874170726926,-4.3773966244990976e-5,-4.928597425302703e-8,-0.0019486306854478142,-4.3496186610003896e-5,-4.901984567298104e-8,-0.0019484545808215287,-4.322941742227304e-5,-4.876319520040075e-8,-0.0019483342448092852,-4.299784164805793e-5,-4.853991498678627e-8,-0.0019482508367361243,-4.281882578092175e-5,-4.8367249272998265E-08,-0.0019481813406516451,-4.2701332047739913e-5,-4.8254265238426306e-8,-0.001948101431884755,-4.2645465612550796e-5,-4.820147285858156e-8,-0.0019479880023605153,-4.2642663695294445e-5,-4.820104258643957e-8,-0.0019478215084132696,-4.267621983914629e-5,-4.823725928348993e-8,-0.0019475884766814169,-4.2722120831818105e-5,-4.8287176766687065e-8,-0.001947284537476418,-4.2750605376743135e-5,-4.832193112023108e-8,-0.0019469179020162252,-4.272943149953421e-5,-4.830978464674593e-8,-0.001946512130701754,-4.2629987351193034e-5,-4.8222103668448865e-8,-0.0019461057920909896,-4.243645483759409e-5,-4.804249139879382e-8,-0.0019457459924259364,-4.2155871844775294e-5,-4.777688442978733e-8,-0.001945474433914433,-4.182357814670306e-5,-4.745909633402526e-8,-0.0019453099923769398,-4.149726260691403e-5,-4.7145127891331156e-8,-0.0019452376149965635,-4.123797713130104e-5,-4.689469161507122e-8,-0.0019452123501192205,-4.108646923628689e-5,-4.67481344270079e-8,-0.0019451775408544185,-4.104846697515171e-5,-4.671199913017461e-8,-0.001945086305653114,-4.10964890190002e-5,-4.67605464329462e-8,-0.00194491498170104,-4.118420798055841e-5,-4.6849415350206084e-8,-0.0019446649566739968,-4.1263439193324884e-5,-4.693190382853436e-8,-0.0019443564891179575,-4.129638690638195e-5,-4.6970831215838533e-8,-0.001944019871009889,-4.126124977537125e-5,-4.694416268183079e-8,-0.0019436874568431314,-4.115267744009283e-5,-4.6845757576426216e-8,-0.0019433878283089455,-4.097933082895468e-5,-4.668329117893592e-8,-0.0019431420227587768,-4.076018683375537e-5,-4.64748293924473e-8,-0.001942961425049852,-4.052037587530838e-5,-4.624478413720799e-8,-0.001942847090506267,-4.028693694379081e-5,-4.6019666043409794e-8,-0.001942790358890472,-4.008483999357206e-5,-4.5824064376144906e-8,-0.0019427745871054582,-3.9933607897037706e-5,-4.5677259981585586e-8,-0.0019427777616891982,-3.984486508728241e-5,-4.559083113158273e-8,-0.0019427755865315058,-3.982107608163827e-5,-4.556748866183424e-8,-0.0019427445679542873,-3.985544668643988e-5,-4.5601049016244416e-8,-0.0019426648249855798,-3.9932722126588916e-5,-4.5677213148583996e-8,-0.0019425225723483325,-4.003067731752825e-5,-4.577491057145826e-8,-0.00194231231186212,-4.0122223590998573e-5,-4.586815250812175e-8,-0.001942038840723702,-4.017825071467646e-5,-4.592859500544757e-8,-0.0019417189403766162,-4.017172995117602e-5,-4.592943591477745e-8,-0.0019413817963929902,-4.0083668653272205e-5,-4.5851299075569445e-8,-0.0019410663758636533,-3.9910612776753746e-5,-4.5689797651230024e-8,-0.0019408138567119492,-3.9671609827259084e-5,-4.546263553447091e-8,-0.0019406546006421536,-3.941021451110704e-5,-4.52117972507066e-8,-0.001940593319235403,-3.918608994782784e-5,-4.499543804327817e-8,-0.0019406012767298,-3.905498590278002e-5,-4.486832358067523e-8,-0.001940623920404477,-3.904542284858823e-5,-4.4859006867683975e-8,-0.0019406025544464632,-3.914639483061919e-5,-4.495769578301747e-8,-0.001940497520876102,-3.931411884703988e-5,-4.512260307194805e-8,-0.001940299698239888,-3.949212761192832e-5,-4.5299254342045724e-8,-0.0019400271696272137,-3.9631546521015266e-5,-4.5440050246729585e-8,-0.0019397134945464904,-3.970249901148748e-5,-4.55153769119164e-8,-0.0019393955892964717,-3.969592038203203e-5,-4.551557626730208e-8,-0.0019391053846128947,-3.961966037424788e-5,-4.544745102453445e-8,-0.0019388656601532564,-3.9492805816283906e-5,-4.532898685003671e-8,-0.0019386887618311728,-3.9340423201373115e-5,-4.518433473733331e-8,-0.0019385768153243493,-3.9189313030825355e-5,-4.5039624737876385e-8,-0.0019385226755074644,-3.9064588188579694e-5,-4.491950007652083e-8,-0.0019385113945777103,-3.89868350713039e-5,-4.4844233237342264e-8,-0.0019385222021650083,-3.8969763524809525e-5,-4.48273957066787e-8,-0.0019385310528990875,-3.9018436577778017e-5,-4.4874176736247263E-08,-0.001938513684450707,-3.912838732750907e-5,-4.498060099930697e-8,-0.0019384488723173468,-3.928589530112374e-5,-4.51338353807561e-8,-0.001938321483040145,-3.946943857740446e-5,-4.531354277085539e-8,-0.0019381250107120861,-3.965222629013153e-5,-4.5494184057548586e-8,-0.0019378633026130548,-3.9805684583894356e-5,-4.5648196322549064e-8,-0.0019375512317700392,-3.990367219926965e-5,-4.574992768613837e-8,-0.0019372141057675222,-3.9927275177831916e-5,-4.5780279834495175e-8,-0.0019368852732491004,-3.987006414845319e-5,-4.573198875575406e-8,-0.0019366009982821448,-3.9743041431457964e-5,-4.561474398462704e-8,-0.001936392008214114,-3.9577268369624826e-5,-4.545806912288991e-8,-0.0019362725887905185,-3.9421116423997146e-5,-4.530885190760244e-8,-0.0019362308367980837,-3.93293215936308e-5,-4.522070434461868e-8,-0.0019362265448863605,-3.934447117414749e-5,-4.5235796012735197e-8,-0.0019362021567699314,-3.947831204143984e-5,-4.5366449130396565e-8,-0.0019361044622756712,-3.9704499044345756e-5,-4.558787687093552e-8,-0.0019359055467726995,-3.9969038024905696e-5,-4.5848165191453386e-8,-0.001935610918476163,-4.0212436952495197e-5,-4.608967212085328e-8,-0.0019352522767100955,-4.0390248298052926e-5,-4.626892936144965e-8,-0.001934872343550989,-4.04826572347339e-5,-4.636602580928481e-8,-0.0019345110162189247,-4.0492973987788945e-5,-4.6383349171738214e-8,-0.0019341974042064007,-4.0440353373262014e-5,-4.633877244453355e-8,-0.00193394745527741,-4.035183976460438e-5,-4.6258113992407355e-8,-0.0019337648831009675,-4.025623586702828e-5,-4.6169223646382756e-8,-0.001933643297940725,-4.018010690860001e-5,-4.6098017218746215e-8,-0.0019335684391845415,-4.014524819687492e-5,-4.606588963420782e-8,-0.0019335202829593439,-4.016691288990378e-5,-4.608791074426844e-8,-0.001933475196842574,-4.025240778009302e-5,-4.617145854048994e-8,-0.0019334084174011334,-4.039999941699849e-5,-4.6315210257224784e-8,-0.0019332970460884604,-4.0598441631085976e-5,-4.6508730328468455e-8,-0.0019331234337040622,-4.0827636234276635e-5,-4.67330881859333e-8,-0.0019328784570221483,-4.1060782189105156e-5,-4.69628242270068e-8,-0.001932564016748744,-4.126806268614148e-5,-4.716934132885776e-8,-0.0019321940512386387,-4.14215942181376e-5,-4.732552837106896e-8,-0.001931793485630655,-4.1500945427768556e-5,-4.741103326315836e-8,-0.0019313948975945483,-4.149824340283206e-5,-4.741729676503009e-8,-0.0019310330346188518,-4.142188515293687e-5,-4.7351395895912765e-8,-0.0019307375352558293,-4.1297801414388954e-5,-4.723760067108958e-8,-0.0019305246932332914,-4.116693684145903e-5,-4.711522060800814e-8,-0.0019303901558369954,-4.107771840039374e-5,-4.7031429532281454e-8,-0.001930305702440573,-4.1073507327231025e-5,-4.70290097302363e-8,-0.001930223661133537,-4.117772149833033e-5,-4.71316652941459e-8,-0.0019300904151773313,-4.1382707713134946e-5,-4.733292449466249e-8,-0.0019298652063116251,-4.1649473063614e-5,-4.7595646288971316e-8,-0.0019295353407003367,-4.192078311450537e-5,-4.786461098057043e-8,-0.0019291195029987889,-4.214178037375372e-5,-4.8086494979264673e-8,-0.0019286581510240075,-4.227740391874418e-5,-4.822680388860586e-8,-0.0019281977027044515,-4.23190945630982e-5,-4.827648982478889e-8,-0.001927776949794641,-4.228093381957044e-5,-4.8248402386580654e-8,-0.0019274200721663662,-4.219051722902683e-5,-4.8168652620736966e-8,-0.001927135772707496,-4.20798850584923e-5,-4.8067954346620734e-8,-0.0019269198332215003,-4.197912027142969e-5,-4.797542280744417e-8,-0.0019267586318278405,-4.1912777277154615e-5,-4.7915023022203665e-8,-0.0019266323173630316,-4.189820026513446e-5,-4.7903834928403336e-8,-0.0019265173637764677,-4.194471819140883e-5,-4.795122144177823e-8,-0.0019263888011234276,-4.205308385953557e-5,-4.805829680961167e-8,-0.0019262225974915343,-4.221501646557592e-5,-4.821751718558146e-8,-0.0019259985568891125,-4.2413183674726635e-5,-4.8412658231367925e-8,-0.0019257037357562376,-4.262227688328076e-5,-4.861977364178274e-8,-0.0019253358507307667,-4.281183412618318e-5,-4.88097763412886e-8,-0.0019249056464002532,-4.295109158693287e-5,-4.895296804974039e-8,-0.00192443696510101,-4.3015405547280085e-5,-4.9025146674251664e-8,-0.001923963576351099,-4.299286159649854e-5,-4.901401418858055e-8,-0.0019235227456985294,-4.288907110417211e-5,-4.892397352513479e-8,-0.0019231466972611288,-4.2728295806226845e-5,-4.8777489495455956e-8,-0.0019228540148536525,-4.2549887097491935e-5,-4.861195243355361e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_10.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_10.json new file mode 100644 index 000000000..771149a59 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_10.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":10000,"numberOfSamples":1000,"samples":[1.9197471616856318e-4,7.996600532056201e-6,-1.2597360486632112e-8,1.923979354906972e-4,8.059544161443208e-6,-1.2601754449986743e-8,1.9274745963100852e-4,8.18217092448731e-6,-1.2612185701149497e-8,1.9301410614298842e-4,8.328459694631899e-6,-1.2625220207854334e-8,1.9320200661086356e-4,8.46367290461882e-6,-1.263746635903232e-8,1.933256574311564e-4,8.557979990756902e-6,-1.264596926377846e-8,1.9340729897750835e-4,8.588749871695277e-6,-1.2648467217789009e-8,1.9347454382165973e-4,8.54234886551231e-6,-1.2643575641672086e-8,1.9355780445299317e-4,8.41580428718647e-6,-1.2630935191527253e-8,1.9368703586457032e-4,8.218144650907273e-6,-1.2611321617725655e-8,1.9388759494511673e-4,7.970728457914735e-6,-1.2586673932584885e-8,1.9417557384287807e-4,7.70570255454025e-6,-1.2559972916060515e-8,1.9455353413614596e-4,7.461994170668981e-6,-1.2534909842557773e-8,1.950079268750979e-4,7.278838435440244e-6,-1.2515320800328438e-8,1.9550946566497787e-4,7.1877009230743185e-6,-1.250443183656935e-8,1.9601716991058025e-4,7.204296880679899e-6,-1.2504049076168112e-8,1.964858622143666e-4,7.322751895738212e-6,-1.2513893072518937e-8,1.9687601817327312e-4,7.513719443070609e-6,-1.2531293180978063e-8,1.9716418145619786e-4,7.727807131336245e-6,-1.255143733487227e-8,1.9735148270881055e-4,7.904972006017888e-6,-1.256828984627858e-8,1.9746717430474582e-4,7.989189307001313e-6,-1.2576107854737417e-8,1.9756414464783983e-4,7.945391162788686e-6,-1.2571208909452543e-8,1.9770522673983343e-4,7.772936988045046e-6,-1.255336219063038e-8,1.9794335851555265e-4,7.508737590816236e-6,-1.2526112219574885e-8,1.9830340643788719e-4,7.216310774252375e-6,-1.2495704511570225e-8,1.9877444051722307e-4,6.9643475770128966e-6,-1.2468991956480241e-8,1.9931605492441463e-4,6.804754497374457e-6,-1.2451273955690413e-8,1.99874367496323e-4,6.7599548302468994e-6,-1.2444993679265321e-8,2.0039900027274713e-4,6.82270849799812e-6,-1.2449629419202722e-8,2.0085428305204736e-4,6.964723431631095e-6,-1.2462470630692901e-8,2.012230129828281e-4,7.147810040913146e-6,-1.2479705950981818e-8,2.015048844233702e-4,7.3331078822919305e-6,-1.2497376827881843e-8,2.0171260728942556e-4,7.4869143007848404e-6,-1.2512018298014086e-8,2.0186784837753266e-4,7.583663846056725e-6,-1.2521002574264202e-8,2.0199788115223623e-4,7.6072954724533325e-6,-1.252268798054521e-8,2.0213287762151582e-4,7.552075776678594e-6,-1.25164799413586e-8,2.023032713093168e-4,7.423389313956485e-6,-1.250287524528341e-8,2.025365492604393e-4,7.238354929979809e-6,-1.2483501654253962e-8,2.0285312487000682e-4,7.025543178481034e-6,-1.2461102098633864e-8,2.032615548180566e-4,6.822697696785637e-6,-1.2439358398961576e-8,2.037542292355152e-4,6.671464949679808e-6,-1.2422433892723618e-8,2.043054648544205e-4,6.609017340781519e-6,-1.241418367286807e-8,2.0487402079284614e-4,6.658061470286973e-6,-1.2417141084804209e-8,2.0541091916908847e-4,6.8183286453880834e-6,-1.2431576848491557e-8,2.0587131297464264e-4,7.063148440915905e-6,-1.2455025250029365e-8,2.0622704282800456e-4,7.343452105811302e-6,-1.2482583077772363e-8,2.064756840198449e-4,7.598950788494315e-6,-1.2508013979414962e-8,2.0664282168786132e-4,7.773572333271332e-6,-1.2525372054527937e-8,2.0677643799377142e-4,7.830732911241555e-6,-1.2530654293509096e-8,2.069346139971509e-4,7.763969732585166e-6,-1.252297208136234e-8,2.0716968071363143e-4,7.599507240572051e-6,-1.2504868071919612e-8,2.075133831394106e-4,7.389324388835024e-6,-1.2481637303243253e-8,2.079680047158014e-4,7.196295440443784e-6,-1.2459822238997104e-8,2.0850678511286473e-4,7.076223630712314e-6,-1.2445361216516968e-8,2.09083353603553e-4,7.063208010991012e-6,-1.2442027977015235e-8,2.0964607359171694e-4,7.163288146015455e-6,-1.245068068918884e-8,2.1015153998119444e-4,7.357300167494584e-6,-1.2469466055778998e-8,2.105729208467013e-4,7.6098914082299795e-6,-1.2494715588623496e-8,2.1090206952705673e-4,7.880059152858419e-6,-1.2522068534104855e-8,2.1114705135521922e-4,8.129688725332927e-6,-1.2547426277362978e-8,2.11327623932954e-4,8.328785948689606e-6,-1.2567558359396523e-8,2.1147063027153733e-4,8.45781981905388e-6,-1.2580371063842255e-8,2.116062170779773e-4,8.508318739735103e-6,-1.2584953522756101e-8,2.1176489219544155e-4,8.482821664273282e-6,-1.2581533889456395e-8,2.1197487908306462e-4,8.394780190546323e-6,-1.2571439050506965e-8,2.1225908578335732e-4,8.268336110121104e-6,-1.2557075378613995e-8,2.1263125815806694e-4,8.137282943263268e-6,-1.2541867403695375e-8,2.1309149641396343e-4,8.042041677157666e-6,-1.2530015745409708e-8,2.1362232923984473e-4,8.023413973770414e-6,-1.2525906367685887e-8,2.141877185477536e-4,8.112834049185048e-6,-1.2533095524318957e-8,2.1473774581068903e-4,8.3210914871919e-6,-1.2553050116063849e-8,2.1522011129794914e-4,8.630080126066386e-6,-1.2584142235542132e-8,2.1559591766686086e-4,8.992908412392393e-6,-1.2621531987775295e-8,2.1585357677476676e-4,9.344915051726786e-6,-1.2658284937238318e-8,2.1601416666211921e-4,9.622593263837225e-6,-1.2687427039128446e-8,2.1612534488552648e-4,9.78287653756447e-6,-1.2704087855205246e-8,2.1624652249650514e-4,9.81514982519467e-6,-1.2706860844017089e-8,2.1643148366610137e-4,9.742398905621779e-6,-1.2697982257149455e-8,2.1671439125053968e-4,9.612686075077394e-6,-1.2682472194826136e-8,2.1710262618754617e-4,9.484942883597433e-6,-1.2666663487275253e-8,2.1757724992220657e-4,9.413689438536168e-6,-1.2656583095773519e-8,2.180998881122663e-4,9.436636301726828e-6,-1.2656579120301334e-8,2.1862349866680082e-4,9.567821662343242e-6,-1.2668481926430359e-8,2.1910382506955763e-4,9.797254291937394e-6,-1.2691451235088495e-8,2.1950852180187367e-4,1.0096209406878957e-5,-1.2722473686840802e-8,2.1982203208259762e-4,1.0425814221374339e-5,-1.2757289563240955e-8,2.2004593990235762e-4,1.0746017377170483e-5,-1.279141904043139e-8,2.2019594725035345e-4,1.1022697089033848e-5,-1.2821004358988786e-8,2.2029723714439854e-4,1.1231954282858246e-5,-1.284332207805951e-8,2.2037976133546005e-4,1.1361792925413278e-5,-1.285697045584737e-8,2.204743050715671e-4,1.1412058566647195e-5,-1.2861837839761607e-8,2.2060942735678435e-4,1.139360836886871e-5,-1.2858986747465736e-8,2.2080886496210573e-4,1.1327297175898568e-5,-1.2850546480647196e-8,2.2108883199633075e-4,1.1242779422350658e-5,-1.2839626876663463e-8,2.2145479727229533e-4,1.117656313941561e-5,-1.2830179748791994e-8,2.218978524119614e-4,1.1168241380550244e-5,-1.2826654765479383e-8,2.223918274118358e-4,1.125368271022084e-5,-1.2833271066266854e-8,2.2289360923823234e-4,1.1454892795233024e-5,-1.2852838922138324e-8,2.2334970247736352e-4,1.1768728623398749e-5,-1.288537714386462e-8,2.2371036423718345e-4,1.2159917386077626e-5,-1.2927189221052759e-8,2.2394786325905398e-4,1.2565129918165497e-5,-1.2971236046903973e-8,2.2407012789687003e-4,1.2910776320851335e-5,-1.3009149058543156e-8,2.2412080512659326e-4,1.3138423398335554e-5,-1.3034156281509835e-8,2.2416403518024246e-4,1.3225258584550226e-5,-1.3043432270151873e-8,2.242617193073924e-4,1.31895428771349e-5,-1.303873108036752e-8,2.244545122747121e-4,1.3080514119203897e-5,-1.302529805681681e-8,2.247533541484739e-4,1.2960154137190002e-5,-1.3009918312410972e-8,2.2514149681588606e-4,1.288542370013457e-5,-1.2999015386017868e-8,2.2558304221404233e-4,1.2896057941767493e-5,-1.2997297157850649e-8,2.2603369392279116e-4,1.3009117176953077e-5,-1.3007061790201875e-8,2.264507770082446e-4,1.3219243737167519e-5,-1.3028087674737915e-8,2.2680097981678127e-4,1.3502917845584759e-5,-1.3057987443448877e-8,2.2706512925085745e-4,1.3825112165154655e-5,-1.3092899943215674e-8,2.2723980182644377e-4,1.4146844760246526e-5,-1.312835960370297e-8,2.2733606659061404e-4,1.4432176615984899e-5,-1.316015072754668e-8,2.2737613010144923e-4,1.4653552288310205e-5,-1.3184975709050629e-8,2.2738889061095103e-4,1.4794967275872633e-5,-1.3200846957566375e-8,2.2740539458427508e-4,1.485298630857986e-5,-1.3207200828708261e-8,2.2745491914188558e-4,1.48361020505556e-5,-1.3204810600297655e-8,2.2756189301271438e-4,1.4763163136429955e-5,-1.3195611648549548e-8,2.2774342945347363e-4,1.4661392768367974e-5,-1.318251654013457e-8,2.2800711646406744e-4,1.4564073938727435e-5,-1.3169225227622847e-8,2.2834878588194946e-4,1.4507553748530596e-5,-1.3159958692847593e-8,2.287503519544513e-4,1.4526782542924386e-5,-1.3158983635572145e-8,2.2917872878590236e-4,1.4648464790645952e-5,-1.3169782666393387e-8,2.2958798770619958e-4,1.4881779191418465e-5,-1.3193861131791164e-8,2.2992738155013117e-4,1.5208892056563145e-5,-1.3229487616666131e-8,2.3015629354228862e-4,1.5580637661667213e-5,-1.3271075564489491e-8,2.3026234150305317e-4,1.5924292688085457e-5,-1.331008459441756e-8,2.3027280889853033e-4,1.6165999528322054e-5,-1.3337725131374554e-8,2.3024916735463958e-4,1.6259694822258185e-5,-1.3348408049319169e-8,2.3026415545918469e-4,1.6206222473384533e-5,-1.334196191813377e-8,2.303737207873722e-4,1.6050930760160185e-5,-1.3323325049974134e-8,2.3059936656605264e-4,1.586282236461781e-5,-1.3300188674521488e-8,2.309273397309413e-4,1.5709080036263402e-5,-1.328019137069129e-8,2.3131987266427655e-4,1.5637160807724585e-5,-1.3268952807786755e-8,2.3172978464227394e-4,1.5668110115491378e-5,-1.3269276372437528e-8,2.3211253167230013e-4,1.579838872190477e-5,-1.3281222326984168e-8,2.3243381968418038e-4,1.6005968044664794e-5,-1.3302645758738719e-8,2.326732628860945e-4,1.6257565449448583e-5,-1.3329918467555854e-8,2.3282524674238283e-4,1.651551762610959e-5,-1.3358697686405669e-8,2.3289788056306504e-4,1.674381866600482e-5,-1.3384673664069943e-8,2.3291052997145164e-4,1.6913063406322665e-5,-1.3404220672953126e-8,2.3289032072172143e-4,1.700401500413197e-5,-1.3414875180816028e-8,2.3286803858424185e-4,1.7009620439693355e-5,-1.3415595856352999e-8,2.328739025738482e-4,1.6935397883075238e-5,-1.3406804390503862e-8,2.3293373693946084e-4,1.6798289595216762e-5,-1.3390246403408823e-8,2.3306590757557672e-4,1.6624355851294292e-5,-1.3368746419574027e-8,2.3327907598190837e-4,1.6445739810291813e-5,-1.334591547674048e-8,2.3357067709120252e-4,1.6297106752196225e-5,-1.3325815392409889e-8,2.3392604926032666e-4,1.621152078481189e-5,-1.3312532903507163e-8,2.3431832644508823e-4,1.6215461539974096e-5,-1.3309583151627188e-8,2.3470981296471905e-4,1.6322593851986297e-5,-1.3319074542987742e-8,2.350563586266793e-4,1.6526652827706943e-5,-1.3340700335972787e-8,2.3531635632917516e-4,1.6795606538324656e-5,-1.3370882993466678e-8,2.3546449597391608e-4,1.7071515543042718e-5,-1.3402687449686616e-8,2.3550651143611578e-4,1.7281479296035646e-5,-1.3427194538859864e-8,2.354860662292638e-4,1.736119067195648e-5,-1.3436455207389577e-8,2.354745423562714e-4,1.7282664410910297e-5,-1.3426879119078932e-8,2.3554413988636483e-4,1.7069422488256228e-5,-1.340100684306105e-8,2.3573843359821594e-4,1.678735137254538e-5,-1.3366380140959267e-8,2.3605794175604995e-4,1.6516440745440828e-5,-1.333226482032832e-8,2.364666128436858e-4,1.6321330128306323e-5,-1.3306309980540544e-8,2.369106704107837e-4,1.6235316784717564e-5,-1.329272307712745e-8,2.373372411284009e-4,1.6259841608278305e-5,-1.3292124623119489e-8,2.3770594596677692e-4,1.6372931299750227e-5,-1.3302373390412671e-8,2.37993246071328e-4,1.6539681380754335e-5,-1.3319651568231e-8,2.3819211939730327e-4,1.6721074059761234e-5,-1.3339438365960858e-8,2.3830961030271236e-4,1.6880231173799742e-5,-1.335727306140373e-8,2.3836375681855868e-4,1.6986636247061285e-5,-1.3369334013755532e-8,2.3838035533166568e-4,1.701905501777484e-5,-1.33728675782703e-8,2.383895323005555e-4,1.6967478698558967e-5,-1.3366467989198284e-8,2.38422070556946e-4,1.6834089647268072e-5,-1.3350197399653409e-8,2.3850556570700744e-4,1.6633066038275236e-5,-1.3325545739040455e-8,2.3866072662191243e-4,1.6388979589520194e-5,-1.32952356240298e-8,2.3889832942241776e-4,1.613376763873816e-5,-1.3262897145540119e-8,2.3921726251748584e-4,1.5902571416136462e-5,-1.3232645062727092e-8,2.3960391772207974e-4,1.5728837101970084e-5,-1.3208572512056224e-8,2.4003306897066437e-4,1.5639090729009958e-5,-1.3194159292205045e-8,2.4047031694471747e-4,1.5647770280759835e-5,-1.3191601366742145e-8,2.408763192909911e-4,1.5752441997243236e-5,-1.320109658813078e-8,2.4121332685415593e-4,1.593012198481269e-5,-1.3220221033409507e-8,2.414543324312317e-4,1.6136500786482835e-5,-1.3243695130072412e-8,2.4159379503856346e-4,1.631092961927605e-5,-1.3263965868818756e-8,2.416563493402631e-4,1.6389819439386743e-5,-1.327294423034196e-8,2.416971351728686e-4,1.6327839253466488e-5,-1.3264745691624821e-8,2.4178793488179986e-4,1.611933231700696e-5,-1.323839068662466e-8,2.4199092390150611e-4,1.580664719687679e-5,-1.3198809867441091e-8,2.4233282522947923e-4,1.546635588883893e-5,-1.315515486800695e-8,2.42795161206397e-4,1.5179028049018296e-5,-1.3117189496490207e-8,2.4332560646111933e-4,1.5000197877739287e-5,-1.3091844309906427e-8,2.4386095630435782e-4,1.494730909943296e-5,-1.3081612462610715e-8,2.443476230301867e-4,1.5004081626133282e-5,-1.3084945993000656e-8,2.447521154769013e-4,1.513382584235183e-5,-1.3097713318885834e-8,2.4506227529865664e-4,1.529290726155764e-5,-1.3114741963102495e-8,2.4528352222681816e-4,1.5440210476210758e-5,-1.3130971246521739e-8,2.454337577216843e-4,1.554235342838633e-5,-1.3142157207141877e-8,2.4553879145722154e-4,1.5576059836117717e-5,-1.3145250706278301e-8,2.456286535961741e-4,1.5529165859651303e-5,-1.313858102750454e-8,2.4573440156436537e-4,1.5401067537156352e-5,-1.312192399297445e-8,2.4588495016140917e-4,1.5202739157127264e-5,-1.3096479904399723e-8,2.4610367254958987e-4,1.4956012999883382e-5,-1.3064759078539774e-8,2.4640490122437197e-4,1.4691580503364029e-5,-1.3030343464314749e-8,2.467909300514352e-4,1.444531172938255e-5,-1.299749108332309e-8,2.472503716788958e-4,1.4252978327617077e-5,-1.2970574858005676e-8,2.4775861981413225e-4,1.4143991993889015e-5,-1.2953383025503955e-8,2.482808292580495e-4,1.4135196216785739e-5,-1.2948356913590524e-8,2.4877732410946555e-4,1.4225995061342692e-5,-1.295589775406787e-8,2.492108317402965e-4,1.439598151292376e-5,-1.297390984283666e-8,2.495546496005041e-4,1.4605934664835293e-5,-1.2997753852338253e-8,2.4980058126312243e-4,1.4802976706468473e-5,-1.3020791083393111e-8,2.499648122532091e-4,1.4930522578149964e-5,-1.3035648974352602e-8,2.500889719183307e-4,1.4942625206491755e-5,-1.3036141981384923e-8,2.502332948927713e-4,1.4819937637970325e-5,-1.301942657528763e-8,2.5046053996871437e-4,1.458121681939785e-5,-1.2987549154608683e-8,2.508142835955966e-4,1.4282610184457833e-5,-1.294739872783118e-8,2.513011655620707e-4,1.4000896174505066e-5,-1.2908626141535389e-8,2.5188749805877945e-4,1.3806467779425598e-5,-1.288027326783674e-8,2.5251290861910285e-4,1.3739666020847875e-5,-1.286777210466249e-8,2.531129543478528e-4,1.3801980509944972e-5,-1.2871727408598455e-8,2.5363851477171943e-4,1.3963248403024858e-5,-1.288867324663838e-8,2.5406475771490327e-4,1.4177059797621997e-5,-1.2912910633960826e-8,2.543902585935145e-4,1.4395467555977205e-5,-1.2938351134914312e-8,2.5463093937902145e-4,1.457846819591566e-5,-1.295977796036463e-8,2.54813136638039e-4,1.4698160028561238e-5,-1.2973461632588474e-8,2.54967981581639e-4,1.4739503755468211e-5,-1.2977324579518188e-8,2.551274405562864e-4,1.4699654562096109e-5,-1.2970877284779953e-8,2.5532142348084824e-4,1.4587027197628657e-5,-1.2955077061468487e-8,2.5557518672666003e-4,1.4420380583572636e-5,-1.2932175481281603e-8,2.5590650103593743e-4,1.4227567224019883e-5,-1.2905548350362233e-8,2.5632253366152845e-4,1.4043212860365394e-5,-1.287943866108471e-8,2.568170361656435e-4,1.3904585536052271e-5,-1.285851192094646e-8,2.5736901125437294e-4,1.384542362248093e-5,-1.2847155402873307e-8,2.5794421239109947e-4,1.388843946076878e-5,-1.2848556465930347e-8,2.5850035030317047e-4,1.403829277109537e-5,-1.2863749847957166e-8,2.589956924459188e-4,1.4277505943607658e-5,-1.2890953907157057e-8,2.5939924357184515e-4,1.4567459494134127e-5,-1.2925525776831505e-8,2.596996993209261e-4,1.4855178454192225e-5,-1.2960705554380696e-8,2.5991041763439313e-4,1.5084813281586183e-5,-1.2989066766874659e-8,2.6006856585053105e-4,1.5211326349834672e-5,-1.3004361087109885e-8,2.602278725687631e-4,1.5213126500508729e-5,-1.3003294012197764e-8,2.6044583194747623e-4,1.5100107540589441e-5,-1.2986715711409487e-8,2.607678954750293e-4,1.4913817381501574e-5,-1.2959760458590743e-8,2.6121309337834975e-4,1.471789554231206e-5,-1.2930675613196354e-8,2.617666739936158e-4,1.4580147819581488e-5,-1.2908507750034461e-8,2.623838952785086e-4,1.4551998820653167e-5,-1.2900372867353652e-8,2.6300436611455946e-4,1.465364176688067e-5,-1.2909389577639032e-8,2.6357084573760297e-4,1.4871017273617807e-5,-1.293411963262422e-8,2.640443869669923e-4,1.5164543154651873e-5,-1.2969586613798102e-8,2.64410737769705e-4,1.548385098723045e-5,-1.3009177614068972e-8,2.6467821443590807e-4,1.5781554620764703e-5,-1.304650817055167e-8,2.648707916531887e-4,1.602193715049497e-5,-1.3076659266674922e-8,2.650204220774552e-4,1.6184189121099728e-5,-1.309668323525758e-8,0.00026516090400317593,1.626199634794566e-5,-1.3105583832666333e-8,2.653238016446657e-4,1.626157432670227e-5,-1.3104045518856175e-8,2.6553584872296177e-4,1.619953400725645e-5,-1.3094120073806924e-8,2.6581694404772865e-4,1.6101034287601604e-5,-1.3078966785871532e-8,2.6617803512994057e-4,1.599792643257314e-5,-1.3062635061321467e-8,2.666186743112128e-4,1.5926127147520803e-5,-1.3049789195619948e-8,2.671247177812508e-4,1.5921303481340893e-5,-1.3045222202262528e-8,2.6766743265218185e-4,1.6012313493671894e-5,-1.3053032308258361e-8,2.682058449019524e-4,1.6212993883764293e-5,-1.3075494404843321e-8,2.6869381754198406e-4,1.6514662380160417e-5,-1.3111934310112453e-8,2.690915392547794e-4,1.688312459406304e-5,-1.3158158531168263e-8,2.693782808806831e-4,1.726356887424719e-5,-1.3206971608799833e-8,2.695612194819721e-4,1.7593764377538284e-5,-1.3249899145305468e-8,2.696757969225932e-4,1.7821710710339604e-5,-1.3279603194733367e-8,2.697766262792751e-4,1.7921174890309415e-5,-1.3292069257397106e-8,2.699221571586634e-4,1.7899381168918985e-5,-1.3287759748585721e-8,2.701585140051222e-4,1.7794662659770487e-5,-1.3271427248333769e-8,2.7050743193193414e-4,1.7665574219650932e-5,-1.3250774476406711e-8,2.70961263500747e-4,1.7575149467220522e-5,-1.3234415117476824e-8,2.714859046544607e-4,1.7574737909080554e-5,-1.3229680863399421e-8,2.7203052331977687e-4,1.769170100835547e-5,-1.324083414757745e-8,2.7254117585821244e-4,1.7924189075479015e-5,-1.3268167506586092e-8,2.729741997691505e-4,1.8244128847031433e-5,-1.3308232751599827e-8,2.733054105239225e-4,1.860683481743521e-5,-1.335506308671976e-8,2.7353289682521516e-4,1.896345349760831e-5,-1.3401893664246537E-08,2.73673842637392e-4,1.9271996265799993e-5,-1.3442759869942829e-8,2.737578282615282e-4,1.9504213337008058e-5,-1.3473535503050086e-8,2.738194967147241e-4,1.9647848480923535e-5,-1.3492301040760689e-8,2.7389256852830313e-4,1.9705491001702175e-5,-1.3499197079042159e-8,2.740058704701865e-4,1.9691777654711647e-5,-1.3496023246278775e-8,2.741810262902575e-4,1.9630334079578346e-5,-1.3485807494797274e-8,2.744310131178127e-4,1.9551058078948304e-5,-1.347245824705066e-8,2.747588655876082e-4,1.948759434125028e-5,-1.3460484076347776e-8,2.7515620852405575e-4,1.9474357175009086e-5,-1.3454669802832967e-8,2.7560192124283077e-4,1.954221941430565e-5,-1.3459536895858992e-8,2.760620815654129e-4,1.9712188518429024e-5,-1.3478446229307413e-8,2.764931140341487e-4,1.998747860898367e-5,-1.3512381587099931e-8,2.768499825458415e-4,2.0346447047745347e-5,-1.3558791588758346e-8,2.7709934818909317e-4,2.0740975236487897e-5,-1.3611211001438215e-8,2.7723376707050325e-4,2.1104902391710272e-5,-1.3660381144345922e-8,2.7727951721184677e-4,2.1372977512600064e-5,-1.3696942301516698e-8,2.7729156569639065e-4,2.150364337470411e-5,-1.371469511192883e-8,2.7733590146886866e-4,2.1494482605572527e-5,-1.3712813986364758e-8,2.7746730910535865e-4,2.1382407878183956e-5,-1.3695935779833347e-8,2.777129170467314e-4,2.1229571564400812e-5,-1.3672319050985458e-8,2.7806720281447627e-4,2.1102980963536406e-5,-1.3651166775522754e-8,2.7849753778370835e-4,2.105639774177976e-5,-1.3640203101975407e-8,2.7895571606205595e-4,2.1119312740397868e-5,-1.36440855384151e-8,2.7939082054513723e-4,2.129380639205303e-5,-1.3663777942921247e-8,2.797602560487331e-4,2.155785003144518e-5,-1.3696778046641539e-8,2.8003725820557e-4,2.1872858482824725e-5,-1.3738005196123418e-8,2.802142004107094e-4,2.219328394309847e-5,-1.3781099702460829e-8,2.8030175709160225e-4,2.2476143948988695e-5,-1.381982555271776e-8,2.8032472939190016e-4,2.268859947612066e-5,-1.3849251125167231e-8,2.803159812312574e-4,2.2812371570131774e-5,-1.386647093141835e-8,2.803101183459111e-4,2.2844791364820303e-5,-1.387080182051307e-8,2.8033821087907477e-4,2.2797146171930603e-5,-1.3863552789390385e-8,2.8042420340903043e-4,2.2691458727297488e-5,-1.3847561307081722e-8,2.8058292600206835e-4,2.2556824850266946e-5,-1.3826691726476474e-8,2.8081916298474405e-4,2.2425953925453616e-5,-1.3805403994071266e-8,2.8112721903985157e-4,2.2331951025042324e-5,-1.3788383591687185e-8,2.8149066344888076e-4,2.2304951530066296e-5,-1.3780134438421739e-8,2.8188238547674434e-4,2.2367947560152177e-5,-1.3784386060479597e-8,2.822658721965546e-4,2.2531246589409013e-5,-1.380320444288144e-8,2.8259936195518845e-4,2.278597036190299e-5,-1.38358812243578e-8,2.828444569445365e-4,2.3098866508920356e-5,-1.3877999412904191e-8,2.82979105364523e-4,2.341279564136978e-5,-1.3921401485040897e-8,2.8301103748081484e-4,2.3657751771110462e-5,-1.3955814384309308e-8,2.8298340770177647e-4,2.37731328817469e-5,-1.3972176264270338e-8,2.8296484207766603e-4,2.3733029889624773e-5,-1.3966353021702428e-8,2.830249037760498e-4,2.3559828091315065e-5,-1.3941085550751729e-8,2.832073180871705e-4,2.331632681640619e-5,-1.3904875495648811e-8,2.8351576155621184e-4,2.308077284889224e-5,-1.3868553787955135e-8,2.8391769853862014e-4,2.2919547763551398e-5,-1.384157822144315e-8,2.8436019434869387e-4,2.287017449835268e-5,-1.3829694080640847e-8,2.847876469600927e-4,2.2937814065198065e-5,-1.3834319348602738e-8,2.8515485284144533e-4,2.3101223801610495e-5,-1.3853146215244e-8,2.85433793371567e-4,2.332264590269975e-5,-1.3881308460203237e-8,2.856153143340677e-4,2.3557815709961442e-5,-1.3912679492992264e-8,2.857074693224336e-4,2.3764383273789843e-5,-1.3941085356826256e-8,2.8573186713930584e-4,2.390828726211465e-5,-1.3961325891680267e-8,2.857188696819171e-4,2.39679560926046e-5,-1.3969911360196299e-8,2.8570231452007376e-4,2.3936257400670855e-5,-1.3965439487283113e-8,2.857144182944666e-4,2.382028199606721e-5,-1.394860030825303e-8,2.8578147687363805e-4,2.3639260037550102e-5,-1.3921869960500952e-8,2.8592084201393037e-4,2.342114432945347e-5,-1.3889012634409748e-8,2.8613931356911184e-4,2.3198585473751224e-5,-1.3854531958188717e-8,2.864327166543551e-4,2.3004883616430312e-5,-1.3823159470958645e-8,2.867863494363946e-4,2.2870125806672398e-5,-1.3799380523453057e-8,2.8717609388622425e-4,2.2817452101605205e-5,-1.378693317459741e-8,2.8757018441867614e-4,2.2859200077940465e-5,-1.378819562942302e-8,2.8793216925267906e-4,2.2992674449651844e-5,-1.3803413833910311e-8,2.8822619040308e-4,2.3196048522297792e-5,-1.3829891060439484e-8,2.8842548394305867e-4,2.3426397377221117e-5,-1.386152544402009e-8,2.885234854253173e-4,2.362330839766609e-5,-1.3889296541301406e-8,2.885438986592403e-4,2.3721722641275258e-5,-1.3903263102308176e-8,2.885424114376653e-4,2.3674183477913317e-5,-1.3896003696172715e-8,2.885929118709168e-4,2.3474313471584593e-5,-1.3866152311867126e-8,2.8875979009874574e-4,2.316637368653028e-5,-1.3819777847051538e-8,2.890704395776163e-4,2.283074746827438e-5,-1.3768264842029872e-8,2.895049885128943e-4,2.2551813469805068e-5,-1.3723757443181604e-8,2.900082669629545e-4,2.2387357101861408e-5,-1.3694865214262721e-8,2.9051374253208817e-4,2.235489612947439e-5,-1.36846867449533e-8,2.909649021340734e-4,2.2436103025525936e-5,-1.3691271872221072e-8,2.9132650488845045e-4,2.2590621258034392e-5,-1.3709370985045623e-8,2.9158637691061105e-4,2.2770429252790272e-5,-1.3732329579321405e-8,2.917517969683068e-4,2.2930448877807925e-5,-1.3753577653967498e-8,2.9184401188628566e-4,2.303489006955536e-5,-1.3767628184703838e-8,2.918927671925494e-4,2.3060445344766418e-5,-1.3770682898745772e-8,2.919314014291164e-4,2.299749274559909e-5,-1.3760937852867262e-8,2.9199247847638013e-4,2.2849926468667013e-5,-1.3738629102849638e-8,2.921039092862608e-4,2.2633834466347406e-5,-1.370584503210565e-8,2.92285666948327e-4,2.2375057960451114e-5,-1.3666144851793793e-8,2.925473850976914e-4,2.2105676829510934e-5,-1.3624037426111123e-8,2.9288716836903646e-4,2.185972836237773e-5,-1.3584395520403735e-8,2.93291734444017e-4,2.1668667070356885e-5,-1.355186975838904e-8,2.937378250344291e-4,2.1556973898122735e-5,-1.3530315087571015e-8,2.941947974500097e-4,2.1538210800188506e-5,-1.3522214675142932e-8,2.9462828965697827e-4,2.161178421989162e-5,-1.3528102494893166e-8,2.950049836659742e-4,2.176062612107966e-5,-1.3546028771640402e-8,2.9529877895283186e-4,2.1950341406551685e-5,-1.3571220417731373e-8,2.95498425036084e-4,2.2131299035723218e-5,-1.3596256341667975e-8,2.956153580837951e-4,2.22458472466366e-5,-1.361215968484941e-8,2.9568840667843486e-4,2.224225736534045e-5,-1.3610641296881544e-8,2.957800686939963e-4,2.2093977823393965e-5,-1.3587181550703598e-8,2.9595999348482825e-4,2.181678085271199e-5,-1.3543713834794471e-8,2.9627849161117025e-4,2.1471574018712877e-5,-1.3489060449153417e-8,2.9674319322068856e-4,2.1145294614123724e-5,-1.343609251827474e-8,2.9731425733706953e-4,2.09172161107864e-5,-1.3396774613550436e-8,2.9792187015270356e-4,2.082994835974585e-5,-1.3377886272534408e-8,2.984942122206886e-4,2.0880413673918396e-5,-1.3379586077781747e-8,2.989796522647844e-4,2.1030612573302552e-5,-1.3396809617098212e-8,2.993552928593664e-4,2.1226817991504233e-5,-1.3421929704689853e-8,2.9962420917402626e-4,2.141632957853267e-5,-1.3447160232838052e-8,2.998076048709863e-4,2.155742331817498e-5,-1.3466074608348756e-8,2.999366508951447e-4,2.162322261659597e-5,-1.3474303011588651e-8,3.0004605342871587e-4,2.160194083120627e-5,-1.3469704117491014e-8,3.001694758979349e-4,2.1495566477339442e-5,-1.3452259987949643e-8,3.003361714790454e-4,2.131801033581268e-5,-1.34238210598226e-8,3.00568250260884e-4,2.109291783629834e-5,-1.3387751649168571e-8,3.0087835205456256e-4,2.0850953582104578e-5,-1.3348491679679161e-8,3.012678716217725e-4,2.062624812724149e-5,-1.3311032550608233e-8,3.0172620046434173e-4,2.045193589878053e-5,-1.3280308792564854e-8,3.0223147737772435e-4,2.0355180263715515e-5,-1.3260534503027968e-8,3.027530905670879e-4,2.03523675046193e-5,-1.3254528922034592e-8,3.0325589739471393e-4,2.0445234386801097e-5,-1.326309141038214e-8,3.0370584098537583e-4,2.061873537337817e-5,-1.3284535301274032e-8,3.0407635475241393e-4,2.084132023298335e-5,-1.3314523112149486e-8,3.043548220950259e-4,2.106807932262644e-5,-1.334635951759101e-8,3.0454817712909907e-4,2.1247259597402573e-5,-1.337190847136496e-8,3.0468606841306306e-4,2.1330590886984806e-5,-1.338324729373875e-8,3.048190993710789e-4,2.1286814653441683e-5,-1.337492842426596e-8,3.0500947292813136e-4,2.1115405047104646e-5,-1.3346293728374482e-8,3.0531334240780847e-4,2.0854333144826318e-5,-1.330280661991811e-8,3.0575933228971686e-4,2.057446009779354e-5,-1.3255246543245369e-8,3.063336126043048e-4,2.035786012500672e-5,-1.3216390908366007e-8,3.0698195437051866e-4,2.0267933422058764e-5,-1.3196404367399528e-8,3.076297906607286e-4,2.0326989761099988e-5,-1.3199302777510673e-8,3.0820929098613465e-4,2.051301152374637e-5,-1.3222284594361782e-8,3.086790667643346e-4,2.0774250916837253e-5,-1.3257795354211066e-8,3.0902959140693113e-4,2.1050411845724763e-5,-1.3296685507824527e-8,3.0927719251130383e-4,2.1289582840270976e-5,-1.3330825505471842e-8,3.0945357058928e-4,2.145674944124067e-5,-1.33545105445674e-8,3.095961699201846e-4,2.153531284308726e-5,-1.3364818313685573e-8,3.0974146708267824e-4,2.152488868920895e-5,-1.3361368767381744e-8,3.0992097203242546e-4,2.1438017800151246e-5,-1.3345858365688848e-8,3.1015887202686857e-4,2.1297039816659653e-5,-1.3321563576426557e-8,3.1047036154725256e-4,2.1131275414374563e-5,-1.3292871575557973e-8,3.1086020309551777e-4,2.0974113615666323e-5,-1.3264820449894448e-8,0.00031132159469673937,2.0859458460963544e-5,-1.3242589706398116e-8,3.118358892299663e-4,2.08172018406579e-5,-1.3230876462418405e-8,3.123739556176808e-4,2.0867961619606607e-5,-1.3233145002595053e-8,3.1289980273878425e-4,2.1017999708571363e-5,-1.3250835029635484e-8,3.133765322075633e-4,2.1255710514705023e-5,-1.3282711917019378e-8,3.1377389441996034e-4,2.1551170659549085e-5,-1.332461455740315e-8,3.1407592571305155e-4,2.1859774047728385e-5,-1.3369828669154369e-8,3.1428671803730246e-4,2.212997996013805e-5,-1.3410177045357869e-8,3.14432506824964e-4,2.2314131680739853e-5,-1.3437721540724634e-8,3.1455876362506394e-4,2.2380463429616143e-5,-1.3446783871977407e-8,3.1472170043465105e-4,2.2323641852085563e-5,-1.3435813847370838e-8,3.1497476110345693e-4,2.217044112756572e-5,-1.3408494160108003e-8,3.153526234579617e-4,2.1976994096751363e-5,-1.337345682081832e-8,3.1585774444304715e-4,2.1815602165497123e-5,-1.3342262745022897e-8,3.1645594131746787e-4,2.1753230588716412e-5,-1.332596859353312e-8,3.170852855440563e-4,2.1829339986754936e-5,-1.3331486306519194e-8,3.1767609064744373e-4,2.204329336795916e-5,-1.335938578246327e-8,3.1817307131503856e-4,2.2357437282565592e-5,-1.3404182809004631e-8,3.185496252597622e-4,2.2713150253212193e-5,-1.3456770258106373e-8,3.188097318692035e-4,2.305068096859074e-5,-1.350756753269062e-8,3.1898017607109944e-4,2.3324049974074164e-5,-1.3548973772346303e-8,3.1909924742474843e-4,2.3507561072834535e-5,-1.3576520061523686e-8,3.192068961684871e-4,2.359541331330978e-5,-1.3588911123510958e-8,3.1933831976116504e-4,2.3597783076813762e-5,-1.358746123971623e-8,3.1952065880791903e-4,2.3536160980096142e-5,-1.3575362908229614e-8,3.19771579080949e-4,2.3439311888661372e-5,-1.3557025218592592e-8,3.200985885643759e-4,2.3340011786561243e-5,-1.3537543756519094e-8,3.2049846336595103e-4,2.3272031254568778e-5,-1.3522245412330314e-8,3.2095680118528186e-4,2.3266656684082567e-5,-1.3516194501257755e-8,3.214482960990994e-4,2.3348264536126095e-5,-1.3523546070473995e-8,3.219387035953197e-4,2.352905494166589e-5,-1.3546710031825095e-8,3.2238945173181284e-4,2.3803973484541637e-5,-1.3585453917150966e-8,3.2276517284783867e-4,2.414782235178386e-5,-1.3636274656717374e-8,3.2304300787259485e-4,2.4516917684648338e-5,-1.369247871891746e-8,3.2322093588827404e-4,2.4856694790520883e-5,-1.374527463790208e-8,3.2332167991338466e-4,2.5114409674883268e-5,-1.3785796286515207e-8,3.233897052011945e-4,2.525357146846435e-5,-1.3807516666649438e-8,3.2348120921461983e-4,2.5265406266578555e-5,-1.3808261001094046e-8,3.2364963922767976e-4,2.5173284625345988e-5,-1.3791120413398418e-8,3.2393091613960477e-4,2.5028248522414485e-5,-1.3763924450587002e-8,3.243327110819311e-4,2.489645279708152e-5,-1.3737355303383892e-8,3.2483114194985555e-4,2.4841661933600615e-5,-1.3722151158493351e-8,3.253764637315329e-4,2.4907661106982096e-5,-1.3726145974744325e-8,3.2590667505080653e-4,2.5106163518978407e-5,-1.3752074004335538e-8,3.263648743232834e-4,2.5414592771149465e-5,-1.3796943801410434e-8,3.267142644419916e-4,2.5784562274762126e-5,-1.3853232512079237e-8,3.2694560655390203e-4,2.6157379978950974e-5,-1.3911368702242648e-8,3.2707552207375036e-4,2.64802029079398e-5,-1.3962446344578679e-8,3.2713809920406574e-4,2.6717260951139974e-5,-1.4000191368277358e-8,3.2717430412455535e-4,2.685395991046812e-5,-1.4021757723105099e-8,3.272230250199076e-4,2.6895095773412356e-5,-1.4027518182301305e-8,3.273154328546555e-4,2.6859988741622723e-5,-1.4020303863838187e-8,3.27472427946398e-4,2.6777052624059808e-5,-1.4004517409235265e-8,3.2770404819257206e-4,2.667917357422416e-5,-1.3985374637999391e-8,3.2800968800751206e-4,2.6600135622202087e-5,-1.396833964272351e-8,3.283784197698704e-4,2.65715822213231e-5,-1.3958675851617953e-8,3.2878934377281676e-4,2.661975357857392e-5,-1.3960963251046796e-8,3.2921252136175277e-4,2.6761429111553565e-5,-1.397844020247438e-8,3.2961152402647006e-4,2.699907821559547e-5,-1.4012129808211943e-8,3.29948753915105e-4,2.7316263206531952e-5,-1.4059921868231094e-8,3.3019401009220286e-4,2.7675690266479282e-5,-1.4116060189696021e-8,3.303348983515174e-4,2.8023052525526852e-5,-1.417164175112956e-8,3.303851664433875e-4,2.8298564869411255e-5,-1.4216501609523993e-8,3.303858174704456e-4,2.845434313568276e-5,-1.4242167403395092e-8,3.303959416014983e-4,2.847131185450436e-5,-1.424477933710207e-8,3.304753311960585e-4,2.8367701265917583e-5,-1.4226626167552076e-8,3.3066574499633107e-4,2.8194592527739406e-5,-1.4195561924860455e-8,3.3097847333721307e-4,2.8020371048836455e-5,-1.4162617817120332e-8,3.3139229136450047e-4,2.7910733393913838e-5,-1.4138840614943994e-8,3.318610576038761e-4,2.7911418740544573e-5,-1.4132437583694847e-8,3.32327158660616e-4,2.8038257552148033e-5,-1.4146944421067845e-8,3.3273630146328536e-4,2.8275956095937735e-5,-1.4180721826563061e-8,3.3304982043797914e-4,2.8584590280257757e-5,-1.4227750741366778e-8,3.332518772704476e-4,2.8911198090895583e-5,-1.4279413650778645e-8,3.3335044303321585e-4,2.9203016014443303e-5,-1.4326720121414798e-8,3.3337264600420897e-4,2.9418844303718548e-5,-1.4362340255230543e-8,3.333565716870711e-4,2.953593528593423e-5,-1.438192328577023e-8,3.333423100299153e-4,2.955156240787833e-5,-1.4384490907506754e-8,3.333646227280616e-4,2.9480245799448394e-5,-1.4372041376989542e-8,3.3344841055820307e-4,2.9348582447400512e-5,-1.434870041016347e-8,3.3360692534264394e-4,2.9189588504290738e-5,-1.4319770705147037e-8,3.338418939605668e-4,2.903780052882538e-5,-1.429092220642219e-8,3.341445478842576e-4,2.8925502238673784e-5,-1.4267598983776846e-8,3.3449686902692956e-4,2.8879716510260736e-5,-1.4254567192028621e-8,3.34872893630502e-4,2.8919305085978387e-5,-1.4255452413328958e-8,3.3524046998712566e-4,2.905162633610626e-5,-1.4272125495191893e-8,3.3556438983591447e-4,2.926868042533546e-5,-1.4303906971243346e-8,3.358120415655983e-4,2.9543700862908523e-5,-1.4346787820191492e-8,3.359620973953016e-4,2.9830621885824582e-5,-1.4393165436296007e-8,3.3601476557872876e-4,3.0069847654572008e-5,-1.4432765793470925e-8,3.3599911919222826e-4,3.020259394749606e-5,-1.4455159337401374e-8,3.3597110300592314e-4,3.019141034190686e-5,-1.4453385307179457e-8,3.35998526488256e-4,3.00380349093956e-5,-1.4427081304578546e-8,3.3613729850181856e-4,2.9787423935761663e-5,-1.4383225010504009e-8,3.3641053011372276e-4,2.9513350056419022e-5,-1.4333808242876725e-8,3.368014006431015e-4,2.9292449987817804e-5,-1.4291641185111276e-8,3.3726185452744576e-4,2.9179980574871958e-5,-1.4266408426820145e-8,3.377303740186198e-4,2.9197037823386694e-5,-1.4262469364142498e-8,3.3814986945613203e-4,2.9330730888683372e-5,-1.427863436126763e-8,3.3848010158714516e-4,2.9543115154846164e-5,-1.4309336642064932e-8,3.38703273259897e-4,2.9783603206552747e-5,-1.4346471770152776e-8,3.388238715787891e-4,3.0001002317025725e-5,-1.4381352417660723e-8,3.388645512106792e-4,3.015313826145052e-5,-1.4406430035573901e-8,3.388596992978482e-4,3.0213214891368453e-5,-1.441656210821404e-8,3.388480896868653e-4,3.0172579589435465e-5,-1.4409671063513486e-8,3.3886595201610624e-4,3.0040010984943417e-5,-1.4386745775937594e-8,3.389415616773652e-4,2.983826465857231e-5,-1.435129353309962e-8,3.3909197448769624e-4,2.9599024245251944e-5,-1.4308467177209232e-8,3.393219732788287e-4,2.935743690567301e-5,-1.4264115645959442e-8,3.396247872186201e-4,2.9147198599977515e-5,-1.4223960274082391e-8,3.3998384944594585e-4,2.8996680396776103e-5,-1.419298232822601e-8,3.4037497978542483e-4,2.8925994092867653e-5,-1.4174970094013113e-8,3.4076876816749476e-4,2.8944576739562157e-5,-1.4172101451461987e-8,3.4113333363185183e-4,2.9048903134653624e-5,-1.4184452613283302e-8,3.4143806830900614e-4,2.9220259014859665e-5,-1.4209426481068721e-8,3.416592313159679e-4,2.942335957385573e-5,-1.4241300071719586e-8,3.4178768959361645e-4,2.9607879560626548e-5,-1.4271351102299056e-8,3.418373350901813e-4,2.971582378240197e-5,-1.4289150939638257e-8,3.4184996084014505e-4,2.9696727082961728e-5,-1.4285356690807156e-8,3.418902633601011e-4,2.952827110856552e-5,-1.425546855762454e-8,3.420270707706498e-4,2.9232745927517535e-5,-1.4202771104298555e-8,3.4230607491550166e-4,2.8876464783064984e-5,-1.4138250014917669e-8,3.4272891522547444e-4,2.8547270391760742e-5,-1.4076783978948293e-8,3.432521860159393e-4,2.8320914566404532e-5,-1.4031512125887654e-8,3.4380643577638096e-4,2.8235399587572567e-5,-1.4009518407800017e-8,3.4432227839255926e-4,2.8284922903914585e-5,-1.4010681330376893e-8,3.4474989405392577e-4,2.8430706232186193e-5,-1.4029244458375631e-8,3.450667007921132e-4,2.8618389049455682e-5,-1.405649452639386e-8,3.4527564357985356e-4,2.879355388007985e-5,-1.4083250375345564e-8,3.453987654829163e-4,2.8912049121438285e-5,-1.4101646097180218e-8,3.45469585268103e-4,2.894525815503267e-5,-1.4106194425210915e-8,3.4552604642457406e-4,2.8881730901118583e-5,-1.4094281874326899e-8,3.4560455047242703e-4,2.8726431535401165e-5,-1.4066215283106948e-8,3.457351529958053e-4,2.84982490045257e-5,-1.4024875511406945e-8,3.459380666037131e-4,2.8226171437823553e-5,-1.397505116091795e-8,3.462216637718113e-4,2.794459723979762e-5,-1.3922581182171141e-8,3.4658209986642525e-4,2.7688322235778394e-5,-1.3873458405560078e-8,3.4700449561030034e-4,2.748781270498401e-5,-1.3833031101689292e-8,3.474653304988083e-4,2.7365322208472776e-5,-1.3805386540778746e-8,3.479355692431911e-4,2.7332084280176915e-5,-1.3792904236856692e-8,3.483841987506852e-4,2.738651159118678e-5,-1.3795909548384521e-8,3.48782076015223e-4,2.7513276120753096e-5,-1.3812375954175199e-8,3.4910623716508923e-4,2.768327317176719e-5,-1.3837706596348546e-8,3.493450066374296e-4,2.785497909947437e-5,-1.3864767635512509e-8,3.4950380428156456e-4,2.7978582520697178e-5,-1.388452258098352e-8,3.496101796449104e-4,2.800470747307293e-5,-1.3887648902006153e-8,3.4971470295323565e-4,2.7898579782032046e-5,-1.3867255990212172e-8,3.498829672228969e-4,2.7657103890016168e-5,-1.3822133605209417e-8,3.5017591926531956e-4,2.7320571946380355e-5,-1.375894735333673e-8,3.5062370726759935e-4,2.6967510508779796e-5,-1.3691352108885298e-8,3.512076836751679e-4,2.668829415482261e-5,-1.3635359280006073e-8,3.518645594543916e-4,2.6549168451208284e-5,-1.3603044848274974e-8,3.525120860381075e-4,2.6567976763254272e-5,-1.359825241655584e-8,3.530801471377777e-4,2.671440633051558e-5,-1.3616465703002289e-8,3.5353016455276417e-4,2.692942938290615e-5,-1.3647971513994665e-8,3.538577002956241e-4,2.7148881753446637e-5,-1.3681795510084634e-8,3.540840771794443e-4,2.7320151877578618e-5,-1.3708567939664234e-8,3.542449634789241e-4,2.740961864282937e-5,-1.372191839944505e-8,3.543805993034693e-4,2.7403434203548572e-5,-1.3718799059739425e-8,3.545289983413223e-4,2.730498627401825e-5,-1.3699233288566783e-8,3.547216624954893e-4,2.7131303055044464e-5,-1.366581028187246e-8,3.5498087228620824e-4,2.690928730173587e-5,-1.3623050830270064e-8,3.5531797095255416e-4,2.6671814970846222e-5,-1.3576675347345746e-8,3.557325408326314e-4,2.6453572621222732e-5,-1.3532810617513158e-8,3.562126332903402e-4,2.628664184351773e-5,-1.3497191162436568e-8,3.5673629776197384e-4,2.619610347960688e-5,-1.3474416118620455e-8,3.5727449108908464e-4,2.6196233744873596e-5,-1.3467331827186608e-8,3.577951171362706e-4,2.628789151186731e-5,-1.3476583429700484e-8,3.582677504977914e-4,2.6457485603445368e-5,-1.3500355686777276e-8,3.5866856083210973e-4,2.667773719840518e-5,-1.3534335889835297e-8,3.58984983565573e-4,2.691031135287597e-5,-1.3571967951946276e-8,3.592197788921785e-4,2.7110381522096033e-5,-1.3605104433755066e-8,3.5939395836391525e-4,2.723347733466807e-5,-1.3625211838772243e-8,3.5954731475294516e-4,2.7245005640118063e-5,-1.3625233122092842e-8,3.5973439287282456e-4,2.7131819567977223e-5,-1.3601941703224978e-8,3.600135954575884e-4,2.6912915110491107e-5,-1.355814290805302e-8,3.60429073295564e-4,2.664325075241653e-5,-1.3503526756102676e-8,3.60990418920039e-4,2.64034696792908e-5,-1.3452835801158697e-8,3.6166146352094975e-4,2.6273775898966717e-5,-1.3421074493356377e-8,3.623688032765512e-4,2.630225709809558e-5,-1.3417659611230746e-8,3.6302889191182174e-4,2.6485921915614753e-5,-1.3442821004948017e-8,3.635787000997205e-4,2.6775836053406942e-5,-1.3488337737398986e-8,3.6399313254539714e-4,2.7100845265447172e-5,-1.3541675775041822e-8,3.6428387361378935e-4,2.739386253867796e-5,-1.3590675845310196e-8,3.644865074909421e-4,2.7608376878739416e-5,-1.3626575377250361e-8,3.6464576613601913e-4,2.7723005292816395e-5,-1.364495582745406e-8,3.6480461555127395e-4,2.77383404850266e-5,-1.3645341642181487e-8,3.6499818740537e-4,2.76710053685678e-5,-1.3630271402829668e-8,3.6525122259954397e-4,2.754788664050142e-5,-1.360432815008887e-8,3.6557730310316335e-4,2.7401492817728636e-5,-1.357329062063108e-8,3.659787553882458e-4,2.72661665993695e-5,-1.3543394730429565e-8,3.6644689750384423e-4,2.7174555417879994e-5,-1.352065178127914e-8,3.669628241382334e-4,2.7153908983776746e-5,-1.3510179030065285e-8,3.674992016602788e-4,2.7222166045638933e-5,-1.3515526234079713e-8,3.68023539090487e-4,2.73843521332642e-5,-1.3538046023492725e-8,3.685030041719975e-4,2.7630228716345682e-5,-1.357642629855776e-8,3.689102801263324e-4,2.793415315314418e-5,-1.362653567100988e-8,3.692294796808659e-4,2.825781083626839e-5,-1.368173224189925e-8,3.694608523244996e-4,2.8555916027981706e-5,-1.3733727733496358e-8,3.6962307871807993e-4,2.8784249160797294e-5,-1.3773978177336275e-8,3.697522993353289e-4,2.8908903102290343e-5,-1.3795451641862713e-8,3.6989731803456434e-4,2.8915385836666257e-5,-1.3794521381371401e-8,3.701106527110447e-4,2.8815745762559872e-5,-1.3772576532502819e-8,3.704358354453675e-4,2.8651045702873957e-5,-1.3736749819577554e-8,3.7089307273516974e-4,2.8486040803253674e-5,-1.369908367506479e-8,3.714679608227572e-4,2.8394043726751596e-5,-1.3673710854101186e-8,3.7210991213757036e-4,2.843405066778115e-5,-1.3672440108961631e-8,3.7274498490128303e-4,2.8628554579815174e-5,-1.3700371291720451e-8,3.733002400374539e-4,2.8953884905579092e-5,-1.375383654447321e-8,3.737283127161456e-4,2.934966667201483e-5,-1.3821992572909582e-8,3.74019840199307e-4,2.9742318752869464e-5,-1.3891158565206442e-8,3.741996113300426e-4,3.0069483883304552e-5,-1.3949424588473654e-8,3.743121974552402e-4,3.0294519375517385e-5,-1.3989456769194334e-8,3.7440629029591007e-4,3.0408720943630665e-5,-1.4009040575435913e-8,3.745237271452724e-4,3.042555417326966e-5,-1.4010137999684472e-8,3.7469432233555345e-4,3.0372415163084517e-5,-1.399745265579277e-8,3.7493481407911624e-4,3.0283392801809747e-5,-1.3977121315336288e-8,3.7524974009757705e-4,3.0194074963467853e-5,-1.3955729687359219e-8,3.7563276072333213e-4,3.013796030115297e-5,-1.3939607838651707e-8,3.7606789752317216e-4,3.014358067755694e-5,-1.3934276197156442e-8,3.765308715945007e-4,3.0231593508346177e-5,-1.394391327502817e-8,3.769911447976581e-4,3.0411553226949515e-5,-1.3970762499094855e-8,3.774153866080384e-4,3.067874957136116e-5,-1.4014505540693484e-8,3.7777276900158004e-4,3.101223988098575e-5,-1.4071785355970582e-8,3.780416881621932e-4,3.137561973052833e-5,-1.4136185048005719e-8,3.782164562994042e-4,3.1721813892388676e-5,-1.4198962795870701e-8,3.7831168136817563e-4,3.2002044707192615e-5,-1.4250643304019193e-8,3.7836207867593326e-4,3.2177378338159576e-5,-1.4283213281041604e-8,3.784166470845473e-4,3.222972568760059e-5,-1.4292338201740607e-8,3.7852801727424653e-4,3.216882097511682e-5,-1.4278915068388991e-8,3.7873941235653586e-4,3.2032643792585974e-5,-1.4249424676350356e-8,3.7907250187723524e-4,3.1880386191779476e-5,-1.4214835935159804e-8,3.79519524138801e-4,3.1778859253417956e-5,-1.4188143257430748e-8,3.800425591675725e-4,3.1785057707013906e-5,-1.4180988668013144e-8,3.8058155833472476e-4,3.192941802742809e-5,-1.420023019579586e-8,3.810702007095623e-4,3.220552703223705e-5,-1.424564138430845e-8,3.814550608339061e-4,3.257118968284767e-5,-1.4309824655516338e-8,3.8171088610531375e-4,3.2961679962287354e-5,-1.4380610992098202e-8,3.818457030615165e-4,3.3310117296884816e-5,-1.444499449135639e-8,3.8189440825249304e-4,3.356630414228731e-5,-1.4492871054400158e-8,3.8190518456659355e-4,3.3706990005561714e-5,-1.4519156100786139e-8,3.8192545511999565e-4,3.3735939536645784e-5,-1.4523932873023375e-8,0.00038199221663132935,3.36770574780388e-5,-1.4511243699103591e-8,3.8212794959808886e-4,3.356532850735636e-5,-1.44874232515469e-8,3.8234068283503006e-4,3.3438964212912564e-5,-1.445961632653455e-8,3.826260695837975e-4,3.333397058547786e-5,-1.4434725361888601e-8,3.8296985541619517e-4,3.328078604508245e-5,-1.4418750654133305e-8,3.8335002714571484e-4,3.3302014460873146e-5,-1.441635218389012e-8,3.837387391287661e-4,3.341034772114456e-5,-1.4430449062814374e-8,3.841046361875188e-4,3.3606223967194986e-5,-1.4461732780659432e-8,3.844163948873668e-4,3.3875453388444264e-5,-1.4508108409027856e-8,3.846481026697538e-4,3.4187920503036706e-5,-1.4564283527851176e-8,3.8478626988731516e-4,3.449926174844078e-5,-1.4621926226168586e-8,3.8483677916458626e-4,3.475742957885683e-5,-1.4670832194101453e-8,3.8482854708888275e-4,3.491455839733871e-5,-1.4701226812136726e-8,3.8481043392111564e-4,3.4941584971485933e-5,-1.4706695752866484e-8,3.8484010168733006e-4,3.484013825587449e-5,-1.468664371357169e-8,3.8496755452253895e-4,3.464574228765504e-5,-1.4647105606473425e-8,3.852194666708856e-4,3.4419635873436564e-5,-1.4599384135326243e-8,3.8559051584685747e-4,3.4231768838361375e-5,-1.4556966089518085e-8,3.8604470174984556e-4,3.4141257634779535e-5,-1.4531832281699271e-8,3.8652549596401316e-4,3.4180796113487486e-5,-1.4531324827219252e-8,3.8697101818921484e-4,3.434917801281351e-5,-1.4556386882613265e-8,3.8732970092140794e-4,3.461318978913546e-5,-1.4601550234372074e-8,3.875723463890504e-4,3.491766325493246e-5,-1.4656605918405712e-8,3.8769763284319733e-4,3.5200524303996284e-5,-1.4709446876581307e-8,3.8772997811639925e-4,3.540841369879993e-5,-1.474921260370285e-8,3.877109937265693e-4,3.550840337825738e-5,-1.476877406003373e-8,3.8768778169230556e-4,3.5492866851361164e-5,-1.476588786722735e-8,3.877020190388187e-4,3.5377264492801586e-5,-1.4742916279944912e-8,3.8778272420060984e-4,3.519311331097323e-5,-1.4705540490345767e-8,3.8794354267678884e-4,3.497940485725285e-5,-1.4661111679795208e-8,3.88183621815305e-4,3.4775082366194856e-5,-1.4617171125102894e-8,3.8849040862005046e-4,3.4613774624727124e-5,-1.4580401934381552e-8,3.888429039948693e-4,3.452069902788002e-5,-1.4556015515333534e-8,3.8921458948142855e-4,3.45109299576898e-5,-1.4547412738969088e-8,3.8957597873680495e-4,3.4588150401447517e-5,-1.455591709815627e-8,3.8989728274007056e-4,3.474336635341969e-5,-1.4580440622513306e-8,3.9015195396758514e-4,3.495368121352255e-5,-1.4617090694513199e-8,3.9032177735499337e-4,3.5182101792084835e-5,-1.4658947568485471e-8,3.9040340540185385e-4,3.5380277120652675e-5,-1.4696467881042956e-8,3.904146306630224e-4,3.549631641986946e-5,-1.4719008759851094e-8,3.903967427080332e-4,3.548836893154207e-5,-1.4717615696219794e-8,3.9040860609677376e-4,3.534095270614115e-5,-1.468840935651692e-8,3.905107938530057e-4,3.507658782265891e-5,-1.4635025503981219e-8,3.9074435561294203e-4,3.4754301960084933e-5,-1.4568447883446436e-8,3.911142837911334e-4,3.445237060488615e-5,-1.4503769375063293e-8,3.915867065914306e-4,3.4242280516138355e-5,-1.4455241755727162e-8,3.9210098851033884e-4,3.416630020580259e-5,-1.4431921054112957e-8,3.9258978921974933e-4,3.42277415173893e-5,-1.4435583191215956e-8,3.92997891960016e-4,3.43949587943332e-5,-1.446115512515839e-8,3.9329397995157005e-4,3.4614214184008465e-5,-1.4498870429778417e-8,3.934741228294369e-4,3.482529654460197e-5,-1.4537116508416524e-8,3.935585439745504e-4,3.497539271070658e-5,-1.456516089516988e-8,3.935841244453831e-4,3.502882428209544e-5,-1.4575248316469991e-8,3.935950084123615e-4,3.497180118274077e-5,-1.4563798423281858e-8,3.9363335905265697e-4,3.4812268755863353e-5,-1.453161028551469e-8,3.9373196934599825e-4,3.457567997812712e-5,-1.4483168817569692e-8,3.9390985158140024e-4,3.4298244121273065e-5,-1.442534785326174e-8,3.941710735045695e-4,3.401951202215226e-5,-1.4365908871774454e-8,3.945062887672119e-4,3.377587091359689e-5,-1.431215883946541e-8,3.948959058166358e-4,3.3595868201667825e-5,-1.4269990715109863e-8,3.9531378332501087e-4,3.34975018387911e-5,-1.4243345355196083e-8,3.95730734118531e-4,3.348697905005418e-5,-1.4233969882786683e-8,3.9611767962868447e-4,3.3558268125866676e-5,-1.424129255710753e-8,3.964487102877791e-4,3.3693000306870486e-5,-1.4262290516375536e-8,3.9670457560232427e-4,3.386072530925677e-5,-1.429136009013897e-8,3.96877142245794e-4,3.402026478479182e-5,-1.4320404114221407e-8,3.96974675963087e-4,3.412377428846557e-5,-1.433955280018419e-8,3.970263033690597e-4,3.412534347773198e-5,-1.4338948576893425e-8,3.970821930901893e-4,3.3994646882125137E-05,-1.4311677516442803e-8,3.972051269460485e-4,3.373258641401384e-5,-1.4257126814339408e-8,3.9745171697619185e-4,3.3380857036472385e-5,-1.4183048350455968e-8,3.9784887548471545e-4,3.3015677815108926e-5,-1.4104376616313594e-8,3.983784208606685e-4,3.272315572911758e-5,-1.4038376360391643e-8,3.989810077392129e-4,3.2567028222608205e-5,-1.3998275239165507e-8,3.995784033932848e-4,3.256650678484111e-5,-1.3988808427858587e-8,4.001011450991133e-4,3.269479846358877e-5,-1.4005705396679457e-8,4.0050766556828905e-4,3.2894820685850835e-5,-1.4038489709830286e-8,4.0078956955466436e-4,3.310064022337845e-5,-1.407446327281956e-8,4.0096621978551547e-4,3.325505206119748e-5,-1.4102093289319672e-8,4.010745404447036e-4,3.3319672146671645e-5,-1.4113112716440347e-8,4.0115849496576356e-4,3.3278246778498246e-5,-1.4103416685224999e-8,4.0126036221118603e-4,3.3135359116825646e-5,-1.4073080729645138e-8,4.014143685471576e-4,3.291243375807629e-5,-1.4025773677232568e-8,4.0164265136440953e-4,3.264223661405534e-5,-1.3967743564302586e-8,4.019534608500238e-4,3.236272447032621e-5,-1.390655605379301e-8,4.023414451750576e-4,3.211102729665613e-5,-1.3849797898036786e-8,4.0278971307670453e-4,3.191824538468825e-5,-1.3803953237611915e-8,4.032731686233601e-4,3.18056089510052e-5,-1.3773602883065726e-8,4.037624347508987e-4,3.178228329803735e-5,-1.376099772735688e-8,4.0422776760387706e-4,3.184466222614487e-5,-1.3765925422093045e-8,4.0464271102872616e-4,3.1976751617668895e-5,-1.3785736315062855e-8,4.049875078121135e-4,3.2151373504918296e-5,-1.3815449042655647e-8,4.0525242347578963e-4,3.2332175019236376e-5,-1.3847964962952615e-8,4.0544119121250843e-4,3.2476862419152035e-5,-1.3874561986942388e-8,4.05574305140568e-4,3.254270756363941e-5,-1.3885979640020726e-8,4.0569066632959827e-4,3.249544686392352e-5,-1.3874369128060043e-8,4.0584474135106326e-4,3.232141920233108e-5,-1.3836033795223245e-8,4.060959597117366e-4,3.203981711665866e-5,-1.3774198864523915e-8,4.0648944202457856e-4,3.170776499799547e-5,-1.3700205970255192e-8,4.070339380710125e-4,3.14094387988266e-5,-1.3631320248747382e-8,4.076901544592694e-4,3.122757281338524e-5,-1.3584880382566213e-8,4.083808447150242e-4,3.1209812559531696e-5,-1.357136683146307e-8,4.090200221087287e-4,3.1349995147856346e-5,-1.3590446140588086e-8,4.0954443123187515e-4,3.1595103343674464e-5,-1.3632168430282483e-8,4.099303837683666e-4,3.187049880203468e-5,-1.3681872256090355e-8,4.101918277261662e-4,3.210671035463291e-5,-1.3725481876963942e-8,4.103671176469619e-4,3.225608889167277e-5,-1.3752883934071199e-8,4.1050398879131114e-4,3.2297665182539014e-5,-1.3759059927073484e-8,4.106480562172606e-4,3.223425978678608e-5,-1.3743742869076615e-8,4.108359107796797e-4,3.208637535174844e-5,-1.371041895829871e-8,4.1109180515318115e-4,3.188566709771694e-5,-1.366514943234374e-8,4.1142658815250326e-4,3.166901056491771e-5,-1.3615380156688916e-8,4.118380537063425e-4,3.147326545835003e-5,-1.3568790580043022e-8,4.123123872285276e-4,3.1330693322293186e-5,-1.3532246924646132e-8,4.1282660990819755e-4,3.12650855735152e-5,-1.3510937230181173e-8,4.1335194038861985e-4,3.12888232285669e-5,-1.3507759179538763e-8,0.00041385782791872523,3.14012402587035e-5,-1.3523006860697865e-8,4.143162097043059e-4,3.158851800056764e-5,-1.3554343762603742e-8,4.147055736697891e-4,3.182504325345812e-5,-1.3596998591413753e-8,4.150145461827425e-4,3.207610038134238e-5,-1.3644157727172217e-8,4.1524476893370035e-4,3.230183268389632e-5,-1.368759809958973e-8,4.1541284364256985e-4,3.2462481911037404e-5,-1.3718658948585584e-8,4.1555091775811174e-4,3.252513293742975e-5,-1.3729683805619488e-8,4.1570478512098117e-4,3.247211793603926e-5,-1.3715984522395111e-8,4.159276624200048e-4,3.2310116826504505e-5,-1.3678055124053507e-8,4.1626805702971783e-4,3.2076790804311726e-5,-1.3623245822332607e-8,4.167524617387805e-4,3.1839355536118996e-5,-1.3565610929515464e-8,4.173687071937988e-4,3.1679433606488e-5,-1.352271054257597e-8,4.180608672886187e-4,3.166480571656874e-5,-1.3509541984888306e-8,4.187443288713044e-4,3.182021371545731e-5,-1.353221487846181e-8,4.193369682737023e-4,3.211533218369021e-5,-1.3585218588590153e-8,4.1978931227977685e-4,3.247863499575709e-5,-1.3654153761093438e-8,4.2009704087509506e-4,3.282777137229304e-5,-1.3721983897773367e-8,4.202929904690921e-4,3.309778073197644e-5,-1.377490014751364e-8,4.2042859167406205e-4,3.325494568929429e-5,-1.3805267082687721e-8,4.2055631802961126e-4,3.329635406528146e-5,-1.3811685967344244e-8,4.207187075410816e-4,3.324181570289828e-5,-1.3797529601781316e-8,4.209438553744661e-4,3.312430221578908e-5,-1.376914696052265e-8,4.212450114021482e-4,3.29820290127452e-5,-1.3734307231289387e-8,4.2162200611876914e-4,3.285276439909095e-5,-1.3700985550654417e-8,4.220632466273461e-4,3.276974175556986e-5,-1.3676406563612262e-8,4.225479806825113e-4,3.275847057478871e-5,-1.3666274054639809e-8,4.2304896717371235e-4,3.283409778896946e-5,-1.367416405793029e-8,4.23535782825238e-4,3.299935006506142e-5,-1.3701088573561653e-8,4.2397886988324306e-4,3.3243478824476034e-5,-1.374527589841765e-8,4.2435406637511227e-4,3.354279531934157e-5,-1.3802236076034794e-8,4.246470102477941e-4,3.3863147891369016e-5,-1.3865160722445153e-8,4.248566904943515e-4,3.4164346787876715e-5,-1.392568757735148e-8,4.249974307882397e-4,3.4406249583597606e-5,-1.3975043403899051e-8,4.2509869023787635e-4,3.455590008719841e-5,-1.4005525482322397e-8,4.252022353167417e-4,3.4594902384809774e-5,-1.4012200930378964e-8,4.2535628227180944e-4,3.452606191561703e-5,-1.3994602436161527e-8,4.2560627053101944e-4,3.437774195887487e-5,-1.3957997791203556e-8,4.259826655671023e-4,3.42033544248866e-5,-1.3913552496987838e-8,4.2648812302165757e-4,3.407288572264099e-5,-1.3876612700332113e-8,4.2708920644435e-4,3.405490071168592e-5,-1.3862734860228985e-8,4.2771960286236156e-4,3.419246160656786e-5,-1.388224482934693e-8,4.2829858276369735e-4,3.4483331127508464e-5,-1.39356667397566e-8,4.287591800201008e-4,3.487711132752329e-5,-1.401286696741407e-8,4.2907189221625086e-4,3.529375343362766e-5,-1.4096933853643936e-8,4.2925111181198606e-4,3.5653822332007866e-5,-1.4170691079982273e-8,4.293431436633978e-4,3.590386737424457e-5,-1.422220020649449e-8,4.294057069943159e-4,3.602629900089709e-5,-1.4246968028465437e-8,4.2949028887441184e-4,3.603476243390713e-5,-1.4247107509361492e-8,4.296326637699373e-4,3.596258975350247e-5,-1.422906114426545e-8,4.298507830160587e-4,3.585122067538412e-5,-1.4201284229219959e-8,4.30146821619837e-4,3.574178595192985e-5,-1.4172502101488057e-8,4.305105528179752e-4,3.567004669500458e-5,-1.4150577469349977e-8,4.309225690144668e-4,3.566353502127585e-5,-1.4141794633184363e-8,4.3135708115020477e-4,3.5739694174433475e-5,-1.4150368611616155e-8,4.3178466029482305e-4,3.5904363120716595e-5,-1.4178070671429282e-8,4.321754230960808e-4,3.615055457113382e-5,-1.4223940930016515e-8,4.3250300470527235e-4,3.645801938170371e-5,-1.4284152898436964e-8,4.327492141671965e-4,3.6794455062480333e-5,-1.4352180111878265e-8,4.329086361301494e-4,3.711914037777242e-5,-1.441944170755436e-8,4.329919362284678e-4,3.738922622588004e-5,-1.4476525706585657e-8,4.3302648954548616e-4,3.756805202918171e-5,-1.4514923144055002e-8,4.330533235187689e-4,3.763391300210855e-5,-1.4528989528198715e-8,4.331202330514279e-4,3.7587099620632155e-5,-1.4517675625248134e-8,4.33271953934643e-4,3.7453099149815584e-5,-1.4485529520827118e-8,4.335391170749413e-4,3.728040086638992e-5,-1.4442540122095772e-8,4.3392835970523195e-4,3.713209968463934e-5,-1.4402528788363379e-8,4.344165500758634e-4,3.707165347756771e-5,-1.4380064897967802e-8,4.3495230062594813e-4,3.714511840207765e-5,-1.438637838413005e-8,4.3546692736868404e-4,3.7364868229131036e-5,-1.4425430174624792e-8,4.3589372030768185e-4,3.7701867510223756e-5,-1.4491842764582526e-8,4.361893091351183e-4,3.8092289800798756e-5,-1.4572120153155367e-8,4.3634757852403625e-4,3.8457985039809324e-5,-1.464910812938325e-8,4.363991796352178e-4,3.8732147174392066e-5,-1.4707727290935779e-8,4.3639763452364114e-4,3.887826414780291e-5,-1.4739264857224268e-8,4.364001722647106e-4,3.889525252824335e-5,-1.474263969373984e-8,4.364523016838084e-4,3.881021476354108e-5,-1.4722977299200551e-8,4.365804771433114e-4,3.866556340462599e-5,-1.468896039574687e-8,4.367919722871205e-4,3.8506926413442914e-5,-1.4650297668231218e-8,4.370786669043261e-4,3.837491837753309e-5,-1.4615939698352876e-8,4.3742177567648004e-4,3.8300841711920557e-5,-1.4593067497875068e-8,4.377959505900983e-4,3.830495380523125e-5,-1.4586611379527836e-8,4.3817246361271725e-4,3.839583492266989e-5,-1.4599028669935255e-8,4.385219262133009e-4,3.856996202628723e-5,-1.4630154871815322e-8,4.388172474094774e-4,3.881133934777927e-5,-1.4677068982739351e-8,4.3903736753377824e-4,3.909172438758446e-5,-1.4734059655137036e-8,4.39171785700476e-4,3.9372492362129876e-5,-1.4792916472356046e-8,4.392250878709724e-4,3.9609287825052854e-5,-1.48438349018792e-8,4.392197841418492e-4,3.9760010138741e-5,-1.4877110525214467e-8,4.391952872335693e-4,3.9795215836805176e-5,-1.488546114998337e-8,4.392015028478242e-4,3.9708130526000964e-5,-1.4866368508482124e-8,4.392874740657098e-4,3.9520303226885334e-5,-1.4823547388579492e-8,4.3948798661524503e-4,3.927964654825381e-5,-1.4766788554084115e-8,4.3981252877586845e-4,3.905019462021475e-5,-1.4709963203151688e-8,4.4024057367895406e-4,3.889606668889953e-5,-1.4667637174980205e-8,4.407251019923313e-4,3.886426054421898e-5,-1.465121537204819e-8,4.4120371732378895e-4,3.897130268161372e-5,-1.4665702138134793e-8,4.4161456567829924e-4,3.919776198075389e-5,-1.4708062006301217e-8,4.41912806692747e-4,3.949272215218089e-5,-1.4767828043097781e-8,4.4208268554817335e-4,3.978761101197567e-5,-1.4829982902345276e-8,4.421409699762284e-4,4.001548958358082e-5,-1.4879284623686034e-8,4.421303237867017e-4,4.012928886396741e-5,-1.4904509091663218e-8,4.4210531633417574e-4,4.011254468451751e-5,-1.4901064005645254e-8,4.421168168722615e-4,3.997960143327207e-5,-1.487124044964496e-8,4.422004451507053e-4,3.9767094807069e-5,-1.4822485598136494e-8,4.4237183113721076e-4,3.9521669753076244e-5,-1.4764783122292205e-8,4.426279491665109e-4,3.928881642907068e-5,-1.4708204056709783e-8,4.429518454747351e-4,3.91054375635812e-5,-1.4661205248835662e-8,4.433181067887932e-4,3.899632725145631e-5,-1.4629752573422735e-8,4.436975223791884e-4,3.8973357147412855e-5,-1.4617048273316101e-8,4.4406056405082626e-4,3.903590468819179e-5,-1.4623561502714967e-8,4.4438008650014344e-4,3.91715076460056e-5,-1.4647122090138582e-8,4.446339768961001e-4,3.935646602380224e-5,-1.4682981479505956e-8,4.448083963396037e-4,3.955684978592832e-5,-1.4723927049201846e-8,4.4490177030358924e-4,3.973098128986008e-5,-1.4760714274992125e-8,4.4492878725670593e-4,3.9834759260079374e-5,-1.4783179135015065e-8,4.4492247041699046e-4,3.983068781073579e-5,-1.4782276848273152e-8,4.4493150521741963e-4,3.9699639584905065e-5,-1.4752832416571488e-8,4.4501065268293756e-4,3.945150399211428e-5,-1.4696101798232349e-8,4.452051621230111e-4,3.912878232058367e-5,-1.4620773630123115e-8,4.4553450758414917e-4,3.879851843897706e-5,-1.4541367888067542e-8,4.459831270119789e-4,3.853341144760553e-5,-1.4474199279655483e-8,4.4650334228181737e-4,3.83892962100095e-5,-1.4432428557074345e-8,4.470294963479162e-4,3.838843851633301e-5,-1.4422210720894016e-8,4.474971022466872e-4,3.8514644123259556e-5,-1.4441268698217063e-8,4.4785977033990704e-4,3.872025545847296e-5,-1.4480033042680275e-8,4.480991934681107e-4,3.8940889744311725e-5,-1.4524608121518424e-8,4.48226794522255e-4,3.911257774162124e-5,-1.4560498684405491e-8,4.482780588321118e-4,3.918669829382871e-5,-1.457607889926847e-8,4.4830195410043057e-4,3.913954024565277e-5,-1.4565007306195704e-8,4.483485381147606e-4,3.8974954360315984e-5,-1.4527125710483059e-8,4.484579671969714e-4,3.872030337677846e-5,-1.4467791545713628e-8,4.4865345969394e-4,3.841765061935548e-5,-1.4396030200337683e-8,4.489392960449042e-4,3.811327623924533e-5,-1.4322193270630174e-8,4.4930320331229367e-4,3.7848511485026534e-5,-1.4255821744391228e-8,4.497213338957374e-4,3.765366154702086e-5,-1.4204163537672068e-8,4.5016388935185643e-4,3.7545304813913294e-5,-1.4171463776027224e-8,4.5060002058532647e-4,3.752619081927828e-5,-1.415888242467012e-8,4.5100150770761724e-4,3.758652962581753e-5,-1.4164756572674547e-8,4.5134546376081325e-4,3.7705677615177184e-5,-1.4184941935731645e-8,4.5161665818218725e-4,3.785383751499737e-5,-1.4213111016563784e-8,4.518100423627256e-4,3.7994051971822126e-5,-1.4241074681839239e-8,4.5193371514478737e-4,3.8085369823532785e-5,-1.4259379743515523e-8,4.5201173652522936e-4,3.808847352382779e-5,-1.4258553184670598e-8,4.5208492668352473e-4,3.797471001575803e-5,-1.4231251193107125e-8,4.522066971808626e-4,3.77376787180318e-5,-1.4175095272905575e-8,4.5243135935849304e-4,3.7403252871591634e-5,-1.4095172040726785e-8,4.5279582657719995e-4,3.7030874343293475e-5,-1.4004497095542028e-8,4.5330172975054594e-4,3.6700112219684904e-5,-1.3921072538958264e-8,4.539088056613535e-4,3.648437266876659e-5,-1.3861984223206524e-8,4.545461169138244e-4,3.642372882885231e-5,-1.3837216692123784e-8,4.5513658700048617e-4,3.651138922317251e-5,-1.3846408129259836e-8,4.556220323441288e-4,3.66997016694241e-5,-1.3879890283223254e-8,4.559775185965056e-4,3.691969978430192e-5,-1.3922769386842146e-8,4.562122242740801e-4,3.710309854736905e-5,-1.3959682858114987e-8,4.5636084388552884e-4,3.7198647914217366e-5,-1.397848887776796e-8,4.564712492187718e-4,3.7180239677984124e-5,-1.3972296643507357e-8,4.5659257815677795e-4,3.7047788247771294e-5,-1.393998633269255e-8,4.5676585962010804e-4,3.682314037864092e-5,-1.3885605024489333e-8,4.57017899354544e-4,3.65430985371316e-5,-1.3816998895031419e-8,4.573585513254664e-4,3.625115082842816e-5,-1.3743986972765052e-8,4.5778120823241134e-4,3.5989329685002914e-5,-1.367641965358165e-8,4.582659310878471e-4,3.579152347703973e-5,-1.3622494409608255e-8,4.587842300484169e-4,3.567911872805785e-5,-1.3587614246913989e-8,4.5930436312677383e-4,3.565921697959824e-5,-1.357389940117045e-8,4.5979615512869434e-4,3.572510183973148e-5,-1.358027877351196e-8,4.6023475988321376e-4,3.585820060660067e-5,-1.360294284347647e-8,4.6060335832733674e-4,3.6030722091809204e-5,-1.3635911870639802e-8,4.60895139188042e-4,3.6208528902177354e-5,-1.3671590860836431e-8,4.6111494690815154e-4,3.635429757026502e-5,-1.3701352069797334e-8,4.612807925415506e-4,3.6431488839050474e-5,-1.3716346193401218e-8,4.614247987373746e-4,3.6410027954227026e-5,-1.3708835750741679e-8,4.6159205914533125e-4,3.62743262879114e-5,-1.3674231350069227e-8,4.6183498055835207e-4,3.6032773953528615e-5,-1.3613573886357206e-8,4.6220096368370197e-4,3.572504366766511e-5,-1.3535497406452498e-8,4.627142460022724e-4,3.5420516607509466e-5,-1.345601089443765e-8,4.633589570077975e-4,3.520158587923049e-5,-1.339462640412944e-8,4.640754895656249e-4,3.5133781640715624e-5,-1.336732887285183e-8,4.6477797333421513e-4,3.523710146370312e-5,-1.337976511947418e-8,4.653863109243403e-4,3.5476761963375476e-5,-1.3424888861955243e-8,4.658546211216421e-4,3.577942568893229e-5,-1.3486488367131025e-8,4.661813358342299e-4,3.6063351831523195e-5,-1.3545965988268696e-8,4.664004611033069e-4,3.626473218857858e-5,-1.3588320959816941e-8,4.665639958352068e-4,3.6350407228647365e-5,-1.360513303776225e-8,4.6672541684679767e-4,3.631790496298228e-5,-1.3594788762173888e-8,4.6692865416770923e-4,3.618845377576418e-5,-1.3561187150119446e-8,4.672026368560225e-4,3.5997925297469526e-5,-1.3511940939945172e-8,4.6755982834898976e-4,3.5788386314177225e-5,-1.3456575605413407e-8,4.67997179408685e-4,3.5601078032541834e-5,-1.3404875559273569e-8,4.684985923176623e-4,3.5470812389852354e-5,-1.3365423942936016e-8,4.6903849108559164e-4,3.542180047068913e-5,-1.3344439413006975e-8,4.695861596821659e-4,3.546508508953634e-5,-1.3345040436527447e-8,4.7011041192164126e-4,3.559772500847251e-5,-1.3367006714160734e-8,4.705840542170844e-4,3.580375537789526e-5,-1.3407016011675667e-8,4.7098759753275935e-4,3.6056678871433476e-5,-1.3459233547938723e-8,4.7131190949890184e-4,3.632298007574168e-5,-1.3516078049011552e-8,4.71559790690804e-4,3.6566204934469644e-5,-1.3569053058169974e-8,4.717465735754899e-4,3.6751383530202755E-05,-1.3609647477316639e-8,4.718998124130554e-4,3.684981905601746e-5,-1.3630405599256602e-8,4.7205781579265745e-4,3.684452081682734e-5,-1.3626310087204059e-8,4.7226605766033966e-4,3.673637051258554e-5,-1.3596506069195115e-8,4.725699924678846e-4,3.654994787786842e-5,-1.3546025765795578e-8,4.730033180778431e-4,3.6336041112372295e-5,-1.3486667699711668e-8,4.7357300089362716e-4,3.616604739808837e-5,-1.3435763281303896e-8,4.74246972161772e-4,3.611397064008277e-5,-1.3411769997669891e-8,4.7495468950762464e-4,3.6228226616847743e-5,-1.342728801093758e-8,4.756075265498231e-4,3.6506596772157785e-5,-1.3482806498111208e-8,4.761324789643435e-4,3.68921215314555e-5,-1.3565521966204982e-8,4.76500027685036e-4,3.729587464380291e-5,-1.3654665288008376e-8,4.7672987690625123e-4,3.763293743393644e-5,-1.3730017018062513e-8,4.768749775046739e-4,3.7850136442992455e-5,-1.3778472109271951e-8,4.7699763159739244e-4,3.7934345672070496e-5,-1.379606231317544e-8,4.7715085690734735e-4,3.790502947009683e-5,-1.3786386207802384e-8,4.7736947329048336e-4,3.780076670277705e-5,-1.3757715344810296e-8,4.7766881383462853e-4,3.7666865402247315e-5,-1.3720316041747617e-8,4.780473761409701e-4,3.7546640888132714e-5,-1.368447808114495e-8,4.7849069816615584e-4,3.747611264933771e-5,-1.3659170952435136e-8,4.789752246660876e-4,3.748091718942398e-5,-1.3651117518452754e-8,4.7947201707088224e-4,3.757448492495361e-5,-1.3664168314897276e-8,4.799505077512641e-4,3.775714321569889e-5,-1.3698971973992664e-8,4.803824002412184e-4,3.801622409426613e-5,-1.3752971782310215e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_11.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_11.json new file mode 100644 index 000000000..765f637b6 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_11.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":11000,"numberOfSamples":1000,"samples":[4.807455898115237e-4,3.832746570992544e-5,-1.3820749559112586e-8,4.810276804026849e-4,3.8657939483712816e-5,-1.3894708855793208e-8,4.8122851144731977e-4,3.897037866353488e-5,-1.3966029941865335e-8,4.8136122169643126e-4,3.922846753666153e-5,-1.4025813189547578e-8,4.8145158055841605e-4,3.94025277918899e-5,-1.406634943105251e-8,4.815355041583503e-4,3.9474978459853574e-5,-1.408245537787128e-8,4.8165478219839815e-4,3.9445013590506954e-5,-1.4072791780691197e-8,4.8185089652025466e-4,3.933196966399209e-5,-1.4041008026015441e-8,4.8215671196515623e-4,3.9176311765079673e-5,-1.3996340784096513e-8,4.825864763543066e-4,3.9036228711670225e-5,-1.3953028790341758e-8,4.8312623641597524e-4,3.897747212754661e-5,-1.3927849119148707e-8,4.837291888970253e-4,3.9055456474574426e-5,-1.3935510387344442e-8,4.843221611312391e-4,3.929313827217236e-5,-1.3982860442730526e-8,4.848265247112546e-4,3.966499254457847e-5,-1.4064616609993489e-8,4.8518733416020557e-4,4.009980545620315e-5,-1.4163881241573302e-8,4.853950931909375e-4,4.050581912340954e-5,-1.425830655995102e-8,4.854866151667581e-4,4.080574058134305e-5,-1.4328715323638037e-8,4.85525688196407e-4,4.096178493042818e-5,-1.4365239392562207e-8,4.855772001398806e-4,4.0979862819758134e-5,-1.4368394366073396e-8,4.856885804979649e-4,4.089713112766541e-5,-1.4346234987150922e-8,4.8588326125485515e-4,4.076435074414623e-5,-1.4310345248447114e-8,4.8616296080937287e-4,4.063161994000118e-5,-1.4272594843316575e-8,4.865136173432042e-4,4.054008405187016e-5,-1.4243172616081504e-8,4.8691142789272524e-4,4.051847158520118e-5,-1.4229620182921136e-8,4.8732762934217247e-4,4.0582299326150006e-5,-1.4236433463507242e-8,4.8773212709177916e-4,4.07341134689005e-5,-1.4264941962397524e-8,4.880965967034294e-4,4.096407600183585e-5,-1.4313353517338398e-8,4.88397573177068e-4,4.1250927252936434e-5,-1.4376959666340294e-8,4.886197129387349e-4,4.1563798332032156e-5,-1.4448564853229553e-8,4.887589435265532e-4,4.1865488207741994e-5,-1.451924254306548e-8,4.888247307700336e-4,4.211748974787741e-5,-1.4579476522027053e-8,4.888405100767859e-4,4.228641181812268e-5,-1.462064263346648e-8,4.888415356313333e-4,4.235083017747227e-5,-1.463666315611464e-8,4.888699069788087e-4,4.2307124574301165e-5,-1.462554429370797e-8,4.889672434197426e-4,4.2172729191325406e-5,-1.459042628142175e-8,4.89166100944331e-4,4.198561886052198e-5,-1.4539802909504917e-8,4.894815424795779e-4,4.179941029790374e-5,-1.4486638095790344e-8,4.899045597653066e-4,4.16738571918689e-5,-1.4446179472955758e-8,4.903995543457572e-4,4.1661226263416274e-5,-1.4432491631334258e-8,4.909084078410756e-4,4.179064877681403e-5,-1.4454232713012669e-8,4.913629055658968e-4,4.205495921373214e-5,-1.4510927067288458e-8,4.917043498415898e-4,4.2406630471518614e-5,-1.4591584452824552e-8,4.919041260653661e-4,4.2768455240018365e-5,-1.4677226547185713e-8,4.91975143734432e-4,4.30581023135401e-5,-1.4747087713819914e-8,4.919667281492841e-4,4.321634341236769e-5,-1.4785795141156964e-8,4.919450134806429e-4,4.322488299346272e-5,-1.4787918091785175e-8,4.919696544610528e-4,4.310619995991277e-5,-1.4758043194016052e-8,4.920780610928328e-4,4.2909134196637064e-5,-1.4707389424281414e-8,4.922813225790399e-4,4.269033595193827e-5,-1.464944226297227e-8,4.925688425220637e-4,4.249988199139718e-5,-1.4596537842685818e-8,4.92916302217559e-4,4.2373819969799324e-5,-1.4557994767186664e-8,4.932930424762773e-4,4.233227598512297e-5,-1.4539483417289066e-8,4.936673798735039e-4,4.2380499169877454e-5,-1.4543082916464466e-8,4.940100632622315e-4,4.251078828128216e-5,-1.4567604259159937e-8,4.942967406427109e-4,4.27043504794895e-5,-1.4608973846901326e-8,4.945102476677884e-4,4.2933063498730834e-5,-1.4660638792530654e-8,4.946431248320447e-4,4.316170803770033e-5,-1.4714088579726986e-8,4.947001929114915e-4,4.335150966562856e-5,-1.4759675319273507e-8,4.947003518474758e-4,4.3465620460088586e-5,-1.4787908056141978e-8,4.946762700491294e-4,4.3476391218321277e-5,-1.4791230435817252e-8,4.946706632709735e-4,4.337312853241991e-5,-1.4766006598097854e-8,4.947286919062398e-4,4.316792790944356e-5,-1.4714140745679074e-8,4.948875598480194e-4,4.289680338026428e-5,-1.46436248866499e-8,4.951660198459949e-4,4.261431606960693e-5,-1.4567507684274658e-8,4.955572023782361e-4,4.238205390573295e-5,-1.4501266960766878e-8,4.960275056948562e-4,4.225356593077395e-5,-1.4459112508157139e-8,4.965226079965434e-4,4.225970770296015e-5,-1.445012992875491e-8,4.969797348841862e-4,4.239855798309805e-5,-1.4475344797421208e-8,4.973435745501257e-4,4.263333074298414e-5,-1.452672530286383e-8,4.975817616767804e-4,4.290011641573763e-5,-1.4588789841322534e-8,4.976949342797306e-4,4.31246291984686e-5,-1.4642736998874316e-8,4.977169933512843e-4,4.32435191844831e-5,-1.4671952404593025e-8,4.977043744489744e-4,4.3222752491909916e-5,-1.4666876259907704e-8,4.977180995272924e-4,4.30657402384419e-5,-1.4627283126456636e-8,4.978060190996614e-4,4.280844975449757e-5,-1.4561258969220208e-8,4.979920722311104e-4,4.2505071693506214e-5,-1.4481783123106343e-8,4.982749931993637e-4,4.221149461163865e-5,-1.4402704387878677e-8,4.986341351162414e-4,4.1972812399652274e-5,-1.4335614319282961e-8,4.99038023174974e-4,4.181724732728816e-5,-1.4288203371298527e-8,4.994521132236064e-4,4.1755451375511826e-5,-1.4263899128169458e-8,4.998442497099592e-4,4.1782774302784495e-5,-1.4262268021020732e-8,5.001879318353291e-4,4.1882399162322495e-5,-1.4279703860248156e-8,5.004642516735846e-4,4.202823461485221e-5,-1.4310113798395751e-8,5.006634317541689e-4,4.218742398465999e-5,-1.4345522650409268e-8,5.007865154243883e-4,4.232301933686223e-5,-1.4376697915433863e-8,5.008471450808845e-4,4.239771827120947e-5,-1.4394026271468186e-8,5.008726192415792e-4,4.237947661390274e-5,-1.4388889379628621e-8,5.009027064025104e-4,4.224906691188224e-5,-1.4355605708386248e-8,5.009844664141034e-4,4.200814399437556e-5,-1.4293595372097094e-8,5.011622958425812e-4,4.168457799010023e-5,-1.4208933086185455e-8,5.014648490094809e-4,4.133098997158663e-5,-1.4114222164068199e-8,5.018933871908035e-4,4.1014046129932506e-5,-1.4026120755346876e-8,5.024172779489319e-4,4.079629120466331e-5,-1.3960894019653134e-8,5.029800978344093e-4,4.0716851663191706e-5,-1.3929502673170868e-8,5.035149205751237e-4,4.0778803174321974e-5,-1.3934148788121047e-8,5.039631026052139e-4,4.0948067350335475e-5,-1.3967574412809247e-8,5.042898951464934e-4,4.116358529728348e-5,-1.4015214047407058e-8,5.044923433820881e-4,4.1354546447450864e-5,-1.405930760929713e-8,5.045980853346142e-4,4.145904379395495e-5,-1.4083628433054094e-8,5.046562864241187e-4,4.143903113694813e-5,-1.4077491031220824e-8,5.047237703547672e-4,4.128796116298141e-5,-1.4038013428869964e-8,5.048504577142612e-4,4.1029648300892024e-5,-1.3970152894372228e-8,5.050682042868694e-4,4.070946922079784e-5,-1.3884718542673423e-8,5.053857892959258e-4,4.038129871002777e-5,-1.3795175637434057e-8,5.057904773855169e-4,4.0094587167200846e-5,-1.3714342555419928e-8,5.062542972907671e-4,3.988514116215506e-5,-1.3651908298048012e-8,5.067420758582822e-4,3.9771018930213065e-5,-1.36131932106548e-8,5.072186700798977e-4,3.9752847710952766e-5,-1.3599056334601855e-8,5.076541049257842e-4,3.981679039448647e-5,-1.3606552572220539e-8,5.080265636895346e-4,3.993839829792082e-5,-1.3629887915207912e-8,5.083239056768367e-4,4.008625429723009e-5,-1.366134539027628e-8,5.085445405312649e-4,4.02251540015048e-5,-1.3692068130210929e-8,5.086982215653529e-4,4.031923748367069e-5,-1.3712790472901225e-8,5.088067942896942e-4,4.033585746282454e-5,-1.3714758380114217e-8,5.089042016332715e-4,4.0250984480183826e-5,-1.369110873241738e-8,5.090342370463796e-4,4.005630209267127e-5,-1.36387919547938e-8,5.09244162874289e-4,3.976656292219734e-5,-1.3560660497017656e-8,5.095732393487734e-4,3.942360984383623e-5,-1.3466737784983145e-8,5.100381218559963e-4,3.9092145563312785e-5,-1.3373334502326575e-8,5.106211663506831e-4,3.884421714299498e-5,-1.3299185546533904e-8,5.112695708256073e-4,3.873558642398053e-5,-1.325938777322804e-8,5.119093049859852e-4,3.878426446529394e-5,-1.3259745614206067e-8,5.124690770718819e-4,3.896273593345075e-5,-1.3294485083970076e-8,5.129030399538616e-4,3.920805997219822e-5,-1.3348486880023718e-8,5.13202292093832e-4,3.944384781038976e-5,-1.3402621757432825e-8,5.133926118135372e-4,3.9603311868793384e-5,-1.3439524368879208e-8,5.135225876503645e-4,3.964513077729718e-5,-1.344773648237942e-8,5.136484244188965e-4,3.955939833262208e-5,-1.3423498173910979e-8,5.138202846515992e-4,3.936503101320661e-5,-1.337045078206997e-8,5.140727251366115e-4,3.9101620258126494e-5,-1.3297891578819023e-8,5.144200439889327e-4,3.8818723273896924e-5,-1.3218230049065295e-8,5.148563248939854e-4,3.8565076244178615e-5,-1.31442269252279e-8,5.153592942705727e-4,3.8379720577811564e-5,-1.3086552229207539e-8,5.158965586590853e-4,3.8286402743178446e-5,-1.3052102047767048e-8,5.164325300028227e-4,3.829166482457637e-5,-1.3043289492522785e-8,5.169345624266961e-4,3.838611140678518e-5,-1.3058250794240458e-8,5.173773998025525e-4,3.854777091398222e-5,-1.3091694599441699e-8,5.177457469094699e-4,3.8746318140652295E-05,-1.3136024508001314e-8,5.180353753683765e-4,3.894721737733719e-5,-1.3182422098429487e-8,5.182533801875123e-4,3.9115464526579055e-5,-1.322176802538456e-8,5.184180207872244e-4,3.9219155018714586e-5,-1.3245479826195314e-8,5.185582174206982e-4,3.923339887816621e-5,-1.3246473160946539e-8,5.187121920390923e-4,3.9145162676454723e-5,-1.3220474590964729e-8,0.00051892397371530155,3.895909776742693e-5,-1.316773040159988e-8,5.192361363727685e-4,3.8702959631497384e-5,-1.3094695644609137e-8,5.19678041196177e-4,3.8429183553321686e-5,-1.3014701920521112e-8,5.20251698135249e-4,3.820781513346968e-5,-1.2946243125940887e-8,5.209217831712024e-4,3.810779889170091e-5,-1.2908049988956758e-8,5.216188239536118e-4,3.817071047034634e-5,-1.2912046211167408e-8,5.222596846655533e-4,3.8389929217076366e-5,-1.295764933741635e-8,5.227776981227885e-4,3.870942493105218e-5,-1.3031193682067312e-8,5.231462221446176e-4,3.90449333361414e-5,-1.3111251595486714e-8,5.233834624169179e-4,3.9315346546736246e-5,-1.3176687479802485e-8,5.235394281321812e-4,3.946752696132619e-5,-1.3213083897284422e-8,5.236754233317036e-4,3.9485713744511626e-5,-1.3215295714260378e-8,5.238462568216775e-4,3.9387314888452363e-5,-1.3186630329662888e-8,5.240896667697123e-4,3.921173128856953e-5,-1.3136310014778118e-8,5.244226644038686e-4,3.900801174331826e-5,-1.3076572242619164e-8,5.248426426550115e-4,3.882439799199982e-5,-1.3020069826079723e-8,5.253311937372029e-4,3.870065090327242e-5,-1.2977767650741354e-8,5.258593061790778e-4,3.8663123547147846e-5,-1.2957402470289928e-8,5.263931056407179e-4,3.8722437005912813e-5,-1.2962597830659435e-8,5.268994400545242e-4,3.887355383309786e-5,-1.2992693609541672e-8,5.273506944811689e-4,3.909786013135494e-5,-1.304323238147115e-8,5.277283618928682e-4,3.9366737045691754e-5,-1.310693161469982e-8,5.280251104455353e-4,3.964596224958332e-5,-1.3174889451303355e-8,5.282454335082373e-4,3.990022972843365e-5,-1.3237768428264953e-8,5.284052231946588e-4,4.009736888639202e-5,-1.3286836033079106e-8,5.285305494829884e-4,4.021225325537939e-5,-1.3314912562979519e-8,5.286557060394544e-4,4.0230579521206196e-5,-1.3317363974876683e-8,5.288202403339737e-4,4.015271335318547e-5,-1.3293259523465599e-8,5.290641459351538e-4,3.999743645858218e-5,-1.3246644881952389e-8,5.29420183065172e-4,3.980429049478516e-5,-1.3187490243689071e-8,5.299032094367221e-4,3.963165594186321e-5,-1.313141009986588e-8,5.304988417193463e-4,3.9546878333224285e-5,-1.3097054263167734e-8,5.311574317731786e-4,3.96065921173356e-5,-1.3100650126240523e-8,5.318014578119245e-4,3.98319165292681e-5,-1.3149038022273758e-8,5.32349611324718e-4,4.019180005671327e-5,-1.3234910936428494e-8,5.327485204893838e-4,4.0608738174731215e-5,-1.3338177317094923e-8,5.32993774836213e-4,4.098800442554419e-5,-1.3433731281722263e-8,5.331274981533502e-4,4.125409164773492e-5,-1.3501160283562443e-8,5.332164335123858e-4,4.137379163363762e-5,-1.353087213849061e-8,5.333259193608972e-4,4.13576666322837e-5,-1.3524569124303872e-8,5.335024650995162e-4,4.124644008992089e-5,-1.3491904463169542e-8,5.337679129261047e-4,4.109355822924989e-5,-1.3446225415098136e-8,5.341216559001369e-4,4.0951180469202836e-5,-1.340113134321436e-8,5.345463734211426e-4,4.0861572281668134e-5,-1.3368231159593744e-8,5.350143019353962e-4,4.0852955656746325e-5,-1.3355852072504397e-8,5.354928423825327e-4,4.093817556745151e-5,-1.3368381791204466e-8,5.359493976739728e-4,4.111506478866112e-5,-1.3406093750610092e-8,5.363555591240247e-4,4.136805710751307e-5,-1.3465430533373401e-8,5.366906062535734e-4,4.167087291184944e-5,-1.353970510439085e-8,5.369441549435876e-4,4.199017748541348e-5,-1.3620131233801054e-8,5.371176836764395e-4,4.229004758300979e-5,-1.3697055796399448e-8,5.372246939412618e-4,4.2536815840649555e-5,-1.376122922588961e-8,5.372894831724115e-4,4.2703741062777625e-5,-1.3804984921125316e-8,5.373446669618185e-4,4.277512234113474e-5,-1.3823300988072162e-8,0.00053742757544824975,4.27496117961429e-5,-1.3814764582700658e-8,5.375755603610683e-4,4.264248462223457e-5,-1.3782413644499372e-8,5.378200593904353e-4,4.2486472593883745e-5,-1.373430126808111e-8,5.381792508290428e-4,4.233015478549633e-5,-1.368338167500512e-8,5.386499283189473e-4,4.223204705859813e-5,-1.3646059069466792e-8,5.392010226639216e-4,4.224848840771485e-5,-1.3638780125339982e-8,5.397734225659609e-4,4.2415447202705524e-5,-1.3672723821927818e-8,5.402914650870005e-4,4.272937436938092e-5,-1.3748141826012162e-8,5.406870951769552e-4,4.3138228021123006e-5,-1.3851605137995859e-8,5.409276624223462e-4,4.355360016244392e-5,-1.3959259082476329e-8,5.410308634400444e-4,4.388299832113226e-5,-1.404572807505199e-8,5.410560312127462e-4,4.406544519190341e-5,-1.409387560046213e-8,5.410774246421454e-4,4.4090008179269903e-5,-1.4099829500317099e-8,5.411566007764416e-4,4.399025355105983e-5,-1.4071552354515442e-8,5.413273035270495e-4,4.3823916588713976e-5,-1.4023612135435341e-8,5.415945168970027e-4,4.365179453199496e-5,-1.3971835246327046e-8,5.41941678191083e-4,4.3523829968479546e-5,-1.3929763987744986e-8,5.423397870270695e-4,4.3473105445618066e-5,-1.3906988846966135e-8,5.427550475932729e-4,4.3515132910834864e-5,-1.3908697960636151e-8,5.431542404764803e-4,4.364960885200329e-5,-1.393582992804166e-8,5.435083954292767e-4,4.386290135691708e-5,-1.3985503452994463e-8,5.437955680521673e-4,4.413075019834189e-5,-1.4051648813651171e-8,5.440031193610353e-4,4.442130458093591e-5,-1.4125847171957948e-8,5.441294904295869e-4,4.4698775986850106e-5,-1.4198377383350764e-8,5.441851609821107e-4,4.4927902109817414e-5,-1.4259451932272639e-8,5.44192274379237e-4,4.5079042801761985e-5,-1.4300570677415424e-8,5.441825131835359e-4,4.513324877772769e-5,-1.4315854380231034e-8,5.441931678314615e-4,4.508643514283918e-5,-1.4303200161377657e-8,5.442616930190452e-4,4.495182030705989e-5,-1.4265097005812744e-8,5.444193252662113e-4,4.475992062198913e-5,-1.420891194830896e-8,5.446845113517835e-4,4.455563870804244e-5,-1.4146439051286658e-8,5.450570012046475e-4,4.439214140356481e-5,-1.4092482439868092e-8,5.455138259491807e-4,4.432123995689494e-5,-1.4062247519459378e-8,5.460091567979519e-4,4.4380529159655735e-5,-1.4067548181360422e-8,5.464806332929459e-4,4.457933352573298e-5,-1.411246534473196e-8,5.468639351101996e-4,4.488842557502628e-5,-1.41900303462031e-8,5.471137114483806e-4,4.5240836901430264e-5,-1.4282186009332701e-8,5.472228700801882e-4,4.5549104705021665e-5,-1.436459415403402e-8,5.472286408053625e-4,4.573542557700775e-5,-1.4415174862346914e-8,5.471991045330296e-4,4.576046398285103e-5,-1.4422216878027767e-8,5.47206448294467e-4,4.56349055279638e-5,-1.4387623676551349e-8,5.473019740297997e-4,4.5409058585348715e-5,-1.4324164571538933e-8,5.475045890269017e-4,4.5149831126079944e-5,-1.4249406835206891e-8,5.47803705825606e-4,4.4918876045973197e-5,-1.4180002072172085e-8,5.481698176479473e-4,4.4759851057189094e-5,-1.412830013525889e-8,5.48565692247331e-4,4.469494792163449e-5,-1.410125538583461e-8,5.489546078069922e-4,4.4727065395722936e-5,-1.4100722236229494e-8,5.493051789854964e-4,4.484400912140682e-5,-1.4124308082445898e-8,5.495938405083384e-4,4.5022613923846395e-5,-1.4166321890606745e-8,5.498062624304646e-4,4.523222436300298e-5,-1.4218687392005276e-8,5.499384595504489e-4,4.54378852388539e-5,-1.4271863647322725e-8,5.49997724894559e-4,4.560386201037831e-5,-1.4315865288538859e-8,5.500030030438457e-4,4.5697985530979016e-5,-1.434147018981161e-8,5.499839508065228e-4,4.5696843463098964e-5,-1.4341625669559141e-8,5.499779032270899e-4,4.559110119398946e-5,-1.4312908167490931e-8,5.500244181110129e-4,4.5389582007094315e-5,-1.4256724128095877e-8,5.50157883005538e-4,4.512048381923619e-5,-1.417984329569152e-8,5.503995686945172e-4,4.482844257285975e-5,-1.4093882581779136e-8,5.507511242321261e-4,4.456714389146746e-5,-1.4013561269086788e-8,5.511914791808575e-4,4.438847474538031e-5,-1.3953862718354635e-8,5.516785262955729e-4,4.43302010252111e-5,-1.3926532510634918e-8,5.521561635635225e-4,4.4404755979930705e-5,-1.3936611787065186e-8,5.525663239678071e-4,4.459220322119048e-5,-1.3979975801327925e-8,5.528642063231052e-4,4.484065587117192e-5,-1.4043007349154969e-8,5.530328973052125e-4,4.507661529127626e-5,-1.4105288308440919e-8,5.530916519570143e-4,4.522480506594574e-5,-1.4145236907282978e-8,5.530923528858961e-4,4.523202408225343e-5,-1.4147030087645297e-8,5.531031506537776e-4,4.5085084291692684e-5,-1.4105860437065999e-8,5.531855430718504e-4,4.4813819040833696e-5,-1.4028958709191986e-8,5.533755526889687e-4,4.447784879142051e-5,-1.3932084645392354e-8,5.536768815553462e-4,4.41448232435347e-5,-1.3833668292310375e-8,5.540662856310166e-4,4.387093911013423e-5,-1.3749517436350942e-8,5.545054107827476e-4,4.369036706870036e-5,-1.3689826206305373e-8,5.549526056740539e-4,4.3613801028485625e-5,-1.3658542876311258e-8,5.553711420623051e-4,4.363257224331595e-5,-1.3654223719707622e-8,5.55733434845886e-4,4.3724503286497815e-5,-1.3671440617076656e-8,5.560225166865299e-4,4.385919757848827e-5,-1.3702164569045507e-8,5.56232263778228e-4,4.400211587684637e-5,-1.3736921152732457e-8,5.563673733728169e-4,4.4117846392702796e-5,-1.376575922796316e-8,5.564433941300915e-4,4.4173372568585065e-5,-1.3779194966470485e-8,5.564864419333089e-4,4.414206095567587e-5,-1.3769317275568825e-8,5.565317072407061e-4,4.4008603643539826E-05,-1.373115531210439e-8,5.566196665612034e-4,4.377426004116058e-5,-1.3664180386757936e-8,5.567893255742785e-4,4.3460653879901505e-5,-1.3573495648336821e-8,5.5706903259323e-4,4.3109638309396154e-5,-1.3470018373719109e-8,5.574671621600434e-4,4.277713905643178e-5,-1.3369019224232388e-8,5.579663031544923e-4,4.25209069743737e-5,-1.3286905991693288e-8,5.585242506155931e-4,4.2385091814629774e-5,-1.323695369887385e-8,5.590827837639093e-4,4.238670958930531e-5,-1.322532616995296e-8,5.595820943030839e-4,4.2508928121728134e-5,-1.324879527303495e-8,5.599765436803205e-4,4.270375260425213e-5,-1.3295025360336303e-8,5.602470647653046e-4,4.290357624198227e-5,-1.3345467218010926e-8,5.604066433327727e-4,4.3038521618008536e-5,-1.3380135565607916e-8,5.604971361354452e-4,4.305496671614097e-5,-1.3382982052173816e-8,5.605778644400599e-4,4.293002467591174e-5,-1.3346289025681776e-8,5.607089623263255e-4,4.267729978794635e-5,-1.3272636519098559e-8,5.609347399582315e-4,4.234165410834814e-5,-1.3173718674744843e-8,5.61272824224999e-4,4.1984822487049506e-5,-1.3066489427049024e-8,5.617125088503604e-4,4.1667542738988164e-5,-1.2968201743518012e-8,5.622215885905281e-4,4.1434866394617e-5,-1.289219032748799e-8,5.627575830200749e-4,4.130882130901546e-5,-1.2845587660872705e-8,5.632786025023382e-4,4.1288594336048484e-5,-1.2829102735199409e-8,5.637508743402848e-4,4.135555763250854e-5,-1.2838217765699319e-8,5.641523616550949e-4,4.147987966628914e-5,-1.2864954028178306e-8,5.644734987008431e-4,4.1626480056051095e-5,-1.2899567931198906e-8,5.647164882240774e-4,4.1759528984558676e-5,-1.2931887162585448e-8,5.648942535231952e-4,4.184578296212132e-5,-1.2952297818560158e-8,5.650294889116143e-4,4.1857547900959665e-5,-1.2952577895423737e-8,5.651535715361088e-4,4.177605896823371e-5,-1.2926828568155383e-8,5.653044894483615e-4,4.159567182824132e-5,-1.287267633441649e-8,5.655225692094629e-4,4.132839759346974e-5,-1.279266224815386e-8,5.658430328778544e-4,4.100697766475647e-5,-1.2695307297663935e-8,5.662857653330005e-4,4.068344030322492e-5,-1.2594934042639526e-8,5.668451659124272e-4,4.042019197207262e-5,-1.2509327194232984e-8,5.674853336557398e-4,4.027347907363591e-5,-1.2455107328985577e-8,5.681455713211361e-4,4.027408208489247e-5,-1.244214622307206e-8,5.68756746685192e-4,4.0414004798879e-5,-1.2469513131187434e-8,5.692626340933667e-4,4.0646580039138516e-5,-1.2525133623159566e-8,5.696369955166504e-4,4.090066807453131e-5,-1.2589478046435055e-8,5.698896665275624e-4,4.110245921092196e-5,-1.2641551835441664e-8,5.700608716068607e-4,4.1195953729986446e-5,-1.2664715990718236e-8,5.702077505850598e-4,4.1155798139361454e-5,-1.2650540717421748e-8,5.703884759901265e-4,4.099042424392756e-5,-1.2600051493450478e-8,5.706483903579017e-4,4.073662588412746e-5,-1.2522583891047876e-8,5.710109691405875e-4,4.0448332338844876e-5,-1.243290518949643e-8,5.714748841309391e-4,4.0182934684654553E-05,-1.2347452802728689e-8,5.720170435890389e-4,3.9988544477136714e-5,-1.2280615128135358e-8,5.726001321744273e-4,3.9895057969472874e-5,-1.2241921421025485e-8,5.731821206679281e-4,3.991064069654339e-5,-1.2234717623019245e-8,5.737250198595423e-4,4.002343402058786e-5,-1.2256397133360156e-8,5.742009861844149e-4,4.0206784374766535e-5,-1.2299779958393722e-8,5.745952088943357e-4,4.042579305071043e-5,-1.2355009254206567e-8,5.749061274942017e-4,4.064339540438695e-5,-1.2411383146639144e-8,5.751440773201222e-4,4.0825069665894794e-5,-1.2458778726029885e-8,5.753293799587323e-4,4.094221059405223e-5,-1.2488629625521792e-8,5.754904006567578e-4,4.097477176506438e-5,-1.2494646793562146e-8,5.756615125629631e-4,4.0913864151746437e-5,-1.2473547362790684e-8,5.758803459554417e-4,4.076472695839921e-5,-1.24259847650868e-8,5.761832436211499e-4,4.0549772255380785e-5,-1.2357617600292305e-8,5.765979379808243e-4,4.0310124351701156e-5,-1.2279811549458918e-8,5.771336876089873e-4,4.010269549721812e-5,-1.2209012413795871e-8,5.777716895829274e-4,3.9989598090760646e-5,-1.2163757626176808e-8,5.784616465902294e-4,4.001937776225071e-5,-1.2159125570823381e-8,5.791308482835355e-4,4.020580099469462e-5,-1.2200322952745242e-8,5.797065295022585e-4,4.0515899636114696e-5,-1.2278907274980914e-8,5.80142457888133e-4,4.087731150446172e-5,-1.2374661952472232e-8,5.804354401798264e-4,4.120363917341638e-5,-1.2462792256088949e-8,5.806232139856671e-4,4.142456024104346e-5,-1.2522577976320966e-8,5.807671988462954e-4,4.1505812543823224e-5,-1.2543184545504214e-8,5.809309310098887e-4,4.145299058481706e-5,-1.2524943479233836e-8,5.811633911987712e-4,4.130273058000135e-5,-1.2477155055317291e-8,5.814906054594975e-4,4.110843349549538e-5,-1.241437134424403e-8,5.819145513730104e-4,4.092617541810449e-5,-1.2352610977888855e-8,5.824169208822125e-4,4.0803658015597504e-5,-1.2306198503680667e-8,5.829655041898003e-4,4.077300848955851e-5,-1.2285457641107754e-8,5.835216304790936e-4,4.08473506951388e-5,-1.2295353076190144e-8,5.840475044047213e-4,4.1020878040647856e-5,-1.2335168157344423e-8,5.845123946407954e-4,4.1271912795883656e-5,-1.2399194688289209e-8,5.848968676341912e-4,4.1568009920163966e-5,-1.247819580484653e-8,5.851947152164219e-4,4.1871931312817365e-5,-1.2561243079423654e-8,5.854127287371877e-4,4.214737362730478e-5,-1.2637501168654626e-8,5.855689082537816e-4,4.236363657066199e-5,-1.2697641820982583e-8,5.856898580934266e-4,4.2498978178316354e-5,-1.2734800220127118e-8,5.85807889067023e-4,4.254292268264029e-5,-1.2745207957826337e-8,5.859579513795578e-4,4.249795347224145e-5,-1.272871639020561e-8,5.861741086786202e-4,4.2380895742717424e-5,-1.2689360718495551e-8,5.8648484953241e-4,4.2223796026970555e-5,-1.2635890084310931e-8,5.869065735812319e-4,4.2073073991807874e-5,-1.2581801894459312e-8,5.874356319421588e-4,4.19846475120227e-5,-1.2544061137121026e-8,5.880413756125081e-4,4.201259995003142e-5,-1.2539678227518325e-8,5.886653049404993e-4,4.219108683589354e-5,-1.2580052638216501e-8,5.8923238679551e-4,4.2514839582835756e-5,-1.266480189970253e-8,5.896756386652956e-4,4.2930283800824865e-5,-1.2778839288959433e-8,5.89964101552167e-4,4.334851356362142e-5,-1.2896139522771572e-8,5.901171113360668e-4,4.367814905014522e-5,-1.298951948589008e-8,5.901947880698806e-4,4.38602737483596e-5,-1.3040992057450742e-8,5.902714285460607e-4,4.3885736496831144e-5,-1.3046861211874255e-8,5.904086373518427e-4,4.3789236335983746e-5,-1.3016096632518927e-8,5.90640488345573e-4,4.362965960038413e-5,-1.2964884842237333e-8,5.90971946441086e-4,4.34695603945582e-5,-1.2911008855333938e-8,5.913852195337234e-4,4.336092270372908e-5,-1.2869904121306538e-8,5.918485774305888e-4,4.333812126088688e-5,-1.285252461742886e-8,5.923245446952727e-4,4.3416150897318016e-5,-1.2864501648532461e-8,5.927764593066211e-4,4.359190961413261e-5,-1.2906114467297666e-8,5.931734732856898e-4,4.384714236114294e-5,-1.2972841846778543e-8,5.934942150203255e-4,4.4152466088083324e-5,-1.3056421398296158e-8,5.937291030815587e-4,4.447215885443439e-5,-1.3146311817982143e-8,5.938811933955622e-4,4.47693426906656e-5,-1.3231356330999967e-8,5.93965485886057e-4,4.5011077674093984e-5,-1.3301399351245954e-8,5.94006799600864e-4,4.5172770496475155e-5,-1.334862131885749e-8,5.940365840398179e-4,4.5241413682133494e-5,-1.336846818500244e-8,5.940891110207756e-4,4.521750624615486e-5,-1.3360212923084611e-8,5.941973595900601e-4,4.511571456359875e-5,-1.3327250246980502e-8,5.943887128092454e-4,4.4964352725929755e-5,-1.3277177720368145e-8,5.946803298205737e-4,4.480359021479988e-5,-1.3221572693952441E-08,5.950740552025116e-4,4.4681698944798734e-5,-1.3175121289205661e-8,5.955515209880322e-4,4.4648007751150914e-5,-1.3153551831570361e-8,5.960715426732222e-4,4.474149532569575e-5,-1.3169977028198143e-8,5.965733804112413e-4,4.4975795704802126e-5,-1.3229934760324216e-8,5.969897334847129e-4,4.5325368620618036e-5,-1.3326761651752678e-8,5.972695820723137e-4,4.572244176421522e-5,-1.3440440521292401e-8,5.974020923934746e-4,4.607385900358259e-5,-1.3542760448690568e-8,5.974260041454101e-4,4.6295468638069834e-5,-1.3607887991505155e-8,5.974149745012774e-4,4.63461491160932e-5,-1.3622690856111841e-8,5.974464645346873e-4,4.62408255489987e-5,-1.3590608456208522e-8,5.975733330563519e-4,4.603711609863486e-5,-1.3527729382284185e-8,5.978120949073726e-4,4.5808229996933905e-5,-1.3455010772294891e-8,5.981476506938362e-4,4.561887790575258e-5,-1.3391473757723922e-8,5.985457456463102e-4,4.551241536514983e-5,-1.3350535217826406e-8,5.989652880636257e-4,4.550820785410715e-5,-1.3339057205444769e-8,5.993671400674556e-4,4.560473672048171e-5,-1.3357888193002322e-8,5.997192571010954e-4,4.578464443118222e-5,-1.340296607210915e-8,5.999993638835912e-4,4.601975491101805e-5,-1.3466562670281527e-8,6.001963194062474e-4,4.627562551405624e-5,-1.353859250547407e-8,6.003106951839153e-4,4.651585668922163e-5,-1.3607999789540018e-8,6.003545828554706e-4,4.670640694476506e-5,-1.3664190858733449e-8,6.003504102879558e-4,4.681993271445912e-5,-1.3698426655564152e-8,6.003285040062579e-4,4.6839792267256964e-5,-1.3705039077842174e-8,6.003233654665366e-4,4.6763054815347505e-5,-1.3682318721009288e-8,6.00368980029104e-4,4.6601915443853456e-5,-1.3632979669015082e-8,6.004936892972919e-4,4.638313791509782e-5,-1.3564152706925421e-8,6.007152397239569e-4,4.6145339984406526e-5,-1.348684271745055e-8,6.010365913857648e-4,4.5934168128419516e-5,-1.3414767746104295e-8,6.014429942225124e-4,4.5795480210201754e-5,-1.3362464203894209e-8,6.019011057532637e-4,4.576653383496385e-5,-1.334252963495435e-8,6.023615895275835e-4,4.586559553492988e-5,-1.3362105344807452e-8,6.027669935205449e-4,4.608188309838632e-5,-1.3419300705541302e-8,6.030658883371729e-4,4.6370003546858796e-5,-1.350105745458068e-8,6.032312519987232e-4,4.66548633865428e-5,-1.3584497719127712e-8,6.032758091670896e-4,4.685133527899667e-5,-1.3643100300052348e-8,6.032535495762095e-4,4.6894725810143705e-5,-1.365628640799527e-8,6.03241729155245e-4,4.6767362660908595e-5,-1.3617683021674188e-8,6.033108166392385e-4,4.65049510596044e-5,-1.3537085025814027e-8,6.034993182490741e-4,4.617895985207165e-5,-1.3435213551070888e-8,6.038060843341433e-4,4.5867317225684895e-5,-1.3335114749071355e-8,6.041994185155103e-4,4.563018257654167e-5,-1.3255104395874068e-8,6.046332663829588e-4,4.549926714185694e-5,-1.3205572436516151e-8,6.05061438746373e-4,4.5478931464839044e-5,-1.3189054107180226e-8,6.054462336936745e-4,4.555306960662015e-5,-1.3201909329785792e-8,6.05762009514742e-4,4.5692876070382345e-5,-1.3236331295070042e-8,6.059957599659084e-4,4.586321651672058e-5,-1.3282117826334546e-8,6.061465022300673e-4,4.6027351570760987e-5,-1.332813231699191e-8,6.062243702543427e-4,4.615066462844048e-5,-1.3363565264245378e-8,6.062495021200464e-4,4.620409516581872e-5,-1.3379104609315037e-8,6.062503718534889e-4,4.616766157689615e-5,-1.3368067825864579e-8,6.062610395188557e-4,4.6033924576426214e-5,-1.3327457601791911e-8,6.063169469718518e-4,4.581063544655485e-5,-1.3258772884036288e-8,6.064494044595206e-4,4.55215188896636e-5,-1.3168331958415403e-8,6.066795318747286e-4,4.52042881604833e-5,-1.3066866709055663e-8,6.070128998625647e-4,4.490545427349359e-5,-1.2968213330564991e-8,6.074363111856063e-4,4.467226793872749e-5,-1.2887087372606102e-8,6.079179098524724e-4,4.4543009907630994e-5,-1.2836174421477544e-8,6.084112436310817e-4,4.453736700212919e-5,-1.282297992625794e-8,6.08863370461571e-4,4.464886329443632e-5,-1.2847073663286673e-8,6.092264758703546e-4,4.4841679024146196e-5,-1.289860746681526e-8,6.094712937410751e-4,4.505445305432866e-5,-1.2959127922180999e-8,6.095987972448405e-4,4.521292039621171e-5,-1.3005410854173592e-8,6.096448764943399e-4,4.5250510079934645e-5,-1.3016030794821033e-8,6.096730138384927e-4,4.513114561506076e-5,-1.2978711001202054e-8,6.097545631549566e-4,4.486402580498518e-5,-1.2895124516848801e-8,6.099439852908066e-4,4.450134061490781e-5,-1.2780348513948726e-8,6.102610819546051e-4,4.4118743907326676e-5,-1.265702267633818e-8,6.106884949894511e-4,4.378880296374916e-5,-1.2547376438516559e-8,6.111831302385094e-4,4.356052924504412e-5,-1.2467023709897674e-8,6.116930853079845e-4,4.3451843285146805e-5,-1.2422507196552202e-8,6.121718091847651e-4,4.3453283807383274e-5,-1.2412110270198072e-8,6.125859229567852e-4,4.3537061943772174e-5,-1.242828767855344e-8,6.129174051327997e-4,4.3666315988779066e-5,-1.2460290569013057e-8,6.131625421240779e-4,4.380214478201701e-5,-1.249629588729844e-8,6.133297797994605e-4,4.390824915390768e-5,-1.2524935334363993e-8,6.134376059320164e-4,4.395405443660182e-5,-1.2536392208869133e-8,6.135126429920539e-4,4.391729178049016e-5,-1.2523285610369912e-8,6.135875232541355e-4,4.37866565556534e-5,-1.248151062142838e-8,6.136978474050366e-4,4.3564553195397556e-5,-1.2411078877572878e-8,6.138776204707606e-4,4.3269171658970975e-5,-1.2316794930864575e-8,6.141531157431434e-4,4.293451537346142e-5,-1.2208394276352459e-8,6.145360882992824e-4,4.260690395661579e-5,-1.2099680577646451e-8,6.150183068876578e-4,4.233718420343913e-5,-1.2006354865178858e-8,6.155698862543469e-4,4.216944569007125e-5,-1.194266561911202e-8,6.161432780116315e-4,4.212893829735594e-5,-1.191760894514987e-8,6.166829962369822e-4,4.221304211145604e-5,-1.1931838226690434e-8,6.171390028809723e-4,4.2388733189199025e-5,-1.1976435073662864e-8,6.174801786565707e-4,4.2598204728411776e-5,-1.2034228597516467e-8,6.177039713164523e-4,4.2771969148489644e-5,-1.2083631887323418e-8,6.178390324477566e-4,4.284658717591776e-5,-1.2104190944765916e-8,6.179391490155112e-4,4.2782467541547576e-5,-1.2082381407395732e-8,6.180690499519215e-4,4.257622589977647e-5,-1.2015807665370394e-8,6.182856981106309e-4,4.2262641290182364e-5,-1.1914142478848567e-8,6.186214061728539e-4,4.1904306638940616e-5,-1.1796159869780265e-8,6.190753692770967e-4,4.1572254817565175e-5,-1.168386155567887e-8,6.196167242703293e-4,4.1325277041778395e-5,-1.1596058210408694e-8,6.201967488488639e-4,4.119594759437842e-5,-1.1543865254199268e-8,6.20764019662867e-4,4.118716574602068e-5,-1.1529328261415304e-8,6.21276549030351e-4,4.127757978552318e-5,-1.154678533548196e-8,6.217080946567695e-4,4.143120927489927e-5,-1.1585638643255654e-8,6.220491812385284e-4,4.1606888823869886e-5,-1.1633240123016763e-8,6.223049974865838e-4,4.176527688606243e-5,-1.1677161479087305e-8,6.224922388533137e-4,4.1873203335198556e-5,-1.1706688765447071e-8,6.226360955927154e-4,4.1906205539858945e-5,-1.1713717885084007e-8,6.227676718629662e-4,4.185030251602371e-5,-1.1693341505436549E-08,6.229214415278793e-4,4.1703735041523074e-5,-1.1644381723185078e-8,6.231319853664534e-4,4.147878640125714e-5,-1.1569970337746821e-8,6.234292802965761e-4,4.120299476324085e-5,-1.1478018587251494e-8,6.238323413543623e-4,4.0918246606836314e-5,-1.1381111507640178e-8,6.243421835840833e-4,4.067585345858345e-5,-1.1295177991775304e-8,6.249366570621865e-4,4.052646987191822e-5,-1.1236482520549367e-8,6.255707246045346e-4,4.0506051125566727e-5,-1.1217220872998886e-8,6.261847863392266e-4,4.062225481812146e-5,-1.124105993740093e-8,6.267202336075681e-4,4.08475845493812e-5,-1.1300642714626034e-8,6.271371716095217e-4,4.112393555640522e-5,-1.1378640363826194e-8,6.274272002337375e-4,4.137818217173511e-5,-1.1452374173663731e-8,6.276160661029025e-4,4.1543172110683946e-5,-1.1500321761911784e-8,6.277555903893943e-4,4.157642470580568e-5,-1.1508102924530854e-8,6.27908422691926e-4,4.147064598947023e-5,-1.1472061584588963e-8,6.281309101857208e-4,4.125382444025051e-5,-1.1399670417759892e-8,6.284589806615875e-4,4.0979990293322234e-5,-1.1307001676311571e-8,6.289004951050204e-4,4.071397673517665e-5,-1.1214196847662963e-8,6.294355537344494e-4,4.051475934856745e-5,-1.1140281814471427e-8,6.300239373611482e-4,4.0422039237037176e-5,-1.1098767800734435e-8,6.306167817204206e-4,4.044943019418976e-5,-1.1095165829009265e-8,6.311685570877783e-4,4.058515042629986e-5,-1.1126836428171848e-8,6.316459742628735e-4,4.079850842401508e-5,-1.1184776656645354e-8,6.320322305868174e-4,4.104897677346346e-5,-1.1256406714476454e-8,6.323269912046183e-4,4.129481071708473e-5,-1.1328374881368757e-8,6.325436800244089e-4,4.149944694038418e-5,-1.138873428162963e-8,6.327057717418874e-4,4.16353572641571e-5,-1.142829124798009e-8,6.3284320211077e-4,4.168599958414399e-5,-1.144127484924841e-8,6.329892507073682e-4,4.1646813714983565e-5,-1.1425641935138297e-8,6.331776221375067e-4,4.1525972124440285e-5,-1.1383308731724334e-8,6.334390698103364e-4,4.134505386970275e-5,-1.1320431548573354e-8,6.337968406765966e-4,4.1139068109295805e-5,-1.1247577530122925e-8,6.342606793062239e-4,4.0954382499360176e-5,-1.1179279984573037e-8,6.34820349377044e-4,4.084256691331992e-5,-1.1132243894526839e-8,6.354414692002509e-4,4.084884439949683e-5,-1.1121682761778917e-8,6.360679001502076e-4,4.0996568100376256e-5,-1.1156195968997953e-8,6.366339468110234e-4,4.1273455162251384e-5,-1.1233067444498262e-8,6.370847593082296e-4,4.162814226045832e-5,-1.1336844237008164e-8,6.37396720814852e-4,4.1982708229566924e-5,-1.1443112874876232e-8,6.375870858518857e-4,4.225789061658065e-5,-1.1526456467575253e-8,6.377074182492132e-4,4.239935949578947e-5,-1.1568844891267493e-8,6.378247532323368e-4,4.239301187350808e-5,-1.1564617122042744e-8,6.380001550354765e-4,4.226467189936685e-5,-1.1520634437041544e-8,6.382730696351323e-4,4.20678159364482e-5,-1.145275407366425e-8,6.386547983664781e-4,4.186642207611976e-5,-1.1380759726833166e-8,6.391301491825187e-4,4.1718969727590826e-5,-1.1323481608403951e-8,6.396645134501095e-4,4.16669354931265E-05,-1.1295058824572489e-8,6.402135211432802e-4,4.1728883630486846e-5,-1.130272523179324e-8,6.407329313863037e-4,4.189994975384543e-5,-1.1346210158588048e-8,6.411869273337647e-4,4.215579668992807e-5,-1.141864418294653e-8,6.415535317098374e-4,4.245951292741821e-5,-1.1508603446175233e-8,6.418266451670236e-4,4.276953906141313e-5,-1.160268944345754e-8,6.420150711981394e-4,4.3046889911181794e-5,-1.168800792468656e-8,6.42139481568027e-4,4.326056338850396e-5,-1.1754073581974093e-8,6.422284650134046e-4,4.3390762964130205e-5,-1.1793939423120785e-8,6.423145863944254e-4,4.343025232088572e-5,-1.1804643333497793e-8,6.424308611712833e-4,4.3384560725109035e-5,-1.1787259369334247e-8,6.426075271147033e-4,4.327164998942055e-5,-1.1746830998873365e-8,6.428686772623222e-4,4.312121499188235e-5,-1.1692290186969063e-8,6.43228211111064e-4,4.297319789412587e-5,-1.163620160738782e-8,6.436849034127897e-4,4.2874338512484316e-5,-1.1593853762600689e-8,6.442175178239869e-4,4.287106863696716e-5,-1.1581024865378009e-8,6.447826241944376e-4,4.299769946587701e-5,-1.1610003778983072e-8,6.453192106631316e-4,4.326148989808878e-5,-1.1684410461728622e-8,6.457633643151136e-4,4.363072674477005e-5,-1.179495428359945e-8,6.460709780358178e-4,4.403539258500074e-5,-1.1919425251124777e-8,6.46238269440531e-4,4.438654427814625e-5,-1.202896701159812e-8,6.463067360377512e-4,4.460863357575101e-5,-1.2098638955452586e-8,6.463473522053487e-4,4.466782983677177e-5,-1.2116629130642991e-8,6.464328198700985e-4,4.458091988511223e-5,-1.2087172530117929e-8,6.466134080396352e-4,4.440296244483021e-5,-1.2026767218001455e-8,6.469062893985017e-4,4.420432212394621e-5,-1.1957162905655501e-8,6.472980673486538e-4,4.4049415375376975e-5,-1.1898899064049858e-8,6.477545569824074e-4,4.398348465637827e-5,-1.1867178141227173e-8,6.482321283936542e-4,4.402769158632383e-5,-1.1870077472484313e-8,6.486874451684293e-4,4.4180110616365914e-5,-1.190843181001741e-8,6.490845942283705e-4,4.442004791255551e-5,-1.1976767655848106e-8,6.493996674170178e-4,4.471399475420608e-5,-1.2064930829832403e-8,6.496230132730473e-4,4.502224997790057e-5,-1.2160170877601224e-8,6.497593165315699e-4,4.530541463222377e-5,-1.2249376594925378e-8,6.498257985589669e-4,4.5530023897967826e-5,-1.2321106524374785e-8,6.498490150835266e-4,4.5672787320462324e-5,-1.2367125184429808e-8,6.49860849248668e-4,4.5723111388483726e-5,-1.2383285624306336e-8,6.498943459428724e-4,4.56838734642481e-5,-1.2369777794004631e-8,6.499798483583396e-4,4.5570805788698724e-5,-1.2330940194194202e-8,6.50141540921297e-4,4.5410946737608354e-5,-1.2274858062634918e-8,6.50394252361549e-4,4.524034632505981e-5,-1.2212820673742356e-8,6.507402898474811e-4,4.510081644081227e-5,-1.2158498221920027e-8,6.511662941424877e-4,4.503501619399875e-5,-1.2126476181320007e-8,6.516409652377725e-4,4.507883196177047e-5,-1.2129687005367259e-8,6.521158333795178e-4,4.525065636203942e-5,-1.2175577965498676e-8,6.525322031476455e-4,4.553941364164363e-5,-1.2261726884082065e-8,6.528365381010586e-4,4.5896913451435045e-5,-1.2372957541494924e-8,6.53001864278318e-4,4.6243075736359524e-5,-1.2482966177543175e-8,6.530450153429226e-4,4.6489294263523875e-5,-1.2562182212005331e-8,6.530262302326049e-4,4.657300931178719e-5,-1.2589338662501737e-8,6.530266241761063e-4,4.6484341852986244e-5,-1.2560253186849565e-8,6.531153745404709e-4,4.626789168937222e-5,-1.248839206681805e-8,6.533259500794602e-4,4.600025166059354e-5,-1.2397689341809364e-8,6.536518626923442e-4,4.5759473698595974e-5,-1.2312978138197302e-8,6.540578644141293e-4,4.56028117197643e-5,-1.2253084886290816e-8,6.544960449519266e-4,4.555825704891566e-5,-1.222809841334969e-8,6.549192256583115e-4,4.562646405711048e-5,-1.2239671643138295e-8,6.552892641813089e-4,4.578752220519903e-5,-1.2282737836356728e-8,6.555809511761707e-4,4.6008638879196065e-5,-1.23475952409882e-8,6.557831063329746e-4,4.625097547136351e-5,-1.2421941128098137e-8,6.558981448308248e-4,4.647540239116749e-5,-1.2492798538365653e-8,6.559406151232579e-4,4.664739366488725e-5,-1.2548313680324879e-8,6.55934795368779e-4,4.674108669115587e-5,-1.2579299722569738e-8,6.559114262674878e-4,4.674234926529412e-5,-1.258037528172128e-8,6.559037475636952e-4,4.6650576798607184e-5,-1.2550589153337167e-8,6.559431799480559e-4,4.647890047352641e-5,-1.2493483386171588e-8,6.560551490320222e-4,4.625272895401807e-5,-1.241665830734056e-8,6.562554736211841e-4,4.6006843480568736e-5,-1.2330965549949725e-8,6.565475621712678e-4,4.5781298533340715e-5,-1.224938677601268e-8,6.569205673771478e-4,4.561626701972796e-5,-1.2185538559539806e-8,6.573487109405446e-4,4.554580590585966e-5,-1.2151659149246088e-8,6.577924153502072e-4,4.5590415220543125e-5,-1.215594635662814e-8,6.58202593113294e-4,4.574881097857109e-5,-1.2199412084801173e-8,6.585297262397721e-4,4.59909687918636e-5,-1.2273096298199133e-8,6.587382425042407e-4,4.62568085760598e-5,-1.2357324481940705e-8,6.588231495329708e-4,4.646624084061321e-5,-1.2425073606254522e-8,6.588204978599106e-4,4.65431768960108e-5,-1.2450244405357208e-8,6.588012287440477e-4,4.644637290291428e-5,-1.2418191579088436e-8,6.588458419334591e-4,4.61899779128904e-5,-1.2332619928155143e-8,6.590119357198074e-4,4.5838877755827045e-5,-1.2214031205022718e-8,6.593137391720427e-4,4.548068499544168e-5,-1.2090617955505468e-8,6.597236153319567e-4,4.519227164557173e-5,-1.1987544773090963e-8,6.601895628610029e-4,4.5018724180246425e-5,-1.1920237507966108e-8,6.606554423138694e-4,4.49697296954195e-5,-1.189308702067798e-8,6.610749674083071e-4,4.502738150794323e-5,-1.1901620274760557e-8,6.614178803084616e-4,4.515738862713096e-5,-1.1935726383931564e-8,6.616706357616994e-4,4.531887849385159e-5,-1.1982572911828448e-8,6.61834447382716e-4,4.547133072107415e-5,-1.2028824379413137e-8,6.6192264137107e-4,4.5579126378920714e-5,-1.2062283892577649e-8,6.619580115031964e-4,4.561475770029697e-5,-1.2073180904243843e-8,6.619700433900955e-4,4.556135838574398e-5,-1.2055197467963607e-8,6.61991699576438e-4,4.5414661343623503e-5,-1.200620365179172e-8,6.620555712945934e-4,4.51840896179602e-5,-1.1928622796913211e-8,6.621894741458482e-4,4.489240920507422e-5,-1.182931385336294e-8,6.624119923538018e-4,4.457342997377879e-5,-1.1718880084197724e-8,6.627287685916333e-4,4.4267655432898346e-5,-1.1610397059841187e-8,6.631303288208212e-4,4.401622188040044e-5,-1.1517614629584648e-8,6.635920520441031e-4,4.3853814799379214e-5,-1.1452739383809711e-8,6.640766309640293e-4,4.3801500136949246e-5,-1.1423990223408127e-8,6.645391547065707e-4,4.3860465762502585e-5,-1.1433213609765761e-8,6.649348907757294e-4,4.400781803244625e-5,-1.1474022268078109e-8,6.652295738743438e-4,4.4196208170768975e-5,-1.1531237312247409e-8,6.654109062286146e-4,4.435975285734818e-5,-1.1582666541464982e-8,6.654978651706966e-4,4.442827675775156e-5,-1.1603994416442983e-8,6.655421492594667e-4,4.434891282437948e-5,-1.1576365369570233e-8,6.656163939754637e-4,4.410816482066763e-5,-1.1494114352982963e-8,6.657897957674164e-4,4.3742356818358154e-5,-1.136844192019311e-8,6.661014873919342e-4,4.332714263267976e-5,-1.1223980436229123e-8,6.66546435586102e-4,4.294919512763321e-5,-1.1089453851181167e-8,6.670813088959861e-4,4.267547632709114e-5,-1.0987569771282318e-8,6.676444956798761e-4,4.2535713727573955e-5,-1.0929181332560628e-8,6.681774843805674e-4,4.252258156620681e-5,-1.0913107238000703e-8,6.686384044883153e-4,4.260325002735994e-5,-1.0929587800350869e-8,6.690062161390295e-4,4.2733346818073974e-5,-1.0964592948012124e-8,6.692787368457985e-4,4.286787118068754e-5,-1.1003310653399214e-8,6.694682707915127e-4,4.296777011126571e-5,-1.1032406940396475e-8,6.695972389198812e-4,4.300322240539698e-5,-1.1041321064106932e-8,6.696946149272839e-4,4.295523829967347e-5,-1.1023008875669534e-8,6.697929196037282e-4,4.2816698354687566e-5,-1.0974419442589062e-8,6.699251733474295e-4,4.2593196764431914e-5,-1.0896807753560433e-8,6.701212865700194e-4,4.230341044442153e-5,-1.0795842637994127e-8,6.704037174690174e-4,4.1978221761531796e-5,-1.0681328919295532e-8,6.707828559139265e-4,4.1657672615155404e-5,-1.0566288547495148e-8,6.712532690016723e-4,4.138524242901553e-5,-1.0465216530512158e-8,6.717922865944109e-4,4.119981360746378e-5,-1.0391550497627238e-8,6.723621835534646e-4,4.112674104581725e-5,-1.0354712996658229e-8,6.729163674503193e-4,4.117028254115718e-5,-1.0357404924622589e-8,6.734087601805087e-4,4.1309743555585105e-5,-1.0393953428156289e-8,6.738045432664134e-4,4.150094656252346e-5,-1.0450378613876328e-8,6.740899326696811e-4,4.168357203370962e-5,-1.0506544084907395e-8,6.742784623792691e-4,4.1793849405908306e-5,-1.0540362360195925e-8,6.744112537778521e-4,4.178074134045985e-5,-1.053345924363471e-8,6.745493044657425e-4,4.1621948675312874e-5,-1.0476951591107518e-8,6.747577135709221e-4,4.1334207987166106e-5,-1.0375304924468307e-8,6.750854372839487e-4,4.097200972504231e-5,-1.0246168788815136e-8,6.755482329271165e-4,4.0612262569480024e-5,-1.0115334350837037e-8,6.761231653952755e-4,4.032957409188221e-5,-1.0008413784011982e-8,6.767578521833027e-4,4.017301604488647e-5,-9.94290139609733e-9,6.773894310269758e-4,4.015465619698559e-5,-9.924065754328441e-9,6.779636072244319e-4,4.025271194279116e-5,-9.945684323589636e-9,6.784462992592076e-4,4.042426218751692e-5,-9.994032077050076e-9,6.788262531519046e-4,4.0619750895181834e-5,-1.0052621713449427e-8,6.791114670866537e-4,4.0793953317949755e-5,-1.0105937498144301e-8,6.793233103813246e-4,4.091197852871128e-5,-1.0141630257049476e-8,6.794909850969935e-4,4.0951453051865014e-5,-1.01514585939184e-8,6.7964728168145e-4,4.090274064307937e-5,-1.0131510062344522e-8,6.798254076015645e-4,4.076859742149239e-5,-1.0082138915684628e-8,6.800561699820016e-4,4.0563850495158245e-5,-1.0007849266961698e-8,6.8036477449427e-4,4.031492566409186e-5,-9.917132870207206e-9,6.807668440871827e-4,4.0058407100975396e-5,-9.822042726828585e-9,6.812639721347429e-4,3.98374389784475e-5,-9.737104678895134e-9,6.818400995093161e-4,3.9695020030860256e-5,-9.677186556046806e-9,6.824608377364019e-4,3.966437272967973e-5,-9.65429089058683e-9,6.830778514977682e-4,3.975846050622824e-5,-9.673896804332269e-9,6.8363893699842e-4,3.996251016407234e-5,-9.732153955509115e-9,6.841017372567231e-4,4.023361206932423e-5,-9.815394137449953e-9,6.844466228191916e-4,4.05092582535884e-5,-9.902727164968086e-9,6.846838738110617e-4,4.072297495515305e-5,-9.971213593928136e-9,6.848523051199315e-4,4.082220466885166e-5,-1.000201594026922e-8,6.850095982123903e-4,4.07828469698932e-5,-9.98560223372568e-9,6.852171873960667e-4,4.0616222783899834e-5,-9.924483469796086e-9,6.855238737488718e-4,4.036653532224773e-5,-9.832728989987601e-9,6.859526224257744e-4,4.00993290741107e-5,-9.732322816114245e-9,6.86494446675017e-4,3.988386503340198e-5,-9.647264291981038e-9,6.871115650576727e-4,3.977452661168896e-5,-9.597109977300679e-9,6.877489646437295e-4,3.979728759741124e-5,-9.592045225736865e-9,6.883501673843535e-4,3.994563772478752e-5,-9.631095222420986e-9,6.888714062386018e-4,4.018638516815171e-5,-9.70376889018204e-9,6.89289773006254e-4,4.047168422173579e-5,-9.79400284884246e-9,6.896042371432542e-4,4.075196513064055e-5,-9.884614283434994e-9,6.898314601928995e-4,4.0985699460782386e-5,-9.960814485912439e-9,6.899994707481199e-4,4.114457896454388e-5,-1.0012195088317796e-8,6.901416346331935e-4,4.1214864630885974e-5,-1.0033353714839723e-8,6.902920197616812e-4,4.119656099349532e-5,-1.0023683572674945e-8,6.904821165138293e-4,4.1101881144250444e-5,-9.986848350330236e-9,6.907382638650003e-4,4.09537582206849e-5,-9.930264533573738e-9,6.910790024415842e-4,4.0784383529647454e-5,-9.864646068425661e-9,6.915118287645734e-4,4.06330723894299e-5,-9.803388502339166e-9,6.92029478921974e-4,4.054225759251511e-5,-9.761330963984282e-9,6.926069404711696e-4,4.055042383207215e-5,-9.752392841996608e-9,6.93201577440324e-4,4.068187369966381e-5,-9.785963135087253e-9,6.937591702126083e-4,4.0935603885594335e-5,-9.86281521804032e-9,6.942270330740719e-4,4.1278405821690475e-5,-9.972398042232453e-9,6.945712632534799e-4,4.164815702606528e-5,-1.0093706764041374e-8,6.947908016139201e-4,4.196965425274466e-5,-1.0200641875276863e-8,6.949204861200494e-4,4.217816671559534e-5,-1.027018519806173e-8,6.950204845917e-4,4.2240436893643125e-5,-1.0289782773011855e-8,6.951568783835051e-4,4.2163991349505506e-5,-1.0260761389728324e-8,6.953820071952732e-4,4.1992296890793167e-5,-1.0196951522017627e-8,6.957214881833488e-4,4.1789873918597023e-5,-1.0119904592446122e-8,6.961704254910497e-4,4.162399139921554e-5,-1.0052855248199617e-8,6.966977464138914e-4,4.154851515582117e-5,-1.0015196278929336e-8,6.972559483814732e-4,4.159322790104321e-5,-1.0018554243928807e-8,6.977931798100247e-4,4.1759927789965654e-5,-1.006500579411969e-8,6.982647541256812e-4,4.202510292476047e-5,-1.0147554437825793e-8,6.986416504509654e-4,4.23477429452799e-5,-1.0252547579380231e-8,6.989144432942709e-4,4.267979568978907e-5,-1.0363254734980224e-8,6.990924889111561e-4,4.297633660441667e-5,-1.046354978955787e-8,6.991995765864698e-4,4.3203125469473766e-5,-1.0540778184890215e-8,6.992679525856361e-4,4.334055988722916e-5,-1.0587341630078698e-8,6.993324737511327e-4,4.338433788379723e-5,-1.0601042222300012e-8,6.994259422448656e-4,4.33439373540044e-5,-1.0584573537885036e-8,6.995758178822197e-4,4.324016014019141e-5,-1.0544655239898046e-8,6.998018846283525e-4,4.310255497934784e-5,-1.049116419505745e-8,7.001142366953494e-4,4.296687167505949e-5,-1.0436353487376878e-8,7.00511078834245e-4,4.28720812612912e-5,-1.0393964239501379e-8,7.009763426032131e-4,4.285598693783195e-5,-1.0377799290857615e-8,7.014781075470884e-4,4.294835757893481e-5,-1.0399281482030315e-8,7.01969994354906e-4,4.316142500987284e-5,-1.0463892261942207e-8,7.023982919714376e-4,4.3479848296496525E-05,-1.0567290124078954e-8,7.027162843902773e-4,4.385542505735799e-5,-1.0693127635927223e-8,7.029027821209852e-4,4.42135354664673e-5,-1.0815191406563102e-8,7.029758681401383e-4,4.44744496722845e-5,-1.0904987723913586e-8,7.029914590549362e-4,4.458263269534113e-5,-1.0942205658178163e-8,7.030240973959722e-4,4.4528749813272105e-5,-1.0922540209312683e-8,7.031394395161471e-4,4.435182467687107e-5,-1.0858532246731884e-8,7.033730001998939e-4,4.412187581728143e-5,-1.0773708033050758e-8,7.037236525719877e-4,4.391449186565976e-5,-1.0694038600834027e-8,7.041603691418619e-4,4.378961991431415e-5,-1.0640801646843702e-8,7.046353875274154e-4,4.378031259963003e-5,-1.0626632482199593e-8,7.050976569019387e-4,4.3890906265389334e-5,-1.0654550090175343e-8,7.055033512381783e-4,4.4101463726791514e-5,-1.0719012226212606e-8,7.058225832089542e-4,4.4375368649487437e-5,-1.0808140470310517e-8,7.060425584939559e-4,4.4667972118194066e-5,-1.0906544945457309e-8,7.061676354241381e-4,4.4934992978476056e-5,-1.0998328320161188e-8,7.062167941862384e-4,4.513963638656883e-5,-1.1069817830506132e-8,7.062192461146077e-4,4.525758094198104e-5,-1.1111586225981603e-8,7.062091365135665e-4,4.527941172781372e-5,-1.1119497270185845e-8,7.062203187254132e-4,4.521057587191405e-5,-1.1094762027694266e-8,7.062819845440831e-4,4.5069391812404094e-5,-1.1043233702560278e-8,7.06415505665796e-4,4.488393907460559e-5,-1.0974313413837001e-8,7.066323612634319e-4,4.4688540962570335e-5,-1.089978106738531e-8,7.069327966070445e-4,4.452012245181196e-5,-1.0832652650027417e-8,7.073048809528734e-4,4.4414291049901125e-5,-1.0785940512482935e-8,7.077239303819673e-4,4.4400593182769026e-5,-1.0771010723654536e-8,7.081530282662858e-4,4.449628480384157e-5,-1.0795218004047385e-8,7.08546309372772e-4,4.4698728013663695e-5,-1.0858860998889045e-8,7.088570074624559e-4,4.497837061391854e-5,-1.0952277710884579e-8,7.090511764918637e-4,4.527680031930541e-5,-1.1054882078469456e-8,7.091242875412201e-4,4.551603875633128e-5,-1.1138494306429178e-8,7.091120498076681e-4,4.562208888687946e-5,-1.117598713005094e-8,7.090846177539748e-4,4.5555482629709526e-5,-1.1152408119707443e-8,7.091216217038918e-4,4.533143658656323e-5,-1.1072207380177586e-8,7.092802036001695e-4,4.501504148607371e-5,-1.0957523637321026e-8,7.095747795025035e-4,4.469379194735881e-5,-1.0838617797559788e-8,7.099779924341384e-4,4.4444886939645104e-5,-1.0742641317809363e-8,7.104372322708001e-4,4.431417690490606e-5,-1.0686428868332595e-8,7.108944427121056e-4,4.43116119214771e-5,-1.067478403156329e-8,7.113007184917924e-4,4.441806234799192e-5,-1.0702470480375884e-8,7.11623679367533e-4,4.459632083759559e-5,-1.0757592826290675e-8,7.118492538786992e-4,4.480161570626685e-5,-1.0824953711808661e-8,7.11980233791131e-4,4.4989876558258635e-5,-1.0888886188899312e-8,7.120332870788396e-4,4.512373743613871e-5,-1.093553525218388e-8,7.120351830951165e-4,4.517671189813642e-5,-1.0954618391336977e-8,7.12018506314901e-4,4.513573773315998e-5,-1.094058962873492e-8,7.12017114163592e-4,4.500208629716573e-5,-1.0893112309757543e-8,7.120616914124563e-4,4.47905968840482e-5,-1.0816818974571956e-8,7.121758530794824e-4,4.452730583824109e-5,-1.0720449941183935e-8,7.12373225808455e-4,4.424582850797638e-5,-1.0615582948149321e-8,7.126557056969058e-4,4.3983020894276823E-05,-1.0515185840291802e-8,7.130128748690027e-4,4.377430370445033e-5,-1.0432097453514521e-8,7.134225026408814e-4,4.364884043657226e-5,-1.0377410518766734e-8,7.138521296875519e-4,4.3624612316220915e-5,-1.0358662531311387e-8,7.142621087199356e-4,4.370335181858926e-5,-1.0377769717223068e-8,7.146110340123279e-4,4.386580901383108e-5,-1.0428929632440784e-8,7.148644843579355e-4,4.406916289330847e-5,-1.0497305281474699e-8,7.150068229220568e-4,4.424991700273873e-5,-1.0559887164612516e-8,7.150530524366479e-4,4.4336178298709344e-5,-1.0590042672540263e-8,7.15053734810595e-4,4.42704276374271e-5,-1.056605287956476e-8,7.150846291680763e-4,4.403576931514396e-5,-1.0480847359923442e-8,7.152198511851885e-4,4.3670120179829765e-5,-1.0347183403858284e-8,7.155008744882165e-4,4.325529287265698e-5,-1.019372183871818e-8,7.159202063701489e-4,4.288442453165478e-5,-1.0053486378649688e-8,7.164288382090401e-4,4.262714020159595e-5,-9.95164253828637e-9,7.169595712173114e-4,4.2511112636761016e-5,-9.899008498589871e-9,7.174506599694499e-4,4.2524020942925516e-5,-9.892540841677029e-9,7.178598144621892e-4,4.2627404619268514e-5,-9.91983987587705e-9,7.181678446769699e-4,4.27721963699476e-5,-9.964266310840572e-9,7.183759126586623e-4,4.291045343841636e-5,-1.0008908875743132e-8,7.18500405594647e-4,4.300234497131943e-5,-1.0039122755238085e-8,7.185677828556197e-4,4.30196320106107e-5,-1.0044007543963475e-8,7.186101042079086e-4,4.294717412168661e-5,-1.001723346601736e-8,7.186610533817944e-4,4.278335317154585e-5,-9.957406051808767e-9,7.18752168284341e-4,4.253964376045135e-5,-9.867997924772748e-9,7.189091853091514e-4,4.2239192867652126e-5,-9.756827287293615e-9,7.191486680453425e-4,4.191412441845834e-5,-9.635062646698978e-9,7.194753833185204e-4,4.1601472907260915e-5,-9.515794554155215e-9,7.198809710473828e-4,4.1338056243998875e-5,-9.412302783608438e-9,7.203442861506658e-4,4.115483206636226e-5,-9.33615368049298e-9,7.208335901116579e-4,4.107136650050428e-5,-9.295250483512817e-9,7.21310582686931e-4,4.109113767836152e-5,-9.292009746461441e-9,7.217361374829578e-4,4.1198376722348027e-5,-9.321908690989147e-9,7.220776248483091e-4,4.135721706930838e-5,-9.372781644989014e-9,7.223174798075731e-4,4.151444248885548e-5,-9.42550576306746e-9,7.224616572947125e-4,4.160760778234224e-5,-9.456878589667109e-9,7.225448756233372e-4,4.157965702183735e-5,-9.445137808270311e-9,7.226279081272899e-4,4.139838628719147e-5,-9.377400707335786e-9,7.22782831518834e-4,4.107397411941798e-5,-9.256348015631858e-9,7.230679109607896e-4,4.066348908937088e-5,-9.10200491377539e-9,7.235030324353299e-4,4.025454393631868e-5,-8.94585670514005e-9,7.240604349135902e-4,3.993307278447048e-5,-8.819235976789946e-9,7.246770474161983e-4,3.9752475639384204e-5,-8.74220271896425e-9,7.25280167562206e-4,3.972032945361145e-5,-8.71863631377646e-9,7.258112499168408e-4,3.980545137139982e-5,-8.738490452126625e-9,7.262379795707331e-4,3.995588791311808e-5,-8.783922245220665e-9,7.265545698200255e-4,4.011659749582939e-5,-8.83541706972929e-9,7.267755339873465e-4,4.024105833074878e-5,-8.875936197311278e-9,7.269279845271264e-4,4.029652987094112e-5,-8.892976574019021e-9,7.270451450548466e-4,4.026516750216042e-5,-8.879235354411228e-9,7.271616327638609e-4,4.014326976173892e-5,-8.832575722188413e-9,7.273099551577129e-4,3.993996905439593e-5,-8.755682817923396e-9,7.275175140387404e-4,3.9675705000669275e-5,-8.65552457776656e-9,7.278037036096325e-4,3.938023732409923e-5,-8.542589315450922e-9,7.281770882665271e-4,3.9089662899162196e-5,-8.429786504232964e-9,7.286331360591269e-4,3.884197223268564e-5,-8.330888585721539e-9,7.291533677555678e-4,3.867120217350354e-5,-8.258515599405508e-9,7.297067738756757e-4,3.860090558086704e-5,-8.221844583454592e-9,7.302539666578742e-4,3.8638182704821905e-5,-8.224400957513714e-9,7.307538962269374e-4,3.876983049784128e-5,-8.262452625865695e-9,7.311722092434422e-4,3.896204742743471e-5,-8.324571705863522e-9,7.314897527645678e-4,3.9164524285314036e-5,-8.3927927962959e-9,7.317094414493923e-4,3.931904431090589e-5,-8.445566122962981e-9,7.318594845103638e-4,3.937201425400375e-5,-8.462392890762826e-9,7.319908066651358e-4,3.928917259530832e-5,-8.42948659848983e-9,7.321669790530052e-4,3.906885058053107e-5,-8.345010771919948e-9,7.324469928605998e-4,3.8748281868431985e-5,-8.22172192559327e-9,7.328651675913713e-4,3.839739804730499e-5,-8.084889760603431e-9,7.334166535442571e-4,3.809868218835139e-5,-7.964969302770367e-9,7.340570593855317e-4,3.791967584824037e-5,-7.88746795733556e-9,7.347180158889726e-4,3.789093829132095e-5,-7.864694610367329e-9,7.35330978895752e-4,3.799999059049531e-5,-7.893257941684946e-9,7.358473549973659e-4,3.820188625552753e-5,-7.95762224232136e-9,7.36247320859895e-4,3.8438037090302746e-5,-8.036768609057542e-9,7.365375874964547e-4,3.865343008418449e-5,-8.110432460280896e-9,7.367432165561168e-4,3.880698844533339e-5,-8.163005946748622e-9,7.368986354207467e-4,3.8875061863166875e-5,-8.185035831936871e-9,7.370405983510341e-4,3.885061218849014e-5,-8.173156102939069e-9,7.372035548293182e-4,3.8740714185469477e-5,-8.129326522098361e-9,7.374166923744471e-4,3.8563901864775714e-5,-8.05990590565618e-9,7.377017025310008e-4,3.834777065479802e-5,-7.974743340507008e-9,7.38070622142274e-4,3.8126512150255426e-5,-7.886238130470689e-9,7.385236155784789e-4,3.7937678633434624e-5,-7.80816935910351e-9,7.390471872462534e-4,3.7817479218706066e-5,-7.754041850862354e-9,7.39613896733862e-4,3.779443638936219e-5,-7.734832514708064e-9,7.401848806728716e-4,3.788221163124379e-5,-7.75635096994411e-9,7.407160397257579e-4,3.807351780711525e-5,-7.816863716772319e-9,7.411675017627108e-4,3.83377342940748e-5,-7.905958120875292e-9,7.415142919555773e-4,3.8624442718095306e-5,-8.005552813609206e-9,7.417549191637427e-4,3.887335159084064e-5,-8.093346705012602e-9,7.419146387750976e-4,3.902868594401002e-5,-8.14809060536792e-9,7.420415466924796e-4,3.9054260051663074e-5,-8.155305505607456e-9,7.421957712450767e-4,3.894484020912841e-5,-8.111780096870276e-9,7.424340938914088e-4,3.873006125504485e-5,-8.02737573183699e-9,7.42793899355561e-4,3.846880194086285e-5,-7.923264854219435e-9,7.432812620141698e-4,3.823437454532318e-5,-7.82664187542525e-9,7.438677441412036e-4,3.809405520022208e-5,-7.763143694430137e-9,7.444981839003461e-4,3.808955287654943e-5,-7.749409650064826e-9,7.451073361538792e-4,3.822586805072566e-5,-7.788599612458683e-9,7.456389114710405e-4,3.847282903416642e-5,-7.870587084328902e-9,7.460595325375159e-4,3.8777620572790256e-5,-7.97634017132848e-9,7.463633344203971e-4,3.90818258416466e-5,-8.084164382373755e-9,7.465679154850866e-4,3.9335967587656355e-5,-8.175197120055171e-9,7.467056704916095e-4,3.950769387356267e-5,-8.236653653676395e-9,7.468147802209882e-4,3.958364471163843e-5,-8.262748556136644e-9,7.469323302937862e-4,3.956728801685668e-5,-8.25406326448367e-9,7.470900224543724e-4,3.947522924674709e-5,-8.21625230612436E-09,7.473117786206921e-4,3.9333574246693434e-5,-8.15868872939971e-9,7.476122444451707e-4,3.917483364161524e-5,-8.093285230637837e-9,7.479954258414936e-4,3.9035053263447094e-5,-8.033430521419e-9,7.484532171378763e-4,3.8950407831258895e-5,-7.992775209673987e-9,7.489642810589979e-4,3.895244597740534e-5,-7.983527194781351e-9,7.494944525688141e-4,3.906165830601274e-5,-8.014060469529422e-9,7.500002746529996e-4,3.9280174203610924e-5,-8.086078232861302e-9,7.504369055959056e-4,3.9586013083436254e-5,-8.192238951203957e-9,7.507699029120727e-4,3.993257848288867e-5,-8.31570446363603e-9,7.509875768828624e-4,4.025651618290501e-5,-8.432888245201967e-9,7.511084739632404e-4,4.049377684511111e-5,-8.519412651981377e-9,7.511792950330379e-4,4.059903216808652e-5,-8.557453460506901e-9,7.51262580818493e-4,4.056073182061699e-5,-8.541545996409175e-9,7.514184424281146e-4,4.040549547796316e-5,-8.480474453332119e-9,7.516871944073718e-4,4.019036204144835e-5,-8.394680466844668e-9,7.520786833722089e-4,3.998634873333417e-5,-8.31041577663291e-9,7.525708694622507e-4,3.985920059382761e-5,-8.252707967838128e-9,7.531170338310043e-4,3.985300180192867e-5,-8.239147244363815e-9,7.536588526186752e-4,3.998070036708499e-5,-8.276008258796359e-9,7.541413990265233e-4,4.022342678605548e-5,-8.357544078241255e-9,7.54525863865062e-4,4.05380201242533e-5,-8.468421354961952e-9,7.547967008719969e-4,4.0869815523018587e-5,-8.588335122366214e-9,7.549619635945633e-4,4.116635887970118e-5,-8.697206288555848e-9,7.550480101612701e-4,4.1388047065979665e-5,-8.779387588935774e-9,7.550913554910073e-4,4.151357045899603e-5,-8.825967420826681e-9,7.551305842522161e-4,4.154031612162445e-5,-8.835132581061215e-9,7.552001895864037e-4,4.148139165922518e-5,-8.811164119887681e-9,7.55326828426084e-4,4.1361260126847735e-5,-8.762820923675844e-9,7.555274925687125e-4,4.12114438663705e-5,-8.70170647458801e-9,7.558087203055979e-4,4.1066871518413693e-5,-8.640891785799208e-9,7.561661037027524e-4,4.09626519740274e-5,-8.593743073534889e-9,7.565837873294337e-4,4.0930595848213674e-5,-8.572674913245856e-9,7.570343023719693e-4,4.0994708019895345e-5,-8.58746909968765e-9,7.574798432523166e-4,4.116526167701248e-5,-8.642942450707564e-9,7.578766597453443e-4,4.143219506580418e-5,-8.736227826676889e-9,7.581839700006578e-4,4.1760430647830195e-5,-8.85472089607003e-9,7.583769007372872e-4,4.209143613341075e-5,-8.97646260497755e-9,7.584593350854895e-4,4.235492678888832e-5,-9.074535079715516e-9,7.584693326984003e-4,4.249010700473473e-5,-9.125223368184249e-9,7.58470988460264e-4,4.246860282595259e-5,-9.116849569321388e-9,7.585337351705025e-4,4.230716762507732e-5,-9.054700673282172e-9,7.587083994551931e-4,4.206260627237825e-5,-8.959261900385463e-9,7.590114511903744e-4,4.181169099700161e-5,-8.858889905876627e-9,7.594231618304254e-4,4.162653730197789e-5,-8.780808674797843e-9,7.598974502542237e-4,4.155567159126383e-5,-8.744091746991325e-9,7.603770701441117e-4,4.161547883315085e-5,-8.756261200644959e-9,7.608083072352005e-4,4.1791395294714015e-5,-8.813314074637931e-9,7.611518311466191e-4,4.204568142158321e-5,-8.902175671211233e-9,7.613885521055572e-4,4.232834360337178e-5,-9.004492689727314e-9,7.615206177534766e-4,4.258845489577387e-5,-9.100837967244961e-9,7.61568322961355e-4,4.2783817580922045e-5,-9.174529986143186e-9,7.615641863347267e-4,4.288746563387388e-5,-9.214382010099968e-9,7.615458421224065e-4,4.289030424473849e-5,-9.215981555878051e-9,7.615493776879412e-4,4.280020160465099e-5,-9.181526671744856e-9,7.616042486398303e-4,4.26385797343642e-5,-9.118594656166542e-9,7.61730210455046e-4,4.2435795379432153e-5,-9.03837554219817e-9,7.61936050598561e-4,4.222646210520275e-5,-8.953874020503188e-9,7.622194897874063e-4,4.204535712200338e-5,-8.87837427683221e-9,7.625676250645121e-4,4.1923882039288665e-5,-8.824153587401546e-9,7.629576171601758e-4,4.188660389994002e-5,-8.801211913123232e-9,0.00076335781686778445,4.194730410322629e-5,-8.815719768604965e-9,7.637301806589586e-4,4.210424149540176e-5,-8.868024377405146e-9,7.640353866362429e-4,4.233530176320579e-5,-8.950502771608857e-9,7.642418368971225e-4,4.259542541961727e-5,-9.046295943306457e-9,7.643379706413167e-4,4.282042794217269e-5,-9.130652554192153e-9,7.643436783033333e-4,4.29411494887276e-5,-9.176459932444947e-9,7.643128225427903e-4,4.290719105443412e-5,-9.163573390875584e-9,7.643198908851147e-4,4.27107298651634e-5,-9.088104238947882e-9,7.644329712891078e-4,4.23954390951903e-5,-8.965872528852865e-9,7.646866633436667e-4,4.204199444422708e-5,-8.826934866527333e-9,7.650704200976676e-4,4.17372669333947e-5,-8.704057045239502e-9,7.655369936842672e-4,4.154471093131832e-5,-8.621706108552556e-9,7.660227565342318e-4,4.1489461027239444e-5,-8.590446292021975e-9,7.664679096395077e-4,4.155968867214678e-5,-8.60719762281304e-9,7.668295552510263e-4,4.1717667344140696e-5,-8.65897698447111e-9,7.670867797953163e-4,4.191334217832278e-5,-8.727615499482921e-9,7.672399375245228e-4,4.209611415617943e-5,-8.794011363368658e-9,7.673067113076542e-4,4.2223374435902354e-5,-8.841422117427617e-9,7.673167461421355e-4,4.226589688328241e-5,-8.857772846673981e-9,7.673057770691697e-4,4.221051342646373e-5,-8.837001052988211e-9,7.673098402283448e-4,4.206030802892788e-5,-8.779391079594279e-9,7.673601781277127e-4,4.18326361185597e-5,-8.690943756311483e-9,7.674793660680467e-4,4.1555511526051535e-5,-8.58199870451685e-9,7.676789770593695e-4,4.126301892957958e-5,-8.465429763661297e-9,7.679588364412986e-4,4.0990480338567314e-5,-8.354768907767848e-9,7.683075907368027e-4,4.077001331558171e-5,-8.262536838002104e-9,7.687041577968274e-4,4.062672035544098e-5,-8.198843955832656e-9,7.691197778494181e-4,4.057536670843389e-5,-8.170131786714939e-9,7.69520695114969e-4,4.061730481647757e-5,-8.17788778750396e-9,7.698719236009533e-4,4.073758088267318e-5,-8.217289031700045e-9,7.701429410375053e-4,4.090284202188645e-5,-8.276083307954193e-9,7.703158959245221e-4,4.106194157234824e-5,-8.334583011415699e-9]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_12.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_12.json new file mode 100644 index 000000000..ed067a159 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_12.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":12000,"numberOfSamples":1000,"samples":[7.703954280162467e-4,4.1152337826266915e-5,-8.368108119871265e-9,7.704163319665058e-4,4.111507788730868e-5,-8.352989399151336e-9,7.704421464154993e-4,4.091720944904923e-5,-8.275542352848811e-9,7.705485092428724e-4,4.05724562623383e-5,-8.140252864992262e-9,7.707939985966856e-4,4.014524130054576e-5,-7.971353086916377e-9,7.71193504222048e-4,3.972957759547678e-5,-7.80469566907836e-9,7.717115053607008e-4,3.9412072212316335e-5,-7.673655282248528e-9,7.722792203821364e-4,3.924081276169691e-5,-7.597334312683116e-9,7.728228927422465e-4,3.921592014800571e-5,-7.576902082499595e-9,7.732865636479628e-4,3.930044006202883e-5,-7.599469965429773e-9,7.736417360467977e-4,3.9439508716162856e-5,-7.645015059481085e-9,7.738862021781628e-4,3.9577299627356655e-5,-7.692550022805146e-9,7.740375781067476e-4,3.9667776867413035e-5,-7.724156675043192e-9,7.741257583521852e-4,3.9679734947780095e-5,-7.727075835179889e-9,7.741863193020013e-4,3.959810915098842e-5,-7.69451274251175e-9,7.742552430288779e-4,3.9423328672554246e-5,-7.625696494804441e-9,7.743646142276804e-4,3.9169548057952974e-5,-7.525395913350832e-9,7.745390796275454e-4,3.886191912277735e-5,-7.4029175785362335e-9,7.747931611691499e-4,3.853296073940333e-5,-7.2706518736087654e-9,7.751296404933389e-4,3.821816871539602e-5,-7.14230656603222e-9,7.75539277044951e-4,3.795118644851318e-5,-7.03102083378519e-9,7.760019965895818e-4,3.7759097444815016e-5,-6.947589780698099e-9,7.764894114568546e-4,3.7658393030000226e-5,-6.898960011119357e-9,7.769683935525284e-4,3.765194567776308e-5,-6.887041206138857e-9,7.77405468600329e-4,3.7727187339015794e-5,-6.907852463658269e-9,7.777719367210197e-4,3.7855696317654865e-5,-6.951096001721251e-9,7.780497715515111e-4,3.799465132874708e-5,-7.000433114460731e-9,7.782381033839588e-4,3.809125972066116e-5,-7.035036448543083e-9,7.783590131789634e-4,3.809174285674149e-5,-7.033143881376136e-9,7.784595953194529e-4,3.795570392998253e-5,-6.97793131163529e-9,7.786057068107846e-4,3.767368510457848e-5,-6.864708360881282e-9,7.78863996118783e-4,3.728037531656348e-5,-6.706310810691064e-9,7.792756265371022e-4,3.685219468959701e-5,-6.532225465482031e-9,7.798348397283327e-4,3.648330405006227e-5,-6.379231745544197e-9,7.804875774404013e-4,3.624915992465997e-5,-6.277220111165846e-9,7.811532791147602e-4,3.6178446406365796e-5,-6.238248751260801e-9,7.817563618614648e-4,3.624887846641678e-5,-6.254752293779451e-9,7.822492066349364e-4,3.6404572752001926e-5,-6.305999039127454e-9,7.826184621073835e-4,3.658034238992342e-5,-6.367226110433409e-9,7.828786448897808e-4,3.672020080806501e-5,-6.416659701095429e-9,7.830611528872669e-4,3.678622737434062e-5,-6.439002339589363e-9,7.83204269111392e-4,3.6760045223355876e-5,-6.4262288080890655e-9,7.83346116265409e-4,3.6640538094929564e-5,-6.376990645821899e-9,7.835202865150684e-4,3.644047816686522e-5,-6.2955425776532835e-9,7.837530585274323e-4,3.618322636043522e-5,-6.190565289506217e-9,7.840613538345039e-4,3.5899528490766174e-5,-6.073894295370791e-9,7.844511692520874e-4,3.56240404001225e-5,-5.959079652820332e-9,7.849166362486965e-4,3.5391266889247926e-5,-5.859734881539029e-9,7.854401461991078e-4,3.5230870470624936e-5,-5.787703349498604e-9,7.85994077008628e-4,3.516280326863614e-5,-5.751203618221222e-9,7.865443681490566e-4,3.519312942196211e-5,-5.753224515569559e-9,7.870557121649313e-4,3.531147041257569e-5,-5.790462278713693e-9,7.874977374834473e-4,3.549084781661851e-5,-5.8530751899271e-9,7.878512977067683e-4,3.5690381696580056e-5,-5.925483082828172e-9,7.88113902130303e-4,3.586089281430252e-5,-5.9883395159535995e-9,7.883033069918536e-4,3.595324388575569e-5,-6.021732124830117e-9,7.884579960410935e-4,3.5929083510116866e-5,-6.009544248256601e-9,7.886327975757129e-4,3.577280030598468e-5,-5.9444715378693474e-9,7.888879780100181e-4,3.550164046195876e-5,-5.832367391647236e-9,7.8927192870103e-4,3.51687389345516e-5,-5.693704861085736e-9,7.898018205719634e-4,3.4853326117873307e-5,-5.559814012217819e-9,7.904515896948133e-4,3.4636846056963114e-5,-5.463410169207496e-9,7.911567365586743e-4,3.457328365667514e-5,-5.426733674861982e-9,7.91836723351535e-4,3.4669207955395765e-5,-5.453450884163303e-9,7.924237202788972e-4,3.488486649734166e-5,-5.5288267094573905e-9,7.928824548961669e-4,3.515389152880303e-5,-5.627269436403621e-9,7.932136820118008e-4,3.540839736028799e-5,-5.722097489506235e-9,7.934449059141124e-4,3.5597063748403574e-5,-5.792673659357338e-9,7.936168882573704e-4,3.569210775996662e-5,-5.827295173952732e-9,7.937723217445624e-4,3.568791359332356e-5,-5.822884193637893e-9,7.93948800831336e-4,3.559595323883983e-5,-5.783216738249511e-9,7.941754088277288e-4,3.543933477989003e-5,-5.716920600537979e-9,7.944713320113322e-4,3.524834071649752e-5,-5.635744464363097e-9,7.948452117223364e-4,3.505690102972568e-5,-5.5531067119024055e-9,7.952946621025866e-4,3.489936168856889e-5,-5.482741290558481e-9,7.958060134527227e-4,3.4806877971801684e-5,-5.437234302862502e-9,7.963548356244236e-4,3.4803064153757236e-5,-5.4263155715433935e-9,7.969080873912969e-4,3.4899187129560714e-5,-5.454979598662578e-9,7.974285582348853e-4,3.50899868901018e-5,-5.521799771482021e-9,7.978815595783528e-4,3.53517139310461e-5,-5.618028402827992e-9,7.982428279621153e-4,3.5643920541599894e-5,-5.728107579266846e-9,7.985056927078104e-4,3.591576113045357e-5,-5.8319638327390805e-9,7.986852279968585e-4,3.6116131940588234e-5,-5.908914090462572e-9,7.988176580367524e-4,3.620557989303193e-5,-5.942429308719043e-9,7.989544079791842e-4,3.616720864975489e-5,-5.924668401918435e-9,7.991513656849079e-4,3.601375362426653e-5,-5.859607617947738e-9,7.994550428476274e-4,3.5788266373648105e-5,-5.763648882378041e-9,7.99888593020665e-4,3.5556588356057684e-5,-5.662870662485801e-9,8.004419741134302e-4,3.539153188530321e-5,-5.586797190304597e-9,8.010710698253013e-4,3.5351857597047766e-5,-5.559879219657929e-9,8.017086298947224e-4,3.546304659868737e-5,-5.5935163200738305e-9,8.022846671415112e-4,3.5708577068191366e-5,-5.6822096378184195e-9,8.027481145977655e-4,3.603666410112383e-5,-5.805964874906324e-9,8.03080122412991e-4,3.637928126071499e-5,-5.9377647708489825e-9,8.032943410005627e-4,3.66738652272459e-5,-6.0522761139605395e-9,8.034269249007324e-4,3.687843167960255e-5,-6.132033879229968e-9,8.035230519879982e-4,3.697653334579644e-5,-6.1696217748146e-9,8.036257380118303e-4,3.6974206946549126e-5,-6.166656508896828e-9,8.037692352128727e-4,3.689330257374978e-5,-6.131278442552063e-9,8.039764427338145e-4,3.6764723596644845e-5,-6.075520263494496e-9,8.042586457584074e-4,3.662315128777011e-5,-6.013183162784273e-9,8.046160819092535e-4,3.6503272989771094e-5,-5.9582713714511854e-9,8.050385231957502e-4,3.643678976682334e-5,-5.9237473528870625e-9,8.055057955743184e-4,3.644934285412461e-5,-5.920288595123292e-9,8.05988792090945e-4,3.655676717208342e-5,-5.95478706400642e-9,8.064519656770659e-4,3.676075426661275e-5,-6.028574833606665e-9,8.068582848986766e-4,3.7045013088594046e-5,-6.1357749440002495e-9,8.071769237677392e-4,3.737399900933667e-5,-6.26261951082692e-9,8.073924491758243e-4,3.769659412573422e-5,-6.388754892200863e-9,8.075124666197616e-4,3.7955997865778476e-5,-6.491115253060035e-9,8.075698393218493e-4,3.8104352666225344e-5,-6.549812033282912e-9,8.07616918266904e-4,3.811755258854625e-5,-6.5542030392740885e-9,8.077125028108634e-4,3.8004458985452114e-5,-6.506795533466793e-9,8.079056000982033e-4,3.780654452780539e-5,-6.4233624926436094e-9,8.082214227720043e-4,3.758774308343327e-5,-6.3291414262697445e-9,8.086539871520523e-4,3.741775103981728e-5,-6.252328710187585e-9,8.091672759069606e-4,3.7353752588214316e-5,-6.216752306565877e-9,8.097045052884347e-4,3.742558962134468e-5,-6.235686559437506e-9,8.10203012993122e-4,3.7628423384850995e-5,-6.308502277607127e-9,8.106106251449948e-4,3.792510731679957e-5,-6.421212634856097e-9,8.108985322821864e-4,3.8257644162653106e-5,-6.550833196339432e-9,8.11066628774171e-4,3.856383400569566e-5,-6.6720638631456955e-9,8.111401568994287e-4,3.8793232686939005e-5,-6.763879623403471e-9,8.111600098107639e-4,3.89173073971411e-5,-6.813868422693099e-9,8.111711107269196e-4,3.893182181341246e-5,-6.8194280235812216e-9,8.112128636990658e-4,3.8852913529948424e-5,-6.786357912765378e-9,8.1131356935384e-4,3.8710088334482416e-5,-6.726121364291298e-9,8.114885730374386e-4,3.853908980505929e-5,-6.652976845483148e-9,8.117408037071133e-4,3.837625006855202e-5,-6.5816575047402725e-9,8.120622864326276e-4,3.825456404102906e-5,-6.5257403552766695e-9,8.124357145823514e-4,3.82008938099246e-5,-6.496493824519633e-9,8.128358550233297e-4,3.823344877076438e-5,-6.50185004606853e-9,8.132312194083829e-4,3.8358874558908814e-5,-6.54518991660995e-9,8.135869354214777e-4,3.856887726212377e-5,-6.623869747140799e-9,8.138698868858205e-4,3.8837323813125146e-5,-6.727869263055802e-9,8.140566018155787e-4,3.91199837876055e-5,-6.83950023112515e-9,8.141427039935174e-4,3.935979230186433e-5,-6.9354371500791985e-9,8.14150262656473e-4,3.949946847388898e-5,-6.9918722744796985e-9,8.141277285832854e-4,3.949960053306327e-5,-6.991994835378283e-9,8.141388942367572e-4,3.935526219250151e-5,-6.93289197521611e-9,8.142430879224422e-4,3.910207785679162e-5,-6.8281493368907015e-9,8.144749296276758e-4,3.880686864520632e-5,-6.704223833237992e-9,8.1483306083408e-4,3.854646680042599e-5,-6.592073096421126e-9,8.152821053230805e-4,3.838435896231063e-5,-6.5178631025860026e-9,8.157651947313659e-4,3.835428291873892e-5,-6.49629781434836e-9,8.162207450781731e-4,3.845478693315215e-5,-6.528135674230928e-9,8.16597684699937e-4,3.865376270796675e-5,-6.60159629155916e-9,8.168657158061926e-4,3.889947743847334e-5,-6.69644446442954e-9,8.170194049574676e-4,3.913422953807289e-5,-6.7893400986806185e-9,8.17076394641524e-4,3.930728020730456e-5,-6.85914255437804e-9,8.170710316645813e-4,3.938449175604022e-5,-6.891061862959034e-9,8.170454569870298e-4,3.935306732398158e-5,-6.878882809994513e-9,8.170405722878981e-4,3.9221105681444305e-5,-6.825033584806315e-9,8.1708896023377e-4,3.901310215359767e-5,-6.7388979016364186e-9,8.172108407223391e-4,3.87633764776707e-5,-6.634171213681119e-9,8.174130175522054e-4,3.850938229687362e-5,-6.526094414707984e-9,8.176899834395489e-4,3.8286205079792516e-5,-6.4291520891420515e-9,8.180260959470649e-4,3.812267075009407e-5,-6.3554492104173685e-9,8.183979894619872e-4,3.803873780290355e-5,-6.313637763487015e-9,8.187769116206049e-4,3.804351923521837e-5,-6.308093725118056e-9,8.191312129866966e-4,3.813337134793312e-5,-6.338063937256885e-9,8.194296942684052e-4,3.8289922698924704e-5,-6.396704673018225e-9,8.196467238419641e-4,3.847879781237149e-5,-6.470354270719354e-9,8.197695294206804e-4,3.8650968100779566e-5,-6.538921130269099e-9,8.19806513649201e-4,3.874943540462814e-5,-6.5785960033068025e-9,8.197929489727498e-4,3.8723134804595094e-5,-6.5676898771434025e-9,8.197883002079536e-4,3.854613941350416e-5,-6.4947236728071645e-9,8.198609759695765e-4,3.823403064971981e-5,-6.365297279203114e-9,8.200636944477346e-4,3.784594464219167e-5,-6.203000857389413e-9,0.000820411436661712,3.746667085519243e-5,-6.042172936215794e-9,8.208749674671344e-4,3.7176223092774686e-5,-5.915617415305801e-9,8.213932248000017e-4,3.7022992160726405e-5,-5.843759010230899e-9,8.218961027605576e-4,3.701275044446644e-5,-5.830076453078521e-9,8.223254904904929e-4,3.711435819021485e-5,-5.863118056849916e-9,8.226473843906112e-4,3.727482958449793e-5,-5.922239824745653e-9,8.228545590175748e-4,3.7435687186837764e-5,-5.983966399587255e-9,8.229627474394682e-4,3.7545885310616436e-5,-6.027176921838554e-9,8.230036090129152e-4,3.756990148797665e-5,-6.036554527428151e-9,8.230167806825249e-4,3.749138311092206e-5,-6.004372061981051e-9,8.230423185742567e-4,3.731317666393389e-5,-5.930818699795622e-9,8.231143493501816e-4,3.705449505134662e-5,-5.823063768625377e-9,8.23256553209646e-4,3.674606808012696e-5,-5.693352353058202e-9,8.234798189428454e-4,3.642429612693932e-5,-5.556571384393087e-9,8.237820413355269e-4,3.6125418828181186e-5,-5.427765212931279e-9,8.241496751844597e-4,3.588054059534543e-5,-5.320016584338888e-9,8.245603883153199e-4,3.571199342395666e-5,-5.242923452023574e-9,8.249861688108776e-4,3.563099782478505e-5,-5.201638270344065e-9,8.253965549120751e-4,3.563626588694151e-5,-5.1962726434097535e-9,8.257620082869455e-4,3.571323197160154e-5,-5.221486300041849e-9,8.260577695440884e-4,3.583385451251235e-5,-5.266230045559657e-9,8.262687299902825e-4,3.595753207818218e-5,-5.313924512584801e-9,8.263954241197148e-4,3.6034603798458864e-5,-5.343784865943491e-9,8.264598903887887e-4,3.601442540484084e-5,-5.334201311502159e-9,8.265081515702821e-4,3.585914554288692e-5,-5.268642284511385e-9,8.26604385596247e-4,3.556101693181241e-5,-5.143074426032549e-9,8.268132192939278e-4,3.515537353926115e-5,-4.971501142912185e-9,8.271738744510702e-4,3.471782861774951e-5,-4.7848532086355065e-9,8.276795586094963e-4,3.4340322196190036e-5,-4.621118053741745e-9,8.282766891716653e-4,3.4095760039524445e-5,-4.5108069909192165e-9,8.288861464980373e-4,3.401140563924369e-5,-4.465996728964361e-9,8.29433355059079e-4,3.406500941237964e-5,-4.4785874372255114e-9,8.298704729894737e-4,3.420103631857123e-5,-4.526688711410476e-9,8.301833096396713e-4,3.4353709967328716e-5,-4.583790454622501e-9,8.303862100769367e-4,3.446546478614344e-5,-4.626173157513306e-9,8.305118250621173e-4,3.449687603771798e-5,-4.6370194576684565e-9,8.306008664699762e-4,3.442941009341466e-5,-4.607762309491803e-9,8.306940322478887e-4,3.426386875947961e-5,-4.537752547464339e-9,8.308263261536525e-4,3.401682527001027e-5,-4.4330652748613145e-9,8.310232819304966e-4,3.371620106257414e-5,-4.304822699303797e-9,8.312987280593526e-4,3.339641097448233e-5,-4.167187973746248e-9,8.31653979219806e-4,3.309335744578138e-5,-4.0351952674026125e-9,8.32078417238307e-4,3.283958122742209e-5,-3.9226242940869606e-9,8.325514069439921e-4,3.26599656110982e-5,-3.8401496329485945e-9,8.330453353948687e-4,3.256846904668967e-5,-3.793977723288974e-9,8.335293651888821e-4,3.2566169333962955e-5,-3.785049055168084e-9,8.33973516225973e-4,3.264061001145597e-5,-3.808740687729704e-9,8.343528580041156e-4,3.2766396288388346e-5,-3.855005633134729e-9,8.346517248312861e-4,3.290709657118518e-5,-3.9089874063833434e-9,8.348679389439184e-4,3.301872928211123e-5,-3.95230090306051e-9,8.350167359300278e-4,3.305558632640454e-5,-3.965393684369818e-9,8.351331058149185e-4,3.297932755397413e-5,-3.9314416005053e-9,8.352699660831031e-4,3.277126367429032e-5,-3.8417220291605366e-9,8.354889117471341e-4,3.244507340953231e-5,-3.7012047953805833e-9,8.358419691208809e-4,3.205326833172769e-5,-3.531440109697599e-9,8.36348763283404e-4,3.167867290599403e-5,-3.3670502139274996e-9,8.369813197061595e-4,3.140782451156133e-5,-3.244586908337016e-9,8.376693061030729e-4,3.129669563122999e-5,-3.1881493598681102e-9,8.383263658012633e-4,3.134863920078477e-5,-3.200051972071662e-9,8.388826052155265e-4,3.151766556410064e-5,-3.2619908468242225e-9,8.393050072888866e-4,3.173205489277276e-5,-3.344664087646371e-9,8.395988757541516e-4,3.192172100776251e-5,-3.419003963066664e-9,8.397963286098811e-4,3.203621272799185e-5,-3.46362815353071e-9,8.399416326313247e-4,3.205061679819683e-5,-3.4674080518768483e-9,8.400794992423449e-4,3.1963263817541386e-5,-3.4287495907215916e-9,8.402479103687121e-4,3.179002909330446e-5,-3.3534888117140308e-9,8.404745687451004e-4,3.155830071326884e-5,-3.2525737289196144e-9,8.407754646399417e-4,3.130173895136262e-5,-3.1399368209433314e-9,8.41154541388092e-4,3.1055764720891035e-5,-3.0305415711644196e-9,8.416041280544131e-4,3.085345156272672e-5,-2.9385364426828023e-9,8.421061656017975e-4,3.072164283076384e-5,-2.8755213785209154e-9,8.426344113814458e-4,3.067736638925079e-5,-2.8490015368691745e-9,8.431577953645121e-4,3.072498523450466e-5,-2.8612024549307127e-9,8.436447971117692e-4,3.085470440573325e-5,-2.9084547718786858e-9,8.440683720702881e-4,3.1042869672780824e-5,-2.981273689818602e-9,8.444108321936859e-4,3.125426055813509e-5,-3.065198477158535e-9,8.446680629527056e-4,3.144642492558669e-5,-3.142451937358192e-9,8.448524507159502e-4,3.15759057443261e-5,-3.194437005461156e-9,8.449938340091091e-4,3.160610588444374e-5,-3.2050494314965393e-9,8.451374660071655e-4,3.151638576719877e-5,-3.1646699302547115e-9,8.453375715697237e-4,3.1311130994121866e-5,-3.0742611477808833e-9,8.456453986738488e-4,3.1025780835067146e-5,-2.94819557957702e-9,8.46092653379528e-4,3.0725045293271956e-5,-2.81368862948315e-9,8.466753220872281e-4,3.0488818598972834e-5,-2.704879810332908e-9,8.473471109643087e-4,3.038640446510119e-5,-2.6518278127619258e-9,8.480305696476147e-4,3.0449024854662588e-5,-2.668679548466348e-9,8.486441257401572e-4,3.065628903781551e-5,-2.7477040330430985e-9,8.491313375173792e-4,3.094576582096809e-5,-2.8631317709746885e-9,8.494766164139384e-4,3.123946697058364e-5,-2.9822273668107125e-9,8.497020423260754e-4,3.1471127846907625e-5,-3.0767866876898872e-9,8.498521170161459e-4,3.16017891014394e-5,-3.129775126187276e-9,8.499770409409726e-4,3.1621830699592834e-5,-3.1363362066964675e-9,8.501209480543094e-4,3.1544720456021056e-5,-3.1013685836141294e-9,8.503161532077362e-4,3.1398399640952655e-5,-3.036097487468567e-9,8.505816546173871e-4,3.1217759899263695e-5,-2.9550165687006546e-9,8.509236995527479e-4,3.103916188717301e-5,-2.8735662703891047e-9,8.513369862483362e-4,3.0896507607776705e-5,-2.8063743424389867e-9,8.518060495699486e-4,3.081805794501351e-5,-2.7657886014572145e-9,8.523069735798167e-4,3.082345930368575e-5,-2.7605358876292335e-9,8.528098318936862e-4,3.0920864735206294e-5,-2.79447672381635e-9,8.532822991542584e-4,3.110457416848017e-5,-2.8656065993726486e-9,8.536945524033567e-4,3.1354085988535145e-5,-2.965633018689591e-9,8.540249574865114e-4,3.163548969538209e-5,-3.080489694586202e-9,8.542654720972812e-4,3.190574453586719e-5,-3.192028596537508e-9,8.544254041595665e-4,3.211974836915866e-5,-3.28090202256463e-9,8.545322236510779e-4,3.2239278828225266e-5,-3.3303148632010992e-9,8.546285733291039e-4,3.224218246448245e-5,-3.330007151957699e-9,8.547652672831671e-4,3.2129878781118014e-5,-3.279649312494011e-9,8.549907364400541e-4,3.193111420486313e-5,-3.1907193571916717e-9,8.553382926807156e-4,3.1699773222277685e-5,-3.0858345714949625e-9,8.558140144434115e-4,3.150496484434305e-5,-2.9946769942906606e-9,8.563897321781071e-4,3.1413455736156216e-5,-2.9464704670555277e-9,8.570061787799461e-4,3.1468304822318046e-5,-2.960646903904852e-9,8.575886586831152e-4,3.167199701229673e-5,-3.039317862345337e-9,8.580709942206223e-4,3.198346246211776e-5,-3.1656988018487623e-9,8.584171135061124e-4,3.233248147476386e-5,-3.310099393214403e-9,8.586297960336273e-4,3.264478971416768e-5,-3.440645754903185e-9,8.587438963877701e-4,3.286515489171303e-5,-3.5332321749884526e-9,8.58810255130539e-4,3.2968897888927814e-5,-3.5765784450704622e-9,8.588794391843271e-4,3.2960802961293873e-5,-3.5719305847910328e-9,8.589911009932855e-4,3.2866533850223576e-5,-3.529577019202463e-9,8.591697919005255e-4,3.272249454060714e-5,-3.4646650245504987e-9,8.594251730433313e-4,3.256765883619841e-5,-3.393767811079765e-9,8.597541389353542e-4,3.2438210292960187e-5,-3.3325521813766835e-9,8.601432315592983e-4,3.236427582707883e-5,-3.2942803106507433e-9,8.605707893509768e-4,3.236765846754327e-5,-3.2887387933129255e-9,8.610090272757816e-4,3.245976837958149e-5,-3.3212886990489386e-9,8.614266330715411e-4,3.2639496241471747e-5,-3.3919234343927197e-9,8.617925265638105e-4,3.289145361493536e-5,-3.4944824234170423e-9,8.620810773671341e-4,3.318566240946574e-5,-3.616455097562243e-9,8.62278291344594e-4,3.3480062508905175e-5,-3.7399625948591e-9,8.623874686730959e-4,3.372681857367478e-5,-3.844371487446432e-9,8.624320722870976e-4,3.38822001208865e-5,-3.910489310686052e-9,8.624536695365803e-4,3.391801974913249e-5,-3.925509323340507e-9,8.625041693741896e-4,3.3831145103447495e-5,-3.887217720697746e-9,8.626336863724894e-4,3.364749744285424e-5,-3.805912914971897e-9,8.628771728569449e-4,3.34184061309152e-5,-3.703085242205503e-9,8.632436901356097e-4,3.3209472451514874e-5,-3.606852247536402e-9,8.637117164869609e-4,3.30843353744748e-5,-3.5450791305814132e-9,8.64232526978409e-4,3.30874054017447e-5,-3.537852982664476e-9,8.647417259564168e-4,3.32305264787094e-5,-3.591449619924816e-9,8.651764977358669e-4,3.348834402295054e-5,-3.695963620118213e-9,8.654934113410493e-4,3.380514974584113e-5,-3.827962144226022e-9,8.65680227216288e-4,3.411174050293928e-5,-3.957644664897803e-9,8.657570330287688e-4,3.4346041766830635e-5,-4.057808965225653e-9,8.657669387277931e-4,3.446932313815453e-5,-4.11101586076775e-9,8.657613435022625e-4,3.4472588411529344e-5,-4.112539581686109e-9,8.657862135868558e-4,3.4373094380466114e-5,-4.069050533975013e-9,8.658735763707832e-4,3.4205060581144676e-5,-3.99475967321788e-9,8.660388852455758e-4,3.400943296480929e-5,-3.907091687927469e-9,8.66282466493992e-4,3.3825844969993364e-5,-3.823219696797409e-9,8.665927137849105e-4,3.3687619719216236e-5,-3.7578388388344435e-9,8.669494024009601e-4,3.361913423273398e-5,-3.7219299984715987e-9,8.673264891657124e-4,3.363439881774626e-5,-3.7220625465320145e-9,8.676945418145927e-4,3.373592694579208e-5,-3.7598487309122184e-9,8.680234235964354e-4,3.391351714465576e-5,-3.831368929963179e-9,8.682859972296471e-4,3.4143297256214016e-5,-3.926691202132316e-9,8.684632880644983e-4,3.4388163647136244e-5,-4.029972466578756e-9,8.685506814790997e-4,3.460127638371885e-5,-4.120889818604067e-9,8.685633840062911e-4,3.4734023180121915e-5,-4.178058611548191e-9,8.685380720783138e-4,3.4748252417980764e-5,-4.184372534042753e-9,8.685276349437916e-4,3.462966914812959e-5,-4.132901756292709e-9,8.685883291320915e-4,3.439669502663824e-5,-4.030854924441111e-9,8.687628382465881e-4,3.409933619952682e-5,-3.8992420211352555e-9,8.690658895057307e-4,3.3806647123293056e-5,-3.767634596223998e-9,8.694785799556857e-4,3.358696397155016e-5,-3.66578227162126e-9,8.69953568550893e-4,3.348840676249508e-5,-3.6152232829612797e-9,8.704286241585501e-4,3.352635120659295e-5,-3.623705146793659e-9,8.708434233092473e-4,3.36810197345908e-5,-3.6838087593563796e-9,8.711544860856722e-4,3.390464015558857e-5,-3.775680273187482e-9,8.713445725476498e-4,3.4135193673201416e-5,-3.872743220397276e-9,8.714246913321904e-4,3.4312587501143965e-5,-3.948669842514471e-9,8.714288385999942e-4,3.4392832306213484e-5,-3.983673438771948e-9,8.714035709437477e-4,3.4356588349835174e-5,-3.968454991877816e-9,8.713959401397892e-4,3.4210390500048455e-5,-3.904979500162979e-9,8.714434314935408e-4,3.398142071965159e-5,-3.80439632081465e-9,8.715682144280527e-4,3.370866502664886e-5,-3.6833035835006632e-9,8.717760142029626e-4,3.343373250814609e-5,-3.5597712152619653e-9,8.720583485322628e-4,3.3193644320049306e-5,-3.450143545804329e-9,8.723963305223968e-4,3.301640385510928e-5,-3.367013852901416e-9,8.727645877754009e-4,3.2918942751948914e-5,-3.318240190622122e-9,8.731346053164378e-4,3.290646426016532e-5,-3.3065975355143806e-9,8.734775263631105e-4,3.297227361968222e-5,-3.329661479803068e-9,8.737669246598247e-4,3.3097659941762863e-5,-3.3797021541565744e-9,8.739822501713752e-4,3.325204966262417e-5,-3.443668277316694e-9,8.741134429392175e-4,3.339441456133996e-5,-3.5037068763647772e-9,8.741663973729802e-4,3.347758868121113e-5,-3.538992779628764e-9,8.741674829281171e-4,3.3457101736264556e-5,-3.529614543781381e-9,8.741636709228396e-4,3.33044797175946e-5,-3.4624919926690294e-9,8.742144615830622e-4,3.302135267114131e-5,-3.337668517116169e-9,8.743747932608298e-4,3.264687423555464e-5,-3.1716545924770886e-9,8.746743840366114e-4,3.2251051243278426e-5,-2.9946081022665746e-9,8.751039489192597e-4,3.1913364921373566e-5,-2.841130150424048e-9,8.75616678903275e-4,3.169573821909346e-5,-2.738595983860198e-9,8.761445007935473e-4,3.162302292091491e-5,-2.698649906049282e-9,8.766203447195945e-4,3.167892308982781e-5,-2.715236885002451e-9,8.769963987697803e-4,3.18159383463042e-5,-2.7686104110067445e-9,8.772531062745815e-4,3.197221978649029e-5,-2.8323654947714774e-9,8.773990475854998e-4,3.2088299096119665e-5,-2.880564943726866e-9,8.774645762292172e-4,3.211954673233677e-5,-2.893205151464858e-9,8.774924155916585e-4,3.204298846969703e-5,-2.8593905607603026e-9,8.775277330636137e-4,3.185874387139908e-5,-2.778242446816188e-9,8.776094585559394e-4,3.158700840416259e-5,-2.657838435817586e-9,8.777641128132043e-4,3.126183960920271e-5,-2.5126548703569532e-9,8.78002877757191e-4,3.092341017264447e-5,-2.360210638245288e-9,8.78321864386743e-4,3.061051760107952e-5,-2.217716237311034e-9,8.787048132667152e-4,3.0354696413936292e-5,-2.0993733631963004e-9,8.791271129207127e-4,3.0176554948077197e-5,-2.0146576508170057e-9,8.795600526842855e-4,3.0084265265720063e-5,-1.9675904842138486e-9,8.799746005764623e-4,3.0073592700195904e-5,-1.9567272155798592e-9,8.803445685727407e-4,3.0128701933306585e-5,-1.9754931411414064e-9,8.806494724082241e-4,3.0223295863434567e-5,-2.012635250546257e-9,8.808775707256542e-4,3.0322170015652122e-5,-2.052817626545346e-9,8.810294629751855e-4,3.0383874541022066e-5,-2.077700737209661e-9,8.811219817814094e-4,3.0365784932921254e-5,-2.068140259899549e-9,8.811907881742122e-4,3.0232911390513986e-5,-2.0081342888122047e-9,8.812885190182023e-4,2.997035224275941e-5,-1.8904615726488688e-9,8.814748050867232e-4,2.9595882363843328e-5,-1.7223897108962145e-9,8.817972325406356e-4,2.9164896341324755e-5,-1.5279575596742727e-9,8.822694105023639e-4,2.8759323793384683e-5,-1.343146342028477e-9,8.828590048460752e-4,2.846005103322195e-5,-1.203784176843767e-9,8.834961316970444e-4,2.8315408404152892e-5,-1.1317019817736651e-9,8.840994293836644e-4,2.83238474756633e-5,-1.1270381711241277e-9,8.846048503517724e-4,2.8439563876848128e-5,-1.1705107836514342e-9,8.849825261434277e-4,2.859423427913567e-5,-1.2327153363012424e-9,8.852377405673897e-4,2.872082247503333e-5,-1.2843809606697235e-9,8.854014350719654e-4,2.876976020388615e-5,-1.303411303612948e-9,8.855175691600622e-4,2.8715569658327886e-5,-1.277894686911527e-9,8.856319414654461e-4,2.8556383656666185e-5,-1.2061264571813115e-9,8.857841196699158e-4,2.8309570284204513e-5,-1.0949624616496077e-9,8.86002414496257e-4,2.800577749822175e-5,-9.574157297751806e-10,8.863013254260068e-4,2.7682541703841347e-5,-8.099261480403505e-10,8.866810883604368e-4,2.737801278175877e-5,-6.695408320630273e-10,8.871291034948231e-4,2.712535762590261e-5,-5.513048593649785e-10,8.876228817584209e-4,2.6948399119048687e-5,-4.661876242949888e-10,8.881339924077757e-4,2.6858865286951922e-5,-4.197713685400893e-10,8.886323956855838e-4,2.6855412138336997e-5,-4.1179225649502044e-10,8.890905424093482e-4,2.6924258581403914e-5,-4.3643441475982406e-10,8.89486876270744e-4,2.704096977561104e-5,-4.831197421077393e-10,8.898087302066524e-4,2.7172978043164845e-5,-5.375765842824722e-10,8.900547902185537e-4,2.7282747178927522e-5,-5.831513974124379e-10,8.902372653753913e-4,2.733186854749421e-5,-6.02542926548089e-10,8.903834851144673e-4,2.7286782595027556e-5,-5.803341451115104e-10,8.905356820182493e-4,2.712678713758405e-5,-5.066546828876249e-10,8.907466490935431e-4,2.6853822167289743e-5,-3.817222697006188e-10,8.910687379135351e-4,2.650095008026581e-5,-2.1981389275727818e-10,8.915358613141435e-4,2.613316302797963e-5,-4.974968918210426e-11,8.921441557986117e-4,2.583341569558239e-5,9.130127597938247e-11,8.928435576312597e-4,2.5673648601187617e-5,1.7077634639135572e-10,8.935508750856743e-4,2.5683679634147847e-5,1.7468326592194504e-10,8.941811428365587e-4,2.5837610180360195e-5,1.1381510218411522e-10,8.946793739990621e-4,2.6067113585673513e-5,1.8006901262402275e-11,8.950349091826171e-4,2.6291644820413183e-5,-7.717084794839584e-11,8.952750213494531e-4,2.6446389435700407e-5,-1.427663814093566e-10,8.954475970296075e-4,2.64960814946439e-5,-1.625988001066087e-10,8.956041887442954e-4,2.6435196735103513e-5,-1.334689640026147e-10,8.957887712051753e-4,2.6280905283114967e-5,-6.224871917615731e-11,8.960323226691599e-4,2.6064317323041538e-5,3.777765165941726e-11,8.963513575114935e-4,2.5822815459411318e-5,1.5017549800954496e-10,8.96748509792149e-4,2.5594124919428984e-5,2.5799083696445723e-10,8.972140957359525e-4,2.5411712108030967e-5,3.459131555119787e-10,8.97728398380985e-4,2.5301088813513795e-5,4.0208667445015245e-10,8.982646818886401e-4,2.5276973108559064e-5,4.19511702332487e-10,8.987928885022273e-4,2.5341491278246515e-5,3.969097854818967e-10,8.992838386101128e-4,2.548373838032777e-5,3.389148700251626e-10,8.997135067687896e-4,2.5680959581705512e-5,2.5551799630259e-10,9.000668011166033e-4,2.590128913974731e-5,1.6084571383571664e-10,9.003404075887244e-4,2.610773225553987e-5,7.143433854803536e-11,9.005444531271067e-4,2.626306035931546e-5,4.124552392039377e-12,9.00702826310028e-4,2.6335350498633444e-5,-2.636373164642357e-11,9.008518990331428e-4,2.6304027478397698e-5,-1.0173572691243059e-11,9.010369750715351e-4,2.616622985452215e-5,5.4685092455799334e-11,9.013053376731691e-4,2.5942528849006335e-5,1.5954350428825642e-10,9.016950534266347e-4,2.5679451672258137e-5,2.8372503804596007e-10,9.022205066966907e-4,2.544470577148632e-5,3.9657633063202955e-10,9.028595081446744e-4,2.5311299328910574e-5,4.6464848630157026e-10,9.035509621163673e-4,2.5331826054565013e-5,4.634519661365919e-10,9.042106403831823e-4,2.5513725417149697e-5,3.8884970955208253e-10,9.047617243836385e-4,2.5811755065389144e-5,2.60664002639359e-10,9.051639505218222e-4,2.614554976562279e-5,1.1486292999309726e-10,9.054243849394402e-4,2.6432431256007105e-5,-1.1230224109221291e-11,9.055864786501333e-4,2.6615750824420068e-5,-9.174245642919217e-11,9.057083348203511e-4,2.6675961252054152e-5,-1.1728835587695205e-10,9.05843511575355e-4,2.6625694545636095e-5,-9.286576972832296e-11,9.06030514980889e-4,2.649764658641052e-5,-3.258481232105302e-11,9.06290090659766e-4,2.6332711316700743e-5,4.5492394804177083e-11,9.066269079166894e-4,2.617147979221003e-5,1.230902666428942e-10,9.07032727485054e-4,2.6049140781842117e-5,1.8405636274430814e-10,9.074895537591257e-4,2.5992565692749985e-5,2.1580884693763228e-10,9.079725233622418e-4,2.601842289978903e-5,2.1034058494702972e-10,9.08452843161885e-4,2.6131794189518346e-5,1.649501949413581e-10,9.089011187176733e-4,2.632531969086917e-5,8.266582317282753e-11,9.092912509323934e-4,2.657930002330282e-5,-2.7811191372744197e-11,9.096046947811349e-4,2.686337600497953e-5,-1.5287896453951608e-10,9.098343835696975e-4,2.7140160235303376e-5,-2.756580777618742e-10,9.099874027396871e-4,2.737067976970732e-5,-3.7839683569915226e-10,9.100856080701482e-4,2.7521019033657425e-5,-4.4541806075215186e-10,9.101636727790192e-4,2.756915427471307e-5,-4.662024595936307e-10,9.102644580498961e-4,2.751076592587584e-5,-4.3810314345020306E-10,9.104319511252228e-4,2.736291054800073e-5,-3.681879685719245e-10,9.107022221916946e-4,2.7164432891512126e-5,-2.736553609265788e-10,9.110933354507029e-4,2.6971680885033756e-5,-1.800824904443576e-10,9.11596330532063e-4,2.6848117080263942e-5,-1.167738231171905e-10,9.121710507471927e-4,2.6847793958635906e-5,-1.0913815308381964e-10,9.12751534970597e-4,2.6996070209376236e-5,-1.6964949395235283e-10,9.132634636288651e-4,2.72756008370633e-5,-2.9115810444199527e-10,9.136492992958313e-4,2.762733566158342e-5,-4.471383736182009e-10,9.138892892803114e-4,2.797002314543524e-5,-6.005507786510418e-10,9.140064810409892e-4,2.8229735821653137e-5,-7.173953360843062e-10,9.140537060586121e-4,2.8363778381520954e-5,-7.777099880424133e-10,9.14091744347561e-4,2.8368259804342512e-5,-7.790964097262822e-10,9.141707165736832e-4,2.8270290432506036e-5,-7.332676996715194e-10,9.143209375298112e-4,2.811333903517838e-5,-6.595294780294835e-10,9.145523676781168e-4,2.7943782175206335e-5,-5.787922436801097e-10,9.148586524660526e-4,2.780218073489562e-5,-5.09645207598181e-10,9.15222213264884e-4,2.771907523928594e-5,-4.663750532641056e-10,9.156186000215372e-4,2.771356286516508e-5,-4.581833019385022e-10,9.160198239972885e-4,2.7793018214471577e-5,-4.889247071998724e-10,9.163971548837643e-4,2.795307226790254e-5,-5.570122799444724e-10,9.167240149473723e-4,2.8177711329907586e-5,-6.554310086134877e-10,9.169794235753807e-4,2.8439962674449603e-5,-7.720472188029496e-10,9.171519825482253e-4,2.870402885777489e-5,-8.905750008556582e-10,9.172436935254598e-4,2.8929649817970348e-5,-9.925419838939779e-10,9.172722940063046e-4,2.9078832692983632e-5,-1.0603291660817625e-9,9.172706400546866e-4,2.912409780548574e-5,-1.080924584550345e-9,9.17282157849279e-4,2.9056323329246427e-5,-1.0495469582952546e-9,9.17352548715972e-4,2.8889652042343435e-5,-9.719977617501207e-10,9.175193386587934e-4,2.8661331040972106e-5,-8.647637143988589e-10,9.178017998224793e-4,2.842566755332037e-5,-7.524533284368034e-10,9.181939299909826e-4,2.824278153652306e-5,-6.627971222401617e-10,9.186627846165465e-4,2.8164133229208014e-5,-6.200278774014088e-10,9.19153691738718e-4,2.8217986087638425e-5,-6.380459293784765e-10,9.196025451004935e-4,2.8398984740483134E-05,-7.153326477966576e-10,9.199531003263491e-4,2.8666337663424036e-5,-8.338087002295918e-10,9.201741950295597e-4,2.8953522843619235e-5,-9.631226655409933e-10,9.202698561839225e-4,2.918802920852016e-5,-1.0697405631849333e-9,9.202770539297086e-4,2.9313951870328424e-5,-1.1274657767908662e-9,9.20251788073042e-4,2.9307694253609973e-5,-1.1248038587933661e-9,9.202503631241845e-4,2.918064509705824e-5,-1.0663142394564279e-9,9.203142811661418e-4,2.897003743896867e-5,-9.68530131895985e-10,9.204634699590332e-4,2.8724513202568727e-5,-8.534492296718607e-10,9.206973132387841e-4,2.849110787091789e-5,-7.426352211365498e-10,9.209999773637789e-4,2.8307067355278376e-5,-6.534492842105844e-10,9.213465790289916e-4,2.8196472237938423e-5,-5.974035621587512e-10,9.21708293335506e-4,2.8169942280115928e-5,-5.798940312517992e-10,9.220560080914304e-4,2.8225631349565033e-5,-6.005462214024394e-10,9.223629986190541e-4,2.8350410654034294e-5,-6.536955210792199e-10,9.226073866112044e-4,2.8520935298446312e-5,-7.28851240962084e-10,9.227750120124014e-4,2.8705005688838147e-5,-8.113094184352923e-10,9.228628541636617e-4,2.886416079327547e-5,-8.833278120249603e-10,9.228823589672353e-4,2.895853283479903e-5,-9.263428574000358e-10,9.228611534120579e-4,2.8954410829763517e-5,-9.244525203760215e-10,9.22841094274703e-4,2.8833597004887607e-5,-8.687589669821464e-10,9.228711087655056e-4,2.860178543460586e-5,-7.612984631604381e-10,9.229952903879357e-4,2.8291928119182712e-5,-6.167002132570091e-10,9.232395355675018e-4,2.7959342967609063e-5,-4.600776629160696e-10,9.236018170315074e-4,2.766851040299726e-5,-3.211006337196332e-10,9.240504121843283e-4,2.7475443382623978e-5,-2.2596816610665073e-10,9.24531262399518e-4,2.741170749626898e-5,-1.8999789985040983e-10,9.249820629694834e-4,2.747542499218661e-5,-2.1326498107148244e-10,9.25348579660942e-4,2.7631811895541113e-5,-2.805432543382063e-10,9.255984900902482e-4,2.7822723222327646e-5,-3.6544697746303546e-10,9.257290496695094e-4,2.798233184373522e-5,-4.3755816439126784e-10,9.25766534088789e-4,2.80545120609564e-5,-4.705154590635174e-10,9.257576987930197e-4,2.800685278340508e-5,-4.4865598588417815e-10,9.257561138535627e-4,2.7837106293070436e-5,-3.701910247767966e-10,9.258080615404461e-4,2.757056376533481e-5,-2.4616627976356377e-10,9.259425348434525e-4,2.7250326470559132e-5,-9.609656809923689e-11,9.261676807511085e-4,2.6924824434891593e-5,5.773311606893498e-11,9.264731188036599e-4,2.663697142690499e-5,1.9528968966108854e-10,9.268356351407438e-4,2.6417432659609167e-5,3.019901995562894e-10,9.272255509647921e-4,2.6282152592361178e-5,3.6997091936557287e-10,9.276120574189009e-4,2.6232846291373425e-5,3.9797540595297546e-10,9.279670116931762e-4,2.6258881085469936e-5,3.9055441141759986e-10,9.282675227858236e-4,2.633942937784366e-5,3.570959163618194e-10,9.284980234511821e-4,2.644547284239765e-5,3.109050504872678e-10,9.286524796636579e-4,2.654193492234242e-5,2.6822927772623276e-10,9.287369625751979e-4,2.6590780100069592e-5,2.468431766251289e-10,9.287720369209947e-4,2.6556135305642376e-5,2.636822102111064e-10,9.287934339306461e-4,2.6412028824363202e-5,3.312264037819188e-10,9.288486997992517e-4,2.6151880961107663e-5,4.530300718778846e-10,9.289878720362526e-4,2.5796515725207018e-5,6.199146734068698e-10,9.292487589067231e-4,2.5395465656098757e-5,8.092647167352129e-10,9.29641666352082e-4,2.5017209649756432e-5,9.894516360464816e-10,9.301413876496481e-4,2.472917795980915e-5,1.1290141747255939e-9,9.306922559167429e-4,2.4575229989538544e-5,1.2070780979559616e-9,9.312251819721861e-4,2.4561109000296633e-5,1.2202059312944135e-9,9.316789667520669e-4,2.465414560968802e-5,1.1827604254879246e-9,9.320169043861123e-4,2.479571175444768e-5,1.1213819953507269e-9,9.322336847376593e-4,2.4919677271373376e-5,1.0666004249723868e-9,9.323526991819391e-4,2.496981318218703e-5,1.044792681412822e-9,9.324168167771345e-4,2.4911728305382368e-5,1.072537792680831e-9,9.324763341556606e-4,2.473779692662344e-5,1.1541348440936524e-9,9.32577287240139e-4,2.446550131433796e-5,1.2821529509168165e-9,9.327524775390439e-4,2.4130741138395573e-5,1.440358563370683e-9,9.330166395630526e-4,2.3778318046824064e-5,1.608044416470438e-9,9.333661039477023e-4,2.345210977652227e-5,1.7646106799430005e-9,9.337821762564567e-4,2.3187164366326925e-5,1.8933448565731633e-9,9.342366534787011e-4,2.3004991867956138e-5,1.983756984261391e-9,9.346977645863617e-4,2.2912152275451638e-5,2.0323646948176415e-9,9.351352665974508e-4,2.2901360219547865e-5,2.0422501912195693e-9,9.355241516458479e-4,2.2953966611580642e-5,2.021915505548688e-9,9.358471024062418e-4,2.3042848220487e-5,1.983917263664366e-9,9.360962029673838e-4,2.313526295966051e-5,1.9435240421953627e-9,9.362744148421519e-4,2.319579877368126e-5,1.9173555450183216e-9,9.363970340869479e-4,2.3190008396632788e-5,1.921714213936969e-9,9.364926985739199e-4,2.3089580081948874e-5,1.970175219873316e-9,9.366025595028989e-4,2.287954350737153e-5,2.070174683549589e-9,9.367754583789063e-4,2.256662486320555e-5,2.219009962619075e-9,9.370572543760401e-4,2.2185503816041416e-5,2.40080151825208e-9,9.374749898088448e-4,2.179746684581724e-5,2.5870254829646286e-9,9.380215496738124e-4,2.1476617739059208e-5,2.7428988022427817e-9,9.386504920238448e-4,2.1285143976963856e-5,2.8389345262250392e-9,9.392879545260637e-4,2.124847926412409e-5,2.8626284858923288e-9,9.398581363504856e-4,2.1344635824425707e-5,2.8236063659948714e-9,9.403092110193681e-4,2.1513973951784947e-5,2.749245885993131e-9,9.406269138130842e-4,2.1682634723939766e-5,2.67386501863676e-9,9.408323763286779e-4,2.178648157968665e-5,2.6275885831474924e-9,9.409696504997068e-4,2.1786146578814432e-5,2.6292808737827737e-9,9.410906514838015e-4,2.1671298131321062e-5,2.6844268786052037e-9,9.41242649635597e-4,2.145702236312698e-5,2.786633456564728e-9,9.414601509848395e-4,2.1176178630965497e-5,2.9210047073092557e-9,9.417610200086401e-4,2.0870608445111807e-5,3.0681179766648086e-9,9.421460370053103e-4,2.0582809873944577e-5,3.207899651127782e-9,9.426010936837508e-4,2.0348968697412414e-5,3.3229824926066307e-9,9.431012540259686e-4,2.0193985304551373e-5,3.401195641488044e-9,9.436158120570794e-4,2.012884842892798e-5,3.436951038320817e-9,9.441134784478598e-4,2.015031500623975e-5,3.4314859276191417e-9,9.44566950904901e-4,2.0242534645964484e-5,3.3921135298370826e-9,9.449563631171996e-4,2.0379982085524475e-5,3.330805785534591e-9,9.45271517348029e-4,2.0530961708450033e-5,3.2625023737391606e-9,9.455131621575188e-4,2.0661233197895548e-5,3.203395247216593e-9,9.456936234191719e-4,2.0737740900431553e-5,3.1692023079153e-9,9.458369007988554e-4,2.073272466669384e-5,3.1732674706314038e-9,9.459779040524844e-4,2.0628653770206123e-5,3.224233945190357e-9,9.461597634391267e-4,2.0424167988906754e-5,3.3231751090821356e-9,9.46427574458297e-4,2.014003684687474e-5,3.4606600272122213e-9,9.468173676227388e-4,1.98221812789624e-5,3.615192303367057e-9,9.473413942934375e-4,1.9537012097558103e-5,3.755318583394564e-9,9.479753457182548e-4,1.9355058402098106e-5,3.847349600926752e-9,9.486571399076209e-4,1.9325058394134616e-5,3.867688552958027e-9,9.493040520760504e-4,1.9450539767815956e-5,3.814066075128484e-9,9.498430651538646e-4,1.9684623094334385e-5,3.7081770948540923e-9,9.502378728614017e-4,1.994861501821484e-5,3.5870008241428506e-9,9.504975307118342e-4,2.01632840220824e-5,3.4880374073031084e-9,9.506654032765242e-4,2.0274709481559317e-5,3.437068799563959e-9,9.507989420812344e-4,2.0264365859063468e-5,3.4433449550727618e-9,9.509516863480496e-4,2.0145143002205663e-5,3.5013586813003237e-9,9.511626032896819e-4,1.9950604861647016e-5,3.595755007819909e-9,9.514523625841899e-4,1.972359867900281e-5,3.7065483148110366e-9,9.518240846294337e-4,1.9507126203245064e-5,3.813351896094841e-9,9.522662841079077e-4,1.933798514493866e-5,3.898421280054506e-9,9.527567177104721e-4,1.9242649321887765e-5,3.94873970416592e-9,9.532666534200279e-4,1.9234898009828817e-5,3.9573083496472175e-9,9.537653046836214e-4,1.931500888982162e-5,3.923656171525834e-9,9.542241491314553e-4,1.9470419469034043e-5,3.853573929853045e-9,9.546208269205008e-4,1.967778168597357e-5,3.758113485784791e-9,9.549422337944906e-4,1.990624356532854e-5,3.6519733720235854e-9,9.551864658672643e-4,2.012153016907811e-5,3.5515235649189295e-9,9.553635348866212e-4,2.029033148993112e-5,3.4727284456947125e-9,9.554949463176509e-4,2.0384734278047446e-5,3.429079651875691e-9,9.55612166139684e-4,2.03866030610309e-5,3.4295402733541126e-9,9.557537872596488e-4,2.029183687422643e-5,3.4764900665650733e-9,9.559608378031081e-4,2.0114246891201803e-5,3.563775485379721e-9,9.562694312086343e-4,1.988802000189864e-5,3.6753836672060575e-9,9.567005353306505e-4,1.9666425812314765e-5,3.785918859393363e-9,9.572485741343938e-4,1.951354653734905e-5,3.864486310112931e-9,9.57873847869679e-4,1.9487015195238054e-5,3.8829949935352816e-9,9.58506375185627e-4,1.961495423927636e-5,3.827353654574862e-9,9.590658554599388e-4,1.9878214338844435e-5,3.706183686441474e-9,9.59491778185771e-4,2.021167822462048e-5,3.5503480856677113e-9,9.597671996149698e-4,2.0528378965229346e-5,3.4014299519401243e-9,9.599217284447296e-4,2.0753552855409916e-5,3.295380207449077e-9,9.600140258223889e-4,2.084893939258985e-5,3.2508500223577976e-9,9.601071466008167e-4,2.081721898662703e-5,3.2670417811981256e-9,9.602500853369318e-4,2.0691028420511654e-5,3.3288768573415605e-9,9.604701387776805e-4,2.051709319339869e-5,3.4144264007709955e-9,9.60773545484276e-4,2.034297332174702e-5,3.501100421052396e-9,9.611500679665309e-4,2.0208786324005668e-5,3.569552864573399e-9,9.615783591656324e-4,2.014318881895291e-5,3.6056735200335207e-9,9.620307130834803e-4,2.0161937110386437e-5,3.6014269400379457e-9,9.62477113531018e-4,2.0267731706648574e-5,3.5550823882264824e-9,9.628889049217328e-4,2.0450864920827385e-5,3.4710012484743916e-9,9.632422415170349e-4,2.069066577730867e-5,3.3589647822421636e-9,9.635212754316284e-4,2.0957906935666852e-5,3.2329849290971195e-9,9.637208099389389e-4,2.1218360815741975e-5,3.1095519476630494e-9,9.638478893925641e-4,2.143740445538196e-5,3.0054061149790872e-9,9.639218361763492e-4,2.158517204251695e-5,2.9350831633136274e-9,9.639725275225862e-4,2.164161332623286e-5,2.9085171189180765e-9,9.64036920303166e-4,2.1600821946777073e-5,2.928960887667208e-9,9.641539462469475e-4,2.1473982466179215e-5,2.991503500896854e-9,9.643579665181983e-4,2.129029021121154e-5,3.0824929931979146e-9,9.646710825382556e-4,2.1095019009386883e-5,3.180304929063653e-9,9.650951414487477e-4,2.0943493593642626e-5,3.2581268817857795e-9,9.656055505064805e-4,2.08898021785074e-5,3.2893920797482204e-9,9.661506527532753e-4,2.0970707862049013e-5,3.2556740154475738e-9,9.666609700686485e-4,2.1188936127107843e-5,3.154989219151684e-9,9.670695157136533e-4,2.1504456001118907e-5,3.0062342252277902e-9,9.673367523603838e-4,2.1842686062608042e-5,2.8453160317467475e-9,9.674669505838162e-4,2.2120216315934066e-5,2.7126670331229932e-9,9.675052672091475e-4,2.227588153984791e-5,2.6381300324599617e-9,9.67517310975436e-4,2.2290098639572074e-5,2.631571812351488e-9,9.675641549386202e-4,2.2184188610723864e-5,2.683192639935835e-9,9.676856175598294e-4,2.20050732406217e-5,2.770831293998539e-9,9.678958345343047e-4,2.1806797104405777e-5,2.8687326779884426e-9,9.681874796128061e-4,2.1636899335670483e-5,2.953998363007588e-9,9.685391645791842e-4,2.152957275673156e-5,3.00987037631748e-9,9.689223645110006e-4,2.150393434528262e-5,3.0266647100820593e-9,9.693065461435913e-4,2.1564905127593073e-5,3.0015027830697376e-9,9.696627464705727e-4,2.170489096403e-5,2.9376390040777005e-9,9.699663713453124e-4,2.190558400417185e-5,2.843664610904784e-9,9.701997585934131e-4,2.213998368625858e-5,2.732536103734538e-9,9.703546573483743e-4,2.2375052452482884e-5,2.6202568912921775e-9,9.704343769114892e-4,2.2575473791547756e-5,2.524023751178972e-9,9.70454924970594e-4,2.2708679506424222e-5,2.4597828841057676e-9,9.704442684490575e-4,2.2750680548228815e-5,2.4394191096140195e-9,9.70439123002729e-4,2.269163919856002e-5,2.4680675742140396e-9,9.704792630519241e-4,2.2539791907013454e-5,2.542185695856593e-9,9.706000419416595e-4,2.2322356320565065e-5,2.6490241837254375e-9,9.708244225247657e-4,2.208254490993235e-5,2.7679330778128663e-9,9.711561348596273e-4,2.1872563135784633e-5,2.8736116004682885e-9,9.715756674472968e-4,2.1743144202396543e-5,2.9411105609226534e-9,9.720408542324096e-4,2.1730926538918943e-5,2.952015717458691e-9,9.724936339510598e-4,2.1846219921065344e-5,2.9005828036571425e-9,9.728734724452532e-4,2.206526684943893e-5,2.797753482524233e-9,9.73135268736305e-4,2.2331915022099625e-5,2.670534930423955e-9,9.732656869873846e-4,2.2571721047228047e-5,2.5551777813643346e-9,9.732896097496811e-4,2.2715649390846857e-5,2.4855509251822116e-9,9.732616414073596e-4,2.272350320648063e-5,2.481624710067114e-9,9.732459633450723e-4,2.2595527734851322e-5,2.5437609524692543e-9,9.732948670608518e-4,2.2367393624596813e-5,2.6551037957679194e-9,9.73435775314028e-4,2.2093662920085047e-5,2.7895237218060307e-9,9.736697513088091e-4,2.18295826774539e-5,2.9203430820786453e-9,9.739779823635234e-4,2.1618463822268142e-5,3.0263986928152343e-9,9.743307630656896e-4,2.14864286442583e-5,3.094632000552376e-9,9.746951934172733e-4,2.1442559653592196e-5,3.120143478228777e-9,9.75040337470858e-4,2.1481561948537084e-5,3.105047155900916e-9,9.753402753088035e-4,2.1586872020260996e-5,3.0570669881734935e-9,9.755760407850127e-4,2.1733399542332765e-5,2.9882432258541283e-9,9.757372606998641e-4,2.1890007987213578e-5,2.913710103700545e-9,9.758238522467932e-4,2.2022308074060718e-5,2.8502981225779335e-9,9.758475695193567e-4,2.2096463822383953e-5,2.814649675643213e-9,9.75832592759985e-4,2.208441265972937e-5,2.8206647589847394e-9,9.758139779570534e-4,2.1970120824932505e-5,2.8764536267483205e-9,9.758329513980938e-4,2.1755459239150598e-5,2.9814657729990575e-9,9.759289405456378e-4,2.146343405290607e-5,3.1248755506446147e-9,9.761297562449015e-4,2.1136469459250627e-5,3.2863308207215907e-9,9.764427844228285e-4,2.0828722875066234e-5,3.4395760619971846e-9,9.768504235625822e-4,2.05936578116549e-5,3.558401665094199e-9,9.773119310828517e-4,2.047011212383905e-5,3.623414500991834e-9,9.777718670258082e-4,2.0470907088346007e-5,3.627703453703138e-9,9.781733258317801e-4,2.057752945621449e-5,3.5796494003707138e-9,9.784727031122457e-4,2.0742968740602736e-5,3.501766797457081e-9,9.786520083386822e-4,2.090280873294008e-5,3.4254174178099575e-9,9.787247391817811e-4,2.099234249163606e-5,3.3824366972435045e-9,9.787325073239532e-4,2.0964978181006943e-5,3.3960258792809006e-9,9.787325574450096e-4,2.080554329966027e-5,3.474116418782361e-9,9.78780386798012e-4,2.053316629811452e-5,3.607853339306525e-9,9.78914283306498e-4,2.0192836373745813e-5,3.7756288344559166e-9,9.79147450149718e-4,1.9840040928541138e-5,3.9505044744465266e-9,9.794691393037586e-4,1.9525344833017023e-5,4.107694790089413e-9,9.798520178516646e-4,1.928413468832371e-5,4.229601723499455e-9,9.802613780058582e-4,1.9132999458968806e-5,4.30768523320254e-9,9.806628425931363e-4,1.9071152761889917e-5,4.341903576740723e-9,9.810273134182267e-4,1.9084239326578834e-5,4.338962357581536e-9,9.81333537072951e-4,1.9148443642578993e-5,4.310353550740631e-9,9.81569296115634e-4,1.9233976343823555e-5,4.2706388260183405e-9,9.817321483998952e-4,1.9307966381521585e-5,4.235993167701627e-9,9.81830219636952e-4,1.933733918927407e-5,4.222757802688705e-9,9.818829501630556e-4,1.9292467400002797e-5,4.245632427234919e-9,9.819209964844942e-4,1.9152168044642423e-5,4.315222825428222e-9,9.8198392831691e-4,1.890983975966044e-5,4.435029642934434e-9,9.821143377150008e-4,1.857919889488635e-5,4.59861659028588e-9,9.823480141006478e-4,1.819663416702158e-5,4.788408783691395e-9,9.827021678395676e-4,1.781681352429813e-5,4.977767747591471e-9,9.8316630954625e-4,1.750019208422675e-5,5.1370239028109335e-9,9.837010460599907e-4,1.729533464359589e-5,5.242087342349132e-9,9.842471758127079e-4,1.722284340206006e-5,5.282365711457081e-9,9.847423799112572e-4,1.7267922501442923e-5,5.2645551112541595e-9,9.851390392167326e-4,1.7384650541422545e-5,5.210737350473865e-9,9.85416712413494e-4,1.7509721680699187e-5,5.151788515618179e-9,9.855858656559924e-4,1.7580163367743918e-5,5.118732221992248e-9,9.856830005405348e-4,1.754937325800318e-5,5.134813103943706e-9,9.857596419803308e-4,1.7397498039928058e-5,5.210281577132254e-9,9.858686370143312e-4,1.7134242430752782e-5,5.340872784086539e-9,9.860514093620037e-4,1.6794137806137563e-5,5.509998145968244e-9,9.863293550422345e-4,1.6426136917274978e-5,5.693759305662125e-9,9.867012674118518e-4,1.6080882897378395e-5,5.867166202605813e-9,9.871466831850105e-4,1.5799461394281728e-5,6.009706321470195e-9,9.876331363464859e-4,1.560644168178504e-5,6.108876220456722e-9,9.881244546795737e-4,1.5508013115131364e-5,6.16123561320287e-9,9.885877203164924e-4,1.5494168132305846e-5,6.1714423956312695e-9,9.889977731607897e-4,1.554301218967708e-5,6.150173958810571e-9,9.89339357154404e-4,1.5625438489487203e-5,6.11180328305642e-9,9.896077069428486e-4,1.5709163928471263e-5,6.072354236231378e-9,9.898084641090051e-4,1.5761986455145772e-5,6.047846128949401e-9,9.89957481892549e-4,1.575472773264608e-5,6.052821432389052e-9,9.900805416390554e-4,1.5664564164811243e-5,6.098708901861965e-9,9.902123484409752e-4,1.5479331179479615e-5,6.191709401312268e-9,9.903935258545628e-4,1.5202748222706768e-5,6.33020714370356e-9,9.906641160678208e-4,1.4859172652645127e-5,6.502381741232603e-9,9.910530106883304e-4,1.4494749524882107e-5,6.685572808518867e-9,9.915653761885476e-4,1.4170939529055735e-5,6.8494023081549725e-9,9.92173804543939e-4,1.3948485846748767e-5,6.963646567409606e-9,9.92820439606734e-4,1.3865800846189006e-5,7.008937764536123e-9,9.934330686488335e-4,1.3922023616282452e-5,6.98524850756154e-9,9.939493480964887e-4,1.4075052891534514e-5,6.91302227434678e-9,9.943372374337234e-4,1.4256527274009431e-5,6.825888020437902e-9,9.946022722861765e-4,1.4395571285888233e-5,6.75895614654633e-9,9.947808856143072e-4,1.4439740434982362e-5,6.738430832136037e-9,9.949257957257986e-4,1.4366093115323758e-5,6.776065172871318e-9,9.950905167510095e-4,1.418186073054903e-5,6.868729017701459e-9,9.953173989064848e-4,1.391790875148587e-5,7.001518418367263e-9,9.95630713119781e-4,1.3618756991412558e-5,7.152573416875709e-9,9.960345799292754e-4,1.3332040182830323e-5,7.29822948174995e-9,9.965148922381106e-4,1.3099245727471433e-5,7.4176277467670906e-9,9.970441941477112e-4,1.294893783688122e-5,7.496180701557594e-9,9.975882397394037e-4,1.2893264734091967e-5,7.527452492986098e-9,9.98112746713271e-4,1.2927881166143136e-5,7.513323955728468e-9,9.985890416039868e-4,1.3034634044303174e-5,7.462717843178684e-9,9.98997826875862e-4,1.3185900947308538e-5,7.389423516943071e-9,9.993309205324102e-4,1.3349405125668461e-5,7.3096360810763596e-9,9.99591375901445e-4,1.3492586365441474e-5,7.2397137309556e-9,9.99792668555754e-4,1.3586170648049899e-5,7.19436794380859e-9,9.999574846180697e-4,1.3607159236305784e-5,7.185183536470915e-9,0.0010001162353076604,1.3541721843540724e-5,7.219205045654568e-9,0.0010003049165363592,1.3388426048463978e-5,7.297338394204071e-9,0.0010005613623854227,1.3161776667357265e-5,7.4125560623676355e-9,0.0010009186855654698,1.2894930291567578e-5,7.548472365832492e-9,0.001001395431805748,1.2638913929780974e-5,7.679645009834532e-9,0.0010019842716833783,1.2454704246940159e-5,7.775465670467849e-9,0.0010026447567112351,1.2396089240531763e-5,7.80872345265965e-9,0.0010033080233894881,1.2487217081785896e-5,7.766920829338294e-9,0.0010038972478855197,1.2706548445498057e-5,7.660458605367358e-9,0.0010043565504526115,1.2989946449421098e-5,7.521224770364038e-9,0.001004672231437384,1.3254551939388285e-5,7.390681026669133e-9,0.0010048741581043606,1.3430195374539308e-5,7.304097230213788e-9,0.001005019125368549,1.3480998017901777e-5,7.27969563649755e-9,0.001005168386359312,1.340941335065461e-5,7.316596454133312e-9,0.0010053704906546521,1.3246930061867809e-5,7.3994046186029145e-9,0.0010056532197300141,1.3040000118914438e-5,7.505138119129774e-9,0.0010060229091539998,1.2837303701281687e-5,7.609490773330097e-9,0.0010064679702872599,1.2680694358525935e-5,7.691325334965295e-9,0.00100696410900686,1.2599802055308625e-5,7.73543576837147e-9,0.0010074799303969257,1.2609453088105831e-5,7.733972018905462e-9,0.0010079824262810555,1.270927137545503e-5,7.68678360040066e-9,0.001008441983199197,1.2885166585695294e-5,7.600766502657164e-9,0.0010088364680810365,1.3112382500046945e-5,7.488348827427479e-9,0.0010091540147537904,1.3359627618872047e-5,7.365366043977686e-9,0.0010093942793346546,1.3593707411098743e-5,7.248659658443538e-9,0.0010095681767792678,1.3783993741249416e-5,7.15377885761242e-9,0.0010096964280629517,1.3906222158150544e-5,7.093063507146875e-9,0.0010098073351207102,1.3945501108580383e-5,7.074156161434548e-9,0.001009933998475673,1.3898670498425644e-5,7.098839141011301e-9,0.0010101108925560731,1.3776156395851466e-5,7.162087545997906e-9,0.0010103693537762879,1.3603229200616472e-5,7.2513716092129284e-9,0.001010731370310706,1.3419833637562037e-5,7.3466457393835305e-9,0.0010112016762827962,1.3277108498864683e-5,7.422018074019115e-9,0.0010117598625822178,1.3228209751310446e-5,7.450356500270065e-9,0.0010123568768607588,1.3312347000828476e-5,7.411421404428368e-9,0.0010129222480500654,1.3535582819181508e-5,7.301724939909382e-9,0.001013385331984101,1.3858804132080293e-5,7.140781390672817e-9,0.001013703707706818,1.4205000113155494e-5,6.967497490960027e-9,0.0010138822454817784,1.448749274687313e-5,6.825833236491937e-9,0.0010139696115598694,1.464433393257325e-5,6.747309515966404e-9,0.001014034960781267,1.4658559233696529e-5,6.740744459985028e-9,0.0010141406929217946,1.4555765436898252e-5,6.793498539548968e-9,0.0010143254890754552,1.4386576477060897e-5,6.880297884166936e-9,0.0010146008251386124,1.420706593101242e-5,6.973012537470857e-9,0.0010149561275081414,1.4065065181815716e-5,7.047465907773897e-9,0.00101536675460542,1.3993570240248546e-5,7.0867457546242325e-9,0.0010158013574818438,1.4009210516690739e-5,7.0820601273590445e-9,0.0010162275161801665,1.4113340727320419e-5,7.032323770553171e-9,0.0010166159146742558,1.429419134817385e-5,6.943198192930504e-9,0.0010169435907143895,1.4529570251940101e-5,6.825790427443894e-9,0.001017196458485237,1.4790107827825064e-5,6.695003258799705e-9,0.0010173710222833715,1.5043063994411697e-5,6.5675509780237646e-9,0.0010174750556951806,1.5256600380969255e-5,6.459732390817189e-9,0.001017526963278131,1.5404159828331004e-5,6.385177403566588e-9,0.0010175537373666459,1.5468376233596634e-5,6.352868110860509e-9,0.001017587717364337,1.544402654131814e-5,6.365661713647204e-9,0.0010176624605994554,1.5339717534360233e-5,6.419435210938414e-9,0.0010178080063839555,1.5178075945731396e-5,6.502944076621323e-9,0.0010180457452669584,1.4994254410299033e-5,6.598491835633543e-9,0.001018383064035031,1.4832381264038678e-5,6.6836353960864175e-9,0.0010188083316972948,1.47391332796154e-5,6.734397667122887e-9,0.0010192878609278002,1.475363974145172e-5,6.730438678602947e-9,0.0010197678046505864,1.4894272655654495e-5,6.661915015952189e-9,0.00102018443463024,1.5145950174105276e-5,6.5361350999692345e-9,0.0010204836747962334,1.5455522234757765e-5,6.380048705078234e-9,0.0010206437243931602,1.5743334912936524e-5,6.2343512371156256e-9,0.0010206877187796243,1.5931055263172206e-5,6.139179160224897e-9,0.0010206758978202743,1.5972669549953236e-5,6.118206896081988e-9,0.0010206802785743953,1.587040614601252e-5,6.170538509004209e-9,0.0010207572457502255,1.5667653115910527e-5,6.274358304487625e-9,0.0010209325449119094,1.5426977239675342e-5,6.398084889086976e-9,0.0010212017498908892,1.520786821074164e-5,6.511580983868921e-9,0.0010215398590799887,1.5053291656116975e-5,6.5929010127443566e-9,0.001021912431934167,1.498569502034724e-5,6.630329259183798e-9,0.0010222841435015692,1.5008880327172054e-5,6.621529648464819e-9,0.0010226239917599095,1.5112068113238198e-5,6.571614831742929e-9,0.0010229080944826484,1.527401144689631e-5,6.491159177179544e-9,0.0010231212780165244,1.5466570242856973e-5,6.394419794620523e-9,0.001023258140679252,1.565799311163615e-5,6.29764201481796e-9,0.001023323723746117,1.581631986787821e-5,6.217269214912676e-9,0.0010233335657502231,1.5913194832607108e-5,6.1679458224003706e-9,0.001023312652942418,1.592801691867029e-5,6.160375068918902e-9,0.0010232928007281963,1.5851837316847298e-5,6.199331981376249e-9,0.0010233083950897286,1.5690131829775294e-5,6.282255337576482e-9,0.0010233908943278179,1.5463603240336597e-5,6.398818557630599e-9,0.0010235628682748299,1.5206365333078503e-5,6.531796793225194e-9,0.001023832615986048,1.4961295414609502e-5,6.659351030318273e-9,0.0010241904386357422,1.4772889164037382e-5,6.75860252344733e-9,0.001024607567166903,1.4678269177210256e-5,6.810218842264442e-9,0.001025038835875019,1.4697338813962965e-5,6.803536849223181e-9,0.0010254302198467145,1.4824014543455562e-5,6.7412161836967475e-9,0.001025731571596928,1.5021882123837198e-5,6.641636326261475e-9,0.0010259126052034333,1.522848767407803e-5,6.536783150416774e-9,0.0010259765363499528,1.5370953906319304e-5,6.464197088487894e-9,0.0010259633245588596,1.5390062552732196e-5,6.454503675266422e-9,0.0010259374918061134,1.5262568774086813e-5,6.519889575291671e-9,0.0010259645518792863,1.5009405517106155e-5,6.649894303135918e-9,0.0010260881771412683,1.4685110812366908e-5,6.816835676346961e-9,0.0010263193576777233,1.4355638624471758e-5,6.98711790063453e-9,0.0010266398889383535,1.4077159844329356e-5,7.1319926882616635e-9,0.001027014226018415,1.388425288732607e-5,7.2335633845970444e-9,0.0010274020414492461,1.3788133610311604e-5,7.285745723386852e-9,0.0010277670997235588,1.378095198171993e-5,7.292187151879546e-9,0.0010280818168414282,1.384189253769118e-5,7.263261955630348e-9,0.0010283288268859772,1.3942614549109414e-5,7.213352520340318e-9,0.0010285011445110084,1.405139140764495e-5,7.158731665697266e-9,0.0010286019408435882,1.413632711989153e-5,7.115870597147311e-9,0.0010286442540053864,1.4168322568558104e-5,7.09986088584424e-9,0.0010286504037499457,1.4124365397943462e-5,7.12268504128625e-9,0.0010286504791455998,1.3991292700524017e-5,7.191271681234185e-9,0.0010286791648484964,1.3769478993510954e-5,7.3056080066068604e-9,0.0010287705469715204,1.3475266008978337e-5,7.457494460578409e-9,0.001028951327632887,1.3140689311306862e-5,7.630660550566689e-9,0.0010292338285229816,1.280935564220711e-5,7.802822009644976e-9,0.0010296108825569928,1.2528353458002378e-5,7.949760843038067e-9,0.0010300546940236487,1.233759347627838e-5,8.050755726164393e-9,0.0010305208273311641,1.2259178009605778e-5,8.094075186049836e-9,0.0010309570900584187,1.2289732755782155e-5,8.08103476461809e-9,0.0010313157392175553,1.239822992254162e-5,8.027273387668908e-9,0.0010315663465513536,1.2530919495367793e-5,7.960336714121893e-9,0.0010317058209335492,1.2623500762804774e-5,7.913435014428099e-9,0.001031761762409121,1.2618455216019864e-5,7.916445804350526e-9,0.0010317863213620134,1.2482715648861428e-5,7.986708154305847e-9,0.0010318409415092163,1.2218875567850196e-5,8.123174915224233e-9,0.0010319770490094284,1.1864341225077265e-5,8.306813126168584e-9,0.00103222073763433,1.1478137897328902e-5,8.507363432120657e-9,0.001032567744181653,1.1121486498340977e-5,8.693293502779717e-9,0.001032989301697024,1.084087419509298e-5,8.840491614529463e-9,0.0010334441429188832,1.065944919603051e-5,8.936740074754993e-9,0.0010338905402688494,1.0577173083741774e-5,8.981736505163395e-9,0.0010342945423151325,1.0576383955421915e-5,8.98433665789792e-9,0.00103463375858786,1.0628837350001691e-5,8.958991422832772e-9,0.0010348979793146607,1.0701777354861157e-5,8.922621233770985e-9,0.0010350882727302663,1.0762337371071754e-5,8.89230185881902e-9,0.0010352157191526022,1.0780632780980312e-5,8.883608858628518e-9,0.0010353002554859072,1.0732303407048932e-5,8.90925860516677e-9,0.0010353694431257166,1.0601227344865006e-5,8.977690201699487e-9,0.0010354564618759658,1.0382697470573208e-5,9.09143350297743e-9,0.0010355964502504992,1.008658752883728e-5,9.245490273873833e-9,0.00103582062126145,9.739174784541215e-6,9.426394426544935e-9,0.001036148531357024,9.381685552026843e-6,9.612933762557046e-9,0.001036580411402926,9.063860868442835e-6,9.779418101910907e-9,0.0010370928511063498,8.832500434599207e-6,9.901545674027221e-9,0.0010376410685493903,8.717740287966906e-6,9.963490318062588e-9,0.001038168776362179,8.722090107823838e-6,9.963639543713632e-9,0.001038623174432724,8.817117820241822e-6,9.916433090139891e-9,0.0010389699638132367,8.949806345046257e-6,9.849185263172341e-9,0.0010392031310252545,9.056681538401306e-6,9.794814136056429e-9,0.0010393464417650642,9.081041880969784e-6,9.7828832107339e-9,0.0010394465445357972,8.98803121924295e-6,9.831716602058708e-9,0.0010395599652596504,8.773379181090786e-6,9.943793307826468e-9,0.0010397377850124105,8.463527638538071e-6,1.010562028455275e-8,0.0010400124740567555,8.107264085356009e-6,1.0292016552047566e-8,0.0010403907983126954,7.761647465210934e-6,1.047336668482392e-8,0.0010408546068110553,7.476975351250501e-6,1.0623406725890964e-8,0.0010413683448417354,7.285608742141655e-6,1.0725068130866081e-8,0.0010418898199738098,7.197436696745734e-6,1.077292879202111e-8,0.0010423802623030689,7.201792582882333e-6,1.0772323696065717e-8,0.0010428110604212102,7.273401012350935e-6,1.0736320365516424e-8,0.0010431666141344895,7.3794054706384364e-6,1.0682066369385867e-8,0.0010434442537033133,7.485424438284342e-6,1.062758834085327e-8,0.001043652630466233,7.559908129853109e-6,1.0589456096467488e-8,0.0010438096899647942,7.577040457584126e-6,1.0581220954317427e-8,0.0010439407598399314,7.518874452397437e-6,1.0612288493742078e-8,0.0010440766580099585,7.3774053804267025e-6,1.0686856280073861e-8,0.0010442511917944904,7.1569232978676465e-6,1.0802719477653824e-8,0.0010444971593526165,6.876269078840813e-6,1.0950114569202205e-8,0.001044840195797599,6.569674575005575e-6,1.1111270660756568e-8,0.0010452907905748228,6.284047442282688e-6,1.1261780001466925e-8,0.0010458366657182785,6.070632446913745e-6,1.1374885918198315e-8,0.0010464397212440041,5.970991705073476e-6,1.1428761032437083e-8,0.0010470419129418023,6.0012650636924906e-6,1.1414752486565529e-8,0.0010475808873286244,6.142246342171787e-6,1.134266195270011e-8,0.0010480101442759484,6.342031857499272e-6,1.1239472124113928e-8,0.0010483145665516262,6.531775462877667e-6,1.1141164514740623e-8,0.0010485141839921832,6.647674109549178e-6,1.1081204358546142e-8,0.0010486555927916323,6.649554437643226e-6,1.1080769771562399e-8,0.0010487962274780228,6.52970014858732e-6,1.1144090607712959e-8,0.001048988161110087,6.311113549640392e-6,1.1259318747852037e-8,0.001049266135585487,6.038217412853158e-6,1.140334069973273e-8,0.0010496417708631659,5.764112342343603e-6,1.1548386965958874e-8,0.001050103884713581,5.538005408647266e-6,1.1668579695155248e-8,0.0010506236688532541,5.395419538643018e-6,1.1745084312143063e-8,0.001051162793625547,5.352737678222033e-6,1.176905039772956e-8,0.0010516822059403249,5.4065291012566944e-6,1.1742069546748452e-8,0.0010521495626468031,5.5369304279269275e-6,1.1674479004989727e-8,0.0010525439851890206,5.7134564555245825e-6,1.1582329111142928e-8,0.0010528578438257308,5.9014015084172195e-6,1.1483979856274418e-8,0.0010530961263485919,6.067417747217445e-6,1.139710095373138e-8,0.0010532743691075914,6.1835874192326255e-6,1.133647354846759e-8,0.0010534160834845703,6.230045791333779e-6,1.1312589735762775e-8,0.001053550198721015,6.1966823130205854e-6,1.1330774854534354e-8,0.0010537085154161126,6.0844906794547615e-6,1.1390513063025623e-8,0.0010539227224054864,5.906847205676181e-6,1.1484802633572627e-8,0.00105422025687308,5.690435278638442e-6,1.1599668036115498e-8,0.0010546184278993171,5.4746708261865515e-6,1.1714426246353476e-8,0.001055117156275193,5.307635025766357e-6,1.1803769941651274e-8,0.001055692545616445,5.236529243510756e-6,1.184274644058134e-8,0.001056295705931545,5.292689648675187e-6,1.1814655608677331e-8,0.0010568617072468647,5.4757403210461624e-6,1.1719477956429268e-8,0.0010573293783666506,5.74604326804144e-6,1.157796966652239e-8,0.0010576645165347547,6.033560344798371e-6,1.1427058221344922e-8,0.0010578737870635731,6.261973517443829e-6,1.1307094518131505e-8,0.0010580009637449824,6.3760497725166996e-6,1.1247346419441141e-8,0.001058108517330219,6.358165356812837e-6,1.1257242872632262e-8,0.0010582556001528874,6.228289144348805e-6,1.1326384333356857e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_13.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_13.json new file mode 100644 index 000000000..d7e3be98a --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_13.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":13000,"numberOfSamples":1000,"samples":[0.0010584823083198346,6.031818825503171e-6,1.14309469118811e-8,0.0010588036033781425,5.823520864538709e-6,1.1542103150393909e-8,0.0010592110744742987,5.6537248748726675e-6,1.1633248752700286e-8,0.0010596790894540058,5.559275280564943e-6,1.1684765345343194e-8,0.0010601724727019367,5.559236240846307e-6,1.1686339583847125e-8,0.0010606540091394276,5.654379293057021e-6,1.163732802349451e-8,0.0010610908819856466,5.829497270171977e-6,1.1545624012790231e-8,0.0010614594503400023,6.057715047147503e-6,1.1425423187205381e-8,0.001061747989835144,6.305862037083749e-6,1.1294367431781857e-8,0.0010619573719630783,6.539955951254238e-6,1.1170587469196216e-8,0.0010620999645025674,6.73003410085884e-6,1.107008326599654e-8,0.0010621972572704668,6.85379996171742e-6,1.1004756707165859e-8,0.0010622768540195135,6.898913123430779e-6,1.098119849532928e-8,0.0010623693266318172,6.864185869807982e-6,1.1000078885400938e-8,0.0010625050436689565,6.760079817880366e-6,1.1055907410923635e-8,0.001062710756522555,6.608668374463369e-6,1.1137052470541557e-8,0.0010630055440594903,6.442842455479279e-6,1.122613014857253e-8,0.0010633958133875673,6.303928192637586e-6,1.1301216346173524e-8,0.0010638698300656857,6.236227673998108e-6,1.1338700200742188e-8,0.0010643938207032379,6.277096687541316e-6,1.1318549017049607e-8,0.0010649135018336272,6.443029009602109e-6,1.1231761017071778e-8,0.0010653652534506645,6.716334917457601e-6,1.1087554932954997e-8,0.0010656971998236583,7.041447402084115e-6,1.0915428186536279e-8,0.0010658919742331224,7.338860744797124e-6,1.0757744815379704e-8,0.0010659770288683225,7.534292063466726e-6,1.0654138240953239e-8,0.001066013886508743,7.587831708115414e-6,1.0625935223163422e-8,0.0010660723258305996,7.506181686783977e-6,1.0669662265910576e-8,0.0010662052115061964,7.3335686443663195e-6,1.0761922260944352e-8,0.0010664358470525873,7.130863915281745e-6,1.0870481691937031e-8,0.0010667588393153595,6.955633515934309e-6,1.0964801902708683e-8,0.0010671485918925085,6.8498410434954626e-6,1.1022511941646397e-8,0.0010675694409390784,6.835426550329633e-6,1.1031759374762615e-8,0.0010679841615469535,6.915158645441867e-6,1.0990824083116765e-8,0.0010683599657830244,7.076052103195604e-6,1.0906394119921115e-8,0.0010686723933572796,7.293685466136946e-6,1.0791343615514796e-8,0.00106890765095213,7.536822311352906e-6,1.0662299642942404e-8,0.0010690635977016276,7.77211139688823e-6,1.0537115853861746e-8,0.001069149428980129,7.968577301214409e-6,1.0432429890255657e-8,0.0010691841550370862,8.101601929648258e-6,1.036149374624633e-8,0.0010691940071483454,8.156061538266819e-6,1.0332478423133815e-8,0.001069209055658057,8.128266563717782e-6,1.03474435063982e-8,0.0010692594713290538,8.026593480405271e-6,1.0402013164716527e-8,0.0010693717459872535,7.870945267100574e-6,1.0485664177770738e-8,0.0010695649713014753,7.691125951702836e-6,1.05825672334285e-8,0.0010698471837835711,7.524020444771572e-6,1.0673046459330192e-8,0.0010702118794917663,7.409199319244088e-6,1.073588364535248e-8,0.0010706353190277158,7.382260325524803e-6,1.0751866255570777e-8,0.0010710762838212979,7.465490347225327e-6,1.0708824642405977e-8,0.0010714809682874885,7.6570210693528492E-06,1.0607528738465052e-8,0.0010717954666795326,7.92266264450533e-6,1.0466162353522634e-8,0.0010719849482146093,8.197549025520211e-6,1.031948512559187e-8,0.0010720518335533688,8.403355641842077e-6,1.0209555077841326e-8,0.0010720405373210041,8.477632103826806e-6,1.0169920153450947e-8,0.001072021738228369,8.400092320472587e-6,1.021150931330851e-8,0.0010720635198379748,8.199374023477202e-6,1.0319075409549964e-8,0.0010722065788787624,7.937147885028722e-6,1.0459750886515433e-8,0.00107245583521534,7.681893768449438e-6,1.0597036740148054e-8,0.0010727875503866039,7.487659268153709e-6,1.0702071381753594e-8,0.0010731630002383215,7.384581405590331e-6,1.075864496894142e-8,0.0010735409195010803,7.379180450137632e-6,1.0763066178824929e-8,0.001073885642552888,7.459556157906894e-6,1.0721462765445143e-8,0.0010741711464074789,7.60167164073378e-6,1.064650717664984e-8,0.0010743824677307964,7.774854624539591e-6,1.05545292946971e-8,0.0010745158753886549,7.946253107214568e-6,1.0463140800736486e-8,0.0010745783975093434,8.084663970024577e-6,1.0389154063601514e-8,0.0010745867148931046,8.164015707520659e-6,1.0346669113505363e-8,0.0010745652935797434,8.166515928713906e-6,1.0345347414447921e-8,0.0010745436064007652,8.085247843115634e-6,1.0389003625916266e-8,0.001074552414002862,7.925732239563838e-6,1.04747713355022e-8,0.0010746194263179607,7.705947602888145e-6,1.0593098065321354e-8,0.0010747649179418883,7.45457851834404e-6,1.0728675241616273e-8,0.0010749978735612412,7.207509835919612e-6,1.0862287758949862e-8,0.0010753131883688583,7.0027414856204215e-6,1.0973502950806292e-8,0.0010756904320888402,6.874033979996817e-6,1.1044059873554255e-8,0.0010760947834755237,6.8436529769841505e-6,1.1061787085804026e-8,0.001076481049891446,6.914886396186059e-6,1.1024693263841812e-8,0.0010768018290682909,7.066051634150347e-6,1.0944283327208556e-8,0.0010770200321076698,7.249261634913781e-6,1.0846289489249666e-8,0.001077123420982185,7.39804993243476e-6,1.076656197635394e-8,0.0010771348797026668,7.44585714263904e-6,1.0741042838621376e-8,0.0010771101367558554,7.350779981649652e-6,1.0792371226593277e-8,0.0010771194563272597,7.114340819791003e-6,1.091978472227473e-8,0.0010772207158111727,6.781925749825741e-6,1.1098942285178267e-8,0.001077438751988009,6.423598569950669e-6,1.1292263291924475e-8,0.0010777614606054466,6.107174429654953e-6,1.1463350840217734e-8,0.001078150988925822,5.878278442603043e-6,1.1587643347827043e-8,0.0010785602961386523,5.753858224937523e-6,1.1655892460490189e-8,0.0010789465240847547,5.72623912615062e-6,1.167203738632892e-8,0.0010792781883616845,5.7715171050260465e-6,1.1648769383961856e-8,0.0010795372547668179,5.857715055435001e-6,1.1603202812664468e-8,0.001079718408317149,5.950842140755552e-6,1.1553633958985417e-8,0.0010798274054571314,6.018931123532262e-6,1.1517348515355086e-8,0.0010798793764046966,6.034916081994106e-6,1.150903056702829e-8,0.0010798970957694128,5.979082561969348e-6,1.1539400992860876e-8,0.0010799088782759599,5.841386795654391e-6,1.1613943229511664e-8,0.001079945671266815,5.6234999239785664e-6,1.1731800417280663e-8,0.0010800370563297977,5.339960624404898e-6,1.1885168170973472e-8,0.0010802063626677298,5.017558699714286e-6,1.2059638070394361e-8,0.001080465709873069,4.692281975823613e-6,1.2235836282107038e-8,0.0010808121845919524,4.403722523375394e-6,1.239241282362964e-8,0.0010812263927673289,4.1875776377249006e-6,1.2510056790341688e-8,0.0010816742755761358,4.067606126441703e-6,1.2575830541311822e-8,0.0010821124162932766,4.048764490048608e-6,1.2586910279254428e-8,0.001082496394029135,4.1132067224480435e-6,1.2552812557360103e-8,0.0010827911400719823,4.220728194789922e-6,1.2495218049522599e-8,0.0010829814407256138,4.315035608807498e-6,1.2444602628550136e-8,0.0010830795939978,4.336331558319785e-6,1.2433397469308228e-8,0.0010831263014689158,4.238515418925506e-6,1.2486625405764085e-8,0.0010831815716910997,4.005888907583e-6,1.2612831618416838e-8,0.0010833062871192334,3.6615290203470267e-6,1.2799568273597161e-8,0.0010835411795810717,3.261162454656364e-6,1.3016729071965934e-8,0.0010838933778462134,2.8737930394674124e-6,1.3227010267237029e-8,0.001084337034999438,2.5585169726812227e-6,1.3398407369065678e-8,0.0010848260137734957,2.3486087687672093e-6,1.351281176227918e-8,0.0010853104715353803,2.2479370425633493e-6,1.3567994079646327e-8,0.0010857496852788604,2.2371567972056594e-6,1.3574322546551323e-8,0.0010861181451779231,2.2837281191620208e-6,1.3549388239562281e-8,0.0010864060912470594,2.3509882779473265e-6,1.351309848109019e-8,0.001086617167375567,2.4043382300803017e-6,1.348429676688557e-8,0.0010867653789912383,2.414780175748046e-6,1.3478800918996513e-8,0.0010868723951977914,2.36090336349784e-6,1.3508287044674754e-8,0.0010869652859729975,2.230320299619587e-6,1.357949036950374e-8,0.0010870742527047388,2.0210940838380106e-6,1.3693435401754393e-8,0.0010872297036982135,1.7431263470573831e-6,1.3844706627164613e-8,0.0010874581583647045,1.4188304041524766e-6,1.4021110351396713e-8,0.0010877770309646244,1.0819285734700634e-6,1.420434005833336e-8,0.0010881892473587201,7.732394508393998e-7,1.4372250040797893e-8,0.0010886795450963712,5.330813350595426e-7,1.4502949312721697e-8,0.001089214649730255,3.9140243490344096e-7,1.458013766244398e-8,0.0010897487258969283,3.584072521389756e-7,1.459820749252219e-8,0.0010902335819651038,4.191729634013468e-7,1.4565214418600275e-8,0.0010906310187498445,5.348153076480196e-7,1.4502295396028616e-8,0.0010909236281021046,6.506177348026824e-7,1.443926695100913e-8,0.001091120685014961,7.092800663955221e-7,1.4407391615029013e-8,0.001091257136747916,6.658869235087142e-7,1.4431183604022623e-8,0.0010913854479859381,5.005821622148568e-7,1.4521478794650966e-8,0.0010915618860652314,2.251478759511052e-7,1.467185398741576e-8,0.0010918307189155313,-1.1924299742407577e-7,1.4859864732950039e-8,0.0010922113493534546,-4.734372432057817e-7,1.5053255310459487e-8,0.0010926932935980337,-7.775556028587294e-7,1.5219334684945516e-8,0.0010932410472572044,-9.877102401363634e-7,1.533407805988485e-8,0.0010938063797259453,-1.0859165470122615e-6,1.5387566050399254e-8,0.001094342455259391,-1.080589230442882e-6,1.5384321095468852e-8,0.00109481445675083,-9.995980021090122e-7,1.5339569592932147e-8,0.0010952043212414967,-8.803420527904827e-7,1.5273828324478645e-8,0.0010955103354372215,-7.608506842509845e-7,1.520800473466209e-8,0.0010957438947718288,-6.738297010954895e-7,1.516008890171015e-8,0.0010959255739260278,-6.435882030741187e-7,1.514342886133524e-8,0.0010960816844447629,-6.848008439732961e-7,1.516603611113632e-8,0.001096241543978873,-8.02004725041787e-7,1.5230321629549556e-8,0.0010964350536024304,-9.891361497491146e-7,1.5332873831182345e-8,0.0010966898752015986,-1.2290044827439803e-6,1.5464206803068726e-8,0.0010970275583669783,-1.4932930260580311e-6,1.5608784981685757e-8,0.0010974584822657629,-1.7443109645131954e-6,1.574598051452959e-8,0.0010979764965260918,-1.9399561880694465e-6,1.5852762521604583e-8,0.0010985554895813923,-2.0426623918831098e-6,1.590856103716042e-8,0.0010991510076969397,-2.031063016383569e-6,1.590164521848076e-8,0.0010997091337757634,-1.9102678540224635e-6,1.5834788151340182e-8,0.0011001814643931509,-1.7151290714917107e-6,1.5727115299126148e-8,0.0011005408546707206,-1.5028952094650604e-6,1.5610105905041306e-8,0.001100790948640354,-1.3368393448549428e-6,1.5518581808694086e-8,0.001100965184316589,-1.2672952194125447e-6,1.5480237846173764e-8,0.0011011161176956588,-1.3175209969869768e-6,1.5507843040213407e-8,0.0011012998469212088,-1.4787697248972343e-6,1.5596542078759433e-8,0.001101561065014156,-1.7146998910046917e-6,1.5726308035865734e-8,0.0011019226990827457,-1.9724071175410574e-6,1.586801490545639e-8,0.001102382007116548,-2.196363356079692e-6,1.5991084228148263e-8,0.0011029132667145561,-2.3416096021800094e-6,1.6070722292919825e-8,0.0011034757514399483,-2.38310916619068e-6,1.6093077245681256e-8,0.0011040244786115357,-2.31927776315323e-6,1.6057225467888683e-8,0.0011045205794044041,-2.1694385072843676e-6,1.597381802522786e-8,0.0011049385690624493,-1.966838354498544e-6,1.5861252045493124e-8,0.0011052692443645087,-1.750001842086337e-6,1.5740883086523665e-8,0.0011055186380034719,-1.5550353774155559e-6,1.5632734001830676e-8,0.0011057045369247066,-1.4103695910270938e-6,1.5552549745965977e-8,0.0011058522277989002,-1.3341378137981495e-6,1.551032955262108e-8,0.0011059906217503908,-1.3335025490994153e-6,1.5509962936515426e-8,0.001106149150194748,-1.404950501845874e-6,1.5549420079728942e-8,0.0011063551807779252,-1.5348143523852197e-6,1.5621073311654e-8,0.0011066313631327655,-1.6998081049754247e-6,1.5712016164878937e-8,0.0011069922927926747,-1.8679853774396568e-6,1.580459705808824e-8,0.0011074402507398938,-2.0011637405826746e-6,1.5877740607269027e-8,0.0011079607077455421,-2.060248709035317e-6,1.5909858156164228e-8,0.001108519738968454,-2.0144254988523965e-6,1.588390462537339e-8,0.0011090667951459137,-1.8531436940924132e-6,1.5794016241904865e-8,0.0011095457522609323,-1.5962893152773853E-06,1.5651187561937485e-8,0.0011099131036531966,-1.295286315591519e-6,1.548393416264128e-8,0.0011101558729649911,-1.0201697065466408e-6,1.5331133204623056e-8,0.0011102988958696094,-8.358929741676526e-7,1.5228836499800212e-8,0.001110396160826366,-7.792957175517323e-7,1.519745019538023e-8,0.00111051078357651,-8.4832733122868e-7,1.5235767590110828e-8,0.0011106942753399312,-1.0069042485667557e-6,1.5323711725274e-8,0.00111097368196469,-1.1999692577389667e-6,1.5430718007157876e-8,0.0011113487938456635,-1.370515245006706e-6,1.5525164027079777e-8,0.0011117968919402519,-1.472886234678616e-6,1.5581716379428368e-8,0.00111228126468647,-1.4803580618799743e-6,1.5585522069862342e-8,0.0011127605283525728,-1.38735025143936e-6,1.553345118973782e-8,0.0011131969606502966,-1.207467615593322e-6,1.5433042494833323e-8,0.0011135628384484684,-9.68609089136904e-7,1.5299812786382335e-8,0.0011138441430138264,-7.063766770539463e-7,1.515359787677788e-8,0.0011140413969519087,-4.5716749529745555e-7,1.5014692696968984e-8,0.0011141679771116317,-2.5224292949749117e-7,1.4900524553462284e-8,0.0011142467106409985,-1.1360505719006956e-7,1.4823340179212186e-8,0.0011143057375622243,-5.1947099677121166e-8,1.478906414284595e-8,0.0011143745275428235,-6.641623982905153e-8,1.479718055412551e-8,0.0011144805411490116,-1.4554045014367347e-7,1.4841267716474989e-8,0.0011146465039405943,-2.6868186327244643e-7,1.4909818722617364e-8,0.0011148879464543517,-4.077487512787168e-7,1.4987193531681402e-8,0.0011152106069133069,-5.293572049765862e-7,1.5054810350341645e-8,0.001115607505557431,-5.981354506604627e-7,1.5092967998964315e-8,0.0011160562278251995,-5.82238372920153e-7,1.508390498897239e-8,0.0011165181858738054,-4.617774614729789e-7,1.5016501585294573e-8,0.0011169427756374372,-2.3916486858598275e-7,1.489207589936706e-8,0.001117279123695704,5.281074662320559e-8,1.4728931150574154e-8,0.0011174945353303808,3.5238253651923323e-7,1.4561593636104278e-8,0.0011175918891919794,5.85237341776037e-7,1.4431602483043102e-8,0.001117613973298778,6.922600246158575e-7,1.4371955080154304e-8,0.0011176285284481737,6.540692000960255e-7,1.4393394122909386e-8,0.0011177012518909313,4.973859584028976e-7,1.4480914676359373e-8,0.0011178724639969737,2.807665191832271e-7,1.4601797634793543e-8,0.0011181484319527568,7.064887876481905e-8,1.4718987525011862e-8,0.0011185068668504749,-7.890745011779789e-8,1.4802357637019236e-8,0.0011189091709123736,-1.3646153918415363e-7,1.4834384089423755e-8,0.0011193126105248509,-9.43931094899234e-8,1.48108065335213e-8,0.0011196792366973227,3.5164048593491474e-8,1.473837430297344e-8,0.0011199811858316087,2.26369559642981e-7,1.4631494218090753e-8,0.0011202031869314724,4.4589422366034254e-7,1.4508776239873582e-8,0.00112034310520379,6.586854121746841e-7,1.4389816343386903e-8,0.0011204109385747102,8.330417415667043e-7,1.4292352649188305e-8,0.0011204265234972595,9.446967691452359e-7,1.4229970169917528e-8,0.0011204162785695454,9.796302768584618e-7,1.4210520366177409e-8,0.0011204093914756884,9.354136766252925e-7,1.423536740670385e-8,0.0011204339509095645,8.210357617533893e-7,1.4299488573279187e-8,0.0011205135047749502,6.554492436680685e-7,1.4392288214421408e-8,0.0011206642577800594,4.652528434009131e-7,1.4498888367884619e-8,0.001120892869175372,2.817729973787914e-7,1.4601751044198787e-8,0.0011211947550755549,1.3757495990860276e-7,1.4682621069015419e-8,0.0011215528883894927,6.21872975976025e-8,1.4724918735586556e-8,0.001121937523487324,7.657802320904832e-8,1.471684663627745e-8,0.0011223081121608392,1.862337483495964e-7,1.4655293964103262e-8,0.0011226193191337492,3.7406125879550593e-7,1.4549846746055096e-8,0.001122832579558784,5.965725646991329e-7,1.4424943518651694e-8,0.001122931860338344,7.888398809784377e-7,1.4317073347269448e-8,0.0011229368584202211,8.823540066354003e-7,1.42646972284513e-8,0.0011229030163360236,8.31978931560535e-7,1.4293081372632381e-8,0.0011229027871189272,6.377983868581165e-7,1.4402074372500076e-8,0.0011229961745440554,3.466313844851877e-7,1.4565346045514696e-8,0.0011232080312209413,3.131213495657076e-8,1.4742059226319447e-8,0.0011235241667242122,-2.384517151272013e-7,1.4893183747109764e-8,0.0011239038866639104,-4.1705069829968125e-7,1.4993199888376666e-8,0.0011242978045176068,-4.891837396590307e-7,1.5033552385496457e-8,0.0011246618087164136,-4.650533911979487e-7,1.501996092483476e-8,0.0011249644073865193,-3.712956185955165e-7,1.4967350495564534e-8,0.0011251887847238463,-2.4226609099827207e-7,1.489497804254355e-8,0.0011253319323496448,-1.1342860023329529e-7,1.4822732804632492e-8,0.001125402634959825,-1.6748392335343594e-8,1.476855463336166e-8,0.0011254190551908455,2.2583818610430424e-8,1.4746592428163293e-8,0.001125406006350285,-1.147849811646348e-8,1.4765866874794957e-8,0.0011253918703925659,-1.2428284425453638e-7,1.4829389975213278e-8,0.001125405153669,-3.098575433825358e-7,1.4933811618400424e-8,0.001125470825285484,-5.515007109536961e-7,1.5069747750744837e-8,0.0011256068473051415,-8.237402109522106e-7,1.522287862447306e-8,0.0011258213742378021,-1.0955210324600928e-6,1.5375735433027346e-8,0.001126110953640497,-1.33434576076099e-6,1.551002392607651e-8,0.0011264599688784321,-1.5110754595557068e-6,1.5609325258051984e-8,0.0011268415324472347,-1.6050367155868619e-6,1.5661979950811296e-8,0.0011272200850014037,-1.6091063327225863e-6,1.5663968705012574e-8,0.0011275562307977297,-1.5342861631028003e-6,1.5621508044081852e-8,0.0011278144681279808,-1.4124327608801717e-6,1.5552595027563792e-8,0.001127973697196369,-1.2945868803236955e-6,1.548604925928786e-8,0.0011280382587597413,-1.2418556395565706e-6,1.5456333428887506e-8,0.0011280441049613882,-1.3076713541081708e-6,1.5493515389976944e-8,0.0011280530903307478,-1.5159246352740396e-6,1.5610950547436537e-8,0.001128132778175655,-1.8463668689740967e-6,1.579711977668449e-8,0.0011283296134604944,-2.238778351585612e-6,1.601804452302929e-8,0.0011286507402838491,-2.6162893563312223e-6,1.6230430827785135e-8,0.001129064849116733,-2.914505922934018e-6,1.639803217786027e-8,0.0011295188883964043,-3.1003495271215335e-6,1.650223555792818e-8,0.0011299585096496848,-3.1743954370268017e-6,1.6543390761059785e-8,0.0011303422387863712,-3.1616614223987634e-6,1.6535639899295777e-8,0.0011306468543703053,-3.099226465392222e-6,1.649993957729718e-8,0.0011308665355909385,-3.026115926253836e-6,1.6458343678529448e-8,0.0011310092877528594,-2.97696670198988e-6,1.643041637428008e-8,0.0011310930107738839,-2.9787150579821667e-6,1.643135725219101e-8,0.0011311420979546502,-3.048971357365785e-6,1.6471083224590702e-8,0.0011311844863316548,-3.1951543584245246e-6,1.655374177555831e-8,0.0011312487969415517,-3.4140426711787296e-6,1.667746050617603e-8,0.001131361247585663,-3.6918347099299193e-6,1.683438659836271e-8,0.0011315422288500833,-4.005155407124281e-6,1.701126248263884e-8,0.0011318028686057846,-4.323516118603748e-6,1.719082210152812e-8,0.001132142305142021,-4.613386976593811e-6,1.7354095519871995e-8,0.001132546459390808,-4.843583003603475e-6,1.7483454475893005e-8,0.0011329889427781129,-4.991272754047409e-6,1.7566013688537354e-8,0.0011334344413259357,-5.047541910774497e-6,1.7596784618951905e-8,0.001133844458183822,-5.021292733474158e-6,1.7580889129752105e-8,0.0011341848700335095,-4.94040959890774e-6,1.753421475919338e-8,0.0011344344119443499,-4.8491916969188745e-6,1.748193700907113e-8,0.0011345925814498685,-4.801059066100088e-6,1.745434825021528e-8,0.001134684387300292,-4.846227082445247e-6,1.7479841111046328e-8,0.0011347584805635495,-5.0160858158737145e-6,1.7576061597522453e-8,0.0011348759327808268,-5.309263400214288e-6,1.7742064468409605e-8,0.0011350908173706725,-5.6869034120381485e-6,1.7955706489080888e-8,0.0011354299176144932,-6.082800701089851e-6,1.8179418623203863e-8,0.0011358822190113598,-6.426124898603051e-6,1.8373054177066374e-8,0.0011364043809356825,-6.665757949870108e-6,1.8507648393622844e-8,0.0011369384853650538,-6.7840861137196476e-6,1.8573247563186413e-8,0.0011374316455507916,-6.795823634017219e-6,1.8578280026159067e-8,0.001137848673807987,-6.736604005607285e-6,1.85430965640259e-8,0.001138175543947817,-6.649378408098194e-6,1.8492219634553844e-8,0.0011384164599360274,-6.574091986083006e-6,1.8448433493018965e-8,0.0011385884812031334,-6.5420367269707E-06,1.8429543600599157e-8,0.0011387163515221173,-6.573764105960214e-6,1.844718403120001e-8,0.0011388284833158092,-6.678850501571657e-6,1.8506697577031452e-8,0.0011389539421612653,-6.856289459219892e-6,1.8607380918886297e-8,0.0011391198567281403,-7.094990988364993e-6,1.8742791852569966e-8,0.0011393486909906535,-7.374470404067843e-6,1.8901162544082247e-8,0.001139655105173082,-7.666288253826918e-6,1.9066235687773136e-8,0.0011400426757558419,-7.936983461486883e-6,1.921894205864218e-8,0.0011405013577337874,-8.152936837249098e-6,1.9340168556050783e-8,0.0011410069453844265,-8.286904307477137e-6,1.941447163411268e-8,0.001141523687978373,-8.325052062458535e-6,1.943407977800105e-8,0.0011420104921204704,-8.272482966705914e-6,1.940204081740356e-8,0.0011424298885641681,-8.155032071176124e-6,1.9333238629293002e-8,0.0011427577026877223,-8.01590505046847e-6,1.9252449665323856e-8,0.0011429907616206283,-7.907174957399983e-6,1.9189445751876634e-8,0.0011431501649271265,-7.877608061907913e-6,1.917200273740673e-8,0.0011432784491987938,-7.9594886944176e-6,1.9218374972079383e-8,0.0011434302434748492,-8.157983701078854e-6,1.9331275036921774e-8,0.0011436578055424847,-8.446881947193677e-6,1.949552477305666e-8,0.00114399515501405,-8.773659928063834e-6,1.9681008281834052e-8,0.001144446522983574,-9.073972603149053e-6,1.9850948567032337e-8,0.0011449845240813815,-9.291172843971188e-6,1.997301868872744e-8,0.0011455595354737658,-9.393027652032006e-6,2.0028869806567677e-8,0.0011461161009334714,-9.378716130867975e-6,2.001814630971795e-8,0.0011466089029168024,-9.274461172054308e-6,1.9956008806800238e-8,0.0011470122988015584,-9.121833292035425e-6,1.9866427698242803e-8,0.00114732188508422,-8.96496066277439e-6,1.977481168122164e-8,0.001147550426654242,-8.84115873090527e-6,1.970259092640148e-8,0.0011477216937115396,-8.776250220560751e-6,1.966451506584681e-8,0.0011478647584178116,-8.783503033521037e-6,1.966805944170667e-8,0.0011480097210303582,-8.864451422748417e-6,1.971393023358895e-8,0.0011481847339456337,-9.010282799110149e-6,1.9796897029095008e-8,0.0011484137013095736,-9.203162855983934e-6,1.9906583070119853e-8,0.0011487139621447924,-9.417536219790016e-6,2.0028232082651543e-8,0.0011490935669522466,-9.622008265590576e-6,2.0143797216780358e-8,0.0011495483701545808,-9.782674812070154e-6,2.0233850339937727e-8,0.0011500598968202766,-9.868530899457088e-6,2.0280675342107168e-8,0.001150595576793416,-9.858788234789456e-6,2.027245503525575e-8,0.0011511130407411538,-9.750551556433113e-6,2.0207673116114426e-8,0.0011515690958261268,-9.563815939238883e-6,2.0097983923800655e-8,0.0011519316806153635,-9.340392670730376e-6,1.9967584121287674e-8,0.001152190749497022,-9.135185026245966e-6,1.9848156573524196e-8,0.0011523634382926925,-9.001659265593388e-6,1.9770455193964563e-8,0.0011524907957058544,-8.976351650421527e-6,1.975535707782608e-8,0.0011526268209164589,-9.067935946616826e-6,1.9807599727437817e-8,0.0011528235054923113,-9.25449432683755e-6,1.9914294904382524e-8,0.0011531166414686328,-9.489552149459594e-6,2.0048491573720485e-8,0.0011535164504243166,-9.71476019621844e-6,2.0176519619224113e-8,0.0011540055000518578,-9.875454353321969e-6,2.0266935867828633e-8,0.0011545443526542588,-9.934597905884134e-6,2.029851857027083e-8,0.0011550830429836547,-9.881012223473731e-6,2.026498429883669e-8,0.0011555744937682764,-9.729706251418504e-6,2.0175168201088018e-8,0.0011559854772124829,-9.51504938883692e-6,2.0049071556327196e-8,0.0011563021464909625,-9.280042396553756e-6,1.991163982225793e-8,0.0011565296752859802,-9.065727818539686e-6,1.9786613888511836e-8,0.001156687736425848,-8.903688987058367e-6,1.9692182364519e-8,0.0011568044046975123,-8.8125619957311e-6,1.9638981965480233e-8,0.0011569105458751,-8.797789715304598e-6,1.9629991386652268e-8,0.0011570356151798416,-8.853178776230065e-6,1.9661469660227554e-8,0.0011572048275839113,-8.963029002850191e-6,1.9724213131765286e-8,0.0011574371573823965,-9.104180604326605e-6,1.9804750235027096e-8,0.0011577435098976399,-9.247950130788989e-6,1.9886461799431398e-8,0.0011581246406424353,-9.362476184699034e-6,1.9950934601369646e-8,0.001158568958664678,-9.41631267388031e-6,1.9980033554842147e-8,0.001159051135572797,-9.383982662467644e-6,1.9959107105592105e-8,0.0011595332400694842,-9.253407196201551e-6,1.988127948054991e-8,0.0011599704116754437,-9.033473617199929e-6,1.9751830591591057e-8,0.001160321905079089,-8.757962164306107e-6,1.9590469326886845e-8,0.0011605651381540996,-8.481352968156326e-6,1.9428884611557018e-8,0.0011607066977102414,-8.264780100526713e-6,1.9302555692561575e-8,0.0011607835786356816,-8.156211653841857e-6,1.9239208531028127e-8,0.001160852303938451,-8.173672131833849e-6,1.9249082973678126e-8,0.0011609704050213417,-8.299502401002055e-6,1.9321670102197103e-8,0.0011611786600939425,-8.487524842860316e-6,1.942996472795716e-8,0.00116149085756971,-8.678548440956826e-6,1.9539526753642373e-8,0.0011618930476837161,-8.817263786054158e-6,1.961829467481908e-8,0.0011623502480845786,-8.865197369246996e-6,1.9644073624203352e-8,0.0011628170462849206,-8.807345064885849e-6,1.9608343243756524e-8,0.001163248772606246,-8.652436380407108e-6,1.9516370694754277e-8,0.0011636107636861521,-8.42810745764086e-6,1.9384372461534673e-8,0.0011638841503945102,-8.17290291549061e-6,1.9234838808357553e-8,0.0011640675332915647,-7.927309243105636e-6,1.9091306227406572e-8,0.001164174910574985,-7.725934562782125e-6,1.897381570422459e-8,0.0011642310911780206,-7.592301438636944e-6,1.8895911963434465e-8,0.001164266183153776,-7.536686249750781e-6,1.8863426101585725e-8,0.0011643105098843333,-7.556534996681924e-6,1.8874751833990127e-8,0.0011643907219274397,-7.638508383357229e-6,1.892205030520054e-8,0.0011645272144765674,-7.761166811425134e-6,1.8992807601442906e-8,0.0011647324707863098,-7.897651936164617e-6,1.9071379900299287e-8,0.0011650098094900412,-8.018265814666975e-6,1.914048233352255e-8,0.0011653521888236509,-8.093307790327415e-6,1.9182839583695098e-8,0.001165741133615056,-8.096798948189496e-6,1.9183362843101123e-8,0.0011661465394286383,-8.01169930545659e-6,1.913219846759754e-8,0.0011665289267256526,-7.836536321099879e-6,1.9028592765835697e-8,0.0011668460658409007,-7.591725078170206e-6,1.8884569456476698e-8,0.0011670647742319771,-7.321672629410377e-6,1.872613603007408e-8,0.0011671752536712213,-7.087778965397692e-6,1.8589162929747138e-8,0.0011672007945532352,-6.950506281680236e-6,1.8508875117680157e-8,0.0011671946165852476,-6.946270276537636e-6,1.8506350208028936e-8,0.0011672219724961402,-7.071417197234697e-6,1.8579216055933185e-8,0.0011673358746302342,-7.283275108892446e-6,1.8702356985605753e-8,0.0011675594159570796,-7.517413113909867e-6,1.8838061377010595e-8,0.0011678822015231747,-7.710561368063675e-6,1.8949420655493054e-8,0.0011682689261397071,-7.818135372925264e-6,1.9010538692202126e-8,0.0011686730493583339,-7.821696462300443e-6,1.90108499425854e-8,0.0011690494583318888,-7.727720962976632e-6,1.8954353489254236e-8,0.0011693632444199163,-7.56134032774171e-6,1.885590552632025e-8,0.00116959424227111,-7.358324729191973e-6,1.8736493783482777e-8,0.0011697381322427927,-7.157289319737172e-6,1.861866602390422e-8,0.001169805015940991,-6.993028321525914e-6,1.852264983791331e-8,0.0011698161546601542,-6.891491872816817e-6,1.8463458014440653e-8,0.0011697995747586565,-6.866806023143072e-6,1.8449195474681566e-8,0.001169785345145261,-6.9204124414224666e-6,1.8480593608555368e-8,0.0011698012390084927,-7.0420511084665356e-6,1.8551596753815423e-8,0.0011698692959780039,-7.212115770190638e-6,1.865072612237821e-8,0.001170003535115469,-7.40476340602822e-6,1.876287162320732e-8,0.0011702087001298016,-7.591191261412983e-6,1.887118665962335e-8,0.001170479701385697,-7.742851069545861e-6,1.895896527939579e-8,0.0011708015200401624,-7.834746251544546e-6,1.9011588216858993e-8,0.0011711496211634048,-7.849130822009977e-6,1.9018713426567524e-8,0.0011714913924403504,-7.779910197998646e-6,1.8976869060788222e-8,0.0011717897544849946,-7.637523831636095e-6,1.889230519205385e-8,0.001172010309956273,-7.452738502943907e-6,1.8783182601489195e-8,0.0011721323598993924,-7.275994332800178e-6,1.867913794942048e-8,0.0011721611281580594,-7.168155593634209e-6,1.861581265298405e-8,0.0011721343191450696,-7.1813051484193844e-6,1.862357539268324e-8,0.0011721149049607846,-7.335813716215587e-6,1.87141217167984e-8,0.001172168800567516,-7.607145133330706e-6,1.8872833135365767e-8,0.0011723380208572738,-7.933227173421569e-6,1.9063184028057393e-8,0.0011726252496139771,-8.239481077610759e-6,1.924143891636807e-8,0.0011729975280554965,-8.466260519538257e-6,1.9372719916227837e-8,0.0011734031858778484,-8.584501548552111e-6,1.944016181411194e-8,0.001173790302185874,-8.596454295920204e-6,1.944531693494591e-8,0.0011741190787508823,-8.527161410478187e-6,1.9403109104349883e-8,0.0011743669348481497,-8.413502697600549e-6,1.933534155711618e-8,0.0011745284115409797,-8.294793736602777e-6,1.9265131227668844e-8,0.0011746124079364151,-8.206190261184355e-6,1.9213032276832187e-8,0.0011746385065752375,-8.174556373859033e-6,1.9194649111671876e-8,0.0011746330915234392,-8.216052103381338e-6,1.9219279634408336e-8,0.0011746253880197785,-8.335082109550146e-6,1.9289350289034145e-8,0.0011746435809791025,-8.524542340119898e-6,1.9400586230916127e-8,0.0011747112692470335,-8.767280557710057e-6,1.954286430798587e-8,0.0011748445359639791,-9.03865596643075e-6,1.9701692857538592e-8,0.0011750499632298852,-9.309966660718363e-6,1.9860201817912727e-8,0.001175323799399941,-9.552298843262974e-6,2.0001396821218872e-8,0.00117565222379474,-9.740381416028808e-6,2.0110439466007515e-8,0.0011760125740055314,-9.856258828588306e-6,2.0176834214821782e-8,0.001176375524771259,-9.89270749701017e-6,2.0196458357561633e-8,0.0011767084198622795,-9.856295447680713e-6,2.0173355725141192e-8,0.0011769802534832457,-9.769680052766479e-6,2.0121046365166935e-8,0.001177168799588408,-9.671871258832764e-6,2.0062613323586582e-8,0.0011772694476469777,-9.6141384720008e-6,2.002822704058926e-8,0.0011773031276615976,-9.649130357389883e-6,2.004871269724044e-8,0.001177317927990144,-9.813195811093411e-6,2.0145182911243707e-8,0.0011773784774201084,-1.0107742086366462e-5,2.031816622647421e-8,0.0011775429199502576,-1.0491244705205072e-5,2.054301185498362e-8,0.001177837880102486,-1.0891186429975976e-5,2.077695811502661e-8,0.0011782469508336748,-1.1232228758863288e-5,2.0975685618500445e-8,0.0011787199252995327,-1.1464270048217633e-5,2.1109807093236463e-8,0.001179195117857407,-1.1575096317836384e-5,2.1172327792887724e-8,0.0011796204060343677,-1.1585333083324484e-5,2.117567378298927e-8,0.001179964253721622,-1.153426084540048e-5,2.1143276835969646e-8,0.001180216947487361,-1.1465789942356163e-5,2.1101215758474892e-8,0.0011803864077251783,-1.1418915216628996e-5,2.107252293342305e-8,0.0011804924552570766,-1.1422849945557147e-5,2.1074313204903283e-8,0.0011805616351961057,-1.149534972563153e-5,2.111684828473406e-8,0.0011806231296561194,-1.164260838042896e-5,2.1203547272920038e-8,0.001180705405349917,-1.185983590457733e-5,2.133138289587363e-8,0.0011808332022572984,-1.2132380829244001e-5,2.1491566451183692e-8,0.0011810247593277404,-1.2437538534793616e-5,2.1670609888946692e-8,0.00118128939658047,-1.2747235945817167e-5,2.1851893747692842e-8,0.0011816258296817952,-1.3031688632184382e-5,2.2017816721285344e-8,0.0011820217409164156,-1.3263766786722557e-5,2.215238102483769e-8,0.0011824549343442512,-1.3423476824073942e-5,2.224386173036045e-8,0.0011828960923008392,-1.3501908143475178e-5,2.228715845248425e-8,0.0011833129578829248,-1.3504032616951642e-5,2.2285447254115404e-8,0.0011836756314048944,-1.3449812928952117e-5,2.2250794275112108e-8,0.001183962592413837,-1.3373153848677134e-5,2.2203458812617827e-8,0.0011841669322909438,-1.3318065327970467e-5,2.2169537514422055e-8,0.0011843016926503368,-1.3331175884827947e-5,2.2176482373441217e-8,0.0011844020642103072,-1.3450260247773386e-5,2.2246332098472546e-8,0.001184521202676278,-1.3690428025695983e-5,2.2387640451217336e-8,0.0011847171293863903,-1.4032994909381187e-5,2.2589027933433944e-8,0.001185032463777717,-1.4424743371322873e-5,2.281883562996951e-8,0.0011854755677246913,-1.4792794984495582e-5,2.3033918419938312e-8,0.0011860147396502052,-1.507088024578483e-5,2.319513060443558e-8,0.0011865905179456926,-1.5223319477673633e-5,2.328150001628114e-8,0.0011871389466646689,-1.5253718038456167e-5,2.3295410581307743e-8,0.0011876123061146714,-1.519648813755946e-5,2.3257586969311357e-8,0.0011879885113928858,-1.5099845661934605e-5,2.3196940123018956e-8,0.0011882695341677578,-1.501035144178206e-5,2.31412842396481e-8,0.0011884742356245803,-1.4963788315746421e-5,2.3111852364620775e-8,0.001188630530564791,-1.4982034546106686e-5,2.3121452402727265e-8,0.0011887692807419578,-1.507353292827563e-5,2.3174817880824452e-8,0.0011889202463939105,-1.5235106883747588e-5,2.3269772227890994e-8,0.0011891093972103773,-1.5453904219857056e-5,2.3398442893928934e-8,0.001189356787492648,-1.5709243646093957e-5,2.3548380493865156e-8,0.001189674562434833,-1.597465760311393e-5,2.3703767108688843e-8,0.0011900650705906138,-1.622059546320253e-5,2.3847010207390837e-8,0.0011905194959919482,-1.641817450904896e-5,2.396096721453941e-8,0.0011910177895063875,-1.6543919681829082e-5,2.403177226492937e-8,0.0011915306556030559,-1.6584788766736868e-5,2.4051839818261955e-8,0.001192023898945927,-1.6542298384545826e-5,2.4022324070467803e-8,0.001192464757553144,-1.643440146715635e-5,2.3954211093486313e-8,0.001192829119799411,-1.629404609753833e-5,2.3867395750016865e-8,0.001193108027212104,-1.6164104458207515e-5,2.3787569044241983e-8,0.0011933118430555575,-1.608921071912973e-5,2.3741272731391792e-8,0.0011934707320330146,-1.6105658509481013e-5,2.374985781205688e-8,0.0011936303976635173,-1.623111932778949e-5,2.3823425330801796e-8,0.0011938425904213918,-1.6456797947603263e-5,2.3956291913805633e-8,0.0011941512693824246,-1.6745405678767475e-5,2.4125926378533872e-8,0.0011945777513011316,-1.703806116613979e-5,2.4297131106293858e-8,0.0011951108176325653,-1.7270552184130284e-5,2.4431706269672658e-8,0.0011957078826386161,-1.7394145331375484e-5,2.4500786304503858e-8,0.001196308651953773,-1.7391670563142902e-5,2.4494397478295562e-8,0.0011968553574094527,-1.7280885870127336e-5,2.442346637634852e-8,0.0011973097438809756,-1.7104486121415902e-5,2.4313830319614202e-8,0.0011976600271846305,-1.6913544964189015e-5,2.4196263777647027e-8,0.0011979178287977973,-1.6752823815132273e-5,2.4097605696463648e-8,0.0011981097707620147,-1.6652578579863055e-5,2.4035827004151324e-8,0.0011982686801686477,-1.6626751066110573e-5,2.401899572758425e-8,0.0011984270612510747,-1.6674980003615707e-5,2.4046572026728495e-8,0.0011986131998672476,-1.6785856209140574e-5,2.411144126081378e-8,0.00119884907936858,-1.6939967517406705e-5,2.4201781684558578e-8,0.0011991490988296598,-1.7112385016964997e-5,2.430255743190104e-8,0.0011995189044720176,-1.727490968716899e-5,2.4396846663078468e-8,0.0011999541434850292,-1.73987053704685e-5,2.446740213138539e-8,0.0012004395264967585,-1.7457927525291007e-5,2.4498820966803372E-08,0.0012009491082435547,-1.743451264755266e-5,2.4480422287605266e-8,0.001201448900782843,-1.7323465817622007e-5,2.4409425154034857e-8,0.0012019025457898729,-1.713703206787251e-5,2.429344400128628e-8,0.0012022796375072394,-1.6905527800039264e-5,2.415095110327444e-8,0.001202564674709609,-1.66730256383639e-5,2.4008615527302114e-8,0.0012027634568679232,-1.6487847620334767e-5,2.3895505198766226e-8,0.001202904030611828,-1.6390163394670685e-5,2.3835574955575874e-8,0.0012030311028923925,-1.6400516224166192e-5,2.384078723594285e-8,0.0012031951747230444,-1.6513004713512284e-5,2.390712060734509e-8,0.001203439368777117,-1.6695385826531313e-5,2.4014786720648956e-8,0.0012037875416534632,-1.6896357132806125e-5,2.413273573212916e-8,0.0012042369997383238,-1.7058417430140396e-5,2.422642990299439e-8,0.001204758270153749,-1.7133153462624448e-5,2.42669920335499e-8,0.0012053027296240449,-1.7094557087145528e-5,2.4239131779032624e-8,0.001205816243419089,-1.694576087819249e-5,2.414512189749825e-8,0.001206254208107606,-1.671652593603102e-5,2.4003224447649546e-8,0.0012065924774887938,-1.6452686017868706e-5,2.3841274764580573e-8,0.0012068306855210508,-1.6202252980745935e-5,2.3688257288772364e-8,0.0012069882451567506,-1.6003642610002783e-5,2.3567193058502826e-8,0.0012070962548821874,-1.5879317737007825e-5,2.3491350212189728e-8,0.0012071891126864752,-1.5834987172204415e-5,2.3463848234982794e-8,0.0012072982435586271,-1.5862395994595704e-5,2.3479429419473134E-08,0.0012074484919681056,-1.5943390285158226e-5,2.3526960795175952e-8,0.0012076565349967772,-1.6053727644420263e-5,2.3591735054261115e-8,0.0012079303224518817,-1.6166109640853678e-5,2.3657270713232458e-8,0.0012082687433021958,-1.625265566416613e-5,2.370677465035961e-8,0.0012086611896754904,-1.6287448494366172e-5,2.372466631141001e-8,0.0012090872917999832,-1.6249836702848495e-5,2.3698580523446967e-8,0.0012095176855486077,-1.6128815528154758e-5,2.3622028928013453e-8,0.0012099170613362122,-1.592798579392285e-5,2.349739986274672e-8,0.0012102505659388227,-1.566936060894537e-5,2.3338237567455915e-8,0.0012104933479661164,-1.5393153749585413e-5,2.316906420901978e-8,0.0012106406191476266,-1.5150881099106516e-5,2.302113572545944e-8,0.001210713427762985,-1.4991745019339821e-5,2.2924136337323242e-8,0.0012107557250189674,-1.4946543294335746e-5,2.2896419733099684e-8,0.0012108221716802248,-1.5016161651831003e-5,2.293810304377412e-8,0.0012109612315525406,-1.5170264902251345e-5,2.3030401775421017e-8,0.0012112005956738774,-1.535671009607627e-5,2.3141465559964834e-8,0.0012115402123723076,-1.551722648703216e-5,2.3235958218962858e-8,0.0012119541203185218,-1.5603217342101987e-5,2.32846361790215e-8,0.0012123989690091418,-1.558704649773601e-5,2.32711262155396e-8,0.0012128258188160085,-1.546672637976945e-5,2.3194667025593706e-8,0.0012131919055231588,-1.526397476343263e-5,2.306882035076686e-8,0.001213469672752588,-1.5016981076206275e-5,2.2916988632259907e-8,0.0012136512717100716,-1.4770193242323362e-5,2.2766165374691033e-8,0.0012137479589100495,-1.4563974629347552e-5,2.2640665341646183e-8,0.0012137852603573004,-1.4426773355970368e-5,2.255743926778347e-8,0.0012137959093788662,-1.4371343522844578e-5,2.2523883713028728e-8,0.0012138128365966673,-1.439499826481813e-5,2.2538091856692798e-8,0.0012138638400819995,-1.4482668698853964e-5,2.2590762305896745e-8,0.0012139685086682349,-1.4611158244269921e-5,2.2667775734842887e-8,0.0012141370773553156,-1.4753294457875256e-5,2.2752669276880412e-8,0.0012143704447298367,-1.4881339284913565e-5,2.2828655628043122e-8,0.0012146606157735983,-1.4969696583580246e-5,2.2880242761076628e-8,0.0012149911979015464,-1.499739616837105e-5,2.2894754107216863e-8,0.001215338074413792,-1.495094088433912e-5,2.286409075695815e-8,0.0012156709220629822,-1.4827860365214653e-5,2.278691472150337e-8,0.0012159566967008494,-1.4640607873998432e-5,2.2671006872583375e-8,0.0012161661678526474,-1.4419214392042551e-5,2.253482998176492e-8,0.0012162834218881762,-1.4209794962010202e-5,2.2406545421342624e-8,0.001216315642396274,-1.4065845309811994e-5,2.2318651755283653e-8,0.0012162975273846636,-1.4032046896515793e-5,2.229810801795348e-8,0.001216284646636957,-1.412603160851158e-5,2.2355282871068613e-8,0.0012163354726003424,-1.4328040488737538e-5,2.2477767363016963e-8,0.0012164899159747096,-1.4585949126754397e-5,2.263355123417095e-8,0.001216755574130199,-1.4833892797710722e-5,2.278243853374842e-8,0.0012171078245810246,-1.5014490026863692e-5,2.2889603737556964e-8,0.001217501208749591,-1.5094377647005056e-5,2.2935034657986378e-8,0.0012178847630020077,-1.5068934395509631e-5,2.2916347417685273e-8,0.0012182150285436164,-1.4958137548021152e-5,2.2846155074825506e-8,0.0012184640069405344,-1.4797783644600629e-5,2.2746590779909395e-8,0.0012186220505673322,-1.4629683731770791e-5,2.2643235920746163e-8,0.001218696822913379,-1.449297270290909e-5,2.2559801522444672e-8,0.0012187095811834294,-1.4417539138099393e-5,2.2514186857630122e-8,0.0012186898663968694,-1.4420061297596525e-5,2.2516180023635898e-8,0.0012186696633395672,-1.4502833252156467e-5,2.2566860603567102e-8,0.0012186780735641304,-1.4655108434294776e-5,2.2659490899290508e-8,0.0012187372918174148,-1.4856253456001961e-5,2.2781443114298367e-8,0.001218860273629298,-1.5079824490775369e-5,2.2916635639418696e-8,0.0012190500435946263,-1.5297700051893458e-5,2.3047988343221898e-8,0.001219300200263371,-1.548365519236493e-5,2.3159560794279936e-8,0.0012195960618367548,-1.5616237415079354e-5,2.3238309613797606e-8,0.0012199161265676276,-1.568118550987916e-5,2.3275603178996437e-8,0.0012202338545077081,-1.567373100870673e-5,2.326866879195279e-8,0.0012205201561264112,-1.560100091808706e-5,2.3222067337371707e-8,0.001220747382989795,-1.5484226141098953e-5,2.3148995007320677e-8,0.0012208955835540899,-1.535941411892994e-5,2.3071605072069785e-8,0.0012209607427107806,-1.5274050539459638e-5,2.3018902382756045e-8,0.001220962475274646,-1.5277280997782236e-5,2.3020705792687032e-8,0.0012209458731045407,-1.5403436960660497e-5,2.309762894932575e-8,0.0012209717976255354,-1.565448470536381e-5,2.3250476497938733e-8,0.0012210955463632595,-1.5992317511104423e-5,2.345566341649283e-8,0.0012213435678971353,-1.634934524496698e-5,2.367175263118225e-8,0.0012217022640911984,-1.6653999885394203e-5,2.3855040758167472e-8,0.0012221254162641652,-1.685673242853055e-5,2.397543609100118e-8,0.0012225539172616843,-1.694295513018085e-5,2.4024369111537456e-8,0.0012229355612905532,-1.6930207344080828e-5,2.4013018459709848e-8,0.0012232368258948774,-1.6856088422204816e-5,2.3964815471614588e-8,0.001223445818883135,-1.6764870074623695e-5,2.3907108196114857e-8,0.0012235694616662836,-1.66972195773145e-5,2.3864781052871904e-8,0.0012236282176459417,-1.668400111843338e-5,2.3856473140188308e-8,0.0012236504409797394,-1.6743379709783217e-5,2.3892909894168513e-8,0.0012236671763620997,-1.6880175503808295e-5,2.3976645895061022e-8,0.001223707624433692,-1.708683221483701e-5,2.4102766441136323e-8,0.0012237954317209335,-1.734565340062886e-5,2.426029685357651e-8,0.0012239459921608604,-1.7631973134540477e-5,2.4434117926847972e-8,0.0012241649213519893,-1.791791608308859e-5,2.4607207076905056e-8,0.0012244478183697678,-1.817632574317451e-5,2.476299133590999e-8,0.0012247812244358886,-1.838435464330882e-5,2.4887533086232756e-8,0.0012251444556581857,-1.8526399189167512e-5,2.4971356499031972e-8,0.001225512030680893,-1.8596356874691012e-5,2.5010875116620252e-8,0.0012258566090267735,-1.8599249204608337e-5,2.500940666446154e-8,0.0012261525206215848,-1.8552184327634754e-5,2.4977727871947743e-8,0.0012263801754533244,-1.8484389126531722e-5,2.4934001023126065e-8,0.001226531589440995,-1.8435353897332787e-5,2.4902521731442044e-8,0.0012266163824655456,-1.844942436845583e-5,2.4910327037782435e-8,0.0012266658987470957,-1.8565429063659797e-5,2.498085133256966e-8,0.0012267312754294553,-1.880207278591228e-5,2.5125090674904964e-8,0.0012268713258371598,-1.914430998630717e-5,2.533341535608457e-8,0.001227131022819862,-1.954022969406463e-5,2.557377342250434e-8,0.0012275202373195173,-1.991570456003484e-5,2.5800673545950185e-8,0.0012280066605481112,-2.0202550073462475e-5,2.5972399157529153e-8,0.0012285289260753722,-2.036442274620531e-5,2.6066887113834473e-8,0.0012290215337736447,-2.0405843598096857e-5,2.608730247250189e-8,0.0012294364792536673,-2.0362831684957532e-5,2.605626237353159e-8,0.0012297525480403702,-2.0285001528169813e-5,2.600470001447718e-8,0.001229973287643303,-2.0219675206655426e-5,2.596192790923771e-8,0.00123011945294299,-2.0202577079814657e-5,2.5949829286862887e-8,0.0012302208090147813,-2.0254570927893388e-5,2.598089556577197e-8,0.001230309575850642,-2.0382079862008366e-5,2.6058620701201978e-8,0.0012304158345859968,-2.0579100696291248e-5,2.6178889594627654e-8,0.0012305643517482184,-2.0829746668818747e-5,2.6331638580619262e-8,0.0012307723235892732,-2.1111062515209374e-5,2.6502607204116547e-8,0.0012310478548748765,-2.1396114777007075e-5,2.6675202086625746e-8,0.0012313891899758615,-2.1657391046044656e-5,2.6832534064826254e-8,0.0012317848985939483,-2.187044513583133e-5,2.6959629716658373e-8,0.001232215249623264,-2.2017430944470345e-5,2.7045614719736176e-8,0.0012326547447966258,-2.209001773221379e-5,2.7085542859440893e-8,0.0012330755592392312,-2.2091326924775106e-5,2.70816135899996e-8,0.0012334516279752959,-2.203663011034868e-5,2.7043580150642033e-8,0.001233763101802164,-2.1952544155669515e-5,2.6988170698065287e-8,0.001234000846053606,-2.1874499915341305e-5,2.6937404354593894e-8,0.0012341705639102628,-2.184212653370876e-5,2.691563704449534e-8,0.0012342956223987628,-2.1891979650956894e-5,2.6945050302677308e-8,0.001234416688585595,-2.2047557895417835e-5,2.7039585964648845e-8,0.0012345855888722889,-2.23083766412273e-5,2.719839449139654e-8,0.0012348517249173988,-2.2642708147870215e-5,2.7401545144008608e-8,0.0012352433616983397,-2.2990593392258627e-5,2.7611962377998624e-8,0.0012357521897338616,-2.328103233247334e-5,2.778596961972363e-8,0.0012363319390749912,-2.3458241076732956e-5,2.7889391237730747e-8,0.001236914832205126,-2.3503051358274284e-5,2.7910738893106944e-8,0.0012374372602634584,-2.34370143285074e-5,2.7863779646029196e-8,0.0012378600978094599,-2.3308844078715344e-5,2.7779123129400366e-8,0.001238175025995959,-2.3173834169043024e-5,2.7691345091404345e-8,0.0012383987375117022,-2.3077516654817154e-5,2.7628715793488518e-8,0.0012385621901050622,-2.304804267920002e-5,2.7608434146434345e-8,0.001238700730871274,-2.3095701387628564e-5,2.7636418998067664e-8,0.0012388473917175444,-2.321606101218933e-5,2.7709418024290113e-8,0.0012390291726658905,-2.339397590953754e-5,2.781763697063455e-8,0.001239265187271221,-2.3607198404592336e-5,2.7947049692492793e-8,0.0012395656932513142,-2.3829477290720274e-5,2.808131142382676e-8,0.001239931567574002,-2.4033454791804963e-5,2.8203502070202986e-8,0.001240354197034772,-2.419368952870141e-5,2.8297948187087624e-8,0.0012408160639877112,-2.4289979933212816e-5,2.835226322126063e-8,0.0012412924936616241,-2.431076507997636e-5,2.835947104322042e-8,0.001241754847581157,-2.4255949556786933e-5,2.8319783468064274e-8,0.0012421750027906508,-2.413837942889537e-5,2.8241514856497743e-8,0.0012425305735050856,-2.398330917104594e-5,2.8140695039591662e-8,0.001242810041407821,-2.3825431793646963e-5,2.803911624686781e-8,0.0012430167548026835,-2.3703494765039817e-5,2.796086702784852e-8,0.0012431707595330977,-2.3653019187846447e-5,2.792773776976358e-8,0.0012433075282853305,-2.3697965910599013e-5,2.7954078812129726e-8,0.0012434727173970845,-2.3842679769997022e-5,2.8041949740427052e-8,0.001243712463212426,-2.4066405760676784e-5,2.8177927469785303e-8,0.0012440601035040232,-2.432362427984792e-5,2.8333484399655164e-8,0.0012445228361571915,-2.4553159928907133e-5,2.84706844897476e-8,0.001245074558848186,-2.469598742631698e-5,2.8553156726817562e-8,0.0012456608862963842,-2.4715959349908565e-5,2.8558858281151512e-8,0.001246216708050109,-2.4613291013679496e-5,2.8488399775580813e-8,0.001246688489499405,-2.4423038202625592e-5,2.8364074640010765e-8,0.0012470500759516796,-2.4199802086790886e-5,2.8220269933140577e-8,0.0012473056186578205,-2.3997923243581362e-5,2.8091007067191165e-8,0.0012474816718979766,-2.3856832628854112e-5,2.8000725693752732e-8,0.0012476152297567857,-2.3795467178827526e-5,2.796083255759579e-8,0.0012477434727424471,-2.3813936544781482e-5,2.797087896365848e-8,0.0012478974825907967,-2.3898538079999737e-5,2.802185450423327e-8,0.0012480994715242364,-2.4027063105389873e-5,2.8099607177080368e-8,0.0012483620860405254,-2.4173063448967265e-5,2.8187527217003586e-8,0.0012486885425988454,-2.4309038643380227e-5,2.8268487756534477e-8,0.0012490729604937483,-2.4409048929309893e-5,2.832640747738927e-8,0.0012495008229754566,-2.4451320673572244e-5,2.8347832218140762e-8,0.0012499499393055541,-2.442119484453209e-5,2.8323772418069707e-8,0.0012503925365264328,-2.4314275664468087e-5,2.8251695604431464e-8,0.0012507990005257714,-2.4139030867608762e-5,2.8137171704645568e-8,0.001251143262636996,-2.391768914256767e-5,2.7994415164953935e-8,0.0012514090363835088,-2.368426701735876e-5,2.7844976389814205e-8,0.0012515953110546903,-2.3479107716070564e-5,2.771421375274228e-8,0.0012517191350728285,-2.3340474530020665e-5,2.7625933544735366e-8,0.0012518141482856812,-2.3295030625602135e-5,2.7596407518891168e-8,0.00125192444142756,-2.334975383124914e-5,2.7629401271552236e-8,0.0012520946514939732,-2.348776438369355e-5,2.7713746828686006e-8,0.0012523583631477433,-2.3669877510084097e-5,2.7824516476769492e-8,0.0012527277286170939,-2.38425421336231e-5,2.7928118057615044e-8,0.0012531876409788102,-2.3951178423680048e-5,2.7990642199443437e-8,0.0012536974445180235,-2.395580939174183e-5,2.7987543221912417e-8,0.0012542012794675764,-2.3843814405731823e-5,2.7911488512020674e-8,0.0012546444912580575,-2.3634230998913443e-5,2.7774939914552914e-8,0.0012549898708866338,-2.337098949679818e-5,2.760582318235473e-8,0.0012552269467497428,-2.31078977299701e-5,2.7438033142794907e-8,0.0012553712247767674,-2.2892283909759187e-5,2.730112602560997e-8,0.001255455539610628,-2.2753872111695107e-5,2.7213370434487382e-8,0.0012555187275849952,-2.2701515499694785e-5,2.7179817449245153e-8,0.0012555962675502516,-2.2726235663317327e-5,2.719436714414756e-8,0.0012557148843836085,-2.280713457832666e-5,2.724360162183075e-8,0.001255890687072248,-2.2917285638186973e-5,2.7310518757386415e-8,0.001256129398595488,-2.3028282424195017e-5,2.7377340966423323e-8,0.0012564273842037858,-2.3113398094334926e-5,2.742741470506988e-8,0.001256772748129926,-2.3149894992070267e-5,2.7446594516070987e-8,0.0012571463545275083,-2.3121157899020574e-5,2.7424565261140528e-8,0.0012575231640768645,-2.3019131476612913e-5,2.7356401669610725e-8,0.001257874612111306,-2.284700440575688e-5,2.7244296214391676e-8,0.0012581727000068063,-2.2621361371800596e-5,2.7098925268443296e-8,0.0012583959412701018,-2.2372382207858894e-5,2.6939533510837228e-8,0.0012585362273141267,-2.2140433227805133e-5,2.6791698499354605e-8,0.0012586042852673735,-2.196814660205169e-5,2.6682241581275458e-8,0.0012586306549829782,-2.1889126806689826e-5,2.6632055608261722e-8,0.0012586601311620252,-2.1916855981065547e-5,2.664914718129419e-8,0.0012587403517282045,-2.2038399148444123e-5,2.672480002912566e-8,0.0012589081308858302,-2.2216070066749486e-5,2.6834805998698666e-8,0.001259178401966701,-2.2397001174915816e-5,2.6945651229235044e-8,0.0012595395662738137,-2.2527436600423014e-5,2.7023591961309044e-8,0.0012599565073977735,-2.2567114697326255e-5,2.704368259177285e-8,0.0012603800277351954,-2.249955563699239e-5,2.6996141762203254e-8,0.0012607598300570521,-2.2335587057110256e-5,2.6888416016816608e-8,0.0012610573544834757,-2.2109330675960614e-5,2.674249136516303e-8,0.0012612547690560867,-2.186800615213288e-5,2.6588343449294578e-8,0.0012613575758832708,-2.1658922356915117e-5,2.6455686208838244e-8,0.001261390591051946,-2.151793017938794e-5,2.6366737636690552e-8,0.00126138947197204,-2.146269522919313e-5,2.6332111564846554e-8,0.001261391218294045,-2.1491868003257122e-5,2.635046486548411e-8,0.0012614266428808319,-2.15888902989852e-5,2.641103229929555e-8,0.0012615162216082754,-2.1727952954471072e-5,2.6497431575663864e-8,0.0012616690635331466,-2.187983048108349e-5,2.6591299115901463e-8,0.0012618838439774989,-2.2016383972793845e-5,2.6675035116793972e-8,0.0012621505235054361,-2.2113585277586392e-5,2.6733624171416905e-8,0.0012624521180612978,-2.2153524616584108e-5,2.6755867859438524e-8,0.00126276632102878,-2.2126043067001626e-5,2.6735440962205498e-8,0.0012630672801498218,-2.2030481309721585e-5,2.6672051476437688e-8,0.0012633282001385453,-2.1877576094169603e-5,2.6572675677080794e-8,0.0012635254927225803,-2.1690821374928485e-5,2.6452399559931268e-8,0.0012636447200479173,-2.150581193844573e-5,2.6333924961939377e-8,0.0012636873694712005,-2.1365630790647973e-5,2.62445471842398e-8,0.001263675689203714,-2.1311092535360135e-5,2.6209908895091034e-8,0.001263651583389443,-2.1367352542053175e-5,2.624553285893486e-8,0.0012636669236140193,-2.1532112858698217e-5,2.6349454998586358e-8,0.0012637672086514252,-2.1772261625864342e-5,2.6500247615930587e-8,0.0012639754671761418,-2.2032532614826404e-5,2.666264158225693e-8,0.001264284192241647,-2.2253087100624153e-5,2.679874434506354e-8,0.0012646586664950854,-2.238799657886381e-5,2.687976398338216e-8,0.001265048952007261,-2.2417146448438736e-5,2.68935001124463e-8,0.0012654046375396352,-2.2348637976309602e-5,2.6845743928639548e-8,0.001265687166465729,-2.2213199967963506e-5,2.6756558234120423e-8,0.0012658770847539854,-2.205411237295862e-5,2.6653709859809845e-8,0.0012659757694239995,-2.1916095275190147e-5,2.6565519875628988e-8,0.0012660024992930466,-2.1835733466883678e-5,2.6514812194613012e-8,0.0012659883363219941,-2.183504682483079e-5,2.6514975770749016e-8,0.001265968564043513,-2.1918984668542527e-5,2.656857289282304e-8,0.0012659755016867593,-2.2076758125450218e-5,2.666835322071545e-8,0.0012660331867845541,-2.2286013655878877e-5,2.6799978389807436e-8,0.0012661546447266811,-2.2518299270481508e-5,2.6945459630868268e-8,0.0012663416011667139,-2.2744366594706175e-5,2.708642168120064e-8,0.0012665859156780787,-2.2938374403736194e-5,2.720666230998871e-8,0.0012668718340026004,-2.308069895407578e-5,2.729387607334129e-8,0.0012671783608418628,-2.315961813842999e-5,2.7340731279403066e-8,0.0012674815022603028,-2.3172399530941718e-5,2.734561490457562e-8,0.0012677565540440863,-2.3126206424985553e-5,2.7313258391016998e-8,0.0012679809078356128,-2.3038880813856224e-5,2.7255232108115096e-8,0.0012681379667225815,-2.293909764723427e-5,2.718996925380211e-8,0.001268222410981478,-2.2864607647463806e-5,2.714153350665855e-8,0.0012682458991817589,-2.285674137919671e-5,2.7136033101520892e-8,0.0012682404442877298,-2.294997743206441e-5,2.7194986348181077e-8,0.0012682552261359058,-2.3158135615329883e-5,2.732665258099185e-8,0.0012683438357439264,-2.3463184370203866e-5,2.751908579692521e-8,0.0012685445912806244,-2.381508922712379e-5,2.774017528295886e-8,0.0012688635218484556,-2.4146813037913072e-5,2.794723304902699e-8,0.0012692705636366676,-2.439852622614259e-5,2.8102383947438925e-8,0.0012697114811386142,-2.453808374801821e-5,2.818558432617654e-8,0.0012701278926337827,-2.456798692026666e-5,2.8199025785485304E-08,0.0012704747097447653,-2.451874191640579e-5,2.8162796580241977e-8,0.0012707290511519327,-2.4435369716645258e-5,2.8106093111468987e-8,0.00127089082105009,-2.4363968771578763e-5,2.8058468845464867e-8,0.0012709780445711418,-2.4341966719446985e-5,2.804354865594735e-8,0.0012710200656264432,-2.439279816146933e-5,2.8075722588673664e-8,0.001271050641705294,-2.4524258495752033e-5,2.8159296031538897e-8,0.0012711018882705825,-2.4729497552478398e-5,2.8289339641440367e-8,0.0012711994916664129,-2.4989923105568873e-5,2.8453680377103202e-8,0.0012713595362361608,-2.5279401250563086e-5,2.863560229913506e-8,0.0012715871496310693,-2.5568988582094783e-5,2.8816787886148046e-8,0.0012718768697763392,-2.5831442116825033e-5,2.898007870930307e-8,0.0012722144010838205,-2.6044933071783422e-5,2.911175618979125e-8,0.0012725792455093397,-2.619559555621507e-5,2.9203144635270495e-8,0.001272947626786604,-2.627888618297095e-5,2.9251514544716158e-8,0.0012732953571026233,-2.630006763486035e-5,2.9260441855358742e-8,0.0012736006475878774,-2.6274127894061375e-5,2.9239767557704245e-8,0.0012738470763975945,-2.6225193166156763e-5,2.9205161411702542e-8,0.0012740270157430664,-2.6185124088254545e-5,2.9177104177386633e-8,0.0012741455908807501,-2.6190414429344983e-5,2.9178785414269988e-8,0.001274224316427514,-2.62760887589678e-5,2.9232165679184445e-8,0.0012743020615554482,-2.646586880061536e-5,2.935178899471236e-8,0.001274429803943883,-2.6760187731966526e-5,2.9537333686976303e-8,0.0012746566213436674,-2.712756647179489e-5,2.976831346906732e-8,0.0012750096385508432,-2.7507546288788524e-5,3.0006033761210905e-8,0.0012754781610912526,-2.7829406560484464e-5,3.020548189174035e-8,0.001276013858158292,-2.8039650417442057e-5,3.033279425528792e-8,0.0012765492750488386,-2.812244159011328e-5,3.0378310890776146e-8,0.001277023642649741,-2.810137217333263e-5,3.035772861075833e-8,0.0012774012466509133,-2.802473521408781e-5,3.0302589247883327e-8,0.0012776758745853178,-2.7945890596938154e-5,3.024749497268067e-8,0.0012778647758220772,-2.79085430819153e-5,3.022048134829472e-8,0.001277998800793535,-2.793980262467159e-5,3.0238533240266736e-8,0.0012781132813501053,-2.804931557698271e-5,3.0307171318946226e-8,0.0012782413834105137,-2.8231718287190717e-5,3.042226138414893e-8,0.0012784098972853835,-2.8470294804898002e-5,3.0572571320992245e-8,0.0012786367518833218,-2.8740849073584766e-5,3.074235593251752e-8,0.0012789297433653374,-2.9015619036969142e-5,3.091384476109464e-8,0.0012792863683563302,-2.9267159831319898e-5,3.10696300382083e-8,0.0012796947422641365,-2.9471974501639326e-5,3.119488465856777e-8,0.0012801355484260517,-2.9613619515355336e-5,3.127929159311357e-8,0.0012805848824221722,-2.9684936207415627e-5,3.131847898599492e-8,0.001281017638662968,-2.968910490383866e-5,3.131473845451968e-8,0.0012814109964758992,-2.963950002011583e-5,3.1276957457645865e-8,0.0012817477332364437,-2.9558493616968298e-5,3.1219814796159154e-8,0.0012820192456920046,-2.9475284638605605e-5,3.116227933862801e-8,0.001282228197848576,-2.9422701983244574e-5,3.1125420021043346e-8,0.001282390606699797,-2.943268070189973e-5,3.112941115271035e-8,0.0012825366317504978,-2.9529907636028162e-5,3.118948519163852e-8,0.0012827084194776662,-2.9723676059624966e-5,3.131088059813362e-8,0.0012829528288665348,-2.9999700516418604e-5,3.1483844908667825e-8,0.0012833079130263225,-3.0316201547194518e-5,3.168132285335997e-8,0.0012837859765342673,-3.061020073146328e-5,3.1863018658290956e-8,0.0012843618450062628,-3.081684226297564e-5,3.198765635324121e-8,0.0012849765874220782,-3.089521995994752e-5,3.20294184946202e-8,0.0012855586318208988,-3.084588285428632e-5,3.1989175468429604e-8,0.0012860510837547415,-3.0708540178211655e-5,3.189304549666774e-8,0.001286429391721135,-3.054259065273131e-5,3.1779790208841204e-8,0.0012867022080911398,-3.0404062537684042e-5,3.1685762437681995e-8,0.001286900377279203,-3.0330777585708804e-5,3.163518182633183e-8,0.001287063300987379,-3.0338387143386424e-5,3.163759774986754e-8,0.001287228565364857,-3.042354922701865e-5,3.1690131287687944e-8,0.0012874261434639106,-3.056970632894269e-5,3.1781451277475414e-8,0.0012876761011276928,-3.075264889043229e-5,3.189554315979008e-8,0.001287988197340863,-3.094489886686548e-5,3.201458498978887e-8,0.0012883622633117567,-3.111913753711612e-5,3.2121090216733314e-8,0.0012887890246263095,-3.125116421789353e-5,3.219969606469643e-8,0.0012892514436496775,-3.1322610080414284e-5,3.223881626240157e-8,0.0012897267572810904,-3.132337450102907e-5,3.223217751474067e-8,0.0012901893827250341,-3.125348366035541e-5,3.2180042784654345e-8,0.0012906146194111945,-3.1123848609875844e-5,3.208974051574626e-8,0.0012909826969805158,-3.0955505293186115e-5,3.197517438868874e-8,0.0012912825565626971,-3.0777215881050795e-5,3.185520292845642e-8,0.0012915147687625943,-3.0621540642874033e-5,3.175097395022615e-8,0.001291693035842951,-3.0519716537336427E-05,3.168249183610786e-8,0.0012918438362249742,-3.0495841413462402e-5,3.1664819795655e-8,0.0012920037928547566,-3.056087693364674e-5,3.1704304670211076e-8,0.0012922141715474165,-3.0707282053063105e-5,3.17953364867465e-8,0.001292512034520009,-3.090599709338316e-5,3.1918661500173786e-8,0.0012929187002381516,-3.110850773894603e-5,3.2042880122178096e-8,0.0012934285950733568,-3.1256693423193994e-5,3.213078673276235e-8,0.0012940044453168913,-3.1300498297250774e-5,3.215061328521406e-8,0.001294584877820033,-3.12176444133966e-5,3.20885883560331e-8,0.001295104589766634,-3.102462475607171e-5,3.195596529494129e-8,0.0012955179603695564,-3.077085167751126e-5,3.178521309227125e-8,0.0012958131840410975,-3.0518540566581096e-5,3.1616916955709714e-8,0.0012960105999187787,-3.032026641965267e-5,3.148511085415194e-8,0.0012961495978159076,-3.0205433323736027e-5,3.140845109678617e-8,0.0012962734470908504,-3.0178565979806494e-5,3.1389212768773746e-8,0.0012964186126221632,-3.022527856628844e-5,3.141738252834504e-8,0.0012966099467786687,-3.032037295760454e-5,3.1476126820308665e-8,0.0012968600751613467,-3.043465498738407e-5,3.154631955101938e-8,0.0012971707339509185,-3.0539529403013107e-5,3.160949484610287e-8,0.0012975345391934867,-3.0609886172662965e-5,3.164960498486348e-8,0.0012979366525891216,-3.062613758462698e-5,3.1654217987039235e-8,0.0012983564533401342,-3.057599296156603e-5,3.1615600298714555e-8,0.0012987695840761062,-3.0456167864014533e-5,3.1531828857941956e-8,0.0012991507884455799,-3.027379091331488e-5,3.140775068646107e-8,0.0012994777236449333,-3.004683999448522e-5,3.125530194558217e-8,0.0012997353921117309,-2.9802813505353085e-5,3.1092622133109445e-8,0.0012999202861004046,-2.9575139003558806e-5,3.09416264273142e-8,0.0013000430270444395,-2.93974130243819e-5,3.0824133092212875e-8,0.001300128331498118,-2.9296350396882437e-5,3.075718715872455e-8,0.0013002116679433546,-2.928500804947685e-5,3.074866956412388e-8,0.0013003328193243616,-2.935801434543197e-5,3.0794343521651624e-8,0.001300527308605543,-2.9490231267340253e-5,3.0877225135393917e-8,0.0013008171756119307,-2.9639869058835446e-5,3.0969838317194383e-8,0.0013012031591031939,-2.9756515314625574e-5,3.10395465251122e-8,0.0013016609455879465,-2.9793446563434323e-5,3.105650235031395e-8,0.0013021442562541905,-2.972172931898944e-5,3.100263591424007e-8,0.0013025961177511457,-2.9541337275106654e-5,3.087867894617946e-8,0.0013029660006317406,-2.9283509335878423e-5,3.0705543544897195e-8,0.0013032261586196996,-2.9001308736517474e-5,3.051808034793436e-8,0.0013033793833759004,-2.875164122635431e-5,3.035331118242153e-8,0.0013034547749617115,-2.8577237008618275e-5,3.023868954419752e-8,0.0013034950005774671,-2.8496554952853205e-5,3.018561791167246e-8,0.0013035422626375217,-2.8503927091162528e-5,3.018972942257647e-8,0.0013036286487182313,-2.8576659673191224e-5,3.023572044825167e-8,0.0013037723920898197,-2.8683998777921855e-5,3.0303320007544866e-8,0.0013039784710675347,-2.8794434907111588e-5,3.037204952208462e-8,0.0013042411712836108,-2.8880283437659195e-5,3.042410362765577e-8,0.0013045469059940415,-2.8920083977942182e-5,3.044577741719525e-8,0.0013048765892900785,-2.8899827777303695e-5,3.042817208710491e-8,0.0013052076096280716,-2.8813836177220682e-5,3.0367751697282956e-8,0.0013055158699504063,-2.8665686201342626e-5,3.026699500311816e-8,0.0013057784723598796,-2.8469027833693583e-5,3.0134989400730604e-8,0.0013059774012722158,-2.824758312302742e-5,2.998744624708401e-8,0.0013061039917527009,-2.803329661145913e-5,2.984543622349855e-8,0.0013061631500154798,-2.786174715368294e-5,2.973227959525612e-8,0.0013061755169066931,-2.7764752904717206e-5,2.966860348764004e-8,0.0013061756394885842,-2.7761595595907e-5,2.9666567318660748e-8,0.0013062052931786697,-2.785175086959786e-5,2.972518749832201e-8,0.001306303142538855,-2.801230059159129e-5,2.9828826603746476e-8,0.0013064938194895942,-2.820182285028999e-5,2.9949955265754234e-8,0.001306780086361943,-2.8370168467178228e-5,3.005571106771042e-8,0.0013071407644421912,-2.8471378373462444e-5,3.0116392578181026e-8,0.0013075352201250116,-2.8475996159682643e-5,3.011342304590286e-8,0.001307913334487316,-2.8379292346448963e-5,3.0044539506056616e-8,0.0013082284553436203,-2.820295608258615e-5,2.992467194139616e-8,0.001308449795111905,-2.798934380814309e-5,2.9781980996995586e-8,0.0013085703641908598,-2.7789555942438875e-5,2.9649940584985727e-8,0.0013086075992558702,-2.7649081856834136e-5,2.9557946510256037e-8,0.0013085965713823258,-2.7596068441511594e-5,2.9523765739778143e-8,0.001308578775603071,-2.763613069992761e-5,2.9550353019012925e-8,0.0013085910545795772,-2.7754483402330733e-5,2.9627464816654964e-8,0.0013086582864577261,-2.7923038311927625e-5,2.973644409629548e-8,0.00130879097813508,-2.810881146934206e-5,2.985573633256056e-8,0.0013089866559391336,-2.8280794299983097e-5,2.9965288371083946e-8,0.0013092330853364449,-2.841421177594859e-5,3.004918959647898e-8,0.0013095117218239086,-2.849249915857971e-5,3.00968495932514e-8,0.0013098006051115334,-2.8507901829533638e-5,3.010335322333937e-8,0.0013100766331532816,-2.8461574612671678e-5,3.006956699423517e-8,0.00131031764281404,-2.8363692896845595e-5,3.0002285569679514e-8,0.0013105049028917662,-2.823351948220192e-5,2.991431821194102e-8,0.0013106264457913824,-2.809877946612421e-5,2.9824048280105456e-8,0.001310681133427025,-2.7993271777071674e-5,2.9753766780009736e-8,0.0013106824426351005,-2.795161269268233e-5,2.972610709291234e-8,0.0013106598420135267,-2.8000824017845768e-5,2.975846481850516e-8,0.001310655166280242,-2.8150479328616627e-5,2.9856575254154354e-8,0.0013107127876955784,-2.8385509043680695e-5,3.000993471753322e-8,0.0013108657814568222,-2.866643869990418e-5,3.0192141079751784e-8,0.0013111236756196114,-2.8939129152693387e-5,3.036744088323199e-8,0.0013114677764056418,-2.915104009753794e-5,3.0501486920959236e-8,0.001311856492484787,-2.9267251923133067e-5,3.0571854184595145e-8,0.001312238049311916,-2.9279859822208612e-5,3.057411525864111e-8,0.0013125651169096678,-2.9208198159179714e-5,3.0521802359526976e-8,0.0013128064021552001,-2.909142250826646e-5,3.044129361786551e-8,0.0013129525886068233,-2.897698933927629e-5,3.0364030849243177e-8,0.001313016206816826,-2.890865807546817e-5,3.031854722956662e-8,0.001313026461668143,-2.8916887043806896e-5,3.0324238748257375e-8,0.0013130209243820167,-2.901349026915853e-5,3.0388075426164644e-8,0.0013130364508609068,-2.91912467162573e-5,3.050460897562148e-8,0.0013131016267059507,-2.9427863667728573e-5,3.0658773423636455e-8,0.00131323234339437,-2.9692576163541312e-5,3.0830280966021656e-8,0.0013134309224520154,-2.9953194080713292e-5,3.099817761610996e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_14.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_14.json new file mode 100644 index 000000000..e8e2db514 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_14.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":14000,"numberOfSamples":1000,"samples":[0.0013136880538731968,-3.0181825300251084e-5,3.1144455018197914e-8,0.0013139862307697747,-3.0358458604268804e-5,3.125626468859012e-8,0.0013143034381558063,-3.0472498704118995e-5,3.1326857923882795e-8,0.001314616342296335,-3.0522889122674205e-5,3.135568412117831e-8,0.0013149028238326915,-3.051757614543907e-5,3.134810730752583e-8,0.0013151441476950397,-3.0472812693602606e-5,3.1315005489895234e-8,0.001315327245423572,-3.041233669157899e-5,3.127221966442859e-8,0.0013154474985632677,-3.0365940022199845e-5,3.1239522569258994e-8,0.0013155119761371786,-3.0366482616605727e-5,3.123852579233063e-8,0.0013155421786821661,-3.044428590458291e-5,3.1288903751562086e-8,0.0013155741637083083,-3.061859253490029e-5,3.140279579367739e-8,0.0013156532826805987,-3.08878545724263e-5,3.15785553459714e-8,0.0013158221093964287,-3.122350814634265e-5,3.179684474210843e-8,0.0013161043666861684,-3.1573152017452694e-5,3.202287220092828e-8,0.001316492562279381,-3.187552478285449e-5,3.221630534507893e-8,0.0013169475071545026,-3.2081986318948946e-5,3.234541530079332e-8,0.0013174114482328236,-3.217362581767834e-5,3.2398333198900105e-8,0.0013178279759007432,-3.216549962188907e-5,3.238578137269618e-8,0.0013181587209702065,-3.209786877058771e-5,3.233512178519737e-8,0.0013183908584672483,-3.202101456924127e-5,3.2280078366949867e-8,0.0013185355723118594,-3.198087692229784e-5,3.22510415181099e-8,0.0013186210256550192,-3.200948903377424e-5,3.226871171627078e-8,0.001318683516304464,-3.212087078817048e-5,3.2341550899422565e-8,0.0013187592325329092,-3.2311333689063695e-5,3.246626921888799e-8,0.0013188777975085585,-3.256278527721231e-5,3.263027897225073e-8,0.0013190580943835157,-3.28478210560236e-5,3.281520552707126e-8,0.001319306537685271,-3.3135522599053245e-5,3.30007052286256e-8,0.0013196176305973269,-3.339691167788335e-5,3.3167938459672674e-8,0.0013199762931723731,-3.360923943949643e-5,3.330224076991175e-8,0.001320361240591444,-3.3758679883073964e-5,3.339478932604852e-8,0.0013207486407314094,-3.3841371491741154e-5,3.3443266039948134e-8,0.0013211154170834028,-3.3863122696377714e-5,3.345170814905867e-8,0.0013214419486963593,-3.3838325595684376e-5,3.342984862739796e-8,0.0013217143059939618,-3.3788485178276064e-5,3.3392152957732015e-8,0.0013219262892678202,-3.374042925569602e-5,3.3356565064026065e-8,0.0013220814837101608,-3.37239298755937e-5,3.334280561542386e-8,0.0013221952658236343,-3.3768093745891034e-5,3.336987271475884e-8,0.0013222959339579021,-3.389572813238187e-5,3.345230413051685e-8,0.0013224231012386285,-3.411559264521433e-5,3.359518483099222e-8,0.001322620987373266,-3.44143314836092e-5,3.378904291433436e-8,0.0013229254974994617,-3.47525377055976e-5,3.4007455453146385e-8,0.0013233481259613213,-3.507078420316715e-5,3.421110391244622e-8,0.0013238651644779758,-3.5307915680853196e-5,3.435980179531848e-8,0.0013244214578083684,-3.5424988893193025e-5,3.4428250117923195e-8,0.0013249498096669955,-3.5421322382391885e-5,3.441665080515855e-8,0.0013253957656545127,-3.533284530570563e-5,3.4349593606930406e-8,0.0013257341054285624,-3.521518782185486e-5,3.4264687362774436e-8,0.0013259708733802966,-3.5122901891955616e-5,3.4198504380576074e-8,0.0013261345823387194,-3.509485421874728e-5,3.4176685340857736e-8,0.0013262639590043055,-3.514877227589115e-5,3.421034115508173e-8,0.0013263974759466818,-3.5282692478288204e-5,3.42972534612874e-8,0.0013265664975942637,-3.547980948220061e-5,3.4425417060696266e-8,0.00132679174008558,-3.5714173837029465e-5,3.457707337361339e-8,0.0013270820868991236,-3.595606011854193e-5,3.473236215303623e-8,0.0013274350277215283,-3.617667618018595e-5,3.487237396855363e-8,0.0013278383205704806,-3.6352045676457e-5,3.4981566469251094e-8,0.0013282725585155749,-3.6465885830951754e-5,3.504952018493835e-8,0.0013287143399232126,-3.651136884131447e-5,3.507202780552796e-8,0.001329139723468503,-3.649166207236073e-5,3.5051459488144146e-8,0.0013295275370495275,-3.6419245769639135e-5,3.499636143139478e-8,0.0013298621741601225,-3.631427873602864e-5,3.492040029054349e-8,0.0013301357987788196,-3.620233676919433e-5,3.484081953074903e-8,0.0013303500182077856,-3.6111625895291846e-5,3.4776475543805855e-8,0.0013305170072328,-3.606960581815073e-5,3.4745462642883064e-8,0.0013306599051258836,-3.609882203418703e-5,3.4762278550856455e-8,0.0013308118536023116,-3.621166286686944e-5,3.483441417239421e-8,0.0013310123518564367,-3.64043217054422e-5,3.495855682409469e-8,0.0013312994223816388,-3.6651762152887505e-5,3.511751481890027e-8,0.0013316973518746693,-3.6907391838432765e-5,3.528018149292224e-8,0.0013322032136629622,-3.711186898684884e-5,3.540737536800615e-8,0.0013327798493111566,-3.721219549322923e-5,3.546437127639159e-8,0.0013333634934342639,-3.718420813249119e-5,3.543571757580381e-8,0.001333886255019829,-3.70450465515009e-5,3.53335093009964e-8,0.0013343019613464686,-3.6846215847581066e-5,3.5192757078025216e-8,0.001334600413137058,-3.6651362298198277e-5,3.505642654975122e-8,0.0013348042208097524,-3.6512872822752915e-5,3.495958564720737e-8,0.0013349544109773996,-3.6458841744971036e-5,3.49205708479965e-8,0.0013350949386154267,-3.649215529746224e-5,3.49404840851344e-8,0.0013352621732775469,-3.659679818886342e-5,3.500770195061645e-8,0.001335480179315456,-3.6746003522191745e-5,3.510363508802379e-8,0.0013357600358690303,-3.6909212409168185e-5,3.520756323936493e-8,0.0013361011544938224,-3.705705068984642e-5,3.52999605336332e-8,0.00133649332519081,-3.7164741980348925e-5,3.536463540591373e-8,0.0013369190829818159,-3.7214510810799346e-5,3.539015342857483e-8,0.0013373563443612583,-3.719721204638616e-5,3.537079341232845e-8,0.0013377813051418917,-3.711323131523201e-5,3.530711046883947e-8,0.0013381715937814552,-3.697254005026054e-5,3.520601101140213e-8,0.0013385094912165925,-3.6793660324817705e-5,3.5080116340020854e-8,0.0013387847813319696,-3.660147627572446e-5,3.494630461274569e-8,0.0013389968351418553,-3.642410292771776e-5,3.482354178926302e-8,0.0013391557003256266,-3.628905404552198e-5,3.473019081800264e-8,0.0013392819820180002,-3.621893946658274e-5,3.468102678374732e-8,0.0013394052631200586,-3.622700347066692e-5,3.468425016446891e-8,0.0013395607383982387,-3.631286700900988e-5,3.473878515860904e-8,0.0013397835600754613,-3.645915330073845e-5,3.483228424044899e-8,0.0013401005623555385,-3.663056453013473e-5,3.494077405219707e-8,0.0013405202232471124,-3.6777887727110934e-5,3.5031461893425745e-8,0.0013410241084409612,-3.684910446392256e-5,3.5070089714356354e-8,0.0013415655317836142,-3.68068037108336e-5,3.503236888286036e-8,0.0013420805713068025,-3.664539114072159e-5,3.491530557749418e-8,0.0013425100358751974,-3.6397470548011556e-5,3.47413920987351e-8,0.00134282186684753,-3.6122771266874264e-5,3.455114282299104e-8,0.0013430210440999052,-3.5884585735838275e-5,3.438718523558038e-8,0.0013431424937006674,-3.5727401868071906e-5,3.427912167202074e-8,0.00134323392387406,-3.5666709476200635e-5,3.423668442759081e-8,0.0013433393957544833,-3.569188452387105e-5,3.425186840423222e-8,0.0013434898472930886,-3.577592172660759e-5,3.430576805004325e-8,0.0013437006458960645,-3.588557734935549e-5,3.4375631883152696e-8,0.0013439733632099559,-3.598872432152733e-5,3.443987682266083e-8,0.0013442990272794215,-3.6058572131738544e-5,3.448082578605249e-8,0.0013446613049089872,-3.6075754726357985e-5,3.44859220020242e-8,0.001345039248616876,-3.6029368037547205e-5,3.444825503332818e-8,0.0013454098213895693,-3.591751673460431e-5,3.436684759254604e-8,0.0013457504724702282,-3.57474829484819e-5,3.424678910825797e-8,0.0013460419605556845,-3.5535332633184876e-5,3.409904369034362e-8,0.0013462713941414768,-3.530453678562293e-5,3.3939575913952353e-8,0.0013464350440412546,-3.5083247688415916e-5,3.3787496601098456e-8,0.001346540218956281,-3.490026072080504e-5,3.366224387151234e-8,0.0013466055506973335,-3.478008498355249e-5,3.358013732940204e-8,0.001346659241019408,-3.4737853074248655e-5,3.355088149022233e-8,0.0013467351263881956,-3.477505002897689e-5,3.3574748237485566e-8,0.0013468668157807983,-3.487707274585662e-5,3.36411293630354e-8,0.0013470805087412794,-3.501350818296307e-5,3.3728992049500143e-8,0.0013473874871725111,-3.5141989537112516e-5,3.3809694862078156e-8,0.0013477779846166242,-3.5216299066590065e-5,3.385250575241212e-8,0.0013482190793279586,-3.5198369687471605e-5,3.3832555330064887e-8,0.001348659613978359,-3.507162618165665e-5,3.3739577083562544e-8,0.001349043468490627,-3.485031268644354e-5,3.358395470384573e-8,0.001349327999366581,-3.4578485620740276e-5,3.3395893343763146e-8,0.0013494994616960665,-3.431622032059404e-5,3.321604676365601e-8,0.001349576900362316,-3.411840812110945e-5,3.3081186820720924e-8,0.0013496024923671088,-3.4016892922365775e-5,3.3012189592066463e-8,0.0013496246279193777,-3.401415154718749e-5,3.300992090644571e-8,0.0013496829179363164,-3.408870967312186e-5,3.305913434321514e-8,0.0013498005419856707,-3.420638364611618e-5,3.313629142245499e-8,0.001349983766265312,-3.433103577998142e-5,3.3216931742549514e-8,0.001350225503188383,-3.443167213616684e-5,3.328041116125517e-8,0.001350509870791549,-3.44857855079198e-5,3.3311987997451824e-8,0.001350816111848709,-3.44802776149318e-5,3.330325655153641e-8,0.0013511215354534733,-3.44113203272646e-5,3.325193674476666e-8,0.0013514038266242718,-3.428394324938091e-5,3.3161588903372553e-8,0.0013516432294084326,-3.41115562702498e-5,3.3041366067246576e-8,0.0013518249947347244,-3.391515061958602e-5,3.29055587983786e-8,0.0013519421489563276,-3.372159161237384e-5,3.277246672853169e-8,0.0013519981162253448,-3.35604192219653e-5,3.2662172488743894e-8,0.0013520082488663807,-3.345899609113347e-5,3.259313778399188e-8,0.0013519991491952143,-3.343655294053388e-5,3.257806735071459e-8,0.0013520049886915973,-3.349849264305731e-5,3.262004101630264e-8,0.0013520609158930905,-3.36328575909331e-5,3.2710241377374956e-8,0.0013521948074782938,-3.3810651240403614e-5,3.2828394204526694e-8,0.0013524194680195325,-3.399070247049815e-5,3.2946301667474426e-8,0.0013527275548078518,-3.412846985252045e-5,3.3033954284171145e-8,0.0013530910516223313,-3.41870260521444e-5,3.306696170857802e-8,0.0013534662186818406,-3.414758958099839e-5,3.303351712767489e-8,0.0013538036921596796,-3.401650121264336e-5,3.293885919569297e-8,0.0013540617630267778,-3.3825695437600704e-5,3.280532715743045e-8,0.0013542189655621978,-3.3625013396523797e-5,3.2666968653528377e-8,0.0013542809896239987,-3.3467679762926974e-5,3.255963827369867e-8,0.0013542783419837156,-3.3394020433318414e-5,3.251003853738814e-8,0.0013542554119995557,-3.342020697923614e-5,3.252828382153754e-8,0.0013542560140103023,-3.3536391035527796e-5,3.2606892142050424e-8,0.0013543116989025482,-3.371353007933651e-5,3.2725642792952345e-8,0.0013544365308802784,-3.391431273365121e-5,3.285910327271554e-8,0.0013546280975285543,-3.410316353858851e-5,3.2983383466057345e-8,0.0013548720539619643,-3.4252552907384106e-5,3.308026489902493e-8,0.001355147353668992,-3.43454908576762e-5,3.313870075252464e-8,0.0013554305468037433,-3.437553330264171e-5,3.315467676927687e-8,0.0013556988011802253,-3.434572357619407e-5,3.313045281129339e-8,0.0013559320038673691,-3.426735815892247e-5,3.30737806614842e-8,0.0013561145343338845,-3.415887769336406e-5,3.299724375590522e-8,0.0013562372346350193,-3.40446430953795e-5,3.291748056072256e-8,0.001356299729968249,-3.395293821719811e-5,3.285379960496967e-8,0.0013563126464800305,-3.39124616274109e-5,3.2825694374099335e-8,0.0013562986345168043,-3.394695718115785e-5,3.284908231937111e-8,0.0013562906901488832,-3.406854808973949e-5,3.2931730931658255e-8,0.0013563265580224901,-3.4271700357362895e-5,3.3069227097465745e-8,0.0013564394803830895,-3.453081024388408e-5,3.3243512234392763e-8,0.001356647830444362,-3.480395690125668e-5,3.342564568063368e-8,0.0013569477158602284,-3.504296952579012e-5,3.358281757335669e-8,0.0013573120584085639,-3.52068525793514e-5,3.368754392194241e-8,0.001357697050412798,-3.5273779767518736e-5,3.3725762172275216e-8,0.0013580538346326509,-3.524742322405932e-5,3.3700952947215904e-8,0.0013583414729187431,-3.515577457801083e-5,3.3633068996217375e-8,0.0013585373183607017,-3.504326814963739e-5,3.3552899090837633e-8,0.0013586421139425234,-3.4958781479045985e-5,3.3493719387707e-8,0.001358678685937704,-3.494290707046618e-5,3.3482624669021657e-8,0.001358684778336174,-3.501803608967189e-5,3.353396129882613e-8,0.001358702322909947,-3.518405715028354e-5,3.36466993389363e-8,0.0013587666406036992,-3.542061521536396e-5,3.380626499920978e-8,0.0013588989123856205,-3.5694495803273485e-5,3.398974496696862e-8,0.001359103663247866,-3.5969025766868755e-5,3.417229612867719e-8,0.0013593708567535968,-3.621226756590788e-5,3.4332592451649465e-8,0.0013596806793210175,-3.640207539916034e-5,3.4456072169122394e-8,0.0013600088338772479,-3.6527817297702786e-5,3.4535941490019846e-8,0.0013603309085686056,-3.6589745925869715e-5,3.4572666368770736e-8,0.0013606253906847028,-3.659727205627579e-5,3.4572817000381455e-8,0.0013608755966453268,-3.656705235731982e-5,3.45478428901892e-8,0.0013610710755603856,-3.652125748003627e-5,3.4512957394544435e-8,0.0013612090115036409,-3.648585481662091e-5,3.448596151433922e-8,0.0013612958461505,-3.648833256815448e-5,3.448560847301663e-8,0.0013613487825353768,-3.655412453139295e-5,3.452905427534737e-8,0.0013613960977975756,-3.6701245140876124e-5,3.4628141465119906e-8,0.0013614745650237811,-3.693358561190437e-5,3.4784884782548805e-8,0.0013616224205170902,-3.7235042204870165e-5,3.4987633233731027e-8,0.001361868091522445,-3.756832421090297e-5,3.521045772248526e-8,0.001362218255945228,-3.788197415238886e-5,3.541808383563176e-8,0.0013626514699812326,-3.812539193249165e-5,3.557619486093644e-8,0.001363122322234058,-3.8266165560665596e-5,3.566324383611881e-8,0.0013635754647547845,-3.830134386399334e-5,3.5678079037798024e-8,0.0013639630780626708,-3.825738313571894e-5,3.563975015298319e-8,0.001364258080357862,-3.817994201829989e-5,3.5580274568062977e-8,0.0013644589434662312,-3.811922202797349e-5,3.5534332460088205e-8,0.0013645865742663128,-3.81166924124298e-5,3.5530027944857735e-8,0.0013646762446455044,-3.819653354824757e-5,3.558310331044814e-8,0.001364767819829093,-3.8362605590993256e-5,3.569514079478911e-8,0.0013648967631197295,-3.8600238344742254e-5,3.585514627803409e-8,0.0013650874946786213,-3.888148752071901e-5,3.60434300221522e-8,0.0013653499642588421,-3.917227000116867e-5,3.62365942886353e-8,0.00136567964200512,-3.943967176457917e-5,3.6412451385441956e-8,0.0013660603709506384,-3.965784039600382e-5,3.65538578644758e-8,0.0013664688889499187,-3.981147629204727e-5,3.665089579529965e-8,0.0013668796761675812,-3.989679821734419e-5,3.6701401260529234e-8,0.0013672690955396569,-3.992052333462929e-5,3.6710241547116054e-8,0.0013676183253096337,-3.9897716306200194e-5,3.668789735721834e-8,0.0013679151464472477,-3.984932666566189e-5,3.664884493646582e-8,0.0013681550099158162,-3.979985343784534e-5,3.660997364210455e-8,0.0013683418187992174,-3.977508572660584e-5,3.658897704031485e-8,0.0013684886345164064,-3.9799531863791056e-5,3.6602481816290366e-8,0.0013686181140462686,-3.989297417404592e-5,3.6663608773571173e-8,0.0013687618136698219,-4.006569078124706e-5,3.677873040014451e-8,0.0013689567976789784,-4.031268759372785e-5,3.6943686509812775e-8,0.0013692379960220952,-4.0608958982055686e-5,3.714077674900414e-8,0.0013696263976024602,-4.0909688045915914e-5,3.733908018595111e-8,0.001370116858706226,-4.115943735403728e-5,3.7500783826076915e-8,0.0013706730192843547,-4.131030892561659e-5,3.759353716751259e-8,0.0013712357655380756,-4.1341651354543865e-5,3.760387092264407e-8,0.001371743681640421,-4.1269733274189294e-5,3.754378869036469e-8,0.0013721549303818486,-4.114093707006044e-5,3.744600118910848e-8,0.0013724590038156602,-4.1013018078885606e-5,3.7350822712677154e-8,0.0013726746583584263,-4.0935524588789915e-5,3.7292433498253575e-8,0.0013728388253621247,-4.093780361015353e-5,3.7290504667023286e-8,0.0013729936653109317,-4.102619609853645e-5,3.7348411588796894e-8,0.001373176359782013,-4.118762655376452e-5,3.745605098886693e-8,0.0013734130133102524,-4.139607981819826e-5,3.759467361926248e-8,0.0013737161837680623,-4.161950138762874e-5,3.7741869452387925e-8,0.0013740850229568907,-4.182594710895547e-5,3.787581954548767e-8,0.0013745072421834012,-4.198858396882682e-5,3.797857502949695e-8,0.0013749623837124778,-4.208926335925624e-5,3.803827857381001e-8,0.0013754258276343432,-4.2120407717748035e-5,3.8050265155743136e-8,0.001375872892622539,-4.2085198307853355e-5,3.801710263943968e-8,0.001376282469925798,-4.199628974034897e-5,3.7947728565110885e-8,0.0013766397572874227,-4.187345120748918e-5,3.7855899666402347e-8,0.0013769379150291574,-4.1740698791756187e-5,3.775826686919178e-8,0.0013771788132807986,-4.162339046388268e-5,3.76723488673647e-8,0.0013773731537905993,-4.154540420571933e-5,3.7614493141915814e-8,0.0013775401104706387,-4.1526264618012495e-5,3.759779228022895e-8,0.0013777064032593797,-4.157796597586423e-5,3.762987031680914e-8,0.001377904267471179,-4.170125910920436e-5,3.771044184184231e-8,0.0013781672206391812,-4.188175848661827e-5,3.78288749397831e-8,0.00137852256618738,-4.2087548328483725e-5,3.7962807628071696e-8,0.0013789809169083302,-4.2271422389212076e-5,3.807982991820045e-8,0.0013795260580142504,-4.238109909941585e-5,3.8144447194615674e-8,0.0013801120459359865,-4.237742637005507e-5,3.813041208095439e-8,0.0013806741263976,-4.225334424947585e-5,3.8033625865393774e-8,0.0013811520519300435,-4.2041187655938626e-5,3.787713159675286e-8,0.0013815136370865081,-4.180098864064637e-5,3.7703002181980215e-8,0.0013817644462791729,-4.159593522969593e-5,3.755522195444356e-8,0.0013819398040921613,-4.146995772891535e-5,3.7463973571636786e-8,0.0013820873195676013,-4.143814444971667e-5,3.74389528223684e-8,0.0013822508297504756,-4.1489856674521627e-5,3.747173694159376e-8,0.0013824612018183504,-4.159808318168086e-5,3.7542636676095634e-8,0.001382733677333939,-4.172918004101423e-5,3.76277743218216e-8,0.0013830692173663335,-4.185025959459586e-5,3.7704340994960595e-8,0.0013834575067367659,-4.193387127219509e-5,3.7753754368892116e-8,0.00138388030970731,-4.196070426809343e-5,3.776329962305264e-8,0.0013843148322871465,-4.1921028124019695e-5,3.7726878625517075e-8,0.0013847370777409624,-4.181512286564115e-5,3.7645150528966244e-8,0.0013851250900450299,-4.165273271465304e-5,3.752512539985943e-8,0.0013854619058602147,-4.145156074913463e-5,3.737919056711855e-8,0.0013857379458243554,-4.123483834305219e-5,3.722351350041851e-8,0.0013859525067954938,-4.1028195536964666e-5,3.707590164867331e-8,0.001386114186987945,-4.08562465832129e-5,3.6953376917189425e-8,0.0013862402914967716,-4.0739217947163935e-5,3.6869727504020365e-8,0.0013863552819137583,-4.068981038566365e-5,3.683325080139284e-8,0.0013864882812566375,-4.071045407698197e-5,3.684488191793497e-8,0.0013866695093654466,-4.0791084850707254e-5,3.689683217641563e-8,0.0013869252570760705,-4.0907845082072896e-5,3.6971967000828836e-8,0.0013872711358115565,-4.102392437415202e-5,3.7044638632372434e-8,0.0013877044103900269,-4.10944872644231e-5,3.708418444800822e-8,0.0013881982022425643,-4.107730918647336e-5,3.70621554354846e-8,0.0013887024507251455,-4.094823201885367e-5,3.696274535980045e-8,0.0013891560996636264,-4.071545369969397e-5,3.6792453536201996e-8,0.0013895088976246747,-4.042264374578624e-5,3.658214577314118e-8,0.0013897421255975183,-4.013475017712353e-5,3.637717862062872e-8,0.0013898751358086116,-3.99123909946508e-5,3.621955119697095e-8,0.0013899539157585976,-3.97898760399196e-5,3.613256495667892e-8,0.0013900305358917047,-3.976825529054825e-5,3.611605869920365e-8,0.0013901459897183817,-3.982280938552323e-5,3.615187595826213e-8,0.001390322583927315,-3.9916483926864295e-5,3.621354110721034e-8,0.0013905644815372748,-4.00116379826972e-5,3.627465691377648e-8,0.001390862196549241,-4.007719389834769e-5,3.6313891042696686e-8,0.0013911977272878053,-4.009168854677753e-5,3.631692015857626e-8,0.001391548803289706,-4.004388985804637e-5,3.627660019245447e-8,0.0013918921108757572,-3.9932383942914886e-5,3.619246897144912e-8,0.001392205925877442,-3.976474847087717e-5,3.607009012040189e-8,0.001392472481833256,-3.9556371616133894e-5,3.592027726302581e-8,0.0013926801795685095,-3.932876436594814e-5,3.5758025153182566e-8,0.0013928255206943443,-3.910712261197275e-5,3.5600891948591315e-8,0.0013929143574365078,-3.891704325009154e-5,3.546670424830646e-8,0.0013929619662561058,-3.878067864465175e-5,3.5370785800753655e-8,0.0013929916634681091,-3.8712865216251155e-5,3.5323145245009847e-8,0.0013930319212074739,-3.871783709874851e-5,3.532613964822986e-8,0.0013931121650108214,-3.878718027241075e-5,3.537313617747967e-8,0.0013932576761824852,-3.889956926863257e-5,3.544855030305457e-8,0.0013934841205019005,-3.902264562679513e-5,3.5529430896809445e-8,0.0013937923389470475,-3.911747336501126e-5,3.558876680690813e-8,0.0013941645951322254,-3.9146037401005566e-5,3.560072677257016e-8,0.0013945643433518572,-3.908149684330105e-5,3.554760976148454e-8,0.0013949419740809537,-3.8919080012482775e-5,3.54271205202408e-8,0.0013952477277678645,-3.868301987054237e-5,3.525691407233159e-8,0.001395448996586115,-3.842366805801884e-5,3.507242835859129e-8,0.0013955441184541493,-3.8202198743737096e-5,3.491619511363628e-8,0.001395563841894682,-3.806835542580855e-5,3.482237329132881e-8,0.0013955584098649994,-3.804297850225461e-5,3.4804676331452736e-8,0.0013955778157443777,-3.8114400232592614e-5,3.4854056156277526e-8,0.0013956561830292,-3.8248114880291454e-5,3.4945709067619815e-8,0.0013958061096767589,-3.840169374270801e-5,3.504970300817749e-8,0.001396021525706078,-3.853707477095065e-5,3.513962678304474e-8,0.0013962843041433993,-3.8627076516026636e-5,3.5197026880596114e-8,0.0013965707576988314,-3.865699570879773e-5,3.521229439063478e-8,0.0013968563725718281,-3.8623536025609064e-5,3.5183688298750485e-8,0.0013971187911648243,-3.8532907044979155e-5,3.511587978476073e-8,0.001397339741657006,-3.8398963032655006e-5,3.501866053362015e-8,0.0013975065707011172,-3.824149273866268e-5,3.490584928664414e-8,0.0013976137214529206,-3.808437691328442e-5,3.47941124837482e-8,0.0013976641337538325,-3.795316224892923e-5,3.470130668547223e-8,0.0013976701313359334,-3.787171824233571e-5,3.4644083108582145e-8,0.0013976530803277948,-3.785809777299285e-5,3.4634877223998395e-8,0.0013976411745630901,-3.792027581554576e-5,3.467883721971932e-8,0.0013976651171231898,-3.8052873706371765e-5,3.477154552196402e-8,0.001397752138213877,-3.8236151892252456e-5,3.489846164729002e-8,0.0013979195447783234,-3.8438219455829296e-5,3.5036710195449224e-8,0.0013981694399458889,-3.862056128580171e-5,3.515918741519236e-8,0.001398486147697437,-3.874608834560939e-5,3.524031957876636e-8,0.0013988374531938928,-3.878827062153085e-5,3.526239348503685e-8,0.001399180229735303,-3.873936055813441e-5,3.5221074317918304e-8,0.0013994701906148062,-3.861521125226919e-5,3.5128449985403174e-8,0.0013996740998213511,-3.845410205611195e-5,3.501191367250836e-8,0.0013997808979702491,-3.830798334251088e-5,3.490787420794603e-8,0.0013998068841861602,-3.822734029112152e-5,3.485117466616385e-8,0.0013997912690781416,-3.824484084870901e-5,3.486381492238321e-8,0.001399782875381604,-3.836511152067367e-5,3.494805808686753e-8,0.0013998239209614296,-3.856545057793629e-5,3.508720829151086e-8,0.0013999383452429608,-3.880618248898522e-5,3.5253069111989446e-8,0.001400128687982977,-3.9044513556967366e-5,3.5415721677933286e-8,0.0014003803140351105,-3.924559928935504e-5,3.555119946742358e-8,0.0014006688652410718,-3.938796884383357e-5,3.564509648433299e-8,0.0014009672459019793,-3.946401158692379e-5,3.569268613464028e-8,0.0014012504631784645,-3.9477773714654874e-5,3.5697219627372335e-8,0.0014014983378744935,-3.9442025791079544e-5,3.566783351875651e-8,0.0014016968485090753,-3.937562123845998e-5,3.561776933093947e-8,0.0014018389311078144,-3.930135009856592e-5,3.556297869454529e-8,0.0014019252611881805,-3.924395351028988e-5,3.552079791655267e-8,0.0014019650674987158,-3.922771502573723e-5,3.550823547292913e-8,0.0014019765254487317,-3.927316184126799e-5,3.5539561321083074e-8,0.0014019859072127623,-3.939286678870541e-5,3.562326047613582e-8,0.0014020245683540645,-3.9587049026522654e-5,3.57589225433063e-8,0.0014021232793080098,-3.984050350448809e-5,3.5935183683834784e-8,0.0014023045619820167,-4.0122876368864325e-5,3.613011664758931e-8,0.001402575188517273,-4.0393711578013267e-5,3.631499515737404e-8,0.0014029218430838034,-4.0611873294491905e-5,3.6461068646827724e-8,0.0014033123169753285,-4.074679499372091e-5,3.654749216388009e-8,0.0014037026283073234,-4.078780138232347e-5,3.6567752091281347e-8,0.0014040481592061073,-4.074819558912667e-5,3.653228462529379e-8,0.0014043154629272954,-4.0662606574106574e-5,3.646629348386904e-8,0.0014044912857379814,-4.057825582912705e-5,3.640333363998543e-8,0.001404586199481951,-4.054249152292174e-5,3.6376420565956945E-08,0.0014046315916832204,-4.059001163717845e-5,3.640913312668297e-8,0.0014046706036646942,-4.073363552405963e-5,3.650939734711049e-8,0.0014047457709805932,-4.096173679938644e-5,3.6668033280187714e-8,0.0014048875975041877,-4.1243138982900314e-5,3.686248986601918e-8,0.0014051079231287907,-4.153727189609017e-5,3.706412048229687e-8,0.0014053996891925462,-4.180543919169627e-5,3.724605723962737e-8,0.0014057418851642401,-4.201928520354164e-5,3.7388982979293707e-8,0.0014061067325829505,-4.216459310863377e-5,3.748357386154352e-8,0.0014064662792454632,-4.2240904034702006e-5,3.75300453375767e-8,0.001406796935332708,-4.225873123662221e-5,3.753610982343233e-8,0.0014070818711074016,-4.223609237701761e-5,3.7514565091294765e-8,0.0014073119283782146,-4.219538055815336e-5,3.748118402098386e-8,0.0014074858454996213,-4.216086923191445e-5,3.7453036902211475e-8,0.0014076103837110468,-4.215657537536124e-5,3.744699428145286e-8,0.001407700482867457,-4.2203893189522455e-5,3.7477990165415446e-8,0.0014077790394113716,-4.231848459825597e-5,3.755673767593618e-8,0.0014078754676845311,-4.250633958081457e-5,3.768691664581742e-8,0.0014080219967517041,-4.275967059593405e-5,3.7862358742113034e-8,0.0014082470158322466,-4.305438268393406e-5,3.8065444478173206e-8,0.0014085662107764442,-4.3351709842482535e-5,3.826846229183665e-8,0.0014089744868300872,-4.360598119993927e-5,3.843922404533621e-8,0.0014094431536157055,-4.377765422595991e-5,3.8550288702544655e-8,0.0014099256069116926,-4.384699363489847e-5,3.8588547143931624e-8,0.001410370621965012,-4.3822017616625005e-5,3.8560684416864574e-8,0.0014107379906385569,-4.373660777036701e-5,3.8491618344667396e-8,0.001411009964557524,-4.363969764258664e-5,3.841657689536917e-8,0.0014111946000197385,-4.3580512043394426e-5,3.8370420063415034e-8,0.0014113211867777273,-4.359545857298468e-5,3.837829828573306e-8,0.0014114306461733982,-4.3700232323209964e-5,3.8450239351540594e-8,0.001411564408632792,-4.388818610139138e-5,3.858035161105931e-8,0.0014117547305501578,-4.4134232812283986e-5,3.874997182226532e-8,0.0014120184750084578,-4.440248212920195e-5,3.8933324817321076e-8,0.0014123552829552618,-4.4655279826922307e-5,3.910396017989396e-8,0.0014127498958597165,-4.4861304314633954e-5,3.924032595412258e-8,0.0014131773611926266,-4.500092974261656e-5,3.932930729967511e-8,0.0014136092759243295,-4.5068124233728125e-5,3.9367328715653395e-8,0.001414019350464863,-4.50693223258045e-5,3.9359414083827914e-8,0.001414387280570928,-4.5020436860496765e-5,3.931705416718012e-8,0.0014147007530842784,-4.4943253683445574e-5,3.925572649703533e-8,0.0014149560140847756,-4.486209219785531e-5,3.919262101512192e-8,0.0014151576551419522,-4.4801074437002196e-5,3.914474595500056e-8,0.001415318136201093,-4.478183557739158e-5,3.912726793698288e-8,0.0014154572003696824,-4.482122856836196e-5,3.9151802563573214e-8,0.0014156009001108517,-4.492859041749618e-5,3.9224425325897754e-8,0.0014157795097893533,-4.5102449376290346e-5,3.93433918158505e-8,0.0014160233109937125,-4.532727500167816e-5,3.94970098303655e-8,0.0014163555567608258,-4.557201265798743e-5,3.96628298780135e-8,0.0014167833913719533,-4.579313198730899e-5,3.980996986060289e-8,0.0014172901012929602,-4.594441145983626e-5,3.990606550755613e-8,0.0014178341748209257,-4.599235373069634e-5,3.9928088314464635e-8,0.0014183591944381855,-4.593096157451421e-5,3.987268351609923e-8,0.0014188124373602864,-4.5787093578951006e-5,3.975984439233655e-8,0.001419163393834719,-4.561185313227637e-5,3.9626636645945325e-8,0.0014194126920989531,-4.5462152420401115e-5,3.951386849890556e-8,0.0014195882504336435,-4.5382171232237414e-5,3.945270542300551e-8,0.0014197329253106763,-4.539256577330823e-5,3.9456983564371725e-8,0.0014198906236090039,-4.548923231726588e-5,3.952257759491028e-8,0.001420095771986858,-4.5648857684138e-5,3.963175850856077e-8,0.0014203677362581296,-4.5837385340540104e-5,3.975959325884974e-8,0.0014207096597213865,-4.601850510949015e-5,3.988016811818957e-8,0.0014211104809135435,-4.616063637726872e-5,3.9971495331700885e-8,0.0014215489510336552,-4.624177480943514e-5,4.001871904464167e-8,0.0014219986351035052,-4.6251956591088596e-5,4.0015574979438314e-8,0.0014224329376801295,-4.619339291718908e-5,3.996426457805398e-8,0.001422829353219783,-4.607871301987465e-5,3.9874120697775513e-8,0.0014231724530763103,-4.592798447099774e-5,3.9759530620922137e-8,0.0014234554326269762,-4.57652124151591e-5,3.9637548056577846e-8,0.0014236803642659415,-4.561496504861187e-5,3.952556952558051e-8,0.0014238575838519927,-4.5499512314608026e-5,3.943929979142778e-8,0.0014240046262760098,-4.543644346492547e-5,3.9390987574810174e-8,0.0014241448474782898,-4.543650107068099e-5,3.938780661528568e-8,0.0014243055769598875,-4.55014025622324e-5,3.943030334635427e-8,0.0014245153230789524,-4.562160361393435e-5,3.951093333991738e-8,0.0014247992679477627,-4.5774516750711624e-5,3.9613026810845106e-8,0.0014251725776000539,-4.592471607435623e-5,3.97111673534239e-8,0.0014256324150758487,-4.6028499832087334e-5,3.9774539919194244e-8,0.0014261519278773282,-4.604466942670059e-5,3.97745103455597e-8,0.0014266816106519023,-4.595018557846401e-5,3.9695557904295956e-8,0.0014271621257017225,-4.575388705227969e-5,3.9544859389287236e-8,0.0014275457311608392,-4.549845458283125e-5,3.935358890200528e-8,0.001427815306107102,-4.524605002091276e-5,3.916657774531871e-8,0.0014279894860666584,-4.505443172790813e-5,3.9025101307670685e-8,0.001428111845943068,-4.4957151971777735e-5,3.895259664595886e-8,0.0014282324457039898,-4.4956997998443266e-5,3.8950037799349965e-8,0.0014283921152246375,-4.5031813061035744e-5,3.9000405529012745e-8,0.001428614503799861,-4.514594302658012e-5,3.907728510090153e-8,0.0014289052039444517,-4.526123102336767e-5,3.915303573565249e-8,0.0014292549887714064,-4.5344780633131716e-5,3.9204408290150735e-8,0.0014296445351593818,-4.537328317671618e-5,3.921546485399938e-8,0.0014300491927835234,-4.533479827914965e-5,3.917854634066426e-8,0.0014304433224275918,-4.522881772940035e-5,3.909403114722347e-8,0.001430804033341362,-4.5065037434135e-5,3.896929881664266e-8,0.001431114134170649,-4.486114602985143e-5,3.8817147411994384e-8,0.001431364173594574,-4.463995090524377e-5,3.8653843304944497e-8,0.001431553477665542,-4.4426110315797016e-5,3.8496905092415785e-8,0.0014316900992935974,-4.4242818950062476e-5,3.8362786478080485e-8,0.0014317897941557708,-4.410886020323244e-5,3.8264727869013804e-8,0.0014318743099349634,-4.403620954390451e-5,3.8210949087253464e-8,0.0014319691565770345,-4.402814004867514e-5,3.8203232744223565e-8,0.0014321008288139233,-4.407781633250867e-5,3.823596615193787e-8,0.0014322933132242908,-4.4167493057523215e-5,3.829575167824442e-8,0.0014325635783059797,-4.426874231918825e-5,3.8361828243839776e-8,0.0014329159984174987,-4.4344806916418694e-5,3.8407962919808685e-8,0.0014333367610415697,-4.435666435111393e-5,3.840682171688473e-8,0.0014337910720800594,-4.4273697098380086e-5,3.833742616530986e-8,0.0014342273731959762,-4.408716016137151e-5,3.819450047412489e-8,0.0014345914434781843,-4.382020957560829e-5,3.79954130449742e-8,0.0014348470970175808,-4.352582193219588e-5,3.7778581483576264e-8,0.0014349925697684392,-4.326902649537983e-5,3.759070188014273e-8,0.0014350613489107376,-4.3101343714786775e-5,3.746837044387351e-8,0.0014351064354383872,-4.304237393549526e-5,3.74248666578265e-8,0.0014351786308693037,-4.3077895175319485e-5,3.744893988723652e-8,0.001435311120145527,-4.3171511316731736e-5,3.751349253798805e-8,0.001435514983638263,-4.3280124103506245e-5,3.7587031889058094e-8,0.0014357827442222175,-4.33657644870084e-5,3.764234602726513e-8,0.0014360950176135047,-4.340168328161423e-5,3.766080981694061e-8,0.0014364268982985113,-4.3373918763642415e-5,3.7633249662091946e-8,0.0014367527843651797,-4.328039694830718e-5,3.755898187846603e-8,0.0014370497401466067,-4.312909776010434e-5,3.7444270646673757e-8,0.0014372999251545048,-4.29358844997081e-5,3.730070931627148e-8,0.0014374923724849156,-4.2722063680720855e-5,3.71435536648068e-8,0.0014376241618117747,-4.251167408721932e-5,3.6989920136254e-8,0.0014377009262072043,-4.2328490779715396e-5,3.6856738666764285e-8,0.0014377364788064743,-4.2192837572660376e-5,3.675846863045126e-8,0.0014377513692969844,-4.2118585485798534e-5,3.6704856042820815e-8,0.001437770451447845,-4.2110786884528316e-5,3.669912913273134e-8,0.0014378196981251372,-4.21642244916051e-5,3.6736925449717485e-8,0.0014379224790505686,-4.226308798281828e-5,3.680616377621557e-8,0.0014380955334853483,-4.238200534606743e-5,3.6888012155040675e-8,0.0014383449114242503,-4.2488670304332985e-5,3.6959034935254815e-8,0.0014386623333420816,-4.254848883471872e-5,3.69946922542799e-8,0.001439023053413255,-4.253172746547254e-5,3.6974437223496824e-8,0.00143938722951177,-4.242284653717159e-5,3.688818009449981e-8,0.001439707137154768,-4.222971419566938e-5,3.674257304428873e-8,0.0014399409659193428,-4.198781671588203e-5,3.656376280190634e-8,0.001440069459918548,-4.1753765044836575e-5,3.6392606119182155e-8,0.001440106597622063,-4.158679104094984e-5,3.6271381464065536e-8,0.0014400959148385573,-4.1525832600832144e-5,3.622739349459521e-8,0.0014400927711180566,-4.15752438414865e-5,3.626283531393904e-8,0.0014401429180055368,-4.170699406909172e-5,3.635659541946491e-8,0.0014402691460889587,-4.1875615871244114e-5,3.6475292110604114e-8,0.0014404700687453444,-4.20353985030447e-5,3.658586574851633e-8,0.0014407270427852904,-4.215187194132588e-5,3.666388371140973e-8,0.001441013130719309,-4.220595818615349e-5,3.6696359973947585e-8,0.0014413003263376396,-4.219308157288958e-5,3.6680826446642095e-8,0.001441564033217401,-4.212012924590863e-5,3.662287749152233e-8,0.0014417853809006085,-4.2002181831792545e-5,3.653368462176073e-8,0.0014419523959797523,-4.185969337729201e-5,3.642799751790315e-8,0.0014420606999227586,-4.171600435622608e-5,3.632248964966348e-8,0.0014421139198980406,-4.159487387718513e-5,3.623411674528073e-8,0.0014421237028206181,-4.151777055500738e-5,3.6178218018737015e-8,0.0014421089934266833,-4.150085444996026e-5,3.6166287820635e-8,0.0014420941576250958,-4.155198804294638e-5,3.620370937664565e-8,0.0014421057972856064,-4.166845338362705e-5,3.628802792965738e-8,0.0014421685219863218,-4.183607922736202e-5,3.6408352528175015e-8,0.0014423002757643633,-4.203032172674412e-5,3.65463031098458e-8,0.0014425080608542666,-4.22195472333642e-5,3.667862994977846e-8,0.001442784991572208,-4.237031728117714e-5,3.6781252110025435e-8,0.0014431095090614871,-4.245409762385614e-5,3.6834180674033206e-8,0.0014434474962299161,-4.245454297942441e-5,3.682664986919906e-8,0.0014437579597159325,-4.237398291446551e-5,3.676149381934002e-8,0.0014440024218877274,-4.2236870836770005e-5,3.665727124065034e-8,0.0014441566692500326,-4.208735480065546e-5,3.654623465415403e-8,0.0014442210777839057,-4.197894413823149e-5,3.646678154580181e-8,0.0014442238639085503,-4.1957657259825583e-5,3.6451395741224957e-8,0.001444213177633174,-4.204514955028633e-5,3.6514704020701185e-8,0.0014442400148779796,-4.2230738483301597e-5,3.664799820937176e-8,0.001444340327612597,-4.2477002171248194e-5,3.6823531208232587E-08,0.0014445252831045401,-4.273521305190709e-5,3.700583739358809e-8,0.001444782633063003,-4.296167146369278e-5,3.716358146341754e-8,0.0014450854085491184,-4.312785702347721e-5,3.727679374827056e-8,0.001445401951167018,-4.322288651739154e-5,3.733842340885731e-8,0.001445703365975638,-4.3250813436262515e-5,3.735212787958807e-8,0.0014459674945798882,-4.32260760357198e-5,3.73288004390637e-8,0.001446180300220262,-4.316923443732345e-5,3.728344873718978e-8,0.0014463359582635035,-4.310370309668452e-5,3.723292189167686e-8,0.0014464365687389773,-4.305328850624032e-5,3.719426687269874e-8,0.0014464918465855834,-4.304002473972689e-5,3.718325365119318e-8,0.0014465186728166825,-4.308181819575483e-5,3.721266618215463e-8,0.0014465400355141305,-4.3189687170519945e-5,3.7290221487352145e-8,0.0014465827531187007,-4.336489798552785e-5,3.741640893771544e-8,0.0014466736056468219,-4.3596841039752464e-5,3.758294229173246e-8,0.0014468340922974643,-4.386279199894946e-5,3.77726972029659e-8,0.0014470748301542683,-4.413057535440872e-5,3.7961848327240886e-8,0.0014473912922101449,-4.4364408720834884e-5,3.812432810558878e-8,0.0014477626657607462,-4.453297875666711e-5,3.8237820661230854e-8,0.001448154854433801,-4.461771816489685e-5,3.828974037644961e-8,0.0014485274030723117,-4.461890202134063e-5,3.8281447589952853e-8,0.0014488429638407447,-4.455758179245559e-5,3.822931479912126e-8,0.001449077126957026,-4.447225398864734e-5,3.816195570741389e-8,0.001449226023125882,-4.441032020245069e-5,3.8113794316332475e-8,0.0014493090755652274,-4.441579020404974e-5,3.8116125833806295e-8,0.001449364947092221,-4.451633994090186e-5,3.818794133287042e-8,0.0014494407057380814,-4.471426477041007e-5,3.832972073058778e-8,0.0014495774144823556,-4.498555350055323e-5,3.8523117853081915e-8,0.0014497978450341655,-4.5288121537755064e-5,3.873716648698755e-8,0.001450101396289851,-4.557563857325436e-5,3.89383696430426e-8,0.0014504674700356046,-4.581077178440381e-5,3.9100206897818924e-8,0.001450864329811925,-4.59729347684755e-5,3.920855010190983e-8,0.001451258767715561,-4.605934108050844e-5,3.92621859121156e-8,0.001451623153623208,-4.608136827590191e-5,3.926997648012008e-8,0.0014519388956488832,-4.605924560935e-5,3.9246910208725725e-8,0.0014521971379447417,-4.6017229535460886e-5,3.9210629613232204e-8,0.0014523980389310705,-4.5980057149587095e-5,3.917896492879653e-8,0.0014525496603379358,-4.597051953376308e-5,3.9168276920308264e-8,0.0014526669574361673,-4.600759430739576e-5,3.9192135619664394e-8,0.0014527708281076104,-4.610453020282936e-5,3.9259884840940946e-8,0.0014528867245701964,-4.626654176388048e-5,3.9374895639106777e-8,0.0014530421048613528,-4.648831416903428e-5,3.9532731387203335e-8,0.0014532621468013511,-4.6752190201937326e-5,3.971990995005398e-8,0.0014535637916342824,-4.7028515568426274e-5,3.9914326393312656e-8,0.0014539493947660874,-4.727971460801391e-5,4.008841173852169e-8,0.0014544025921314587,-4.7468597955633217e-5,4.021531201044032e-8,0.0014548892922685616,-4.7569142347220584e-5,4.027675511472258e-8,0.0014553650558184153,-4.7575810436338764e-5,4.026972977663235e-8,0.0014557870851216873,-4.750717265528638e-5,4.020889782847651e-8,0.0014561265502366723,-4.7401772022354576e-5,4.012327246018735e-8,0.0014563767220609832,-4.730757137609055e-5,4.004821937536077e-8,0.00145655435776092,-4.726880621379515e-5,4.001569186801683e-8,0.001456694463586125,-4.73144514864003e-5,4.004587627083997e-8,0.0014568404770532691,-4.7451327393656046e-5,4.0142460997834714e-8,0.0014570327641523222,-4.7663290283813975e-5,4.029246947753112e-8,0.001457298519145466,-4.7916441311999795e-5,4.047043105356473e-8,0.0014576457793189451,-4.816871716330359e-5,4.064555627563837e-8,0.0014580630692166065,-4.8380870254886153e-5,4.07896946312839e-8,0.0014585242916217804,-4.85254475628263e-5,4.0883660976549706e-8,0.0014589966823086494,-4.859135992178545e-5,4.092028278391199e-8,0.0014594488895383127,-4.8583561201735886e-5,4.0903922552317477e-8,0.0014598568660654338,-4.851917902858856e-5,4.084752107398645e-8,0.001460206718017994,-4.8422238333548e-5,4.0768741953613706e-8,0.0014604949812930131,-4.831876578154884e-5,4.068648768877478e-8,0.0014607274013576004,-4.823314160900414e-5,4.0618350180221016e-8,0.0014609172150457537,-4.8185712318530414e-5,4.057893429465176e-8,0.001461083502746424,-4.8191179258434105E-05,4.0578670798416085e-8,0.001461249671904525,-4.82571706133708e-5,4.0622715345642995e-8,0.001461441693727446,-4.838261929000545e-5,4.07097296081658e-8,0.0014616854233344243,-4.8556014057686534e-5,4.083066061163576e-8,0.0014620023267894015,-4.8754249269082786e-5,4.0968058990523775e-8,0.0014624034953483796,-4.894358809285292e-5,4.109698020827211e-8,0.0014628831941533296,-4.908464338861261e-5,4.118875936509696e-8,0.0014634150433660768,-4.914226299762998e-5,4.121824393937142e-8,0.0014639548020531532,-4.9098224861191336e-5,4.117296927439143e-8,0.001464451637979818,-4.8961091183785824e-5,4.106020733296679e-8,0.0014648646915946838,-4.8766820370606e-5,4.090722801199529e-8,0.0014651772883869003,-4.8568009313809076e-5,4.075319349404685e-8,0.0014654017214941388,-4.8416426777365386e-5,4.063612262558724e-8,0.0014655731149098806,-4.834715390556542e-5,4.05811408271586e-8,0.0014657366598345033,-4.8370472978448067e-5,4.0594648027202523e-8,0.0014659342958094506,-4.847253437725393e-5,4.066516335293664e-8,0.0014661950114605521,-4.862215666828612e-5,4.076876008564538e-8,0.0014665301910791108,-4.8780249807602064e-5,4.0876316291687736e-8,0.0014669336173157724,-4.8909088442915184e-5,4.096041061837196e-8,0.0014673849869394323,-4.89797010783182e-5,4.10005813588427e-8,0.0014678556191269404,-4.8976435201010984e-5,4.0986359543432826e-8,0.0014683149714162325,-4.889830880085964e-5,4.091793502517985e-8,0.0014687365529222206,-4.875735290426732e-5,4.080472681276175e-8,0.0014691021142846357,-4.857481423921316e-5,4.0662543710692137e-8,0.0014694036337962362,-4.8376450354823765e-5,4.0510213167388694e-8,0.0014696432745798936,-4.8188046898087444e-5,4.0366429937764576e-8,0.0014698319277800106,-4.803190530328035e-5,4.0247286006004545e-8,0.0014699871102827962,-4.7924526915939426e-5,4.0164595796703556e-8,0.0014701307848855516,-4.787522027490336e-5,4.012482396092963e-8,0.0014702872622128149,-4.788517195205734e-5,4.012834089633514e-8,0.0014704809975428358,-4.794666693736669e-5,4.0168855709075365e-8,0.0014707338344027386,-4.804244009905834e-5,4.0233062784634995e-8,0.0014710611213139102,-4.814566107532364e-5,4.030084085232558e-8,0.0014714665413726273,-4.822181569590968e-5,4.034683134470572e-8,0.001471936732554558,-4.823419676772928e-5,4.0344537351810816e-8,0.0014724385787785134,-4.815393883152968e-5,4.02735824939934e-8,0.0014729232921461939,-4.7972708991935915e-5,4.012881131104992e-8,0.001473339733380658,-4.771194684085152e-5,3.99268721108642e-8,0.0014736534482333627,-4.7420811459529796e-5,3.97045678271898e-8,0.0014738614631978186,-4.716016424666695e-5,3.9506949528936975e-8,0.0014739933492919856,-4.697982067329245e-5,3.937043540172194e-8,0.0014740979744279096,-4.690167112469379e-5,3.931032980142313e-8,0.0014742246024554207,-4.691644256644111e-5,3.9318604552850936e-8,0.0014744082651071803,-4.69922299640802e-5,3.9370563974310175e-8,0.0014746637140043946,-4.708756851895923e-5,3.943489870131204e-8,0.0014749866046875014,-4.7162958123676244e-5,3.948243157993727e-8,0.001475358543065385,-4.71883294842356e-5,3.949159654624633e-8,0.001475753210166725,-4.714652817698946e-5,3.945074236392933e-8,0.001476142078096254,-4.7033888847950614e-5,3.9358189832320374e-8,0.0014764992123982724,-4.685887934392134e-5,3.9220928510260014e-8,0.0014768049713061416,-4.663938791887539e-5,3.905248086942313e-8,0.001477048391317066,-4.639911917690382e-5,3.8870289051615004e-8,0.0014772281442441146,-4.61636413222774e-5,3.86929540003015e-8,0.0014773521218631534,-4.595660324837137e-5,3.8537604231317574e-8,0.0014774358574483667,-4.579659133441228e-5,3.841765492707048e-8,0.0014775001956065402,-4.569496823083304e-5,3.8341186816552856e-8,0.0014775686820781154,-4.565470129067433e-5,3.830999686167372e-8,0.0014776649243166784,-4.566994456347111e-5,3.8319233095593914e-8,0.0014778099359220231,-4.5726192560117234e-5,3.83575570353092e-8,0.0014780193244124584,-4.580097117160524e-5,3.840782891730723e-8,0.0014783000450939625,-4.5865328797617776e-5,3.8448445201550915e-8,0.0014786467079729625,-4.588696439857752e-5,3.845582251437362e-8,0.0014790384080720245,-4.583611242343526e-5,3.840873944588172e-8,0.0014794383527260398,-4.56945594107753e-5,3.82947864626867e-8,0.001479799398450005,-4.5465999161076066e-5,3.811769435150879e-8,0.0014800774121277783,-4.518250806512075e-5,3.790185132520664e-8,0.0014802492942168032,-4.489995809258601e-5,3.768879845012064e-8,0.0014803258879004637,-4.467961171000656e-5,3.7523621216932424e-8,0.0014803496588216847,-4.456364916372832e-5,3.7436882425543227E-08,0.0014803767789849922,-4.455914717389837e-5,3.743285124826617e-8,0.00148045471663273,-4.463944669785187e-5,3.749072374826842e-8,0.0014806079903739232,-4.4759080332929866e-5,3.757599995374444e-8,0.0014808363575325631,-4.4871298219932226e-5,3.7653765328709984e-8,0.0014811213748755097,-4.49400791113898e-5,3.7697698950566665e-8,0.0014814353063795221,-4.494494148911797e-5,3.769349125262831e-8,0.0014817486607833878,-4.488064489949951e-5,3.7638296039217246e-8,0.0014820352591590176,-4.475444899156155e-5,3.75383511170801e-8,0.001482275222988769,-4.458271568201399e-5,3.740624045556785e-8,0.0014824566343186552,-4.438752806725547e-5,3.7258364186440963e-8,0.0014825762933425046,-4.41933973514123e-5,3.711263205430016e-8,0.0014826396781233982,-4.402407385189993e-5,3.698628868785702e-8,0.0014826601038704105,-4.3899537486014864e-5,3.689381745950238e-8,0.0014826570290835308,-4.3833355408042506e-5,3.684500249109746e-8,0.0014826535665252642,-4.383076384824262e-5,3.684342893133268e-8,0.0014826734964349505,-4.388776027353641e-5,3.688571137475423e-8,0.0014827381250709867,-4.3991250197185465e-5,3.696157870415823e-8,0.0014828632277558774,-4.4120225732295084e-5,3.7054853705114773e-8,0.0014830562790585913,-4.424796254416029e-5,3.7145299091021524e-8,0.001483314114902658,-4.4345226853738956e-5,3.721123064884487e-8,0.0014836212427355765,-4.438471351759688e-5,3.723292906691934e-8,0.0014839495880320053,-4.434704884177869e-5,3.719700534277648e-8,0.0014842612053440878,-4.4227969750309367e-5,3.7101437221589655e-8,0.001484515578411819,-4.4044706083483356e-5,3.6959930289161086e-8,0.0014846818321571568,-4.383767436946015e-5,3.6802887599284104e-8,0.001484752665298912,-4.366282494601175e-5,3.6671649941767425e-8,0.0014847523079773632,-4.357345179251354e-5,3.6605110282143873e-8,0.0014847306685902028,-4.3598461730291396e-5,3.662379044416523e-8,0.0014847439416985908,-4.372996532663204e-5,3.672084767057359e-8,0.001484832455576805,-4.392834159757466e-5,3.6866053246575335e-8,0.0014850084524969315,-4.414052139172515e-5,3.701958292803764e-8,0.0014852579225742377,-4.4319394962506785e-5,3.7146574635816525e-8,0.00148555111690797,-4.443521318072178e-5,3.7225576915926685e-8,0.0014858540251273446,-4.447773434048518e-5,3.724992857383376e-8,0.0014861364543161625,-4.445270363925244e-5,3.722482225495067e-8,0.0014863760913723298,-4.437656318307988e-5,3.716309655277369e-8,0.0014865597532513933,-4.427164451826376e-5,3.708154822513582e-8,0.0014866832683675857,-4.4162460074345484e-5,3.699824191460888e-8,0.0014867508559287582,-4.407282323694022e-5,3.693054466535894e-8,0.0014867742340000237,-4.402339782503651e-5,3.68934712540527e-8,0.0014867713714220555,-4.402943420367354e-5,3.689807422058526e-8,0.0014867646564762282,-4.409867285281513e-5,3.6949844467746125e-8,0.0014867782740302412,-4.422973621937711e-5,3.7047415402730984e-8,0.0014868348754921309,-4.441152508594255e-5,3.718204520461165e-8,0.0014869519465962582,-4.462400182095811e-5,3.733824048865543e-8,0.0014871384186216602,-4.484053098879151e-5,3.749566462993671e-8,0.0014873921480441546,-4.5031733174503954e-5,3.7632239067973675e-8,0.0014876988747097991,-4.517047600970056e-5,3.772804673560034e-8,0.0014880330851069787,-4.5237407062414714e-5,3.776948065811721e-8,0.0014883611336936045,-4.522638867386191e-5,3.7753106366925946e-8,0.0014886470419661934,-4.5148829423299135e-5,3.768853679617695e-8,0.0014888610099375744,-4.503511107630251e-5,3.75991142701746e-8,0.0014889893734640611,-4.493078727593386e-5,3.7518833390943256e-8,0.0014890426802024238,-4.4885939658503095e-5,3.74844077895564e-8,0.0014890568559620368,-4.493900359979849e-5,3.752344755667185e-8,0.0014890836459080803,-4.5101175184416406e-5,3.7643181361237684e-8,0.001489172305795643,-4.535029512050693e-5,3.7826206234394064e-8,0.0014893513815948645,-4.5639131365739326e-5,3.803685162170241e-8,0.0014896203853677792,-4.591379586939746e-5,3.8234980089391865e-8,0.0014899543663838013,-4.613185728141613e-5,3.8389462478218916e-8,0.0014903162297077394,-4.6271946349084726e-5,3.848520377485263e-8,0.0014906691385107214,-4.6333741604474694e-5,3.852289537208366e-8,0.0014909844428688587,-4.6332267253878814e-5,3.851449641139075e-8,0.0014912446994979787,-4.629096295265064e-5,3.8477884251820716e-8,0.001491443475023993,-4.623604922293549e-5,3.843262815520471e-8,0.0014915838036451312,-4.61927449105687e-5,3.8397284898482245e-8,0.0014916764513131834,-4.618284796155863e-5,3.838776175182558e-8,0.0014917383357409837,-4.622298504810592e-5,3.8416126988273096e-8,0.0014917909428913139,-4.632303584535767e-5,3.848944739748476e-8,0.0014918583550758398,-4.648458412369112e-5,3.860856466449232e-8,0.0014919645095770773,-4.669969166698596e-5,3.8767106301308565e-8,0.001492129594339425,-4.695065290037247e-5,3.895130296913219e-8,0.0014923659795207224,-4.721144655663761e-5,3.914118664687933e-8,0.0014926745732702724,-4.745133715731877e-5,3.931347861780057e-8,0.0014930428020581202,-4.764050267803905e-5,3.944599080200351e-8,0.0014934453287540244,-4.77567381989998e-5,3.952272977792478e-8,0.0014938479976421455,-4.7791615726440825e-5,3.9538419803086526e-8,0.0014942145959709434,-4.775437268653611e-5,3.950114664854367e-8,0.0014945152548361581,-4.7672147717775885e-5,3.943216537025932e-8,0.0014947347496844735,-4.758571958330954e-5,3.936237614997539e-8,0.0014948784839529095,-4.754071729882442e-5,3.9325587712150906e-8,0.001494973688060228,-4.7575580700830986e-5,3.934960606065222e-8,0.001495063893699758,-4.7709339668887554e-5,3.9447410821275483e-8,0.0014951967819727924,-4.793386974666786e-5,3.961177012530231e-8,0.0014954089548056488,-4.82150113356529e-5,3.9816407071216556e-8,0.001495713972368483,-4.8503439552528306e-5,4.0024278257678855e-8,0.0014960992299929698,-4.875088216767253e-5,4.0199671339311314e-8,0.0014965325627533485,-4.892426755697233e-5,4.031863181757441e-8,0.0014969742965597005,-4.9012244353112056e-5,4.037361715514292e-8,0.0014973887060458133,-4.90234527916337e-5,4.037196030438772e-8,0.0014977509975768778,-4.897987925534544e-5,4.033069659995429e-8,0.0014980493699429142,-4.8909370842569586e-5,4.0270872530960104e-8,0.0014982838272042372,-4.8839785143966184e-5,4.0213214367086265e-8,0.0014984636893112296,-4.879533379597899e-5,4.017552829673121e-8,0.0014986050564438516,-4.879459745805125e-5,4.0171351190536136e-8,0.0014987286878216618,-4.884940264365551e-5,4.020917276631506e-8,0.0014988581486848397,-4.8963892845157507e-5,4.029171690125393e-8,0.0014990177337836207,-4.9133541633318104e-5,4.0415144161886566e-8,0.0014992296650089489,-4.934439725353427e-5,4.056846910653133e-8,0.0014995103608385159,-4.957328780427341e-5,4.073379081419653e-8,0.0014998661313054954,-4.978992849651283e-5,4.0888033317214166E-08,0.001500289438846751,-4.996169395570395e-5,4.100670227701081e-8,0.0015007575640223773,-5.00609271009138e-5,4.1069476582698656e-8,0.0015012354183340914,-5.0073132062903215e-5,4.106633523245191e-8,0.001501682931435136,-5.000313393611321e-5,4.10020124318666e-8,0.0015020653958463235,-4.9876318236111225e-5,4.089664152349184e-8,0.001502363510762478,-4.973362668651773e-5,4.078166708635209e-8,0.0015025796036362987,-4.9621359434477365e-5,4.06919240015438e-8,0.001502737788613337,-4.957881774687852e-5,4.0656280257301776e-8,0.0015028778851812186,-4.9627518948032364e-5,4.0689710099869005e-8,0.001503044775055048,-4.9765138003926926e-5,4.078912007859041e-8,0.001503276131990282,-4.9966042084288354e-5,4.093418214974257e-8,0.0015035921340975534,-5.0188522911167886e-5,4.109307745813918e-8,0.0015039904959644906,-5.038664086853307e-5,4.12314822617478e-8,0.0015044484479765602,-5.052272450607022e-5,4.1321828260849926e-8,0.0015049305867960681,-5.057627006151882e-5,4.1349724488542334e-8,0.0015053992671028003,-5.0546698588028124e-5,4.1315734395285215e-8,0.001505823682333701,-5.0450202162379264e-5,4.123276774522326e-8,0.0015061851264551991,-5.03131376162049e-5,4.1120991139124105e-8,0.00150647810650972,-5.0164985415371416e-5,4.100254562995308e-8,0.0015067085911635734,-5.003289045076868e-5,4.0897557578942296e-8,0.0015068910568689683,-4.9938339881018866e-5,4.0821788084939146e-8,0.0015070455081733843,-4.989557017837055e-5,4.078553560863914e-8,0.0015071949768719031,-4.991095762554463e-5,4.079319265895584e-8,0.0015073634330199596,-4.998270255847455e-5,4.0842964940455486e-8,0.001507573648758257,-5.0100484272582855e-5,4.092657881678172e-8,0.001507844474226869,-5.024531275080717e-5,4.1029213145852093E-08,0.0015081872475477102,-5.039029477878423e-5,4.113020982278904e-8,0.001508601639381369,-5.0503348351200574e-5,4.1205288990591655e-8,0.0015090721800536042,-5.0552825964399286e-5,4.123090271547341e-8,0.0015095677542445187,-5.051598845732162e-5,4.119061726808571e-8,0.0015100464398749296,-5.0388137396494456e-5,4.1081869583940654e-8,0.0015104661524490966,-5.0188150732697904e-5,4.091992886992478e-8,0.0015107980562968522,-4.995626598255443e-5,4.073597315450068e-8,0.0015110369884425087,-4.974323096834382e-5,4.056865503257804e-8,0.0015112037636235288,-4.9594689096187027e-5,4.0452143784550536e-8,0.0015113382538688342,-4.9537390122333774e-5,4.040571885063075e-8,0.001511486651518908,-4.9572491390367476e-5,4.0428949376900265e-8,0.0015116882343063284,-4.9677288522526345e-5,4.0503412055625985e-8,0.001511965832908493,-4.981328246977489e-5,4.0599203239587485e-8,0.0015123218678560742,-4.993712667865752e-5,4.0683458185044255e-8,0.0015127398774388951,-5.001120491259384e-5,4.072833176366586e-8,0.0015131902459503254,-5.0011430442294444e-5,4.0716651632460574e-8,0.0015136381639806527,-4.9930908725903795e-5,4.064433406034829e-8,0.0015140516272895985,-4.977923819466192e-5,4.051953249837382e-8,0.0015144075622012096,-4.9578319631606846e-5,4.035928102066704e-8,0.0015146949683276282,-4.9356355695184494e-5,4.0184938821169755e-8,0.0015149150502128804,-4.9141887980333486e-5,4.0017799643976816e-8,0.0015150791746275875,-4.895917584109024e-5,3.9875772118617474e-8,0.0015152057997848073,-4.8825388632539786e-5,3.977139653273003e-8,0.0015153173317295856,-4.874940504486354e-5,3.971098695425316e-8,0.0015154374095433952,-4.8731643689852686e-5,3.9694467703771245e-8,0.0015155886318726306,-4.876432642304724e-5,3.971551230211538e-8,0.0015157903988936615,-4.8831866635134174e-5,3.976183295261236e-8,0.0015160564336704537,-4.891150797550089e-5,3.9815759747989534e-8,0.001516391691608481,-4.8974788479225625e-5,3.985552106330658e-8,0.0015167888924818176,-4.899079602098747e-5,3.985786664037715e-8,0.0015172258993118245,-4.893217400965164e-5,3.9802659015735863e-8,0.0015176663030841539,-4.878381729040918e-5,3.967934665594565e-8,0.0015180658418397924,-4.855185669703154e-5,3.9493549812086156e-8,0.0015183852145058741,-4.8267882631723335e-5,3.927002879151628e-8,0.001518605245428821,-4.7983227159816685E-05,3.904816418536927e-8,0.0015187364109845078,-4.7752853667001454e-5,3.8869607112691156e-8,0.0015188162107197098,-4.76157007253304e-5,3.876330623471329e-8,0.0015188951081814535,-4.7581646967552716e-5,3.87356971621642e-8,0.0015190187423242043,-4.763095682004308e-5,3.877055536279872e-8,0.0015192148843438057,-4.7724206359166875e-5,3.883693164021174e-8,0.0015194889111096335,-4.7816122036906335e-5,3.890001525702813e-8,0.0015198265573875282,-4.78675190041975e-5,3.893034461914193e-8,0.0015202006147450764,-4.785267690604367e-5,3.8909281403952436e-8,0.0015205786058022936,-4.776206764521024e-5,3.883074987792664e-8,0.001520929655959892,-4.7601511265561416e-5,3.8700210594517606e-8,0.0015212297485279174,-4.73889457227636e-5,3.853192522081979e-8,0.001521464985636384,-4.714978616986874e-5,3.834534142739313e-8,0.001521632714070136,-4.691181862109943e-5,3.8161308626593714e-8,0.0015217407259916819,-4.6700544473304215e-5,3.7998737945680615e-8,0.001521805050737679,-4.653561112622005e-5,3.7872078917049705e-8,0.0015218469609350476,-4.6428620942574455e-5,3.77897496515343e-8,0.0015218898209953303,-4.638232433864213e-5,3.7753505077697286e-8,0.0015219562588472324,-4.63908829784902e-5,3.775855431522331e-8,0.0015220657852472567,-4.644073196168358e-5,3.779415592915643e-8,0.0015222326849345393,-4.6511768353575117e-5,3.78445580321092e-8,0.0015224639302797234,-4.6578917633677744e-5,3.789033821231449e-8,0.0015227569400496383,-4.6614434070743716e-5,3.791035015751786e-8,0.0015230973823843132,-4.659163295010869e-5,3.788469386599491e-8,0.0015234580899453059,-4.6490764418833046e-5,3.779915028577375e-8,0.0015238011301948635,-4.630679101973296e-5,3.765088713532935e-8,0.0015240852672769784,-4.6056717425461094e-5,3.7453737167092474e-8,0.001524279176362041,-4.578158370729293e-5,3.723946842777562e-8,0.0015243761207970313,-4.5537893273890615e-5,3.7051147789336374e-8,0.0015244012465784203,-4.537833811089991e-5,3.692846975976653e-8,0.0015244043069810233,-4.5330485030194646e-5,3.689159982476225e-8,0.001524440051851727,-4.5386093677926136e-5,3.693319329946158e-8,0.0015245475921702796,-4.550706901455292e-5,3.70231970685862e-8,0.001524739631177373,-4.564256280847005e-5,3.712221109997426e-8,0.0015250039821238194,-4.574645320979391e-5,3.719506196713576e-8,0.001525312469978232,-4.57880724817201e-5,3.7219009823727845e-8,0.0015256311465300198,-4.575529177708597e-5,3.71858758629502e-8,0.0015259283156329572,-4.5652460184988825e-5,3.710009588757813e-8,0.001526179490549331,-4.549604863952453e-5,3.697504333756095e-8,0.0015263698298762106,-4.5309863016883735e-5,3.682918922629797e-8,0.0015264948690534665,-4.5120549024834013e-5,3.668269874859717e-8,0.0015265600057452486,-4.495356643058214e-5,3.65545436819091e-8,0.0015265789603062382,-4.4829825029204026e-5,3.646015826369734e-8,0.0015265714591917814,-4.476317621887072e-5,3.640967597256171e-8,0.001526560393019653,-4.47588814097071e-5,3.6406785222506725e-8,0.0015265687425595057,-4.481319012855167e-5,3.6448328955322366e-8,0.001526616673386339,-4.491402171639455e-5,3.6524727155707175e-8,0.001526719088838322,-4.5042478706087005e-5,3.662110821247449e-8,0.001526883671120863,-4.517492388060347e-5,3.671899335520608e-8,0.001527109357997393,-4.528556689050531e-5,3.679846629243785e-8,0.0015273852648541443,-4.5349660451110904e-5,3.684080865883039e-8,0.0015276902649918051,-4.5347572784252786e-5,3.683168213824624e-8,0.0015279940023550515,-4.5269982630066084e-5,3.676496818810432e-8,0.001528260741500139,-4.5123660491407865e-5,3.664687940483986e-8,0.0015284573649040436,-4.493568923535388e-5,3.649883068748661e-8,0.0015285651819203082,-4.475224028990135e-5,3.6356268024786054e-8,0.001528591522529057,-4.462799322930828e-5,3.6260564495138095e-8,0.0015285733068809862,-4.4606708170989893e-5,3.6244339332635135e-8,0.0015285663015500417,-4.4701580903939586e-5,3.631667920617675e-8,0.001528623057978843,-4.4888075568297965e-5,3.645788182105769e-8,0.0015287721301055885,-4.511488889181742e-5,3.662804240559266e-8,0.0015290104785997134,-4.532567197125326e-5,3.678385405657058e-8,0.0015293104382067145,-4.547810886081325e-5,3.689331286542308e-8,0.0015296334898081117,-4.555238252513215e-5,3.6942127930790746e-8,0.0015299425822774475,-4.5549875508693376e-5,3.6932458321921016e-8,0.0015302094618059117,-4.5487012585997464e-5,3.687784149123152e-8,0.0015304173593234294,-4.538838777224406e-5,3.6797650641900755e-8,0.0015305608012845585,-4.5281191160702335e-5,3.6712741731269536e-8,0.0015306441945146152,-4.5191250244956506e-5,3.664253537729438e-8,0.0015306800306723414,-4.514019365633332e-5,3.660306514411148e-8,0.0015306868440561443,-4.5143317412885504e-5,3.660554118454364e-8,0.0015306868688130097,-4.5208046874071456e-5,3.665525950628058e-8,0.001530703372269813,-4.533304361844633e-5,3.675088279926432e-8,0.0015307577071024677,-4.550816475509205e-5,3.6884311766138235e-8,0.0015308663545292767,-4.5715530714938635e-5,3.7041438425744794e-8,0.001531038403461839,-4.5931705831679506e-5,3.7203859056823594e-8,0.0015312738096312358,-4.613076201647923e-5,3.7351380006003594e-8,0.001531562647587085,-4.628797631784266e-5,3.7465058196804165e-8,0.001531885540287841,-4.638388948223532e-5,3.753045447184219e-8,0.0015322154350115606,-4.6408424099129384e-5,3.75407624833672e-8,0.0015325210181051422,-4.636473481435046e-5,3.749952617090675e-8,0.0015327722562987192,-4.62720299113284e-5,3.742243109933671e-8,0.0015329482178092664,-4.616568661040811e-5,3.7337038635539955e-8,0.0015330459667584296,-4.60922941785365e-5,3.7278814888025735e-8,0.001533087023241133,-4.609795126881395e-5,3.728225619249699e-8,0.001533115983708838,-4.621153374983078e-5,3.736837190134323e-8,0.0015331876400693626,-4.643018459294151e-5,3.753391652633899e-8,0.0015333461088477486,-4.6716886718747485e-5,3.7749779963297116e-8,0.001533607077938741,-4.701413330082583e-5,3.797158062251958e-8,0.0015339536898771556,-4.7266463413301e-5,3.8156979046495933e-8,0.0015343469210881689,-4.7438804933053115e-5,3.827972461061156e-8,0.0015347420400233514,-4.7522609577066365e-5,3.833423468532848e-8,0.0015351018922789568,-4.75311913550837e-5,3.833175719045527e-8,0.0015354032268769953,-4.7490536847499134e-5,3.8293014468682244e-8,0.0015356372503282487,-4.7430749661384474e-5,3.8241437080403724e-8,0.0015358072060457936,-4.738020854009638e-5,3.819867181103716e-8,0.0015359252275494756,-4.736231090740194e-5,3.818223813016995e-8,0.0015360095332831896,-4.739380510817324e-5,3.820445815928393e-8,0.0015360820478136717,-4.748383499571379e-5,3.82718722773441e-8,0.001536166141831675,-4.763330834665019e-5,3.838478548063725e-8,0.001536284194639195,-4.783458629340891e-5,3.8536969464764897e-8,0.0015364548174580863,-4.8071792138992605e-5,3.871582755825761e-8,0.001536689888308331,-4.832221693893701e-5,3.890347256035087e-8,0.001536991949021952,-4.8559125680806725e-5,3.907898810591917e-8,0.0015373526882001662,-4.875585201501901e-5,3.9221757056841037E-08,0.0015377531409755225,-4.889068042494506e-5,3.931538272353313e-8,0.0015381659828674545,-4.895167436888976e-5,3.9351451406966635e-8,0.0015385598715198048,-4.894040830492917e-5,3.9332267184161023e-8,0.0015389053503828088,-4.887366805568127e-5,3.927184980018389e-8,0.0015391815674583567,-4.878238533919379e-5,3.919473310592367e-8,0.0015393827610044833,-4.870713902780217e-5,3.913220935194622e-8,0.001539522826925547,-4.868983638924286e-5,3.911586463438951e-8,0.001539635551012186,-4.8762258491063296e-5,3.916897922140672e-8,0.0015397681169518995,-4.893424373568861e-5,3.929783969200081e-8,0.0015399675307219867,-4.9186670824232385e-5,3.9486747633733346e-8,0.0015402639575685848,-4.94746582698892e-5,3.970072063670472e-8,0.001540658896768355,-4.974203898215638e-5,3.989665648604e-8,0.0015411250260262703,-4.9940960584229624e-5,4.0038309783718896e-8,0.0015416177088270302,-5.0046684404287795e-5,4.010752915400204e-8,0.0015420911707916128,-5.006124568783706e-5,4.010688682435594e-8,0.0015425111740769344,-5.000709715400226e-5,4.00545534176231e-8,0.0015428603593231258,-4.9916572907574924e-5,3.9975967592465016e-8,0.001543137348004615,-4.9822560505639655e-5,3.9896549730067413e-8,0.0015433527728847896,-4.9752685894152456e-5,3.983728353617607e-8,0.0015435248853113634,-4.972672630231794e-5,3.981289716560943e-8,0.0015436759860362377,-4.975595477250484e-5,3.9831537088095255e-8,0.0015438297952060482,-4.984325147671539e-5,3.989494979643839e-8,0.0015440093369692496,-4.998334813656624e-5,3.999866380557658e-8,0.0015442348151259754,-5.016309804535865e-5,4.013214246585282e-8,0.0015445211154071746,-5.0362121259628284e-5,4.027925529887606e-8,0.0015448749611662643,-5.055446980018576e-5,4.0419618992163206e-8,0.0015452923005028491,-5.071189862384606e-5,4.053125674762409e-8,0.0015457569800726891,-5.0808855828295383E-05,4.059460327889975e-8,0.0015462418900000286,-5.082850879931722e-5,4.059724221672877e-8,0.0015467132993301472,-5.076823346637892e-5,4.0538094268894254e-8,0.0015471380038922773,-5.064252614673594e-5,4.042945683138028e-8,0.0015474916360774626,-5.048174585710053e-5,4.0295709244955134e-8,0.0015477657624747324,-5.0326348408581844e-5,4.016852598729084e-8,0.0015479715584376128,-5.02176988612463e-5,4.00795759607021e-8,0.001548138675163666,-5.018759931395581e-5,4.0052468864238434e-8,0.001548309019173918,-5.0249167170106635e-5,4.0095999848332944e-8,0.001548526363415651,-5.039173011559901e-5,4.020064552392213e-8,0.001548824072026234,-5.0581979693915296e-5,4.033985817256759e-8,0.0015492146318262102,-5.0772290610955474e-5,4.047669746431854e-8,0.0015496851936439822,-5.091443598787875e-5,4.057438892398452e-8,0.001550201601146154,-5.0973893683465014e-5,4.0607169310144533e-8,0.001550719547427848,-5.093895551994056e-5,4.0567056747315524e-8,0.0015511979549022272,-5.082132789363123e-5,4.0464060310906736e-8,0.001551609085796503,-5.064930767517722e-5,4.032070429909841e-8,0.001551942485882253,-5.045777032215602e-5,4.0164179972009266e-8,0.001552203365741154,-5.027932903282667e-5,4.0019527762343134e-8,0.0015524080338778475,-5.0138911795649996e-5,3.990557662144009e-8,0.0015525789206599471,-5.005169954767954e-5,3.983352487266917e-8,0.0015527405622942454,-5.0023207216840704e-5,3.980713258549693e-8,0.001552916795278977,-5.005024771803662e-5,3.982350168918181e-8,0.0015531287739189376,-5.012197934084325e-5,3.987384769919168e-8,0.0015533932025365111,-5.022080731770897e-5,3.99441559610026e-8,0.0015537202826231122,-5.03234457482546e-5,4.0016025565273536e-8,0.0015541112665716941,-5.0402810390084915e-5,4.0068239562396716e-8,0.0015545561079804125,-5.0431489448755314e-5,4.007959506236113e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_15.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_15.json new file mode 100644 index 000000000..c6ac96168 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_15.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":15000,"numberOfSamples":1000,"samples":[0.001555032396790159,-5.038717964716439e-5,4.003321453737454e-8,0.001555507240340409,-5.025945257220019e-5,3.992178064606655e-8,0.0015559433318249748,-5.005568561411016e-5,3.975199831316558e-8,0.0015563086828940746,-4.9802949292686764e-5,3.9545822083813816e-8,0.001556587031841404,-4.9543375923704664e-5,3.9336583092513e-8,0.0015567845028372617,-4.93232976794034e-5,3.9160317297773175e-8,0.0015569291408115862,-4.9179757456819175e-5,3.904518941710335e-8,0.0015570631279621951,-4.912957061070448e-5,3.90031151041951e-8,0.0015572306984882043,-4.916483994647903e-5,3.902661169621281e-8,0.0015574660511056152,-4.9255840502179806e-5,3.9091477245714126e-8,0.0015577847760354089,-4.9359606772293576e-5,3.9163823082464017e-8,0.001558180685115808,-4.943135773630568e-5,3.920908834205859e-8,0.0015586283968716341,-4.943566203060656e-5,3.920059314584998e-8,0.0015590906701226305,-4.9354497209498185e-5,3.9125494924869697e-8,0.001559528261058972,-4.919020584318819e-5,3.8986728207848124e-8,0.0015599093591160292,-4.896289913685733e-5,3.880070214408021e-8,0.0015602159244718476,-4.870367300374791e-5,3.8591890031225615e-8,0.001560445583043622,-4.844627081761637e-5,3.838637217885279e-8,0.0015606095190522666,-4.821988699048854e-5,3.8206389463064e-8,0.001560728059333107,-4.80447105719932e-5,3.8067072967328046e-8,0.0015608258215469178,-4.7930366808124216e-5,3.797538689472998e-8,0.0015609276655558022,-4.787644642721989e-5,3.793059714039383e-8,0.0015610558505919753,-4.7874043041353836e-5,3.792543115973339e-8,0.0015612281647851558,-4.7907464781617856e-5,3.794734148986789e-8,0.0015614564996265033,-4.795579391508165e-5,3.797969902153523e-8,0.0015617453775785114,-4.7994480662788104e-5,3.8003106795686565e-8,0.001562090231917282,-4.799751763502489e-5,3.7997236526191586e-8,0.0015624757732016965,-4.7940913074933274e-5,3.7943666553683704e-8,0.0015628755385377238,-4.780797264952134e-5,3.783002608138753e-8,0.0015632543909054244,-4.759591895225801e-5,3.765503864336205e-8,0.0015635755508337965,-4.7321569326116703e-5,3.743272490582087e-8,0.0015638118247210714,-4.702212301492192e-5,3.719276938020053e-8,0.0015639572183669657,-4.674759666086147e-5,3.697442350326965e-8,0.0015640325431972783,-4.654548661616456e-5,3.681443353406246e-8,0.0015640803149591668,-4.644389332460276e-5,3.673389012822279e-8,0.0015641503210691414,-4.644165242496307e-5,3.673070606589074e-8,0.0015642829369577056,-4.651013021168292e-5,3.678135043023996e-8,0.0015644977495392904,-4.660446073429612e-5,3.685000664095114e-8,0.001564790749643378,-4.6677917336542896e-5,3.6900071652951433e-8,0.001565138707406003,-4.66938238368795e-5,3.690350083708066e-8,0.0015655073435626183,-4.663241657433939e-5,3.6845954665167155e-8,0.0015658602190323327,-4.649255514773499e-5,3.672776169544263e-8,0.0015661663607259592,-4.628936931980565e-5,3.656170224679889e-8,0.0015664055799049252,-4.6049225283354464e-5,3.636883604376693e-8,0.001566571002171141,-4.580336936715299e-5,3.6173502381504967e-8,0.0015666687673390187,-4.558160277952096e-5,3.599852488215996e-8,0.0015667154033415197,-4.5407215387777025e-5,3.586148463513818e-8,0.0015667338355941623,-4.529393320932333e-5,3.577253994149994e-8,0.0015667490993197454,-4.524500274399756e-5,3.573380667359368e-8,0.0015667846174289822,-4.5254024907903564e-5,3.57399848967389e-8,0.001566859497029681,-4.5306834496840176e-5,3.5779734964378544e-8,0.0015669868024443458,-4.5383715412729446e-5,3.583733887760147e-8,0.001567172455798627,-4.546158479647085e-5,3.5894430294282084e-8,0.0015674144103284765,-4.551618411695069e-5,3.593183701499408e-8,0.001567701899164982,-4.5524599621765035e-5,3.593172347162997e-8,0.0015680149455750063,-4.5468646452923546e-5,3.588034316011282e-8,0.001568325023881159,-4.533952995396979e-5,3.577163595791014e-8,0.001568598375261144,-4.514331996072684e-5,3.561129614715066e-8,0.0015688033307539359,-4.490516831986402e-5,3.5419775786897466e-8,0.0015689213635770478,-4.4668520678280764e-5,3.5231422956829793e-8,0.0015689580930293371,-4.448560774152507e-5,3.508694038347068e-8,0.001568947072838441,-4.439966029933874e-5,3.501951652065551e-8,0.0015689406813127415,-4.442653532989222e-5,3.5040594280255434e-8,0.0015689905208410501,-4.454694343553021e-5,3.5134005465375e-8,0.0015691279470960945,-4.471462114836585e-5,3.526264408522862e-8,0.001569355167197491,-4.4874982251366504e-5,3.5383351783517066e-8,0.0015696491590304815,-4.498328840192346e-5,3.5461324901144965e-8,0.0015699730086184231,-4.5014843868502684e-5,3.547806086334234e-8,0.0015702878466824224,-4.496644962533722e-5,3.5432227789964445e-8,0.0015705615045717492,-4.48522455988792e-5,3.5336015448358164e-8,0.0015707731361774711,-4.469737825179658e-5,3.520983386424041e-8,0.0015709146371371892,-4.453167337270511e-5,3.507720338549927e-8,0.0015709899450492496,-4.4384204168804375e-5,3.4960569188722246e-8,0.0015710129446352492,-4.427899769327988e-5,3.487815813513884e-8,0.0015710044338982897,-4.4232035758685976e-5,3.484187409746818e-8,0.0015709885901114629,-4.424966839076787e-5,3.48562113954969e-8,0.0015709893763831153,-4.4328433769242266e-5,3.491813422291662e-8,0.0015710273252120134,-4.4456174728882454e-5,3.501786728147512e-8,0.001571117095259444,-4.4614146603934006e-5,3.514044529398255e-8,0.0015712659471281585,-4.4779625550250765e-5,3.526772890807883e-8,0.0015714729990209998,-4.492865339998087e-5,3.5380643711257126e-8,0.0015717290886569444,-4.503882672267935e-5,3.5461540303863484e-8,0.0015720171486412,-4.509218250304847e-5,3.549662088853352e-8,0.0015723131710548195,-4.507838065681111e-5,3.547847663955526e-8,0.0015725883317389549,-4.499835421555663e-5,3.540880348366659e-8,0.001572813307826608,-4.486786800809496e-5,3.5300892636416496e-8,0.0015729655070056204,-4.47191603474519e-5,3.518058646081875e-8,0.0015730384980441499,-4.459776227937817e-5,3.5083578249073555e-8,0.0015730502214990328,-4.4551776967474605e-5,3.504702004926623e-8,0.0015730436787471955,-4.461436338745037e-5,3.5095992048822466e-8,0.0015730749295945277,-4.478695231412046e-5,3.5230609633398364e-8,0.00157319126570817,-4.5034672737442647e-5,3.542266299781257e-8,0.0015734115792861226,-4.529940702276995e-5,3.562602881073632e-8,0.0015737208148722149,-4.552319788898638e-5,3.5795178558746185e-8,0.0015740799139331147,-4.5667994072365434e-5,3.590075376760617e-8,0.0015744426094396393,-4.572297761098429e-5,3.593523410445762e-8,0.0015747694654922382,-4.570060260613509e-5,3.5909545233455296e-8,0.0015750350883362262,-4.56275210357777e-5,3.584556214181634e-8,0.0015752294134122743,-4.5535604842148e-5,3.576877953266378e-8,0.0015753556604648073,-4.545534529408837e-5,3.5703062165524755e-8,0.0015754271119554817,-4.541175214597163e-5,3.566756900441209e-8,0.0015754637850900197,-4.5422021566715475e-5,3.567516845886349e-8,0.0015754892419881964,-4.549435685857388e-5,3.5731726192643936e-8,0.0015755275323007985,-4.562767745693644e-5,3.5835969133508226e-8,0.0015756002822981585,-4.581213815904196e-5,3.597985887669808e-8,0.0015757240290649212,-4.603051129355547e-5,3.6149580268519345e-8,0.0015759080778055216,-4.626046736804536e-5,3.632726928230143e-8,0.0015761532032229398,-4.6477532670966515e-5,3.6493374497356665e-8,0.0015764513190264005,-4.66583682351069e-5,3.662937540080888e-8,0.0015767861221216862,-4.6784116146357104e-5,3.67205887315865e-8,0.0015771347357232419,-4.6843579857850895e-5,3.6758772560147956e-8,0.0015774703483009739,-4.683599304438294e-5,3.67442426941251e-8,0.0015777659552356682,-4.677317302149219e-5,3.66873186351272e-8,0.0015779995237324785,-4.668049190430199e-5,3.660873387655922e-8,0.0015781605555831091,-4.659528839149842e-5,3.6538079166891776e-8,0.0015782567852510353,-4.656091594072024e-5,3.650901070819981e-8,0.0015783179633283798,-4.6615418475760236e-5,3.655049543919046e-8,0.0015783922903835324,-4.677665068892878e-5,3.667544840847755e-8,0.0015785325756434202,-4.703036852583066e-5,3.687171431896692e-8,0.0015787756427616659,-4.733035159097787e-5,3.7102367094230025e-8,0.0015791259181678027,-4.761430923312568e-5,3.731827295238525e-8,0.0015795538411506713,-4.7828037828527396e-5,3.747709330858676e-8,0.0015800096969891477,-4.7943878769038486E-05,3.7557792145692596e-8,0.0015804431624417705,-4.796481847401571e-5,3.756375094216574e-8,0.0015808178057632656,-4.791635491291735e-5,3.7516101368887467e-8,0.0015811164141571583,-4.783405291768669e-5,3.744360223405161e-8,0.0015813392677104443,-4.775314048922322e-5,3.737423693485045e-8,0.0015814993203580124,-4.7702326404354844e-5,3.733035174588052e-8,0.0015816171643790661,-4.7701193814970105e-5,3.7326791516613286e-8,0.0015817169630395575,-4.775965776778595e-5,3.737071389079256e-8,0.001581823347515752,-4.787832470052812e-5,3.7462041637598934e-8,0.0015819588828547596,-4.8049258257063996e-5,3.7594106726625155e-8,0.0015821417963573898,-4.8257082895207296e-5,3.775446258471748e-8,0.0015823838479101892,-4.848060164321304e-5,3.792608585212836e-8,0.001582688504544025,-4.869520808633535e-5,3.8089269531459865e-8,0.0015830498625370153,-4.887615170356731e-5,3.822428825087552e-8,0.0015834527637300596,-4.9002351733972964e-5,3.8314560752223585e-8,0.0015838743628422021,-4.906026034512833e-5,3.834982706901485e-8,0.001584287221216587,-4.904715037019271e-5,3.832875105474419e-8,0.001584663741938823,-4.897310145628491e-5,3.826032241557493e-8,0.001584981463061841,-4.8861079857009655e-5,3.8163607031293117e-8,0.0015852285820703014,-4.874466991235223e-5,3.8065608345197424e-8,0.0015854088600154176,-4.8662962215500585e-5,3.7997004979177486e-8,0.0015855444217866606,-4.86522846509656e-5,3.798563784368472e-8,0.001585674261819128,-4.8735533803462465e-5,3.804836085608511e-8,0.001585846375312292,-4.891189807186035e-5,3.818334234181005e-8,0.00158610348310477,-4.9151982596995845e-5,3.836657757562266e-8,0.001586466654834368,-4.9403489989380824e-5,3.8556531405909456e-8,0.0015869251102463237,-4.960807810621859e-5,3.870740581132169e-8,0.0015874391429179613,-4.9722343633764594e-5,3.8785587350351096e-8,0.0015879553631793688,-4.973190214442801e-5,3.878064452942808e-8,0.001588425577199708,-4.9652024693980827e-5,3.870567071163837e-8,0.00158881977381429,-4.951725979120483e-5,3.8588846273972866e-8,0.0015891295065786543,-4.936775952074638e-5,3.84623889278333e-8,0.001589364066660281,-4.9238715531157035e-5,3.8354092314337146e-8,0.001589543909685928,-4.9154994199223596e-5,3.8283168581558065e-8,0.0015896945618050432,-4.9129902713118106e-5,3.825948659678869e-8,0.0015898422153512498,-4.916611627099987e-5,3.8284520145138256e-8,0.001590010859028341,-4.925727610695112e-5,3.8352726691160195e-8,0.0015902202966968217,-4.938958761833569e-5,3.845280876708773e-8,0.0015904844846205953,-4.954336749390981e-5,3.8568874325898195e-8,0.0015908099083882816,-4.969485381752708e-5,3.868182932013065e-8,0.0015911941068452644,-4.98187279964764e-5,3.8771413773902485e-8,0.0015916248545581027,-4.989160905264646e-5,3.881908380631811e-8,0.0015920807276100831,-4.9896318601345885e-5,3.881152013111638e-8,0.0015925336582621405,-4.982618528736371e-5,3.874409592893164e-8,0.0015929536328127007,-4.9688213379708714e-5,3.862330576383604e-8,0.0015933149629505758,-4.950379940089145e-5,3.846710078351864e-8,0.001593602808933612,-4.930610263244153e-5,3.830248200720968e-8,0.0015938182399501703,-4.913404445176729e-5,3.8160453318297506e-8,0.0015939802243672306,-4.902380951458289e-5,3.806916042959481e-8,0.0015941233988982489,-4.899946750049259e-5,3.8046581250505863e-8,0.0015942911880484664,-4.906498251129774e-5,3.80945375169188e-8,0.0015945249563040758,-4.920032285756388e-5,3.8196040630227036e-8,0.0015948515164234465,-4.9364207196608636e-5,3.8317796980507725e-8,0.001595273159867582,-4.950449066879408e-5,3.841854809931519e-8,0.0015957650230228916,-4.9573895929635576e-5,3.846143646287539e-8,0.0015962822947114133,-4.954513058246872e-5,3.842577890144347e-8,0.0015967748230214939,-4.941856956430488e-5,3.8312929742037596e-8,0.001597202494943064,-4.921934317902047e-5,3.814375061431865e-8,0.0015975448239908775,-4.898645979137916e-5,3.794978155712491e-8,0.0015978022649466863,-4.876005227964857e-5,3.7762998553756675e-8,0.0015979913135114392,-4.85719625681952e-5,3.76083609760703e-8,0.0015981373497028673,-4.84414879329937e-5,3.750059586381275e-8,0.0015982682896983585,-4.837523496803743e-5,3.744429677813117e-8,0.0015984102235238262,-4.8369073369492696e-5,3.743563223650375e-8,0.0015985848577516198,-4.8410619737028296e-5,3.746436079232389e-8,0.0015988080578801715,-4.848147621960483e-5,3.751556089859576e-8,0.0015990887787054714,-4.8559129023742496e-5,3.7571077107145096e-8,0.0015994279675657184,-4.861890144868653e-5,3.761106919377434e-8,0.0015998175105410416,-4.8636534469734454e-5,3.761614354464905e-8,0.0016002397772522405,-4.859177185400766e-5,3.757032802152641e-8,0.0016006686543139628,-4.84728413566226e-5,3.74647259539885e-8,0.0016010729910405593,-4.828097347843213e-5,3.7301095421887124e-8,0.0016014227983081818,-4.8033231546302496e-5,3.709395135898375e-8,0.0016016972164009232,-4.776158920159305e-5,3.686957478771082e-8,0.001601891799677878,-4.750708267512769e-5,3.6661070725469196e-8,0.0016020220967839574,-4.730984733590426e-5,3.65002268054441e-8,0.0016021214376728508,-4.7197895387483466e-5,3.640855159267248e-8,0.0016022329539292035,-4.7178441191331395e-5,3.6390568883612766e-8,0.001602398098868516,-4.723486700987873e-5,3.64317778525816e-8,0.0016026451775172069,-4.7330459524417435e-5,3.6502037536061675e-8,0.0016029812826023223,-4.741790311922242e-5,3.6563402100527594e-8,0.0016033900211863004,-4.7451924030049034e-5,3.658023478305435e-8,0.0016038359142873748,-4.7401493578198037e-5,3.65287527576269e-8,0.0016042743565764664,-4.725778830099e-5,3.6403069368047857e-8,0.0016046639296792753,-4.703526837810497e-5,3.621574128865795e-8,0.0016049768310006606,-4.676579911472799e-5,3.599284252644777e-8,0.0016052041001474093,-4.6488499312397777e-5,3.576575444073776e-8,0.0016053547788864799,-4.623936983449527e-5,3.556292473478258e-8,0.0016054506685802667,-4.604404725371659e-5,3.540424269592429e-8,0.00160551955904301,-4.591491456251917e-5,3.529894528530359e-8,0.0016055893304846428,-4.585176544402924e-5,3.5246319584402404e-8,0.0016056839738281931,-4.584435487657563e-5,3.523780378361235e-8,0.0016058214226180075,-4.58754099005351e-5,3.525934967930275e-8,0.0016060125662822487,-4.5923316964371105e-5,3.5293484731850514e-8,0.0016062607469574757,-4.5964330399595076e-5,3.5321033008763995e-8,0.0016065612721366269,-4.597465556251913e-5,3.5322825752794e-8,0.001606900939181552,-4.5932990607520925e-5,3.528185027009399e-8,0.0016072580949436541,-4.582396800827508e-5,3.518611857277115e-8,0.0016076041773001588,-4.564246758849356e-5,3.503214741997083e-8,0.001607907835484071,-4.539791130326102e-5,3.482829369055841e-8,0.001608142149154005,-4.511646354493401e-5,3.4596304332457856e-8,0.0016082937279128775,-4.483839603063741e-5,3.4368956580540236e-8,0.001608370164011681,-4.460905850485839e-5,3.418262319337986e-8,0.0016084013367679887,-4.4465215778220584e-5,3.4066244784300986e-8,0.0016084321421592992,-4.442209614898366e-5,3.4031040378216796e-8,0.0016085087032214472,-4.4467328910789975e-5,3.406590890538271e-8,0.001608663854204168,-4.4564751128790306e-5,3.414084287148784e-8,0.0016089078261996121,-4.466603533873435e-5,3.4216585652257157e-8,0.0016092268749752002,-4.472491235101269e-5,3.425621097733665e-8,0.0016095888815234746,-4.470896660568734e-5,3.4234524970492415e-8,0.00160995294459917,-4.46061700180591e-5,3.414304169545714e-8,0.0016102797685153603,-4.442554150736995e-5,3.39901449867369e-8,0.001610540291413511,-4.41928249660299e-5,3.379729090404697e-8,0.001610720877149768,-4.3942959524330366e-5,3.3592785051752095e-8,0.0016108243718107255,-4.3711535533740247e-5,3.340493987008991e-8,0.0016108673896750982,-4.352740556905542e-5,3.325631883018611e-8,0.0016108751528596623,-4.340803798367828e-5,3.31602500419108e-8,0.0016108756639389974,-4.3358117340029234e-5,3.31199083561361e-8,0.00161089471982018,-4.33708154841172e-5,3.312942713946964e-8,0.0016109525410755215,-4.34306101333567e-5,3.317612870807587e-8,0.0016110620470242626,-4.351655218140907e-5,3.3243045504261954e-8,0.001611228317562383,-4.360524372648092e-5,3.331122931252226e-8,0.0016114486396584151,-4.367330914275547e-5,3.336174083792286e-8,0.0016117127150576606,-4.3699607289291936e-5,3.33775293772246e-8,0.0016120029665654158,-4.366764384768521e-5,3.3345510827283086e-8,0.0016122953248352881,-4.35685848202546e-5,3.3259070099345036e-8,0.0016125613483437497,-4.340490324202378e-5,3.312093756709973e-8,0.0016127727551766623,-4.319382193216696e-5,3.294576076085041e-8,0.0016129088996316033,-4.296843215561775e-5,3.276074107332174e-8,0.0016129659137071207,-4.277350269527232e-5,3.260204841704383e-8,0.0016129634518711477,-4.2654123502679954e-5,3.250560511019986e-8,0.0016129434192342419,-4.263951160928507e-5,3.249413087936494e-8,0.0016129578689934336,-4.272950726670111e-5,3.25664702196115e-8,0.001613050232896208,-4.2892278302879625e-5,3.2696007974918103e-8,0.0016132395138366183,-4.307566567224347e-5,3.2840080832235315e-8,0.0016135153781361821,-4.3225967007183096e-5,3.295532521363271e-8,0.0016138447598283675,-4.330446141592195e-5,3.3011068605873004e-8,0.0016141845061787268,-4.329558915141256e-5,3.299579503566333e-8,0.0016144937858859182,-4.320654916003372e-5,3.29165093334752e-8,0.0016147426836319956,-4.3061418898431364e-5,3.2793617549553344e-8,0.0016149162538619413,-4.28932148940195e-5,3.2654235700933185e-8,0.0016150148382885333,-4.273622151749938e-5,3.252591778532962e-8,0.0016150517857130536,-4.261972946654225e-5,3.243173477682972e-8,0.001615049514803641,-4.256367933918242e-5,3.238701919898679e-8,0.0016150347633862986,-4.2576490174574447e-5,3.239787068664833e-8,0.0016150339039934956,-4.265505690214593e-5,3.24613058418649e-8,0.0016150690590622733,-4.278649690659109e-5,3.2566675877575025e-8,0.0016151554483356746,-4.2951022505443604e-5,3.269788817933618e-8,0.0016153001048231429,-4.312527285417708e-5,3.283598386574173e-8,0.0016155017602802555,-4.328548587995333e-5,3.2961656880308e-8,0.0016157514557302796,-4.3410193344149555e-5,3.305749480030836e-8,0.0016160335151886938,-4.348253336100209e-5,3.310998203842222e-8,0.0016163267962227231,-4.3492450229067064e-5,3.311139396130571e-8,0.001616606420595729,-4.343902077762299e-5,3.306167660919614e-8,0.001616846570836147,-4.3332918110579625e-5,3.297027424956425e-8,0.0016170251774682734,-4.319829401359851e-5,3.285736904569684e-8,0.0016171308087405997,-4.307222907662207e-5,3.2753160720529384e-8,0.0016171704476762414,-4.299915965162309e-5,3.2693234113441636e-8,0.0016171742841552047,-4.301865193973153e-5,3.2708769773927315e-8,0.0016171918923307148,-4.314894035091985e-5,3.281350053431754e-8,0.0016172768691222427,-4.337450691395369e-5,3.299396166424684e-8,0.0016174652144145727,-4.364756211844907e-5,3.321089173978478e-8,0.0016177597932134746,-4.390561146011057e-5,3.341354613711286e-8,0.0016181304852361284,-4.4095543629212986e-5,3.3559243265705895e-8,0.0016185284692897027,-4.4190547319258514e-5,3.362705585213057e-8,0.0016189045522376445,-4.4193243891010715e-5,3.362020601659291e-8,0.0016192223969067512,-4.412817824935237e-5,3.355967969498163e-8,0.0016194638193470891,-4.403063195720452e-5,3.34748138358053e-8,0.0016196280163832983,-4.393679585500097e-5,3.339511192107193e-8,0.0016197277267549035,-4.3877154423368346e-5,3.334489133236136e-8,0.0016197845593948158,-4.387287847418416e-5,3.334056960624522e-8,0.0016198245204375643,-4.3934319125600074e-5,3.3389732573910446e-8,0.0016198739737394417,-4.4060948688515964e-5,3.3491313790702704e-8,0.001619956137050907,-4.424248547766236e-5,3.3636593203828094e-8,0.0016200882954145463,-4.4460987523551896e-5,3.381084517949932e-8,0.0016202798937417601,-4.469366279624242e-5,3.399550450501883e-8,0.0016205316675254457,-4.4916122131234496e-5,3.417072218106146e-8,0.0016208358841783572,-4.51056635939364e-5,3.431804144775011e-8,0.0016211775123474187,-4.524417861154815e-5,3.442285758382958e-8,0.0016215360341788234,-4.532053562216261e-5,3.447647579529873e-8,0.0016218877589150979,-4.5332465127465866e-5,3.4477688314315185e-8,0.0016222086413283134,-4.528794941479019e-5,3.4433800071019065e-8,0.0016224777898770169,-4.520602795248432e-5,3.436102856785716e-8,0.0016226820080681198,-4.511649275684907e-5,3.428394416218811e-8,0.0016228212897336288,-4.505716598228851e-5,3.423303906504118e-8,0.0016229139005976808,-4.50670885186496e-5,3.423920259833186e-8,0.0016229978830992289,-4.51749217202737e-5,3.432456868826437e-8,0.0016231246866747196,-4.538503437297744e-5,3.449162408965321e-8,0.0016233428870291516,-4.566853319778398e-5,3.4716252957965794e-8,0.0016236772248806965,-4.596812991238768e-5,3.495178509204106e-8,0.0016241152647686152,-4.621869465816446e-5,3.514559949367053e-8,0.0016246116056889723,-4.637312377459764e-5,3.526003661180751e-8,0.0016251072872445914,-4.6418152194176277e-5,3.5285198490338464e-8,0.0016255516901675028,-4.637296697358738e-5,3.523771443245092e-8,0.0016259155653828902,-4.627592173555477e-5,3.5149685697300395e-8,0.0016261928281600965,-4.616943668607092e-5,3.5056106184870745e-8,0.0016263953747431522,-4.608946050777786e-5,3.4986134383754507e-8,0.00162654592076792,-4.606055522365073e-5,3.4959174040392114e-8,0.0016266717530924076,-4.6094961601108544e-5,3.498436583192719e-8,0.0016268002162611959,-4.619362578856872e-5,3.506170277704274e-8,0.0016269555762756986,-4.6347898809298577e-5,3.5183591772346576e-8,0.0016271567027249208,-4.654151467710764e-5,3.533649211716943e-8,0.0016274153179251607,-4.675286847043376e-5,3.550269075582101e-8,0.0016277348011426761,-4.695766887346226e-5,3.566236234788382e-8,0.0016281097039318963,-4.7132008983412574e-5,3.5796030279421156e-8,0.0016285262644494334,-4.7255678611228e-5,3.5887315314142226e-8,0.001628964073625187,-4.731526564371127e-5,3.5925567937765023E-08,0.0016293987695045343,-4.7306594472402196e-5,3.5907931482636357e-8,0.0016298055166128098,-4.723617482978707e-5,3.5840485560798704e-8,0.0016301629750232944,-4.7121376003895105e-5,3.573820180050115e-8,0.0016304574112304933,-4.698912835410786e-5,3.562359354313474e-8,0.001630686636381212,-4.687296006046646e-5,3.552402309108488e-8,0.001630863266571223,-4.6807921698255846e-5,3.546744809793738e-8,0.001631016074302961,-4.6822961021669483e-5,3.5476346222796364e-8,0.0016311873490471736,-4.6931285427303824e-5,3.556023149782128e-8,0.0016314241196807519,-4.712134705140385e-5,3.570874980570606e-8,0.0016317631244090534,-4.7353656267366736e-5,3.5889370924150126e-8,0.0016322143049490748,-4.756904084464057e-5,3.605411987293246e-8,0.0016327523237028758,-4.770869469055887e-5,3.615570802256036e-8,0.001633323721960312,-4.7737093003807625e-5,3.616600609540491e-8,0.0016338673630050457,-4.7654512699828896e-5,3.608614967055138e-8,0.0016343363161102794,-4.7492623882838964e-5,3.59428498486487e-8,0.0016347097760828822,-4.729839554612501e-5,3.577507367476015e-8,0.0016349924051370127,-4.7117130386448616e-5,3.5619987353530545e-8,0.0016352061343948639,-4.6981902350859326e-5,3.550426387925348e-8,0.0016353807083681227,-4.691028273741784e-5,3.544154910868567e-8,0.0016355464804455415,-4.690570628738172e-5,3.543383998937961e-8,0.001635730112170018,-4.696057989449839e-5,3.5474262687520425e-8,0.0016359523601496132,-4.705941012943231e-5,3.5549738432914185e-8,0.0016362269041772656,-4.718145036852111e-5,3.56431208201011e-8,0.0016365595879771274,-4.730304536267612e-5,3.5735016865504467e-8,0.0016369478987237219,-4.7400035126582016e-5,3.58056778292684e-8,0.0016373808483354118,-4.7450543227840547e-5,3.583728050603426e-8,0.0016378397017732427,-4.7438197284311285e-5,3.581663456998011e-8,0.0016383000265438497,-4.7355354305080354e-5,3.573790790644766e-8,0.001638735210162438,-4.720557229499285e-5,3.5604668453241686e-8,0.0016391211394910926,-4.700451726643738e-5,3.5430520082254106e-8,0.001639441306452008,-4.6778640180967995e-5,3.5237790208829276e-8,0.0016396912690668532,-4.6561377647454084e-5,3.5054142350092676e-8,0.0016398813658379573,-4.63872399230719e-5,3.490753406266736e-8,0.0016400368292994823,-4.628458200577974e-5,3.4820292858860436e-8,0.0016401946504560447,-4.6268117996810935e-5,3.480322538106792e-8,0.0016403967479677747,-4.6332728578918845e-5,3.485095674241419e-8,0.001640679685853359,-4.645083249127904e-5,3.494018708827335e-8,0.0016410627568417529,-4.657595311703952e-5,3.5032828146860476e-8,0.0016415385136823188,-4.665404102506928e-5,3.5085209016852697e-8,0.0016420712361589218,-4.6640593747802424e-5,3.506183028304087e-8,0.0016426066758982037,-4.651680204060536e-5,3.49483030632206e-8,0.0016430902029990438,-4.6296213477060036e-5,3.4756616314912035e-8,0.0016434846325752775,-4.601807762842053e-5,3.451956176891535e-8,0.0016437792010674768,-4.573164001443794e-5,3.4277753576294015e-8,0.0016439873944463735,-4.5480182565328244e-5,3.406648234300473e-8,0.0016441377649539473,-4.5291435015766347e-5,3.390791520498886e-8,0.0016442637177816871,-4.517553440841134e-5,3.38096166616314e-8,0.0016443960339398652,-4.512789702654878e-5,3.376713660815342e-8,0.0016445588953631549,-4.5133752929414504e-5,3.3767884966551584e-8,0.0016447684565497988,-4.517231429766106e-5,3.3794572068923304e-8,0.001645032669366525,-4.521994135279829e-5,3.382772789479797e-8,0.0016453514524502528,-4.5252519765481794e-5,3.3847558228796395e-8,0.0016457168505185967,-4.524759349498278e-5,3.38356608525806e-8,0.001646113327512554,-4.51867851078022e-5,3.3777059144320585e-8,0.0016465187233436285,-4.5058731090684236e-5,3.366270182651552e-8,0.0016469065595708819,-4.4862213010709696e-5,3.349209230451183e-8,0.0016472501485759548,-4.460855757214049e-5,3.327522050357837e-8,0.0016475282892311342,-4.43219688174928e-5,3.303267631530774e-8,0.001647731361928809,-4.40365769207798e-5,3.279298525555044e-8,0.0016478658173717641,-4.378990661504161e-5,3.2587010223876336e-8,0.001647955012278325,-4.361395560197095e-5,3.244050743190803e-8,0.0016480353368982224,-4.352634140384957e-5,3.236693816783387e-8,0.0016481481573200063,-4.352430208745986e-5,3.236282743263174e-8,0.0016483294908475749,-4.358362185466893e-5,3.240727442369534e-8,0.001648600066709863,-4.366323577305269e-5,3.2466074614676396e-8,0.0016489585077819739,-4.371486073861877e-5,3.249977289857885e-8,0.0016493799815096145,-4.369565905864213e-5,3.247396466644824e-8,0.0016498216574363398,-4.35805854427313e-5,3.236916312326058e-8,0.0016502342591044501,-4.337016148742985e-5,3.2186868815840264e-8,0.0016505762173780565,-4.309020706568123e-5,3.194909432152713e-8,0.0016508250968513124,-4.278317246005813e-5,3.1691092721698956e-8,0.0016509819009967624,-4.24946924788503e-5,3.1450271221881416e-8,0.0016510674183862332,-4.226105950962592e-5,3.125597438215787e-8,0.0016511135338679924,-4.210202576888828e-5,3.112374663814163e-8,0.0016511538874274358,-4.201993406387043e-5,3.105483497910188e-8,0.0016512170388640625,-4.200324771532353e-5,3.1039256218679945e-8,0.0016513230147448136,-4.2031673250908966e-5,3.106005739207479e-8,0.0016514824899899535,-4.2080862105879425e-5,3.109711887696447e-8,0.0016516973653265966,-4.212590433392133e-5,3.1129923067476226e-8,0.001651961729402234,-4.214373526750093e-5,3.113947244255304e-8,0.001652262709403183,-4.2115034434587586e-5,3.11098777670916e-8,0.001652581282236162,-4.20262355409554e-5,3.103010807540562e-8,0.001652893563089459,-4.1871968498026697e-5,3.089609413234407e-8,0.0016531733119630543,-4.165773999853627e-5,3.071294747399099e-8,0.001653396304072018,-4.1401950749318465e-5,3.0496512296258735e-8,0.0016535465337220673,-4.113559677284715e-5,3.027291157231968e-8,0.00165362283822673,-4.08978653952933e-5,3.007468972951524e-8,0.001653643051829214,-4.072709688518788e-5,2.993320892854408e-8,0.0016536425379715574,-4.064915069866908e-5,2.986905479463843e-8,0.0016536658656256423,-4.0667642322225216e-5,2.988415848613424e-8,0.0016537538623654171,-4.076077998128367e-5,2.995949305378407e-8,0.0016539310239152949,-4.088682206365838e-5,3.0059909699632935e-8,0.0016541982039326847,-4.099610396545309e-5,3.0144299811144e-8,0.0016545328263749025,-4.1044953793367646e-5,3.0177129842224954e-8,0.0016548957129889686,-4.100692229408898e-5,3.013755445295461e-8,0.0016552417765755723,-4.0878540058739154e-5,3.0023865014476645e-8,0.0016555313813681053,-4.0678744800547455e-5,2.985267628556814e-8,0.0016557394578348126,-4.0442706059349526e-5,2.965356616713717e-8,0.0016558602205119905,-4.0212091256584694e-5,2.9460936650144332e-8,0.0016559066064064827,-4.002467175107929e-5,2.9305507808049016e-8,0.0016559051411805651,-3.990618815504244e-5,2.9207810627581598e-8,0.0016558883208421219,-3.986641734804314e-5,2.9175190181454984e-8,0.0016558871094012825,-3.989970995789232e-5,2.920244204328383e-8,0.0016559255239323612,-3.9988717521732396e-5,2.9274958922300416e-8,0.0016560179934640134,-4.010939295998521e-5,2.9372803922459204e-8,0.0016561690600313398,-4.023567907279301e-5,2.947446435780696e-8,0.0016563744709726966,-4.0343077329543915e-5,2.9559704687070583e-8,0.0016566227473716701,-4.04110569171678e-5,2.9611550177314757e-8,0.0016568967011817656,-4.0424765170366424e-5,2.9617783814663727e-8,0.0016571748725286567,-4.03766005139679e-5,2.9572361572399208e-8,0.001657433277921752,-4.026798280415287e-5,2.9476932544257488e-8,0.0016576481341211992,-4.011122108290574e-5,2.9342315929308953e-8,0.0016578002161897344,-3.993068140079735e-5,2.918927620055278e-8,0.0016578808882250792,-3.97616016784514e-5,2.904730413787855e-8,0.0016578983842147038,-3.964455859766971e-5,2.894986463588264e-8,0.0016578810457861806,-3.961480375790006e-5,2.8925550308629004e-8,0.0016578735047228827,-3.968893422226867e-5,2.8987194852995764e-8,0.0016579242628156493,-3.985510074322592e-5,2.9124022121367424e-8,0.0016580686098759247,-4.007348282468502e-5,2.9302307407495906e-8,0.001658315212483153,-4.028875236110224e-5,2.9475907260284677e-8,0.0016586433615687947,-4.044883713349159e-5,2.9601907087753384e-8,0.0016590113970561915,-4.0520869931719907e-5,2.9653810852602028e-8,0.0016593709065407672,-4.049825768358674e-5,2.9627222749183985e-8,0.0016596801558158162,-4.039855087642855e-5,2.953777937619335e-8,0.0016599128451770951,-4.025546688761349e-5,2.9414208659192474e-8,0.001660061372670357,-4.010894002692455e-5,2.928985879812469e-8,0.0016601355508499426,-3.999598249842553e-5,2.9195098085642385e-8,0.0016601582578794414,-3.994386969418339e-5,2.9151836997324146e-8,0.0016601594601349523,-3.9966285990856224e-5,2.9170608546724392E-08,0.0016601699239930832,-4.006254573710791e-5,2.9250175101477995e-8,0.0016602158041532625,-4.021951416375853e-5,2.9379253301896273e-8,0.0016603149537395255,-4.041536412718664e-5,2.9539614735345927e-8,0.00166047527124585,-4.062408817363606e-5,2.970971399095024e-8,0.0016606948895783432,-4.081978853524619e-5,2.986812443718438e-8,0.0016609636296508186,-4.098007900947471e-5,2.9996308350286483e-8,0.0016612650174455234,-4.108841983012459e-5,3.0080601450579956e-8,0.0016615783991599132,-4.113565076063209e-5,3.01135932639863e-8,0.00166188105966781,-4.11211016170598e-5,3.009513534055636e-8,0.001662150531071203,-4.105352714493535e-5,3.0033097660775586e-8,0.0016623675379770072,-4.095183539624763e-5,2.994381510048298e-8,0.0016625201033940193,-4.0844962473662907e-5,2.98517361833591e-8,0.0016626087554811723,-4.0769446539057265e-5,2.9787188477707118e-8,0.0016626514160071732,-4.0762994359918156e-5,2.9780965991072815e-8,0.0016626848298044925,-4.0853432310140516e-5,2.9855291758414986e-8,0.0016627585180696237,-4.104557297078488e-5,3.001319945286181e-8,0.0016629196343020275,-4.1312810810254054e-5,3.023184378109478e-8,0.0016631936622173485,-4.1601319751516236e-5,3.046615302114082e-8,0.0016635717482644979,-4.1848343784879263e-5,3.0664058183648755e-8,0.0016640132555107746,-4.200576477773202e-5,3.0786057280139574e-8,0.0016644620386205267,-4.205590491481198e-5,3.0818301607812385e-8,0.001664866364125141,-4.201279974388258e-5,3.0773509768777413e-8,0.001665192705554029,-4.1912072651471524e-5,3.068227045198648e-8,0.0016654301308830564,-4.1797159168452974e-5,3.0581274453788686e-8,0.0016655875286445104,-4.170783384293948e-5,3.050359333944092e-8,0.001665687465604892,-4.167319984191924e-5,3.0472896827926416e-8,0.0016657594905155892,-4.170874776273719e-5,3.050124412626773e-8,0.0016658342301060726,-4.181625386895793e-5,3.058929521132896e-8,0.0016659386770511526,-4.1985505643195065e-5,3.0727965256502515e-8,0.0016660927790692734,-4.2197234556937535e-5,3.0900934221248055e-8,0.001666307394327278,-4.242676039351328e-5,3.108761361993264e-8,0.0016665836116936171,-4.2647885737481854e-5,3.1266263776837525e-8,0.0016669133750296294,-4.2836615240290816e-5,3.141699700450582e-8,0.0016672812040082632,-4.29742538784887e-5,3.1524353127941986e-8,0.001667666583854231,-4.3049585079543835e-5,3.157918783389978e-8,0.0016680466219054927,-4.306016694156729e-5,3.1579840829446867e-8,0.0016683988209936053,-4.3012919060955386e-5,3.153264421759085e-8,0.0016687039684606657,-4.2924075892586436e-5,3.145177637443578e-8,0.001668949248977301,-4.281847186208641e-5,3.135844372913255e-8,0.001669131786259909,-4.272775819299064e-5,3.127914542178871e-8,0.0016692623804481766,-4.268653070428464e-5,3.1242302733313314e-8,0.0016693680627836978,-4.272526972232355e-5,3.1272440060728026e-8,0.0016694908319522278,-4.286013130087455e-5,3.138195636848311e-8,0.0016696795079151228,-4.3082236687797025e-5,3.156257050561017e-8,0.0016699738397906113,-4.335263606913009e-5,3.178138863954782e-8,0.0016703860640257925,-4.3610062290433165e-5,3.1987399692878435e-8,0.0016708909850968417,-4.3792311883293744e-5,3.212916881254575e-8,0.0016714333005318656,-4.3861116917503015e-5,3.217546090751692e-8,0.0016719492822700806,-4.3815726814167675e-5,3.2126524444803504e-8,0.0016723897475633752,-4.368843070089595e-5,3.201025739742718e-8,0.0016727324810957033,-4.352796787840965e-5,3.1868119479992646e-8,0.0016729818078562674,-4.338203342372647e-5,3.174024705968066e-8,0.001673160510358554,-4.3286058936851166e-5,3.165596355869807e-8,0.0016733001997954202,-4.325918304672302e-5,3.1630534790235667e-8,0.0016734335563792723,-4.3305040518058526e-5,3.166611119385737e-8,0.0016735892269826305,-4.3414715646800075e-5,3.1754482304429493e-8,0.0016737888324904195,-4.357023755789901e-5,3.188016234879414e-8,0.0016740453537005702,-4.3748057320064645e-5,3.202330368510447e-8,0.0016743624861162748,-4.392241829557162e-5,3.216241408654458e-8,0.0016747348092937828,-4.406860454410632e-5,3.227695616684352e-8,0.0016751487805059524,-4.416603666815915e-5,3.234987839857888e-8,0.001675584637718124,-4.420100590072595e-5,3.236992864406305e-8,0.0016760191120139118,-4.4168658691226686e-5,3.23333885762874e-8,0.0016764286255676625,-4.407397693962139e-5,3.224493873197347e-8,0.0016767926831136699,-4.393169599546051e-5,3.211753662941352e-8,0.001677097237930815,-4.3765093105344423e-5,3.197123217472216e-8,0.00167733777658621,-4.360358105039846e-5,3.183091478114156e-8,0.001677521869398556,-4.347902774846859e-5,3.172303510741116e-8,0.0016776707408900074,-4.342049118287758e-5,3.167116295241453e-8,0.0016778187422698135,-4.3447130391136005e-5,3.1690241873688606e-8,0.0016780089503785252,-4.3560098509420256e-5,3.178016652122048e-8,0.0016782833720448765,-4.373614563117936e-5,3.192080369790514e-8,0.0016786683666438333,-4.3927655024510755e-5,3.207221484054373e-8,0.001679160369115784,-4.407367191046424e-5,3.2183808817329206e-8,0.0016797209875307913,-4.412114009758808e-5,3.221188471697183e-8,0.0016802880403294148,-4.404672142738793e-5,3.213771971384632e-8,0.001680798773740542,-4.386597338792192e-5,3.197519004817064e-8,0.0016812121713359505,-4.362439078443936e-5,3.176318558267004e-8,0.0016815186777889915,-4.337739128303645e-5,3.1548644038694827e-8,0.0016817358173011794,-4.317163234212843e-5,3.137068706839119e-8,0.0016818964774662018,-4.303518866881324e-5,3.125235326029229e-8,0.0016820373053456571,-4.2976515779093504e-5,3.1199916976096325e-8,0.0016821908517579908,-4.298835334932385e-5,3.120645643391533e-8,0.001682381643870257,-4.305295001771544e-5,3.125647495228362e-8,0.0016826248641123465,-4.314669659029766e-5,3.1329875743603594e-8,0.0016829262935964223,-4.3243765750394774e-5,3.1404959032322505e-8,0.0016832827993444842,-4.3319058823132525e-5,3.1460773886099394e-8,0.0016836831808576592,-4.335081474193989e-5,3.147921387142313e-8,0.0016841094761317773,-4.332309858073908e-5,3.144709006843145e-8,0.0016845389965708768,-4.322812581928537e-5,3.1358136502702837e-8,0.0016849472827916928,-4.30680097516396e-5,3.121454317459761e-8,0.001685311817324549,-4.28553785051464e-5,3.102747616737498e-8,0.0016856160259362443,-4.2612465496661675e-5,3.081620600067579e-8,0.0016858529647612876,-4.2368472572295754e-5,3.060568908899294e-8,0.0016860279929869306,-4.2155252212118004e-5,3.042272064814904e-8,0.0016861597397253318,-4.2001707138160697e-5,3.029110352696416e-8,0.001686278802546357,-4.192753075558542e-5,3.0226450956112963e-8,0.0016864236511896307,-4.1937096150845514e-5,3.023131644925384e-8,0.0016866333005143353,-4.20148809990313e-5,3.029172471873377e-8,0.0016869370383114897,-4.212468985170035e-5,3.0376837396555156e-8,0.0016873432300061099,-4.221528826700933e-5,3.0443795692792346e-8,0.0016878316433975797,-4.223370069387507e-5,3.044875659726567e-8,0.0016883549945588567,-4.214339067565662e-5,3.0361907947096335e-8,0.0016888524992501178,-4.193939125212146e-5,3.017996755366323e-8,0.0016892708942925403,-4.165129888299081e-5,2.992858118803242e-8,0.0016895823148465297,-4.1331399559831654e-5,2.9652240492607542e-8,0.0016897900659125485,-4.103474076847829e-5,2.9397395175287495e-8,0.0016899216625505006,-4.080203475990938e-5,2.919799465346154e-8,0.0016900157054978312,-4.0652031392961096e-5,2.906915313908238e-8,0.0016901099208097574,-4.058288462987776e-5,2.900853004866035e-8,0.0016902339270298944,-4.057817378667731e-5,2.900165126974593e-8,0.0016904065626526063,-4.061354355146046e-5,2.9027644312851774e-8,0.0016906360051758417,-4.0661950119559325e-5,2.9063648467584324e-8,0.0016909209995482196,-4.069723028481099e-5,2.9087710885649258e-8,0.0016912522654108416,-4.069653884596306e-5,2.9080721860103752e-8,0.0016916138646757722,-4.064230977992161e-5,2.9028017183053914e-8,0.0016919847467131485,-4.052416230559773e-5,2.8921020015667242e-8,0.0016923408945919195,-4.034078146507427e-5,2.8758904768726176e-8,0.0016926584456100585,-4.0101338254094135e-5,2.854984370404633e-8,0.0016929177886920088,-3.98256830559316e-5,2.8311126828899853e-8,0.001693108077881154,-3.954252987433632e-5,2.8067479641023334e-8,0.0016932310746483276,-3.928519728252996e-5,2.7847258747180767e-8,0.0016933029691601435,-3.908519792267514e-5,2.767686433700739e-8,0.0016933530634665743,-3.896487647791898e-5,2.7574483226122663e-8,0.0016934189419301243,-3.893091195901987e-5,2.7544749748504323e-8,0.0016935386906464923,-3.897054727601237e-5,2.7575867805514548e-8,0.001693741560057379,-3.905203356829756e-5,2.7640332995878002e-8,0.0016940391412425884,-3.9130122676386634e-5,2.7699808677760945e-8,0.0016944196388182435,-3.9156405028759944e-5,2.7713881316001143e-8,0.0016948479443695268,-3.909270277009998e-5,2.7651188701418565e-8,0.0016952732925359264,-3.892369137957591e-5,2.749979593321849e-8,0.0016956435737868081,-3.8663481150373246e-5,2.7272496371780773e-8,0.001695921508217519,-3.835205250275875e-5,2.7003629854952092e-8,0.0016960956761315402,-3.804202367397545e-5,2.67378143191e-8,0.0016961815319577094,-3.778160361537539e-5,2.6515529524935576e-8,0.001696213032473906,-3.7601416121365983e-5,2.6362069074866936e-8,0.0016962301457196613,-3.750973613700963e-5,2.628370233701135e-8,0.0016962680770975457,-3.749551816840239e-5,2.627045669394839e-8,0.0016963512376621233,-3.753538910232288e-5,2.63021853253086e-8,0.0016964917453452192,-3.7600818583413475e-5,2.635465438290942e-8,0.001696690651419292,-3.766350660714986e-5,2.6404007688425848e-8,0.001696940137771745,-3.769874102950349e-5,2.642947829630893e-8,0.0016972256658882062,-3.7687335396604675e-5,2.6414948818137022e-8,0.0016975277902204365,-3.761694740849289e-5,2.635007890531258e-8,0.001697823895555182,-3.7483365373189244e-5,2.6231474474216885e-8,0.0016980904064073249,-3.729186542931282e-5,2.6063916854335785e-8,0.0016983059629982868,-3.705818431813839e-5,2.5861193564983613e-8,0.00169845567523588,-3.6808209557159376e-5,2.5645733638452276e-8,0.0016985358748413822,-3.6575286342219624e-5,2.544614117888997e-8,0.0016985578725676185,-3.6394393189292205e-5,2.5292069524213555e-8,0.0016985486004877865,-3.629367901585675e-5,2.5206946956193076e-8,0.001698546470920179,-3.628561471787852e-5,2.5200532434859682e-8,0.0016985925376170278,-3.6361141746669543e-5,2.5264171502710526e-8,0.0016987192823167937,-3.648970911878939e-5,2.537113473313952e-8,0.0016989407603901555,-3.66260131869023e-5,2.548261022146134e-8,0.0016992475797464068,-3.672165020583402e-5,2.5557724392811732e-8,0.0016996084606618878,-3.673811638230782e-5,2.5564517650592807e-8,0.001699977956475142,-3.6657310285023185e-5,2.5488638588697726e-8,0.0017003082070326627,-3.648654916289649e-5,2.5337305501061796e-8,0.001700561508238771,-3.625653060246809e-5,2.5137301531646965e-8,0.0017007199892369825,-3.601259358681587e-5,2.492738326789755e-8,0.0017007892677775634,-3.580192599678626e-5,2.474739066190967e-8,0.0017007949978842718,-3.566104751616369e-5,2.462773297309177e-8,0.0017007740285271689,-3.560774970729352e-5,2.4582760104628268e-8,0.001700763881614479,-3.5639540723169225e-5,2.4609678123756305e-8,0.0017007942876682992,-3.5737747088271245e-5,2.4692199666377635e-8,0.0017008827935677405,-3.5874468764077714e-5,2.48064931342209e-8,0.0017010342865269056,-3.601946403066804e-5,2.4926953335125145e-8,0.0017012429683338664,-3.614526778038245e-5,2.503041713192252e-8,0.0017014952046849267,-3.623023427960677e-5,2.5098644185563178e-8,0.001701772238022168,-3.626002631665762e-5,2.5119562344499273e-8,0.0017020524196195597,-3.6228338899696296e-5,2.5087946189913077e-8,0.0017023131682198593,-3.613749747676565e-5,2.500601481098576e-8,0.0017025331952084945,-3.599911636755302e-5,2.488403054979358e-8,0.001702695545569224,-3.583443484893609e-5,2.4740519688495516e-8,0.001702791658995604,-3.567341761960704e-5,2.4601345097724025e-8,0.001702825905263925,-3.5551336305842663e-5,2.449660803475595e-8,0.0017028188818827854,-3.550180632355494e-5,2.4454604213756933e-8,0.001702806735149731,-3.5546798682885895e-5,2.4493348244526906e-8,0.0017028341827005904,-3.5686793861779424e-5,2.4612368548798255e-8,0.0017029417119942861,-3.589622192692521e-5,2.4789084250634145e-8,0.001703151464359933,-3.612826882154989e-5,2.4983140816697334e-8,0.0017034584180842351,-3.632857896050061e-5,2.514822835935455e-8,0.0017038313132765339,-3.645226816286234e-5,2.5246595649292e-8,0.0017042226379164888,-3.647699395454146e-5,2.5260079820686068e-8,0.0017045828447247262,-3.640761249596701e-5,2.5193854756660187e-8,0.0017048733046878682,-3.627237682470769e-5,2.5072903100127402e-8,0.0017050744960167964,-3.611354589471979e-5,2.4933747465570844e-8,0.0017051883610562926,-3.597597816658294e-5,2.4814589910546375e-8,0.0017052354342512147,-3.5896752180398834e-5,2.4746512664333185e-8,0.0017052482576193312,-3.589793749996182e-5,2.4747526264296278e-8,0.001705263072666433,-3.598363726072869e-5,2.482032549880074e-8,0.0017053119227668128,-3.614137236019604e-5,2.4953695706256513e-8,0.0017054169711461474,-3.6346798808851755e-5,2.5126630491637535e-8,0.001705587948875609,-3.656997064057401e-5,2.5313627491764613e-8,0.0017058225445119196,-3.678132058142517e-5,2.548965965479151e-8,0.0017061087821257628,-3.69561651974611e-5,2.563388881603951e-8,0.0017064282269366776,-3.70773600928232e-5,2.5731871018470053e-8,0.0017067591018042412,-3.713639521195745e-5,2.5776518819360373e-8,0.0017070789070781516,-3.71335783856623e-5,2.576833424327725e-8,0.001707366647808429,-3.7077896034809675e-5,2.5715344204894712e-8,0.0017076050669122245,-3.6986775316050295e-5,2.563286430776859e-8,0.0017077833482693745,-3.6885519284883346e-5,2.5542879446377526e-8,0.0017079005422884115,-3.6805662765103294e-5,2.547244983570222e-8,0.0017079692563718653,-3.678101653653675e-5,2.545019000338502e-8,0.0017080179220300188,-3.684031594380135e-5,2.549999137370553e-8,0.0017080887479602191,-3.699691368462634e-5,2.5632392147724558e-8,0.001708228641281455,-3.723898589582162e-5,2.583648649016691e-8,0.0017084735851781347,-3.752657719115359e-5,2.607763848747086e-8,0.0017088326289339622,-3.7800822890985845e-5,2.6305464895935834e-8,0.0017092809717665692,-3.800389880699946e-5,2.6470864658603684e-8,0.001709767617820864,-3.810010719756817e-5,2.6543979991628234e-8,0.0017102337850382358,-3.8086965178193554e-5,2.6523588534275293e-8,0.0017106319934249428,-3.799214504651016e-5,2.6434316445958196e-8,0.0017109375331463164,-3.786074079930412e-5,2.6315481437475767e-8,0.0017111503518974585,-3.774050858751181e-5,2.6208213356204093e-8,0.0017112901426587356,-3.767043065840216e-5,2.6145574168089167e-8,0.001711388473927356,-3.767435097338324e-5,2.6147233879245078e-8,0.0017114807478860903,-3.7759148181293965e-5,2.6218181852708225e-8,0.0017115993915441882,-3.791616629237784e-5,2.6350243451075947e-8,0.0017117688340202747,-3.812478479964005e-5,2.6525321161408846e-8,0.0017120025462314225,-3.8357269218783055e-5,2.671957407701288e-8,0.0017123022368902155,-3.858401705662783e-5,2.690781030939024e-8,0.0017126589667248331,-3.8778319536625255e-5,2.706742096037333e-8,0.0017130556713426438,-3.892000575518932e-5,2.718139609955358e-8,0.0017134704463890348,-3.8997637220543705e-5,2.72401837338603e-8,0.0017138799079658143,-3.900926090925543e-5,2.7242381927571813e-8,0.0017142621560916798,-3.896209930041389e-5,2.719452965369347e-8,0.0017145992769997747,-3.887164408049795e-5,2.7110327165076998e-8,0.0017148795732618073,-3.876038090260755e-5,2.7009443934541433e-8,0.0017150997739135154,-3.8656079592503165e-5,2.691587804537622e-8,0.0017152674011576832,-3.858919935674702e-5,2.6855564023675893e-8,0.001715402930080424,-3.858850645778573e-5,2.68525620088811e-8,0.0017155403030105689,-3.867411814540851e-5,2.6923223505940072e-8,0.001715723354598753,-3.884849496986257e-5,2.706875788258036e-8,0.0017159957908326042,-3.9088518326831626e-5,2.7268754434345864e-8,0.0017163851403779347,-3.9344697300168935e-5,2.748066663980295e-8,0.001716886993958065,-3.955318428218216e-5,2.7650053898035193e-8,0.0017174602847125158,-3.965909042471542e-5,2.773040269966326e-8,0.001718040134972025,-3.963938085916244e-5,2.770265841257851e-8,0.0017185625897166842,-3.9511228867599055e-5,2.758236823583223e-8,0.0017189868062355465,-3.932167724591736e-5,2.7410713552494807e-8,0.001719303790073166,-3.912724285345024e-5,2.7236765021706585e-8,0.0017195315916373054,-3.897569321704473e-5,2.710159348901865e-8,0.0017197039490144403,-3.889639604552238e-5,2.7029929542711243e-8,0.001719859026622647,-3.889874932274322e-5,2.7028998797406246e-8,0.0017200313178398767,-3.897534491821806e-5,2.7091549749431207e-8,0.0017202469671751624,-3.910684938799904e-5,2.7200319928931065e-8,0.001720521602018453,-3.926695176135516e-5,2.7332412797781222e-8,0.001720859794259045,-3.942689817955544e-5,2.7463158757262513e-8,0.001721255728863236,-3.955955466122989e-5,2.756947544016638e-8,0.0017216948873827532,-3.9642868900642176e-5,2.7632707506931933e-8,0.001722156569161592,-3.966254350579579e-5,2.764085344336467e-8,0.0017226170439005363,-3.9613697538888915e-5,2.7590003469533287e-8,0.001723052976870324,-3.9501301872358064e-5,2.7484764624405265e-8,0.0017234446600947672,-3.933941901930363e-5,2.733763268972299e-8,0.001723778754377761,-3.914951517199835e-5,2.7167486552635708e-8,0.0017240504576373702,-3.8958063040786535e-5,2.6997386666773607e-8,0.0017242650711087881,-3.8793531002493264e-5,2.6851810256787167e-8,0.0017244389431611393,-3.868270733259092e-5,2.675337383241879e-8,0.0017245995113033862,-3.864602832841346e-5,2.671885005626151e-8,0.0017247834536315045,-3.8691681327300336e-5,2.6754311849929e-8,0.0017250313802367769,-3.880929377612953e-5,2.6850034141866425e-8,0.001725377842565471,-3.896581169015178e-5,2.697723630726428e-8,0.0017258375470063556,-3.910800396460535e-5,2.7090318371162557e-8,0.0017263930836693708,-3.917572346874251e-5,2.7138107085967308e-8,0.0017269933872087041,-3.912436180795919e-5,2.7082925689746156e-8,0.0017275689865215494,-3.8945638522437385e-5,2.691835379492017e-8,0.0017280585048235183,-3.86727214245852e-5,2.6673635556659343e-8,0.001728431073422244,-3.836534884152783e-5,2.6400818438587404e-8,0.0017286923868734853,-3.808504387510162e-5,2.61532106623058e-8,0.0017288748816655678,-3.787530232705404e-5,2.5968120288942417e-8,0.0017290217154868146,-3.7754199534558863E-05,2.5860493154658515e-8,0.0017291734675064128,-3.771726995413944e-5,2.582562501534354e-8,0.0017293607820238672,-3.7744848247661723E-05,2.584579636728525e-8,0.001729602000315515,-3.780948874960963e-5,2.5896883802857644e-8,0.001729903599395464,-3.788165973355425e-5,2.595331727889163e-8,0.0017302617181777903,-3.7933690493989186e-5,2.5991389794231897e-8,0.0017306640141175572,-3.794259510943676e-5,2.5991547940454676e-8,0.001731091755867424,-3.789224556048095e-5,2.594015958103042e-8,0.001731522255539111,-3.7775051882364856e-5,2.5830937167328825e-8,0.0017319317604426708,-3.7593037290670407e-5,2.5665905426726304e-8,0.0017322987686243735,-3.735795299004614e-5,2.545555029736884e-8,0.0017326074067128012,-3.709011144855787e-5,2.5217806685687195e-8,0.0017328503457029842,-3.6815919057722917e-5,2.4975834819967113e-8,0.001733030801250284,-3.6564297546596944e-5,2.4754770932095832e-8,0.001733163245050693,-3.636230112525841e-5,2.4577788776660804e-8,0.0017332725692263016,-3.6230386059595666e-5,2.446195888578073e-8,0.001733391561335409,-3.6177777041230204e-5,2.4414354594100277e-8,0.0017335564073636222,-3.619837183913728e-5,2.4428778625296542e-8,0.001733799814146551,-3.626816379255833e-5,2.4483858210644657e-8,0.0017341419144584454,-3.634606741287226e-5,2.454398795466479e-8,0.0017345806750870597,-3.638048933612316e-5,2.4565021790145197e-8,0.0017350858869240476,-3.632295309658755e-5,2.4505843202086038e-8,0.0017356024788424108,-3.614624025006184e-5,2.4343764994910206e-8,0.0017360663216553012,-3.585874629062718e-5,2.408675934782713e-8,0.0017364275421104804,-3.550486845228883e-5,2.377374351553505e-8,0.001736668888599713,-3.514850340937432e-5,2.34602712311622e-8,0.001736808661045457,-3.4848567953173e-5,2.3197265336036242e-8,0.001736888544939611,-3.464037865199596e-5,2.301485336433552e-8,0.0017369558513605297,-3.4530440416808935e-5,2.29179595201377e-8,0.001737049707092597,-3.4502354376221574e-5,2.289165624475731e-8,0.0017371947516276504,-3.4526982344086895e-5,2.2910199010581445e-8,0.0017374008073448293,-3.4571512886728264e-5,2.2944984052831473e-8,0.001737665467048844,-3.460545560147143e-5,2.2969695297045837e-8,0.001737977290689824,-3.460390307791772e-5,2.296299541437974e-8,0.0017383186141002541,-3.454918032334136e-5,2.290982677063709e-8,0.0017386679295325906,-3.4431804356590167e-5,2.2802188582601254e-8,0.0017390021734525031,-3.42511906097866e-5,2.2639776047910924e-8,0.0017392992945751758,-3.40160914722638e-5,2.243042545250072e-8,0.0017395413117880889,-3.374434814309473e-5,2.2189933916874547e-8,0.0017397176600680104,-3.346135952529788e-5,2.1940688488459516e-8,0.0017398281621878566,-3.319689225605055e-5,2.170877243418754e-8,0.0017398847366847004,-3.2980307378858836e-5,2.1519663391740078e-8,0.00173991100205662,-3.283480466826047e-5,2.1393128136041958e-8,0.0017399392899709579,-3.27718231350248e-5,2.1338379242105724e-8,0.00174000521831946,-3.278698042141254e-5,2.1350723083240454e-8,0.001740140572588363,-3.285870325852261e-5,2.1410652793135758e-8,0.0017403655886877377,-3.295034303669861e-5,2.1485963701877946e-8,0.0017406820927880144,-3.301629939579607e-5,2.153721791335664e-8,0.0017410695269251995,-3.301209684177935e-5,2.152643905078453e-8,0.001741486310794703,-3.290702867540473e-5,2.1427864745405244e-8,0.0017418784545159788,-3.269589869418132e-5,2.1237862433750336e-8,0.0017421948525763043,-3.2404476839655194e-5,2.097945465702013e-8,0.001742404370709457,-3.208389090653782e-5,2.069734831489266e-8,0.001742506671572139,-3.179415040864402e-5,2.0443603476147352e-8,0.0017425307722198473,-3.158389373995162e-5,2.0260073766504838e-8,0.0017425223974869423,-3.147622681133658e-5,2.0166207874633754e-8,0.0017425275508909542,-3.146622368211866e-5,2.0157058325399752e-8,0.0017425801811898768,-3.152827253738807e-5,2.020986020759265e-8,0.0017426972860252556,-3.162719052466486e-5,2.02938080720638e-8,0.001742880085460341,-3.172780363660379e-5,2.0378372619537326e-8,0.001743118076178938,-3.180084546028723e-5,2.0438317988914532e-8,0.0017433934077427334,-3.1825558838409014e-5,2.045583270732787e-8,0.0017436844082488409,-3.179033969714021e-5,2.0421013873564265e-8,0.001743968178512343,-3.169263001235832e-5,2.0331783624667846e-8,0.0017442227209409098,-3.153871728518193e-5,2.0193782525411485e-8,0.0017444291701622036,-3.134350069999404e-5,2.002022746940685e-8,0.0017445744879534223,-3.112978763186553e-5,1.9831294365844262e-8,0.0017446545474839863,-3.092639446856581e-5,1.9652370870985962e-8,0.0017446769299296102,-3.0764373350770444e-5,1.9510621046903156e-8,0.0017446621867443558,-3.067120727891532e-5,1.9429795770389297e-8,0.001744642159515886,-3.066382603124781e-5,1.9424111620866493e-8,0.0017446545782597647,-3.074243219545489e-5,1.9492972810802038e-8,0.0017447345609175441,-3.088764647827402e-5,1.961870511808151e-8,0.0017449051754598907,-3.106281392238331e-5,1.9768826171514667e-8,0.0017451700230479688,-3.122163105108318e-5,1.9902887093021913e-8,0.001745510408947374,-3.1319374667683715e-5,1.9982307573413395e-8,0.001745888357283682,-3.1324766347923475e-5,1.998060209584599e-8,0.0017462551360621196,-3.122919694479231e-5,1.989118907219179e-8,0.0017465634988662125,-3.105046157655002e-5,1.9730384470556232e-8,0.001746780545164631,-3.0829192817083005e-5,1.9534083265630877e-8,0.0017468971763283654,-3.06181089004315e-5,1.9348284579479396e-8,0.0017469304559974707,-3.0466979567041213e-5,1.921600927524104e-8,0.001746917542182514,-3.0408580265584186e-5,1.916519343229281e-8,0.001746903536584843,-3.0450937289348743e-5,1.9202135362128732e-8,0.0017469283478326418,-3.057824727716383e-5,1.931250208156185e-8,0.0017470175401144699,-3.075870969388561e-5,1.9468283092315117e-8,0.0017471793662891689,-3.095489208974001e-5,1.9636835355944387e-8,0.00174740696584924,-3.1132521919019314e-5,1.978845734405289e-8,0.0017476831047323403,-3.126577909856488e-5,1.9900875698021727e-8,0.0017479851225330183,-3.1339285687671686e-5,1.9960887050540934e-8,0.0017482888771933986,-3.134799753916344e-5,1.9964247391127438e-8,0.001748571500534339,-3.1296247023240655e-5,1.9914888607216414e-8,0.0017488134063673208,-3.1196725784627565e-5,1.9824099003596076e-8,0.0017490001909731922,-3.106955308858083e-5,1.970973106837139e-8,0.0017491248720657058,-3.0941022082626086e-5,1.9595042768266226e-8,0.0017491904664698418,-3.084128927975832e-5,1.9506546090950694e-8,0.0017492122725144203,-3.080019758367981e-5,1.9470218613974216e-8,0.0017492184473760612,-3.084086291599031e-5,1.950583763271849e-8,0.0017492470171063378,-3.097194995726486e-5,1.9620297100766168e-8,0.0017493381646387358,-3.1181363894115793e-5,1.980227981843363e-8,0.0017495228601829887,-3.143510381205071e-5,2.0021485851797534e-8,0.0017498116793050868,-3.168386290175472e-5,2.023458425088819e-8,0.0017501889553554505,-3.18764773563137e-5,2.039704390946832e-8,0.001750615655745262,-3.197543249573554e-5,2.0476649055390935e-8,0.0017510402683068693,-3.1968199999134966e-5,2.0463276536587624e-8,0.0017514133531797574,-3.187031880307763e-5,2.037138563020928e-8,0.0017517005273633118,-3.1719998107685436e-5,2.0235063634656074e-8,0.001751890219662361,-3.156694813316782e-5,2.009806183335921e-8,0.0017519948081852045,-3.1459214757831945e-5,2.0002203745109712e-8,0.0017520456413406555,-3.14316280501743e-5,1.99773642676767e-8,0.001752083843670919,-3.149863525213701e-5,2.0035412948970665e-8,0.0017521497040240116,-3.1652918673865666e-5,2.0169255510395947e-8,0.0017522736069611874,-3.186951297035694e-5,2.0356620338662876e-8,0.0017524707370152176,-3.211356229077129e-5,2.056690037038114e-8,0.0017527403103441905,-3.234896981308914e-5,2.076865466262888e-8,0.0017530684808992239,-3.254545176213017e-5,2.0935651692450514e-8,0.0017534331318351181,-3.2682714956734884e-5,2.1050408448247448e-8,0.0017538088119477358,-3.275180452227584e-5,2.110531752462392e-8,0.0017541707526388716,-3.275447431229004e-5,2.1102114748483773e-8,0.0017544976901405082,-3.270162706579011e-5,2.105056824283674e-8,0.0017547738024637697,-3.2611589026689284e-5,2.096699993899653e-8,0.0017549902985381242,-3.250844445279376e-5,2.0872790992964694e-8,0.001755147084288628,-3.242014951493518e-5,2.0792620166438958e-8,0.001755254570490484,-3.2375793594230804e-5,2.0751927960372814e-8,0.001755335063281145,-3.2401220502996406e-5,2.0772996896363735e-8,0.0017554223357314845,-3.251259859283147e-5,2.0869356621329078e-8,0.0017555573977173214,-3.2708863724273736e-5,2.1039332104000612e-8,0.0017557790984082053,-3.29660727723672e-5,2.126132814313656e-8,0.0017561108323753565,-3.3238262436040336e-5,2.1494763264115556e-8,0.0017565485849542516,-3.346811995275699e-5,2.1689479904005575e-8,0.0017570576145160576,-3.360552772869162e-5,2.1801953478252693e-8,0.001757581785070488,-3.362585143779291e-5,2.1811245999041253e-8,0.0017580620722044517,-3.353851148587489e-5,2.1726427797049774e-8,0.001758455202278241,-3.3382035778471196e-5,2.158208310470156e-8,0.0017587444079113072,-3.320959575010596e-5,2.1425399176948597e-8,0.0017589399770165945,-3.307263661221911e-5,2.130160656072588e-8,0.0017590722808459125,-3.3008502295315075e-5,2.1243072677899854e-8,0.001759181556547813,-3.3034286998855964e-5,2.1264051244620618e-8,0.0017593078653479616,-3.314644102862432e-5,2.1360602034657684e-8,0.0017594831921096522,-3.332452486865661e-5,2.1514143545573805e-8,0.0017597265437465275,-3.353738875474003e-5,2.1697021326259336e-8,0.001760042245970357,-3.3750244753001815e-5,2.1878713640531822e-8,0.001760421146334321,-3.393124357669487e-5,2.2031497920959415e-8,0.0017608439638752132,-3.405644801825657e-5,2.2134681640893213e-8,0.0017612857471203435,-3.411264048046515e-5,2.2176972713998292e-8,0.0017617204091223166,-3.409797973084421e-5,2.2157031793999206e-8,0.0017621245438929386,-3.402096746414191e-5,2.208259287114386e-8,0.0017624801775086999,-3.3898450706873454e-5,2.1968740632231774e-8,0.0017627765982876126,-3.3753300304850276e-5,2.183585863215288e-8,0.001763011621842634,-3.3612016549370004e-5,2.1707446371806972e-8,0.0017631925713161728,-3.350214912888116e-5,2.1607729651469524e-8,0.0017633370417948848,-3.344913871513708e-5,2.1558783250075647e-8,0.0017634730174059953,-3.347197967528787e-5,2.1576714714329268e-8,0.0017636371116576798,-3.357742597786236e-5,2.1666704084487572e-8,0.0017638691979690627,-3.3753723774377576e-5,2.181772916999189e-8,0.0017642023031790117,-3.396680513750332e-5,2.1999445627985694e-8,0.0017646491667109299,-3.4163476660183754e-5,2.2165086343053056e-8,0.0017651911849654452,-3.428501454789286e-5,2.226334653764835e-8,0.001765778160698935,-3.428858702670496e-5,2.2257091907866984e-8,0.0017663432093342334,-3.416606996623403e-5,2.213983656780172e-8,0.0017668269543614896,-3.3948415208319496e-5,2.193955489711035e-8,0.001767197842766506,-3.369259112538415e-5,2.17070724834961e-8,0.0017674586193811824,-3.34596154530708e-5,2.1496498412280247e-8,0.001767639060592299,-3.329574652596208e-5,2.1348468166328244e-8,0.0017677821871205088,-3.3223440312985864e-5,2.1282180173486558e-8,0.0017679311822968995,-3.324154570836546e-5,2.129578103953367e-8,0.001768120512436396,-3.333086353608994e-5,2.1371561635770116e-8,0.0017683715270797181,-3.346142626072527e-5,2.148260408851196e-8,0.0017686914318105862,-3.3599409128902524e-5,2.1598953117881766e-8,0.0017690744739801523,-3.371291615094851e-5,2.1692652330809286e-8,0.0017695045695388376,-3.3776430454713476e-5,2.1741529840179073e-8,0.0017699588242402324,-3.3773791444695706e-5,2.1731694812881347e-8,0.0017704114732510778,-3.369964876976124e-5,2.1658752122008647e-8,0.0017708378094016797,-3.355943690940463e-5,2.152778106353521e-8,0.0017712176390383754,-3.336799684118138e-5,2.1352151053456795e-8,0.0017715378651225137,-3.314720089247531e-5,2.1151437607701027e-8,0.0017717941126926234,-3.2923077927578334e-5,2.0948840418387312e-8,0.0017719915599731899,-3.272273093629134e-5,2.0768364307715262e-8,0.0017721450953806894,-3.257108279253322e-5,2.063183815712094e-8,0.001772278789586462,-3.248736044869667e-5,2.0555760321616602e-8,0.0017724243969323124,-3.2481099228891417e-5,2.0547838756955484e-8,0.0017726180377305497,-3.2547672204280884e-5,2.06032360891902e-8,0.001772893902096436,-3.26643881516983e-5,2.070137445010743e-8,0.0017732745145420026,-3.278970120097843e-5,2.0805422495871913e-8,0.0017737592672930375,-3.286910117515717e-5,2.0867510935645095e-8,0.0017743165104114895,-3.285007607212869e-5,2.0841794381781585e-8,0.0017748868641271837,-3.27030730663727e-5,2.0702786663879134e-8,0.0017754014530360297,-3.2437768348831866e-5,2.0459662686927267e-8,0.0017758080743716612,-3.2102608481630945e-5,2.015584789108212e-8,0.0017760903595036206,-3.17656634260758e-5,1.985200104905266e-8,0.0017762693117928238,-3.1488255206219554e-5,1.9602496536206447e-8,0.0017763894591366236,-3.13062590108772e-5,1.9438747273234566e-8,0.001776500414190258,-3.12255836885439e-5,1.9365283650061506e-8,0.0017766430268873303,-3.1228419406428315e-5,1.9365541425495753e-8,0.0017768429247380117,-3.128342719222774e-5,1.9411160162745227e-8,0.0017771097947912773,-3.1355028823638904e-5,1.9470365609482324e-8,0.0017774396800211817,-3.141000926638304e-5,1.9513809181670135e-8,0.0017778182926467716,-3.142162035464175e-5,1.951808140830944e-8,0.0017782244717445747,-3.137198226709649e-5,1.946769186203101e-8,0.0017786336024299082,-3.12533185341731e-5,1.9356066032986675e-8,0.0017790209705546684,-3.1068226775794e-5,1.9185763398043137e-8,0.0017793650121143564,-3.08290205222032e-5,1.8967926769402895e-8,0.001779650296646995,-3.055604937514018e-5,1.8720829744334336e-8,0.0017798698743530228,-3.0274995636721267e-5,1.846747256260845e-8,0.001780026632235612,-3.001344158238894e-5,1.8232467517967285e-8,0.0017801335374979842,-2.9797089846618077e-5,1.8038579085288705e-8,0.0017802127450977066,-2.964590951538579e-5,1.7903218620709243e-8,0.0017802935187865058,-2.9570467972433672e-5,1.783518762572123e-8,0.0017804088777299578,-2.9568714404354944e-5,1.7831942719272197e-8,0.0017805907080136712,-2.9623577448738986e-5,1.7877681205500904e-8,0.0017808630276179797,-2.97023326731302e-5,1.7943009994474517e-8,0.0017812337934054229,-2.97595557883807e-5,1.7987695659313328e-8,0.0017816872967592035,-2.9745687070046982e-5,1.7968220015004007e-8,0.0017821813976015835,-2.962172070135213e-5,1.7850629717166458e-8,0.0017826548299887984,-2.9376324177287026e-5,1.762553130680372e-8,0.0017830461959892749,-2.903634032102028e-5,1.731731488754778e-8,0.0017833176117902473,-2.866124927995671e-5,1.6979208783705445e-8,0.001783469533852475,-2.832122375637814e-5,1.6673724822837606e-8,0.0017835376035968266,-2.80706105762117e-5,1.6448993998207882e-8,0.0017835749164607615,-2.793168172891396e-5,1.6324306949224888e-8,0.0017836317390693452,-2.7894493168831586e-5,1.6290136262871556e-8,0.0017837425116183111,-2.7927737072698468e-5,1.6318029727125984e-8,0.0017839222251040216,-2.7991952248573566e-5,1.6372552649405453e-8,0.0017841690180765415,-2.804960543379875e-5,1.6420305148628225e-8,0.0017844690921453375,-2.8070762770376914e-5,1.6434881896134044e-8,0.001784801494145308,-2.803540319002629e-5,1.6398785045025665e-8,0.0017851419554334824,-2.7933929717305372e-5,1.6303760303012625e-8,0.0017854659718042635,-2.7766907604290468e-5,1.6150522430904983e-8,0.0017857515136427459,-2.7544366750350456e-5,1.5948164497142894e-8,0.0017859816002243757,-2.7284609584283965e-5,1.571315251966609e-8,0.0017861467536977667,-2.7012260273114013e-5,1.5467614316026404e-8,0.0017862470230057806,-2.6755286369400636e-5,1.5236648496569402e-8,0.0017862930134701384,-2.654104265296623e-5,1.504470406978934e-8,0.001786305424195102,-2.6391773125555355e-5,1.491146539228525e-8,0.0017863128449208082,-2.6320220335777346e-5,1.4847885035371189e-8,0.0017863478278571186,-2.632612309632168e-5,1.4853112441925018e-8,0.0017864415524204687,-2.639440009895842e-5,1.491303463720827e-8,0.0017866176433893105,-2.649564870787032e-5,1.500094022968379e-8,0.0017868858723667914,-2.6589505322540724e-5,1.5080702406757717e-8,0.0017872368982414784,-2.66314436018206e-5,1.5112903973863852e-8,0.0017876399981771522,-2.6583121415397484e-5,1.5063969741293373e-8,0.0017880463839678022,-2.6424855833963814e-5,1.4917086903880453e-8,0.0017884001103203367,-2.61662566626825e-5,1.4681479769128718e-8,0.0017886554421320897,-2.5848825556468653e-5,1.439459563665528e-8,0.0017887942451537537,-2.5535601758596886e-5,1.4112816495281188e-8,0.0017888338091817063,-2.5289736988679483e-5,1.3892330893168733e-8,0.0017888195185604239,-2.515213106178181e-5,1.3769205429052592e-8,0.0017888063464290775,-2.5129846263159923e-5,1.3749151498984439e-8,0.0017888398156686227,-2.5199537269306553e-5,1.3810764966794239e-8,0.0017889451574657782,-2.5320670226036306e-5,1.391749936516575e-8,0.0017891262814678304,-2.544988601042015e-5,1.4030567902762325e-8,0.0017893708634015488,-2.5550922719877188e-5,1.4117760285831568e-8,0.0017896570726811836,-2.5599109255723216e-5,1.4157333008626661e-8,0.0017899592671993573,-2.5582042811262578e-5,1.4138489270469296e-8,0.0017902519438446774,-2.5498478260559e-5,1.4060321791036643e-8,0.0017905123629933307,-2.535677868794753e-5,1.3930440496755607e-8,0.0017907225488373376,-2.51734072821892e-5,1.3763682625522863e-8,0.0017908711693659085,-2.4971322438834654e-5,1.3580725771725944e-8,0.0017909554371954345,-2.4777821665357153e-5,1.3406151734326352e-8,0.0017909827283962571,-2.462135499749847e-5,1.3265522508586063e-8,0.001790971202300491,-2.4527148765017287e-5,1.3181360162542386e-8,0.0017909485628708425,-2.4512064252896147e-5,1.316846906372442e-8,0.0017909483769799933,-2.457975629539259e-5,1.3229610662378395e-8,0.0017910040460442844,-2.4717652977466054e-5,1.3352913035006776e-8,0.001791141441592685,-2.4897216452611835e-5,1.3512291120867038e-8,0.0017913719494893788,-2.5078198784446382e-5,1.367144672572904e-8,0.0017916878464235458,-2.5216509648907783e-5,1.3791025050547342e-8,0.0017920615866127356,-2.5274345945545365e-5,1.3837668829362787e-8,0.0017924499408709217,-2.5230505604992228e-5,1.3793113821811035e-8,0.001792803043549295,-2.508822447015411e-5,1.3660997294053245e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_16.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_16.json new file mode 100644 index 000000000..bf8935107 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_16.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":16000,"numberOfSamples":1000,"samples":[0.0017930770944964171,-2.487756201187732e-5,1.3468791504217692e-8,0.0017932476264231187,-2.464987080068864e-5,1.3262714904077391e-8,0.0017933184724985877,-2.446409956071231e-5,1.3095425337680572e-8,0.0017933216314600794,-2.436869143477916e-5,1.3009865564682467e-8,0.0017933067138776958,-2.438639601001157e-5,1.3025800857085489e-8,0.0017933242278720884,-2.450889654783832e-5,1.3135191695059903e-8,0.0017934104016406212,-2.470298517826634e-5,1.330788790362845e-8,0.0017935796118112995,-2.4923857068963115e-5,1.35036193070344e-8,0.0017938254296263332,-2.512860398380717e-5,1.3684062401894767e-8,0.001794127049257825,-2.5285096932882215e-5,1.3820701756483629e-8,0.0017944568919538132,-2.537530987356056e-5,1.389769075082024e-8,0.0017947867111250417,-2.5394724503292413e-5,1.3911234845185292e-8,0.0017950914943699093,-2.5349982163249467e-5,1.3867468677974076e-8,0.0017953516485814604,-2.5256290869559507e-5,1.3780165902829643e-8,0.0017955543110713956,-2.513520274015715e-5,1.3668792904120013e-8,0.0017956944918898108,-2.501264398241291e-5,1.3556752559378335e-8,0.0017957763330320648,-2.4916631576514276e-5,1.3469287614057573e-8,0.0017958142078399008,-2.487403171878831e-5,1.343048298157746e-8,0.0017958328475770424,-2.4906014603702265e-5,1.3459107884232579e-8,0.001795865353512456,-2.5022541802827092e-5,1.3563657130380593e-8,0.001795948122041468,-2.521726303763574e-5,1.3737855679584164e-8,0.0017961127345561176,-2.546517299188524e-5,1.395871521848886e-8,0.0017963766324439365,-2.572537619201675e-5,1.4189187885469435e-8,0.0017967359302593923,-2.5949711291697144e-5,1.4386024761031048e-8,0.0017971637506210216,-2.6095329969824996e-5,1.451109103127541e-8,0.0017976155937020869,-2.6137143168968956e-5,1.4542469045381444e-8,0.0017980404371389018,-2.607573723966647e-5,1.4481422712615806e-8,0.001798394095120732,-2.5938065908348892e-5,1.4352832525648934e-8,0.0017986508156540284,-2.5770774714917362e-5,1.4199014670934582e-8,0.0017988099091846071,-2.5628118914854457e-5,1.4068743101640252e-8,0.0017988956039585806,-2.555773604555096e-5,1.4004458068040699e-8,0.0017989500158965364,-2.558822796060149e-5,1.4031230788508505e-8,0.0017990211621026053,-2.5722340085414784e-5,1.415084222610123e-8,0.0017991498357205768,-2.593791853046823e-5,1.4342850551324464e-8,0.0017993597382745207,-2.6195968610161597e-5,1.4571956673982097e-8,0.0017996538157950808,-2.645239065855816e-5,1.4798559267271849e-8,0.0018000169294873425,-2.666894130169837e-5,1.498852497549383e-8,0.0018004224996779246,-2.6820193009237008e-5,1.5119328433877708e-8,0.0018008399579285909,-2.6895709367472842e-5,1.5181911626012463e-8,0.0018012407279650508,-2.6898643187987404e-5,1.5179375808053418e-8,0.0018016019580566775,-2.6842624017871885e-5,1.512418529733506e-8,0.0018019083507358257,-2.6748422125539742e-5,1.503519386765796e-8,0.0018021529000758112,-2.664111066735776e-5,1.4935106313335826e-8,0.0018023373010458653,-2.654770620791294e-5,1.4848328300519829e-8,0.0018024724205052492,-2.6494772143160663e-5,1.4798742963175621e-8,0.0018025786668415908,-2.6505317999914305e-5,1.4806850211476605e-8,0.0018026854955645365,-2.659451656531552e-5,1.4885891179718516e-8,0.0018028287921071594,-2.6764406036804033e-5,1.5037147763755564e-8,0.0018030448604636129,-2.6999007434058543e-5,1.5245693907824705e-8,0.0018033608554715635,-2.726276700041339e-5,1.5479157196478573e-8,0.0018037839756043577,-2.750560873314212e-5,1.5692371417557645e-8,0.0018042943907072807,-2.767567790489397e-5,1.583886014992919e-8,0.0018048471164087917,-2.7736268154231167e-5,1.5886025345858665e-8,0.0018053841995643509,-2.7679480289528892e-5,1.582737530167465e-8,0.0018058526507647669,-2.752969711011927e-5,1.5685558185452904e-8,0.001806220217685462,-2.73353380759272e-5,1.550478294473961e-8,0.0018064829196074033,-2.715336860705409e-5,1.533667607943918e-8,0.001806663117932587,-2.7033305913710596e-5,1.5225741546222746e-8,0.001806800801895628,-2.7005730814722615e-5,1.5199028506319084e-8,0.0018069420013151019,-2.7077300335566203e-5,1.5261811538653193e-8,0.0018071276684187964,-2.7232000211422743e-5,1.5398964117004876e-8,0.0018073853085648632,-2.7437165696606414e-5,1.5580585890886757e-8,0.0018077246572371043,-2.7652248535832284e-5,1.576998693661435e-8,0.0018081377800550024,-2.7838089562507862e-5,1.5932006675260243e-8,0.0018086029626342595,-2.7964541054522235e-5,1.603977518121356e-8,0.0018090908374324907,-2.8014926126988497e-5,1.607861859878816e-8,0.00180957084697334,-2.7986978508900445e-5,1.6046829753568754e-8,0.0018100165314672806,-2.7890983536707856e-5,1.5953965389800106e-8,0.0018104089137041853,-2.774636589803873e-5,1.5817776136232783e-8,0.0018107380434183873,-2.7577939639375955e-5,1.5660833269492737e-8,0.0018110032945058872,-2.7412588632335316e-5,1.5507519669488106e-8,0.0018112130984671998,-2.727650820984009e-5,1.5381492498527788e-8,0.0018113845185778008,-2.719266881496396e-5,1.5303331370154355e-8,0.0018115426463610783,-2.7177984586301253e-5,1.5287947407869493e-8,0.0018117192686648675,-2.7239724617485946e-5,1.5341380468993828e-8,0.001811949680932402,-2.7371212382235838e-5,1.545703888127489e-8,0.0018122663836599232,-2.754807176709037e-5,1.561247872864076e-8,0.0018126893601793177,-2.772785807579092e-5,1.57692019263019e-8,0.001813215168157243,-2.7856683016959833e-5,1.5878661656300398e-8,0.001813810503341971,-2.788443523714781e-5,1.589593222254393e-8,0.0018144169960900853,-2.7784424994027194e-5,1.5797369795099836e-8,0.0018149690546354657,-2.7567238609616395e-5,1.5593102180247856e-8,0.0018154173615913274,-2.7279217321055754e-5,1.532562475157829e-8,0.001815745477353155,-2.698524284095293e-5,1.5054105867581623e-8,0.001815971625884253,-2.674564379645672e-5,1.4833294082824518e-8,0.0018161376350310534,-2.6598869981665784e-5,1.4697715161200344e-8,0.0018162930699050063,-2.6555272801256695e-5,1.46561098570472e-8,0.0018164816791041126,-2.6600309925083196e-5,1.4694563048089877e-8,0.001816733162707175,-2.6702680190249542e-5,1.4784125685246063e-8,0.0018170600913158257,-2.682355433898887e-5,1.4889335877885533e-8,0.0018174585911996668,-2.6924764974141972e-5,1.4975656178105195e-8,0.0018179114635388195,-2.697514492077015e-5,1.5015123550887387e-8,0.0018183927840198378,-2.69547379106428e-5,1.499003182489609e-8,0.0018188731580403156,-2.6856711418009936e-5,1.4894556739454665e-8,0.001819324793629755,-2.6687029559253713e-5,1.473440683021408e-8,0.0018197256785068433,-2.6462277654925132e-5,1.4524849413287513e-8,0.001820062373922574,-2.6206258898886165e-5,1.428764312060864e-8,0.001820331254382838,-2.5946127881015275e-5,1.4047536963377575e-8,0.001820538445168254,-2.5708755861324498e-5,1.3828946837314153e-8,0.0018206989383891886,-2.5517624437804906e-5,1.365308557110985e-8,0.0018208352337955717,-2.5390152599451144e-5,1.3535489407026761e-8,0.0018209755912363625,-2.5335207243642732e-5,1.34837573147026e-8,0.001821151632775928,-2.5350517985874814e-5,1.3495281869197622e-8,0.0018213945362785741,-2.5420047270152325e-5,1.3555011738893574e-8,0.0018217289276931587,-2.551235675360919e-5,1.363413439824075e-8,0.001822164406689718,-2.5582239942904856e-5,1.3691653129699898e-8,0.001822686655285152,-2.557849948022469e-5,1.3681411343723724e-8,0.0018232531039378613,-2.5459295222371094e-5,1.3565889406493894e-8,0.0018237998026180275,-2.5211254782313133e-5,1.3333435451442727e-8,0.0018242618025331551,-2.48617013791813e-5,1.300934477782622e-8,0.0018245988973076108,-2.4473013353101097e-5,1.2650735273151976e-8,0.0018248114805428112,-2.4119027032174727e-5,1.2325005783849212e-8,0.0018249369229238492,-2.3856916289854328e-5,1.2084104532181132e-8,0.0018250308362240503,-2.371030618670482e-5,1.1949100841989596e-8,0.001825146047330891,-2.366910915234589e-5,1.1910159201163204e-8,0.0018253190675345766,-2.3700474694523012e-5,1.1936747643950821e-8,0.0018255659145471929,-2.3762271034004848e-5,1.1990121606287427e-8,0.0018258842445968248,-2.3813805840709907e-5,1.2033166516185259e-8,0.001826258169929863,-2.382242826521537e-5,1.2036355717542334e-8,0.0018266634773100754,-2.3766769983762126e-5,1.1980573637170289e-8,0.001827072388230482,-2.363782080690576e-5,1.1857967699394822e-8,0.0018274577516185762,-2.343858881848419e-5,1.1671564450583e-8,0.0018277966526101797,-2.318264021823313e-5,1.1433927158541618e-8,0.0018280733241575382,-2.2891668446499556e-5,1.1164967072672481e-8,0.0018282811577905753,-2.259224023359341e-5,1.0889004337993399e-8,0.001828423551827078,-2.231201801919025e-5,1.0631321018346868e-8,0.0018285135003267157,-2.207596922814408e-5,1.0414665395833809e-8,0.0018285721071275558,-2.1903000912757984e-5,1.0256127104231967e-8,0.0018286262706814032,-2.1803209435120533e-5,1.0164594038831645e-8,0.001828705702435555,-2.177583438325039e-5,1.0138909579633824e-8,0.001828839337656277,-2.1807956588344662e-5,1.0166784524005633e-8,0.0018290509329571627,-2.1874064192536067e-5,1.0224554437432966e-8,0.0018293535538177238,-2.1937215282132975e-5,1.027838557907086e-8,0.0018297433561300666,-2.1953289747187514e-5,1.0288214837085777e-8,0.0018301945153309169,-2.1879869760203124e-5,1.0215787794044302e-8,0.001830658946308421,-2.168992779500395e-5,1.0036992338479185e-8,0.0018310753618979378,-2.138679258668782e-5,9.755367998113473e-9,0.0018313889838965569,-2.1011704357252705e-5,9.40893730399691e-9,0.0018315746329431721,-2.063467135717398e-5,9.061841978804914e-9,0.0018316490783180249,-2.0328796754628263e-5,8.780851241439044e-9,0.0018316632653398112,-2.0141677331726018e-5,8.60917634137112e-9,0.001831679395233614,-2.0080681978185537e-5,8.55305072202464e-9,0.0018317476612021335,-2.0117816834583795e-5,8.586332987307337e-9,0.0018318940208144653,-2.0206428881992914e-5,8.665969743081962e-9,0.0018321201082134187,-2.0298263194615822e-5,8.747708166164193e-9,0.001832409908402203,-2.0354458317239478e-5,8.796142458866711e-9,0.00183273774398109,-2.035003732644327e-5,8.788718700893353e-9,0.001833074770107819,-2.027416826766039e-5,8.715846695855356e-9,0.001833393452426999,-2.0128529716534936e-5,8.579316424344743e-9,0.0018336705866361742,-1.992511730302927e-5,8.390268759309309e-9,0.0018338894912187423,-1.968387735533606e-5,8.167058601271752e-9,0.0018340416791292305,-1.943010095958344e-5,7.932910852662894e-9,0.0018341280134618974,-1.9191384559990707e-5,7.713154507289564e-9,0.0018341590816821458,-1.8994066898046752e-5,7.53193522572574e-9,0.0018341544149850127,-1.885940649167221e-5,7.40865932392435e-9,0.0018341403815578727,-1.8800038802715472e-5,7.3546966523347715e-9,0.0018341468535115438,-1.8817250628981883e-5,7.370872897137305e-9,0.0018342029234141627,-1.889956862277312e-5,7.446231414582977e-9,0.0018343321227258867,-1.9023083174690816e-5,7.558447698209529e-9,0.0018345476553118807,-1.9153707945490168e-5,7.676042116963366e-9,0.0018348481083950683,-1.9251549921866032e-5,7.762491329140837e-9,0.0018352144196331546,-1.9277769509678416e-5,7.782530133022137e-9,0.0018356096596253435,-1.920398976117508e-5,7.710681424220857e-9,0.0018359837763515755,-1.9022957466042443e-5,7.540865396769042e-9,0.0018362849741516284,-1.8756908829736255e-5,7.293910761478627e-9,0.0018364766833233455,-1.8457870012827724e-5,7.017737181329629e-9,0.0018365538571077135,-1.8194914639068882e-5,6.775647214996834e-9,0.001836548563460727,-1.803024372589666e-5,6.624410847690285e-9,0.0018365187675594202,-1.7995409567851337e-5,6.592525088216024e-9,0.0018365252877235454,-1.8081331449302935e-5,6.671177914624835e-9,0.0018366101542084223,-1.8246672589318575e-5,6.822077045534804e-9,0.0018367869375824912,-1.8436994200718304e-5,6.995122222991016e-9,0.001837043888830328,-1.8602938875977135e-5,7.145101322978344e-9,0.0018373537387537482,-1.8710583772040503e-5,7.241122599512904e-9,0.0018376837337121634,-1.8743874840279134e-5,7.2687428712580284e-9,0.0018380027530075403,-1.8702372696090056e-5,7.227808403795434e-9,0.0018382852635966235,-1.8597450955179613e-5,7.128926096284541e-9,0.001838513176276471,-1.8448670412689796e-5,6.990149973877557e-9,0.0018386767249291653,-1.8280754164638692e-5,6.8342449477846595e-9,0.0018387750038904136,-1.812090639012062e-5,6.686252226411574e-9,0.0018388162973281307,-1.799601728606697e-5,6.570911706461216e-9,0.0018388179260978472,-1.7929389648419776e-5,6.509607695224068e-9,0.0018388050594228275,-1.7937016075237906e-5,6.516893378261047e-9,0.0018388079846011016,-1.8023966004633595e-5,6.597145459559734e-9,0.001838857713922728,-1.818180313357647e-5,6.742223335637884e-9,0.0018389803552352245,-1.838806035919854e-5,6.9310780933096055e-9,0.0018391912530982262,-1.860858891245793e-5,7.132034188312767e-9,0.0018394902971468079,-1.88029481324306e-5,7.3078518212857724e-9,0.0018398597310770378,-1.8932177661136858e-5,7.422918615431776e-9,0.0018402654168871984,-1.896772954162206e-5,7.451423914551764e-9,0.0018406621235211068,-1.8899934385024923e-5,7.385028293072869e-9,0.0018410028729857332,-1.8743806537061265e-5,7.238049462551088e-9,0.0018412512510457238,-1.8539475868505472e-5,7.047719368366382e-9,0.0018413937282192889,-1.834483799071887e-5,6.86733900839635e-9,0.0018414470718991932,-1.8220140618210308e-5,6.752093172557913e-9,0.0018414557581306575,-1.8208514775956216e-5,6.741217444212319e-9,0.0018414780209857879,-1.8320709364073575e-5,6.844095149750602e-9,0.001841565803992494,-1.8532077021471085e-5,7.037638298125493e-9,0.0018417482230087799,-1.8793447944416692e-5,7.276395121919292e-9,0.001842025845932932,-1.9049480082961622e-5,7.509453930519011e-9,0.001842376034057044,-1.925507263145096e-5,7.69549565376883e-9,0.0018427639401787223,-1.9383990375315344e-5,7.810647629678605e-9,0.0018431531413094465,-1.942958955901095e-5,7.849070713791684e-9,0.0018435127392187048,-1.940088549418417e-5,7.8192866216250315E-09,0.001843820730492911,-1.9317320377072763e-5,7.739348166296656e-9,0.0018440648885501498,-1.9204160908646343e-5,7.632620118984367e-9,0.001844242531542363,-1.9089035068363377e-5,7.524612793811735e-9,0.0018443600647661403,-1.8999259868333292e-5,7.440521812341918e-9,0.001844432549312981,-1.8959307662865297e-5,7.402863667254894e-9,0.0018444829953387927,-1.8987874349045107e-5,7.428729689176291e-9,0.0018445407209490732,-1.9094430440071465e-5,7.52658268876082e-9,0.0018446380463958871,-1.9275761849198014e-5,7.693093256534828e-9,0.001844804951317121,-1.9513700180089063e-5,7.911127592194227e-9,0.0018450622049142106,-1.9775670897407012e-5,8.15036239379623e-9,0.0018454146537959305,-2.0019361155694627e-5,8.37168352380671e-9,0.0018458471645658634,-2.020149491512519e-5,8.53532123115057e-9,0.001846325472916595,-2.0288852030465627e-5,8.610991677718667e-9,0.001846802738334875,-2.0268255874207588e-5,8.587035433849896e-9,0.0018472305526570348,-2.0152106866842266e-5,8.475412368243551e-9,0.0018475714841345342,-1.99772538420524e-5,8.31053358635742e-9,0.0018478096100095864,-1.9796940495792812e-5,8.141712154172403e-9,0.0018479558587613187,-1.9667497884298463e-5,8.020816057287474e-9,0.0018480460497650023,-1.9633092096664974e-5,7.988216118779569e-9,0.0018481313475885142,-1.97130435184807e-5,8.061204673026506e-9,0.0018482635125553158,-1.989628715353263e-5,8.229056332405201e-9,0.0018484798977238869,-2.014547254945726e-5,8.45695909902495e-9,0.0018487937859131421,-2.0409270039150275e-5,8.697434490355547e-9,0.0018491933464550954,-2.0637777460108637e-5,8.904531720257321e-9,0.001849648388562267,-2.0794981895125802e-5,9.04525543618406e-9,0.0018501208603383453,-2.0864590650255843e-5,9.104868950596546e-9,0.0018505745805460858,-2.0849287684095834e-5,9.086145203825255e-9,0.0018509815951685388,-2.0766006244656177e-5,9.004964655845875e-9,0.0018513249009249032,-2.0640121265863943e-5,8.88493947825769e-9,0.0018515986248674762,-2.0500399014916906e-5,8.75275158592604e-9,0.0018518069924697927,-2.037529947986055e-5,8.634737803338043e-9,0.0018519630574627775,-2.029034519449881e-5,8.55444480376467e-9,0.0018520875544509319,-2.0265862670398454e-5,8.530515515536571e-9,0.0018522076118006106,-2.0314479503742223e-5,8.574357895458459e-9,0.001852354640478269,-2.043817792207266e-5,8.68743961998716e-9,0.0018525605725263623,-2.0625343158510295e-5,8.85862825193293e-9,0.0018528519045839407,-2.0849110173348045e-5,9.06276525797922e-9,0.0018532420360760945,-2.1069073571299936e-5,9.262339779435322e-9,0.001853724130935122,-2.123818424609054e-5,9.413907129041965e-9,0.0018542681745039775,-2.13146965067963e-5,9.479118156772436e-9,0.001854825500677946,-2.1275855803305648e-5,9.437327265942164e-9,0.0018553411001434338,-2.1127603421251835e-5,9.294511094167757e-9,0.001855769808091963,-2.0905197786356253e-5,9.083769325899609e-9,0.001856089934500493,-2.066366542445483e-5,8.856377940750694e-9,0.001856309055157489,-2.0461827016597087e-5,8.66688007773098e-9,0.0018564605291198604,-2.0346009610590452e-5,8.557941716365146e-9,0.0018565929794966702,-2.0338609963516525e-5,8.549815123998282e-9,0.0018567566935258077,-2.0434095465034442e-5,8.636794189047838e-9,0.0018569909246059376,-2.0602544164462002e-5,8.790679141975657e-9,0.001857315247217037,-2.079894845221756e-5,8.96952007306406e-9,0.0018577267622189627,-2.097526582003082e-5,9.12880609280628e-9,0.001858203223977554,-2.109175679528336e-5,9.231914666619509e-9,0.0018587104540100233,-2.1124682017155018e-5,9.257156442445109e-9,0.0018592113115679834,-2.106890188932159e-5,9.200104828967708e-9,0.0018596735056705283,-2.0935816127821806e-5,9.07163153057935e-9,0.0018600745996205108,-2.0748452915729757e-5,8.89332379757743e-9,0.0018604039664238258,-2.0535775690622106e-5,8.692194187757801e-9,0.0018606624467996109,-2.032768021272182e-5,8.496037214902576e-9,0.0018608607937328295,-2.0151290741381685e-5,8.329989644194028e-9,0.0018610177895546044,-2.0028404875289557e-5,8.214148845006132e-9,0.0018611584243115355,-1.9973516875703052e-5,8.161728802068476e-9,0.0018613119834204608,-1.999186368250376e-5,8.17725592983337e-9,0.0018615094730483387,-2.0077264157555704e-5,8.254611200906061e-9,0.0018617795921467622,-2.021010824142319e-5,8.375250055651793e-9,0.0018621426777235635,-2.0356759570897997e-5,8.507743574528015e-9,0.0018626030974959807,-2.0472527218197918e-5,8.610594760757943e-9,0.001863142529370494,-2.0510266452106173e-5,8.640213095127023e-9,0.001863718542838287,-2.0434462278556232e-5,8.563932655985352e-9,0.0018642726717816077,-2.0236362154722935e-5,8.374014217097276e-9,0.0018647478436570396,-1.9942109211313427e-5,8.095175761587323e-9,0.001865108368948935,-1.960728289796133e-5,7.779474788722417e-9,0.0018653524017467537,-1.9298711898535704e-5,7.4892916930745e-9,0.0018655107551995035,-1.9072315354648044e-5,7.27659510756275e-9,0.0018656340820196373,-1.895724351204022e-5,7.168151304633016e-9,0.0018657758320747826,-1.895135064135561e-5,7.161416176012306e-9,0.0018659780113648356,-1.9026593337249196e-5,7.229749985625541e-9,0.0018662631207856332,-1.9139791481250695e-5,7.332602529333776e-9,0.0018666323647777408,-1.9244376015289706e-5,7.426524029334083e-9,0.0018670686302071045,-1.93003096381889e-5,7.474374412439072e-9,0.0018675424105708905,-1.9280847880737214e-5,7.451532270409492e-9,0.0018680189994260549,-1.9175704489265866e-5,7.348747503653877e-9,0.0018684654564785955,-1.8990736169104185e-5,7.171778438188237e-9,0.0018688561260398076,-1.8744836865035615e-5,6.938463114669843e-9,0.0018691760026911882,-1.8465188498455326e-5,6.674284503730649e-9,0.001869421833270251,-1.818207784859466e-5,6.407542925266269e-9,0.0018696013388690184,-1.7924257543533537e-5,6.165035437391302e-9,0.0018697312745747144,-1.77154221714517e-5,5.968767927016784e-9,0.0018698350512996898,-1.7571817919185243e-5,5.8337191006715384e-9,0.0018699402886244905,-1.750060390009367e-5,5.76630978226681e-9,0.0018700762544792589,-1.7498573862310598e-5,5.763229760950721e-9,0.0018702708423503566,-1.7551071627329354e-5,5.8104800416812336e-9,0.0018705465025051088,-1.763137263486119e-5,5.882878383752786e-9,0.0018709146903029294,-1.770161615547732e-5,5.945007935726127e-9,0.0018713693790612124,-1.771717503436893e-5,5.955326079857078e-9,0.001871882005628167,-1.7636224585071255e-5,5.875056690709975e-9,0.0018724021730790383,-1.7434179833481032e-5,5.681589270232072e-9,0.0018728684333721528,-1.7118167658035483e-5,5.3819353393236815e-9,0.0018732287172204356,-1.6732355540166632e-5,5.017686966724454e-9,0.0018734616898216,-1.6346704189132433e-5,4.654472798669768e-9,0.0018735862278335242,-1.6031827206181716e-5,4.358367558462995e-9,0.0018736526901350647,-1.583326478782647e-5,4.1717537065880975e-9,0.0018737219046122688,-1.5758804508346698e-5,4.10148922345258e-9,0.0018738443004110933,-1.578241850439683e-5,4.12273758898688e-9,0.0018740479774201498,-1.5858384906640113e-5,4.192354118637595e-9,0.0018743368377812267,-1.5936813363410486e-5,4.2635170100055776e-9,0.0018746952507608576,-1.5975245333576563e-5,4.296582563572818e-9,0.001875095253598817,-1.594505681652756e-5,4.265000879239349e-9,0.0018755037392833745,-1.5833619336192383e-5,4.157239354603041e-9,0.0018758885761289046,-1.5643635440476038e-5,3.976084601740173e-9,0.001876223379869671,-1.539063040568846e-5,3.736258860742264e-9,0.0018764908158095375,-1.5099215718405392e-5,3.460921341786339e-9,0.0018766843555797306,-1.4798700313825205e-5,3.1775739251165955e-9,0.001876808514204054,-1.4518593640800304e-5,2.913862771528727e-9,0.001876877684600156,-1.428449594527703e-5,2.6937304046643276e-9,0.0018769138794313335,-1.4114849713635936e-5,2.534362112040424e-9,0.001876943877891384,-1.4018784813808756e-5,2.444153315210054e-9,0.0018769961556297737,-1.3994930354196748e-5,2.4215928014478305e-9,0.0018770976892354386,-1.4030988542626093e-5,2.454884423634573e-9,0.0018772705481379275,-1.4104015382463982e-5,2.5222631987773908e-9,0.001877528051302119,-1.4181603792678899e-5,2.5931789806121115e-9,0.0018778703569376982,-1.4224713941675174e-5,2.6310160704288327e-9,0.0018782801543122864,-1.4193451439422243e-5,2.598529820729149e-9,0.0018787205590664604,-1.405678212300852e-5,2.4669139600598395e-9,0.0018791386692319275,-1.3805285464980217e-5,2.2276810492311913e-9,0.0018794780123360833,-1.3462303276611882e-5,1.9030504386180313e-9,0.0018796988460152687,-1.3085081939944344e-5,1.5469771882351445e-9,0.001879797376121251,-1.2749246711917046e-5,1.2305366805810725e-9,0.001879810814909188,-1.2520431987685998e-5,1.0152379061173355e-9,0.0018798025069450173,-1.2428480565797385e-5,9.28792039154265e-10,0.0018798356637794984,-1.2459405930458762e-5,9.576569245815327e-10,0.0018799514652937973,-1.2567147881760806e-5,1.058227207885944e-9,0.0018801611228964044,-1.2694459694026742e-5,1.1765668337490139e-9,0.0018804504286041776,-1.2790844470236134e-5,1.2652815802583089e-9,0.0018807898296935043,-1.2822211239622132e-5,1.2925348480468322e-9,0.001881144296639176,-1.2773137375766395e-5,1.244082520275377e-9,0.001881480541304962,-1.2644829708590756e-5,1.1212779543347608e-9,0.0018817714830373492,-1.2451442593087324e-5,9.37573033027889e-10,0.0018819987877392661,-1.2216113471832141e-5,7.147943106851535e-10,0.0018821541835679256,-1.1967040551517974e-5,4.79481554800589e-10,0.001882239823342938,-1.1733614321682521e-5,2.592733145950963e-10,0.0018822677333682823,-1.1542659347071796e-5,7.937878641490489e-11,0.001882258290813125,-1.1414929386642006e-5,-4.073055482831923e-11,0.00188223769665013,-1.1362192719985607e-5,-9.008293919875422e-11,0.001882234648515446,-1.1385337979164145e-5,-6.800108198389007e-11,0.0018822765976668182,-1.147373068275585e-5,1.529829570741141e-11,0.0018823859220090569,-1.1605863972995146e-5,1.3934936610352848e-10,0.0018825762769299201,-1.1751333204930212e-5,2.7535196640362164e-10,0.001882849356696919,-1.1874174668779581e-5,3.8937810798312383e-10,0.0018831923326353601,-1.1937760844475924e-5,4.470257514000792e-10,0.0018835766745060477,-1.1911660763090492e-5,4.198775427362523e-10,0.0018839599006157666,-1.1780441166968134e-5,2.937343558620432e-10,0.0018842923200876947,-1.1552816367157377e-5,7.714292268036392e-11,0.0018845300065070212,-1.1267101431234662e-5,-1.935563353070176e-10,0.001884651848842402,-1.0986979616266467e-5,-4.582805070815646e-10,0.0018846729512961321,-1.0783668473551395e-5,-6.500369715974631e-10,0.001884644026311698,-1.0709107993313308e-5,-7.201687612284614e-10,0.0018846329849430254,-1.0774324376780514e-5,-6.586566194780138e-10,0.0018846977991100334,-1.0946622650667459e-5,-4.966346506891892e-10,0.0018848664449174443,-1.1166459365350037e-5,-2.9038739613313543e-10,0.0018851332005309256,-1.1371807843700045e-5,-9.836030862044166e-11,0.00188546833284025,-1.1516483567944784e-5,3.6072174092010136e-11,0.0018858320534413794,-1.1577196587717038e-5,9.118298144119174e-11,0.0018861858170151932,-1.1551897946543376e-5,6.526251494340663e-11,0.0018864988368209698,-1.1454250824736898e-5,-2.8641386320276168e-11,0.0018867506997908348,-1.130771157982184e-5,-1.683171289939276e-10,0.0018869317981828468,-1.114067253953726e-5,-3.269535468848281e-10,0.00188704288267068,-1.0982683580718171e-5,-4.766790893169354e-10,0.00188709425157458,-1.0861262431198378e-5,-5.915582605683498e-10,0.0018871045582005074,-1.0798915164720963e-5,-6.504092600231872e-10,0.0018870989904794264,-1.0810255077489202e-5,-6.395398827368157e-10,0.0018871065171513206,-1.089946266139451e-5,-5.551558313967678e-10,0.0018871561148395357,-1.1058676341069262e-5,-4.048719775294948e-10,0.0018872723151573511,-1.1267948529405112e-5,-2.077232698081918e-10,0.0018874707273317042,-1.1497174238386989e-5,7.702962172308863e-12,0.0018877543345839755,-1.1710094620244999e-5,2.0709679356946207e-10,0.0018881113731507087,-1.1870079468074387e-5,3.5592247332806187e-10,0.0018885154354453212,-1.1947025394181564e-5,4.2594198011051527e-10,0.0018889282709940963,-1.1924554434572256e-5,4.0198452420754266e-10,0.0018893057509901104,-1.180642796887354e-5,2.8793937793174093e-10,0.0018896072155190882,-1.1620319815144137e-5,1.102325230061882e-10,0.0018898073174633363,-1.141620503858083e-5,-8.378045830706647e-11,0.0018899072882816023,-1.1256680872880053e-5,-2.350144500265779e-10,0.00188994004525897,-1.1199004466727915e-5,-2.8962303888349816e-10,0.0018899634124805416,-1.1274091765243815e-5,-2.187662588737686e-10,0.0018900409279768637,-1.1472911999612212e-5,-3.133758064503063e-11,0.0018902183761997377,-1.1749297526970216e-5,2.2880621691449785e-10,0.0018905085190595347,-1.2038537620544541e-5,5.004579398597872e-10,0.0018908911977333046,-1.2281010673800587e-5,7.273646082903298e-10,0.0018913257026649535,-1.2438746635557551e-5,8.738262880584713e-10,0.001891766418942364,-1.2500025159169855e-5,9.289921702418269e-10,0.0018921745217345054,-1.2474898759061678e-5,9.025856295473614e-10,0.0018925235949496604,-1.2387224374957897e-5,8.173373978207359e-10,0.0018928006012498605,-1.2267242724669224e-5,7.019521780489794e-10,0.001893004532648849,-1.2146219309942353e-5,5.860420989860535e-10,0.0018931444568213974,-1.2052958305120446e-5,4.968374482519974e-10,0.0018932376922635935,-1.201136506885249e-5,4.5688395279176046e-10,0.0018933080932005942,-1.203830971069964e-5,4.820179060546816e-10,0.0018933840198379344,-1.2141431704543413e-5,5.792878687063079e-10,0.0018934954432214392,-1.2317048491958935e-5,7.449904944807481e-10,0.0018936698433884116,-1.2548874791752978e-5,9.63493451044306e-10,0.0018939271289290503,-1.2808571057900438e-5,1.207801973263226e-9,0.0018942745270844783,-1.3059009801183272e-5,1.4426931836520661e-9,0.0018947029628015445,-1.3260512884313262e-5,1.6306445395104082e-9,0.0018951865409454112,-1.3379240786205856e-5,1.739776196090901e-9,0.0018956861193035659,-1.339582085200682e-5,1.7520006276159735e-9,0.001896156784362993,-1.3311821218936873e-5,1.6691149414387627e-9,0.0018965578833635218,-1.315201628144059e-5,1.5148888736049156e-9,0.0018968634955145083,-1.2961201862073039e-5,1.3319718714925833e-9,0.0018970707895216053,-1.27953186054354e-5,1.1734090967998433e-9,0.0018972035254706415,-1.270792499395131e-5,1.0897877058615488e-9,0.0018973082905004745,-1.2734836504746565e-5,1.1147159041982071e-9,0.0018974426469162598,-1.2881765897702211e-5,1.2532161191392723e-9,0.0018976577334179135,-1.3120638566367633e-5,1.4783604413576136e-9,0.0018979817061840188,-1.3397830754750496e-5,1.7391592222003208e-9,0.001898411458923872,-1.3651830597880485e-5,1.9773042111285594e-9,0.0018989162166529016,-1.3832467412215963e-5,2.1453543532283e-9,0.0018994501504002229,-1.3913394698958246e-5,2.218528300226893e-9,0.0018999670934915821,-1.3894285229865015e-5,2.1967560935101533e-9,0.0019004313205916007,-1.3794987368719163e-5,2.0991062793393773e-9,0.0019008222473536457,-1.3646563923406225e-5,1.9552477096692173e-9,0.0019011342862434643,-1.3483210869567092e-5,1.7977502645593472e-9,0.0019013742670453792,-1.3336710126712298e-5,1.656805182705815e-9,0.0019015583445810035,-1.3233251710861967e-5,1.557210441490532e-9,0.0019017093215130678,-1.3191683234416556e-5,1.516718948288368e-9,0.0019018544551819409,-1.322222486221346e-5,1.5448335845441187e-9,0.0019020232614363063,-1.332508798252e-5,1.641518474045382e-9,0.0019022446122891282,-1.3489036976123344e-5,1.7958687511443292e-9,0.0019025425844261994,-1.369058867045455e-5,1.985394636394811e-9,0.0019029310998461496,-1.3895103526272778e-5,2.177098013812628e-9,0.0019034084130146504,-1.4061158291373949e-5,2.3316432829741173e-9,0.0019039536403952983,-1.4148798826174367e-5,2.411188360481643e-9,0.00190452798036301,-1.4130390523376207e-5,2.3896713112052716e-9,0.0019050821403015848,-1.4000599135125858e-5,2.262277159589695e-9,0.0019055688083909521,-1.3781106731241096e-5,2.0499028297317794e-9,0.0019059562148011579,-1.3517137805515713e-5,1.795813482384683e-9,0.0019062378216281627,-1.3266226807941069e-5,1.55488479026225e-9,0.0019064346707243743,-1.3082876840158903e-5,1.3789321851604236e-9,0.0019065897975290977,-1.300402884385789e-5,1.3028645792247607e-9,0.0019067566525288243,-1.3039478647258866e-5,1.335631681489911e-9,0.0019069848668208623,-1.3169664466781716e-5,1.458241594737562e-9,0.0019073072088376596,-1.3351363244590194e-5,1.6292950121476715e-9,0.0019077314104704636,-1.35297729754093e-5,1.7965331398129217e-9,0.0019082393455308658,-1.3653389545506359e-5,1.910981408664566e-9,0.0019087936495511212,-1.368692249063571e-5,1.9391998920108105e-9,0.0019093490888763,-1.36182247050182e-5,1.8698433679372743e-9,0.0019098643504093444,-1.3457815665676977e-5,1.7131785903247102e-9,0.0019103104535418381,-1.3232664882104302e-5,1.49513174647234e-9,0.001910674199703993,-1.2977653683504635e-5,1.2491153226176072e-9,0.001910957383345947,-1.2727836569487273e-5,1.0086216538112337e-9,0.0019111736376836673,-1.2513095263658599e-5,8.021151208985223e-10,0.0019113446910483782,-1.2355262008813369e-5,6.502990133921028e-10,0.0019114970699477254,-1.2266914435896981e-5,5.649887739956633e-10,0.001911659458251913,-1.2250863989869682e-5,5.48651037755953e-10,0.0019118603142655674,-1.2299688915426472e-5,5.939871771107086e-10,0.0019121250704395051,-1.2395224103850199e-5,6.83479516283135e-10,0.001912472298250459,-1.2508553962420433e-5,7.894175597020551e-10,0.0019129086995072113,-1.2601732458062466e-5,8.755614362231623e-10,0.0019134238587510172,-1.2632856875682743e-5,9.019823758839568e-10,0.0019139872139001782,-1.2565475255362356e-5,8.340185275907759e-10,0.0019145507149744756,-1.2380996991705414e-5,6.541016494998854e-10,0.0019150594943169597,-1.208942059331609e-5,3.720012705806915e-10,0.0019154687355826697,-1.1731803189978585e-5,2.7186751351475117e-11,0.0019157599073696201,-1.1370438510631843e-5,-3.2059589419623007e-10,0.0019159480871280882,-1.1069433649940181e-5,-6.099776897920081e-10,0.0019160765242110884,-1.0874351161307604e-5,-7.975067244527357e-10,0.001916201638240862,-1.0799731954230843e-5,-8.695695269755934e-10,0.0019163757206690922,-1.0828066294132719e-5,-8.432736692445251e-10,0.001916633663319116,-1.0918083407511515e-5,-7.583931686950212e-10,0.0019169865545414935,-1.1017681518618213e-5,-6.649208970516302e-10,0.0019174220148160516,-1.1077138327480256e-5,-6.104228457140029e-10,0.001917909652400136,-1.1059628873658679e-5,-6.300141180862712e-10,0.0019184095373273615,-1.0947442807596206e-5,-7.404583107456317e-10,0.0019188815145464583,-1.074336196537258e-5,-9.388858115135974e-10,0.0019192932808213034,-1.0467594123611643e-5,-1.20575358697917e-9,0.0019196256213150462,-1.0151606595075532e-5,-1.5107725145640873e-9,0.0019198741582867806,-9.830831037267878e-6,-1.8199155582087304e-9,0.001920048034328906,-9.53810189496491e-6,-2.101716952530784e-9,0.00192016664884815,-9.298985720095432e-6,-2.3317451423285186e-9,0.0019202557299710247,-9.129284586844093e-6,-2.4949779817672822e-9,0.0019203436982262987,-9.03425635494825e-6,-2.5865276762768656e-9,0.0019204586561453517,-9.008766308266697e-6,-2.6114761398253937e-9,0.0019206257964393613,-9.037767379553837e-6,-2.584400459288261e-9,0.0019208647556760669,-9.096934635335611e-6,-2.528749375572851e-9,0.0019211863918376449,-9.153791617985142e-6,-2.475744453410305e-9,0.0019215887893763244,-9.170318069016814e-6,-2.4618619106144695e-9,0.0019220532680969222,-9.108486698013456e-6,-2.5235177511399977e-9,0.0019225426370994027,-8.93968667282501e-6,-2.6880381102716844e-9,0.0019230051437690364,-8.656881355420935e-6,-2.9620064184294193e-9,0.0019233868768198299,-8.284641843373393e-6,-3.321635583237772e-9,0.0019236508865696793,-7.87924983238811e-6,-3.7126811593957043e-9,0.0019237944180940756,-7.513626152701059e-6,-4.064969808739745e-9,0.0019238530642237287,-7.251346875133989e-6,-4.317442787274023e-9,0.0019238875264319904,-7.123184534446885e-6,-4.440727658128514e-9,0.0019239602849499028,-7.118772335068044e-6,-4.445080751689829e-9,0.0019241150340064711,-7.195410187776e-6,-4.3718032484889515e-9,0.0019243672115235493,-7.296057858543114e-6,-4.275859784550209e-9,0.0019247056490780219,-7.366796576870663e-6,-4.209081160263236e-9,0.001925100638222425,-7.368390575798459e-6,-4.2090899838722325e-9,0.0019255136991263675,-7.28124033598263e-6,-4.29459094897082e-9,0.0019259062934330908,-7.105313322498182e-6,-4.465474633111174e-9,0.001926246455241092,-6.8569503429279765e-6,-4.705904064104801e-9,0.001926513155176582,-6.563908504672785e-6,-4.989086595641599e-9,0.0019266984060524598,-6.259565315487143e-6,-5.28285207654197e-9,0.0019268072181901595,-5.977125716265304e-6,-5.555231795710813e-9,0.0019268557194206991,-5.744607949504135e-6,-5.779286983994542e-9,0.001926867956789526,-5.581192829623622e-6,-5.93661711990306e-9,0.0019268720688889452,-5.495252817643273e-6,-6.019245563941074e-9,0.0019268965365545243,-5.483964670467983e-6,-6.029980211505466e-9,0.0019269669147046517,-5.534047865259946e-6,-5.981698489668393e-9,0.0019271030607710645,-5.623188311924287e-6,-5.895977467639949e-9,0.0019273166863302753,-5.7219540024492885e-6,-5.8012471529754476e-9,0.001927608964943563,-5.7963044626612365e-6,-5.730359732741071e-9,0.001927968073137577,-5.811296023443038e-6,-5.716996716285913e-9,0.001928367327868175,-5.736968151573158e-6,-5.789976737812062e-9,0.0019287657529438592,-5.556881102280313e-6,-5.965023129181158e-9,0.0019291137044280984,-5.2780252562612125e-6,-6.235225744033611e-9,0.0019293656129909568,-4.9378508432014095e-6,-6.564293224012181e-9,0.0019294981647026979,-4.601333003765205e-6,-6.88943201632588e-9,0.001929525485728095,-4.342876353937429e-6,-7.138863176862139e-9,0.0019294994801223031,-4.217696588858802e-6,-7.25946537969358e-9,0.0019294908116161604,-4.238299439230228e-6,-7.239417461315074e-9,0.001929560314582812,-4.371015270438031e-6,-7.111424613284696e-9,0.0019297377118852202,-4.55344246107046e-6,-6.935795233464066e-9,0.001930017314096714,-4.719917590952116e-6,-6.775858205910853e-9,0.001930367658027968,-4.821014209853837e-6,-6.679201920416775e-9,0.0019307459008136353,-4.8316120263198285e-6,-6.669947990797228e-9,0.0019311099639047478,-4.749855588336907e-6,-6.749791325681373e-9,0.001931426078730715,-4.591648798416053e-6,-6.903320619292728e-9,0.0019316723240502833,-4.384152509840636e-6,-7.104284083463843e-9,0.00193183957714851,-4.159855661523347e-6,-7.321298468100921e-9,0.0019319309590358179,-3.951522849872863e-6,-7.522721099309414e-9,0.001931960272729608,-3.7879464393165173e-6,-7.680755766459321e-9,0.0019319496225054618,-3.690498897752296e-6,-7.774788967531755e-9,0.0019319263202685097,-3.6706055523742944e-6,-7.793831867149322e-9,0.001931919267959071,-3.7283927164905087e-6,-7.737819257871908e-9,0.0019319552108667095,-3.852716726614077e-6,-7.617573393096083e-9,0.0019320552988749142,-4.02248969024826e-6,-7.453520879166667e-9,0.0019322322171346693,-4.209066647074804e-6,-7.27339092546293e-9,0.0019324880384187753,-4.379522397329557e-6,-7.109051304871561e-9,0.0019328128907126745,-4.5006846976982455e-6,-6.9926006585541975e-9,0.001933184500922892,-4.543960637217014e-6,-6.951680008281516e-9,0.0019335690805746674,-4.491239132575197e-6,-7.0037418708715674e-9,0.0019339247854987158,-4.3417098714221724e-6,-7.149447726110859e-9,0.0019342092422925217,-4.118009382523817e-6,-7.366743932940767e-9,0.0019343916827004838,-3.868204312684253e-6,-7.608992772716862e-9,0.001934467361572726,-3.658733712507117e-6,-7.811866984567964e-9,0.001934467204138646,-3.5553083996379697e-6,-7.911879053399946e-9,0.0019344532495840499,-3.5966460829545584e-6,-7.871776332288663e-9,0.0019344968195731504,-3.7753114217998696e-6,-7.698978894623498e-9,0.0019346495112623097,-4.03947689724567e-6,-7.443761240396356e-9,0.0019349242390860283,-4.315579736048795e-6,-7.177294842177374e-9,0.0019352959799658958,-4.537209508290387e-6,-6.9637480873944295e-9,0.0019357174371195988,-4.664295527601881e-6,-6.8417869033334726e-9,0.0019361376429321514,-4.687227031264865e-6,-6.820621053087697e-9,0.0019365149604292852,-4.620518272556331e-6,-6.886137513437268e-9,0.001936822735002006,-4.4930784615761195e-6,-7.01030959332819e-9,0.0019370497573068866,-4.3395817761451026e-6,-7.159541983283873e-9,0.0019371982714750445,-4.194332245529059e-6,-7.300606086896117e-9,0.0019372813098119841,-4.0872389658178436e-6,-7.404541171072901e-9,0.0019373200047168263,-4.041081596253815e-6,-7.449311969194115e-9,0.0019373408698219712,-4.06951090543502e-6,-7.421751862826817e-9,0.0019373728401152071,-4.175601163817662e-6,-7.318959872347354e-9,0.0019374438984557292,-4.351140097040351e-6,-7.14897163907601e-9,0.0019375773878386295,-4.577090029110529e-6,-6.930294004143148e-9,0.0019377884492321462,-4.8255307456941e-6,-6.690013847281935e-9,0.0019380811458521296,-5.063086450380342e-6,-6.460482833914179e-9,0.0019384468078961414,-5.2556340897116115e-6,-6.274765644942493e-9,0.001938864070694948,-5.373859826780817e-6,-6.161257575262624e-9,0.0019393008815218134,-5.39900090253849e-6,-6.138107237175963e-9,0.0019397185968336869,-5.328108998262378e-6,-6.208094891699568e-9,0.0019400783924782288,-5.178029968915432e-6,-6.3547673684562564e-9,0.001940350064460665,-4.986568248040517e-6,-6.541330751226949e-9,0.0019405222410656135,-4.808507589956162e-6,-6.714561951692604e-9,0.0019406110279473565,-4.704360703335738e-6,-6.815780527851394e-9,0.0019406619186682263,-4.722099909779016e-6,-6.798592282970913e-9,0.0019407397828170951,-4.877341093394415e-6,-6.6480630164182626e-9,0.0019409070239167167,-5.142645237546104e-6,-6.3909979796592525e-9,0.0019411991246476956,-5.455021750594156e-6,-6.08859132515089e-9,0.0019416113591816284,-5.739907638638507e-6,-5.813170806092759e-9,0.0019421039399188788,-5.938379623146413e-6,-5.621848443746926e-9,0.001942620441220814,-6.023358180511173e-6,-5.540825654139379e-9,0.0019431076064300335,-6.000155352616885e-6,-5.564854280690739e-9,0.0019435278468381142,-5.896618797745685e-6,-5.66679479290207e-9,0.0019438629592743444,-5.750852545969404e-6,-5.809548326748877e-9,0.0019441120808416875,-5.601534475667561e-6,-5.955480832384088e-9,0.001944287443752201,-5.482065741624393e-6,-6.072125549617999e-9,0.0019444101506376872,-5.417660736467644e-6,-6.135020234542866e-9,0.001944506708268009,-5.424015514502002e-6,-6.12900103028505e-9,0.0019446061453395735,-5.5065945921930115e-6,-6.048882321230036e-9,0.0019447372317435117,-5.660164219490716e-6,-5.899883466024544e-9,0.0019449253683826993,-5.8687316263243564E-06,-5.6976552684035205e-9,0.001945189030333371,-6.106463427556881e-6,-5.467362321854533e-9,0.001945536161431122,-6.340235377640483e-6,-5.241200084831334e-9,0.0019459613750219223,-6.534129514976202e-6,-5.0540407206024526E-09,0.0019464450016517627,-6.655627092463941e-6,-4.9374385215283745e-9,0.0019469548828858596,-6.682567740270542e-6,-4.912878296775678e-9,0.001947451269570495,-6.60932933283276e-6,-4.985758640608991e-9,0.0019478943525422965,-6.450513493834239e-6,-5.14178782748562e-9,0.0019482532181079584,-6.2407756398245034e-6,-5.347142200685174e-9,0.0019485145355209999,-6.029956846976695e-6,-5.553227818359947e-9,0.001948688832848761,-5.8732962326046545e-6,-5.706255960069141e-9,0.0019488117889920867,-5.817657136586249e-6,-5.76069054929591e-9,0.001948938125527602,-5.886667676818439e-6,-5.69370500652984e-9,0.0019491274075020232,-6.0699856033129015e-6,-5.515569915679763e-9,0.0019494249289553265,-6.3227915401508744E-06,-5.270071903094241e-9,0.001949845257742566,-6.578590377092514e-6,-5.022021831291358e-9,0.0019503668701211755,-6.771379833246088e-6,-4.8356927104913765e-9,0.001950941025999169,-6.857006618888046e-6,-4.754047856449597e-9,0.0019515098360051739,-6.823912357418047e-6,-4.788264987953578e-9,0.0019520240658229982,-6.690500284410137e-6,-4.920280238133386e-9,0.0019524536244067533,-6.49382548244997e-6,-5.113816259747165e-9,0.0019527895094792508,-6.276752315075202e-6,-5.326941081183438e-9,0.0019530401509459683,-6.078332438438705e-6,-5.521497393189113e-9,0.001953225817980965,-5.928567237035448e-6,-5.668236483345585e-9,0.0019533734478342783,-5.84651286102268e-6,-5.74866469745462e-9,0.0019535127069048035,-5.840135760566559e-6,-5.755159455452236e-9,0.0019536730713173847,-5.906707798229399e-6,-5.690546687804252e-9,0.0019538812761171337,-6.033223898987462e-6,-5.567654612994196e-9,0.0019541585144023286,-6.197000707763707e-6,-5.408699430107965e-9,0.0019545171385095907,-6.367107479822374e-6,-5.243879262195881e-9,0.0019549572076320533,-6.5074833444539475e-6,-5.108346058501838e-9,0.0019554639201165612,-6.582363249082454e-6,-5.03694129358835e-9,0.001956007498430186,-6.563809875728904e-6,-5.0568720809815e-9,0.001956546986261798,-6.4398326830353245e-6,-5.179789317621606e-9,0.001957038319601614,-6.220390777973844e-6,-5.3959025305882386e-9,0.001957445211377807,-5.938406346561329e-6,-5.6729623501463044E-09,0.0019577497434098727,-5.6441961139281294e-6,-5.961701088875459e-9,0.00195795905198493,-5.3940117834603315e-6,-6.207071934832427e-9,0.001958105475933685,-5.235595818058769e-6,-6.362420055449834e-9,0.0019582395183540724,-5.194843437985116e-6,-6.402542072145623e-9,0.001958417079498149,-5.267559275761301e-6,-6.331712684108876e-9,0.0019586841391798864,-5.419208397437096e-6,-6.183867152169376e-9,0.0019590632992368684,-5.5936274617679324e-6,-6.0140407497047866e-9,0.0019595468572287758,-5.728796846682779e-6,-5.882943397267424e-9,0.001960099404208329,-5.774659859002328e-6,-5.8395474337831e-9,0.0019606692273000065,-5.706491547132605e-6,-5.908007246472056e-9,0.001961203875844111,-5.5290734820936245e-6,-6.083550911233866e-9,0.001961663710892444,-5.271294504247528e-6,-6.33775249294814e-9,0.0019620291042840325,-4.974990706173587e-6,-6.62948408349352e-9,0.0019623006544432146,-4.683271223898374e-6,-6.916401377222745e-9,0.001962494734377491,-4.432015613971804e-6,-7.163317469825513e-9,0.00196263744876942,-4.24555166449937e-6,-7.3464495352867865e-9,0.001962759151531451,-4.135625053205161e-6,-7.454405906541533e-9,0.0019628903475563684,-4.102163162853727e-6,-7.487397138171459e-9,0.001963058825873597,-4.134581772027361e-6,-7.45591629508366e-9,0.0019632873735704035,-4.2130275752858015e-6,-7.37949782948698e-9,0.001963591384460584,-4.309670509689841e-6,-7.285447272084761e-9,0.001963976034392938,-4.390698571258319e-6,-7.2069014925367394E-09,0.00196443330876546,-4.419933657794488e-6,-7.1793089036528066e-9,0.0019649399761413515,-4.364865771727716e-6,-7.23453490273262e-9,0.001965458415821613,-4.2050069352158806e-6,-7.392670556572303e-9,0.0019659423021510165,-3.940624693125234e-6,-7.653438357820787e-9,0.001966347619651084,-3.5979703831828426e-6,-7.991020087185636e-9,0.001966646410720784,-3.2268073690315724e-6,-8.35646294373238e-9,0.001966837804951861,-2.88866026076316e-6,-8.6892469084276e-9,0.0019669507350560987,-2.638942552458159e-6,-8.93489923720782e-9,0.001967036219204756,-2.509897091168396e-6,-9.061792188439865e-9,0.0019671521102095036,-2.5011703515333097e-6,-9.070385947269845e-9,0.001967346338386762,-2.5810055380569523e-6,-8.992002968155938e-9,0.0019676443316525953,-2.696486676324743e-6,-8.878723391163976e-9,0.0019680437540308916,-2.788602202893239e-6,-8.788584213578214e-9,0.00196851699192739,-2.8074134547524235e-6,-8.77069512204032e-9,0.0019690198105688102,-2.723406029950918e-6,-8.854087293070188e-9,0.001969503286514971,-2.5325606025790628e-6,-9.042705655591e-9,0.0019699255438227234,-2.2545503651888572e-6,-9.317149614451272e-9,0.0019702602048416143,-1.9254253998824907e-6,-9.64186138287465e-9,0.0019704998243126686,-1.587626778063647e-6,-9.974977396460062e-9,0.001970654436207738,-1.2805361083925496e-6,-1.0277671836369529E-08,0.001970746848452303,-1.0338220010957484e-6,-1.0520734387427998e-8,0.001970806813276138,-8.642671882979529e-7,-1.0687691080751363e-8,0.0019708657346138646,-7.754852094272468e-7,-1.0775054263680461e-8,0.001970952685885467,-7.59358064857489e-7,-1.0790873734095068e-8,0.001971091690133412,-7.980785287859418e-7,-1.075270881326718e-8,0.0019712997330186763,-8.661819417994633e-7,-1.0685635082892515e-8,0.001971584912381313,-9.325958251431366e-7,-1.0620251655417039e-8,0.001971944386893563,-9.632389319096306e-7,-1.0590148555848218e-8,0.0019723623172643737,-9.250101036695197e-7,-1.0627989281767547e-8,0.001972808830631805,-7.919702181976068e-7,-1.0759406320346234e-8,0.0019732419679683944,-5.536462457545765e-7,-1.0994779047683153e-8,0.001973614823661226,-2.2335933302557065e-7,-1.1320973812675675e-8,0.0019738884737286657,1.5799990717252462e-7,-1.1697589927724113e-8,0.0019740473224203847,5.280347963458416e-7,-1.2062959771330483e-8,0.00197410928803649,8.20358883314744e-7,-1.2351497457826083e-8,0.001974123317235958,9.877098265902934e-7,-1.251656570489879e-8,0.001974153255924493,1.0192999814429548e-6,-1.2547588496020676e-8,0.0019742556717545824,9.434428611000109e-7,-1.2472576911245205e-8,0.0019744623865517686,8.154180584666158e-7,-1.2346103517772794e-8,0.001974774135226251,6.982018680757243e-7,-1.2230299564424663e-8,0.001975164866836536,6.44800593857355e-7,-1.2177471453811616e-8,0.001975592187135106,6.871905621175031e-7,-1.221921769330186e-8,0.001976009248334955,8.327104581488337e-7,-1.2362852376014084e-8,0.0019763749925609457,1.0663971388143509e-6,-1.259366276420492e-8,0.001976661273607453,1.3571121056137057e-6,-1.2880913658228117e-8,0.0019768563928079714,1.6655158949823804e-6,-1.3185711559255818e-8,0.001976965150873674,1.9522178827619e-6,-1.3469078659361015e-8,0.0019770060231024044,2.1846215565256827e-6,-1.3698753468466588e-8,0.001977006519814771,2.3414551764659016e-6,-1.3853691582153881E-08,0.0019769979445145433,2.4146980122888094e-6,-1.3925966248255384e-8,0.0019770105929741008,2.409217344158514e-6,-1.3920387497226856e-8,0.0019770700502998715,2.340825972519958e-6,-1.3852563760087515e-8,0.0019771946962903715,2.233613597212906e-6,-1.3746268263541514e-8,0.001977394083641216,2.117137695108602e-6,-1.3630691930216664e-8,0.00197766776849491,2.02355937158754e-6,-1.353764934893884e-8,0.0019780043391657534,1.9844130263776497e-6,-1.3498405475263642e-8,0.001978380746958981,2.0264143260061553e-6,-1.353951384539365e-8,0.001978762774876461,2.1656876800633962e-6,-1.3677055583687163e-8,0.00197910834678161,2.4005955486988004e-6,-1.3909478074330424e-8,0.0019793755690996236,2.7052325640155345e-6,-1.4211108687579435e-8,0.0019795358980323765,3.0280329593492748e-6,-1.4530782563116931e-8,0.0019795888602322726,3.3008762468395384e-6,-1.4800926854883546e-8,0.001979569909580966,3.4602522751505376e-6,-1.4958607317158036e-8,0.0019795428292347273,3.4729664075210322e-6,-1.4971007396679774e-8,0.0019795766858330343,3.3517185374406653e-6,-1.485078131230214e-8,0.001979719097725177,3.150012236996182e-6,-1.4650917551003886e-8,0.0019799807430923235,2.939717703579574e-6,-1.4442508997057445e-8,0.001980337179051505,2.785210747885825e-6,-1.4289220607364234e-8,0.001980742604001265,2.726455749296866e-6,-1.423061560237119e-8,0.0019811460867675897,2.7744247605888214e-6,-1.4277633511904348e-8,0.001981503955526798,2.915383589334282e-6,-1.4416788031389436e-8,0.0019817866606374806,3.119072655949307e-6,-1.4618203584318185e-8,0.0019819810541467733,3.3472878569643014e-6,-1.4844069697144964e-8,0.0019820896686203603,3.5612914305410776e-6,-1.5055977587760283e-8,0.00198212818028609,3.7276910519524167e-6,-1.522077511487346e-8,0.0019821217200457113,3.822702343827983e-6,-1.531483119915164e-8,0.001982100526968717,3.8346574475360094e-6,-1.5326546430867445e-8,0.001982095446197697,3.7647342774013897e-6,-1.525707214555077e-8,0.0019821337647565624,3.626027788928867e-6,-1.511936833404366e-8,0.00198223586051072,3.441229396883561e-6,-1.4935887639064302e-8,0.00198241295750562,3.2394074768603723e-6,-1.4735395171384388e-8,0.001982665941468611,3.0524134698759988e-6,-1.4549442314482317e-8,0.0019829850278711707,2.9111670054398966e-6,-1.4408723058841443e-8,0.0019833501452222605,2.841809897117393e-6,-1.4339272286988301e-8,0.0019837320752173157,2.8615334931783054e-6,-1.4358293854803897e-8,0.001984094861776407,2.9738376767734945e-6,-1.4469388182609625e-8,0.001984400625925791,3.163606036205151e-6,-1.465759406565055e-8,0.001984617903763515,3.39387177161666e-6,-1.4886148324894974e-8,0.001984733239124418,3.6078493427449448e-6,-1.5098540495896356e-8,0.001984762586708769,3.740319866084089e-6,-1.522990885918146e-8,0.001984755051949164,3.739151728899739e-6,-1.5228487094580237e-8,0.0019847812506757346,3.589373742862749e-6,-1.507949371776934e-8,0.0019849070018280613,3.324884794977739e-6,-1.481665653780441e-8,0.0019851657075547475,3.017077739740492e-6,-1.4510837813089766e-8,0.001985546337819205,2.7455641756043497e-6,-1.4240999293311826e-8,0.0019860027126962026,2.5689052542741243e-6,-1.4065234505030063e-8,0.001986474911058454,2.5102785475177926e-6,-1.4006586884914449e-8,0.001986909190146146,2.5597820777408202e-6,-1.4055310223533645e-8,0.001987269141598994,2.685729541695863e-6,-1.4180024373601416e-8,0.001987538415975901,2.8470244196991636e-6,-1.4339955147058143e-8,0.0019877184535379826,3.0026745725009918e-6,-1.4494369758932575e-8,0.001987824315689395,3.1178169485181043e-6,-1.4608579499453113e-8,0.0019878803285720108,3.1671431670578377e-6,-1.4657380747630862e-8,0.001987916017903525,3.1367378731829e-6,-1.4626916752757822e-8,0.00198796225735607,3.0248075252962984e-6,-1.4515412078652403e-8,0.001988047562103157,2.8413753222055076e-6,-1.4332850735856531e-8,0.0019881946131477435,2.60687216740141e-6,-1.4099542829987458e-8,0.001988417298411971,2.349527873938127e-6,-1.3843513258288562e-8,0.0019887187102340417,2.1016769841030624e-6,-1.3596844711551368e-8,0.001989090425727029,1.895388778983732e-6,-1.3391377619170956e-8,0.001989513160461744,1.7578895979745178e-6,-1.3254203612054567e-8,0.001989958770446367,1.7071788559904026e-6,-1.3203316404532476e-8,0.001990393534070427,1.7481911434179824e-6,-1.3243755974189393e-8,0.0019907827350952195,1.8697874359525122e-6,-1.336454230925692e-8,0.00199109681028482,2.0431157285996407e-6,-1.3536978415285554e-8,0.001991319151058384,2.222726763531207e-6,-1.371574429721612e-8,0.0019914544946981836,2.3526243150694117e-6,-1.3844968523515149e-8,0.0019915347809361574,2.379086977407752e-6,-1.3871077631016254e-8,0.001991617224389839,2.269346242030513e-6,-1.376144811926663e-8,0.0019917698902892863,2.0294384279911193e-6,-1.3522157951942242e-8,0.0019920466456429435,1.7095202837346074e-6,-1.3203206351826863e-8,0.001992463423863107,1.3885001624897012e-6,-1.288317749571206e-8,0.0019929908638321907,1.143480512993817e-6,-1.2638853847306288e-8,0.0019935682104733686,1.0214708448982725e-6,-1.2517091776224162e-8,0.0019941285130815195,1.0283869976145581e-6,-1.2523846927649901e-8,0.0019946200002937324,1.1365035316745898e-6,-1.2631538348227922e-8,0.001995015574720192,1.300685938679259e-6,-1.2795181679410482e-8,0.0019953118522825736,1.4734595686959486e-6,-1.2967407715671091e-8,0.0019955231121392253,1.6145721408287418e-6,-1.3108023269665573e-8,0.001995674485554681,1.6953207844439172e-6,-1.3188361405392658e-8,0.001995796372307964,1.6996250991069645e-6,-1.3192379686625797e-8,0.0019959203169879858,1.6236696505985474e-6,-1.3116312565503816e-8,0.0019960757921594096,1.475055708754886e-6,-1.2967807444551166e-8,0.0019962873383381975,1.271613814117125e-6,-1.2764702800757431e-8,0.001996571813660661,1.039617664310189e-6,-1.253321173415832e-8,0.001996935876688311,8.10987734279826e-7,-1.2305124592895642e-8,0.0019973742307001037,6.19237649378676e-7,-1.2113796509748371e-8,0.0019978693382533895,4.943937406260044e-7,-1.198913399233764e-8,0.0019983931254425164,4.575767847518032e-7,-1.1952232495962723e-8,0.0019989108215040154,5.162092500765573e-7,-1.2010593106379118e-8,0.0019993866344011147,6.609218430927506e-7,-1.215498240158599e-8,0.001999790531775251,8.650472468204294e-7,-1.2358850045151053e-8,0.0020001051872744658,1.0872195388065961e-6,-1.258086799786539e-8,0.0020003320300538583,1.2774384887276872e-6,-1.2770987731393865e-8,0.0020004948833237455,1.386820963278251e-6,-1.2880238021882123e-8,0.0020006389899060112,1.380409164658492e-6,-1.2873596607745973e-8,0.0020008230599442827,1.250445294729628e-6,-1.2743295658742569e-8,0.0020011035292148414,1.0248522465183068e-6,-1.2517287786395435e-8,0.0020015145004623476,7.642707366236366e-7,-1.2256256246504428e-8,0.002002052224806011,5.444286659134359e-7,-1.203598958625036e-8,0.0020026739455431216,4.2948544136936147e-7,-1.1920745495741174e-8,0.002003313579512777,4.496948714502562e-7,-1.1940890619262743e-8,0.0020039058326337656,5.94885512572639e-7,-1.208630936784008e-8,0.0020044058510690797,8.245709877731227e-7,-1.2316460457905977e-8,0.002004796841439746,1.0859096843776425e-6,-1.2578353220820108e-8,0.0020050868112686674,1.3296101468781744e-6,-1.2822521486441082e-8,0.0020053001577274294,1.5190539612688328e-6,-1.3012215262669332e-8,0.002005469139021302,1.6331027930982382e-6,-1.3126245137314179e-8,0.0020056275325741548,1.6652065850658668e-6,-1.3158091335992063e-8,0.0020058066106900104,1.6211993428942383e-6,-1.3113673482230696e-8,0.0020060325903481888,1.5170686408574125e-6,-1.3009079439298547e-8,0.002006324650222416,1.3769637497429265e-6,-1.2868534813545612e-8,0.0020066929754689877,1.2310800018681066e-6,-1.2722269046986007e-8,0.002007136798951896,1.1127780991151567e-6,-1.2603647647411476e-8,0.0020076429784578894,1.054378781853201e-6,-1.254500526328362e-8,0.002008186099861188,1.081598763449451e-6,-1.2572118807769247e-8,0.0020087311297168646,1.2074288608481698e-6,-1.2698088673752461e-8,0.002009239103287181,1.4270773152031296e-6,-1.2918234760844035e-8,0.0020096752789058284,1.716007875070945e-6,-1.3208055118895744e-8,0.0020100179652990918,2.0326550064858777e-6,-1.352587734554098e-8,0.0020102654993804938,2.3260539621831587e-6,-1.3820486693134687e-8,0.0020104390771972405,2.547030253336762e-6,-1.4042386690680413e-8,0.002010580106295075,2.6604804750482006e-6,-1.4156191902665433e-8,0.0020107419502173964,2.6557832329077294e-6,-1.4151139319925016e-8,0.0020109771879805558,2.5523069324261464e-6,-1.4046647718123685e-8,0.0020113229426591533,2.397375789826293e-6,-1.3890280276741745e-8,0.0020117884211216064,2.2554114694326285e-6,-1.3746841070905745e-8,0.0020123497341117697,2.1898980519676447e-6,-1.3680257875013628e-8,0.002012955651515441,2.2438213886840194e-6,-1.3733900181722728e-8,0.0020135433728180985,2.4266447610087438e-6,-1.39174182558369e-8,0.0020140579317852875,2.71366437476233e-6,-1.4206014604787913e-8,0.0020144668228012324,3.057204948402956e-6,-1.4551671002974376e-8,0.0020147647475891694,3.403199418756304e-6,-1.4899863316082618e-8,0.0020149692079483423,3.7055522989431925e-6,-1.520408419186706e-8,0.00201511150064555,3.9340846123691215e-6,-1.5433892567141782e-8,0.0020152277251075717,4.076173637410506e-6,-1.5576577887703656e-8,0.002015352239871468,4.134536644454852e-6,-1.563490853663456e-8,0.0020155138461719147,4.123692670047893e-6,-1.5623536213635403e-8,0.002015733840614426,4.0666243269108735e-6,-1.55656072328393e-8,0.0020160248674950276,3.992054942875605e-6,-1.549001455038565e-8,0.002016389829459018,3.93198510839712e-6,-1.542893704410032e-8,0.0020168206820040395,3.918765993757011e-6,-1.541493242521958e-8,0.0020172975756185623,3.980985777701276e-6,-1.5476833726911856E-08,0.0020177894153615887,4.137875398081949e-6,-1.5634127210906082e-8,0.002018257233673766,4.392939175307108e-6,-1.589050240627824e-8,0.0020186613266694954,4.728908346737077e-6,-1.6228694079735292e-8,0.0020189715206215524,5.107091194937329e-6,-1.660975065177038e-8,0.0020191776486713324,5.473615092617835e-6,-1.6979292753435012e-8,0.002019295779758033,5.772429950864491e-6,-1.7280651483171656e-8,0.002019366518176988,5.961349214838775e-6,-1.7471108259171236e-8,0.0020194449006417144,6.025194125173232e-6,-1.7535205282025255e-8,0.0020195851788385455,5.980999551576999e-6,-1.7490022440756466e-8,0.0020198257279237858,5.873603143711555e-6,-1.7380744515888384e-8,0.0020201787279912464,5.763467291729197e-6,-1.7268403150332105e-8,0.002020627231636164,5.710627551405569e-6,-1.7213706810198902e-8,0.002021130054639501,5.7592346508056935e-6,-1.7261429057047976e-8,0.002021632985760314,5.926817997082376e-6,-1.7429501306651574e-8,0.0020220830928120654,6.20118699778434e-6,-1.7705783145695567e-8,0.0020224418380563767,6.54565640069781e-6,-1.8053264624984565e-8,0.002022693062944097,6.910491614078083e-6,-1.842162169656846e-8,0.0020228439203432147,7.246330768272015e-6,-1.876083414523109e-8,0.00202291967499455,7.515105216752511e-6,-1.9032294027402762e-8,0.002022955371584404,7.695808702277565e-6,-1.9214681031198905e-8,0.0020229876289183193,7.785067752112486e-6,-1.9304540519772036e-8,0.002023048591573068,7.794246700981407e-6,-1.931333154928886e-8,0.0020231624980154585,7.745203409912733e-6,-1.926311028183914e-8,0.0020233442466032186,7.666212202219833e-6,-1.918240528759956e-8,0.0020235989734061375,7.588624354679677e-6,-1.9102866270263047e-8,0.002023921859131006,7.544034825291021e-6,-1.9056442936228402e-8,0.0020242978850773183,7.561308638331777e-6,-1.907241483206435e-8,0.0020247018586647472,7.662755338235264e-6,-1.9173526603769192e-8,0.0020250996748987574,7.859045107714878e-6,-1.9370801266084847e-8,0.0020254522736660083,8.143408211325172e-6,-1.9657586738974178e-8,0.0020257235021321623,8.487284167289417e-6,-2.0005064388235096e-8,0.0020258914008579325,8.841089839559924e-6,-2.0362983469746076e-8,0.0020259593522022504,9.143502782538063e-6,-2.0669092452411597e-8,0.002025960886878649,9.339097586877438e-6,-2.0867079499950275e-8,0.0020259529258870486,9.398254944606137e-6,-2.0926796085751366e-8,0.0020259980842913805,9.329515946722925e-6,-2.085676872498728e-8,0.0020261436498098338,9.177436067364245e-6,-2.0702003689784143e-8,0.002026406976788043,9.007145260904893e-6,-2.0528373390696197e-8,0.0020267726311981303,8.883574211806648e-6,-2.0401649057662443e-8,0.002027200045442295,8.85396367750792e-6,-2.0369837232274553e-8,0.00202763668051562,8.938366466169523e-6,-2.0453528387901555e-8,0.002028031669042613,9.128606584898225e-6,-2.0644735364591285e-8,0.0020283466335991557,9.39376249959402e-6,-2.0912327645621907e-8,0.00202856210099846,9.689503075361093e-6,-2.121142268331872e-8,0.002028679138809268,9.968698912730516e-6,-2.1494151041399055e-8,0.0020287166795685033,1.0191047732068404e-5,-2.1719481725996414e-8,0.0020287057358542504,1.0329897581158466e-5,-2.186021727137697e-8,0.0020286822638829623,1.0375287950705e-5,-2.1906123600102078e-8,0.0020286804677956084,1.0333353870444897e-5,-2.186332802988044e-8,0.0020287278066525257,1.022312602899354e-5,-2.175105158087606e-8,0.0020288421647846723,1.0072112218170743e-5,-2.1597111262225863e-8,0.0020290308875681577,9.911875842701016e-6,-2.143344844153332e-8,0.0020292909665944156,9.774243576700235e-6,-2.129232494824514e-8,0.0020296097239808366,9.688113323346603e-6,-2.1203133387480477e-8,0.0020299656877050217,9.67644684934271e-6,-2.11893658424898e-8,0.0020303297882378582,9.752905982662366e-6,-2.1265165055571597e-8,0.0020306676073327287,9.917766980710009e-6,-2.1431087980682735e-8,0.002030943934628873,1.0153584998504719e-5,-2.1669593622508353e-8,0.0020311306708723493,1.0422590466425067e-5,-2.1942323425636325e-8,0.002031217579951732,1.0669289798588603e-5,-2.219275019954811e-8,0.002031222335730858,1.0831796516238949e-5,-2.235778014634001e-8,0.002031193048301995,1.0861890930176747e-5,-2.2388241959551486e-8,0.00203119703859634,1.0746492481003186e-5,-2.2270735146629827e-8,0.002031297195154339,1.0517768776177442e-5,-2.2037844471414716e-8,0.0020315273094421984,1.0243291108028e-5,-2.1758092239078608e-8,0.0020318802493412753,1.0000530434740792e-5,-2.1510081000851584e-8,0.002032314137298937,9.850022664826762e-6,-2.1355340836590286e-8,0.002032770207259545,9.81982278786599e-6,-2.132258299426645e-8,0.0020331917199350323,9.904280503784482e-6,-2.14063888568104e-8,0.002033536949342053,1.0072489993620747e-5,-2.157566092331201e-8,0.0020337847861032054,1.0280151984724976e-5,-2.178555756437125e-8,0.002033934644404204,1.0480633734434917e-5,-2.1988684509594312e-8,0.002034002956023895,1.0633476288885205e-5,-2.2143773497299168e-8,0.0020340179562521273,1.0710065550269308e-5,-2.222152752762457e-8,0.002034013813275749,1.0696609639052564e-5,-2.2207730651406188e-8,0.002034024860105363,1.0594604521297306e-5,-2.2103765848150748e-8,0.002034080587443095,1.0419122419825089e-5,-2.19248717814829e-8,0.0020342019278727854,1.0195455518673118e-5,-2.169670062200928e-8,0.0020343991620295483,9.954802844166271e-6,-2.145091239995425e-8,0.0020346714321390342,9.729785129053017e-6,-2.122063084652677e-8,0.0020350074824118905,9.550386709694598e-6,-2.103636451097717e-8,0.002035387185509016,9.440493583899565e-6,-2.0922533216016104e-8,0.0020357836037984364,9.414912608424384e-6,-2.089444107511516e-8,0.0020361655489376162,9.476655420791237e-6,-2.0955452598258494e-8,0.002036501001353076,9.614310232276557e-6,-2.1094206564680248e-8,0.002036762210872142,9.79994037620005e-6,-2.1282363869390327e-8,0.0020369330481708123,9.989184837192771e-6,-2.1474658477092256e-8,0.002037017771296381,1.012628359366276e-5,-2.1614061269663444e-8,0.002037047915437464,1.015658110540848e-5,-2.164463677168314e-8,0.0020370813026867737,1.0046056108125668e-5,-2.153154985964805e-8,0.0020371875508600258,9.800650799576031e-6,-2.1280773292665346e-8,0.002037421936656467,9.472336381754918e-6,-2.094520101904596e-8,0.0020378005857027153,9.143072453333508e-6,-2.0608270685343048e-8,0.0020382928899801513,8.892876275813154e-6,-2.035149508235166e-8,0.0020388358398022157,8.770499811406708e-6,-2.0224669132370346e-8,0.002039359770557812,8.781941663669052e-6,-2.0234157130035133e-8,0.0020398103504522254,8.897729739466089e-6,-2.0350211586612295e-8,0.0020401588643933475,9.069382952218172e-6,-2.0523629149456965e-8,0.0020404019625274035,9.245293559122839e-6,-2.0701866584475123e-8,0.002040555827693921,9.381504609670853e-6,-2.0840025781472896e-8,0.0020406489259659406,9.447228151930216e-6,-2.0906536788607898e-8,0.0020407154331214734,9.426696770852405e-6,-2.088512838607746e-8,0.00204078985578392,9.318873354513713e-6,-2.077459998128169e-8,0.00204090271395194,9.135845367544504e-6,-2.0587206452044835e-8,0.0020410771407216085,8.900239108317796e-6,-2.034599700431967e-8,0.002041326419699712,8.641807325844239e-6,-2.0081292128129632e-8,0.0020416526435947345,8.393337339943669e-6,-1.982648942593215e-8,0.002042046703171445,8.186237577472187e-6,-1.9613586261310882e-8,0.0020424895896427346,8.046339142518472e-6,-1.9468954219893878e-8,0.0020429547843234747,7.990305000968632e-6,-1.940972395069631e-8,0.0020434115251253306,8.022843551834938e-6,-1.9440936885743926e-8,0.002043828782565443,8.134892448156656e-6,-1.9553616311880043e-8,0.0020441798602190554,8.302917025788585e-6,-1.972393223071845e-8,0.0020444477519546617,8.4896969525292e-6,-1.9913901817449882e-8,0.0020446311903293338,8.647706547103258e-6,-2.0074815114312748e-8,0.0020447501973034107,8.726723226422148e-6,-2.0155077328217368e-8,0.002044848244940901,8.686627904246379e-6,-2.011341515541943e-8,0.0020449867383772256,8.513737749746249e-6,-1.9935671842505055e-8,0.002045228541166259,8.234144633017872e-6,-1.964846070320371e-8,0.0020456134638839763,7.913572361465218e-6,-1.931898185881672e-8,0.0020461377861319533,7.63729312921591e-6,-1.9034476270744172e-8,0.0020467521585061633,7.477202828544634e-6,-1.8868592712503943e-8,0.002047381272856939,7.464688941483806e-6,-1.8853644549237028e-8,0.0020479532062943314,7.58431837206364e-6,-1.8974080315531745e-8,0.0020484215587382487,7.78774400789283e-6,-1.918060677428675e-8,0.0020487722662357426,8.015405362121847e-6,-1.941233147259879e-8,0.002049018198077936,8.214197838192044e-6,-1.9614843383185996e-8,0.0020491889216315115,8.346735295295853e-6,-1.9749735808637718e-8,0.0020493210512069144,8.393632060507522e-6,-1.979700451228811e-8,0.0020494512449664246,8.351957607960816e-6,-1.9753525015406534e-8,0.0020496117250101715,8.23232744734854e-6,-1.963010652990153e-8,0.002049827426776408,8.055769435622714e-6,-1.944827439536342e-8,0.002050114053526486,7.850558869214728e-6,-1.9236989441846953e-8,0.0020504767490431433,7.648847136675355e-6,-1.9029157282885984e-8,0.0020509094756088818,7.482854532348159e-6,-1.8857725613841873e-8,0.002051395453334524,7.380623768682452e-6,-1.8751377321085998e-8,0.0020519090052662243,7.361760387571575e-6,-1.8730230620980626e-8,0.0020524188593675297,7.433818308990292e-6,-1.8802173480598776e-8,0.0020528926844391848,7.589950602549962e-6,-1.8960428834936324e-8,0.0020533024421489844,7.808390524123514e-6,-1.9182928498524213e-8,0.0020536299340462158,8.054192913403938e-6,-1.9433978306497595e-8,0.0020538718361486044,8.283434195619361e-6,-1.9668482974938482e-8,0.0020540434289632683,8.45004521906672e-6,-1.9838956797592828e-8,0.0020541797514216247,8.515402796906978e-6,-1.99054534057615e-8,0.0020543322054149753,8.459930706160225e-6,-1.984759651675978e-8,0.0020545585952090927,8.293944827313858e-6,-1.9675807879402267e-8,0.0020549063810787,8.062431097372e-6,-1.9436246264897823e-8,0.0020553934153247633,7.837497117823304e-6,-1.920304947832446e-8,0.002055995700465939,7.696451661454231e-6,-1.9055809090821722e-8,0.002056651811353018,7.693154521324639e-6,-1.9050112336143213e-8,0.0020572846695030584,7.837818600247798e-6,-1.919671296351236e-8,0.002057829365555983,8.096658859821898e-6,-1.946106441052887e-8,0.002058252145844519,8.409493816274429e-6,-1.978134730901258e-8,0.0020585536030746266,8.712990432294358e-6,-2.0092375696100318e-8,0.002058759808669095,8.957877739096902e-6,-2.0343349339844396e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_17.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_17.json new file mode 100644 index 000000000..4dcccb37b --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_17.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":17000,"numberOfSamples":1000,"samples":[0.0020589095356776037,9.116105504093818e-6,-2.0505272164235435e-8,0.002059043510293161,9.180255067418492e-6,-2.0570390059257767e-8,0.0020591976431414568,9.159302745262173e-6,-2.054785882824188e-8,0.002059399625909375,9.073759899582225e-6,-2.045874721325323e-8,0.0020596674746746844,8.95148439515232e-6,-2.033170765436402e-8,0.00206000888513569,8.824207938457376e-6,-2.019937465729761e-8,0.002060420904195782,8.724308617167852e-6,-2.0095032184184587e-8,0.0020608899779143205,8.68132520947309e-6,-2.0049049012491025e-8,0.0020613928365786132,8.717972919315283e-6,-2.008482719556681e-8,0.0020618988348358,8.845955809078727e-6,-2.021453482958727e-8,0.002062374125258358,9.062441716260134e-6,-2.0435474508193457e-8,0.0020627874895708226,9.348364762479418e-6,-2.072826871336509e-8,0.0020631169945883126,9.669654112154566e-6,-2.1058015950605946e-8,0.0020633560604633263,9.98198746864013e-6,-2.137908652587735e-8,0.002063517288428266,1.023877017749716e-5,-2.164330411583651e-8,0.002063632645942536,1.0401139220424818e-5,-2.1810299545772995e-8,0.0020637491502467223,1.0448183572471843e-5,-2.185815206205818e-8,0.0020639198525462597,1.0385066085844465e-5,-2.1791885352537092e-8,0.002064190922547863,1.0246206042140799e-5,-2.1646843352671344e-8,0.002064587291919049,1.0090636415679369e-5,-2.1483949591921145e-8,0.0020651014652658243,9.988078798241432e-6,-2.13753442005915e-8,0.002065691367589172,9.998026570269695e-6,-2.1382754626188622e-8,0.002066291012197917,1.0149230388591655e-5,-2.153622147579785e-8,0.002066831501387849,1.0429452683376921e-5,-2.182338975756979e-8,0.002067263169333099,1.0791237145000513e-5,-2.2195367611649683e-8,0.002067568557615017,1.1170401662074308e-5,-2.2585814103541868e-8,0.0020677618994642912,1.1507219742502304e-5,-2.2932879418767003e-8,0.0020678786593962845,1.1760992660056131e-5,-2.319433420100162e-8,0.00206796228678175,1.1914801500387303e-5,-2.3352529680849556e-8,0.0020680536670884195,1.1972789302221374e-5,-2.3411612372762594e-8,0.002068185083895209,1.1954165594086708e-5,-2.339133460421787e-8,0.0020683778972125345,1.1887104070253944e-5,-2.3320744180844544e-8,0.002068642307553408,1.180390121082168e-5,-2.3233173740066774e-8,0.002068977856263579,1.1737393814191125e-5,-2.3162537647244684e-8,0.002069373999389383,1.1717978706675388e-5,-2.3140267827765654e-8,0.0020698107873335274,1.1770514429890422e-5,-2.3192140613020073e-8,0.0020702602014525747,1.1910715973072524e-5,-2.3334573248691355e-8,0.002070688939508567,1.2141252692424613e-5,-2.3570578997251697e-8,0.0020710632916822844,1.2448527390387745e-5,-2.3886375187523575e-8,0.002071356066541742,1.2801803268012288e-5,-2.4250382510760558e-8,0.0020715543319876706,1.3156451701310057e-5,-2.4616491549786515e-8,0.00207166551766087,1.3462116971780244e-5,-2.493246716960177e-8,0.002071719050649512,1.3674624989544023e-5,-2.5152297788431047e-8,0.0020717617377544535,1.3768431742533288e-5,-2.524915847137308e-8,0.0020718472574079074,1.374550081599251e-5,-2.5224700784713937e-8,0.0020720223622184525,1.363727582508806e-5,-2.5111195478472052e-8,0.0020723137031515636,1.3498471162329926e-5,-2.496519243244624e-8,0.002072719191338335,1.339381780152275e-5,-2.485385332221292e-8,0.002073206795757431,1.338096643139214e-5,-2.483723759380846e-8,0.0020737219362692,1.3494245133198445e-5,-2.4951381108780162e-8,0.00207420211020392,1.373455339359368e-5,-2.5197661804572466e-8,0.0020745944143773383,1.4069430089365293e-5,-2.554271199173207e-8,0.002074869746023746,1.4443723774723879e-5,-2.5929405831806994e-8,0.0020750285128816304,1.479667972622433e-5,-2.6294607590510123e-8,0.0020750966176363173,1.5078544268788864e-5,-2.6586483364644268e-8,0.0020751148669499956,1.5260889492796408e-5,-2.677529701011583e-8,0.0020751270004247535,1.5338783722705668e-5,-2.6855711891848633e-8,0.0020751704833224575,1.5326746513909972e-5,-2.684261106263222e-8,0.0020752715762822763,1.5251984116094389e-5,-2.6764080409271047e-8,0.002075444009124103,1.5147762629496005e-5,-2.6654533703698157e-8,0.002075689729548116,1.504827746606285e-5,-2.6549398220846943e-8,0.002076000366210549,1.4985082629739757e-5,-2.6481430881895264e-8,0.002076358657231711,1.498441301720375e-5,-2.6477967033587838e-8,0.0020767397992757677,1.5064587977735741e-5,-2.6558240543651232e-8,0.002077113259954405,1.5233004156103975e-5,-2.6730240753699176e-8,0.0020774459186594374,1.548284453443912e-5,-2.6987226620384064e-8,0.002077707337417931,1.5790500049088474e-5,-2.7304945193864276e-8,0.002077877261826839,1.6115682164498162e-5,-2.764165309505029e-8,0.0020779538822941765,1.6406603632449e-5,-2.7943458192743133e-8,0.0020779594398716464,1.6611353072832964e-5,-2.8156170195329946e-8,0.0020779390055978278,1.6693382219093287e-5,-2.824146792653341e-8,0.0020779502913158923,1.6645409426593984e-5,-2.8191416586278918e-8,0.002078046844161103,1.6494938438233428e-5,-2.803425405045996e-8,0.0020782610782756087,1.6297779276038386e-5,-2.782772424649056e-8,0.0020785941150732565,1.612175588363035e-5,-2.7642241561896423e-8,0.0020790159587568842,1.6027141518751153e-5,-2.754063775278662e-8,0.0020794748756735038,1.6050743503202965e-5,-2.756160492638588e-8,0.0020799118940896845,1.619791239208086e-5,-2.7711253577368164e-8,0.0020802757626315633,1.6443513592555717e-5,-2.7963924844698012e-8,0.0020805345246273253,1.674043522617959e-5,-2.8270877063799093e-8,0.002080681226938013,1.7032634096537527e-5,-2.857380300224129e-8,0.002080732951995497,1.7268943244941685e-5,-2.881925151534997e-8,0.002080724194408864,1.7413982316484317e-5,-2.8970092565580946e-8,0.0020806971435383278,1.745367834708195e-5,-2.901136620869484e-8,0.0020806920260737966,1.7394912621893336e-5,-2.8949975367327408e-8,0.002080739988704213,1.72607815502705e-5,-2.8809768850635676e-8,0.002080859515267317,1.70838985357426e-5,-2.8624560861473263e-8,0.0020810559636607064,1.6899885539921436e-5,-2.8431349761988563e-8,0.0020813230557203376,1.6742274751481572e-5,-2.8265022453786016e-8,0.0020816451171855417,1.6639033795220282e-5,-2.8154767386943654e-8,0.0020819993189068113,1.6610203007369465e-5,-2.812164312243963e-8,0.0020823577851628115,1.6665911699555345e-5,-2.817650914736122e-8,0.0020826899633292987,1.680426930790959e-5,-2.8317770861029884e-8,0.002082966018551884,1.7009150846059025e-5,-2.852896394235378e-8,0.002083162073066397,1.7248756752608075e-5,-2.8777135556946513e-8,0.0020832674579102563,1.7476932878513038e-5,-2.9014151463292816e-8,0.0020832924694833593,1.7639846001218737e-5,-2.9183675584427234e-8,0.0020832727739094805,1.7689422424584678e-5,-2.9235274256026354e-8,0.0020832653064138955,1.7601030960855478e-5,-2.9142946193151746e-8,0.0020833330245630757,1.7387646058308056e-5,-2.8919920603682593e-8,0.002083522753935488,1.7100955802243916e-5,-2.8619808329920083e-8,0.0020838468179513333,1.6815710705222776e-5,-2.8320330725747508e-8,0.002084278439419095,1.6604039049236554e-5,-2.8096659219011013e-8,0.0020847625566020353,1.6512511531122853e-5,-2.799759622144117e-8,0.002085235023267062,1.6551414097566436e-5,-2.8034351982823543e-8,0.0020856408987005555,1.6697366798988196e-5,-2.8183104552679034e-8,0.0020859461245631033,1.690450794263447e-5,-2.8396456266918066e-8,0.0020861415082864985,1.7118421130651345e-5,-2.8617819915088376e-8,0.0020862405867537945,1.7288696492304295e-5,-2.8794501922373435e-8,0.0020862736330299575,1.737809826474195e-5,-2.8887350772104285e-8,0.002086279804006059,1.7367702998098975e-5,-2.8876251011356654e-8,0.0020862990421835854,1.7258011428210435e-5,-2.8761400589556528e-8,0.002086365115922038,1.7066487746353264e-5,-2.8560802190087286e-8,0.0020865008408489875,1.682256943694604e-5,-2.8305053907286174e-8,0.002086715919263949,1.656156014476701e-5,-2.8030941270095572e-8,0.0020870071990390262,1.6318714925791584e-5,-2.7775237638634485e-8,0.0020873606761909773,1.612444436636325e-5,-2.7569706696292268e-8,0.0020877543487093165,1.6001012803300085e-5,-2.7437694306513178e-8,0.0020881612220372825,1.596050578626689e-5,-2.7392040420271822e-8,0.002088552230288847,1.6003549082607828e-5,-2.7433729548710437e-8,0.0020888992435952967,1.611837191802468e-5,-2.7550832366391624e-8,0.0020891786471092483,1.6280160651193357e-5,-2.7717702617435652e-8,0.0020893761169842166,1.6451350603092855e-5,-2.7895164399045403e-8,0.002089492678959948,1.6584503687808136e-5,-2.803347849401429e-8,0.0020895506186168747,1.6629975070205594e-5,-2.8080421596796448e-8,0.0020895956639829702,1.654957839540818e-5,-2.799570583593579e-8,0.002089690395538273,1.6333804471878623e-5,-2.7769090685971695e-8,0.002089896033722322,1.6014373257708863e-5,-2.7433529126734662e-8,0.0020902475806469254,1.5661140369289124e-5,-2.7061908434893643e-8,0.002090735796633609,1.5359270098771867e-5,-2.67432120407e-8,0.00209130859780546,1.5176778132377433e-5,-2.6548672939580005e-8,0.002091891842946931,1.5140754055244766e-5,-2.6506954770801897e-8,0.0020924165245282877,1.5233761825979138e-5,-2.660030176659009e-8,0.002092838108888907,1.5407435049015967e-5,-2.6778581186473033e-8,0.0020931426145603437,1.5602073463539797e-5,-2.697961713028947e-8,0.002093342524197185,1.576303163752042e-5,-2.7146256028244872e-8,0.0020934681224012187,1.5850536534203465e-5,-2.7236664035016808e-8,0.002093558330924372,1.584356238962605e-5,-2.7228488040135843e-8,0.002093652929189025,1.5739702587511593e-5,-2.711885649216876e-8,0.002093786585558144,1.5552692842214613e-5,-2.6921891528832596e-8,0.002093984610700063,1.530847635566744e-5,-2.6664625730728237e-8,0.002094260408522702,1.5040327883243397e-5,-2.6381866829385993e-8,0.0020946146605398033,1.4783590396206654e-5,-2.6110629573656682e-8,0.0020950361908124754,1.4570612940870071e-5,-2.5884801421741135e-8,0.002095504287982403,1.4426464136665532e-5,-2.573066979561237e-8,0.0020959920098880948,1.436589162782448e-5,-2.566378974830331e-8,0.0020964698904481064,1.4391654082877689e-5,-2.568727581986414e-8,0.002096909672107035,1.4494027260271335e-5,-2.5791262682142066e-8,0.002097287955238897,1.4651254484391914e-5,-2.595327902709219e-8,0.0020975898588619776,1.483086589384205e-5,-2.6139490483611765e-8,0.0020978129239909112,1.4992194433574303e-5,-2.6307227096703933e-8,0.002097971126731232,1.5091109530391926e-5,-2.6409931481351222e-8,0.002098097703998993,1.5088284225384236e-5,-2.6405927211233465e-8,0.002098243998954342,1.4961356647547054e-5,-2.6271336291410024e-8,0.002098470643735973,1.4718558663920096e-5,-2.601451060716538e-8,0.002098829142769062,1.4406847413029446e-5,-2.568461021728266e-8,0.002099338584112944,1.4104891981013634e-5,-2.5364227738068856e-8,0.002099970577078888,1.389718581053549e-5,-2.51422113367583e-8,0.0021006554024350413,1.3839945599057747e-5,-2.5077873022135188e-8,0.0021013089162565824,1.3939075366767634e-5,-2.5177804466452004e-8,0.0021018642410454017,1.4152966541286029e-5,-2.5398697748388907e-8,0.002102290544234685,1.4414719463911722e-5,-2.5670555129297722e-8,0.002102593458372229,1.4657717276490355e-5,-2.5923475251490083e-8,0.002102803823419274,1.4832523419603329e-5,-2.610539494337901e-8,0.002102963997051854,1.4912874042482475e-5,-2.6188440763515092e-8,0.00210311701985688,1.489429901720448e-5,-2.6167581509441245e-8,0.00210329981316489,1.4789514144286761e-5,-2.605589711490424e-8,0.0021035395604685125,1.4623216960515582e-5,-2.5879181897882027e-8,0.002103852012857229,1.4427256816148642e-5,-2.5670874573032203e-8,0.0021042409306866908,1.4236166858646234e-5,-2.546731313778813e-8,0.002104698454320543,1.4082882456060734e-5,-2.53031751996881e-8,0.0021052064752133293,1.3994654154339699e-5,-2.5207158431920774e-8,0.0021057391315831625,1.3989407920046565e-5,-2.519818244598461e-8,0.002106266387320575,1.4073050130678136e-5,-2.5282607415599342e-8,0.002106758334830071,1.423820083636465e-5,-2.5452924691916057e-8,0.0021071897012097697,1.4464569256647e-5,-2.568810271807864e-8,0.0021075440763852053,1.4720984983073159e-5,-2.5955605114652786e-8,0.002107817455023985,1.4968991587208612e-5,-2.6215033812032676e-8,0.0021080207898770947,1.5167881763610569e-5,-2.6423345985019315e-8,0.0021081811782254606,1.52812712911579e-5,-2.6541802838830476e-8,0.002108340721814446,1.5285367127017497e-5,-2.6544815228638046e-8,0.002108551393130802,1.5178224387244792e-5,-2.6429882679400344e-8,0.0021088642657054028,1.4987405902763008e-5,-2.6225817522741596e-8,0.0021093131823441873,1.477109413125047e-5,-2.5993980396136906e-8,0.0021098973634679687,1.4606796678395606e-5,-2.5816350529623914e-8,0.0021105729078048107,1.4566334520348138e-5,-2.5769076832392603e-8,0.0021112628777701157,1.4686483996552583e-5,-2.589140375989459e-8,0.002111884963727069,1.49524858304974e-5,-2.616814292368397e-8,0.0021123820416213326,1.530564027223351e-5,-2.653758083888853e-8,0.002112738443062604,1.566943862865359e-5,-2.6919021383359056e-8,0.0021129763380782042,1.597734406587063e-5,-2.7242128079128386e-8,0.002113139906608551,1.6188913189144726e-5,-2.7463982116337144e-8,0.0021132785147635735,1.6292255587917617e-5,-2.7571731956963736e-8,0.002113435244892276,1.6298231436790853e-5,-2.7576542617677282e-8,0.002113641467647694,1.623231108640538e-5,-2.750507948119659e-8,0.0021139155020888497,1.612742596429646e-5,-2.739200662875825e-8,0.002114263195353226,1.601868102419684e-5,-2.7274398004963558e-8,0.002114679097938746,1.5939462619916927e-5,-2.7187584649230205e-8,0.002115147857818045,1.591820498712063e-5,-2.7161697731839154e-8,0.0021156460082405507,1.5975354031712748e-5,-2.7218453269601503e-8,0.0021161445333496127,1.6120489838517026e-5,-2.736813658476198e-8,0.002116612541248858,1.6350066999505276e-5,-2.7607239032229045e-8,0.002117021983644663,1.6646569377117553e-5,-2.791754490148783e-8,0.002117352837098394,1.697979911393296e-5,-2.826741083990463e-8,0.0021175978015787107,1.731065634053247e-5,-2.8615637817191073e-8,0.00211776543378165,1.759725263509948e-5,-2.8917829165943654e-8,0.002117880769420787,1.7802584133189674e-5,-2.9134478291953385e-8,0.002117982886203447,1.7902584529889876e-5,-2.9239569317390042e-8,0.002118119198387002,1.7893289828263934e-5,-2.922832774864068e-8,0.002118336487991736,1.7795584944785858e-5,-2.9122440610658274e-8,0.0021186692843823997,1.7655389538035962e-5,-2.8970402749374115e-8,0.0021191276345471233,1.7536852324466382e-5,-2.8840362727093884e-8,0.0021196884143433207,1.7507199823531867e-5,-2.880401634238384e-8,0.002120295925762307,1.7615411346021366e-5,-2.8913861014445143e-8,0.0021208758106100725,1.787247903713528e-5,-2.9182079529307654e-8,0.002121359406182991,1.8244267405424016e-5,-2.9572807067690778e-8,0.0021217074721560777,1.8663209769622012e-5,-3.0014474124992184e-8,0.0021219209004431955,1.905356541542978e-5,-3.042663828206199e-8,0.0021220343298265485,1.9356536768551152e-5,-3.0746705244532125e-8,0.002122099166839674,1.954377814105041e-5,-3.094431491310143e-8,0.002122166330543905,1.9617217855782224e-5,-3.102119259421685e-8,0.0021222752180405586,1.9600531064406503e-5,-3.100215517299388e-8,0.002122449658514504,1.952878967527067e-5,-3.092419165467688e-8,0.0021226984612435964,1.9440127761138346e-5,-3.082765962692926e-8,0.002123017846957808,1.9370314072744265e-5,-3.075052790344494e-8,0.0021233940681903195,1.934948928989278e-5,-3.0724888774326296e-8,0.0021238056794888474,1.9399952935627528e-5,-3.077458440678296e-8,0.002124225682580438,1.9534193054597844e-5,-3.091310551719368e-8,0.002124624113565031,1.9752886458047202e-5,-3.1141464105636413e-8,0.002124971655833702,2.0043233580223036e-5,-3.144639940286134e-8,0.00212524450155675,2.037859705176521e-5,-3.179992728445566e-8,0.002125429949440885,2.0720660307119964e-5,-3.216153381034379e-8,0.0021255313735390655,2.1024952911718785e-5,-3.2483951488909524e-8,0.0021255706390746042,2.1249553405534983e-5,-3.272236244662322e-8,0.0021255862274255134,2.136531580176944e-5,-3.284530096658392e-8,0.002125626472329969,2.136477599867833e-5,-3.2844230643420137e-8,0.0021257389764561077,2.1266765123494018e-5,-3.273861136499655e-8,0.0021259586471253046,2.1114766388613177e-5,-3.2574325849611996e-8,0.0021262973922635143,2.0968604798671925e-5,-3.241497651320302e-8,0.0021267384416393392,2.0890666115759917e-5,-3.2327268627746654e-8,0.0021272376715695132,2.0929425811587144e-5,-3.236339970670092e-8,0.002127733046172089,2.110460424404699e-5,-3.2545061768599696e-8,0.00212816092546539,2.1399236109442378e-5,-3.2854762929754035e-8,0.0021284746737500223,2.176302809822261e-5,-3.3239236614057686e-8,0.002128658496133636,2.212740460159936e-5,-3.362543623506609e-8,0.0021287304336883744,2.2426834845535454e-5,-3.3943333219980947e-8,0.0021287335646911943,2.2617434207905126e-5,-3.414584047635682e-8,0.0021287204228760234,2.2685679731977404e-5,-3.421817395035784e-8,0.0021287380406940413,2.264602236182866e-5,-3.417535947240264e-8,0.002128818715188701,2.2531501692113913e-5,-3.4052283410800604e-8,0.002128977344015476,2.2382911676892006e-5,-3.3892197642410027e-8,0.002129213263803856,2.2240213464310166e-5,-3.373760006185234e-8,0.0021295139322477768,2.2137245808817076e-5,-3.362460002842891e-8,0.0021298586205894944,2.2099046795842652e-5,-3.358004972356987e-8,0.0021302214146577676,2.2140545104573738e-5,-3.362013028869592e-8,0.0021305737006618716,2.2265607580957118e-5,-3.374931398457121e-8,0.0021308867762918587,2.2466010723704024e-5,-3.39592257518173e-8,0.002131135293920836,2.2720594046935103e-5,-3.4227667717305434e-8,0.0021313019334212695,2.2995565753170124e-5,-3.451884933521096e-8,0.0021313829342262734,2.3247460182788705e-5,-3.4786456209133385e-8,0.0021313929103826883,2.3430080081429465e-5,-3.4981018338903236e-8,0.0021313662623369065,2.35053775592328e-5,-3.506154647311194e-8,0.002131352534668617,2.3455775394926864e-5,-3.500875472352498e-8,0.0021314050619435174,2.3293157757724045e-5,-3.483475480248656e-8,0.0021315656878382726,2.305959461858975e-5,-3.458394904972025e-8,0.002131851148769884,2.2817817875395575e-5,-3.432300884872676e-8,0.002132246675708553,2.2634145895239077e-5,-3.412278123476084e-8,0.0021327093056224787,2.255991732479814e-5,-3.4038512859965103e-8,0.0021331794386085386,2.261762912569421e-5,-3.4094941293936804e-8,0.002133596614516856,2.2795606804280943e-5,-3.4280365800889207e-8,0.0021339148569076657,2.3052078776754165e-5,-3.455073970041519e-8,0.0021341135296762083,2.3327034579694484e-5,-3.484217778475803e-8,0.0021342009716787884,2.355832491670355e-5,-3.508814955727273e-8,0.0021342101969445745,2.3697300658380293e-5,-3.523629751598651e-8,0.0021341884075972216,2.3719450332254015e-5,-3.525994944230765e-8,0.002134184081791398,2.3627331849970435e-5,-3.5161372712859956e-8,0.002134235900463689,2.3446066878692636e-5,-3.4967036409302774e-8,0.0021343663946126897,2.321429430328426e-5,-3.471798296710547e-8,0.0021345807976598918,2.2974350116389325e-5,-3.4459344612988514e-8,0.0021348696549837566,2.2764450779378168e-5,-3.4231980765256686e-8,0.0021352131046345666,2.2613905870942357e-5,-3.4067347153649095e-8,0.0021355851791665065,2.25409643711599e-5,-3.398518306415485e-8,0.002135957353588875,2.255223300982052e-5,-3.3992879723749303e-8,0.0021363013822437923,2.264265540717151e-5,-3.408542886166249e-8,0.0021365919676518924,2.279553658100697e-5,-3.4245382178955386e-8,0.0021368099415358917,2.298274820199354e-5,-3.444296877039347e-8,0.0021369464146205742,2.3165964903851673e-5,-3.463731317033913e-8,0.0021370076236995232,2.3300428516159704e-5,-3.4780406073762714e-8,0.0021370188901841084,2.334275576213467e-5,-3.482548254690987e-8,0.002137024662802771,2.3262920180390915e-5,-3.473993474880969e-8,0.0021370813223880038,2.3057492795026685e-5,-3.451958523389752e-8,0.002137241889275746,2.2757801904735166e-5,-3.41974981982623e-8,0.0021375370262618257,2.2426116340509338e-5,-3.3839966919214845e-8,0.002137961316631726,2.213800200907653e-5,-3.3527737842564464e-8,0.0021384728126343628,2.1957459800264673e-5,-3.332951347872889e-8,0.002139006670366777,2.191643370582827e-5,-3.3280036206354196e-8,0.0021394959229136664,2.2007302232413204e-5,-3.3371904617377737e-8,0.0021398901271324055,2.2189143712365275e-5,-3.3562023526722955e-8,0.002140166006414651,2.2402515162981413e-5,-3.378718549615929e-8,0.002140329077781706,2.2586184572995143e-5,-3.398186921720036e-8,0.0021404083035632985,2.2691063196128188e-5,-3.409319354061641e-8,0.002140446731689183,2.2688976940126358e-5,-3.409045739764433e-8,0.002140490895281052,2.2575699890952926e-5,-3.396857223236857e-8,0.0021405812375513067,2.2368761539972847e-5,-3.374586429282327e-8,0.002140745261299301,2.21013187905107e-5,-3.345758704823717e-8,0.002140994332456639,2.181402372302832e-5,-3.314720913566537e-8,0.002141324077070165,2.15469856889004e-5,-3.285775427864785e-8,0.002141717448243737,2.1333424920190157e-5,-3.262494699138589e-8,0.0021421491254591573,2.1195757227350775e-5,-3.247299004550511e-8,0.0021425900057506363,2.1143998775028036e-5,-3.2412859574264454e-8,0.002143011062769476,2.117578153748411e-5,-3.2442332125159627e-8,0.0021433864887417924,2.1277166088685482e-5,-3.254683206575627e-8,0.0021436964440635616,2.142377656843826e-5,-3.270056832632809e-8,0.0021439298869587705,2.1582271289495213e-5,-3.2867992137633203e-8,0.0021440878674806683,2.1712763255525305e-5,-3.3006289361086e-8,0.002144187054590783,2.1773439803346106e-5,-3.3070310510598916e-8,0.002144262009093983,2.172867744059509e-5,-3.302135431596869e-8,0.002144363336494184,2.156066898233932e-5,-3.2839788635029706e-8,0.0021445484486645283,2.128161554298987e-5,-3.253826914107641e-8,0.0021448640499980975,2.093968006406232e-5,-3.216820242252745e-8,0.0021453256085358927,2.0610778355504582e-5,-3.181096877059883e-8,0.002145905198301666,2.0374493068902587e-5,-3.155211428654284e-8,0.00214653761622983,2.028404497865664e-5,-3.144915450204835e-8,0.002147143609271417,2.0346789600608755e-5,-3.151058660106004e-8,0.0021476575414585346,2.0525272704293914e-5,-3.1696854344447995e-8,0.002148045581613403,2.0755200980876327e-5,-3.193942834876001e-8,0.0021483090662633483,2.0968393190590092e-5,-3.2165288983192186e-8,0.002148476685362016,2.111059951237463e-5,-3.231601401750927e-8,0.002148592188673189,2.115054857145032e-5,-3.235756967674147e-8,0.0021487026050471423,2.108140192452833e-5,-3.2282037014221544e-8,0.002148849218208448,2.091738286919093e-5,-3.2104180012498956e-8,0.0021490617141141114,2.0687943158359667e-5,-3.185531826563116e-8,0.0021493552248900965,2.043093865495207e-5,-3.1576037272193084e-8,0.0021497299103959574,2.018578295980443e-5,-3.1308781112487576e-8,0.0021501726730506327,1.99873898678633e-5,-3.109124846202539e-8,0.0021506604730088547,1.986152543363258e-5,-3.0951322070678607e-8,0.0021511645783630928,1.9821951349432184e-5,-3.0903980935864254e-8,0.0021516549924586936,1.986945352369192e-5,-3.0950285248140185e-8,0.0021521044365688485,1.9992440843010033e-5,-3.107804747030246e-8,0.0021524916686676407,2.016856874486101e-5,-3.126355090492214e-8,0.0021528042317079527,2.0367018571783807e-5,-3.147390414350625e-8,0.002153040804545645,2.0551375958833374e-5,-3.167000555671362e-8,0.002153213305985311,2.0683403675124328e-5,-3.181050955508008e-8,0.002153348503797179,2.0728467991859314e-5,-3.185767901736995e-8,0.002153487865791758,2.06633838486928e-5,-3.178596101433709e-8,0.002153683336498533,2.0486260716953912e-5,-3.159278162166714e-8,0.0021539866168050876,2.022543685029994e-5,-3.130833435668043e-8,0.0021544317139913717,1.9941401323367558e-5,-3.099772567279643e-8,0.0021550161923323133,1.9714632358069782e-5,-3.074786370682314e-8,0.002155692720036186,1.961840203113644e-5,-3.0638105864892124e-8,0.0021563809762338523,1.9688010875520684e-5,-3.070702518398803e-8,0.0021569972223773057,1.990511081944595e-5,-3.0935392402114285e-8,0.002157485124027573,2.0207307545267066e-5,-3.125638734645144e-8,0.002157830955696959,2.0515501898373752e-5,-3.1584963952577884e-8,0.0021580591073866546,2.0761657983135865e-5,-3.1847730058857165e-8,0.0021582161445200332,2.0904745124936695e-5,-3.200013957830926e-8,0.0021583539825240404,2.0933500471754782e-5,-3.20295538061186e-8,0.0021585179343003775,2.0861021855106574e-5,-3.194956386357729e-8,0.0021587404344839763,2.071653038410741e-5,-3.179127525102121e-8,0.0021590389475030915,2.0537441620192218e-5,-3.159486520542445e-8,0.0021594163239126024,2.0362778417702688e-5,-3.140248197378161e-8,0.002159862527034524,2.02278948399552e-5,-3.12524698579826e-8,0.002160357285130327,2.0160345669093216e-5,-3.117480508185589e-8,0.002160873478204498,2.017687657565958e-5,-3.1187780101922056e-8,0.002161381090914999,2.028164028054539e-5,-3.1296077539601465e-8,0.0021618514304895253,2.0465857833124282e-5,-3.1490443368311834e-8,0.0021622611359319007,2.0709012451658273e-5,-3.174899334089471e-8,0.002162595566211041,2.0981352258249935e-5,-3.203986438715612e-8,0.0021628513653473066,2.1247405686018214e-5,-3.232489338007879e-8,0.0021630380775924086,2.1470340095996585e-5,-3.256419591015205e-8,0.0021631786722644116,2.1617083222566323e-5,-3.272164177108625e-8,0.00216330868415945,2.1664275769114177e-5,-3.277135694153426e-8,0.0021634731281762807,2.1605065487863532e-5,-3.2705257492733154e-8,0.0021637197852005,2.1455812436603205e-5,-3.254053477237097e-8,0.0021640877997709013,2.1259948537739125e-5,-3.232400898296171e-8,0.002164592603377122,2.108438739205041e-5,-3.212829934769005e-8,0.0021652124263154904,2.1004045458292953e-5,-3.2034996857797784e-8,0.002165885927123784,2.107545579977581e-5,-3.21059404679378e-8,0.002166528501769656,2.1310646054636276e-5,-3.235474767326647e-8,0.0021670632549307834,2.1668132745757332e-5,-3.273691349900394e-8,0.0021674499574846086,2.2069275229952522e-5,-3.3167461209084994e-8,0.002167695398646148,2.2430414143251984e-5,-3.355576152777364e-8,0.0021678424617177497,2.2691454458900874e-5,-3.383651203996052e-8,0.002167948850623929,2.2828166985303557e-5,-3.398307877885336e-8,0.0021680682294110717,2.2848871903014454e-5,-3.400396925492826e-8,0.002168239621410091,2.2783477264658934e-5,-3.393109259567893e-8,0.0021684843405062296,2.2671975588932204e-5,-3.380744770218485e-8,0.0021688073255370847,2.2555681481195456e-5,-3.367771500329707e-8,0.0021692001470083005,2.247154601714925e-5,-3.358207900819488e-8,0.0021696442585630864,2.2448607182279223e-5,-3.355228837104354e-8,0.0021701141864079454,2.250565226458912e-5,-3.360901884393857e-8,0.0021705808201399487,2.2649663627314837e-5,-3.376013066261044e-8,0.002171014994842116,2.2875029470842755e-5,-3.399981066861581e-8,0.0021713914000250586,2.3163823595123173e-5,-3.430889349840126e-8,0.002171692521788873,2.348758011808522e-5,-3.4656770876542255e-8,0.0021719120261017694,2.381072758144914e-5,-3.500503838425244e-8,0.002172056961163761,2.4095477309522668e-5,-3.531268029929626e-8,0.002172148267756013,2.430773141450824e-5,-3.5542386815216575e-8,0.0021722192183669113,2.4423369339532766e-5,-3.5667380799741086e-8,0.0021723115797911727,2.443412716691192e-5,-3.567793407850738e-8,0.002172469370856416,2.435222243916228e-5,-3.558662383347489e-8,0.002172730141133899,2.4212483806263987e-5,-3.5430893243344456e-8,0.0021731143123856107,2.406994280862633e-5,-3.527059410845282e-8,0.0021736147553494305,2.399049051461565e-5,-3.517783640369402e-8,0.0021741911382967354,2.4033616638707532e-5,-3.5218066388396594e-8,0.0021747750128882433,2.4230582571380168e-5,-3.542607458320517e-8,0.0021752887669595176,2.4567528571206925e-5,-3.5787372573666643e-8,0.002175673052155437,2.49852415759974e-5,-3.623781078312394e-8,0.002175908854725856,2.5399662837313294e-5,-3.668591393596756e-8,0.0021760215228088064,2.5733306593570758e-5,-3.704716213606398e-8,0.002176065901163682,2.5940343519971294e-5,-3.727134201842648e-8,0.0021761034783204496,2.6014370722419524e-5,-3.735101978943853e-8,0.0021761840080405325,2.598057227504093e-5,-3.731306905929495e-8,0.0021763370696546024,2.5881272618678495e-5,-3.7203079961238056e-8,0.002176571964578955,2.5762734966788867e-5,-3.7071131130532555e-8,0.002176881812643163,2.5666444320064544e-5,-3.6962369095902545e-8,0.002177248530362033,2.562462645803108e-5,-3.6912097310867254e-8,0.0021776471185262275,2.56583990067598e-5,-3.694366624460091e-8,0.0021780490847102727,2.577707907708006e-5,-3.706762059466764e-8,0.002178425470464016,2.5977906113517757e-5,-3.7281338682605485e-8,0.002178749995054507,2.6246122306122735e-5,-3.7569099018844795e-8,0.00217900258816672,2.6555835903572176e-5,-3.7903003824289374e-8,0.0021791731432856958,2.687235363923373e-5,-3.8245472427078433e-8,0.002179264774642755,2.715651610226576e-5,-3.8553882093067663e-8,0.0021792954993946666,2.737100012726711e-5,-3.878734993897014e-8,0.0021792972905228126,2.7487801409019163e-5,-3.891485525836279e-8,0.0021793118845096627,2.7495392292255558e-5,-3.8923106738733907e-8,0.0021793835257311045,2.740366279969572e-5,-3.8822101383632065e-8,0.0021795497062576503,2.7244969924330507e-5,-3.864650695887784e-8,0.0021798315902990814,2.70702521421955e-5,-3.845164962605757e-8,0.0021802262299320907,2.693987847972113e-5,-3.8303651911103566e-8,0.0021807030536763806,2.6909868400577606e-5,-3.826434729027413e-8,0.002181207209043901,2.7015773686396604e-5,-3.837346895969279e-8,0.002181671386070132,2.7258810728352984e-5,-3.8633200520179275e-8,0.0021820347882051537,2.7600628586197033e-5,-3.9002200115334744e-8,0.002182263235355336,2.7971926183414146e-5,-3.940491263576584e-8,0.0021823611556105044,2.829417321789066e-5,-3.9755366604696456e-8,0.0021823687183090976,2.8505597620353956e-5,-3.9985695960752894e-8,0.002182345504518596,2.8579166128070304e-5,-4.006587420492795e-8,0.00218234968005574,2.852535965389795e-5,-4.000679786407413e-8,0.0021824224556048176,2.838187447749541e-5,-3.984911376569704e-8,0.0021825822079256305,2.8198197432587352e-5,-3.964648840870845e-8,0.002182826606343748,2.802230424969246e-5,-3.9451180587015695e-8,0.0021831385394179867,2.7892584515013404e-5,-3.930524420287103e-8,0.002183492363313434,2.7834558372804433e-5,-3.9236882225582924e-8,0.00218385884397354,2.7860496490932013e-5,-3.9259933128383583e-8,0.0021842086588251997,2.7970168372585447e-5,-3.937460019364952e-8,0.0021845150758582356,2.815172900254157e-5,-3.956836422313752e-8,0.0021847565668936496,2.838260505830918e-5,-3.9816914283289737e-8,0.002184919839335821,2.8630898322059892e-5,-4.0085638458821643e-8,0.002185003215576358,2.885819450463714e-5,-4.033263381846127e-8,0.00218501956630861,2.9024619642616696e-5,-4.0514173513386934e-8,0.002184997331671042,2.9096343678574037e-5,-4.0592881414629923e-8,0.0021849779434766005,2.9054458176741742e-5,-4.054747138967016e-8,0.0021850086809995705,2.890265974050007e-5,-4.0381253019101765e-8,0.0021851317555203866,2.867039550492026e-5,-4.012573894978999e-8,0.002185372477190764,2.8408972654841787e-5,-3.983659301605007e-8,0.002185730455124099,2.8180528313815657e-5,-3.958174677758403e-8,0.0021861771693066417,2.804251014407566e-5,-3.942450075684918e-8,0.002186661265337064,2.803206489062113e-5,-3.940634962351665e-8,0.0021871205644257144,2.8154906091556042e-5,-3.953453886956924e-8,0.0021874978725242504,2.8382145494403323e-5,-3.977826745766282e-8,0.002187756423815575,2.865671184733779e-5,-4.0075466582978284e-8,0.0021878902551987,2.8908425992492547e-5,-4.0349239996036213E-08,0.0021879255831569328,2.907366219308399e-5,-4.052949755270081e-8,0.002187912085216684,2.9112986253584563e-5,-4.057244739063578e-8,0.0021879072199879612,2.9020292931549317e-5,-4.0470759660277784E-08,0.0021879598630596396,2.8820635503511565e-5,-4.025130399634947e-8,0.0021880992812219192,2.855917509608077e-5,-3.996313733776403e-8,0.002188332056726784,2.8287020621832985e-5,-3.9662060963515264e-8,0.0021886456060208528,2.804939262502735e-5,-3.9397673106991304e-8,0.0021890148819920466,2.7878715380127772e-5,-3.9205757381181164e-8,0.002189409156221178,2.7792378102702624e-5,-3.9105747978824426e-8,0.0021897972687176166,2.7793455583849522e-5,-3.9101439536603146e-8,0.0021901511374968234,2.7872602070577086e-5,-3.9183008468822456e-8,0.0021904481235000325,2.80099950384596e-5,-3.932910624744156e-8,0.002190673074057688,2.8177065500827853e-5,-3.950871255388833e-8,0.0021908206554662854,2.8338483116444323e-5,-3.9683248872783535e-8,0.002190898034144987,2.8455330491275332e-5,-3.980999342254779e-8,0.002190927155960091,2.8490498477234655e-5,-3.9847964078533655e-8,0.0021909449561215767,2.841676049523602e-5,-3.9766800450551744e-8,0.002190999293289918,2.8226395593368268e-5,-3.955740530076425e-8,0.0021911391604951622,2.7938931175521973e-5,-3.924055987672371e-8,0.0021914004248092763,2.7602074739011113e-5,-3.886808440988153e-8,0.00219179202133541,2.7282286475806473e-5,-3.851264350198292e-8,0.002192289357213238,2.704625873866707e-5,-3.82475557684289e-8,0.0021928392696263337,2.6940105864173445e-5,-3.812399760810237e-8,0.0021933752027235077,2.697500409955819e-5,-3.815512007691709e-8,0.002193836370061701,2.712470614302269e-5,-3.8313049345572726e-8,0.0021941837606845793,2.7334592335765326e-5,-3.8538514178115646e-8,0.0021944084668189573,2.753776194502866e-5,-3.875830475133487e-8,0.002194531286417225,2.7672583796492192e-5,-3.890450991618433e-8,0.002194595052600508,2.769704623340426e-5,-3.893040017878978e-8,0.0021946525033668582,2.759686253141467e-5,-3.881953924029014e-8,0.002194753120305771,2.7386090076476726e-5,-3.858667842959779e-8,0.0021949323250686314,2.7100914061041817e-5,-3.82710888669168e-8,0.0021952055424206626,2.678902702000713e-5,-3.792497063521771e-8,0.0021955679291575467,2.6498107213706706e-5,-3.760078207771899e-8,0.0021959986568907772,2.626660204683497e-5,-3.73410335002723e-8,0.0021964674766541165,2.6118501228737073e-5,-3.7172439057852775e-8,0.0021969413113013753,2.60620374695922e-5,-3.7104408935529385e-8,0.0021973894608135576,2.6091132908844254e-5,-3.7130604436828466e-8,0.00219778705276762,2.6188108161646412e-5,-3.7231911539965425e-8,0.0021981171577645352,2.6326541689641457e-5,-3.7379570709525906e-8,0.0021983722862443157,2.647389410124768e-5,-3.753800898406534e-8,0.0021985558494707763,2.6594192238440678e-5,-3.766770585522208e-8,0.0021986837479933113,2.6651537795907375e-5,-3.772898009889921e-8,0.0021987855132714115,2.6615420265459276e-5,-3.76878288712398e-8,0.0021989034252902504,2.646839864760911e-5,-3.752446513210713e-8,0.002199087291365176,2.621516384114665e-5,-3.7243437839789706e-8,0.002199383129417582,2.588937576288623e-5,-3.688130790905145e-8,0.0021998169911259277,2.555241378810931e-5,-3.650538638656394e-8,0.0022003802001003703,2.5279351320183844e-5,-3.619836871761591e-8,0.0022010254563611044,2.513422877506996e-5,-3.603114654032077e-8,0.002201679461595271,2.5145548720641303e-5,-3.603578324988553e-8,0.0022022676262901954,2.5295397762231912e-5,-3.619337702747384e-8,0.0022027384098715387,2.552770043771887e-5,-3.6442911016991864e-8,0.0022030761947726936,2.5769490088737933e-5,-3.6704451465803936e-8,0.0022032999837505608,2.5953710056367697e-5,-3.690413133727294e-8,0.002203452495899009,2.6035101872089713e-5,-3.699166081129466e-8,0.00220358608653898,2.5996726968420892e-5,-3.6947657521712005e-8,0.0022037500668679825,2.584868135819004e-5,-3.678246540474378e-8,0.0022039815599960576,2.562183741456571e-5,-3.6529498934363496e-8,0.0022043004146107474,2.5359154396673204e-5,-3.6235824598435174e-8,0.0022047079845341367,2.510642092784503e-5,-3.595198121736966e-8,0.002205189271399241,2.490392157422305e-5,-3.5722695471243174e-8,0.0022057175485827437,2.4780291065975067e-5,-3.557995202152093e-8,0.002206260229099632,2.4749273402388118E-05,-3.553929040719807e-8,0.0022067847011294868,2.4809362891213233e-5,-3.559935513770356e-8,0.002207263133432532,2.494571788740346e-5,-3.574402276444476e-8,0.0022076757646234684,2.5133391696059046e-5,-3.594599847110066e-8,0.0022080127950028375,2.534094893318031e-5,-3.61707958606488e-8,0.0022082753512539274,2.5533983406702185e-5,-3.6380543421501094e-8,0.0022084759594946783,2.5678586499651885e-5,-3.653770547250637e-8,0.0022086387115195184,2.5745202620986414e-5,-3.6609273231779453e-8,0.002208798772150077,2.5713550443386234e-5,-3.6572240060008746e-8,0.002208999993716592,2.557900040024047e-5,-3.6420802882875486e-8,0.0022092887458073814,2.5359488384672675e-5,-3.6174216899908184e-8,0.0022097025167608603,2.5099812062111692e-5,-3.588172643050776e-8,0.0022102543881308777,2.4867936743048755e-5,-3.56185625830845e-8,0.0022109195242995543,2.4738476511340537e-5,-3.5467648422950415e-8,0.002211634051687777,2.4765337819048855e-5,-3.5489237515539794e-8,0.002212313150289902,2.495636083716276e-5,-3.5692713187243686e-8,0.0022128823429647753,2.526671790565515e-5,-3.602912278257172e-8,0.0022133046472050132,2.5616981016093155e-5,-3.641102991172894e-8,0.0022135888531115686,2.5924578071327065e-5,-3.6747220225829005e-8,0.0022137783155401383,2.6130440340332528e-5,-3.69721280559337e-8,0.0022139309577410685,2.6210438172246873e-5,-3.705850643683236e-8,0.0022141014474845195,2.6172901848814536e-5,-3.7014821330468624e-8,0.0022143303324376486,2.604895373490618e-5,-3.687478915277662e-8,0.002214639802017609,2.5881451700368056e-5,-3.668537821684993e-8,0.0022150338963010646,2.5715502764954452e-5,-3.649643735626844e-8,0.0022155011447347337,2.5591302194405776e-5,-3.6352737563078843e-8,0.0022160184567097205,2.553907975187675e-5,-3.628822151576024e-8,0.0022165557263009628,2.5575938852458807e-5,-3.63223191891732e-8,0.0022170807551756427,2.5704576800506107e-5,-3.6458407892383054e-8,0.002217564030701961,2.591385422119361e-5,-3.668441906146322e-8,0.0022179828448299827,2.6181049859668053e-5,-3.697537858622144e-8,0.0022183242804138395,2.6475407977684876e-5,-3.729737331333177e-8,0.002218586851652362,2.6762362021212276e-5,-3.7612202106384365e-8,0.002218780907528584,2.7007899392426868e-5,-3.7882116402540654e-8,0.00221892800983572,2.718282261799535e-5,-3.807443917791746e-8,0.0022190594291572868,2.7266897794539164e-5,-3.816614008581418e-8,0.002219213643884262,2.7253074171586324e-5,-3.814862701576736e-8,0.0022194321448706397,2.7151812912431053e-5,-3.8032782192625904e-8,0.0022197524438374,2.699457943246866e-5,-3.785310248538782e-8,0.0022201977516507457,2.6834004944931882e-5,-3.7668058896544666e-8,0.0022207647596439554,2.6736960739406968e-5,-3.755241769514929e-8,0.002221414588087056,2.6767401671111417e-5,-3.757801963905858e-8,0.0022220754445295104,2.696116773143545e-5,-3.778551747050506e-8,0.002222662982074354,2.7304481080951647e-5,-3.81602371398771e-8,0.002223112492580615,2.7732335963690483e-5,-3.8630272100101265e-8,0.0022234048892087036,2.815262001038408e-5,-3.9093316095525206e-8,0.002223570353579146,2.8482812379548647e-5,-3.9457507211628694e-8,0.0022236698422765312,2.8677471002609632e-5,-3.9671972494411865e-8,0.002223768955546225,2.8734606819302868e-5,-3.973390147896533e-8,0.002223918561912486,2.8685068606721128e-5,-3.9676852435000445e-8,0.002224146947177898,2.857614254949019e-5,-3.955275079853739e-8,0.002224460584546953,2.8457539680318737e-5,-3.9416539001133896e-8,0.0022248488878112726,2.8372409677147155e-5,-3.931628151961653e-8,0.0022252897394614136,2.8352697862785916e-5,-3.9287926512737694e-8,0.002225754439448891,2.8417200189247082e-5,-3.9352956850409215e-8,0.0022262119752000306,2.8571064147124517e-5,-3.9517646409515605e-8,0.0022266329015272588,2.8806246946617162e-5,-3.977346217838114e-8,0.002226992971723243,2.9102919767945163e-5,-4.009861614536306e-8,0.002227276408541931,2.9431986686848863e-5,-4.046090776146395e-8,0.002227478443459657,2.975881765135786e-5,-4.082189498635584e-8,0.0022276066367046955,3.00479536480172e-5,-4.114208286135804e-8,0.0022276806541805206,3.0268246647568305e-5,-4.1386550741833944e-8,0.0022277304168021564,3.0397850263698415e-5,-4.153044218187168e-8,0.0022277927064168696,3.0428497299104088e-5,-4.1563769098494404e-8,0.0022279064138012593,3.036858246513481e-5,-4.149502940286735e-8,0.002228106506621653,3.0244655302837534e-5,-4.13531517818982e-8,0.0022284166785792644,3.0100550888706932e-5,-4.1186794221321944e-8,0.0022288411897262855,2.9992625796661267e-5,-4.10591614928939e-8,0.0022293578310589434,2.997937361758266e-5,-4.1036340003927136e-8,0.002229915827113162,3.0105006870106393e-5,-4.116870189588894e-8,0.0022304437011137785,3.0380336855881893e-5,-4.146920822621145e-8,0.0022308696821551816,3.0770008843180174e-5,-4.189889481023213e-8,0.0022311489278408515,3.119747911794132e-5,-4.237238494059883e-8,0.002231282975267909,3.157105128869589e-5,-4.278709882978031e-8,0.0022313182697664352,3.181892335039289e-5,-4.3062523712161575e-8,0.0022313244787628863,3.1913280890993805e-5,-4.316712531818715e-8,0.0022313668866389517,3.187208721013959e-5,-4.312031825412391e-8,0.0022314877691962513,3.174329917730292e-5,-4.297493790279011e-8,0.0022317016189136243,3.1584440533183345e-5,-4.2794660080913634e-8,0.0022320000376087473,3.1447193001066374e-5,-4.263700565313382e-8,0.0022323599775302527,3.1369544649942365e-5,-4.2544629399779314e-8,0.0022327512669868426,3.13736485445689e-5,-4.254281430583861e-8,0.0022331420789577098,3.146660704082846e-5,-4.264014632464142e-8,0.002233502662649728,3.164221547907365e-5,-4.283028278424188e-8,0.0022338081602597494,3.188287847991798e-5,-4.309400116155361e-8,0.0022340411058888376,3.216172283638613e-5,-4.340155202858812e-8,0.002234193788318541,3.244531827001491e-5,-4.371572186288535e-8,0.002234270215537642,3.269748772071455e-5,-4.399608728756532e-8,0.0022342870174345488,3.288434625146084e-5,-4.4204595810092806e-8,0.0022342725300309807,3.298010211189754e-5,-4.431198509478476e-8,0.00223426358719864,3.297265366270278e-5,-4.430402838113176e-8,0.002234300042169446,3.28677210223566e-5,-4.4186255163092324e-8,0.0022344176501358816,3.269023712664952e-5,-4.398572890389884e-8,0.0022346404530500393,3.248215526411121e-5,-4.374887676761402e-8,0.0022349739993351363,3.229642695778004e-5,-4.3534981383312984e-8,0.002235400846601725,3.218729338221004e-5,-4.3405375317758714e-8,0.0022358801294424515,3.2197598996961654e-5,-4.3409074494626946e-8,0.0022363531613351687,3.234518444318427e-5,-4.356719715545998e-8,0.0022367562584270713,3.26124404623423e-5,-4.386088239969612e-8,0.002237039364916164,3.2944799036726895e-5,-4.4229360674700297e-8,0.002237184585255663,3.3263008754100455e-5,-4.458371191536925e-8,0.0022372152097443723,3.348808466964168e-5,-4.4835003790813605e-8,0.002237188268790842,3.356890037152168e-5,-4.492538522979582e-8,0.002237172973766367,3.3498373396684425e-5,-4.4846285550617134e-8,0.002237226446062347,3.331063740330506e-5,-4.463527151098567e-8,0.0022373785866876966,3.306356285861056e-5,-4.435657408777556e-8,0.0022376301801785795,3.281796598936418e-5,-4.407798109343235e-8,0.002237960293002327,3.262266212632057e-5,-4.385422435645071e-8,0.0022383364907900727,3.250798890852662e-5,-4.371970523753345e-8,0.002238723456645966,3.2485676809755455e-5,-4.3688197681211816e-8,0.0022390886143439774,3.255173487689696e-5,-4.3755889161178954e-8,0.002239405282078471,3.2689939993701276e-5,-4.390514695537152e-8,0.002239654500276259,3.2874917872497975e-5,-4.410791058122196e-8,0.002239826466603891,3.3074841894149056e-5,-4.43287154816248e-8,0.0022399219825763365,3.325431872964785e-5,-4.452793608909369e-8,0.00223995372724577,3.337818442270938e-5,-4.466602508507044e-8,0.002239946609945796,3.341665474095889e-5,-4.4709250539583116e-8,0.0022399361149010558,3.335152643078121e-5,-4.463662869840457e-8,0.0022399637177205746,3.318214901741799e-5,-4.4446666383878356e-8,0.0022400692719222156,3.292908438196356e-5,-4.4161604326662625e-8,0.0022402815961347503,3.263324461259011e-5,-4.382667142532589e-8,0.0022406097829435986,3.234928937051243e-5,-4.35029200728048e-8,0.0022410381982317313,3.2133989991873885e-5,-4.325433505758617e-8,0.002241527366860039,3.2032192958380706e-5,-4.31320710589e-8,0.002242021338402319,3.206407169227447e-5,-4.315991919307524e-8,0.002242460373611949,3.22173758634287e-5,-4.3325235858678146e-8,0.0022427962572554097,3.244758975145919e-5,-4.3578759913273076e-8,0.002243006285647738,3.268735329396462e-5,-4.384500203668317e-8,0.002243101254106713,3.2863977904254935e-5,-4.4041959824776854e-8,0.002243123492551911,3.292048609982193e-5,-4.410494856355586e-8,0.0022431341784470964,3.283271918257909e-5,-4.400603585822717e-8,0.002243194132145136,3.261533508896748e-5,-4.376093452019552e-8,0.0022433459529788004,3.2314277942817154e-5,-4.342065606321087e-8,0.0022436045440565053,3.198999227156275e-5,-4.305276261895022e-8,0.002243958133515982,3.169947891807182e-5,-4.2721289735892826e-8,0.002244376640907042,3.148388477407264e-5,-4.2472798095789184e-8,0.0022448221512804886,3.136378685678507e-5,-4.233096289601714e-8,0.0022452575632132565,3.134045113321896e-5,-4.2297823602288997e-8,0.002245652005153063,3.139999666608745e-5,-4.2358322241039085e-8,0.002245983472810847,3.151802159817808e-5,-4.248543069195238e-8,0.0022462398578507008,3.166353197668659e-5,-4.2644554056704593e-8,0.002246419446397792,3.180211929402931e-5,-4.2797108244559135e-8,0.0022465314514837314,3.1898991863196846e-5,-4.290391686790522e-8,0.0022465964763423293,3.192267915682146e-5,-4.292934587877446e-8,0.0022466461542808808,3.185001140863545e-5,-4.2846882077462555e-8,0.0022467207138888905,3.1672240851810194e-5,-4.264604611928958e-8,0.0022468631990779767,3.140089843834509e-5,-4.2339079016408486e-8,0.0022471100388813652,3.1070610463486265e-5,-4.196427300171984e-8,0.002247479746499827,3.073566784992554e-5,-4.158230565870342e-8,0.0022479638331529823,3.045874199951375e-5,-4.1263714808448154e-8,0.002248524763253154,3.02937857422682e-5,-4.1069733388505545e-8,0.002249103611883865,3.0268960024283786e-5,-4.1032988729356464e-8,0.0022496357222364597,3.0376558929030593e-5,-4.114590430823665e-8,0.002250068824548509,3.0574158665270486e-5,-4.1361647414439126e-8,0.0022503772247836114,3.07964029825346e-5,-4.160710741763205e-8,0.002250567802057482,3.097301904580212e-5,-4.1803061544443096e-8,0.002250676749711126,3.1047324392743566e-5,-4.188509138902905e-8,0.0022507586723131802,3.099010340839463e-5,-4.1819420951854353e-8,0.002250871480347393,3.080538471041008e-5,-4.1609680129912226e-8,0.0022510615188335178,3.052699532297764e-5,-4.1293253390966694e-8,0.002251353179262093,3.0207520227351978e-5,-4.092900157619033e-8,0.0022517456031207373,2.990365199999711e-5,-4.058081653528731e-8,0.002252216441744965,2.966277801546249e-5,-4.0302454700107246e-8,0.0022527301904458124,2.9514465763670236e-5,-4.012779775956819e-8,0.0022532475943158755,2.9467955847632948e-5,-4.0067851081194045e-8,0.0022537333307623537,2.9514413442723212e-5,-4.0113146302274113E-08,0.0022541607881451917,2.9631644844628163e-5,-4.023900335211374e-8,0.002254514189838657,2.9789237110179563e-5,-4.041133614434692e-8,0.0022547890266936274,2.9952985275678716e-5,-4.059167064094272e-8,0.0022549917913854377,3.0088440765969818e-5,-4.074114160771088e-8,0.0022551396035145384,3.016407696389352e-5,-4.08240201186456e-8,0.0022552597216511264,3.015481429148342e-5,-4.081164539487939e-8,0.0022553882919875423,3.0046508802163843e-5,-4.0687495180085486e-8,0.002255567099077569,2.9841357504034444e-5,-4.045337540522603e-8,0.0022558369388607233,2.9562838755949134e-5,-4.0135156504026914e-8,0.0022562271875581842,2.9257130726269753e-5,-3.978455631529007e-8,0.0022567436326642507,2.898714903281843e-5,-3.947255364662877e-8,0.0022573598823487835,2.8817209579511943e-5,-3.927213390100102e-8,0.002258018966071855,2.8791605493017066e-5,-3.923404737454537e-8,0.002258648117312685,2.891633036493332e-5,-3.936599702943412e-8,0.0022591820275492096,2.9154153382066135e-5,-3.962682189325287e-8,0.0022595839247476135,2.9436595028559185e-5,-3.993977198480979e-8,0.00225985505008105,2.9686790215993037e-5,-4.021816649643196e-8,0.002260030241699472,2.9842461088519565e-5,-4.039130403089442e-8,0.002260164133587199,2.9870701143892955e-5,-4.042125712911031e-8,0.0022603147060398874,2.9772008334002676e-5,-4.0307640364203134e-8,0.002260529356679789,2.957539212424842e-5,-4.008236218492744e-8,0.0022608360709949985,2.9328088618681445e-5,-3.9798262676794195e-8,0.002261240279369694,2.9083351681059975e-5,-3.951545849385412e-8,0.0022617268003365322,2.888909043567816e-5,-3.9288472509905356e-8,0.0022622655482008036,2.8779388123142624e-5,-3.915647214350556e-8,0.002262819189102602,2.8770098261314698e-5,-3.913805732001187e-8,0.002263350798057785,2.88586129564398e-5,-3.92308125522209e-8,0.0022638299762149723,2.9026875547142857e-5,-3.9414639258724473e-8,0.00226423666135669,2.9246199189130553e-5,-3.9657234352431613e-8,0.0022645626786873415,2.9482478245198007e-5,-3.992005306099529e-8,0.0022648116674165116,2.9700822468235492e-5,-4.016358408751382e-8,0.0022649981596772123,2.9869345096513426e-5,-4.0351602493104255e-8,0.00226514630501003,2.9962411033835785e-5,-4.04547762743576e-8,0.002265288298830657,2.9963862391270176e-5,-4.045428268554886e-8,0.0022654620702153745,2.9870664852001304e-5,-4.034600056798178e-8,0.002265707212446325,2.969691295175194e-5,-4.0145217890832345e-8,0.002266057956294179,2.947691133511338e-5,-3.9890345763315734e-8,0.0022665329039003286,2.926444328548644e-5,-3.964227072360827e-8,0.0022671236887107245,2.9124484378898093e-5,-3.9475022511818455E-08,0.002267788240646869,2.9115420126813518e-5,-3.945552451759843e-8,0.0022684561262601086,2.9265821438624493e-5,-3.9617054061131354e-8,0.0022690490903026677,2.955733641213853e-5,-3.993960157280089e-8,0.002269509515122626,2.992626254599793e-5,-4.035147042985752e-8,0.00226982162214845,3.0286068029203308e-5,-4.0754733553186254e-8,0.0022700138757717004,3.055897303667495e-5,-4.1061025649979134e-8,0.0022701436737226793,3.069989577380529e-5,-4.1218699906638504e-8,0.00227027517647685,3.070387520696665e-5,-4.122131101616223e-8,0.002270461042897145,3.059919619723711e-5,-4.1100011651257346e-8,0.002270732689133939,3.0433729733369717e-5,-4.090835113136894e-8,0.002271098337780852,3.026097227227714e-5,-4.070670005595391e-8,0.002271546105525531,3.012906258930677e-5,-4.0549886052690306e-8,0.002272049606456396,3.007354356655947e-5,-4.0478868217575704e-8,0.0022725744638758933,3.011354728086309e-5,-4.051615436512521e-8,0.0022730847790649704,3.0250954443169037e-5,-4.066458322488583e-8,0.002273548838725809,3.047206367789406e-5,-4.0909059104787467e-8,0.0022739434936463994,3.075113090835044e-5,-4.1220551846418976e-8,0.0022742568636345524,3.105504186902545e-5,-4.156147942044127e-8,0.0022744892839467825,3.134835492335001e-5,-4.189151521878511e-8,0.0022746527416301044,3.159798737144839e-5,-4.217292294439811e-8,0.0022747692873981264,3.177714018497166e-5,-4.237495585906838e-8,0.0022748688113758886,3.186850606857967e-5,-4.247743480535395e-8,0.002274986290774487,3.186699225575003e-5,-4.2473855910760004e-8,0.0022751583117732004,3.178213127539921e-5,-4.237427673206388e-8,0.0022754182619907173,3.1640017291713195e-5,-4.2207768491395545e-8,0.0022757894556965316,3.1483670873694755e-5,-4.202308555544977e-8,0.0022762763149492913,3.1369490725813464e-5,-4.188476186116999e-8,0.002276855832823401,3.135697026894548e-5,-4.186133900931318e-8,0.0022774744421386866,3.1490633861351893e-5,-4.200454099581501e-8,0.0022780569340058936,3.177865036092299e-5,-4.232457983909165e-8,0.0022785298502353986,3.217986098398422e-5,-4.277512950721424e-8,0.002278850878859694,3.261186828087253e-5,-4.326249088421801e-8,0.002279027127460274,3.29810254809563e-5,-4.3679853601427606e-8,0.0022791101135152944,3.3218485070021266e-5,-4.3948435338700015e-8,0.0022791716138773816,3.33017751806445e-5,-4.404203618293163e-8,0.0022792763622203156,3.325354630218967e-5,-4.3985619723857855e-8,0.0022794650184009696,3.312474867222378e-5,-4.3836336864797965e-8,0.0022797502493714416,3.297479872131966e-5,-4.3661248003750406e-8,0.00228012142820996,3.285672340462785e-5,-4.35206528604119e-8,0.0022805525144040995,3.2809069538178984e-5,-4.3458910771532503e-8,0.002281009749824412,3.28530678199272e-5,-4.350102367560977e-8,0.002281457946481573,3.299290573495884e-5,-4.3652647942342574e-8,0.0022818653863613037,3.3217663060474e-5,-4.390203862093646e-8,0.0022822076095379298,3.350430854908523e-5,-4.4223341324998374e-8,0.0022824701581385626,3.38215008984268e-5,-4.458094556850484e-8,0.0022826501909389498,3.413398695711384e-5,-4.493459121134231e-8,0.0022827568168762593,3.44073498830337e-5,-4.524485208989148e-8,0.0022828100447377627,3.4612658901913384e-5,-4.547843105508966e-8,0.0022828384740465075,3.4730475087631895e-5,-4.561266796396316e-8,0.002282876011570533,3.475388096679199e-5,-4.5638964500433376e-8,0.002282957848421652,3.469040464851831e-5,-4.5565062411767125e-8,0.0022831158204580496,3.456271833872463e-5,-4.541606069616092e-8,0.0022833731202049406,3.440786048574832e-5,-4.5233819572801423e-8,0.0022837383081319583,3.427425554837967e-5,-4.507378989735375e-8,0.0022841992424606486,3.42151255976047e-5,-4.4997528462908375e-8,0.0022847190630679586,3.427694413898361e-5,-4.505929978605274e-8,0.0022852381039333777,3.448341082476899e-5,-4.528736898920922e-8,0.002285686017006873,3.4819631970934466e-5,-4.566551541864208e-8,0.0022860045965692596,3.522625967483624e-5,-4.6126130449042295e-8,0.0022861729555042707,3.5613274931110104e-5,-4.65660689031637e-8,0.002286219685653516,3.5892392446296056e-5,-4.688394305335418e-8,0.002286211691889868,3.601177133491025e-5,-4.7019944247694604e-8,0.002286225505956513,3.5972626779050686e-5,-4.697479161031815e-8,0.0022863188543598124,3.58205873724714e-5,-4.6799832485411654e-8,0.00228651668635773,3.562198060753e-5,-4.6570120297171264e-8,0.002286812966928041,3.5440632292562546e-5,-4.635820450409294e-8,0.002287180868527256,3.532389707738892e-5,-4.6218365864022434e-8,0.002287583967878681,3.5298098790532246e-5,-4.618136168410986e-8,0.0022879848284268977,3.536980504236021e-5,-4.6255633734096165e-8,0.0022883504197809537,3.552946613083765e-5,-4.643115703668337e-8,0.002288655274879669,3.575541538610793e-5,-4.668378554344655e-8,0.0022888834463104927,3.60176745468646e-5,-4.697952823998258e-8,0.002289029789277668,3.6281738912671874e-5,-4.727893103740416e-8,0.002289100595889158,3.65126058036671e-5,-4.754178038619249e-8,0.0022891133320047745,3.667916372430841e-5,-4.773217946936401e-8,0.0022890950961498148,3.675871799412574e-5,-4.782371311654076e-8,0.0022890795607725576,3.674100774676719e-5,-4.7804003549630296e-8,0.002289102527511509,3.663093644990813e-5,-4.767785241181172e-8,0.002289196541348638,3.644938070154096e-5,-4.746830614559982e-8,0.0022893851939173337,3.6231636872978196e-5,-4.7215134114218746e-8,0.002289677840039512,3.602331407239086e-5,-4.6970406519053876e-8,0.0022900654708520327,3.58736629553553e-5,-4.679101983320465e-8,0.002290518708418688,3.582634915501503e-5,-4.6728061346799346e-8,0.0022909894789891827,3.590809695929047e-5,-4.681348212371508e-8,0.002291418352774001,3.611712058525191e-5,-4.704638370723802e-8,0.002291748752111823,3.641569025232455e-5,-4.7384109668672996e-8,0.0022919460643483626,3.6733133288591057e-5,-4.774556420547209e-8,0.0022920143328060607,3.6983858880081674e-5,-4.803206329891999e-8,0.002291999814615806,3.7096977477987554e-5,-4.8161604641847836e-8,0.002291975474626928,3.704374634491269e-5,-4.8100515063701843e-8,0.0022920128248449328,3.6846970662485426e-5,-4.787422973248501e-8,0.0022921567275596033,3.656759825553701e-5,-4.7551933742153225e-8,0.0022924155206640656,3.627866505605262e-5,-4.721685937218435e-8,0.0022927669894349093,3.6041857596996885e-5,-4.6939648387720506e-8,0.002293172035520522,3.589533984270876e-5,-4.676448884083824e-8,0.002293587774220062,3.585234950794764e-5,-4.670737294106673e-8,0.00229397625599273,3.5905780732209896e-5,-4.676107434656356e-8,0.0022943087935883965,3.603438248915831e-5,-4.690198432790658e-8,0.0022945674627496593,3.6208248273547327e-5,-4.709625363021303e-8,0.0022947453752612396,3.639309951270794e-5,-4.730469355160464e-8,0.002294846618012875,3.655385217382977e-5,-4.748694572871607e-8,0.0022948859966711527,3.6658142221179055e-5,-4.760561192507473e-8,0.0022948882229804706,3.66802485027254e-5,-4.7630789899419904e-8,0.002294885915277481,3.660536515102313e-5,-4.754496057001509e-8,0.0022949158390162044,3.64335141641052e-5,-4.7347464493291285e-8,0.002295013303258485,3.6181877526743895e-5,-4.705723761896796e-8,0.0022952053707549756,3.5884255428738196e-5,-4.6712359540665154e-8,0.0022955042500871392,3.558678939109289e-5,-4.6365392836542746e-8,0.002295902637857623,3.534001900618766e-5,-4.607449202272132e-8,0.002296372603345501,3.518847407688666e-5,-4.5891531629784525e-8,0.002296868936882388,3.515979486113663e-5,-4.584945571699113e-8,0.002297337100875107,3.525571375908133e-5,-4.595154991513938e-8,0.0022977251112613487,3.54474663309797e-5,-4.6165727461002804e-8,0.002297997511006086,3.567828648084553e-5,-4.642708208073091e-8,0.0022981479038201797,3.587486868504097e-5,-4.665101902295781e-8,0.0022982048890346418,3.59670990491837e-5,-4.6756152857442506e-8,0.0022982264993906746,3.591076706084595e-5,-4.66907281238414e-8,0.00229828244392896,3.570370688981107e-5,-4.645139989864305e-8,0.0022984305793150974,3.538654013029307e-5,-4.6084187811529834e-8,0.002298698613153666,3.502687277549902e-5,-4.5666380520174655e-8,0.0022990791902976694,3.4695334694455384e-5,-4.5279093849930466e-8,0.0022995381727997865,3.4445276278051516e-5,-4.49839970221804e-8,0.002300029218953335,3.430321854904224e-5,-4.4812265883725474e-8,0.0023005071520190556,3.426970567379333e-5,-4.4765358220823394e-8,0.0023009363058259054,3.432593949783263e-5,-4.4822399265362546e-8,0.0023012938617268945,3.444159290053393e-5,-4.494899788620879e-8,0.002301570006953491,3.458126436569647e-5,-4.51046246777301e-8,0.002301766800108603,3.470904311234521e-5,-4.524791553057968e-8,0.002301896888738061,3.479179416047871e-5,-4.534053254240823e-8,0.002301982375857608,3.480208071788327e-5,-4.535057802732492e-8,0.0023020534602801847,3.472142304601621e-5,-4.525634915545079e-8,0.0023021460538406057,3.454404162586172e-5,-4.505063369302154e-8,0.002302297520970304,3.4280415377693827e-5,-4.474483116108385e-8,0.00230254017354546,3.395911142067943e-5,-4.4371164167657605e-8,0.0023028932564570586,3.3624877587848964e-5,-4.398066536436923e-8,0.0023033555964254958,3.333152309155398e-5,-4.3635188638132984e-8,0.0023039020503271127,3.312995217770553e-5,-4.339376844190064e-8,0.002304486385520222,3.305425894193706e-5,-4.329658172175806e-8,0.002305051035348368,3.3110519998397165e-5,-4.335181227808648e-8,0.0023055413708626526,3.3272560571329226e-5,-4.353040435431237e-8,0.0023059202737308734,3.348666573581906e-5,-4.3771124818958763e-8,0.0023061786570983014,3.368428524135492e-5,-4.3994995923487775e-8,0.0023063388048928817,3.379947725797813e-5,-4.412542796611055e-8,0.0023064492323863275,3.378653186463361e-5,-4.410875759920423e-8,0.0023065718780325255,3.363277880294064e-5,-4.392931753536871e-8,0.0023067648430645355,3.336223440573916e-5,-4.361391666217241e-8,0.0023070660644278905,3.302816568314063e-5,-4.322345795297547e-8,0.002307483727852774,3.269679339994018e-5,-4.2834243518091083e-8,0.0023079967124393116,3.242829025455311e-5,-4.2516054578377455e-8,0.002308563857239961,3.2262195589673835e-5,-4.2315205384790976e-8,0.0023091372052619127,3.221149782256434e-5,-4.224750159055635e-8,0.002309673844341424,3.2265073740245427e-5,-4.2300823774791806e-8,0.0023101432068525158,3.239501720334835e-5,-4.244342832539441e-8,0.0023105295861446016,3.256496006872504e-5,-4.2633513685632894e-8,0.0023108314009869526,3.2736917316135974e-5,-4.282717939490637e-8,0.002311059046577513,3.287596311964373e-5,-4.298390962236588e-8,0.0023112325956021447,3.2953249680788354e-5,-4.30701110947523e-8,0.00231137979665109,3.294831861010061e-5,-4.306178209267358e-8,0.0023115340997543143,3.285151044406728e-5,-4.2947275355292e-8,0.0023117319317365243,3.2666777386046935e-5,-4.2730561942988145e-8,0.0023120082445560355,3.241439708027806e-5,-4.243445694518821e-8,0.0023123897136956896,3.213200948149292e-5,-4.210197938273945e-8,0.002312886188388601,3.1871514418046985e-5,-4.179294978549619e-8,0.0023134830361791667,3.168968477884489e-5,-4.157326718028376e-8,0.0023141388246951094,3.163282940214068e-5,-4.149718047268907e-8,0.002314792329840861,3.172005820484998e-5,-4.158778555622238e-8,0.002315378896673669,3.193290371843414e-5,-4.182474929661659e-8,0.0023158505127047306,3.2217740072628357e-5,-4.214680612835947e-8,0.0023161909435828218,3.2501262856054346e-5,-4.2469442360932653e-8,0.002316419671183998,3.271254277366566e-5,-4.27103290681903e-8,0.0023165841921237427,3.2802780436011716e-5,-4.2812247472897776e-8,0.0023167450214273137,3.2756541656388914e-5,-4.275628838705075e-8,0.0023169591271539453,3.259272819167442e-5,-4.256326379538918e-8,0.0023172663812004936,3.2356898186037265e-5,-4.228512778642178e-8,0.0023176817453812227,3.2108186977599e-5,-4.199006993769168e-8,0.002318194185054491,3.1904582986137214e-5,-4.174553762547756e-8,0.00231877176791076,3.1790160014621046e-5,-4.1603324561922454e-8,0.002319371007020906,3.1787119353049104e-5,-4.159008391244041e-8,0.0023199475183516252,3.189400454355314e-5,-4.17049622110272e-8,0.0023204650305293554,3.20894591354611e-5,-4.1923747329153166e-8,0.002320900868517307,3.2339315150879754e-5,-4.220702939293869e-8,0.0023212476092142357,3.260440417190498e-5,-4.2509329097549e-8,0.0023215118356965506,3.284715719192341e-5,-4.278686762213579e-8,0.0023217113982006393,3.3036182323788574e-5,-4.300295310375987e-8,0.002321872364162279,3.314903836216729e-5,-4.313120169100703e-8,0.0023220262092654128,3.3173971066507745e-5,-4.315751282036905e-8,0.002322207158400309,3.311135649858902e-5,-4.3081732272613976e-8,0.0023224491028571363,3.297521373884765e-5,-4.291948491394481e-8,0.002322781228382118,3.279447518776715e-5,-4.270382165655561e-8,0.0023232216822924234,3.261266466520483e-5,-4.248505510679363e-8,0.002323769722566849,3.2483621858754785e-5,-4.2325943183644296e-8,0.002324398904211897,3.2460944922610885e-5,-4.228942774440365e-8,0.002325056179267136,3.258120401470381e-5,-4.241896142727533e-8,0.002325671964702718,3.2846122159074696e-5,-4.271751943685757e-8,0.00232618144268266,3.321386581244003e-5,-4.3137207029593565e-8,0.0023265488268709705,3.36082031220369e-5,-4.3589753742231386e-8,0.0023267814240886583,3.394420957442691e-5,-4.397636855767629e-8,0.0023269254239565483,3.415782391829717e-5,-4.422212158225807e-8,0.002327046906947544,3.422452814123435e-5,-4.429770088385412e-8,0.002327209206277997,3.4160981089080925e-5,-4.422143906155781e-8,0.002327456336525311,3.401357864203633e-5,-4.4046282714445835E-08,0.002327805923589105,3.384194337626255e-5,-4.384093488623098e-8,0.002328250166554385,3.37036441574621e-5,-4.3672328614357636e-8,0.002328761740259225,3.364315089403521e-5,-4.3592791245387643e-8,0.002329301915681379,3.36856352720997e-5,-4.3632602011700155e-8,0.002329829055291661,3.383516729126079e-5,-4.379753708045467e-8,0.0023303062390849644,3.407663050535043e-5,-4.407078165874924e-8,0.0023307070359199853,3.438049828740393e-5,-4.441833484198168e-8,0.0023310187619350036,3.470925636680583e-5,-4.4796515547741785e-8,0.0023312431048083324,3.502410718649536e-5,-4.515990686671555e-8,0.002331394528886721,3.5290797443504604e-5,-4.5468276438613356e-8,0.002331497260081565,3.5483844383961805e-5,-4.569154976787356e-8,0.002331581733856791,3.558904226640621e-5,-4.581270005257149e-8,0.0023316810811048884,3.560465423137779e-5,-4.582909582100883e-8,0.002331827771099224,3.5541816076164474e-5,-4.575300867708182e-8,0.0023320501595354027,3.542447396167401e-5,-4.561169901534009e-8,0.0023323683909373285,3.528871876135906e-5,-4.5446880835164095e-8,0.0023327891822946096,3.51805346933835e-5,-4.531231018055253e-8,0.002333299958278486,3.515015003696038e-5,-4.52672578511267e-8,0.0023338645432176663,3.5241270465413334e-5,-4.5363790266725256e-8,0.002334424562220092,3.5475412457926315e-5,-4.562814505895616e-8,0.0023349112408662287,3.583613212030472e-5,-4.6041947983230845e-8,0.002335268146958933,3.626338247097496e-5,-4.6535418255023436e-8,0.0023354760591965088,3.666773954728629e-5,-4.700402689339779e-8,0.0023355644528050535,3.696270836812873e-5,-4.7346394509497067e-8,0.002335600051392683,3.7098371862978543e-5,-4.75036656435806e-8,0.002335658860810056,3.707695140177438e-5,-4.747763880896117e-8,0.0023357987401432536,3.694435600604198e-5,-4.732093922172631e-8,0.002336045463982361,3.6767616798790464e-5,-4.711093689128459e-8,0.002336393449628172,3.661235323283033e-5,-4.6923808409687194e-8,0.00233681482692482,3.6528212315890726e-5,-4.68177625437056e-8,0.002337270388702322,3.6542959451067806e-5,-4.682607312286444e-8,0.0023377189367930666,3.66625719363429e-5,-4.6956871248297825e-8,0.002338124071548144,3.687450363014641e-5,-4.7196561629315964e-8,0.002338458716826444,3.71523445299233e-5,-4.75149713046986e-8,0.0023387078440758034,3.7461115310449495e-5,-4.787144263559505e-8,0.002338869585723431,3.7762817841687184e-5,-4.822140859107426e-8,0.0023389547817296704,3.802184043837775e-5,-4.852287616148231e-8,0.0023389850485431105,3.820974950563554e-5,-4.87421532200505e-8,0.002338989627065774,3.830895059743735e-5,-4.885815585004515e-8,0.0023390014899789605,3.8314840733578865e-5,-4.8864887051675046e-8,0.002339053227796983,3.823643256374001e-5,-4.8772155817743224e-8,0.0023391730470084114,3.809565596331883e-5,-4.860485990028719e-8,0.002339381007965399,3.7925524692509784e-5,-4.840106376674009e-8,0.0023396854228536312,3.776719520424567e-5,-4.82088209371393e-8,0.0023400793116841023,3.76654727255943e-5,-4.808107898018889e-8,0.002340537481346002,3.766178500501879e-5,-4.8067398459253976e-8,0.0023410160318337752,3.778395059438169e-5,-4.820166978989883e-8,0.0023414571514578423,3.8033753723512084e-5,-4.8487112668261064e-8,0.002341802014567862,3.837655741982126e-5,-4.888372230559299e-8,0.0023420114228051465,3.874102641968516e-5,-4.930783648964436e-8,0.0023420863661792065,3.9036695298684036e-5,-4.965293287954776e-8,0.0023420745217566197,3.918717458210972e-5,-4.982885057806455e-8,0.0023420538209714603,3.91622722916344e-5,-4.9799546790811774e-8,0.0023421004046062298,3.8988852688015025e-5,-4.959573407663678e-8,0.0023422602630217295,3.8734768578304047e-5,-4.9296049457022376e-8,0.0023425391360975905,3.847893082192605e-5,-4.899224673303789e-8,0.0023429102765989336,3.828568044273994e-5,-4.8759531463412606e-8,0.0023433299940436355,3.819251167163617e-5,-4.8642341136861975e-8,0.0023437518655280796,3.8209551159922836e-5,-4.865357708177263e-8,0.0023441359775748295,3.8325147109487965e-5,-4.87807783260245e-8,0.002344453495623456,3.8512988018584136e-5,-4.8994075741131246e-8,0.002344688236531956,3.873852777500904e-5,-4.9253489797137967e-8,0.0023448367420634006,3.896429832747165e-5,-4.951513690495988e-8,0.002344907563344286,3.915445172418351e-5,-4.973668851539436e-8,0.002344919846223446,3.927885131661452e-5,-4.9882338277690744e-8,0.0023449010717055798,3.9316757036171124e-5,-4.992722780668246e-8,0.0023448838074805536,3.925979958184939e-5,-4.986094461349622e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_18.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_18.json new file mode 100644 index 000000000..f46c700e5 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_18.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":18000,"numberOfSamples":1000,"samples":[0.002344901558802442,3.911368303105064e-5,-4.968948981883951e-8,0.002344984132234963,3.8898163040661456e-5,-4.9435280092255396e-8,0.002345153076453194,3.8645137911801235e-5,-4.913505665071581e-8,0.0023454177649364274,3.8394882701718704e-5,-4.883571430956027e-8,0.0023457726182683734,3.8190636084535106e-5,-4.858818570335279e-8,0.0023461958479369647,3.8071833815956895e-5,-4.8439580759263195E-08,0.0023466502566154754,3.806617270836784e-5,-4.8423700396250246e-8,0.0023470871667342188,3.818099295284342e-5,-4.855052067391149e-8,0.0023474547964515697,3.8395736841710905e-5,-4.8796864492445077e-8,0.002347711548848421,3.865908630266998e-5,-4.9102715263344044e-8,0.0023478420825502667,3.889571950044163e-5,-4.937914952780937e-8,0.00234786961391877,3.902607152063935e-5,-4.9531851099022974e-8,0.0023478548636246925,3.899526350333567e-5,-4.949545923878963e-8,0.002347876570857601,3.8797420616696476e-5,-4.926230021920203e-8,0.0023480009856264934,3.8479554435582394e-5,-4.888691218568922e-8,0.002348257394842648,3.81212678497871e-5,-4.8462214576854004e-8,0.0023486326479069406,3.7803093228172886e-5,-4.8082513592352674e-8,0.0023490835964367573,3.75814623825538e-5,-4.781433129307214e-8,0.002349556312825578,3.747939916176964e-5,-4.768549705089819e-8,0.002350001794120482,3.7490379203984336e-5,-4.768944037993623e-8,0.002350384381521822,3.758800212452211e-5,-4.779618621991062e-8,0.0023506841057128985,3.773572437125139e-5,-4.796348785816809e-8,0.0023508956980960788,3.7894232799687954e-5,-4.814536983155262e-8,0.00235102648099269,3.802641740658273e-5,-4.829803528414698e-8,0.002351094173287532,3.810084978765315e-5,-4.838411531070628e-8,0.0023511246964647747,3.8094608924835005e-5,-4.837614007717066e-8,0.0023511496348331447,3.799585924542727e-5,-4.825963731338258e-8,0.0023512029179003826,3.780605403700456e-5,-4.803571540037979e-8,0.002351316493203054,3.754110540847055e-5,-4.772242618165293e-8,0.002351515254331023,3.723065606146325e-5,-4.7353971759481864e-8,0.0023518120205759476,3.6914840723378074e-5,-4.697706960436158e-8,0.0023522036900594134,3.663842066327486e-5,-4.664428486396447e-8,0.0023526697415857454,3.6442835626573675e-5,-4.6404850464569947E-08,0.0023531739492806607,3.635743472275251e-5,-4.629433098034591e-8,0.0023536695969230293,3.639153741844735e-5,-4.632502065598751e-8,0.002354107963028887,3.65290387843179e-5,-4.64791633358682e-8,0.0023544493334192655,3.672744771866113e-5,-4.670739713326941e-8,0.0023546748244885193,3.692340046714689e-5,-4.693502893752279e-8,0.0023547957604870243,3.704596407123413e-5,-4.707779081016492e-8,0.002354855915443392,3.703656572046711e-5,-4.70656375977696e-8,0.0023549223160394474,3.68699978500431e-5,-4.6867843166706427e-8,0.002355064610704272,3.656683381659626e-5,-4.65078344897485e-8,0.002355330456332751,3.6188645949168455e-5,-4.605762360942627e-8,0.0023557290800031,3.581614088997792e-5,-4.561209830788785e-8,0.0023562313149006323,3.552104851024793e-5,-4.525598622392911e-8,0.002356784170343763,3.534573263514571e-5,-4.503985226093692e-8,0.00235733028458666,3.529761527789713e-5,-4.49733843052568e-8,0.002357823000083982,3.535587514723036e-5,-4.503300722505471e-8,0.0023582334607192713,3.548324139112816e-5,-4.517550230472812e-8,0.0023585511399880337,3.5636946080439145e-5,-4.535076312918837e-8,0.002358780962041987,3.577633956909642e-5,-4.551078335076926e-8,0.0023589395842511522,3.5867314155800855e-5,-4.561499749370089e-8,0.002359052080351249,3.588475773629073e-5,-4.563332272362631e-8,0.002359149147828655,3.58142084645814e-5,-4.554820350082022e-8,0.0023592643626533377,3.565335730415486e-5,-4.5356402142557453E-08,0.002359430841246486,3.541339537933329e-5,-4.507057121932486e-8,0.0023596768567981123,3.511952535451973e-5,-4.471987460114685e-8,0.0023600205188522927,3.480948168500788e-5,-4.4348345490610194e-8,0.0023604644698905536,3.452896471445555e-5,-4.400967986329848e-8,0.002360992350010294,3.432364769813786e-5,-4.375798612579386e-8,0.002361569042366369,3.422878850205881e-5,-4.363559641492016e-8,0.0023621460051594665,3.4259012492440044e-5,-4.3660883375380844e-8,0.0023626713616961515,3.440164922381125e-5,-4.3820080092443e-8,0.002363102567048767,3.4616447316981465e-5,-4.4066547053651594e-8,0.002363418276529288,3.484277697645849e-5,-4.432896661511161e-8,0.002363625904080295,3.501331834422755e-5,-4.452741922922826e-8,0.002363762140673494,3.50713100177352e-5,-4.459391491625094e-8,0.0023638851680286292,3.498694287747205e-5,-4.449207573009896e-8,0.0023640594734086117,3.4767688893707976e-5,-4.422967279774819e-8,0.002364337052724743,3.44579776897352e-5,-4.385849503168624e-8,0.0023647414089119547,3.412668761857231e-5,-4.345970698104098e-8,0.002365260922020612,3.3846152104623893e-5,-4.3119075143364176e-8,0.0023658544426327192,3.367093165302294e-5,-4.290180278936738e-8,0.0023664660490979486,3.362478090509265e-5,-4.2836928949552116e-8,0.002367041894211088,3.3699477499923e-5,-4.29156715149733e-8,0.0023675425813141815,3.3863070665591675e-5,-4.3100929149056666e-8,0.002367948361133545,3.407186155979982e-5,-4.334131276515742e-8,0.0023682583104001854,3.4281125480317074e-5,-4.358383945165417e-8,0.002368486347050624,3.4452289918945094e-5,-4.378254145392837e-8,0.002368656569458454,3.455667745010834e-5,-4.3903037676489125e-8,0.002368799213631667,3.457704329979657e-5,-4.39244496666408e-8,0.0023689474323752143,3.450818698611703e-5,-4.384015205758009e-8,0.0023691344170632556,3.4357416482385305e-5,-4.3658308045106786e-8,0.002369390127550806,3.4144946605107745e-5,-4.340234799568976e-8,0.002369737050180081,3.390358038895181e-5,-4.311066755298774e-8,0.0023701849761484078,3.367640314542406e-5,-4.283404275674573e-8,0.002370725808074802,3.351105695568608e-5,-4.262900855450118e-8,0.0023713306372070224,3.344998149691437e-5,-4.254638292238252e-8,0.0023719519724518553,3.351806525291478e-5,-4.261657041710548e-8,0.0023725329401571575,3.371175366291013e-5,-4.283642668257849e-8,0.0023730222295828053,3.3995002702351264e-5,-4.316414308379054e-8,0.002373389973065274,3.430578520129685e-5,-4.3526671192005085e-8,0.0023736381505010734,3.4572328983584834e-5,-4.38388242013889e-8,0.0023738010098588143,3.473355012811767e-5,-4.402752760022938e-8,0.00237393531167498,3.4756315512409036e-5,-4.40524591922618e-8,0.0023741041518875864,3.4643979531241987e-5,-4.391644020525929e-8,0.0023743597715574142,3.443428581685144e-5,-4.366325823519776e-8,0.002374730275263065,3.418808569592938e-5,-4.336456918047751e-8,0.0023752135991477064,3.397259983293269e-5,-4.3100208376556956e-8,0.002375779941817866,3.384415723124978e-5,-4.293768908589405e-8,0.0023763813960745914,3.383531261076801e-5,-4.2916694132470866e-8,0.0023769653178674142,3.394966546843266e-5,-4.304258701004152e-8,0.0023774870203995034,3.416488144273135e-5,-4.3289677344681276e-8,0.002377918235263097,3.444154087954113e-5,-4.3611544323386645e-8,0.0023782499725694506,3.473394751413563e-5,-4.3953871457543554e-8,0.002378490676997382,3.499948400810439e-5,-4.4265690042450136e-8,0.002378661785361829,3.520478219905836e-5,-4.45068771402646e-8,0.0023787927125148967,3.5328684667322306e-5,-4.465179236135274e-8,0.0023789164661922424,3.5362982250262976e-5,-4.4690190041228925e-8,0.002379066168330197,3.531210837114164e-5,-4.462683919511151e-8,0.0023792721073279486,3.519257964256899e-5,-4.448085699607398e-8,0.0023795586569317585,3.50323249823028e-5,-4.4284979324380445e-8,0.0023799404698155602,3.486935159153574e-5,-4.408411931944888e-8,0.00238041786411957,3.4748539855140206e-5,-4.39317205628605e-8,0.0023809723866902452,3.471506365948844e-5,-4.38820214882267e-8,0.0023815649852208134,3.48036933953732e-5,-4.397726798401748e-8,0.0023821401857936045,3.502563195655052e-5,-4.423182507960411e-8,0.0023826385643343764,3.535804096673262e-5,-4.461940477123716e-8,0.002383015549616911,3.574351081297848e-5,-4.507218244911266e-8,0.0023832590121007622,3.610394768843331e-5,-4.549722500288198e-8,0.0023833960729126107,3.6365403192313095e-5,-4.5806082879119395e-8,0.0023834844707587666,3.6482794911242564e-5,-4.594430660481812e-8,0.0023835926131679144,3.6453070353420245e-5,-4.5907232417809996e-8,0.0023837780068744117,3.6312527567923084e-5,-4.573698815443366e-8,0.002384072504190872,3.612228458903607e-5,-4.550549834835012e-8,0.002384477540262076,3.594951747525463e-5,-4.529245938741677e-8,0.0023849679834993427,3.5850894327466484e-5,-4.516576690664186e-8,0.0023855013057676516,3.586164050491832e-5,-4.5168379713013465e-8,0.0023860287687607305,3.599113018920311e-5,-4.5312724744731254e-8,0.002386506003294634,3.6224400739596276e-5,-4.558208417162952e-8,0.0023869010817420566,3.65281921996621e-5,-4.5937482125035984e-8,0.0023871989250919125,3.685955147899608e-5,-4.632784241705567e-8,0.002387401820865755,3.7174763898084735e-5,-4.6700739768763154e-8,0.002387526785819297,3.7436733765039484e-5,-4.701140163670798e-8,0.0023876010849905364,3.761979915266924e-5,-4.7228628272774645e-8,0.00238765727041805,3.771186667545958e-5,-4.733742080218521e-8,0.002387728725155376,3.7714449644070145e-5,-4.7339022820513065e-8,0.0023878460686218663,3.764152424039279e-5,-4.724953688088123e-8,0.002388034216505095,3.751792399775393e-5,-4.709805432518741e-8,0.0023883096269505005,3.7377464417580596e-5,-4.692455759226862e-8,0.002388677274146209,3.726041803036959e-5,-4.677709598428318e-8,0.0023891272588487315,3.720938268477899e-5,-4.6706986835451093e-8,0.0023896319399229,3.7262272101778856e-5,-4.6760418636059854e-8,0.0023901458647094826,3.7441849520893325e-5,-4.696572132812101e-8,0.002390611746871633,3.774354152197786e-5,-4.731844757029362e-8,0.0023909747687158945,3.81269601588696e-5,-4.777091840959034e-8,0.002391202906290385,3.8519192870702565e-5,-4.823603735908806e-8,0.0023913040660786186,3.883476948556154e-5,-4.8611270833999345e-8,0.002391328128732739,3.9006667440986484e-5,-4.881589018117696e-8,0.00239134943562406,3.90124026913742e-5,-4.882222941094568e-8,0.002391438487576229,3.8880411452464615e-5,-4.866331475848319e-8,0.0023916383708005662,3.867507853522781e-5,-4.841510309828039e-8,0.00239195590432241,3.847153998643774e-5,-4.816669872463936e-8,0.0023923668018147257,3.833341819751815e-5,-4.799408876442468e-8,0.002392828007801345,3.830015839190798e-5,-4.794511807386538e-8,0.0023932907590552147,3.8383856123547755e-5,-4.8035481865629606e-8,0.00239371096036409,3.857245714578611e-5,-4.82521178047072e-8,0.0023940559931876475,3.883616405890264e-5,-4.856042818085454e-8,0.0023943082930363074,3.9134985874419545e-5,-4.891304887908877e-8,0.0023944662220829185,3.9426309839536574e-5,-4.925889576057055e-8,0.0023945426540706474,3.967167832740828e-5,-4.955145041930234e-8,0.0023945617795173573,3.984206233309221e-5,-4.975530429415886e-8,0.002394554803373748,3.992121054124771e-5,-4.985033218746083e-8,0.00239455526447015,3.990695202747839e-5,-4.983330111917577e-8,0.002394594661569528,3.9810623353083994e-5,-4.971716322616409e-8,0.0023946988252229935,3.965513390937551e-5,-4.952874150407233e-8,0.0023948850777624304,3.9472259325648355e-5,-4.9305586614794425e-8,0.00239515997526318,3.9299439114975593e-5,-4.909233045733194e-8,0.0023955174021503037,3.9175945382072434e-5,-4.893628682300761e-8,0.002395937007932476,3.9137890421156826e-5,-4.8881533371822775e-8,0.002396383695909191,3.921131979781866e-5,-4.896047917113908e-8,0.0023968099593563576,3.9403258047878505e-5,-4.918277327372618e-8,0.002397163497613983,3.969252739918278e-5,-4.952387416863947e-8,0.0023974015854493413,4.002518309701328e-5,-4.99193026544001e-8,0.002397509675261247,4.0321678158350774e-5,-5.027326909845036e-8,0.0023975151824612907,4.049998955523513e-5,-5.048669925554299e-8,0.0023974844671535013,4.050819106081807e-5,-5.049657166197553e-8,0.002397499090668801,4.034853438152713e-5,-5.0304833087084466e-8,0.0023976229322382613,4.007667775600651e-5,-4.997738881179162e-8,0.002397879519985696,3.977656534145411e-5,-4.96140773901125E-08,0.0023982502957491016,3.9527801939768744e-5,-4.93098968993077e-8,0.002398689129527083,3.938302665345923e-5,-4.912820157919039e-8,0.002399141121851689,3.936112368628708e-5,-4.9092584839070415e-8,0.002399557122870482,3.945190021821551e-5,-4.919217196871091e-8,0.002399901681190261,3.9625470595205126e-5,-4.939240127952472e-8,0.0024001557140803276,3.9841782493496445e-5,-4.9646053324931454e-8,0.00240031603823306,4.0058414074826275e-5,-4.990243651972935e-8,0.0024003933848322214,4.02365269468108e-5,-5.0114610330648764e-8,0.0024004095942288745,4.034539638022784e-5,-5.0245052214989265e-8,0.0024003941453741816,4.0365693589607254e-5,-5.0269831914895396e-8,0.0024003801497172756,4.0291449589680024e-5,-5.018110199371788e-8,0.0024004000531943383,4.013054961443052e-5,-4.9987707246810776e-8,0.0024004814327914467,3.990360304898532e-5,-4.9713797552627094e-8,0.0024006433784475078,3.96412645683471e-5,-4.9395635374628664e-8,0.002400893829350257,3.938038444905259e-5,-4.907710595026679e-8,0.0024012280072063545,3.9159384872200925e-5,-4.88043653842751e-8,0.002401627983789423,3.901309599496099e-5,-4.861979177381442e-8,0.0024020634684160267,3.896712290496793e-5,-4.8555194568685595e-8,0.0024024942344411503,3.903172416614497e-5,-4.862420076639316e-8,0.0024028751869229125,3.919562945854613e-5,-4.881439962151439e-8,0.0024031652429550516,3.942160059336088e-5,-4.908159561584208e-8,0.0024033401183291706,3.964740296327271e-5,-4.9350792145343485e-8,0.002403406122558092,3.9796826052265784e-5,-4.952959530944614e-8,0.0024034075771528214,3.9802695108078196e-5,-4.953626629721684e-8,0.002403418663533099,3.963531471377749e-5,-4.933424264248788e-8,0.002403517483513351,3.9320414167136537e-5,-4.895377104664041e-8,0.00240375400559779,3.893213949475224e-5,-4.848339885001966e-8,0.0024041310350306584,3.856275056172833e-5,-4.803360539427687e-8,0.002404608522803643,3.8287467657906244e-5,-4.7694797328705657e-8,0.002405124618903588,3.814364277978108e-5,-4.7512463896821273e-8,0.002405618526611032,3.812961405164927e-5,-4.748570334517685e-8,0.0024060450436589023,3.821594093326314e-5,-4.7580367143404314e-8,0.002406379515424713,3.8359386346411104e-5,-4.774544974096198e-8,0.0024066165603803674,3.851416440298249e-5,-4.7926337409967924e-8,0.002406766193043988,3.863916072047892e-5,-4.8073452764022304e-8,0.0024068496190933135,3.870200493814187e-5,-4.814731567974312e-8,0.0024068954751543747,3.8681384728337856e-5,-4.812157280049673e-8,0.0024069363302526986,3.8568469741027326e-5,-4.7984907944708237e-8,0.002407005092363638,3.8367620010703626e-5,-4.774197343294295e-8,0.0024071311642991904,3.8096143001373596e-5,-4.741307791637707e-8,0.00240733648448139,3.7782662926820594e-5,-4.703219316231057e-8,0.0024076319591230843,3.746376601902139e-5,-4.664296180742872e-8,0.0024080150100535243,3.717901842199488e-5,-4.629284851707181e-8,0.0024084688627471237,3.6964873105139e-5,-4.6025986316963574e-8,0.002408963950387803,3.684822663195842e-5,-4.587550926484438e-8,0.002409461535231225,3.6840528070730786e-5,-4.585634918576009e-8,0.0024099194289861434,3.6933325176103526e-5,-4.595954827428758e-8,0.002410299639091284,3.709615129870326e-5,-4.6149286023116704e-8,0.0024105775736920194,3.727809719448076e-5,-4.636443290545415e-8,0.0024107515290991625,3.7414947503234764e-5,-4.652707276927955e-8,0.0024108494422053167,3.744332346904537e-5,-4.6559778833502254e-8,0.0024109280582808607,3.732068196771385e-5,-4.641012552830863e-8,0.0024110599588631028,3.704486401008396e-5,-4.6074593882075726e-8,0.0024113092457543352,3.666207745630117e-5,-4.560832165779338e-8,0.0024117058579894443,3.625440453889971e-5,-4.511002792620606e-8,0.00241223320394758,3.590984658345839e-5,-4.468591059086578e-8,0.0024128367433007784,3.569068786073452e-5,-4.4411566261216975e-8,0.002413447167854588,3.561679042361314e-5,-4.431182379727306e-8,0.002414003943390364,3.566857531655897e-5,-4.4364131508880796e-8,0.002414468917828636,3.5802128924618506e-5,-4.45164528407243e-8,0.0024148287689588913,3.596582802687616e-5,-4.4707042649597976e-8,0.0024150906323866994,3.6112294226174406e-5,-4.487876186163635e-8,0.0024152756199526553,3.620466985756144e-5,-4.4986732147043753e-8,0.002415412983422486,3.621886433437632e-5,-4.5001246595991545e-8,0.002415535705571361,3.614384708305006e-5,-4.490832914512481e-8,0.0024156771163272757,3.59813440871689e-5,-4.470949129805716e-8,0.0024158678193869285,3.5745351613970705e-5,-4.442116416614326e-8,0.002416132416351302,3.546120330008051e-5,-4.4073537242749924e-8,0.0024164859220694446,3.516352548830468e-5,-4.370808294460031e-8,0.00241693034169506,3.4892359785693274e-5,-4.337295078484064e-8,0.0024174524408001833,3.468719086143528e-5,-4.3115900098566585e-8,0.002418023930833043,3.457944258321774e-5,-4.2975364635792224e-8,0.002418604957254082,3.4584872568489474e-5,-4.297126534219297e-8,0.002419150952416655,3.469789771516463e-5,-4.30979643194712e-8,0.0024196218300455495,3.48898251884466e-5,-4.3321783064122653e-8,0.0024199916518604678,3.51121471359681e-5,-4.3584618304832864e-8,0.002420256595170644,3.5304987746849386e-5,-4.381393076419317e-8,0.002420439070447764,3.54098460734516e-5,-4.393818240200917e-8,0.002420585972638163,3.5384692412318615e-5,-4.39053621156832e-8,0.0024207596255476035,3.521796937688811e-5,-4.3700303187940916e-8,0.00242102169533141,3.493649672842064e-5,-4.335458114598203e-8,0.0024214136673983418,3.460203389622349e-5,-4.294254391313394e-8,0.0024219412696859064,3.4294397281599166e-5,-4.2560928350924536e-8,0.002422570997871016,3.40859042454751e-5,-4.2297873198728576e-8,0.002423241774708797,3.401825188013031e-5,-4.220478688725671e-8,0.002423886226246646,3.4092534703597756e-5,-4.2284029344064495e-8,0.002424450990286084,3.4275193790697986e-5,-4.2495842308161056e-8,0.002424907897269756,3.4513860089160096e-5,-4.277731373829174e-8,0.002425254646420478,3.475404717614502e-5,-4.306250514379759e-8,0.0024255087764721997,3.495073098604035e-5,-4.329653600382793e-8,0.0024256997145779124,3.5073628211510956e-5,-4.344214009667556e-8,0.0024258619447215263,3.510795400575972e-5,-4.3480765687463235e-8,0.002426030203565686,3.505305808974759e-5,-4.341105272837135e-8,0.0024262362674914877,3.4920608081784176e-5,-4.3246676601309794e-8,0.0024265064422872465,3.473295174654087e-5,-4.3014350394663596e-8,0.0024268589868617334,3.4521461493677566e-5,-4.275180769052857e-8,0.002427301138503399,3.432410975088323e-5,-4.250490759677728e-8,0.0024278260913050916,3.418129571204661e-5,-4.2322676945393295e-8,0.002428411097108386,3.4129280643721544e-5,-4.2249456747169526e-8,0.002429018449007624,3.4191654643649516e-5,-4.231457750259257e-8,0.002429600921945329,3.4370848029145066e-5,-4.2521942446609057e-8,0.002430111852543173,3.464306742421111e-5,-4.284362752322127e-8,0.0024305177078212167,3.4960014332554184e-5,-4.322166147588011e-8,0.0024308089963019476,3.525864256604065e-5,-4.3579634420191055e-8,0.0024310052103568625,3.54768490791095e-5,-4.3841674275576033e-8,0.0024311514832499894,3.5570331945046896e-5,-4.3953026184890535e-8,0.0024313076209347257,3.552531869349453e-5,-4.389576556823521e-8,0.0024315325810961527,3.5363327353876604e-5,-4.369491031447773e-8,0.0024318686265469066,3.513647254223246e-5,-4.341303915546696e-8,0.0024323294873825944,3.491423748049786e-5,-4.3134445579347336e-8,0.002432896167264619,3.476495141289254e-5,-4.294268271529085e-8,0.0024335222309093078,3.4737272570903575e-5,-4.2897907650809233e-8,0.0024341473034816276,3.484777220801906e-5,-4.3021473228785095e-8,0.0024347141143896403,3.5078911481254485e-5,-4.3293103813853885e-8,0.0024351828565165653,3.5387420696509406e-5,-4.3660807647483854e-8,0.0024355382696882246,3.571869639847352e-5,-4.4058284519528546e-8,0.0024357886769330174,3.602113490945862e-5,-4.442243365076725e-8,0.0024359595899447976,3.6255981177570735e-5,-4.470551282002724e-8,0.002436085616257832,3.64014787157889e-5,-4.4880378715262854e-8,0.002436203431207954,3.645261201880796e-5,-4.49403083766768e-8,0.002436346881699283,3.641860110716656e-5,-4.489600455109322e-8,0.0024365439720128446,3.631989439005647e-5,-4.477193408814986e-8,0.002436814886263786,3.618547757967348e-5,-4.460305079373914e-8,0.0024371701965660787,3.605043991849035e-5,-4.443187709405474e-8,0.0024376087810835056,3.5953118153448417e-5,-4.430512313890507e-8,0.002438115638816738,3.593080766479197e-5,-4.42685612060324e-8,0.0024386606910261066,3.601319060175138e-5,-4.43590417894124e-8,0.0024392005329820178,3.621366124796751e-5,-4.459380937231256e-8,0.0024396852406738875,3.652073535771226e-5,-4.495979153559817e-8,0.002440070792536112,3.689393707336404e-5,-4.540830813754903e-8,0.0024403341938348043,3.7269028978704966e-5,-4.586125501539923e-8,0.0024404847869948067,3.757420212930339e-5,-4.6230801286461525e-8,0.0024405649339235085,3.775253295873212e-5,-4.6446847061845124e-8,0.0024406379971211724,3.778108573313487e-5,-4.6480442904616754e-8,0.0024407684360130493,3.7678040163525975e-5,-4.635265130274541e-8,0.002441002576816896,3.749564568269083e-5,-4.6126207922268527e-8,0.0024413569455008703,3.730344562480743e-5,-4.58853778897302e-8,0.0024418164775716804,3.716885726843634e-5,-4.571251766869334e-8,0.002442341086211704,3.7141004685513786e-5,-4.566838003723965e-8,0.002442877339190302,3.72411338432493e-5,-4.5780171769525656e-8,0.002443371731515466,3.746064251142103e-5,-4.603872319654958e-8,0.002443782406429579,3.7766052234272806e-5,-4.640413953378797e-8,0.002444086872764397,3.810893879139721e-5,-4.681768347059421e-8,0.002444284388309687,3.843785498667255e-5,-4.721633349478445e-8,0.002444393232414692,3.8709012326829734e-5,-4.7546011694557105e-8,0.002444444549161754,3.889334328329184e-5,-4.7770454539860257e-8,0.002444475074792687,3.8979187827749855e-5,-4.787468720267451e-8,0.0024445206944451194,3.8971331473534686e-5,-4.7863936944109584e-8,0.0024446118314487707,3.8887888173957045e-5,-4.775982946018779e-8,0.0024447706911564257,3.8756507830295623e-5,-4.7595742185117445e-8,0.002445009754862674,3.861079858955392e-5,-4.741246632391835e-8,0.002445330792627307,3.848709249206566e-5,-4.7254353116952106e-8,0.0024457239072774276,3.84210898084392e-5,-4.7165331531864033e-8,0.002446166646694304,3.844355610942536e-5,-4.71836986496915e-8,0.002446624062616858,3.857428817952799e-5,-4.733464480752854e-8,0.0024470514934107203,3.88144481598043e-5,-4.762062321108293e-8,0.002447402125327943,3.913928762815128e-5,-4.801212199106996e-8,0.0024476400881559847,3.9495739935443694e-5,-4.8444475535150416e-8,0.0024477561339314394,3.981049166716775e-5,-4.8827712071902615e-8,0.002447778077693695,4.001077266348328e-5,-4.9072160123498955e-8,0.0024477670483197492,4.005148747549024e-5,-4.9121840338880554e-8,0.0024477974812433497,3.993465087268592e-5,-4.897832831402965e-8,0.002447929926440992,3.9709268450711776e-5,-4.870064967828901e-8,0.0024481909223161946,3.9451954414470326e-5,-4.838174394154787e-8,0.0024485684783898502,3.923993501418732e-5,-4.811575988446022e-8,0.0024490213965491316,3.9129377699806304e-5,-4.797180052202577e-8,0.0024494948154261892,3.91451644029732e-5,-4.798138431887394e-8,0.002449935069477873,3.928119976470324e-5,-4.8138482471436045e-8,0.002450300397506881,3.9507323269912974e-5,-4.840749035993413e-8,0.0024505668157711494,3.9779044908857327e-5,-4.8734735279841313E-08,0.0024507297637555462,4.004759573096723e-5,-4.906061161920809e-8,0.002450802394303154,4.02688488745371e-5,-4.9330599704006644e-8,0.0024508113644507706,4.0410128173367605e-5,-4.95038655686505e-8,0.002450791125069385,4.0454212555310635e-5,-4.955844487476108e-8,0.0024507778465312773,4.040035570468197e-5,-4.949267054201453e-8,0.0024508040198822152,4.026270069107783e-5,-4.932327950223557e-8,0.0024508944505534447,4.006688255862525e-5,-4.908122347286046e-8,0.0024510638634689867,3.984580917053899e-5,-4.880648823794057e-8,0.00245131584498336,3.963541528939374e-5,-4.854295462312273e-8,0.002451642653661857,3.9470681141633724e-5,-4.833364518839405e-8,0.002452025536044154,3.938176083843848e-5,-4.8216083300638214e-8,0.002452435488543121,3.938977033584164e-5,-4.8217107227132724e-8,0.002452835048062748,3.950174696583605e-5,-4.8346481745672895e-8,0.0024531824507044967,3.970500384005907e-5,-4.858962496972789e-8,0.0024534396241559695,3.9962702831889606e-5,-4.890182990265696e-8,0.0024535843268946146,4.021443150526203e-5,-4.920880941676828e-8,0.002453623652929858,4.0386636134526066e-5,-4.9419622792017125e-8,0.002453601452891794,4.041499005959166e-5,-4.945444695873122e-8,0.0024535904575645672,4.0272043808040254e-5,-4.9278768855135644e-8,0.002453667088416081,3.9984366591700615e-5,-4.892445528448971e-8,0.0024538804961186404,3.9625472135700606e-5,-4.8481018851177726e-8,0.002454234041076148,3.9286627001372286e-5,-4.8059919577965076e-8,0.002454688758937021,3.90430339964667e-5,-4.7753378723272426e-8,0.002455182859858328,3.893307901809375e-5,-4.760913419343073e-8,0.0024556538362148746,3.895585698194267e-5,-4.762729962876685e-8,0.0024560537286482022,3.908100050787737e-5,-4.777201985779246e-8,0.00245635559786168,3.92623565237223e-5,-4.7987768345426784e-8,0.002456553543520675,3.945013089553443e-5,-4.821391608652092e-8,0.002456659304914327,3.9599666210168044e-5,-4.839543997652059e-8,0.002456697551274787,3.9677063676223765e-5,-4.849000855734107e-8,0.002456700822614684,3.966238759049165e-5,-4.847222180997126e-8,0.0024567044573505052,3.9550907364328136e-5,-4.833540821334541e-8,0.0024567417680072287,3.935256550822404e-5,-4.8091109193474636e-8,0.0024568398052084747,3.9089819952275556e-5,-4.776643242859904e-8,0.002457016102034005,3.879409971555748e-5,-4.739964644423014e-8,0.0024572767266246858,3.850135084065896e-5,-4.7034702557923994e-8,0.002457615714144817,3.8247292949526414e-5,-4.671548886753261e-8,0.002458015719767934,3.806281830374309e-5,-4.648030512056859e-8,0.0024584497093368225,3.7969709899505705e-5,-4.6356668032574766e-8,0.0024588835950892117,3.797672416493626e-5,-4.6356402548602995e-8,0.002459280019112911,3.8076035091713856e-5,-4.647098884390965e-8,0.0024596039507214372,3.8240450757803655e-5,-4.666776031810568e-8,0.0024598307142160007,3.842294852242427e-5,-4.68890281670926e-8,0.002459955918353923,3.8561282527527495e-5,-4.7057687283657186e-8,0.0024600044256263562,3.85906258738798e-5,-4.7093002809037085e-8,0.0024600323640595525,3.846469351560399e-5,-4.693699010582562e-8,0.002460115198327215,3.817888591278212e-5,-4.658318142014719e-8,0.0024603211513315733,3.778139333481038e-5,-4.609033001301854e-8,0.0024606816896058582,3.7360118141523624e-5,-4.5566248750844804e-8,0.0024611773581020993,3.700873869629158e-5,-4.5126111329188663e-8,0.0024617480565587665,3.679136890764092e-5,-4.484915535672109e-8,0.0024623194040428297,3.6725241793431914e-5,-4.4757458521259293e-8,0.002462828313114861,3.6785610286324895e-5,-4.4821776764596e-8,0.0024632368323780508,3.692313753770688e-5,-4.49825480110503e-8,0.002463533911415987,3.7081973038857536e-5,-4.517174974987359e-8,0.002463730207416001,3.72123954530806e-5,-4.5328262829285335e-8,0.0024638508339381053,3.727738907944816e-5,-4.540602228952397e-8,0.0024639287406243806,3.725496815222289e-5,-4.537712390347134e-8,0.002463999440178538,3.7138246844026674e-5,-4.523220853693909e-8,0.002464096769834068,3.693441043162565e-5,-4.4979410248424785e-8,0.002464249278477507,3.6662920271676045e-5,-4.464221452771284e-8,0.0024644771058909905,3.6352892349154964e-5,-4.4256185173269244e-8,0.0024647894963774355,3.60394813223482e-5,-4.3864446992286476e-8,0.00246518333004217,3.575928664507124e-5,-4.3512032388348086e-8,0.00246564308966862,3.5545192829730305e-5,-4.323961698689231e-8,0.002466142462746481,3.54212599682058e-5,-4.30773347216381e-8,0.0024666475561435836,3.539825611996659e-5,-4.303928925890125e-8,0.002467121549800276,3.5470424064565755e-5,-4.311941218583528e-8,0.002467530510301026,3.5614038369783264e-5,-4.328936880925462e-8,0.0024678501018424014,3.578830836147025e-5,-4.3499317664747304e-8,0.00246807277205011,3.5939557401127685e-5,-4.368284640476247e-8,0.0024682141340358534,3.6009986170699735e-5,-4.3767824546787344e-8,0.002468315806348312,3.595167953042106e-5,-4.369398422338407e-8,0.002468440719277613,3.574403825458124e-5,-4.343483114258189e-8,0.0024686576285004418,3.5408406295791984e-5,-4.301598790135291e-8,0.002469016756628685,3.5009868675168896e-5,-4.251749277816247e-8,0.002469527016305481,3.4639085816369505e-5,-4.2051331770138575e-8,0.0024701491272457075,3.437918303108398e-5,-4.172053655964463e-8,0.0024708107727132163,3.4275108324639473e-5,-4.1581346163947136e-8,0.0024714349391305145,3.432221330845508e-5,-4.162900742123513e-8,0.0024719649634269477,3.447673339527891e-5,-4.181047415170179e-8,0.0024723756773897968,3.4677347990773343e-5,-4.2050733510056084e-8,0.0024726711706196352,3.486498141779451e-5,-4.227704642717137e-8,0.002472875776800631,3.499457801076819e-5,-4.243345755026598e-8,0.002473024311147267,3.5039164456257024e-5,-4.248596282344877e-8,0.002473154485424879,3.49892258455584e-5,-4.24219893311207e-8,0.0024733018836487117,3.485023256564978e-5,-4.224757508831041e-8,0.0024734966693373177,3.4639859686924084e-5,-4.198405931463602e-8,0.002473761122223743,3.4385249288497285e-5,-4.166470061647262e-8,0.0024741075410927692,3.412005527399114e-5,-4.1330957835760266e-8,0.0024745365035125336,3.388081280598191e-5,-4.1027956557272016e-8,0.0024750358991933777,3.3702298329276224e-5,-4.0798783384882296e-8,0.002475581446443766,3.361205682415149e-5,-4.0677810154140694e-8,0.0024761393094790735,3.362488283309667e-5,-4.068393655070341e-8,0.00247667099923248,3.3738415010136826e-5,-4.081509111115514e-8,0.0024771401592741794,3.393112591255991e-5,-4.104553604679316e-8,0.0024775202300596727,3.4163782098038836e-5,-4.132736396042357e-8,0.0024778015552186553,3.4384841805604154e-5,-4.15968981141725e-8,0.002477996355230064,3.453957481857277e-5,-4.178587242689799e-8,0.002478139925461257,3.4582095835946386e-5,-4.183646089222978e-8,0.0024782863608294597,3.448855008036613e-5,-4.171792894077942e-8,0.002478497599215119,3.426810101996982e-5,-4.1440616533293496e-8,0.002478826423475806,3.3966768621773196e-5,-4.106097101147728e-8,0.002479297655651806,3.365920201414745e-5,-4.067146491268234e-8,0.0024798956470742607,3.3427359889743966e-5,-4.0374142208359564e-8,0.002480566263107198,3.333281657692773e-5,-4.0246164098665086e-8,0.0024812348815230548,3.339569240715765e-5,-4.031349099874403e-8,0.002481832069138389,3.359098154088289e-5,-4.054608293176884e-8,0.0024823140828337882,3.3862509899205475e-5,-4.087496962472572e-8,0.0024826701499891905,3.4144843169478624e-5,-4.121926049669797e-8,0.0024829174589391183,3.438196398751778e-5,-4.150927531351717e-8,0.002483090231395934,3.453716218275256e-5,-4.169890994247633e-8,0.0024832289273681676,3.459479555529096e-5,-4.1768010969739914e-8,0.0024833725099405357,3.455739202683464e-5,-4.171898971311369e-8,0.002483553953461178,3.444130953944551e-5,-4.1571586234288615e-8,0.002483797896582137,3.42726872143246e-5,-4.135789466565913e-8,0.002484119250717028,3.408404982664835e-5,-4.111811949072816e-8,0.0024845220544084173,3.3911157045767064e-5,-4.08966177191401e-8,0.0024849984608592214,3.378942234513219e-5,-4.073744810316272e-8,0.002485528319030998,3.37493393541924e-5,-4.0678740705520224e-8,0.0024860802611576817,3.381090099062003e-5,-4.07458217081001e-8,0.002486615292822404,3.3977887022200906e-5,-4.094410565553709e-8,0.0024870933615432594,3.4233776242617746e-5,-4.1253884823212716e-8,0.0024874822433588704,3.454145160287273e-5,-4.162972775740252e-8,0.0024877666980437367,3.4848325612800404e-5,-4.200659476353093e-8,0.002487954948091704,3.5096872718110185e-5,-4.2312767159825944e-8,0.0024880797904155523,3.523845842873798e-5,-4.248704298833028e-8,0.002488193043039279,3.5246843277377304e-5,-4.249570636640487e-8,0.0024883539592743067,3.512738494103619e-5,-4.234426909230887e-8,0.0024886140602875923,3.49187025600563e-5,-4.207987071532803e-8,0.002489002194927896,3.468515900952789e-5,-4.178219564842183e-8,0.0024895143834379584,3.450085337149065e-5,-4.1543686661381805e-8,0.002490112692358687,3.4428839747837344e-5,-4.144362746866002e-8,0.002490735095733774,3.4502254176917696e-5,-4.152441444489307e-8,0.002491313820334456,3.47148501990305e-5,-4.177943206499539e-8,0.0024917952057646542,3.5025110867509906e-5,-4.21578484386859e-8,0.002492153108185882,3.537166319265242e-5,-4.2583614770799746e-8,0.0024923915653697563,3.569250545655623e-5,-4.297938359576452e-8,0.0024925381077774505,3.594019773552308e-5,-4.328553882965522e-8,0.0024926327298874706,3.608907519420701e-5,-4.346936640882342e-8,0.0024927174854313663,3.6135139860801745e-5,-4.352511605516019e-8,0.0024928293045150462,3.6091731116077385e-5,-4.3468759712982866e-8,0.0024929962078651933,3.598404077227055e-5,-4.3331234070503576e-8,0.002493235828937878,3.584424198247867e-5,-4.315237723752643e-8,0.002493554988497319,3.5707654226319e-5,-4.297612739315671e-8,0.002493949475402431,3.560950550536974e-5,-4.284648196073154e-8,0.002494403814902926,3.558150409860973e-5,-4.2803251027824265e-8,0.0024948914829334063,3.5647523756435825e-5,-4.287670742727347e-8,0.0024953765911673344,3.581825773142045e-5,-4.308089582356996e-8,0.0024958182908375675,3.608573040867354e-5,-4.340666705533066e-8,0.0024961786512342457,3.641986140806195e-5,-4.381718846972339e-8,0.0024964332001036105,3.677013333856981e-5,-4.424981283072611e-8,0.002496580985875428,3.707466125980302e-5,-4.4627260595163124e-8,0.00249664942189288,3.7275972463325826e-5,-4.487730097257107e-8,0.002496690103679088,3.733875515066651e-5,-4.4954995613220536e-8,0.0024967655193018647,3.726250067358835e-5,-4.485864320894178e-8,0.002496931013734003,3.7083456871196986e-5,-4.46324458229267e-8,0.0024972186148263043,3.686490845186074e-5,-4.435466169172905e-8,0.002497628180291189,3.6679510733870065e-5,-4.411582351619956e-8,0.002498128079111284,3.658972340409257e-5,-4.3994441199673844e-8,0.0024986644042137227,3.663208106121771e-5,-4.4037246854020054e-8,0.0024991755753180833,3.680926861936187e-5,-4.4248953740883185e-8,0.002499608064555356,3.709163133072151e-5,-4.459370765840227e-8,0.0024999288144117358,3.742710477725366e-5,-4.500715060851872e-8,0.0025001310412585205,3.775603780312682e-5,-4.5414811573711545e-8,0.0025002324917523817,3.8025992028683344e-5,-4.57506862741052e-8,0.002500267909808244,3.82021913744237e-5,-4.5970516699009e-8,0.0025002791334092648,3.827161818741498e-5,-4.6057156152074936e-8,0.002500306150636883,3.824142696912959e-5,-4.601877616789812e-8,0.002500381023813219,3.813396254515294e-5,-4.588273798227383e-8,0.002500524917925695,3.7980819109320463e-5,-4.5688184530668866e-8,0.002500747387946369,3.781755623906785e-5,-4.547941847511398e-8,0.0025010467943652028,3.7679593748579237e-5,-4.530076608806616e-8,0.002501411000812327,3.759894473403009e-5,-4.5192519652786e-8,0.002501818061535664,3.76010451065458e-5,-4.518700349120371e-8,0.002502237249305373,3.7700983349453346e-5,-4.530383549196263e-8,0.002502631391630373,3.789891117462528e-5,-4.5544060670952407e-8,0.0025029618245448393,3.817544639615828e-5,-4.588418136956523e-8,0.0025031968555852867,3.8489391629367015e-5,-4.6273070203581374e-8,0.002503322900130418,3.878132383082006e-5,-4.6636329847159344e-8,0.0025033544659702643,3.898595666221756e-5,-4.689179674409995e-8,0.0025033366866835474,3.9052160624291637e-5,-4.6974744631872444e-8,0.002503335424761968,3.8963286204251026e-5,-4.686346369928086e-8,0.002503416415545243,3.874697513072474e-5,-4.659163332249408e-8,0.002503622458507168,3.846773122092755e-5,-4.623914977805023e-8,0.0025039595976610314,3.820530008492874e-5,-4.590530882256746e-8,0.002504397631776516,3.802946606966512e-5,-4.5677537488936655e-8,0.002504882299547712,3.798169372682445e-5,-4.560852435839345e-8,0.002505352221421315,3.806826004220745e-5,-4.570743517294879e-8,0.00250575432324309,3.8263797822131395e-5,-4.59439244261933e-8,0.0025060542893460607,3.852145546614233e-5,-4.6260390338084265e-8,0.002506241100184328,3.878568465963214e-5,-4.658768272125083e-8,0.0025063261680084966,3.900454144029845e-5,-4.686046599932783e-8,0.0025063382859264074,3.913932359754488e-5,-4.702948014495108e-8,0.0025063160483484925,3.917014569025023e-5,-4.706882713849625e-8,0.002506299694580531,3.9097007570934184e-5,-4.697758835500036e-8,0.0025063241642786917,3.893705066219002e-5,-4.677655197485161e-8,0.002506414458106024,3.8719469291395064e-5,-4.650187612960767e-8,0.002506583529031959,3.847966713294664e-5,-4.6197729527279165e-8,0.0025068322231723375,3.825390939784268e-5,-4.5909552105830005e-8,0.00250715042643049,3.8075081039815325e-5,-4.5678747389959236e-8,0.002507518671035578,3.79694315028609e-5,-4.553864588391083e-8,0.002507909881434134,3.7953757863868274e-5,-4.551099211154035e-8,0.0025082914429322,3.8032479762118567e-5,-4.560219705504129e-8,0.0025086283062298424,3.819441369790588e-5,-4.5799089344806656e-8,0.002508888222288745,3.8409920504514224e-5,-4.6065065644875405e-8,0.002509049867274366,3.863051042059274e-5,-4.633938175836797e-8,0.002509113004638694,3.879425510226927e-5,-4.654391267553016e-8,0.0025091068429147767,3.883993594289078e-5,-4.6601084959132783e-8,0.0025090898042000585,3.872875934821506e-5,-4.6461387254399373e-8,0.002509134996273683,3.846495952331999e-5,-4.6129379088556667e-8,0.002509303823785431,3.810176136963081e-5,-4.567118163005868e-8,0.0025096206611317003,3.77249340788089e-5,-4.519386918014874e-8,0.0025100635025889603,3.742094334698776e-5,-4.480570179737146e-8,0.0025105750725739227,3.7247279761174246e-5,-4.4579149479260436e-8,0.0025110856597778002,3.721891833235642e-5,-4.4533963341258614e-8,0.0025115347336513087,3.7312355209207396e-5,-4.464198908935113e-8,0.0025118837717088426,3.7479672497395944e-5,-4.4844363555259744e-8,0.0025121197805155586,3.766434463552293e-5,-4.507092241835546e-8,0.0025122524606316582,3.781403239390384e-5,-4.5256039989766344e-8,0.002512308218517646,3.788897265948401e-5,-4.534921710684068e-8,0.002512323198993744,3.7866377431753216e-5,-4.532087455967344e-8,0.0025123364352792246,3.774164049515155e-5,-4.5164209733579505e-8,0.002512383722153255,3.752690440451212e-5,-4.4893662222274306e-8,0.0025124927690744884,3.724752495244522e-5,-4.454058376296237e-8,0.0025126800686300593,3.6937187041074546e-5,-4.4147073781900625e-8,0.002512949640805612,3.663249847498581e-5,-4.3759102263850506e-8,0.0025132935154346414,3.636784559588725e-5,-4.3419995601533096e-8,0.0025136935134270817,3.6171127440481755e-5,-4.3165098457630535e-8,0.002514123766723244,3.606055777639336e-5,-4.301781026749884e-8,0.002514553618955688,3.604231707921164e-5,-4.298663815376317e-8,0.0025149508839445193,3.610876316223164e-5,-4.306282715704458e-8,0.0025152857940081257,3.6237122105096005e-5,-4.321846926867821e-8,0.0025155362609611655,3.6389174493579715e-5,-4.3405830751730746e-8,0.002515694790395706,3.651350376824656e-5,-4.356001367114698e-8,0.002515776049335391,3.6552764092910476e-5,-4.360815615449484e-8,0.0025158217306482694,3.64579617376964e-5,-4.348766977365181e-8,0.002515896936537497,3.620833883698536e-5,-4.317158041654697e-8,0.002516073071847446,3.5828669318152446e-5,-4.269046581534293e-8,0.002516399987719169,3.539060604592482e-5,-4.213413246847748e-8,0.0025168814606322987,3.499021840014745e-5,-4.162331415721513e-8,0.0025174707936113064,3.4710531005774946e-5,-4.126263149227772e-8,0.002518090589616577,3.459078644678115e-5,-4.1102057661954364e-8,0.002518663524727177,3.4618912918017596e-5,-4.112741399925282e-8,0.0025191361740298083,3.474582741761788e-5,-4.1278096176040484e-8,0.0025194875406559848,3.490802432070915e-5,-4.147510457868247e-8,0.002519725292742549,3.504638962014763e-5,-4.16444050552658e-8,0.0025198766141857846,3.5116951628882e-5,-4.173036446018124e-8,0.002519978706172601,3.509468993429849e-5,-4.1700694202266914e-8,0.002520071130482626,3.497310385097045e-5,-4.154621540106111e-8,0.002520190252699242,3.4761794687652565e-5,-4.1278135639874127e-8,0.0025203652372844786,3.448316626617987e-5,-4.092409555262571e-8,0.002520615191656812,3.416849468288395e-5,-4.05232510677893e-8,0.002520947440465501,3.385345763496335e-5,-4.0120551152513905e-8,0.002521357059662189,3.3573332103171066e-5,-3.976057689732734e-8,0.0025218278023055253,3.335822588172072e-5,-3.9481488035551096e-8,0.0025223344083919984,3.3228896480038676e-5,-3.930979257938309e-8,0.0025228460215779803,3.319367073788616e-5,-3.925652251261835e-8,0.0025233303087924958,3.324669892834196e-5,-3.9315015622613785e-8,0.0025237579626117535,3.336760095667987e-5,-3.946031753109398e-8,0.0025241074151963775,3.352256518500154e-5,-3.9650309128366536e-8,0.0025243697315655363,3.366716014331096e-5,-3.982900185191263e-8,0.002524553460207322,3.375163915239177e-5,-3.9933128485974816e-8,0.002524688300114605,3.37298851909107e-5,-3.9903559505638475e-8,0.002524824998114826,3.357240651657453e-5,-3.970202211903166e-8,0.0025250277665400896,3.328120777325597e-5,-3.933021967054159e-8,0.002525356611076024,3.289990453199541e-5,-3.8842803606554595e-8,0.0025258428381231134,3.250914558990305e-5,-3.834160036262284e-8,0.0025264698957574395,3.220189906693548e-5,-3.794432342774024e-8,0.0025271741566565867,3.2047197639093385e-5,-3.773873488953271e-8,0.002527868930050737,3.206296769477658e-5,-3.7748283537389005e-8,0.002528477957775852,3.2214078628227146e-5,-3.792951338789108e-8,0.0025289589671146006,3.243333093220877e-5,-3.8198347470684486e-8,0.002529308244893737,3.2649160481611736e-5,-3.8464834618929027e-8,0.002529551044230285,3.280554245702909e-5,-3.8658136766423037e-8,0.0025297276422903844,3.286996887218826e-5,-3.873662679239773e-8,0.0025298816375502052,3.283279972249427e-5,-3.8687266747971134e-8,0.002530052440279624,3.2702708511500886e-5,-3.852013964263886e-8,0.0025302712732322313,3.250144171865661e-5,-3.8262077101730963E-08,0.002530559210242333,3.22591991158146e-5,-3.7950935413685944e-8,0.002530926148178654,3.2010602838034795e-5,-3.7630466201304596e-8,0.002531370351391248,3.1790798148834993e-5,-3.7345270529438355e-8,0.0025318786907376338,3.1631370951251876e-5,-3.713553615551818e-8,0.0025324279262051433,3.155608559611767e-5,-3.703162366365894e-8,0.0025329874164920214,3.1576901848478516e-5,-3.704907123537745e-8,0.0025335233363896095,3.1691081346079224e-5,-3.71849683887019e-8,0.002534004013295205,3.1880164541897305e-5,-3.741660475396124e-8,0.0025344056658638974,3.211134266810114e-5,-3.770302889521404e-8,0.0025347176716889862,3.234141683476799e-5,-3.798981805268735e-8,0.0025349464931195965,3.25231453918205e-5,-3.821692596727692e-8,0.002535117468766687,3.261356425395861e-5,-3.832919965284332e-8,0.002535273522037362,3.25837585549067e-5,-3.828894828785741e-8,0.0025354694854592633,3.242890013057747e-5,-3.808899818124254e-8,0.0025357608919522735,3.217582413424165e-5,-3.776263794934066e-8,0.002536187666940124,3.1883621764644e-5,-3.738458087106923e-8,0.0025367568259437178,3.1632385404099197e-5,-3.7056717765237276e-8,0.0025374327525164407,3.1499190159307474e-5,-3.687752844703763e-8,0.0025381439662942977,3.152925181564535e-5,-3.690529396896161e-8,0.00253880714969785,3.1717495544648184e-5,-3.7134493175846014e-8,0.002539357012067217,3.201212311537006e-5,-3.7500132915228656e-8,0.002539765928854451,3.233760649167408e-5,-3.79067823651572e-8,0.0025400453147970577,3.2622583246552875e-5,-3.82638918563021e-8,0.0025402331112333227,3.281872156862578e-5,-3.850972952935261e-8,0.002540377487382661,3.290621872055572e-5,-3.8618458257282727e-8,0.002540524155092487,3.288979390474908e-5,-3.8595246105451726e-8,0.0025407093934606078,3.279105867884921e-5,-3.846681028316092e-8,0.002540957537634892,3.2641231271875194e-5,-3.827233474111451e-8,0.002541280815381751,3.247562338960235e-5,-3.805651702208651e-8,0.0025416799467947535,3.232966235413645e-5,-3.786445609457888e-8,0.002542144857740274,3.223562798311164e-5,-3.7737407372711096e-8,0.002542655579590631,3.221938662051105e-5,-3.7708565661377785e-8,0.0025431838362320446,3.229680174430522e-5,-3.779849423590047e-8,0.0025436960054889923,3.247013233511464e-5,-3.8010564296692125e-8,0.00254415790798978,3.272542643389036e-5,-3.8327620226833e-8,0.002544541182956549,3.303226997284184e-5,-3.871155421654684e-8,0.0025448301444755037,3.334704611861932e-5,-3.9107270584671315e-8,0.0025450273211040327,3.3620069672829226e-5,-3.9451574837501164e-8,0.002545155729501141,3.380568399136757e-5,-3.968592063249876e-8,0.002545256556630443,3.387319471601984e-5,-3.977037692107729e-8,0.0025453820443540687,3.3816009067509984e-5,-3.969547432241733e-8,0.002545584452323269,3.365650342624907e-5,-3.948871602576002e-8,0.0025459029162299583,3.344455147949948e-5,-3.9213016496428415e-8,0.0025463510522096334,3.324840420752361e-5,-3.895529090102889e-8,0.002546909232956193,3.3138246514345544e-5,-3.8805530645937213e-8,0.002547525817875957,3.31656565561402e-5,-3.883045961997576e-8,0.002548129745697608,3.334578366524815e-5,-3.9050513834874766e-8,0.002548651901131051,3.3650693689135876e-5,-3.9431034299941284e-8,0.00254904685669721,3.4018656743914485e-5,-3.989388291545174e-8,0.002549305056062235,3.4375770534290136e-5,-4.034493649891447e-8,0.002549450755241978,3.465939649203068e-5,-4.070401123079711e-8,0.0025495291586907494,3.4833241697630345e-5,-4.092420182378461e-8,0.002549590687379239,3.4890489219274215e-5,-4.099602575860678e-8,0.0025496789205144556,3.4848031855415884e-5,-4.0940251920067316e-8,0.0025498244612649898,3.473730209237217e-5,-4.079637327911076e-8,0.0025500436032672657,3.459585033605535e-5,-4.061196445682029e-8,0.002550339547154352,3.4461308211710806e-5,-4.0434988555481746e-8,0.0025507043433619027,3.4367523260307965e-5,-4.030880973480197e-8,0.0025511206731693597,3.4341897944161364e-5,-4.0268729945377805e-8,0.002551563424104876,3.4402972367080165e-5,-4.03388608138628e-8,0.002552001606617659,3.4557690980306746e-5,-4.0528610973922175e-8,0.002552401461273141,3.479848664498499e-5,-4.082892216673805e-8,0.0025527314827823774,3.510120673609544e-5,-4.120952912256527e-8,0.002552969364218686,3.542565410114826e-5,-4.161951137566323e-8,0.0025531095580215266,3.572058968524942e-5,-4.19935413975739e-8,0.002553168729760865,3.59339104478195e-5,-4.226480110017664e-8,0.0025531858573809097,3.602631744383978e-5,-4.238244913932361e-8,0.0025532150611217693,3.598419299693054e-5,-4.232817322961466e-8,0.002553312233386756,3.582648549097322e-5,-4.212517282076237e-8,0.0025535195183206613,3.560220174300033e-5,-4.1835212060668614e-8,0.002553852830502855,3.537869695525301e-5,-4.15439349344679e-8,0.0025542964378125308,3.5224255096316406e-5,-4.133880357556166e-8,0.002554806195557747,3.519005643611671e-5,-4.1286055750094206e-8,0.002555320571266334,3.5296537354939525e-5,-4.141303722830442e-8,0.0025557766128750385,3.552799805828805e-5,-4.170091750744843e-8,0.002556126465171574,3.583732608559857e-5,-4.209034923582469e-8,0.002556349360987087,3.615973932622834e-5,-4.249882289419115e-8,0.0025564551410904254,3.6431100822784126e-5,-4.284408179364047e-8,0.0025564785276809823,3.6604393384032696e-5,-4.306534222497807e-8,0.002556467160589559,3.6658984478097046e-5,-4.3135357610844236e-8,0.002556468510402671,3.660096821231846e-5,-4.306106582894111e-8,0.0025565200544311623,3.645675748916501e-5,-4.28755593884766e-8,0.0025566445046864778,3.626394236750845e-5,-4.262649174123844e-8,0.0025568493925952245,3.606285126280341e-5,-4.236530656389189e-8,0.002557129168848333,3.589047078361781e-5,-4.213942711868888e-8,0.0025574680949682657,3.5776750212926264e-5,-4.1987475893609535e-8,0.0025578429268030643,3.574244515459497e-5,-4.193647233080398e-8,0.002558225197975276,3.579750560221392e-5,-4.1999734310573656e-8,0.0025585835602312756,3.593934241195524e-5,-4.217460204810126e-8,0.002558887016647417,3.61509584570488e-5,-4.2439939751589254e-8,0.0025591098618594843,3.639984373749989e-5,-4.2754572922321514e-8,0.002559238497448476,3.663948624180955e-5,-4.305908526809104e-8,0.002559278835866122,3.6815737799850185e-5,-4.3283910146574906e-8,0.002559261046831353,3.68791601038681e-5,-4.336518833602966e-8,0.0025592372774527606,3.680125222475687e-5,-4.3265665007869605e-8,0.0025592697003744484,3.658826729490232e-5,-4.299250430234186e-8,0.0025594113266689754,3.6284623802832374e-5,-4.260177686092147e-8,0.0025596874257284618,3.596177093402923e-5,-4.218437109225698e-8,0.0025600863540812774,3.569620677368294e-5,-4.183807532178788e-8,0.002560563687246403,3.554623400075656e-5,-4.1637989758230514e-8,0.002561056690233244,3.553661609585996e-5,-4.161684553067492e-8,0.0025615023865055877,3.565507989845713e-5,-4.176023644906828e-8,0.002561853048804872,3.585927599621287e-5,-4.20151041647804e-8,0.0025620856129585094,3.6090108860365954e-5,-4.230643641429664e-8,0.0025622040446008454,3.628699041834416e-5,-4.255663518033421e-8,0.0025622353918832905,3.6401300490328786e-5,-4.270283147309331e-8,0.0025622213473997326,3.6405401558346106e-5,-4.2708678956345274e-8,0.0025622078408738705,3.6295813489391095e-5,-4.256872173084837e-8,0.0025622353848293975,3.609068615788058e-5,-4.230540259760305e-8,0.00256233232102081,3.582322550250386e-5,-4.1960772840867707e-8,0.002562511863801732,3.553353735483984e-5,-4.158605612885912e-8,0.0025627725248878294,3.526111693837438e-5,-4.123196242121757e-8,0.00256310070883618,3.503928727808233e-5,-4.0941482037820396e-8,0.0025634741471409566,3.4891828381175004e-5,-4.074551346356165e-8,0.002563865248603042,3.483125361276283e-5,-4.066063228427299e-8,0.002564244075042713,3.4857926898380974e-5,-4.068793102758481e-8,0.002564581202623444,3.495942454822687e-5,-4.0812119542659516e-8,0.00256485109943431,3.5110048036088305e-5,-4.100075191629571e-8,0.0025650367242128005,3.527118210779312e-5,-4.120451556732618e-8,0.002565135498337338,3.539413055019303e-5,-4.136076151439963e-8,0.0025651654120114266,3.5427525351978796e-5,-4.1403038721833427e-8,0.0025651680412939974,3.533045146974794e-5,-4.127809559426407e-8,0.0025652038004362098,3.508913423679075e-5,-4.096749224333056e-8,0.0025653363340437958,3.472992631684516e-5,-4.050439181559414e-8,0.0025656093621240807,3.431861032240273e-5,-3.997271395936973e-8,0.0025660270415399614,3.394124366569468e-5,-3.9482630402027894e-8,0.0025665499166005316,3.367374522340637e-5,-3.913169321930131e-8,0.0025671094737676993,3.3555941288687166e-5,-3.8971649823626466e-8,0.0025676326398133926,3.358238507761676e-5,-3.899658257921173e-8,0.00256806353887396,3.3710715096302974e-5,-3.915332696323073e-8,0.0025683748955028416,3.387946611070678e-5,-3.936392740831083e-8,0.0025685688159335627,3.402630843529469e-5,-3.954873741392243e-8,0.0025686706264498697,3.410151913115822e-5,-3.96436201055269e-8,0.002568719735740128,3.4075375284090386e-5,-3.9609586863852165e-8,0.0025687602388208127,3.3940249039981586e-5,-3.9435794394587893e-8,0.002568832735617296,3.370870760914346e-5,-3.913743671001868e-8,0.0025689681542897694,3.340879250968684e-5,-3.874991257803349e-8,0.0025691840551694215,3.307763210742136e-5,-3.832068947589197e-8,0.002569483538443005,3.275462578485857e-5,-3.790047634512565e-8,0.00256985645494049,3.2475309573827486e-5,-3.753521316052912e-8,0.0025702822795653883,3.226668899010827e-5,-3.725997236190257e-8,0.002570733820216625,3.214437650152126e-5,-3.70952464417701e-8,0.002571181033117111,3.211133565934368e-5,-3.70453424363933e-8,0.0025715946013054125,3.215772517602418e-5,-3.7098167201791944e-8,0.002571949318347555,3.226144137496881e-5,-3.722583343084536e-8,0.002572227570996682,3.2389277195387017e-5,-3.738598474604562e-8,0.0025724233208959243,3.249913626791757e-5,-3.752447594345222e-8,0.002572546572517723,3.2544481248383096e-5,-3.7581027423136185e-8,0.002572627105263867,3.248253008845186e-5,-3.7499865346558056e-8,0.0025727146254667485,3.2286766565557764e-5,-3.7246045798024494e-8,0.0025728713746888203,3.196144702345607e-5,-3.6824362906102526e-8,0.0025731546573224077,3.1551122395760685e-5,-3.6291732875808416e-8,0.0025735930611439093,3.113531128318894e-5,-3.5750349486020505e-8,0.0025741686669498156,3.080383281342957e-5,-3.5315932671875985e-8,0.002574818793527538,3.0622158898999846e-5,-3.5073179334983326e-8,0.002575459250901792,3.0606384083367444e-5,-3.5043561582390667e-8,0.0025760157713347175,3.072183306088944e-5,-3.518340880366333e-8,0.0025764462366678763,3.0902486165110045e-5,-3.5408643786040035e-8,0.0025767458975593516,3.107681621716422e-5,-3.562773879707096e-8,0.0025769394739584782,3.118739906047621e-5,-3.5766760816977004e-8,0.0025770682803444704,3.12001551469743e-5,-3.5781267605868635e-8,0.0025771782767451306,3.110525759781823e-5,-3.565767914468704e-8,0.0025773113662062915,3.091339865537416e-5,-3.540879179965687e-8,0.0025774999609862632,3.065026064735654e-5,-3.5066958787603745e-8,0.0025777640357551542,3.035060945700293e-5,-3.4676643389330934e-8,0.002578110043284982,3.0052507451921462e-5,-3.428694627394564e-8,0.002578531397055513,2.9791926281541815e-5,-3.3944523195161236e-8,0.0025790103290381297,2.9598057935518227e-5,-3.368738209113566e-8,0.0025795209096909134,2.948965519446499e-5,-3.354007538112134e-8,0.002580032896739608,2.94727630782897e-5,-3.351077440578792e-8,0.0025805159234916397,2.954000878094914e-5,-3.3590389005577315e-8,0.002580943592558336,2.9671294779383406e-5,-3.375345201478358e-8,0.0025812972568394475,2.983567962877638e-5,-3.3960441519085414e-8,0.002581569412426488,2.9994385199715056e-5,-3.416148972868799e-8,0.002581766674986788,3.0105076417356167e-5,-3.430175679860849e-8,0.0025819120683374308,3.0127919994288804e-5,-3.4329229444587715e-8,0.002582045519993052,3.0034048227300084e-5,-3.420579656011638e-8,0.0025822203949664234,2.9816100977510195e-5,-3.392112802616561e-8,0.002582493526172687,2.9498181435378302e-5,-3.3505790908997055e-8,0.0025829078467866826,2.913934269067586e-5,-3.3035889417979293e-8,0.002583471922975573,2.8823154006253027e-5,-3.261957918279001e-8,0.0025841475821974037,2.8630944686295138e-5,-3.236241863773583e-8,0.0025848575009842015,2.860875020177161e-5,-3.23245690882075e-8,0.0025855132051104206,2.8747336224273945e-5,-3.249487409873808e-8,0.0025860483870083825,2.898840096044825e-5,-3.279872884323055e-8,0.0025864386289602428,2.925160284354101e-5,-3.31328354281292e-8,0.0025867003344974215,2.9464434140691195e-5,-3.340364643567008e-8,0.0025868758817611977,2.9580498213838604e-5,-3.355089908895895e-8,0.0025870163518221215,2.958356532888121e-5,-3.3552916689574256e-8,0.00258716874146591,2.948254760991543e-5,-3.342033057128494e-8,0.0025873690254704456,2.930331685653275e-5,-3.31857940505852e-8,0.0025876396104315717,2.908092911135896e-5,-3.289416461028243e-8,0.0025879892061104566,2.88534249664018e-5,-3.259456856612757e-8,0.0025884138089266786,2.8656989162023898e-5,-3.2334059412977954e-8,0.002588898359017111,2.8521979692271508e-5,-3.215231454490244e-8,0.002589419062272378,2.8469586189780088e-5,-3.2077164254932806e-8,0.002589946473323683,2.8509159090307877e-5,-3.212107523599057e-8,0.002590449393316276,2.8636563050092073e-5,-3.227904091415366e-8,0.002590899361197364,2.8834057391279875e-5,-3.2528461699677137e-8,0.00259127520629838,2.9071975778584452e-5,-3.2831291645010475e-8,0.0025915670649930126,2.9312176621478835e-5,-3.313838678718475e-8,0.0025917793326626975,2.951309804139549e-5,-3.33958896106978e-8,0.0025919320721802777,2.96361235160836e-5,-3.355336698452127e-8,0.002592060388232209,2.9652876016196784e-5,-3.357329612354791e-8,0.0025922110409532205,2.9552949250428954e-5,-3.344128213388367e-8,0.0025924352611730508,2.9350891816452204e-5,-3.3175402893513874e-8,0.0025927770732672843,2.908978789339379e-5,-3.2831114881942346e-8,0.0025932582302109035,2.8837351096213648e-5,-3.2496316807290324e-8,0.0025938644424488276,2.8670845449783314e-5,-3.2271752176790486e-8,0.00259454130569729,2.8651787572331885e-5,-3.223802204062918e-8,0.0025952073153012044,2.880006435961552e-5,-3.242178048536644e-8,0.0025957820237779284,2.9082752023308125e-5,-3.2781025144444316e-8,0.002596215451355888,2.942669394122801e-5,-3.3221292787055197e-8,0.0025965024447693404,2.9748129367640864e-5,-3.3634051131772567e-8,0.0025966765282158253,2.998185229157122e-5,-3.3934507817174133e-8,0.002596791242167228,3.009622528063916e-5,-3.408109516064842e-8,0.0025969011572768027,3.0092558261656323e-5,-3.4074756512656124e-8,0.002597049688176753,2.9995632087270322e-5,-3.3946851949197073e-8,0.0025972643186138377,2.9842572236855614e-5,-3.3744958806311066e-8,0.002597556681278304,2.9673938276303314e-5,-3.3521470462183287e-8,0.002597924726275709,2.9527819877394803e-5,-3.332595043754231e-8,0.0025983552864050196,2.9436122490796813e-5,-3.320019805897644e-8,0.002598826556628034,2.9421965307062316e-5,-3.3174709416024415e-8,0.0025993106853013,2.949756098639174e-5,-3.32658027069346e-8,0.002599776848353735,2.9662467082486734e-5,-3.347330412600232e-8,0.0026001951252648077,2.99025861685836e-5,-3.377926073172787e-8,0.0026005411717937273,3.019067108816419e-5,-3.414860105393843e-8,0.002600801115884702,3.048904747005782e-5,-3.453261736501532e-8,0.0026009756449572323,3.075479964565841e-5,-3.487558988314453e-8,0.0026010821201373643,3.094704699047445e-5,-3.512412559281178e-8,0.0026011537374556978,3.103526998712179e-5,-3.523794137373505e-8,0.0026012352359606815,3.100711111394474e-5,-3.52001023446636e-8,0.0026013752640351045,3.08739211784446e-5,-3.5024463414013454e-8,0.0026016160874248713,3.0672358090410115e-5,-3.475804093991398e-8,0.0026019820559800674,3.0460335902351476e-5,-3.447598865451195e-8,0.0026024694362678106,3.0306029731080202e-5,-3.4267389520307465e-8,0.0026030416290290835,3.0270338541856285e-5,-3.421233572704718e-8,0.0026036342474958208,3.0386657894908002e-5,-3.435533680675956e-8,0.0026041720030882468,3.064594194570206e-5,-3.4685549028801975e-8,0.0026045930310347977,3.09961293659131e-5,-3.513578419828963e-8,0.0026048698621258057,3.1359222083486464e-5,-3.560466452625087e-8,0.002605016277847952,3.165875436058266e-5,-3.5992435719287957e-8,0.0026050775582436726,3.1843809880593544e-5,-3.623231983185307e-8,0.0026051114117463955,3.1899280024474e-5,-3.630395313793583e-8,0.0026051700508598736,3.184180085895025e-5,-3.622821835659225e-8,0.0026052897100294578,3.1707923332180516e-5,-3.605202198717156e-8,0.0026054879335475844,3.154166996092474e-5,-3.5832271992857454e-8,0.0026057657097087847,3.138536625159791e-5,-3.5624031184444675e-8,0.0026061113393798714,3.1274330301516524e-5,-3.5473569113068227e-8,0.0026065041725679677,3.123426843754492e-5,-3.5414846395313414e-8,0.0026069176827509784,3.127995084377525e-5,-3.54676479866181e-8,0.0026073221793504135,3.141424395457776e-5,-3.563622226078849e-8,0.002607687760832499,3.162725534231478e-5,-3.590812143263662e-8,0.002607988052610515,3.189600175406857e-5,-3.6253749808592313e-8,0.0026082048747776295,3.218555030603266e-5,-3.662781876104157e-8,0.0026083332526672066,3.2452725750126513e-5,-3.697411627683993e-8,0.0026083853531278017,3.265297934002162e-5,-3.72343878712858e-8,0.0026083914259650088,3.2749867670578894e-5,-3.736065308576354e-8,0.002608396133617845,3.272507890931113e-5,-3.732831038939484e-8,0.0026084499787289036,3.258582024132688e-5,-3.714589715717855e-8,0.0026085974212649975,3.236651424287259e-5,-3.6857515677651e-8,0.0026088647679620098,3.2123260707560836e-5,-3.65358635683691e-8,0.002609251366434725,3.1921661831404596e-5,-3.6266559361749115e-8,0.0026097270315835943,3.182058662536569e-5,-3.612701970627575e-8,0.002610237284691165,3.185588171012813e-5,-3.6165054551592994e-8,0.002610716126815699,3.202876234196642e-5,-3.6383392719986345e-8,0.0026111037028992033,3.23033372673764e-5,-3.6736088564341154e-8,0.0026113636304113436,3.261570097552551e-5,-3.714014721843922e-8,0.002611493434829786,3.2892780986458314e-5,-3.750008482171149e-8,0.002611523495367077,3.307418573417459e-5,-3.7736560791061143E-08,0.002611505142783382,3.312826382278772e-5,-3.780750968567028e-8,0.002611493763715752,3.3056708359165294e-5,-3.771431792722278e-8,0.0026115341933477952,3.2888214172239555e-5,-3.749370515848177e-8,0.0026116528511147953,3.266635873779777e-5,-3.7202054725746606e-8,0.0026118568135878677,3.2437504850753895e-5,-3.6899719726700316e-8,0.0026121372770168093,3.22421675305727e-5,-3.663975855845446e-8,0.0026124744813415092,3.2110441667230555e-5,-3.646188211570326e-8,0.002612842227916604,3.206036322123708e-5,-3.639018811094762e-8,0.00261321139785924,3.2097696128144984e-5,-3.64327692480781e-8,0.00261355274464152,3.2216066114155835e-5,-3.658181139714531e-8,0.0026138396427348816,3.2397063044748426e-5,-3.681367790345908e-8,0.0026140514872013475,3.261067171343822e-5,-3.708942654441659e-8,0.0026141780311365196,3.2817050683532635e-5,-3.7357080590710184e-8,0.002614224114800926,3.297101014117252e-5,-3.7557436147006555e-8,0.002614213119889088,3.303013696291152e-5,-3.7634673802280204e-8,0.002614186549965068,3.296599359632987e-5,-3.755103806085695e-8,0.0026141973753741167,3.277534783937561e-5,-3.7301599143301795e-8,0.002614297046902401,3.248635183237581e-5,-3.69224435741917e-8,0.0026145197475576695,3.215508644569542e-5,-3.648630993783964e-8,0.002614870090159904,3.185171140863245e-5,-3.608467312200419e-8,0.0026153197674543857,3.164059402548646e-5,-3.5801927989370486e-8,0.0026158147703580206,3.156177686629293e-5,-3.569118447274441e-8,0.0026162903077401106,3.1620210993565046e-5,-3.5760006489734524e-8,0.0026166880991987354,3.1785560398102544e-5,-3.5969814749259693e-8,0.002616970841721617,3.200160523740788e-5,-3.624783231824479e-8,0.002617130261397801,3.220181753315225e-5,-3.65072435138508e-8,0.0026171871606737534,3.232655585316976e-5,-3.6669675925902054e-8,0.00261718397046602,3.233719347395405e-5,-3.6683842036219965e-8,0.0026171724016019787,3.222347506708292e-5,-3.6535405177033614e-8,0.0026172002283405987,3.200264024737339e-5,-3.624607593524087e-8,0.0026173011810684,3.171173130676567e-5,-3.586373455846947e-8,0.0026174902392406083,3.139662825485608e-5,-3.544818102047367e-8,0.0026177642440258567,3.110164755113335e-5,-3.5057518398642445e-8,0.0026181060091383474,3.086218416322592e-5,-3.4738433135395185e-8,0.0026184896650506663,3.070099873181416e-5,-3.452121062024481e-8,0.0026188855768160607,3.062736487635263e-5,-3.441851050195791e-8,0.0026192641644238587,3.063776642104189e-5,-3.44262138034998e-8,0.0026195987827379364,3.071705603650061e-5,-3.452490184616867e-8,0.0026198682621240295,3.083960982102611e-5,-3.4681327174304134e-8,0.0026200597799300902,3.0970713580179304e-5,-3.485016751422272e-8,0.0026201724252346513,3.106906901777973e-5,-3.497724556731821e-8,0.002620221032692184,3.1091763777759243e-5,-3.500601824118333e-8,0.0026202386178564006,3.10028288611161e-5,-3.4888839501679675e-8,0.0026202745150329704,3.0784947027866455e-5,-3.4602410900141006e-8,0.0026203852922867623,3.0450819216758257e-5,-3.416279062923851e-8,0.002620618265425924,3.0047622079189514e-5,-3.363132109745287e-8,0.002620992870319827,2.9648323815135033e-5,-3.31033303947174e-8,0.0026214894619416536,2.932979763141325e-5,-3.267956343422445e-8,0.0026220531242507274,2.9146566799369495e-5,-3.2431878766493014e-8,0.002622611657445149,2.9112958080091928e-5,-3.237984681690709e-8,0.0026230987533740094,2.9201352737337322e-5,-3.248826516711856e-8,0.0026234720422993033,2.935474709537481e-5,-3.268331002587069e-8,0.002623720696604966,2.950580934218716e-5,-3.28772184813543e-8,0.002623863141320352,2.9594733190630928e-5,-3.2991532941629956e-8,0.002623938403472255,2.9581523567624585e-5,-3.2973239176112444e-8,0.0026239948751797743,2.945153944445875e-5,-3.280223748832211e-8,0.002624079352158989,2.9214975075539966e-5,-3.249095709508292e-8,0.0026242282334253994,2.8901697565596798e-5,-3.207786296841002e-8,0.0026244620668671175,2.855315053807396e-5,-3.161700102240202e-8,0.0026247839524003213,2.821331655109691e-5,-3.116615430893701e-8,0.0026251814438661785,2.7920728883389294e-5,-3.077624804492969e-8,0.002625630821426735,2.770290261143587e-5,-3.048387523980967e-8,0.0026261023194173497,2.7573621615054672e-5,-3.030759911853844e-8,0.0026265650867071107,2.753272069170523e-5,-3.024760371638935e-8,0.0026269911754542366,2.7567495629662442e-5,-3.0287542037181364e-8,0.0026273585031503107,2.7654808956776647e-5,-3.0397305793839284e-8,0.0026276531846827346,2.776337289842733e-5,-3.0535989704684127e-8,0.0026278717322375995,2.785627661607388e-5,-3.0655133830369624e-8,0.0026280234298139303,2.7894361322732897e-5,-3.0703083939648824e-8,0.0026281325803872136,2.7841478039741167e-5,-3.063189326845691e-8,0.0026282392000712505,2.7672557297109677e-5,-3.040802070948686e-8,0.0026283955437060506,2.7384085700415085e-5,-3.002625965469175e-8,0.00262865565196701,2.700371371201096e-5,-2.9522515841626875e-8,0.002629057605315128,2.6592301817640855e-5,-2.897657699704715e-8,0.0026296042239974493,2.623136467768682e-5,-2.8495630917078668e-8,0.0026302538309996223,2.599585843503772e-5,-2.8178505464655922e-8,0.002630930614107705,2.5924188462011436e-5,-2.807623809106079e-8,0.0026315519205043305,2.6002942441934412e-5,-2.8171931342658712e-8,0.002632057542513618,2.6175113742488016e-5,-2.8391396121084223e-8,0.0026324258329257447,2.6364726212698507e-5,-2.8635308308118833e-8,0.002632672462723894,2.6502714775448774e-5,-2.881304110057633e-8,0.0026328380412312087,2.6543357889184606e-5,-2.8864178132588297e-8,0.0026329731241864014,2.6469411774491017e-5,-2.8765333495100423e-8,0.0026331258609140727,2.6289281768524357e-5,-2.852665947748336e-8,0.0026333338989213834,2.6030282261764095e-5,-2.8183285436663457e-8,0.002633620171689503,2.573080090149753e-5,-2.7785262712895203e-8,0.002633991642655656,2.5432731091922993e-5,-2.7387706234444074e-8,0.0026344403222787766,2.517473880061446e-5,-2.7041855038120544e-8,0.002634946113457011,2.498684705051351e-5,-2.6787753182580472e-8,0.0026354809501950237,2.4886802821856877e-5,-2.6649271729928865e-8,0.0026360135612485953,2.487845151655501e-5,-2.66318567861711e-8,0.0026365141657436557,2.4952076373098923e-5,-2.672296922722169e-8,0.002636958487571637,2.508635806998142e-5,-2.6894714182866534e-8,0.002637330770592852,2.5251345857424093e-5,-2.7107782135658014e-8,0.0026376258574601534,2.541191401004594e-5,-2.731596108184508e-8,0.002637850566159729,2.5531539580490765e-5,-2.747102088376633e-8,0.002638024527826738,2.557660264320669e-5,-2.7528304916922454e-8,0.0026381802741849004,2.552172015255805e-5,-2.7453780860784707e-8,0.0026383615500640014,2.535654692073106e-5,-2.7233147342018143e-8,0.0026386179885873363,2.5093413410281484e-5,-2.6882116638732477e-8,0.002638994289794082,2.4773009859853065e-5,-2.6454097522886618e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_19.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_19.json new file mode 100644 index 000000000..270577e9a --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_19.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":19000,"numberOfSamples":1000,"samples":[0.00263951402096563,2.446275040491078e-5,-2.6038117688221015e-8,0.0026401631724560673,2.4241976200195275e-5,-2.5739261712150362e-8,0.002640884349598046,2.417407411008679e-5,-2.5641764129475454e-8,0.0026415912918163185,2.4277459627606698e-5,-2.577057311285661e-8,0.0026422007751247287,2.4514250198517228e-5,-2.6076268743377622e-8,0.002642664329828072,2.4806135401016956e-5,-2.6455914313675208e-8,0.002642981408758501,2.5067420523334124e-5,-2.6796599674782414e-8,0.0026431902581784475,2.523476738670862e-5,-2.701462116287926e-8,0.0026433473077564114,2.5280434293348607e-5,-2.707291191164421e-8,0.0026435080278592402,2.5209814035850336e-5,-2.6977864625794997e-8,0.0026437153058168224,2.5051197769627946e-5,-2.6766036632474325e-8,0.002643995008250455,2.4844553414124373e-5,-2.6489610125027892e-8,0.002644356096346505,2.4632482174508258e-5,-2.6204648569688263e-8,0.002644792866933108,2.4453878979516923e-5,-2.5962750928942762e-8,0.002645287958825506,2.433962413644026e-5,-2.580522022561437e-8,0.0026458157625529125,2.4309628109960647e-5,-2.5758941317575327e-8,0.00264634623063722,2.4371028134717308e-5,-2.5833817493889664e-8,0.0026468490048528843,2.4517626043978552e-5,-2.6021955503015233e-8,0.002647297629221693,2.473075415894809e-5,-2.629884122598041e-8,0.002647673419069512,2.498168300232041e-5,-2.6626587976528904e-8,0.0026479684516871804,2.5235364563765828e-5,-2.6958906132239313e-8,0.0026481873145099825,2.54550480044092e-5,-2.724714977923732e-8,0.0026483474854581976,2.5607329200806667e-5,-2.744689859121178e-8,0.002648478321749667,2.5667306663201197e-5,-2.7524725198145248e-8,0.002648618565417001,2.562364143904652e-5,-2.746495256788262e-8,0.002648811933829168,2.548331398325493e-5,-2.7276137128600436e-8,0.002649099993304903,2.5275225022656478e-5,-2.6996080239347117e-8,0.0026495118344468096,2.5050470037239995e-5,-2.6692385337925312e-8,0.0026500516782408433,2.4875937156110125e-5,-2.6454031394300517e-8,0.0026506887377273874,2.481830242231187e-5,-2.637005584696817e-8,0.0026513571570154788,2.4919878684211346e-5,-2.649732055333089e-8,0.0026519727576500727,2.5176293414199947e-5,-2.6830682803784936e-8,0.00265246347865712,2.553137242424813e-5,-2.7296067819030845e-8,0.0026527977885291948,2.5897092428559638e-5,-2.777691417282513e-8,0.0026529937872264786,2.6188736914085377e-5,-2.8160834927125474e-8,0.0026531053400488365,2.6354405340763377e-5,-2.8378742435525895e-8,0.002653197143730883,2.6384803835271885e-5,-2.8417798104530085e-8,0.0026533237489522734,2.630496073324375e-5,-2.8310488620170042e-8,0.002653519415667135,2.61584941720321e-5,-2.8113966146280626e-8,0.0026537972075638358,2.5993391727317396e-5,-2.7891437296909137e-8,0.0026541528220946162,2.5852711656499893e-5,-2.7699980495729533e-8,0.002654569583467504,2.576980469437125e-5,-2.758418502662082e-8,0.002655022888269817,2.5766321279371505e-5,-2.7573341150534074e-8,0.0026554838903719694,2.5851487346184455e-5,-2.7680269328933923e-8,0.0026559228543872925,2.6021962722230312e-5,-2.7900982114737346e-8,0.0026563125592436493,2.6262270927647677e-5,-2.8215210320601784e-8,0.0026566318822620954,2.6546159408893735e-5,-2.8588246183577963e-8,0.0026568693325829773,2.683937297731775e-5,-2.8974675169938895e-8,0.00265702588046726,2.7104047119859548e-5,-2.9324209301872344e-8,0.0026571162804157502,2.730439944298196e-5,-2.9589182861804454e-8,0.002657168287578267,2.741298625135473e-5,-2.973278593466467e-8,0.002657219506910407,2.7416528074622072e-5,-2.9736788701860016e-8,0.002657312004454739,2.7320200846281446e-5,-2.9607346163960382e-8,0.0026574851280428084,2.714945498836805e-5,-2.9377627673142143e-8,0.0026577671410715864,2.6948550466389847e-5,-2.9106116594645743e-8,0.0026581666337407396,2.677480114515534e-5,-2.8869130261933987e-8,0.002658665644369953,2.668759153112913e-5,-2.874622335182529e-8,0.0026592177642860556,2.673249924766369e-5,-2.8798893801029236e-8,0.0026597551845333914,2.6923863313585407e-5,-2.9047096880029876e-8,0.0026602066278280773,2.7233239467283458e-5,-2.945360447347533e-8,0.0026605218701161496,2.759279450344971e-5,-2.992839322576825e-8,0.002660691339317348,2.791687831695263e-5,-3.0357403494703774e-8,0.0026607489650131524,2.813307297178182e-5,-3.064397603742436e-8,0.002660756316410744,2.820629128228656e-5,-3.0740975280116455e-8,0.00266077813131762,2.814444053347429e-5,-3.0658329382785926e-8,0.0026608626181401033,2.7987094517445165e-5,-3.044802835863527e-8,0.002661033282093157,2.7787369099427664e-5,-3.018018911351549e-8,0.002661290670229049,2.759646253123286e-5,-2.992268275086257e-8,0.002661618847227499,2.745466279524221e-5,-2.9729256636510297e-8,0.002661992324996788,2.7388048564438633e-5,-2.9635075082451442e-8,0.0026623814914065623,2.740846380825369e-5,-2.9656508743774662e-8,0.0026627564064791672,2.751469021981976e-5,-2.9792508338229933e-8,0.002663089657287003,2.769378081550649e-5,-3.002626101217006e-8,0.0026633589993581537,2.7922422231694105e-5,-3.032697532756177e-8,0.0026635502049094915,2.816877186333765e-5,-3.065235507227498e-8,0.002663660058606214,2.8395509491539593e-5,-3.095269273591784e-8,0.0026636988226479592,2.8564683516255168e-5,-3.1177317725720975e-8,0.0026636910185861354,2.8644267020628355e-5,-3.128328931824663e-8,0.002663673368164203,2.8615444636392442e-5,-3.124507257083623e-8,0.0026636892999802016,2.847882357726595e-5,-3.106284172552677e-8,0.0026637804953454328,2.8257367087954442e-5,-3.076651119240239e-8,0.0026639771539304236,2.7994347029093748e-5,-3.041320967031577e-8,0.002664289390944928,2.7745919962196963e-5,-3.0077603120369135e-8,0.0026647021583839263,2.7569343911087362e-5,-2.983632036881539e-8,0.002665175574611234,2.7508966541401323e-5,-2.9749234062979572e-8,0.002665651753105894,2.758308150002246e-5,-2.9841711448467954e-8,0.0026660679387967637,2.777557445101302e-5,-3.009314804079612e-8,0.002666373652606828,2.8036422130212083e-5,-3.043735504000154e-8,0.0026665467921051737,2.8293485634668975e-5,-3.0778184924067085e-8,0.002666601852555459,2.8473726055012245e-5,-3.1017907545195027e-8,0.0026665852853927806,2.8526301970881325e-5,-3.1088172804032435e-8,0.002666559122253182,2.843738526897907e-5,-3.0969895282801916e-8,0.0026665805053176046,2.823043592843639e-5,-3.069370740064932e-8,0.0026666863526158286,2.795380188020402e-5,-3.032352927191644e-8,0.002666888030781808,2.7663438827002143e-5,-2.993366290807507e-8,0.0026671748130789254,2.7408493516036183e-5,-2.958966680282094e-8,0.0026675216046985984,2.722333376093842e-5,-2.933771824724552e-8,0.0026678967932506742,2.7125467417972392e-5,-2.920171724683057e-8,0.002668268174343812,2.7116928055334394e-5,-2.918496557666993e-8,0.0026686067536675503,2.718687142750966e-5,-2.9273488870256556e-8,0.002668889153521843,2.7314125916714938e-5,-2.9439367095546293e-8,0.0026690995240611494,2.7469415229723713e-5,-2.9643692403226327e-8,0.002669231588881734,2.761768401200625e-5,-2.983969287822529e-8,0.0026692909045567758,2.772137604439484e-5,-2.9977123836592665e-8,0.002669296689582548,2.7745483589062654e-5,-3.0009007656812204e-8,0.0026692818814056923,2.76645400450632e-5,-2.9900964988722216e-8,0.002669289786419154,2.7470487600255673e-5,-2.9641735210395685e-8,0.0026693663135547675,2.7178855682651955e-5,-2.9251483856010147e-8,0.002669548600717101,2.6829814064937723e-5,-2.8783321052296953e-8,0.002669853232704221,2.6481571864986507e-5,-2.8314646721668814e-8,0.0026702686612265127,2.6196540227162797e-5,-2.792883344868289e-8,0.0026707555410017745,2.6024208042934442e-5,-2.769243626155642e-8,0.0026712556999075863,2.5986573478360687e-5,-2.7635653186376986e-8,0.002671707089748267,2.6071129511972674e-5,-2.7742712797765785e-8,0.0026720600901569886,2.6233603318288687e-5,-2.795522462078366e-8,0.002672290443135009,2.640954156364561e-5,-2.818742186699068e-8,0.0026724052428170825,2.653145786869803e-5,-2.8349002218997386e-8,0.002672440220313686,2.6546752821712073e-5,-2.8369163632258638e-8,0.0026724489957256573,2.6431102842522592e-5,-2.8214673922745004e-8,0.002672487698917711,2.6193125149463324e-5,-2.789629736013679e-8,0.0026726001820109838,2.586916578069951e-5,-2.746199942230688e-8,0.002672808644915501,2.551090053887501e-5,-2.6980507296689357e-8,0.0026731118372536797,2.5170934360175597e-5,-2.6522128760281473e-8,0.0026734896589889912,2.4891330726868854e-5,-2.6143393330707435e-8,0.0026739109227287,2.4697549447807037e-5,-2.5878832880513e-8,0.0026743410670043246,2.4597486622909633e-5,-2.5739543146492245e-8,0.002674747998989801,2.458373190904632e-5,-2.5716071958711425e-8,0.0026751057440529678,2.463704675194214e-5,-2.57830039780471e-8,0.0026753964831346907,2.47297865751725e-5,-2.5903529531835557e-8,0.00267561183646005,2.4828867315808e-5,-2.6033429491443315e-8,0.0026757540793394046,2.489859900654912e-5,-2.6124877326598502e-8,0.00267583747024861,2.4904174485618595e-5,-2.6131104709850983e-8,0.0026758891320712635,2.4816671777239062e-5,-2.6013096260213478e-8,0.0026759481268225807,2.4619877273035702e-5,-2.5748745104085175e-8,0.002676060878740094,2.4317891637757816e-5,-2.534308690420903e-8,0.002676271641860672,2.3940547910458253e-5,-2.4835628594163594e-8,0.0026766089922976954,2.3542240639262514e-5,-2.429887410844018e-8,0.002677072911743146,2.3190810939116947e-5,-2.3823549830955104e-8,0.002677629384711697,2.2947801471423495e-5,-2.349226195279842e-8,0.0026782174373540597,2.284747447523584e-5,-2.3351420427147178e-8,0.002678767190753552,2.2884450527373708e-5,-2.3394574904936935e-8,0.002679221246387928,2.3015772470718473e-5,-2.3564955982734086e-8,0.0026795504594499405,2.31755695605357e-5,-2.3774871289120044e-8,0.002679759170591716,2.3295137206169125e-5,-2.393243272963582e-8,0.0026798803135628544,2.3320917185443094e-5,-2.3965602905995443e-8,0.0026799640145154023,2.322577558520088e-5,-2.3837397612610006e-8,0.0026800639314745046,2.3012215146842673e-5,-2.3550384713622862E-08,0.0026802248899573116,2.2708392050599457e-5,-2.3141585163499967e-8,0.0026804742934984,2.235906805897442e-5,-2.2670554977751216e-8,0.0026808185968568944,2.2014267511493717e-5,-2.220428842578894e-8,0.0026812448336239396,2.171854636264718e-5,-2.180280461715125e-8,0.0026817259374465234,2.150323880680172e-5,-2.1508611094251824e-8,0.00268222781652349,2.1382809836528223e-5,-2.1341628366433782e-8,0.0026827161726339327,2.1355034347562173e-5,-2.1299284836488415e-8,0.0026831617535715744,2.140378470911418e-5,-2.1360196730420277e-8,0.0026835436457758872,2.1502965966267144e-5,-2.1489465414133864e-8,0.0026838509543692596,2.16204854567272e-5,-2.1644050147128995e-8,0.002684083542702058,2.1721810919128004e-5,-2.1777567204648777e-8,0.0026842524063363047,2.1773296218550722e-5,-2.184473901283113e-8,0.0026843798793523676,2.174584592951199e-5,-2.1806283785570994e-8,0.002684499254751002,2.1619604754520625e-5,-2.1635208600026604e-8,0.002684652615539522,2.1389936125771377e-5,-2.132488556836351e-8,0.0026848851553524585,2.1073684595338914e-5,-2.0897551736655894e-8,0.002685234761333537,2.071276203290809e-5,-2.040922349572789e-8,0.0026857179492677428,2.0370460882582813e-5,-1.9944823185549678e-8,0.002686317392056504,2.0116807827503108e-5,-1.9598553255649772e-8,0.002686979523907763,2.0004912349695077e-5,-1.9442129284992614e-8,0.0026876280837219843,2.0048512671163523e-5,-1.949455243073783e-8,0.0026881899249303247,2.0214024293583018e-5,-1.9711294931862544e-8,0.002688620249435145,2.043285656095454e-5,-2.000069039920413e-8,0.002688914623014258,2.0626936406510176e-5,-2.0258093448061607e-8,0.002689104448499188,2.073370425998305e-5,-2.0399378529749706e-8,0.0026892419298627126,2.0720641518941455e-5,-2.038044359813892e-8,0.00268938312888527,2.0587598019377475e-5,-2.0200427284762034e-8,0.002689574768650333,2.0360579482662567e-5,-1.989355990805515e-8,0.0026898465947728313,2.0081670543145843e-5,-1.9515867700560127e-8,0.0026902088053080623,1.9798500950558975e-5,-1.913120086648592e-8,0.002690653320029833,1.9555086732382298e-5,-1.8798959747669437e-8,0.0026911577108349486,1.9384918317815483e-5,-1.856468027518342e-8,0.0026916907283687213,1.9306783846534458e-5,-1.8454204375709315e-8,0.0026922183440946422,1.932346249716126e-5,-1.8471725008849565e-8,0.0026927093194704355,1.9422959535281348e-5,-1.8601349303398246e-8,0.002693139577075912,1.9581620030571056e-5,-1.8811304655394267e-8,0.0026934949979082095,1.9768275469618075e-5,-1.905959980051295e-8,0.0026937727037630865,1.9948579211282313e-5,-1.9299928293298172e-8,0.002693981227014739,2.008903816565814e-5,-1.9487102008012012e-8,0.0026941399761876384,2.0160743594175506e-5,-1.958202828436642e-8,0.002694278150304583,2.014308771745926e-5,-1.9556669135148625e-8,0.002694432839134833,2.0027814972522264e-5,-1.939951202924289e-8,0.0026946454407021474,1.9823465164879817e-5,-1.912164795226923e-8,0.002694955118743798,1.9559228013221924e-5,-1.876210188452582e-8,0.0026953885604227568,1.9285588555638527e-5,-1.8388822887488567e-8,0.002695947389646158,1.906784792733087e-5,-1.8090003030037158e-8,0.002696598361371597,1.8969529356223275e-5,-1.7951673808881418e-8,0.0026972747172651123,1.9028183067974308e-5,-1.8024976958726027e-8,0.002697894448259002,1.923482567582152e-5,-1.82982964892157e-8,0.0026983903263144058,1.953167385178543e-5,-1.8694084270395405e-8,0.0026987355972708806,1.9833273175935162e-5,-1.9097304148343785e-8,0.002698950451980689,2.005962260427181e-5,-1.9400090848296767e-8,0.0026990880859063043,2.016241265792062e-5,-1.9537100067242948e-8,0.0026992117922432905,2.013345355569334e-5,-1.949684506615443e-8,0.002699375647089422,1.999759245364751e-5,-1.9312213181089278e-8,0.002699614261285006,1.9798830819145078e-5,-1.9041939056218857e-8,0.0026999406340535597,1.9586801508834097e-5,-1.8752604336031518e-8,0.0027003488738597202,1.9406767550178475e-5,-1.850529554434705e-8,0.002700818970481651,1.9293437948365567e-5,-1.8347238284879605e-8,0.0027013220497049467,1.9267719508964687e-5,-1.8307237617048195e-8,0.002701825549465035,1.9335593552310834e-5,-1.839393020569358e-8,0.0027022980757690288,1.9488723621636194e-5,-1.8596431789749385e-8,0.002702713662607276,1.970654001153539e-5,-1.8887103092774177e-8,0.002703055157533248,1.9959543955443707e-5,-1.9226073522447195e-8,0.002703316448267429,2.0213520540267606e-5,-1.9567030088327615e-8,0.0027035033133196956,2.0434152409261692e-5,-1.986350378693203e-8,0.0027036329373279133,2.059147843487134e-5,-2.0074871352699753e-8,0.002703732317100221,2.0663912104588616e-5,-2.017172044859481e-8,0.002703835708462897,2.064176391337209e-5,-2.0140576017720335e-8,0.002703981045779454,2.0530222225002636e-5,-1.9987983238696774e-8,0.002704204955540068,2.0351562676141675e-5,-1.9743638549377247e-8,0.0027045358067139627,2.014570325430151e-5,-1.9461313750205066e-8,0.002704984805772576,1.996714707688034e-5,-1.92148397591981e-8,0.0027055368649279493,1.987574577050617e-5,-1.9085611169575944e-8,0.002706145685078051,1.9919963553539275e-5,-1.913981275734757e-8,0.0027067395839023285,2.0115935619329194e-5,-1.9399872245807953e-8,0.002707241964949466,2.0432627984345386e-5,-1.9824189275903496e-8,0.002707600561978769,2.079591363745013e-5,-2.031258854203578e-8,0.0027078094546453073,2.1114943868623784e-5,-2.0742078873478338e-8,0.0027079095029694275,2.1317626509160715e-5,-2.101494646065448e-8,0.002707967740739984,2.1374638784031844e-5,-2.1091231796414332e-8,0.0027080501916891273,2.1301291919555723e-5,-2.0991196408044287e-8,0.002708202805321296,2.1142645928582355e-5,-2.0775234408464792e-8,0.0027084452776870867,2.0954316120813476E-05,-2.0518098346501502e-8,0.002708774162575712,2.078764131629634e-5,-2.028905117718749e-8,0.002709169810830763,2.0681479161499233e-5,-2.014086685744763e-8,0.0027096034430987557,2.065925821172407e-5,-2.0105765910602988e-8,0.0027100428652535534,2.0729021182110605e-5,-2.0195268624788187e-8,0.0027104568599029245,2.088478077558925e-5,-2.0401806622108805e-8,0.0027108187654351296,2.1108546115977512e-5,-2.0701327617105837e-8,0.002711109496587725,2.1372986326076458e-5,-2.10568899223502e-8,0.002711319970232938,2.1644827851250796e-5,-2.142334211249965e-8,0.002711452708090201,2.1889050652350722e-5,-2.1753098561200446e-8,0.002711522206080725,2.207368852602839e-5,-2.2002679141313222e-8,0.002711553726110139,2.2174663760722812e-5,-2.2139227350930035e-8,0.0027115804817427185,2.2179989492678676E-05,-2.214615199321869e-8,0.0027116394229722046,2.2092790600064617e-5,-2.2027220749220564e-8,0.002711765902353902,2.1932661136871404e-5,-2.1808497541801675e-8,0.0027119875265561675,2.17349102139576e-5,-2.153749682666738e-8,0.0027123175594141167,2.154714321577371e-5,-2.1278725972971384e-8,0.002712748677090166,2.1422310197924048e-5,-2.1104340382649643e-8,0.0027132489457220156,2.1407462817094904e-5,-2.107881988743877e-8,0.002713763222707799,2.1528939153101463e-5,-2.12386510801654e-8,0.002714223539826301,2.17779711508261e-5,-2.1572526893751845e-8,0.0027145692235508168,2.210462782438041e-5,-2.201294395593925e-8,0.0027147705289971287,2.242831272043591e-5,-2.245045363896241e-8,0.002714842961370987,2.26651374401677e-5,-2.2770961975807826e-8,0.0027148417371246187,2.2759728481484883e-5,-2.2899019449501894e-8,0.0027148384646546696,2.270361220246182e-5,-2.2822761360270927e-8,0.002714894133814566,2.253147752919397e-5,-2.2588785865962968e-8,0.002715042481976411,2.230178058034443e-5,-2.227589996373742e-8,0.0027152877602880654,2.2075146022270574e-5,-2.196600255000497e-8,0.0027156119658795414,2.189977200438472e-5,-2.1724460810982776e-8,0.0027159847379479274,2.180547085498409e-5,-2.1592064109398672e-8,0.0027163717326484887,2.18037059038195e-5,-2.158495102003217e-8,0.0027167402462662167,2.189035707386248e-5,-2.169814943921391e-8,0.0027170626329077376,2.204902136902486e-5,-2.1909862774099005e-8,0.002717318577686348,2.225407880034124e-5,-2.2185536220454567e-8,0.002717496917322223,2.247368848952755e-5,-2.2481941172479003e-8,0.0027175971570509785,2.2673148098990517e-5,-2.2751819980273843e-8,0.002717630437619656,2.2818986025088118e-5,-2.2949521472554347e-8,0.002717619374232879,2.2883830547347417e-5,-2.3037639752791775e-8,0.0027175960863589687,2.2851508344780233e-5,-2.29939131948583e-8,0.002717598071460584,2.27213176952526e-5,-2.281699857396905e-8,0.0027176621709201596,2.2510260056520727e-5,-2.2529529271382513e-8,0.0027178174751903974,2.22521853070832e-5,-2.2177067543554316e-8,0.0027180784671276526,2.1993333213934358e-5,-2.1822217623532972e-8,0.0027184398641318065,2.178448760758116e-5,-2.153411268172913e-8,0.0027188745594770346,2.1670561409178468e-5,-2.137429317301222e-8,0.0027193360025531545,2.1679009178246315e-5,-2.1380826619141587e-8,0.002719766138446254,2.1809462677510583e-5,-2.1553961002315126e-8,0.00272010902935972,2.2028302823201387e-5,-2.184847600516649e-8,0.0027203278821346134,2.2272524858974438e-5,-2.2178797892063562e-8,0.0027204196799707763,2.24654419229855e-5,-2.2440404566424472e-8,0.002720419476537429,2.2541182151501676e-5,-2.2543308403420168e-8,0.002720389514355453,2.246792006086709e-5,-2.2443785172222848e-8,0.0027203968580779593,2.2257868624423312e-5,-2.2157995797522724e-8,0.0027204907531003454,2.1959156500183422e-5,-2.17509487518943e-8,0.0027206903780250197,2.1635680043467534e-5,-2.1309184877300774e-8,0.0027209858546815508,2.1346417556349277e-5,-2.0912787442917073e-8,0.002721347808163526,2.1132433058736414e-5,-2.06177932502233e-8,0.002721738732659261,2.101302770424033e-5,-2.045091160605777e-8,0.002722121842089695,2.0988064107378192e-5,-2.0412526919188236e-8,0.0027224663072612032,2.104272221321373e-5,-2.0482980964473065e-8,0.0027227497312666536,2.1152219247249398e-5,-2.0628864697851955e-8,0.0027229592187699085,2.1285646420264224e-5,-2.0808205423364215e-8,0.002723092024279769,2.140915534170127e-5,-2.0974851448080727e-8,0.002723156140984944,2.14891410191427e-5,-2.108288393508341e-8,0.002723170606461795,2.149605797679514e-5,-2.1091870780846034e-8,0.0027231647986974373,2.140913982897247e-5,-2.0973305086363463e-8,0.002723175747615389,2.122154123906254e-5,-2.0717585989345948e-8,0.0027232427667478894,2.094452464224403e-5,-2.0339705819586754e-8,0.0027233996145755853,2.0608713479640643e-5,-1.9880992713257535e-8,0.002723665721382843,2.026060892275378e-5,-1.9404470170278227e-8,0.0027240391567136266,1.9953854594028393e-5,-1.898310231028625e-8,0.002724494146855511,1.9736789731948312e-5,-1.8682948875842208e-8,0.002724984781134481,1.9639562245665583e-5,-1.8545605329381536e-8,0.002725454640230336,1.9664591180140306e-5,-1.8575060281540082e-8,0.0027258502841296267,1.978346436416098e-5,-1.8733227690675876e-8,0.0027261353236396123,1.9941877016394326e-5,-1.894645849238284e-8,0.002726301248658682,2.007230249813052e-5,-1.912271463933041e-8,0.0027263713289722514,2.011187104949174e-5,-1.9175991154117115e-8,0.002726395138448426,2.002057957804487e-5,-1.905127428909273e-8,0.002726434196991114,1.9793401183908815e-5,-1.8741182852925098e-8,0.0027265433420372793,1.946100805656228e-5,-1.828705235095383e-8,0.0027267551469351914,1.9078518607560066e-5,-1.7763682989189432e-8,0.002727073366580046,1.870747687105405e-5,-1.7254861286109985e-8,0.0027274765293817524,1.8398952985918913e-5,-1.683037011094019e-8,0.002727927993060576,1.818353027833995e-5,-1.6532295654523488e-8,0.0027283871266923043,1.8069347217504134e-5,-1.637222675764901e-8,0.0027288178204516824,1.804577514014172e-5,-1.633611041703065e-8,0.0027291931918580247,1.8089300870504294e-5,-1.6392157254153952e-8,0.0027294972768002954,1.816913014448269e-5,-1.649844892067187e-8,0.0027297251046408027,1.8251552466542002e-5,-1.660892918346911e-8,0.0027298822811575333,1.830324285422369e-5,-1.6677976929709144e-8,0.0027299846109979653,1.8294199006395545e-5,-1.6664471571957215e-8,0.0027300576392803658,1.8201084382144078e-5,-1.6536379482566312e-8,0.002730135367558795,1.801142871411346e-5,-1.6276481194654895e-8,0.0027302569950561194,1.772835840690819e-5,-1.5888815400112085e-8,0.002730460675000141,1.7374367034465673e-5,-1.540383280991605e-8,0.002730774317388617,1.6991538671805468e-5,-1.487874681986958e-8,0.002731205492992096,1.663554986253649e-5,-1.4389430286252634e-8,0.0027317346225685167,1.6362736100393333e-5,-1.401285392592605e-8,0.0027323159732417688,1.6213321694122396e-5,-1.3804237823242727e-8,0.0027328882043883593,1.6197272773221976e-5,-1.377768292956184e-8,0.002733391477933123,1.628923403372551e-5,-1.3899104903846669e-8,0.0027337846859482747,1.6435087027299024e-5,-1.4095004537599963e-8,0.002734056500043612,1.656745755001094e-5,-1.4273511480543449e-8,0.0027342271115420556,1.6624323330041047e-5,-1.4349761230979106e-8,0.002734341218625606,1.6564849873113524e-5,-1.4267579057934553e-8,0.0027344551943848145,1.6378505391622318e-5,-1.4012046808109738e-8,0.002734622289801755,1.608581588143182e-5,-1.3610682506044439e-8,0.0027348797656559553,1.5731229116967588e-5,-1.312384293400565e-8,0.0027352411979116873,1.5370487927067927e-5,-1.262758861964929e-8,0.0027356956705479342,1.5056407177672457e-5,-1.2194285616455754e-8,0.002736213318040265,1.4827270079832405e-5,-1.1876677483532097e-8,0.0027367546090290257,1.4700733657187753e-5,-1.169940036745348e-8,0.002737279962922846,1.4673731384326293e-5,-1.16586767454608e-8,0.0027377570640155654,1.4726736350655366e-5,-1.1728029197099415e-8,0.0027381648557289963,1.482989457646782e-5,-1.1866648191392354e-8,0.0027384946423735903,1.4948942426058718e-5,-1.2027544616739114e-8,0.002738749434445084,1.504985821963847e-5,-1.216399804528127e-8,0.0027389426406392242,1.5102225647928979e-5,-1.2234218749741384e-8,0.0027390967313658887,1.508190848938774e-5,-1.2205022203274869e-8,0.0027392418828776502,1.497377683520103e-5,-1.2055543818857391e-8,0.0027394140032673863,1.4774979914795335e-5,-1.1781703210623261e-8,0.0027396510558396095,1.449859754939216e-5,-1.1401214646296961e-8,0.0027399865631337478,1.4176337452192784e-5,-1.0957324233453986e-8,0.0027404401157403325,1.3857589419184968e-5,-1.0517579850249122e-8,0.002741006988407936,1.3601649709835046e-5,-1.016324470539438e-8,0.002741651946643131,1.3461932237357087e-5,-9.967701894510386e-9,0.0027423134297618586,1.3466164991872435e-5,-9.969292325791265e-9,0.0027429204127412043,1.3602045380436758e-5,-1.0151559338201335e-8,0.0027434161980657615,1.381781057785335e-5,-1.0443902181835858e-8,0.0027437775903663983,1.403930043979941e-5,-1.0744867582233018e-8,0.00274402026056172,1.4195086586668818e-5,-1.0956551973741348e-8,0.002744189707180539,1.4237647948831023e-5,-1.101361813162918e-8,0.0027443444308235623,1.4153214739371446e-5,-1.0896808965594635e-8,0.0027445391212823013,1.3960083614703103e-5,-1.063071839494125e-8,0.0027448126229584063,1.369940353501182e-5,-1.0271311517205686e-8,0.0027451820491002014,1.342296064314159e-5,-9.889353385649206e-9,0.0027456424369939375,1.3181296837245952e-5,-9.554228595057486e-9,0.0027461706266553357,1.301415215625418e-5,-9.320814951324564e-9,0.0027467319065318033,1.2944348784452829e-5,-9.220945708603037e-9,0.0027472878430236675,1.297566686114043e-5,-9.26028974478475e-9,0.0027478036209455806,1.3094521161716708e-5,-9.420488426281658e-9,0.0027482535395967965,1.3274409109423844e-5,-9.665206228210173e-9,0.002748624017387072,1.3481665911821765e-5,-9.94808846615289e-9,0.002748914201993835,1.3681151040180056e-5,-1.0220678594459335e-8,0.002749134840466332,1.3840922486020028e-5,-1.0438925666362003e-8,0.0027493062755827883,1.3935617636275572e-5,-1.0567851392877573e-8,0.0027494561978375956,1.3948871850020234e-5,-1.0584841736813426e-8,0.002749617298368145,1.3875330877006017e-5,-1.0482372438320108e-8,0.002749824478571436,1.3722661790345272e-5,-1.0270772986168708e-8,0.002750110830763187,1.3513482353169196e-5,-9.98093410823438e-9,0.00275050148863685,1.3286167853943228e-5,-9.665504146217214e-9,0.0027510052007713166,1.3092282740735443e-5,-9.395433012835077e-9,0.0027516054627253683,1.2987797311630384e-5,-9.247916863310523e-9,0.0027522560077975567,1.3016795714357577e-5,-9.283940992366734e-9,0.002752887270832192,1.3191513005764179e-5,-9.520705716744854e-9,0.0027534268750110877,1.3479307947422266e-5,-9.913575792228905e-9,0.002753827252818105,1.380820104122874e-5,-1.0363635022831688e-8,0.002754085066367869,1.4092408000508905e-5,-1.0752843979321471e-8,0.002754240423604777,1.4264671631161601e-5,-1.0988570669126968e-8,0.0027543577158397454,1.4297504261183262e-5,-1.1032801675695634e-8,0.0027545010082918016,1.4205075789953122e-5,-1.0904699986993847e-8,0.0027547161998007054,1.4030591799180186e-5,-1.0663283329901377e-8,0.0027550240194078655,1.3829185117178249e-5,-1.0384043206256625e-8,0.002755421453020713,1.3653474454465471e-5,-1.0139258403077382e-8,0.0027558875196220835,1.3544259564344984e-5,-9.985280220478687e-9,0.0027563903321073395,1.3525955479519786e-5,-9.956181654857124e-9,0.0027568938904163395,1.3605460183974092e-5,-1.0062009063794016e-8,0.002757364073561223,1.3773418082126131e-5,-1.029030898978133e-8,0.0027577735523741467,1.4007312606634619e-5,-1.0610254942756665e-8,0.002758105281049702,1.4275878871466236e-5,-1.0978721485269755e-8,0.0027583543129910426,1.4544196144378514e-5,-1.1347397176404875e-8,0.002758527884760369,1.4778781498711986e-5,-1.1669921998794136e-8,0.0027586439565762334,1.495202207329257e-5,-1.1908062139585563e-8,0.0027587286752269713,1.5045486741457556e-5,-1.2036263263573345e-8,0.002758813283168323,1.5052079543374385e-5,-1.2044567346228864e-8,0.0027589307562035483,1.497726783006875e-5,-1.1940277717807085e-8,0.0027591121400170103,1.4839587044545021e-5,-1.1748696271030066e-8,0.002759382258301141,1.4670374331164395e-5,-1.1512860934478634e-8,0.0027597543590631487,1.4512060743916354e-5,-1.1291303651724086e-8,0.002760223851724849,1.4413504572653444e-5,-1.1151667518328181e-8,0.002760762772812467,1.4420577561528979e-5,-1.1157671499436408e-8,0.002761318710750578,1.4561512390203414e-5,-1.1348746558323507e-8,0.00276182335825203,1.483046758444795e-5,-1.171717072812087e-8,0.002762213232767044,1.5178600777388183e-5,-1.2195628938203373e-8,0.0027624561618459875,1.5523579998102924e-5,-1.2670370954457433e-8,0.002762568055471419,1.577896645887847e-5,-1.3021911778698365e-8,0.002762607053442844,1.588892345218556e-5,-1.3173036202525945e-8,0.0027626477535367317,1.5847494556313896e-5,-1.3115353264673006e-8,0.002762752148698717,1.5693341116187472e-5,-1.290193227055894e-8,0.002762952717258098,1.5488291251018845e-5,-1.2617722370350503e-8,0.0027632510418019677,1.5294686690858635e-5,-1.2348462136331391e-8,0.0027636259344087917,1.5160707656321381e-5,-1.2160612203495138e-8,0.002764043924793039,1.511465428428553e-5,-1.2093523880228672e-8,0.002764468105360931,1.5165219435121325e-5,-1.2159711904489318e-8,0.0027648642771565795,1.5304554776486206e-5,-1.2348881160795975e-8,0.00276520491193756,1.551214917612753e-5,-1.2633083740317827e-8,0.0027654717421526196,1.5758859205074683e-5,-1.2972187445271782e-8,0.0027656573615933593,1.601108180866163e-5,-1.331966747011974e-8,0.0027657658412326984,1.623508143758839e-5,-1.3628693916074076e-8,0.0027658122315612965,1.6401336192405455e-5,-1.385824500072823e-8,0.0027658208032614435,1.64885423505343e-5,-1.397868551819702e-8,0.0027658220656359834,1.6486733828388484e-5,-1.397605157394892e-8,0.002765848891824904,1.639909794692674e-5,-1.3854513826157042e-8,0.0027659321674139512,1.6242317878778517e-5,-1.3636849548780435e-8,0.002766096303503263,1.6045369593808686e-5,-1.3362857387789591e-8,0.0027663548615603564,1.5846730676314847e-5,-1.308562701077851e-8,0.0027667064826740096,1.5689835021215877e-5,-1.2865361853446855e-8,0.002767131628491153,1.5616253392744474e-5,-1.2759959238257351e-8,0.002767591541465577,1.565613932350352e-5,-1.2811680422273687e-8,0.0027680318643640033,1.581672526418174e-5,-1.3031031172521404e-8,0.0027683935757452003,1.607229328191158e-5,-1.3382687188492964e-8,0.0027686315906423767,1.6362317419807093e-5,-1.3782849249591848e-8,0.0027687352106116232,1.660487394222258e-5,-1.4117902190796029e-8,0.002768738239820442,1.6725105080637398e-5,-1.4283993588661351e-8,0.0027687087079556953,1.6685822510540136e-5,-1.422947633870195e-8,0.0027687213527381837,1.650176304721841e-5,-1.3974559220475729e-8,0.0027688289978741332,1.622925799770131e-5,-1.3596908755438644e-8,0.002769048363398059,1.594031700512789e-5,-1.3195832869032236e-8,0.00276936337344147,1.569769408859385e-5,-1.2857958409166736e-8,0.002769738192543268,1.5541237964123733e-5,-1.2638499739393606e-8,0.002770130857577132,1.5485700596560033e-5,-1.2558236264973412e-8,0.0027705028435936804,1.5525121557837643e-5,-1.2609441752677153e-8,0.002770824104016123,1.5639139817898094e-5,-1.2764417778794309e-8,0.0027710750382562957,1.579871667179225e-5,-1.298325399628226e-8,0.002771246995946245,1.5970684935818387e-5,-1.322007185623983e-8,0.0027713422068845884,1.6121524757386047e-5,-1.3428307331702114e-8,0.0027713733059165882,1.622087961293736e-5,-1.3565689517813172e-8,0.0027713622519797507,1.6245092710609566e-5,-1.3599228831309594e-8,0.002771338258376431,1.6180665568763176e-5,-1.3510033682923686e-8,0.0027713344138243505,1.6027070557930125e-5,-1.3297175460530656e-8,0.0027713830768532144,1.579813080854103e-5,-1.2979564370243544e-8,0.0027715105782646693,1.5521323628688927e-5,-1.2595002061998987e-8,0.002771732045267941,1.5234636665673235e-5,-1.2195915802458485e-8,0.002772047301432447,1.4981007805899022e-5,-1.1841777298032802e-8,0.002772438752589332,1.4800880562158318e-5,-1.1588867502371844e-8,0.0027728720133379584,1.4723695349422957e-5,-1.1478455258934069e-8,0.0027733000270757664,1.475936384689405e-5,-1.1524829287417343e-8,0.0027736714038943994,1.4891518683271445e-5,-1.1705728640433002e-8,0.002773942949580787,1.5075513691583893e-5,-1.1959405556781578e-8,0.002774094298536084,1.5244784160866828e-5,-1.2193420369479077e-8,0.00277413935771806,1.5327642621168224e-5,-1.2308056164262575e-8,0.002774127095241945,1.5271382737278492e-5,-1.222991079233378e-8,0.002774127125267959,1.5063483024427677e-5,-1.1941373736095969e-8,0.002774204509579759,1.4737530909312808e-5,-1.1488800019336111e-8,0.0027743965548067697,1.43593324733346e-5,-1.0963210259393599e-8,0.0027747034985702353,1.4001351538615448e-5,-1.0464911437262635e-8,0.0027750951364715324,1.3719672259939094e-5,-1.007167416389651e-8,0.002775526051367617,1.3542754928601997e-5,-9.823200461899074e-9,0.0027759503581378433,1.3472044653032601e-5,-9.721903248961207e-9,0.0027763311030684443,1.3489110782461308e-5,-9.742655844025204e-9,0.0027766441055164853,1.356402503429683e-5,-9.84425800476849e-9,0.002776878237542247,1.3662175145885656e-5,-9.978801364369811e-9,0.00277703421910064,1.3749001999510627e-5,-1.0098250340897997e-8,0.002777123145672282,1.3793304300500613e-5,-1.0159108468992627e-8,0.002777165069365021,1.3769948799978488e-5,-1.012627712891473e-8,0.002777187380425079,1.366257139239754e-5,-9.976865115490197e-9,0.002777222427192686,1.3466379006569386e-5,-9.704079704233e-9,0.002777303795784524,1.3190508945819256e-5,-9.32046418862628e-9,0.0027774610887294536,1.285887005615791e-5,-8.859037531642524e-9,0.00277771379236086,1.250829794191475e-5,-8.370757335750319e-9,0.0027780656045215007,1.2183280121571277e-5,-7.917278908180143e-9,0.00277850108054271,1.1927476784055753e-5,-7.559280656595044e-9,0.002778986285044394,1.1773582658743977e-5,-7.3424319327927995e-9,0.0027794741941447932,1.1734065609188585e-5,-7.284473669250357e-9,0.0027799142794985264,1.1795451333347614e-5,-7.367127372081157e-9,0.00278026452821218,1.1918270864807826e-5,-7.535846169209884e-9,0.0027805032458643373,1.204384768123753e-5,-7.709138116829781e-9,0.0027806373209791524,1.2107676158375936e-5,-7.797171506191644e-9,0.002780703452468078,1.2057033090757864e-5,-7.726358310931846e-9,0.002780759925646668,1.186787561236933e-5,-7.46295792291357e-9,0.002780869728653987,1.155427127221588e-5,-7.026249491461181e-9,0.002781080498337681,1.1164946271353642e-5,-6.483757041896363e-9,0.002781409786732128,1.0767143875816982e-5,-5.928845847483083e-9,0.0027818421004138097,1.04248448157659e-5,-5.450501229246064e-9,0.0027823377629871307,1.0181105245430409e-5,-5.10879819574084e-9,0.002782847735319512,1.0050699713777196e-5,-4.924616944992279e-9,0.002783327243787241,1.0022856728953502e-5,-4.883325460734916e-9,0.0027837440651562097,1.0069594711575953e-5,-4.94624874966697e-9,0.0027840812269027786,1.015483206039899e-5,-5.063271670053514e-9,0.0027843360787357524,1.024152532104462e-5,-5.1827770304128115e-9,0.002784517883012557,1.0296305457586499e-5,-5.258162067166841e-9,0.0027846452783812006,1.0292292461840592e-5,-5.251838399917288e-9,0.002784744078074569,1.0211053940810853e-5,-5.138017383006263e-9,0.0027848451722726508,1.004447040455388e-5,-4.905319130341186e-9,0.002784981869337182,9.796760182050914e-6,-4.559563393831464e-9,0.0027851859388087303,9.486172936094592e-6,-4.1260871182282976e-9,0.0027854820195520776,9.145128566965864e-6,-3.649923337373014e-9,0.0027858809685050146,8.817212839408479e-6,-3.1916519447886542e-9,0.002786374004344479,8.549858663854469e-6,-2.8172810988601715e-9,0.002786930516713693,8.38311526590999e-6,-2.5826759770245543e-9,0.0027875021251903167,8.337323332657525e-6,-2.5164033042951878e-9,0.002788033442730153,8.404341144331321e-6,-2.6074358965324996e-9,0.0027884768663511967,8.546587963184419e-6,-2.8036922561923524e-9,0.002788806444515096,8.705359435428541e-6,-3.023511191011914e-9,0.002789025898946628,8.816155454370437e-6,-3.1769693624562517e-9,0.00278916808580964,8.826174280013064e-6,-3.1902919454504053e-9,0.0027892861494492062,8.708654066453408e-6,-3.0259083522581603e-9,0.002789439024007953,8.46996585135858e-6,-2.6924102085292982e-9,0.0027896754169786063,8.14743898998842e-6,-2.2415918566646356e-9,0.002790020989298804,7.798481749683577e-6,-1.7533598997337004e-9,0.0027904727105389194,7.484380983397801e-6,-1.3132102122914294e-9,0.0027910019465777094,7.254182931369871e-6,-9.89761674395551e-10,0.0027915644996498075,7.133899378245067e-6,-8.196308089392246e-10,0.002792113334641582,7.123723332179867e-6,-8.034153427098901e-10,0.0027926094573086616,7.202432983697204e-6,-9.117101623954198e-10,0.002793028233302452,7.335726174669705e-6,-1.0966748720526548e-9,0.0027933609484635524,7.4849003149403414e-6,-1.3041707157630382e-9,0.002793613109513304,7.61360949860106e-6,-1.4832721372423023e-9,0.002793801331699417,7.692125726622039e-6,-1.5923023708007069e-9,0.0027939501157332436,7.699650544928369e-6,-1.602113739190793e-9,0.0027940890449749374,7.62559574208575e-6,-1.4978805430814948e-9,0.0027942502546082484,7.47061613566804e-6,-1.2805101597583769e-9,0.002794465545354246,7.247708832349798e-6,-9.681400023267961e-10,0.0027947623730721393,6.982972729165114e-6,-5.97180208495864e-10,0.002795158293619206,6.714815163187818e-6,-2.2122179168722028e-10,0.0027956544044971682,6.489842552957791e-6,9.465788350054435e-11,0.0027962298905296608,6.353985618709735e-6,2.862426270105938e-10,0.0027968413003591638,6.339329590931643e-6,3.085594249353236e-10,0.002797430023565606,6.450574770211097e-6,1.5483829055035215e-10,0.0027979381407812233,6.657939065789282e-6,-1.33481326751483e-10,0.0027983274370340884,6.9023050870562255e-6,-4.73865860969561e-10,0.0027985929487883057,7.112534229482264e-6,-7.668664513252449e-10,0.0027987644712778367,7.227889781129287e-6,-9.274873085756629e-10,0.002798895846497114,7.215922522318092e-6,-9.102130577481535e-10,0.0027990476214502418,7.07954168609196e-6,-7.189055791823305e-10,0.002799270159329704,6.8528184660678055e-6,-4.0097058487487015e-10,0.0027995921098042825,6.589150394962895e-6,-3.089155205840986e-11,0.0028000160559371254,6.346543838175632e-6,3.10246237176008e-10,0.0028005208861621384,6.174077528739478e-6,5.536306075559972e-10,0.002801069138807742,6.102332622183427e-6,6.561508599671992e-10,0.002801616887775129,6.139228531226112e-6,6.063570042587458e-10,0.0028021235424224794,6.271340195284573e-6,4.227738196672006e-10,0.0028025593261495505,6.469448209654452e-6,1.462323628969768e-10,0.002802909202716053,6.696171451931554e-6,-1.7081556781815749e-10,0.0028031732715659992,6.913472533175175e-6,-4.748902722777455e-10,0.002803364595060627,7.088522312131387e-6,-7.198047146353163e-10,0.002803505761944061,7.197381055746142e-6,-8.718919784335805e-10,0.002803625279954858,7.226791581760613e-6,-9.125259098952547e-10,0.0028037543398572442,7.1748236665111314e-6,-8.389867042693141e-10,0.0028039239008144736,7.051055423278122e-6,-6.646711695244907e-10,0.0028041616337651505,6.8765748079719594e-6,-4.190817695600791e-10,0.0028044880974484863,6.6835013555270844e-6,-1.471822583423747e-10,0.0028049117634366405,6.5130028002482435e-6,9.333211200818222e-11,0.002805423407949294,6.410183518830969e-6,2.391581525590211e-10,0.0028059919682429956,6.414458134729057e-6,2.348761811647254e-10,0.0028065656354558507,6.545964496883274e-6,5.204916047160679e-11,0.0028070820322286597,6.792467980851788e-6,-2.923256812302114e-10,0.0028074875111325586,7.1049452709561795e-6,-7.295484999982558e-10,0.002807758398439204,7.408801568743201e-6,-1.1549479735996095e-9,0.002807912309953183,7.629016879277494e-6,-1.4632184010996237e-9,0.0028080018600268285,7.717209899264664e-6,-1.5864308892715257e-9,0.00280809416469148,7.666574793887121e-6,-1.5149558263742769e-9,0.0028082476851966315,7.509156810078956e-6,-1.293585924107478e-9,0.0028084967768828226,7.300588647517751e-6,-1.0001414868267381e-9,0.002808847262739549,7.101610708252468e-6,-7.196587372359342e-10,0.0028092805508106752,6.9632211202788204e-6,-5.236849754708002e-10,0.0028097620700029556,6.9179843415002716e-6,-4.5813084509820613e-10,0.0028102506436204987,6.977109497128568e-6,-5.3909443895529e-10,0.002810706875116468,7.1318269763759485e-6,-7.546337294862254e-10,0.002811099653827845,7.357649721019065e-6,-1.0705937383009498e-9,0.0028114103186717213,7.620360090645017e-6,-1.4389400470211245e-9,0.0028116342841793644,7.882562522965005e-6,-1.8069960493090511e-9,0.002811780336556491,8.109700436176797e-6,-2.1259981185286337e-9,0.0028118681577567702,8.274759500587497e-6,-2.3578054290919355e-9,0.002811924804212133,8.361260065829955e-6,-2.479149299892737e-9,0.002811980892546883,8.36454527445245e-6,-2.4834224476780367e-9,0.0028120670235339054,8.291786877210306e-6,-2.380638941437992e-9,0.002812210545938763,8.161235186498023e-6,-2.196355734372293e-9,0.0028124324269317093,8.000947582996757e-6,-1.9699141477060387e-9,0.0028127438794841287,7.846806856187975e-6,-1.7517213264542863e-9,0.002813142552806622,7.739137129470781e-6,-1.5985536553676695e-9,0.002813608808015108,7.716755992795095e-6,-1.5652027889490953e-9,0.002814103934259319,7.807540942446503e-6,-1.6911479779159391e-9,0.0028145735374341036,8.016337002635303e-6,-1.9834359406417603e-9,0.0028149593679730016,8.31455967856922e-6,-2.4019489267911616e-9,0.0028152192752681693,8.639495206008205e-6,-2.858393347499628e-9,0.002815347491924279,8.910155826623826e-6,-3.238690313459153e-9,0.0028153820992645705,9.056877288906372e-6,-3.444739279219633e-9,0.0028153917225959865,9.049565373279847e-6,-3.434183721829044e-9,0.0028154478006963196,8.907688181128402e-6,-3.234368005566589e-9,0.0028155987912163055,8.687766600877536e-6,-2.924641731063571e-9,0.002815858796138938,8.458997654451106e-6,-2.6021037702235526e-9,0.0028162112125574854,8.281283974367032e-6,-2.3508457347741356e-9,0.002816620244870729,8.193045999255578e-6,-2.2249439851131193e-9,0.002817043196425516,8.208464494140208e-6,-2.2446042949535775e-9,0.0028174399451113383,8.320583317078408e-6,-2.4004250119473305e-9,0.0028177788955663485,8.506869283546043e-6,-2.661052702041974e-9,0.0028180401266746525,8.735196722855205e-6,-2.9814634943747566e-9,0.002818216618208338,8.969546300902432e-6,-3.3109360361838935e-9,0.0028183139820533165,9.175233421802618e-6,-3.600466281728827e-9,0.0028183488727125663,9.323413400084446e-6,-3.809217986798757e-9,0.0028183463049050498,9.39458305470024e-6,-3.90954465122841e-9,0.0028183361606477814,9.380837778898787e-6,-3.890194719106599e-9,0.002818349263122649,9.286671155840795e-6,-3.757406772881838e-9,0.002818413492033781,9.128333531433483e-6,-3.53396419516556e-9,0.0028185502773691137,8.932029054209705e-6,-3.2566550844126667e-9,0.0028187715560268277,8.731181934898563e-6,-2.972477812164968e-9,0.0028190771735186674,8.562773878565448e-6,-2.7335615331514525e-9,0.002819452811212173,8.462515809163019e-6,-2.5904087552382515e-9,0.0028198689659859892,8.458399189389392e-6,-2.5827732791303527e-9,0.0028202823760493027,8.562461789260582e-6,-2.7279409911836136e-9,0.0028206420530898016,8.76203294867925e-6,-3.0082465413739715e-9,0.0028209016970371353,9.01428419331315e-6,-3.3633026041725225e-9,0.0028210372630595158,9.250300643214355e-6,-3.695772409602383e-9,0.0028210625026776777,9.393515552182452e-6,-3.897503770163006e-9,0.0028210309762700552,9.388841811821506e-6,-3.890735771174717e-9,0.0028210180397079793,9.227581680220804e-6,-3.6632088806019304e-9,0.002821090430482207,8.951597895319539e-6,-3.273910330543877e-9,0.002821281364602508,8.633748034245999e-6,-2.8253997402826636e-9,0.0028215841712364,8.34816387734706e-6,-2.4219756103304343e-9,0.0028219629940235817,8.147536600047868e-6,-2.1378075495426764e-9,0.0028223698510740254,8.054819543764938e-6,-2.0053439921519466e-9,0.002822758897752516,8.06627654451556e-6,-2.0195926662397562e-9,0.0028230947143213737,8.159510301354147e-6,-2.149322407764077e-9,0.0028233554406812823,8.301852148391436e-6,-2.348744115947894e-9,0.00282353282593384,8.45708600749022e-6,-2.5668892800147934e-9,0.002823630975521782,8.590367413029983e-6,-2.754534233626674e-9,0.002823664602469181,8.671985233133684e-6,-2.869577271902303e-9,0.0028236568220320374,8.680413957217215e-6,-2.881448031847007e-9,0.002823636368151626,8.604700974308771e-6,-2.77454826352887e-9,0.00282363417253053,8.446003171394267e-6,-2.55042869198829e-9,0.0028236793809163405,8.217892940976991e-6,-2.2281801649158934e-9,0.0028237951897224314,7.945063459574405e-6,-1.8425677017566835e-9,0.0028239951055245996,7.660380146708828e-6,-1.4398777251617586e-9,0.0028242801645024245,7.40050743300998e-6,-1.0718072754261351e-9,0.0028246375107151937,7.200455492493439e-6,-7.878393942073073e-10,0.002825040666646605,7.087470503711195e-6,-6.266431600801484e-10,0.002825451877475943,7.074723084324243e-6,-6.071044899922806e-10,0.00282582713879414,7.155466286875476e-6,-7.199525343266866e-10,0.0028261246005233435,7.299190176080726e-6,-9.222045847808211e-10,0.00282631625064073,7.452589468357933e-6,-1.138486076576167e-9,0.002826400528199012,7.5487591099507736e-6,-1.2740885116638722e-9,0.002826410104662908,7.52604944408374e-6,-1.2417419852670848e-9,0.0028264072933222306,7.3519489307029926e-6,-9.95445629992879e-10,0.002826464019776748,7.0400481913062265e-6,-5.543990372405558e-10,0.0028266339859106117,6.6478080126638315e-6,2.5428477574195166e-13,0.002826932486316038,6.254009951919073e-6,5.573195548555597e-10,0.002827334926475173,5.928910433440534e-6,1.017639188279871e-9,0.0028277917797869642,5.7135131054699254E-06,1.3232757200131534e-9,0.002828248468891538,5.614983691413445e-6,1.4639603114758254e-9,0.0028286601533812237,5.614073569452187e-6,1.4666632447107474e-9,0.0028289983913868215,5.676607424183315e-6,1.379463686399024e-9,0.002829251626940915,5.763552361016194e-6,1.257411163440545e-9,0.0028294226533315623,5.8378051497912814e-6,1.1529709034080448e-9,0.002829525391442807,5.868127420486881e-6,1.1104318965864509e-9,0.002829581983388046,5.831461400637911e-6,1.162556397104102e-9,0.0028296201636700017,5.714584370675174e-6,1.3281613329217984e-9,0.0028296704970861516,5.515438234757098e-6,1.610201352537694e-9,0.0028297631021037386,5.243980536622576e-6,1.9945855887171813e-9,0.0028299236827314406,4.922012339098648e-6,2.4504737826893106e-9,0.0028301691569658544,4.581263003820374e-6,2.933023335426697e-9,0.0028305037217332307,4.259296600010102e-6,3.3891673170969797e-9,0.002830916459461489,3.993408191619676e-6,3.766190530193445e-9,0.0028313814792820546,3.8133369601973606e-6,4.021977064794002e-9,0.0028318611572783646,3.7341893056990802e-6,4.135010647324168e-9,0.0028323123871055148,3.7511839643312496e-6,4.1118687449955575e-9,0.002832695135207755,3.837639289960757e-6,3.990171251095755e-9,0.0028329821184355144,3.947374265896908e-6,3.835263147375323e-9,0.0028331678013638183,4.02244680576321e-6,3.7292680413861366e-9,0.002833273994081028,4.0063226672806816e-6,3.752376733977591e-9,0.0028333486086335536,3.8605677828823e-6,3.959124752584863e-9,0.0028334548656437477,3.5800588386143807e-6,4.356815088093346e-9,0.0028336519146150165,3.199196575199989e-6,4.896744085319297e-9,0.002833973775156948,2.7832242943678695e-6,5.486528461109836e-9,0.002834417043797699,2.4062456980927005e-6,6.021220646396547e-9,0.002834944056387233,2.1262318186002894e-6,6.418661302859258e-9,0.0028354988875670265,1.969203084860813e-6,6.641874660667108e-9,0.0028360266300474844,1.927913656213458e-6,6.70098348403756e-9,0.0028364871221820765,1.971420933258333e-6,6.639725869469694e-9,0.0028368601012207684,2.0580493155069e-6,6.517137481949485e-9,0.002837143798391918,2.146084523307919e-6,6.392404569592256e-9,0.0028373505649315713,2.200262702481213e-6,6.315634711039505e-9,0.0028375022225614853,2.194747581939334e-6,6.323580516384682e-9,0.002837626278744532,2.1141632193792574e-6,6.438118184879123e-9,0.002837752983195648,1.9539503821470446e-6,6.665710573780227e-9,0.002837912672316925,1.720635357079953e-6,6.997035491702147e-9,0.0028381327625960472,1.4319563558805509e-6,7.406851308263388e-9,0.0028384339774149996,1.1162175023410766e-6,7.85496469067567e-9,0.0028388259645027686,8.098741102245192e-7,8.289678744088075e-9,0.0028393032769971362,5.525056854996284e-7,8.654901931555912e-9,0.002839843390194472,3.791424868007549e-7,8.900980702450035e-9,0.0028404085467517684,3.1124743347196077e-7,8.997452128487504e-9,0.002840952357445899,3.4901622113740223e-7,8.943973785765355e-9,0.002841430295633725,4.68119085106208e-7,8.775000509935415e-9,0.0028418113735728568,6.229385663401742e-7,8.555251582211405e-9,0.0028420874546643236,7.562180083845292e-7,8.366042862071104e-9,0.002842277186103206,8.12928826496597e-7,8.28557717186452e-9,0.0028424229792514757,7.548341939316745e-7,8.368220742089385e-9,0.0028425812098529235,5.718152359385369e-7,8.628388634888865e-9,0.002842807562695609,2.864119988032696e-7,9.034090564959052e-9,0.0028431411958904427,-5.075784686922267e-8,9.513435790152513e-9,0.002843592795816794,-3.745954342178899e-7,9.973922781259542e-9,0.00284414136383234,-6.243541079214667e-7,1.0329162879331443e-8,0.0028447415293055118,-7.608178796241404e-7,1.0523290713005752e-8,0.0028453383289325533,-7.7516339165713e-7,1.0543619193061516e-8,0.0028458829874018483,-6.870431643594794e-7,1.0418002465363624e-8,0.002846343745861855,-5.347045473568402e-7,1.0200845400060194e-8,0.002846709393672464,-3.626758819940621e-7,9.955588339874181e-9,0.0028469868913886353,-2.1168976993434465e-7,9.740321417669294e-9,0.0028471961486281772,-1.1277953739782726e-7,9.5993194186896e-9,0.002847364587199702,-8.507667609072321e-8,9.559858106078426e-9,0.0028475227795878447,-1.357926730672906e-7,9.63217247842041e-9,0.0028477012760148397,-2.6098770439544055e-7,9.810568108142715e-9,0.0028479280799226956,-4.4634904759132186e-7,1.0074568307647262e-8,0.002848226026012085,-6.678989044547163e-7,1.038996413878128e-8,0.002848609485491815,-8.932110104100397e-7,1.0710570698878495e-8,0.0028490803883028048,-1.08421348997412e-6,1.0982211998329638e-8,0.0028496244808374053,-1.2027066912850638e-6,1.1150545368581883e-8,0.0028502098087099434,-1.2189535497820264e-6,1.117325646547346e-8,0.0028507899812964224,-1.1218694346857707e-6,1.1034558640475975e-8,0.0028513137786630493,-9.269848437980516e-7,1.0756559639854864e-8,0.0028517396184371633,-6.772541783626091e-7,1.040045521595228e-8,0.002852049745857075,-4.3383629160081065e-7,1.0053410747715433e-8,0.002852257667938162,-2.588555502582333e-7,9.80397507841194e-9,0.0028524050176591494,-1.966808876808624e-7,9.715373390453078e-9,0.002852549088431962,-2.610733914805113e-7,9.807193562515353e-9,0.002852746181827145,-4.3236107396414083e-7,1.0051389365553414e-8,0.002853036583500799,-6.643300296990387e-7,1.0382115635541902e-8,0.0028534351813685878,-8.975086395893872e-7,1.0714629219647167e-8,0.002853929365115319,-1.0745790729053187e-6,1.096719853065988e-8,0.0028544839144717562,-1.1539281212368752e-6,1.1080391616891132e-8,0.002855051068247713,-1.1181731669905117e-6,1.1029268499031812e-8,0.002855582768565016,-9.75875355579879e-7,1.0825912624788529e-8,0.0028560415652221956,-7.566392276976092e-7,1.051252610395587e-8,0.0028564073406055135,-5.018534207721013e-7,1.0148247915315251e-8,0.002856678785926064,-2.5444286344771827e-7,9.794490668368394e-9,0.002856870524742683,-5.058886026101649e-8,9.503046426891806e-9,0.002857007914873242,8.512852095070961e-8,9.30908662963937e-9,0.0028571215454132087,1.412895044493818e-7,9.22891211852966e-9,0.002857242681589101,1.1896856287060092e-7,9.260923881079643e-9,0.0028573999738171854,3.009713316077348e-8,9.38800232202608e-9,0.0028576170512156747,-1.0428600410014353e-7,9.580041432918065e-9,0.002857910332403342,-2.5568229132032263e-7,9.796312889070212e-9,0.002858286478980994,-3.900984786692505e-7,9.988259642955946e-9,0.002858739364701392,-4.712582429285285e-7,1.0104059717794627e-8,0.00285924729195101,-4.661759280679692e-7,1.0096572400747676e-8,0.002859772355326098,-3.5361998523694726e-7,9.935435750221926e-9,0.0028602647405304277,-1.3415193562808552e-7,9.621442048735044e-9,0.0028606740590430527,1.6248167838119398e-7,9.197139078236257e-9,0.0028609662384943444,4.78853899398024e-7,8.74468806781909e-9,0.002861139063409164,7.44255750862787e-7,8.365236229068475e-9,0.002861226934688806,8.984655386532225e-7,8.144871394043985e-9,0.002861290126468282,9.137233591571715e-7,8.123196247026203e-9,0.0028613933351704225,8.035260371148903e-7,8.280824203979028e-9,0.002861584483698411,6.150660520729815e-7,8.55027050948895e-9,0.0028618827041504077,4.113854839993796e-7,8.841474477305177e-9,0.0028622775767180642,2.524378755512151e-7,9.068802254899132e-9,0.0028627363987564036,1.8135003911035153e-7,9.17060221962431e-9,0.0028632149243848224,2.1781405590917407e-7,9.118624569170666e-9,0.002863668101326738,3.577669060595684e-7,8.918529212376947e-9,0.0028640588395250108,5.775725882547501e-7,8.603998240368662e-9,0.002864363874395403,8.409557603452859e-7,8.226895323903023e-9,0.002864576317683268,1.1070964706719793e-6,7.845700967819764e-9,0.0028647049562361203,1.3383042800297684e-6,7.514484405755572e-9,0.0028647709664122996,1.505912805444349e-6,7.274393180785887e-9,0.0028648031644739605,1.5936658590036488e-6,7.148753085068565e-9,0.0028648329825001757,1.5985844872876452e-6,7.141820831205116e-9,0.0028648901078107145,1.5298597346848266e-6,7.240401923975936e-9,0.0028649992237887115,1.40662889791498e-6,7.417073022953166e-9,0.002865177723667968,1.255395999935133e-6,7.63388684017037e-9,0.002865433962330402,1.1074017364182093e-6,7.84611558047985e-9,0.0028657656359532793,9.9575507730559e-7,8.006322067477023e-9,0.002866158158739561,9.517297115380463e-7,8.069644697438206e-9,0.0028665835690910722,9.99411061201828e-7,8.001485323787432e-9,0.0028670015032235038,1.1483302317519537e-6,7.788115041184415e-9,0.002867364559705957,1.3852827350377053e-6,7.448455109494122e-9,0.0028676299233594852,1.6691386030128764e-6,7.041536345565719e-9,0.0028677759678411305,1.9347439744128324e-6,6.660862146080923e-9,0.0028678167309223023,2.1103546939003207e-6,6.409323306547407e-9,0.0028678034788689843,2.144698261273195e-6,6.3603400593137696e-9,0.0028678078376921227,2.029720577821034e-6,6.525302617003996e-9,0.0028678938191672595,1.8044434865642015e-6,6.8481776203151215e-9,0.002868094666236441,1.5376263800915127e-6,7.230454856236507e-9,0.002868405913933894,1.3009574329347206e-6,7.569539411050057e-9,0.0028687938676968555,1.1474463535309566e-6,7.789602788927635e-9,0.002869210861589051,1.1019524188615657e-6,7.855057338570128e-9,0.002869609334325944,1.1622461307956396e-6,7.769013139741857e-9,0.002869951231852881,1.3057241037395412e-6,7.563711223382599e-9,0.002870212677215331,1.4976923875705954e-6,7.288744102079043e-9,0.002870385194690064,1.699062535904297e-6,7.000097817318875e-9,0.002870474725317542,1.8727935944983242e-6,6.75093165594071e-9,0.002870499135165648,1.988954290042755e-6,6.584275013804583e-9,0.00287048464138741,2.0282382639665136e-6,6.527917653518532e-9,0.0028704616140799583,1.9837809533528225e-6,6.5917562221991524E-09,0.0028704602549171655,1.8612665906276216e-6,6.767640226165102e-9,0.002870506668811975,1.6774673462495774e-6,7.031500508441279e-9,0.0028706197689758587,1.457604560662817e-6,7.34716419913411e-9,0.0028708091655566463,1.2320673332684813e-6,7.671058717135242e-9,0.0028710739127016565,1.0328358362055718e-6,7.957305852913069e-9,0.0028714019528153388,8.896734068155328e-7,8.163146833604354e-9,0.0028717702214416355,8.259448522978371e-7,8.254940922690583e-9,0.0028721457505871515,8.537612288983449e-7,8.215181934479207e-9,0.0028724887943640687,9.684630238408015e-7,8.050494120702066e-9,0.0028727594429303256,1.1436800035455436e-6,7.798780069504199e-9,0.0028729285817180555,1.3300651297795598e-6,7.531028042365649e-9,0.0028729915695690435,1.462263368762386e-6,7.341218977444032e-9,0.002872978448805743,1.4772429274966988e-6,7.3198920236120235e-9,0.002872951252863827,1.339998687991839e-6,7.517195289934864e-9,0.0028729836176172785,1.0630678713911078e-6,7.914951705548082e-9,0.0028731308183241877,7.051695488262558e-7,8.42876029911416e-9,0.0028734078884947605,3.473260311513201e-7,8.942348496380804e-9,0.0028737882087745852,6.114666054513867e-8,9.353047158655345e-9,0.002874219668384876,-1.1272126322969022e-7,9.602619303010073e-9,0.0028746456433421104,-1.6888577001482716e-7,9.683354937474298e-9,0.002875020314855133,-1.291094150016922e-7,9.626438926383505e-9,0.00287531548780091,-3.018828501717634e-8,9.484597230108128e-9,0.0028755210579180877,8.668647485398011e-8,9.31689120875924e-9,0.0028756422882183752,1.8328829012502568e-7,9.178200849892443e-9,0.002875696134402279,2.288312141503027e-7,9.112800066087184e-9,0.002875707547399061,2.025805089596482e-7,9.150562494597015e-9,0.002875705846174958,9.52630333672185e-8,9.304873938120105e-9,0.0028757210926035038,-9.052120703341189e-8,9.57200496741452e-9,0.0028757804866157105,-3.4091383411167794e-7,9.932003851136088e-9,0.002875904942563708,-6.325855214179894e-7,1.035130470799866e-8,0.0028761062305016523,-9.357358663929467e-7,1.0787070613173603e-8,0.002876385114451254,-1.2180331505464313e-6,1.1192851470911072e-8,0.002876730724811969,-1.4490859095561661e-6,1.1524975361779462e-8,0.002877121258656621,-1.6050876840491572e-6,1.174919121731711e-8,0.002877526072604426,-1.6732673197605107e-6,1.1847070930135468e-8,0.0028779092664162932,-1.6557908710847165e-6,1.1821668584018685e-8,0.0028782350578963945,-1.5726563757144414e-6,1.1701746720225946e-8,0.002878475324870978,-1.4624372605699738e-6,1.1542873713258664e-8,0.0028786189483200725,-1.3787231489666856e-6,1.1422265207849368e-8,0.002878680701003052,-1.3798468481290254e-6,1.1423915368175761e-8,0.002878704787159146,-1.5113471987390404e-6,1.1613291349036044e-8,0.002878756903957089,-1.785757177929549e-6,1.2008265758302951e-8,0.002878902862502164,-2.1705939820080316e-6,1.2561939708202041e-8,0.0028791817969540797,-2.5954920375929927e-6,1.3173007501556022e-8,0.002879589402551466,-2.9784185508799e-6,1.3723483959784089e-8,0.0028800817252932734,-3.2567032182663314e-6,1.4123284543802338e-8,0.0028805956227206074,-3.4055518723271702e-6,1.4336808076009957e-8,0.00288107208392016,-3.4376003397330977e-6,1.4382284035630344e-8,0.0028814710783001875,-3.3898579305011365e-6,1.43129954824349e-8,0.0028817755563885373,-3.3082580675083343e-6,1.4195060433588716e-8,0.002881988308033612,-3.2361154678533363e-6,1.4090836012607044e-8,0.0028821262129773463,-3.207791533507497e-6,1.4049812193983022e-8,0.0028822147082530657,-3.246215519180097e-6,1.4105033781258338e-8,0.0028822834027905776,-3.36241780936278e-6,1.4272395487930903e-8,0.002882362616150177,-3.5558741422002764e-6,1.4551103140709693e-8,0.0028824803465096684,-3.815258525621979e-6,1.4924750790070064e-8,0.002882659335415783,-4.119686711663455e-6,1.5363142882474208e-8,0.0028829141547347752,-4.440809412356523e-6,1.5825359058537653e-8,0.0028832486380844327,-4.746136382797398e-6,1.626457640078978e-8,0.0028836543274357697,-5.003595714935634e-6,1.6634632356475022e-8,0.0028841105948802857,-5.186858658952929e-6,1.6897660746955784e-8,0.0028845868380229104,-5.280659678729527e-6,1.703172244416492e-8,0.0028850468268388713,-5.285119178421869e-6,1.703703042675255e-8,0.0028854548808014517,-5.2180136555174015e-6,1.693924927655556e-8,0.00288578318588404,-5.1141539701945615e-6,1.678862920440044e-8,0.0028860192930803964,-5.021207939658294e-6,1.6653980349342108e-8,0.0028861723562649236,-4.991365507388845e-6,1.6610608238690897e-8,0.0028862757956466495,-5.06888921218822e-6,1.6722303008240677e-8,0.0028863833910300974,-5.2754810860775145e-6,1.7020219754766915e-8,0.002886556622110814,-5.598336802918629e-6,1.7485702072118628e-8,0.0028868448006271175,-5.988001271290007e-6,1.804727106737048e-8,0.0028872654738177545,-6.371171534302883e-6,1.8599132347397268e-8,0.002887795844354059,-6.675623117016277e-6,1.903710691825924e-8,0.0028883812762736244,-6.855447025490349e-6,1.9295003604406827e-8,0.0028889563468819752,-6.903610854021034e-6,1.9362747686658358e-8,0.0028894665800328696,-6.847559620219423e-6,1.9280059028761153e-8,0.0028898810668172878,-6.734011844686922e-6,1.911450684067196e-8,0.0028901940052642504,-6.612662324206851e-6,1.893795127279494e-8,0.0028904191547270935,-6.524988204859821e-6,1.881034874825922e-8,0.002890582222841485,-6.4992181867616665e-6,1.8772471855239283e-8,0.0028907142743236822,-6.549601240706169e-6,1.8844849350322546e-8,0.0028908470537224477,-6.677663335062472e-6,1.9029580088897277e-8,0.0028910098168515577,-6.87394958687946e-6,1.9312855656179486e-8,0.0028912269035187145,-7.1197167658875545e-6,1.966742957177217e-8,0.0028915154465618195,-7.388703555439692e-6,2.0055217248474415e-8,0.002891882983346302,-7.649501334948221e-6,2.0430764834169687e-8,0.002892325261621495,-7.869140909601243e-6,2.0746451553512368e-8,0.002892825069667161,-8.018140622490618e-6,2.095977025193972e-8,0.0028933531569161294,-8.0765493987099e-6,2.1042023401707183e-8,0.0028938720607829473,-8.039749741569616e-6,2.0986676926427616e-8,0.002894342905333149,-7.92219781746215e-6,2.081475472290096e-8,0.0028947341280570267,-7.757261613370963e-6,2.0574609101836252e-8,0.0028950300744023127,-7.592178937176516e-6,2.033462657209387e-8,0.0028952370056188714,-7.47855706718128e-6,2.0169463592427875e-8,0.0028953844081573035,-7.460137255342665e-6,2.0142316838205095e-8,0.00289552034348127,-7.560525475110968e-6,2.0287169809216575e-8,0.0028957008077851775,-7.774273461944861e-6,2.0595931401456922e-8,0.0028959747760086865,-8.06484752748952e-6,2.1015565228355683e-8,0.0028963687909720668,-8.37202856618837e-6,2.1458840848969644e-8,0.002896876822197008,-8.628384556733143e-6,2.1828161536226112e-8,0.002897460687328443,-8.779917072525279e-6,2.2045408873836965e-8,0.0028980621551318326,-8.802502597728348e-6,2.207573173944743e-8,0.002898621746734977,-8.706920074860234e-6,2.1934852495291796e-8,0.0028990957821008693,-8.531279911183452e-6,2.1678125082780306e-8,0.002899465167343782,-8.326114196731398e-6,2.137891611386844e-8,0.0028997348041497496,-8.13959047569529e-6,2.110712912790612e-8,0.002899926963249216,-8.007836040779991e-6,2.091513975889782e-8,0.002900073067994656,-7.951291908204955e-6,2.0832502054918495e-8,0.002900206831484279,-7.975306429587075e-6,2.0866828269500727e-8,0.002900359629928538,-8.072622529241776e-6,2.1007425546019428e-8,0.0029005576921144888,-8.226159990315293e-6,2.1229360644075667e-8,0.0029008202589749987,-8.411462892954981e-6,2.1497037476612273e-8,0.0029011579526491515,-8.59892006014462e-6,2.176744153154923e-8,0.0029015709907129882,-8.756361710375036e-6,2.1993920303424827e-8,0.002902047505571332,-8.85279154909494e-6,2.2131593765595492e-8,0.0029025628872768883,-8.863671727157463e-6,2.2145000075912374e-8,0.0029030815052825793,-8.777345014016352e-6,2.2017385091665053e-8,0.0029035620496829224,-8.600986341434939e-6,2.175931513310784e-8,0.002903966637114285,-8.363362576374002e-6,2.141266869690318e-8,0.0029042717781266334,-8.111634884846253e-6,2.1045980547935134e-8,0.002904477372654277,-7.901280532790563e-6,2.073978444425112e-8,0.002904609628244343,-7.781372369153714e-6,2.0565217145761693e-8,0.002904715791276944,-7.780057503835996e-6,2.056294239996993e-8,0.0029048518634546975,-7.895457374774159e-6,2.0729997122619613e-8,0.0029050672122561154,-8.095212921731798e-6,2.1019213111936452e-8,0.0029053908949938285,-8.324795261790677e-6,2.1351336711916632e-8,0.002905823673533291,-8.52201545814966e-6,2.1636089845854755e-8,0.0029063379482547036,-8.63355664871243e-6,2.1796127132877224e-8,0.00290688567731947,-8.628754999473182e-6,2.178700899956975e-8,0.002907411886688896,-8.506448804640417e-6,2.1607149038605026e-8,0.002907869313118284,-8.29292031099503e-6,2.1294847433827952e-8,0.002908229337953015,-8.032291094367549e-6,2.0914343210019756e-8,0.002908486197412823,-7.773494661513888e-6,2.0536855496935417e-8,0.0029086544808403334,-7.5585686559262325e-6,2.0223523711567358e-8,0.0029087623904295403,-7.415402414785589e-6,2.001484051067057e-8,0.002908843981353781,-7.35553482324306e-6,1.9927459583560743e-8,0.002908932726752054,-7.375649943051864e-6,1.9956406208574644e-8,0.0029090572536835126,-7.460809532075294e-6,2.0079817615799907e-8,0.002909238952715364,-7.5879228762615555e-6,2.0264014865399943e-8,0.0029094906884145105,-7.728775534689363e-6,2.0467914700593435e-8,0.0029098158523242937,-7.852662044244406e-6,2.064685157630933e-8,0.002910207338650096,-7.929175550194102e-6,2.0756624253538985e-8,0.0029106466203267355,-7.931911576665453e-6,2.0758877958416994e-8,0.002911103814377557,-7.843588459108618e-6,2.062855490190973e-8,0.0029115402023730556,-7.66224497593975e-6,2.0362916420013977e-8,0.002911914696322001,-7.406730952055019e-6,1.998953139422466e-8,0.0029121945161994208,-7.118129171687856e-6,1.9568325801371748e-8,0.0029123675377467186,-6.853478439441242e-6,1.918239985768633e-8,0.002912450734123804,-6.670885447814342e-6,1.8916298524169225e-8,0.002912488859188778,-6.610394269086291e-6,1.88281387438807e-8,0.0029125417695362995,-6.679120462312963e-6,1.8928018749465943e-8,0.0029126652147423104,-6.848070988212437e-6,1.9173497757355166e-8,0.0029128935517388484,-7.061935206702308e-6,1.9483944368025575e-8,0.002913231037578079,-7.256695642236208e-6,1.9766193972595816e-8,0.0029136533209005457,-7.377571585707302e-6,1.9940619511564884e-8,0.0029141165252539614,-7.391701575272796e-6,1.9959524190801965e-8,0.0029145697689046887,-7.293322714917477e-6,1.981463990082668e-8,0.0029149673788549375,-7.1018310443380406e-6,1.953430007430907e-8,0.002915278149714961,-6.8545563898393026e-6,1.9172935518929185e-8,0.002915490151865234,-6.596725101954491e-6,1.8796465187354656e-8,0.0029156107375936115,-6.371248850546456e-6,1.846741356078346e-8,0.002915662539790091,-6.210673245514143e-6,1.8233164243708407e-8,0.0029156771594396804,-6.1327104522359935e-6,1.8119444504375368e-8,0.002915688499493966,-6.139498762978267e-6,1.812926086634637e-8,0.0029157272510905927,-6.219687203803143e-6,1.824596696099231e-8,0.0029158172217261446,-6.3520114728173305e-6,1.843850247261238e-8,0.002915973412501954,-6.5091582694995025e-6,1.8667034188020637e-8,0.0029162012640837876,-6.6612268782975755e-6,1.888798608393158e-8,0.0029164964235661433,-6.778735787311186e-6,1.9058396783844645e-8,0.002916844658644618,-6.835584702079287e-6,1.91402221340199e-8,0.0029172220097263466,-6.812552966048134e-6,1.910544630322981e-8,0.002917595884444303,-6.7017614420562816e-6,1.8942618913472558e-8,0.002917928412307093,-6.511815863831633e-6,1.8664385893287575e-8,0.00291818347875855,-6.2719153866716e-6,1.8313480562819844e-8,0.002918337682433519,-6.031490122748525e-6,1.7962147335797165e-8,0.002918392453911434,-5.8514246809711895e-6,1.7699255420367632e-8,0.0029183808220965175,-5.785913109725185e-6,1.760375851831056e-8,0.002918361694896576,-5.860827931022856e-6,1.7713146738291097e-8,0.0029184005478205227,-6.060277614749884e-6,1.8003943123245615e-8,0.0029185450818061424,-6.330635628385983e-6,1.8397723097046376e-8,0.002918808813042895,-6.6005652769916755e-6,1.8790403319492904e-8,0.002919169951357401,-6.805733183674234e-6,1.908827114831872e-8,0.0029195829508730235,-6.906435273516535e-6,1.92336174657321e-8,0.002919994648581057,-6.893430674434389e-6,1.9213166424777753e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_2.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_2.json new file mode 100644 index 000000000..7805bb3bf --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_2.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":2000,"numberOfSamples":1000,"samples":[-0.0019226433452019043,-4.2400202047522655e-5,-4.847209139509104e-8,-0.0019224915279308452,-4.232138293995991e-5,-4.839917575682174e-8,-0.0019223575599970867,-4.2339533342532786e-5,-4.841941987929699e-8,-0.0019221925201880694,-4.2455757141232014e-5,-4.853500256368106e-8,-0.0019219535221161883,-4.264378690983704e-5,-4.87214377132331e-8,-0.0019216173050324704,-4.285653639574512e-5,-4.893368444013015e-8,-0.0019211878632388768,-4.304035090341533e-5,-4.911986351109583e-8,-0.0019206944269591652,-4.3151566455827686e-5,-4.923733483565604e-8,-0.001920180782153211,-4.316840557061996e-5,-4.9264336921476375e-8,-0.0019196912154135558,-4.3093903838697776e-5,-4.920299044056076e-8,-0.001919259170950511,-4.2950548434361e-5,-4.9074301884897993e-8,-0.0019189019210674083,-4.277089886837732e-5,-4.8909249976046343e-8,-0.0019186208521778832,-4.258868047478004e-5,-4.8740241599705884e-8,-0.001918404926768647,-4.243272605567538e-5,-4.859521792579728e-8,-0.0019182349450095773,-4.2323928794774185e-5,-4.849461482060666e-8,-0.0019180872700253946,-4.2274266862589164E-05,-4.8450338629402915e-8,-0.001917936666180632,-4.228680533004299e-5,-4.846574052979398e-8,-0.00191775854316843,-4.2355896173164964e-5,-4.8535824807684226e-8,-0.0019175311877270766,-4.246735024004276e-5,-4.864742159638906e-8,-0.0019172384671460499,-4.25989290061144e-5,-4.877961167038227e-8,-0.0019168730864799963,-4.2721876682799584e-5,-4.890508625070886e-8,-0.0019164398837302117,-4.280432151427329e-5,-4.8993279677066866e-8,-0.0019159579014177714,-4.281706315274191e-5,-4.901583883335078e-8,-0.0019154594243000278,-4.27412144250086e-5,-4.8953968414289994e-8,-0.001914984557283099,-4.2575562469439085e-5,-4.880561552483321e-8,-0.0019145716125768752,-4.234039279521026e-5,-4.858934382627422e-8,-0.0019142459086730812,-4.207501807745824e-5,-4.834220694952108e-8,-0.0019140111182697102,-4.1828569489815494e-5,-4.811113500434928e-8,-0.0019138468399848853,-4.1646650455964184e-5,-4.794024685992306e-8,-0.0019137136475314569,-4.155842585264431e-5,-4.785840090516636e-8,-0.0019135639168575628,-4.156847538008292e-5,-4.787112479174571e-8,-0.001913354878178476,-4.165575436672902e-5,-4.795925785880041e-8,-0.001913060039736298,-4.1779660100407035e-5,-4.808445425303678e-8,-0.0019126758326174886,-4.189128905126362e-5,-4.8199834042895305e-8,-0.0019122216639617473,-4.194655693717889e-5,-4.8262624541360104e-8,-0.0019117335388331718,-4.191721880810053e-5,-4.8244930247959284e-8,-0.0019112535774869718,-4.17965282482666e-5,-4.8139407883790543e-8,-0.0019108191058004997,-4.159831661316574e-5,-4.795859671838348e-8,-0.001910454761111615,-4.13507805095086e-5,-4.7729094163578805e-8,-0.0019101693588310655,-4.108797784158734e-5,-4.74834365018481e-8,-0.0019099571113809235,-4.084210928294797e-5,-4.725264424568893e-8,-0.0019098014051956349,-4.06383521782112e-5,-4.706116300989979e-8,-0.001909679232807439,-4.049244367589526e-5,-4.6924445600308274e-8,-0.0019095650792493577,-4.041027304587661e-5,-4.684851156054176e-8,-0.0019094338706790138,-4.038850509596943e-5,-4.6830551880131895e-8,-0.0019092631960406178,-4.041545998091156e-5,-4.685979719885473e-8,-0.0019090353342274217,-4.0471961726856714e-5,-4.691831881589462e-8,-0.0019087395911655302,-4.053242839868951e-5,-4.698199191766588e-8,-0.0019083750969175394,-4.0566889485238066e-5,-4.7022295836454817e-8,-0.0019079535950202848,-4.05448090409642e-5,-4.7009857068801336e-8,-0.0019075008929219535,-4.0441352326518995e-5,-4.692041592595363e-8,-0.0019070548602137859,-4.024557340002766e-5,-4.674274417153859e-8,-0.0019066581194424014,-3.996789525520936e-5,-4.648596905336088e-8,-0.0019063458229643833,-3.964246667720178e-5,-4.618202616974119e-8,-0.001906132593687367,-3.932066250072738e-5,-4.5879631296205274e-8,-0.001906005112413036,-3.9056140911694693e-5,-4.563013841888741e-8,-0.0019059250849624966,-3.888725831245831e-5,-4.547077730150599e-8,-0.0019058418160187416,-3.882488208844757e-5,-4.541289156609024e-8,-0.0019057084893034362,-3.885058262649113e-5,-4.5439933455113804e-8,-0.0019054953071705263,-3.892448678948119e-5,-4.551462448108332e-8,-0.0019051956015066044,-3.899818092129441e-5,-4.559102248754266e-8,-0.001904824751066378,-3.902764552633575e-5,-4.562680789434229e-8,-0.0019044139453100216,-3.898286178877979e-5,-4.5592592314242095e-8,-0.0019040014133682513,-3.8852641286461894e-5,-4.547679044559279e-8,-0.0019036234930003598,-3.864464423892581e-5,-4.5285911009026024e-8,-0.0019033074182967,-3.838144973804248e-5,-4.504099501526467e-8,-0.0019030670807785748,-3.809414814477403e-5,-4.477156044224583e-8,-0.0019029021776647626,-3.7815292683842436e-5,-4.4508817510060506e-8,-0.001902800227035411,-3.757290803529455e-5,-4.427982585191298e-8,-0.0019027403062597105,-3.738655521525043e-5,-4.410361508352597e-8,-0.0019026972766109718,-3.726562021454014e-5,-4.3989482282936625e-8,-0.0019026455605967178,-3.720939282853564e-5,-4.393706825168861e-8,-0.001902562049494492,-3.720819681311018e-5,-4.393747898583925e-8,-0.0019024282429587474,-3.7244887169539354e-5,-4.397474157144386e-8,-0.0019022320167928473,-3.7296417780327447e-5,-4.402726172840666e-8,-0.0019019694121183246,-3.733563521997301e-5,-4.406942025345132e-8,-0.0019016466101295054,-3.7333817380047615e-5,-4.4073850286943826e-8,-0.001901281721675244,-3.72647279533573e-5,-4.401521158739995e-8,-0.0019009051492186858,-3.7110772537172744e-5,-4.387608872624823e-8,-0.0019005564761927897,-3.687070357499274e-5,-4.365449081610721e-8,-0.0019002760006965934,-3.656614621766662e-5,-4.3370288285066725e-8,-0.0019000913323042824,-3.624205466668279e-5,-4.306583828633659e-8,-0.0019000039601944792,-3.5956706816941076e-5,-4.279656932567122e-8,-0.0018999840816792122,-3.576226105855051e-5,-4.261250079410351e-8,-0.0018999792883793371,-3.568461104514584e-5,-4.253901137884262e-8,-0.001899933981398471,-3.5713853399087564e-5,-4.2567602344540055e-8,-0.0018998090711157681,-3.581022732657273e-5,-4.266128735242672e-8,-0.0018995924498515157,-3.5920529128532807E-05,-4.27699363285063e-8,-0.0018992979805863262,-3.599552540735251e-5,-4.284667515898346e-8,-0.001898956996465333,-3.60016505232314e-5,-4.2859033641491364e-8,-0.0018986077115788766,-3.5925404995038095e-5,-4.2793327231141533e-8,-0.0018982861274868695,-3.5772115322624845e-5,-4.2653762704726326e-8,-0.0018980197803509253,-3.556151123416992e-5,-4.245848237196928e-8,-0.0018978243192027849,-3.532201505409536e-5,-4.2234258129154944e-8,-0.0018977025183165013,-3.5084842908056075e-5,-4.201085903922587e-8,-0.001897645338891351,-3.487865622253372e-5,-4.181584089370757e-8,-0.001897634548299051,-3.472539749417785e-5,-4.1670438822720854e-8,-0.0018976462592206278,-3.4637684651986404E-05,-4.158699002545304e-8,-0.0018976547528813345,-3.461783260192269e-5,-4.156798431104482e-8,-0.0018976360025567379,-3.465835456450116e-5,-4.160658512785339e-8,-0.0018975704668702292,-3.474353699435762e-5,-4.168818028849286e-8,-0.0018974450856599756,-3.485154582856132e-5,-4.179238643199875e-8,-0.0018972547032642363,-3.4956750270050015e-5,-4.189517808310863e-8,-0.0018970031462578617,-3.5032293373468896e-5,-4.1971187462921197e-8,-0.001896704041121835,-3.5053177068163955e-5,-4.199649895495414e-8,-0.0018963811064912409,-3.500033872352196e-5,-4.195247884233675e-8,-0.0018960669388229457,-3.486606242620335e-5,-4.183101890714069e-8,-0.0018957986732221059,-3.466005594878666e-5,-4.1640536726904226e-8,-0.0018956091571617987,-3.441367338006517e-5,-4.141024300465335e-8,-0.0018955143084655717,-3.417789714991304e-5,-4.11883959487616e-8,-0.0018955015199407235,-3.401103934461799e-5,-4.103064766105313e-8,-0.0018955276091062383,-3.395751831846302e-5,-4.097979506922786e-8,-0.0018955320612609062,-3.4027724788744977e-5,-4.104650552871127e-8,-0.001895460925824634,-3.419213691026499e-5,-4.120354608540807e-8,-0.0018952876637236959,-3.439431347479264e-5,-4.139792350116541e-8,-0.0018950194973305701,-3.4574094187676726e-5,-4.157273141268476e-8,-0.00189468901820827,-3.468727701743215e-5,-4.168573954249668e-8,-0.0018943393648524587,-3.471417304124221e-5,-4.171758103848185e-8,-0.001894011175966523,-3.4658126432902484e-5,-4.1670568510380554e-8,-0.0018937347654549707,-3.4538913747532676e-5,-4.156270803527193e-8,-0.0018935271586108895,-3.438520384909261e-5,-4.1420753571334326e-8,-0.0018933922404869188,-3.4228171385826936e-5,-4.127420869753851e-8,-0.0018933224519850319,-3.409667569558539e-5,-4.115067186901395e-8,-0.001893301244193991,-3.40137190510597e-5,-4.10723266568858e-8,-0.0018933060255165923,-3.399399788202456e-5,-4.105348708812609e-8,-0.0018933114133081418,-3.404253904550354e-5,-4.109924608197351e-8,-0.0018932925837213562,-3.415443233452324e-5,-4.120524021833533e-8,-0.0018932284621856921,-3.431570348176952e-5,-4.135853030487643e-8,-0.001893104383091029,-3.4505267334039883e-5,-4.1539480078514925e-8,-0.00189291393259836,-3.469764551964496e-5,-4.172428673891212e-8,-0.0018926599383916741,-3.486610463956082e-5,-4.188783776156979e-8,-0.0018923546511316431,-3.498605241766292e-5,-4.2006785198344876e-8,-0.001892019101621626,-3.5038631408074926e-5,-4.206286015466167e-8,-0.0018916814855736094,-3.5014534367428806e-5,-4.204652314564249e-8,-0.001891374040852943,-3.491799599962725e-5,-4.196092987201902e-8,-0.0018911275262606326,-3.477018738663742e-5,-4.182542386637248e-8,-0.0018909628356181614,-3.460994197225293e-5,-4.167647877700423e-8,-0.0018908809794151223,-3.448870510773402e-5,-4.1563025636714426e-8,-0.001890855680381783,-3.4457266426274074e-5,-4.1533801407386716e-8,-0.0018908353879217353,-3.454621539121781e-5,-4.1618610494880996e-8,-0.0018907590601062614,-3.474930510512576e-5,-4.1812322746267864e-8,-0.0018905806559135173,-3.502183484605819e-5,-4.2073175486873276e-8,-0.0018902883688857062,-3.529801938551741e-5,-4.233914044230188e-8,-0.0018899068551920142,-3.551742428610809e-5,-4.255290749642152e-8,-0.001889483249018912,-3.564481602849056e-5,-4.268065997382881e-8,-0.0018890679245541686,-3.567523527632135e-5,-4.2716955210695495e-8,-0.00188870032072965,-3.562727788606181e-5,-4.267856906938492e-8,-0.0018884030745074487,-3.5532202829357725e-5,-4.2594437460528625e-8,-0.0018881823723488097,-3.54243921208098e-5,-4.2496795451858114e-8,-0.0018880312102406572,-3.533504994855418e-5,-4.2415230301185514e-8,-0.0018879332139387782,-3.5288747014991394e-5,-4.237330143238159e-8,-0.0018878660597741292,-3.5301680267534746e-5,-4.23867434249854e-8,-0.001887804493950075,-3.5380813257388804e-5,-4.246254511061698e-8,-0.0018877231921547025,-3.552361030820859e-5,-4.259866804167272e-8,-0.0018875996014664324,-3.5718391160070784e-5,-4.278440830777563e-8,-0.0018874167566322304,-3.594551788242534e-5,-4.300154835611885e-8,-0.0018871657927251448,-3.617965687985636e-5,-4.322647911791066e-8,-0.0018868476636197298,-3.639308212496223e-5,-4.3433238917490384e-8,-0.0018864736576865142,-3.655967876258171e-5,-4.359717299143751e-8,-0.0018860644895497603,-3.66591992046944e-5,-4.369885112248462e-8,-0.0018856478855353213,-3.668124668546799e-5,-4.37278181581545e-8,-0.0018852547440176993,-3.6628421846668554e-5,-4.3685686879638724e-8,-0.0018849140165977931,-3.651813115392309e-5,-4.358808695279573e-8,-0.0018846464338938206,-3.638236555382138e-5,-4.346473580791103e-8,-0.0018844576056432885,-3.6264235942699986e-5,-4.3356365793623564e-8,-0.0018843321784880178,-3.6209913884206997e-5,-4.3307130103906174e-8,-0.0018842322632395324,-3.625576306513159e-5,-4.335226126403655e-8,-0.0018841040436168481,-3.641349949400654e-5,-4.350374571050373e-8,-0.0018838940566287233,-3.6660400894427665e-5,-4.374080127460915e-8,-0.001883570085252579,-3.694276386559895e-5,-4.401301964778491e-8,-0.001883135475562002,-3.7194520085842316e-5,-4.425796870583932e-8,-0.001882627578444282,-3.73621475032825e-5,-4.442477583414205e-8,-0.0018821014403124572,-3.742201299485457e-5,-4.4490542846202025e-8,-0.001881609313986513,-3.7382507458315104e-5,-4.4462439215216833e-8,-0.0018811865907120172,-3.7274116019286886e-5,-4.436849914685254e-8,-0.001880847632416261,-3.713591350573811e-5,-4.424508395808057e-8,-0.00188058871037337,-3.7004918805228556e-5,-4.4126962304448526e-8,-0.0018803936614843618,-3.691021781204701e-5,-4.4041748300567786e-8,-0.0018802392951189633,-3.6870851790922326e-5,-4.400778710220607e-8,-0.0018800994849178696,-3.68957089255605e-5,-4.40339130327419e-8,-0.0018799481169941405,-3.698411204251374e-5,-4.411991825255021e-8,-0.0018797614670353787,-3.7126553405316096e-5,-4.425722892864331e-8,-0.0018795204776576248,-3.730559347706619e-5,-4.442976975442706e-8,-0.0018792131464299988,-3.749729428555327e-5,-4.46153152223929e-8,-0.0018788368365865878,-3.7673694011914794e-5,-4.4787772369335294e-8,-0.0018783998781203336,-3.780658890837698e-5,-4.492065092723705e-8,-0.0018779216417479986,-3.787236867220032e-5,-4.4991520603290696e-8,-0.0018774304478634798,-3.785712894848209e-5,-4.4986782858554793e-8,-0.001876959132956837,-3.776087580238688e-5,-4.490568783170876e-8,-0.001876538772816988,-3.759950843431477e-5,-4.476237298058196e-8,-0.0018761917084975216,-3.740363503756282e-5,-4.458499652618009e-8,-0.0018759253154816227,-3.721393836510612e-5,-4.441161416080866e-8,-0.0018757279816746558,-3.7073377257336396e-5,-4.4282962063134714e-8,-0.0018755687920489152,-3.701708377818567e-5,-4.4232881827984826e-8,-0.0018754023218197238,-3.706175871807319e-5,-4.427809041286009e-8,-0.0018751791516401983,-3.71976903316632e-5,-4.4410338519050925e-8,-0.0018748606150037481,-3.738752598197328e-5,-4.4594994984169714e-8,-0.0018744330348925565,-3.7574982787928245E-05,-4.47791613026569e-8,-0.0018739145177022712,-3.770239276914684e-5,-4.490826020461936e-8,-0.0018733495373167643,-3.773009490362128e-5,-4.4944415378813574e-8,-0.0018727931908080317,-3.764831441568e-5,-4.487773977743384e-8,-0.0018722931442570632,-3.7476441825173546e-5,-4.472576455407728e-8,-0.0018718776143170825,-3.72522449686114e-5,-4.452343076403651e-8,-0.0018715526178116695,-3.701813258333055e-5,-4.431030817274317e-8,-0.0018713062231411261,-3.681055615655657e-5,-4.4120686585272034e-8,-0.001871115468151383,-3.665468354723957e-5,-4.397851191896047e-8,-0.001870952694577932,-3.6563328602725056e-5,-4.389625440586987e-8,-0.0018707900517583916,-3.653811265418476e-5,-4.3875885637797216e-8,-0.0018706023334060244,-3.6571255822349916e-5,-4.391050608580251e-8,-0.0018703688700737859,-3.664722159578986e-5,-4.398588937722728e-8,-0.0018700751930006965,-3.6744157938658e-5,-4.408184554328447e-8,-0.0018697148769254426,-3.683557666976917e-5,-4.4173775089313205e-8,-0.0018692914772034106,-3.6892936200826666e-5,-4.423502611041501e-8,-0.0018688199023591616,-3.688965083963331e-5,-4.424057092448585e-8,-0.0018683261082645549,-3.680648604854699e-5,-4.4172010900809014e-8,-0.0018678439684996118,-3.663736658049673e-5,-4.4023038613393244e-8,-0.0018674088734324848,-3.639364723333976e-5,-4.3803546879327065e-8,-0.0018670490319146785,-3.610454803253589e-5,-4.354021989210011e-8,-0.001866776960604691,-3.581233195531623e-5,-4.327223113044107e-8,-0.0018665842545617494,-3.556274227869284e-5,-4.304246095848443e-8,-0.0018664419014308188,-3.539322985208859e-5,-4.2886518844144926e-8,-0.001866306540510951,-3.532250177755452e-5,-4.282282625286369e-8,-0.0018661311596336301,-3.5344543323723834e-5,-4.284673828172474e-8,-0.0018658774885188531,-3.542898898557433e-5,-4.293057236042494e-8,-0.0018655268253949977,-3.55281941668765e-5,-4.303001094315354e-8,-0.0018650860333417425,-3.55896847358241e-5,-4.309572055327366e-8,-0.0018645862558132557,-3.557072469934887e-5,-4.3087114771064386e-8,-0.001864074064290464,-3.54502290003869e-5,-4.298370377047688e-8,-0.0018635978679334747,-3.523359331224885e-5,-4.278980205390345e-8,-0.0018631947076426666,-3.494883476042089e-5,-4.2531058883068645e-8,-0.0018628822307316867,-3.4636347734627516E-05,-4.224496475448857e-8,-0.0018626577466252,-3.433705755884229e-5,-4.196979779298566e-8,-0.0018625028468491243,-3.408334448344101e-5,-4.173608792809358e-8,-0.0018623903292806535,-3.389462368841906e-5,-4.1562378749819724e-8,-0.001862290600784725,-3.377697613200107e-5,-4.145477037782527e-8,-0.0018621762300559555,-3.3725088096835355e-5,-4.14086669723388e-8,-0.0018620246347852986,-3.372488473601601e-5,-4.141123207304418e-8,-0.0018618195632346566,-3.375593156589706e-5,-4.1443656121148575e-8,-0.0018615521548540242,-3.3793432453618705e-5,-4.148302730689643e-8,-0.001861222100187459,-3.3810221048498295E-05,-4.15041470998425e-8,-0.0018608389284970092,-3.377941053241642e-5,-4.148192086511341e-8,-0.0018604228570434176,-3.367833230390359e-5,-4.139496124109246e-8,-0.0018600040268228783,-3.3493942425028966e-5,-4.123062094176194e-8,-0.001859618642548962,-3.322877352067173e-5,-4.0990619843655576e-8,-0.0018593011806838898,-3.290498445207031e-5,-4.0694967467908326e-8,-0.001859073836432133,-3.256319848003421e-5,-4.038105550600808e-8,-0.0018589370096645738,-3.225400787141628e-5,-4.0095898376829484e-8,-0.0018588658572420299,-3.202355089014602e-5,-3.988278237900221e-8,-0.001858815953690681,-3.1898535195761845e-5,-3.9767279252543205e-8,-0.0018587365322608792,-3.187731481624273e-5,-3.974875641256137e-8,-0.001858585847420525,-3.193072891426777e-5,-3.9800881931187754e-8,-0.0018583427276889898,-3.201157846011818e-5,-3.988018363222736e-8,-0.001858011024484624,-3.206838339685549e-5,-3.993871620605644e-8,-0.0018576168661056972,-3.2058722129593e-5,-3.993651170976707e-8,-0.001857200628294303,-3.1958785793748546e-5,-3.98506487342928e-8,-0.0018568063178679155,-3.1767390735336565e-5,-3.9679225404044e-8,-0.0018564711830394505,-3.150417991339459e-5,-3.943989843936122e-8,-0.0018562180244630548,-3.120309508365586e-5,-3.916393604405171e-8,-0.001856051832860989,-3.0903287984785486e-5,-3.888777991719524e-8,-0.0018559610387409902,-3.0640165715613776e-5,-3.864464037772421e-8,-0.0018559222165318323,-3.043888182499085e-5,-3.845831450517588e-8,-0.0018559062367179708,-3.031135180046263e-5,-3.8340287099323454e-8,-0.0018558839785556914,-3.025648674119293e-5,-3.828987583339211e-8,-0.0018558305005729916,-3.0262498510445098e-5,-3.829637141557298e-8,-0.0018557274688207667,-3.030998413607464e-5,-3.8341946180221575e-8,-0.0018555642923261315,-3.0374874455143256e-5,-3.8404431294548646e-8,-0.0018553386335638984,-3.043096245585696e-5,-3.8459652833342595e-8,-0.0018550567897867762,-3.0452262426219995e-5,-3.8483550463237314e-8,-0.0018547340635318174,-3.041572528206477e-5,-3.8454603062521525e-8,-0.0018543947164707576,-3.03048875961989e-5,-3.835716288178646e-8,-0.0018540704590361671,-3.0114692323656852e-5,-3.81859702743685e-8,-0.0018537960249984855,-2.985666954648834e-5,-3.79511015108531e-8,-0.0018536008786521339,-2.9562027461414482e-5,-3.768102528692731e-8,-0.0018534981424192035,-2.927893614320846e-5,-3.742024332911934e-8,-0.0018534751696137296,-2.9061233360087007e-5,-3.72188887172703e-8,-0.0018534923481789171,-2.8950357584252507e-5,-3.711593484750272e-8,-0.0018534940550578869,-2.8958436077817732e-5,-3.7123378482837e-8,-0.0018534282008300274,-2.9062277323979435e-5,-3.722046668883958e-8,-0.0018532645332598092,-2.921211788923309e-5,-3.736159207290112e-8,-0.0018530028720135114,-2.934986972526837e-5,-3.7493050320642694e-8,-0.0018526694542170326,-2.942727873570747e-5,-3.756982425163037e-8,-0.0018523058642196187,-2.9417150023504876e-5,-3.7566073539067835e-8,-0.0018519564866905035,-2.9316192868627697e-5,-3.7477965536880444e-8,-0.0018516584089416203,-2.9141557732680905e-5,-3.7320700414486564e-8,-0.001851435208412855,-2.8923992161479002e-5,-3.712235494419344e-8,-0.001851294541339165,-2.869997092993335e-5,-3.691666372244825e-8,-0.0018512288972952473,-2.850431556199019e-5,-3.673612972502268e-8,-0.0018512187605911334,-2.8364293030248146e-5,-3.6606422818222735e-8,-0.0018512372743969517,-2.8295880091963878e-5,-3.6542771387623024e-8,-0.001851255373367241,-2.830245486957463e-5,-3.654865101402205e-8,-0.0018512464347500161,-2.837567990696616e-5,-3.661658029509977e-8,-0.0018511897654824728,-2.849797616767571e-5,-3.6730452314410044e-8,-0.0018510726455833026,-2.864577894127868e-5,-3.6868605111867225e-8,-0.0018508911239511774,-2.879283048085962e-5,-3.700688885749968e-8,-0.0018506500169525825,-2.891316386992196e-5,-3.712138235946777e-8,-0.0018503624659893852,-2.8983841434482034e-5,-3.719083313132091e-8,-0.001850049192722774,-2.8987717253845237e-5,-3.719912582085492e-8,-0.00184973724683297,-2.8916604783197052e-5,-3.7138199915807674e-8,-0.0018494574590516221,-2.877500685094965e-5,-3.7011601488886906e-8,-0.001849239457271444,-2.8583618727700412e-5,-3.6837917133073514e-8,-0.001849103637120204,-2.8380420558935783e-5,-3.665199142573758e-8,-0.0018490512556514666,-2.8216113176951286e-5,-3.650082802289004e-8,-0.0018490568923369543,-2.814133170477168e-5,-3.643173901900574e-8,-0.001849070044366471,-2.8187498919253204e-5,-3.6474479853762786e-8,-0.0018490301023305032,-2.835027238269989e-5,-3.662573037762882e-8,-0.0018488899067574623,-2.8587217166636767e-5,-3.6846766146306595e-8,-0.0018486348257891318,-2.883361606393152e-5,-3.707797543919425e-8,-0.0018482863056600417,-2.902755950667316e-5,-3.726201459105288e-8,-0.0018478899852914469,-2.9130064005063796e-5,-3.736241363816512e-8,-0.0018474976562760789,-2.91321131307372e-5,-3.737016828147584e-8,-0.0018471524750899352,-2.905016180405401e-5,-3.729976063286029e-8,-0.0018468812786227445,-2.8916268553225196e-5,-3.718025357565311e-8,-0.0018466931172711491,-2.876806315238052e-5,-3.7046173746412294e-8,-0.0018465815057894385,-2.8640983775258864e-5,-3.6930365429741035e-8,-0.00184652829693714,-2.8563136245366806e-5,-3.685914654239289e-8,-0.0018465080445311866,-2.8552306292304803e-5,-3.6849396405970724e-8,-0.0018464923711327586,-2.8614698711177184e-5,-3.69072585309602e-8,-0.0018464540475209713,-2.874515858709884e-5,-3.702828145510411e-8,-0.001846370522506678,-2.8928669467886978e-5,-3.7198811661589566e-8,-0.001846226627091265,-2.9142919199792575e-5,-3.739840984195331e-8,-0.0018460161773210895,-2.936159596526058e-5,-3.7602928735736206e-8,-0.0018457424092981416,-2.9557907441157696e-5,-3.7787745528739335e-8,-0.0018454174436069045,-2.9707932709951874e-5,-3.793078679950588e-8,-0.001845060979936064,-2.9793682517744152e-5,-3.8015266553066575e-8,-0.0018446983139210466,-2.9805837685586976e-5,-3.803216933965162e-8,-0.001844357663506958,-2.974619611849742e-5,-3.7982560537325245e-8,-0.0018440664544479193,-2.9629797711193566e-5,-3.7879707314877856e-8,-0.001843845950446449,-2.948601531108566e-5,-3.775030341662861e-8,-0.0018437041818345754,-2.9356851092842417e-5,-3.763307774716062e-8,-0.0018436286704259478,-2.929018395984869e-5,-3.7572610524337075e-8,-0.0018435826591715672,-2.9326650546160026e-5,-3.7607099199983846e-8,-0.001843510243611047,-2.9482479522100277e-5,-3.7752270839027916e-8,-0.0018433534878047207,-2.9736569576451163e-5,-3.798922207122916e-8,-0.001843076228620517,-3.003258999787417e-5,-3.826624809927366e-8,-0.0018426810050820315,-3.0299279226205748e-5,-3.851758748645876e-8,-0.0018422077376924746,-3.0478508169391107e-5,-3.8689353289091895e-8,-0.0018417156239789582,-3.054470317700498e-5,-3.875746335719129e-8,-0.0018412606553196052,-3.050710730095082e-5,-3.872977574482587e-8,-0.001840880483325183,-3.0398882257686496e-5,-3.8636192256924036e-8,-0.001840590004125507,-3.026250677128237e-5,-3.851540126764517e-8,-0.0018403844397698059,-3.013820957242196e-5,-3.840435285169504e-8,-0.001840245361005513,-3.0057347763451893e-5,-3.8332152701456324e-8,-0.0018401466765782936,-3.0039751280580974e-5,-3.831749547487945e-8,-0.0018400595016326148,-3.0093363332831677e-5,-3.836817784862127e-8,-0.0018399559497764423,-3.0215015910877106e-5,-3.848169905675189e-8,-0.001839812170196447,-3.039186553279613e-5,-3.864654273812751e-8,-0.0018396108283989022,-3.060338054950594e-5,-3.884402378562721e-8,-0.0018393430417674114,-3.082394307346604e-5,-3.905071575977295e-8,-0.001839009544828154,-3.1026114366856945e-5,-3.924146216346563e-8,-0.0018386207708631277,-3.1184328723264915e-5,-3.939273712194119e-8,-0.0018381957305413437,-3.127857148136643e-5,-3.948596451419425e-8,-0.0018377597459139795,-3.1297656724416976e-5,-3.95104860508152e-8,-0.001837341137178437,-3.1241751125251476e-5,-3.946590292406994e-8,-0.0018369670512292443,-3.112376810976386e-5,-3.9363472022820164e-8,-0.0018366586561733092,-3.096932899220622e-5,-3.922626209101001e-8,-0.0018364258708403016,-3.0814812173559905e-5,-3.9087559514838445e-8,-0.0018362621920370473,-3.070252357614279e-5,-3.8986539372919337e-8,-0.0018361412688580824,-3.067203929167175e-5,-3.896025500527251e-8,-0.0018360180816703487,-3.0748042684471684e-5,-3.903223795898209e-8,-0.0018358378502917804,-3.092774827382751e-5,-3.920064225747588e-8,-0.0018355532968053283,-3.1174550168373766e-5,-3.9432189756387474e-8,-0.0018351446756584952,-3.142525945238052e-5,-3.966879216514516e-8,-0.001834631257077125,-3.161182618802566e-5,-3.9847630332795574e-8,-0.001834065391188641,-3.168747068911088e-5,-3.992527940095902e-8,-0.0018335116541834382,-3.164236364109196e-5,-3.989214970654177e-8,-0.0018330236496004874,-3.1501495858562004e-5,-3.977056585296882e-8,-0.0018326302885483708,-3.130976247069251e-5,-3.960119517536447e-8,-0.0018323344622033428,-3.111494455177007e-5,-3.94275962437217e-8,-0.0018321196002908996,-3.095597209536023e-5,-3.928554181120305e-8,-0.0018319582888422555,-3.085789845493625e-5,-3.919836392406287e-8,-0.0018318194757880513,-3.083157342368737e-5,-3.9176511626126014e-8,-0.0018316733480543946,-3.0875483927058214e-5,-3.9219089175635253e-8,-0.0018314943794796696,-3.097812687524317e-5,-3.931593991989682e-8,-0.0018312633560748676,-3.1120334429811935e-5,-3.9449760179892773e-8,-0.001830968913688379,-3.1277592120351454e-5,-3.9598246635518696e-8,-0.0018306087634235733,-3.14226374107931e-5,-3.9736499110668715e-8,-0.0018301904168349817,-3.152864766531905e-5,-3.9839932121797345e-8,-0.0018297309265778968,-3.1573033171681355e-5,-3.988771007373838e-8,-0.0018292551760944991,-3.154139489645285e-5,-3.986633134180522e-8,-0.0018287925523648566,-3.1430926466745534e-5,-3.977274223006469e-8,-0.0018283721888019805,-3.125244172846257e-5,-3.961626454205167e-8,-0.0018280173510476312,-3.1030241019074e-5,-3.941861928815817e-8,-0.0018277399014371466,-3.079933897322065e-5,-3.921157228495376e-8,-0.0018275359237807758,-3.060002936908609e-5,-3.9032106768399976e-8,-0.0018273836315456557,-3.0470075984707517e-5,-3.891530628053033e-8,-0.0018272448509398856,-3.0435259419920423e-5,-3.8885571590877783e-8,-0.0018270713806662069,-3.0500042234658058e-5,-3.8947817158765014e-8,-0.0018268166773114957,-3.064158208297821e-5,-3.908171343754616e-8,-0.0018264509824322654,-3.081128525962225e-5,-3.924294928095106e-8,-0.0018259745066705093,-3.0946791653507584e-5,-3.937422858396294e-8,-0.001825421200068397,-3.0992294321174295e-5,-3.942401662190722e-8,-0.001824848707194268,-3.091859675203208e-5,-3.936503312287334e-8,-0.0018243181665254498,-3.0732388589482095e-5,-3.920280801715213e-8,-0.0018238741939498265,-3.047033281073113e-5,-3.897033103345112e-8,-0.0018235344222076416,-3.0182968256406758e-5,-3.871343791162342e-8,-0.0018232907112232296,-2.9917962061241705e-5,-3.8475612220985564e-8,-0.0018231175915879915,-2.9709470223528575e-5,-3.8288287874661005e-8,-0.0018229820547856707,-2.9574767415543407e-5,-3.8167680241916334e-8,-0.0018228511227224586,-2.951575072500136e-5,-3.811601209651671e-8,-0.0018226963993247997,-2.9522399260808083e-5,-3.812455102291935e-8,-0.001822496346012939,-2.9576313361484465e-5,-3.817679071516764e-8,-0.00182223736569908,-2.9653667368211555e-5,-3.82511596794088e-8,-0.001821914484007764,-2.9727713244422272e-5,-3.8323339418991535e-8,-0.0018215319226575477,-2.9771325860086927e-5,-3.836859871537784e-8,-0.0018211033649289739,-2.9760077349048065e-5,-3.8364575828414726e-8,-0.0018206513209798074,-2.967600860452736e-5,-3.82946771372016e-8,-0.001820204868578569,-2.95117106918752e-5,-3.815177651088395e-8,-0.001819795308698592,-2.9273717903851084e-5,-3.7941337848129227e-8,-0.0018194499553985499,-2.8983792765006212e-5,-3.768268339819807e-8,-0.001819185216669178,-2.867678407238349e-5,-3.74071910297524e-8,-0.0018190008974349288,-2.83945853396037e-5,-3.715294339073842e-8,-0.001818877777254797,-2.8177048843502435e-5,-3.69565401325332e-8,-0.001818779842287521,-2.8051892787703585e-5,-3.684386725138177e-8,-0.0018186613648890997,-2.8026242318695985e-5,-3.682221547238342e-8,-0.0018184777104345217,-2.8082404782524753e-5,-3.687617397457534e-8,-0.0018181975534309522,-2.8179856821560048e-5,-3.6969212144048666e-8,-0.001817813196202531,-2.8264185854983048e-5,-3.705172966271644e-8,-0.001817345167041442,-2.8281685470529075e-5,-3.707441588866618e-8,-0.0018168381018592475,-2.8195553966210703e-5,-3.7003162870434875e-8,-0.0018163479603249767,-2.799754849487948e-5,-3.6829836985857307e-8,-0.0018159250008670967,-2.770979157575244e-5,-3.657403648862273e-8,-0.0018155995956956029,-2.7375894624095573e-5,-3.6275093682421794e-8,-0.0018153764219808644,-2.704596699485922e-5,-3.5978494998850386e-8,-0.0018152377869368145,-2.6762455524996808e-5,-3.572301447864534e-8,-0.001815152477201721,-2.6551760020655958e-5,-3.553302574177351e-8,-0.0018150853173970892,-2.6422470662984083e-5,-3.541677798998169e-8,-0.0018150042988686545,-2.6368080187245047e-5,-3.5368740905128105e-8,-0.001814884542944513,-2.637140326946383e-5,-3.5373559468304656e-8,-0.0018147098501943748,-2.640883213452553e-5,-3.540992975432918e-8,-0.001814472968339351,-2.6453705314678775e-5,-3.5453704890593495e-8,-0.0018141754822484056,-2.6478914642215583e-5,-3.548029701796509e-8,-0.0018138277280354835,-2.645933668573588e-5,-3.54668779570484e-8,-0.0018134485433922909,-2.63746995002284e-5,-3.539493771542412e-8,-0.0018130641999637516,-2.6213143484268603e-5,-3.525347116797519e-8,-0.0018127056529817164,-2.5975139443379584e-5,-3.504252776569707e-8,-0.0018124034131899443,-2.5676611824827752e-5,-3.477610412804476e-8,-0.0018121801872194175,-2.534931109205454e-5,-3.448259855575883e-8,-0.0018120429840718477,-2.503646524431114e-5,-3.420100849172037e-8,-0.0018119778375527472,-2.4783230392470123e-5,-3.3972382770939356e-8,-0.001811950347330866,-2.462408751833058e-5,-3.3828419190625865e-8,-0.0018119132838824324,-2.4571574822020067e-5,-3.3781151941416513e-8,-0.0018118193692635378,-2.461097139426063e-5,-3.381793208892705e-8,-0.0018116348830005524,-2.470333459138878e-5,-3.390395510139745e-8,-0.0018113494195414132,-2.479592830408992e-5,-3.399155855798691e-8,-0.0018109788397635016,-2.483652227449304e-5,-3.403315775348767e-8,-0.0018105608775236578,-2.4787225178468724e-5,-3.399388280325552e-8,-0.001810144903993606,-2.4634019749026035e-5,-3.386038668968676e-8,-0.0018097788424705386,-2.438943653685379e-5,-3.364343809426621e-8,-0.0018094970976968308,-2.408776623021186e-5,-3.3373712923926915e-8,-0.0018093131065530167,-2.3774611485516244e-5,-3.3092397700764274e-8,-0.0018092184234519324,-2.3494490111001275e-5,-3.283995827133673e-8,-0.0018091877331322158,-2.3280593294754563e-5,-3.2646790853564697e-8,-0.0018091871161683125,-2.314939866682767e-5,-3.252822506211939e-8,-0.0018091823293289193,-2.31004611501778e-5,-3.248421726376951e-8,-0.0018091448540584615,-2.311978262620908e-5,-3.250233499343941e-8,-0.0018090550794540737,-2.3184591180723153e-5,-3.2562086291900066e-8,-0.0018089031861997175,-2.3267897328885993e-5,-3.2639095018153503e-8,-0.0018086887334329814,-2.3342085624690892e-5,-3.2708403157821664e-8,-0.0018084198247745962,-2.338158487023955e-5,-3.2746898333729124e-8,-0.0018081122968712463,-2.3365150542970265e-5,-3.273533916353727e-8,-0.001807788822855228,-2.3278370617031e-5,-3.2660558495518114e-8,-0.0018074773359588981,-2.3116713555088714e-5,-3.251818044986732e-8,-0.0018072078836895496,-2.2888860456224638e-5,-3.231565942478291e-8,-0.0018070071067168634,-2.2619145607374683e-5,-3.2074584949186564e-8,-0.0018068904090166695,-2.2346867579039005e-5,-3.18301977417072e-8,-0.001806853807850492,-2.2119984734449717e-5,-3.162581546841964e-8,-0.0018068696241016469,-2.198255341150245e-5,-3.150153125112428e-8,-0.0018068904530553504,-2.195926967130759e-5,-3.1480191546692454e-8,-0.0018068624614854115,-2.2044177423088666e-5,-3.155704270849953e-8,-0.0018067433270976935,-2.2200245280886165e-5,-3.1699156433731375e-8,-0.0018065165630427827,-2.2371032429944445e-5,-3.1855811466588946e-8,-0.0018061958896326482,-2.2498959032548624e-5,-3.197492592167717e-8,-0.0018058190557784669,-2.2542034459431462e-5,-3.201819263383411e-8,-0.0018054353226003737,-2.2483393859611878e-5,-3.196979945333175e-8,-0.001805091981515879,-2.2332389766442987e-5,-3.183757466667896e-8,-0.0018048237525921153,-2.211905907663405e-5,-3.1648156894879373e-8,-0.0018046468284378982,-2.1884874969180767e-5,-3.1438765962970895e-8,-0.0018045577965828564,-2.167257080863706e-5,-3.124804952076372e-8,-0.0018045367469031802,-2.1517256483314775e-5,-3.1108003719807276e-8,-0.0018045532547471112,-2.1440415901790588e-5,-3.103843208390343e-8,-0.0018045734964459543,-2.1447606975861767e-5,-3.1044738831155513e-8,-0.0018045667264467702,-2.1529672691860464e-5,-3.111893588046535e-8,-0.0018045098804961046,-2.1666384245823865e-5,-3.1242914374253404e-8,-0.0018043898839023068,-2.183112130503548e-5,-3.1392708760228225e-8,-0.001804203954475141,-2.1995397908962797e-5,-3.1542638797071024e-8,-0.0018039586205425583,-2.2132522471774145e-5,-3.166864148494045e-8,-0.0018036682150897336,-2.222029327998615e-5,-3.1750683255942955e-8,-0.0018033532774611,-2.2243105107731316e-5,-3.1774601732825967e-8,-0.0018030388535303287,-2.2193945397383773e-5,-3.173385130063672e-8,-0.0018027522942073136,-2.2076575061598045e-5,-3.1631467135425805e-8,-0.0018025198123736337,-2.1907738260673892e-5,-3.148213395270582e-8,-0.0018023610503111382,-2.171835234695091e-5,-3.131339673265721e-8,-0.0018022817446064101,-2.155153029171974e-5,-3.1164020013668663e-8,-0.0018022664981731129,-2.145492195250491e-5,-3.107715875834362e-8,-0.0018022761116299893,-2.1466616576633423e-5,-3.1087611729159285e-8,-0.001802254637597213,-2.1598488185100718e-5,-3.1206666940015674e-8,-0.0018021472428660756,-2.182595909351053e-5,-3.1412695010306495e-8,-0.0018019218634438376,-2.2092822584774562e-5,-3.1655360838329714e-8,-0.0018015825756897933,-2.2331161258804622e-5,-3.187351846210822e-8,-0.0018011669858702807,-2.2485932648024347e-5,-3.2017362632812046e-8,-0.0018007305205330378,-2.2531424552391003e-5,-3.20632837968358e-8,-0.0018003274466781097,-2.247396849454174e-5,-3.201639378115172e-8,-0.001799997044701253,-2.2344006761817026e-5,-3.190352915618942e-8,-0.0017997576968600084,-2.2183994777753875e-5,-3.1762527108728355e-8,-0.0017996074214415598,-2.2037129804367622e-5,-3.163218737463046e-8,-0.0017995281388526994,-2.1939134700851098e-5,-3.1544874466880096e-8,-0.001799491474118722,-2.191336925847295e-5,-3.1522014871558e-8,-0.0017994648236848451,-2.196879034163294e-5,-3.157211653547259e-8,-0.0017994169612412726,-2.210030852102367e-5,-3.1690969385098476e-8,-0.0017993225970557186,-2.2291116208268445e-5,-3.1863685374065217e-8,-0.0017991654559053219,-2.2516364846537557e-5,-3.2068017711543623e-8,-0.0017989396964144166,-2.2747470340719118e-5,-3.2278281986817246e-8,-0.001798649733945888,-2.2956364822787877e-5,-3.246922246142647e-8,-0.0017983088087218547,-2.3119105042172602e-5,-3.2619262744900355e-8,-0.0017979368481374199,-2.3218557224021916e-5,-3.271288686018867e-8,-0.001797558043108042,-2.3246284945411038e-5,-3.274229168261259e-8,-0.0017971982454755217,-2.3203905608775542e-5,-3.2708591798824984e-8,-0.0017968820442133351,-2.3104089519329166e-5,-3.2622768771998037e-8,-0.0017966291126735867,-2.297111342990777e-5,-3.250628913382254e-8,-0.0017964493540700971,-2.2840186859440642e-5,-3.239064633254201e-8,-0.001796337092370337,-2.2753871040159905e-5,-3.231424590201427e-8,-0.001796266176874397,-2.2753701692947285e-5,-3.2314867821004395e-8,-0.0017961898758915664,-2.2866622884127602e-5,-3.241733430757836e-8,-0.0017960501969663332,-2.3089920943539757e-5,-3.261975895170297e-8,-0.0017957976108034395,-2.3383568322421448e-5,-3.288650179068292e-8,-0.0017954135250510931,-2.3679171476829465e-5,-3.315617804332179e-8,-0.0017949215447578652,-2.390518557869303e-5,-3.336437672142568e-8,-0.0017943787200954949,-2.401500851776904e-5,-3.3468942402757484e-8,-0.0017938521133034476,-2.400161061140643e-5,-3.346310636110839e-8,-0.0017933953283730748,-2.3893135268437862e-5,-3.3371567284018426e-8,-0.0017930360672664986,-2.3736813868647664e-5,-3.323619106299432e-8,-0.0017927757839283627,-2.3582117106361543e-5,-3.310107169625848e-8,-0.0017925963117210405,-2.3469363688785598e-5,-3.300241303329868e-8,-0.0017924682328384592,-2.342451096539411e-5,-3.296382113706184e-8,-0.0017923581550719071,-2.345828625550179e-5,-3.299539036168371e-8,-0.001792234150133278,-2.356759742598324e-5,-3.309481410911366e-8,-0.0017920696405059335,-2.3737980155055785e-5,-3.324947345493431e-8,-0.0017918461088012336,-2.3946656287756952e-5,-3.343914759620848e-8,-0.0017915547494891267,-2.416604836192296e-5,-3.363918826601897e-8,-0.0017911970460121622,-2.4367571375549456e-5,-3.382396166819764e-8,-0.0017907841940512808,-2.4525457139788785e-5,-3.3970302096064133e-8,-0.0017903353488858134,-2.4620205356925683e-5,-3.4060599419872674e-8,-0.001789874928831574,-2.464121873006898e-5,-3.408513361013069e-8,-0.0017894293545302076,-2.458842006514815e-5,-3.404350871950484e-8,-0.001789023505241213,-2.4472837169482275e-5,-3.394520600674971e-8,-0.0017886770648342907,-2.431614883409421e-5,-3.3809267595780996e-8,-0.0017884008200234735,-2.4149141187628658e-5,-3.366304609271047e-8,-0.001788192903348495,-2.4008712245158947e-5,-3.353964297579916e-8,-0.0017880354372265181,-2.393253545893989e-5,-3.347316905691076e-8,-0.0017878931539800256,-2.3950554353910987e-5,-3.34910405981934e-8,-0.0017877167144701928,-2.4073806065351983e-5,-3.360377068735919e-8,-0.001787453569690734,-2.428392045087678e-5,-3.379534491041236e-8,-0.0017870663495322726,-2.4530220442592966e-5,-3.402051298850108e-8,-0.0017865519910194932,-2.4741563720019448e-5,-3.4215448424805376e-8,-0.0017859491906381667,-2.4852189071213217e-5,-3.4321023197333045e-8,-0.001785325958533287,-2.482869995671932e-5,-3.4307016493753474e-8,-0.0017847528767015353,-2.4681669420333632e-5,-3.418245486606978e-8,-0.0017842781208460322,-2.4456188730650273e-5,-3.3987154219619505e-8,-0.0017839168488831807,-2.4210443635923462e-5,-3.3772695142451446e-8,-0.0017836554356915608,-2.3996010205156732e-5,-3.358499104157047e-8,-0.0017834629055072672,-2.384722325415727e-5,-3.345487005540549e-8,-0.0017833022278605421,-2.377911957973221e-5,-3.33961693481918e-8,-0.0017831382257718895,-2.3790191594592873e-5,-3.340803787799357e-8,-0.0017829420119458068,-2.386664304225821e-5,-3.347858835271957e-8,-0.0017826931337199766,-2.3986439556649512e-5,-3.35884337520014e-8,-0.001782380554182279,-2.4122805007119548e-5,-3.37138034186474e-8,-0.0017820030107513522,-2.424741808773985e-5,-3.382943346932811e-8,-0.0017815688268330704,-2.4333593880854584e-5,-3.391144581214018e-8,-0.0017810949919451016,-2.435957061890063e-5,-3.3940296734933424e-8,-0.0017806052023764001,-2.4311695591746605e-5,-3.3903609380761455e-8,-0.001780126733231539,-2.4186960953258744e-5,-3.3798419210927013e-8,-0.001779686389109376,-2.3994309151659606e-5,-3.363234575116789e-8,-0.0017793060255654567,-2.3754312161234117e-5,-3.3423362014270186e-8,-0.0017789982504817423,-2.3497003448101446e-5,-3.319796437690346e-8,-0.0017787629677499328,-2.325789658218794e-5,-3.2987743056121986e-8,-0.0017785853328477087,-2.307245026259536e-5,-3.2824528494159e-8,-0.001778435693719291,-2.29692203202828e-5,-3.2734270343295896e-8,-0.0017782724447692514,-2.2962114363640616e-5,-3.2729999425653523e-8,-0.0017780489744251891,-2.304310446279494e-5,-3.2805121499466924e-8,-0.0017777252482119056,-2.3178271529330762e-5,-3.292970232577239e-8,-0.0017772823647096638,-2.331129259651724e-5,-3.305351428606098e-8,-0.0017767346083272459,-2.3377529158287416e-5,-3.311868318348257e-8,-0.001776130764697321,-2.3326480780226323e-5,-3.3079844371637935e-8,-0.0017755397912121303,-2.3142506066602418e-5,-3.292267378791187e-8,-0.001775025923089456,-2.285130228165791e-5,-3.2669641431352325e-8,-0.001774626618706956,-2.2507845107702927e-5,-3.2369284423643596e-8,-0.0017743445685003865,-2.217390512592298e-5,-3.207630409849978e-8,-0.0017741544806826274,-2.1898231682136928e-5,-3.1834061464338805e-8,-0.0017740169436090173,-2.1707118952548065e-5,-3.166620956255327e-8,-0.001773891219541728,-2.1604779152879516e-5,-3.157692307526984e-8,-0.0017737432310165142,-2.157882930216389e-5,-3.155562491937049e-8,-0.0017735489504333692,-2.1606679331330368e-5,-3.1582552828697624e-8,-0.0017732949817235678,-2.1660754250425577e-5,-3.163336707176071e-8,-0.0017729779982578978,-2.1712249139899234e-5,-3.1682516270717386e-8,-0.0017726039251191308,-2.1733947237802756e-5,-3.170578892729579e-8,-0.0017721870422029683,-2.170274238348413e-5,-3.168258293259854e-8,-0.001771748742021881,-2.160228540957275e-5,-3.1598253034946674e-8,-0.001771315436498432,-2.142574791419228e-5,-3.144654198656495e-8,-0.0017709151725227585,-2.1178148251122183e-5,-3.123163082063926e-8,-0.0017705729667818262,-2.0877318554922502e-5,-3.096901728522543e-8,-0.00177030549185305,-2.055260685325797e-5,-3.0684433448224743e-8,-0.0017701162882080364,-2.0240789383713746e-5,-3.041032430169265e-8,-0.0017699929466398218,-1.99794218315807e-5,-3.018005089313501e-8,-0.0017699074633654773,-1.9798779288104986e-5,-3.002078373264498e-8,-0.0017698202590316055,-1.971411094245867e-5,-2.994657558110185e-8,-0.0017696875886955075,-1.9720002942223983e-5,-2.9953206911113435e-8,-0.0017694714315701055,-1.9788544043428927e-5,-3.0016365819494506e-8,-0.001769150179508032,-1.9872824099373976e-5,-3.009460999645151e-8,-0.0017687273917546744,-1.9916635597634004e-5,-3.013794933369788e-8,-0.0017682349328222557,-1.986951675134688e-5,-3.0101278511672435e-8,-0.00176772710105645,-1.970328034493384e-5,-2.995916376833186e-8,-0.0017672653670454336,-1.942323674398719e-5,-2.9715881402750377e-8,-0.0017668987135009146,-1.906762066737871e-5,-2.9404951820690843e-8,-0.0017666484557888058,-1.8694185914153163e-5,-2.9077305426574343e-8,-0.0017665045683398996,-1.836037649987278e-5,-2.8783779540595175e-8,-0.0017664336822339468,-1.810670803004512e-5,-2.85604298531802e-8,-0.0017663927590512497,-1.7949525459591675e-5,-2.8422063980110166e-8,-0.0017663414629926905,-1.7882936783559632e-5,-2.8363836548011972e-8,-0.001766249541876796,-1.7885707909765793e-5,-2.8367242121714928e-8,-0.001766099266242993,-1.7928819727490756e-5,-2.8406756909275128e-8,-0.0017658847993394775,-1.798137782732972e-5,-2.8455090069843767e-8,-0.001765610393070421,-1.8014480188581894e-5,-2.8486659197502897e-8,-0.0017652885448722823,-1.800366604960887e-5,-2.8479796999216368e-8,-0.0017649384258213695,-1.7930802219111313e-5,-2.8418420896184835e-8,-0.0017645842871166185,-1.778602853787445e-5,-2.829372109660203e-8,-0.0017642532352409623,-1.7569903288050705e-5,-2.81060198076404e-8,-0.001763971759473834,-1.7295278259522374e-5,-2.786641950500421e-8,-0.0017637607807011494,-1.698782162266873e-5,-2.7597305393828584e-8,-0.0017636298282722234,-1.668378910785923e-5,-2.7330463361969477e-8,-0.0017635720325075124,-1.6424062245120354e-5,-2.7101919283812356e-8,-0.0017635623160880396,-1.624485381333525e-5,-2.6943804573923697e-8,-0.0017635607308321933,-1.6167370096356146e-5,-2.6875224575923194e-8,-0.0017635211289864948,-1.6190012162179073e-5,-2.68952735608918e-8,-0.0017634030561349838,-1.6286391210993562e-5,-2.6981120973846906e-8,-0.0017631832067511017,-1.6410496829813158e-5,-2.7092420717209323e-8,-0.001762862804611093,-1.650784066444652e-5,-2.7181070789573557e-8,-0.001762468592752757,-1.6529538541808296e-5,-2.720366625840219e-8,-0.001762046894151369,-1.6445530812446836e-5,-2.713326263374019e-8,-0.0017616519554521687,-1.6253198861825676e-5,-2.696709599279156e-8,-0.0017613315225252794,-1.5978453405918325e-5,-2.672764292807032e-8,-0.0017611140058775958,-1.5668350101802668e-5,-2.645617877953825e-8,-0.0017610016624053787,-1.5377341425857762e-5,-2.6200694380823762e-8,-0.001760972152477191,-1.5152050261090025e-5,-2.6002466768736517e-8,-0.0017609872896826445,-1.5020078162915458e-5,-2.5886132235295784e-8,-0.0017610048499390252,-1.4986153105280482e-5,-2.585618781524479e-8,-0.0017609887967856529,-1.5035267740803247e-5,-2.5899659894477047e-8,-0.0017609151979063953,-1.5139768158020223e-5,-2.5992305073980463e-8,-0.001760773716567572,-1.5266958060346903e-5,-2.610532992986437e-8,-0.0017605661687073292,-1.5385079455718696e-5,-2.6210718388494383e-8,-0.0017603038826338377,-1.5467116653328303e-5,-2.6284636330568005e-8,-0.0017600050563999715,-1.5492918931559058e-5,-2.630931543163531e-8,-0.00175969254649456,-1.5450515709074643e-5,-2.6274181953792665e-8,-0.0017593918639489119,-1.5337330423786408e-5,-2.617687582404043e-8,-0.0017591287810466108,-1.516152233340109e-5,-2.6024399594225813e-8,-0.0017589258943309788,-1.4943092225619993e-5,-2.5834108333616962e-8,-0.0017587977883399433,-1.4713698844311321e-5,-2.563361964748376e-8,-0.001758745306123578,-1.4513557060983797e-5,-2.5458186180871662e-8,-0.0017587508567577885,-1.4384033445413648e-5,-2.534426611652559e-8,-0.0017587779139626098,-1.4356303112866524e-5,-2.5319563744401592e-8,-0.0017587774818432792,-1.4439371548397277e-5,-2.5392423095802513e-8,-0.0017587014180465244,-1.461308765223457e-5,-2.5545545630735418e-8,-0.0017585182143315644,-1.4831017637906244e-5,-2.573837988454579e-8,-0.001758224300036135,-1.5033522952700285e-5,-2.5918544356983626e-8,-0.0017578456814572269,-1.5165890121277228e-5,-2.6037769834404815e-8,-0.0017574296827317477,-1.5194062164951215e-5,-2.6065783871821737e-8,-0.0017570309130902051,-1.5112670663097581e-5,-2.5997452534758276e-8,-0.001756696813994369,-1.4944139321311835e-5,-2.5852086776316284e-8,-0.0017564568402563836,-1.473071652369088e-5,-2.566653582995585e-8,-0.0017563173354597894,-1.4522642160396031e-5,-2.548486082353178e-8,-0.0017562624354948073,-1.4365851015030895e-5,-2.5347546705261553e-8,-0.0017562599735600776,-1.4292151664489295e-5,-2.5282821848690496e-8,-0.001756270345717931,-1.4313890299943314e-5,-2.5301868529854778e-8,-0.0017562557588578422,-1.4423796145213121e-5,-2.5398581829437754e-8,-0.0017561874812613571,-1.4599191257972496e-5,-2.5553204717269587e-8,-0.0017560497205785389,-1.4808590783445874e-5,-2.573812424229174e-8,-0.0017558401001670073,-1.501849889141526e-5,-2.5923886858305346e-8,-0.0017555677036126833,-1.5198851791683837e-5,-2.6084035700955837e-8,-0.0017552499882569114,-1.5326523211685818e-5,-2.6198219746351277e-8,-0.0017549096171388453,-1.5387143092883683e-5,-2.625378099409158e-8,-0.0017545716844747704,-1.5375917958639373e-5,-2.624643446693762e-8,-0.0017542612485054693,-1.5298085448759974e-5,-2.618062930004095e-8,-0.0017540007404882867,-1.5169273450952789e-5,-2.6069861979063126e-8,-0.0017538066861335557,-1.5015531634949477e-5,-2.593675647987724e-8,-0.0017536853789179659,-1.4872118319182157e-5,-2.5812093138283254e-8,-0.0017536279768385933,-1.4779491480665109e-5,-2.5731383005018647e-8,-0.001753606952723239,-1.477510058162383e-5,-2.5727704626657337e-8,-0.0017535772625469973,-1.4881293853944655e-5,-2.5821044107833472e-8,-0.0017534854838303832,-1.5093084239007569e-5,-2.600743669074431e-8,-0.001753286710863749,-1.5372854528035302e-5,-2.6254185280220255e-8,-0.0017529628465813953,-1.5658309245887e-5,-2.650676375421154e-8,-0.0017525321779777868,-1.5882916451512282e-5,-2.6706754294287406e-8,-0.0017520438774256833,-1.599931632431093e-5,-2.6812413521358316e-8,-0.0017515603547515798,-1.599389242849295e-5,-2.6811474485739375e-8,-0.0017511370747768787,-1.58870721613282e-5,-2.6721446136561115e-8,-0.0017508085426400448,-1.5722498178991464e-5,-2.6580205900138525e-8,-0.001750583522276346,-1.5552126055896935e-5,-2.6433054088095324e-8,-0.0017504477988545496,-1.5423007708300132e-5,-2.6321212129111954e-8,-0.001750371174214469,-1.5368439711583733e-5,-2.62740633198849e-8,-0.001750315851837096,-1.5403810993203438e-5,-2.630543047416448e-8,-0.0017502443819633047,-1.552642617773328e-5,-2.641330452405617e-8,-0.0017501260881107377,-1.5718366270618406e-5,-2.6582255837826362e-8,-0.001749941315168841,-1.595138996435713e-5,-2.6787687878177625e-8,-0.0017496832210316077,-1.6192740022060927e-5,-2.7000937830024997e-8,-0.0017493572693855985,-1.6410744434680557e-5,-2.719422519070173e-8,-0.001748978948913387,-1.6579358203906588e-5,-2.7344668887639668e-8,-0.0017485704968312657,-1.6681163415333903e-5,-2.74369274282324e-8,-0.0017481574240992264,-1.670883282721197e-5,-2.7464466784574147e-8,-0.0017477653066889829,-1.666547427544194e-5,-2.742983935525184e-8,-0.0017474168841164288,-1.6564305460559376e-5,-2.7344394725503e-8,-0.001747129279233854,-1.6427879931202274e-5,-2.722763656186771e-8,-0.0017469110243550452,-1.6286771476204226e-5,-2.7106146180372478e-8,-0.0017467586534195868,-1.6177063093025705e-5,-2.7011472007132247e-8,-0.0017466533463252492,-1.6135412490742596e-5,-2.6975864478472212e-8,-0.0017465594178202246,-1.6190686058868135e-5,-2.7024931986323628e-8,-0.0017464276261986936,-1.6352739951425828e-5,-2.7167717614836124e-8,-0.0017462061719448097,-1.6602042086509395e-5,-2.7387475511613235e-8,-0.0017458589390846183,-1.688727509586495e-5,-2.7639480984314817e-8,-0.001745383793112345,-1.7137548063945405e-5,-2.7861723308800773e-8,-0.001744819115139456,-1.7287659579105718e-5,-2.7997065592867195e-8,-0.0017442316274042247,-1.7303833560797986e-5,-2.8015768007836517e-8,-0.0017436912573285538,-1.7194973975304273e-5,-2.7925287860788828e-8,-0.001743247452036388,-1.7004614184730193e-5,-2.7763247275154654e-8,-0.0017429180130239536,-1.6791404372740664e-5,-2.758049651565357e-8,-0.0017426913839497045,-1.6609904370917028e-5,-2.7424492345162885e-8,-0.001742536475141356,-1.649859690995107e-5,-2.7328913073261393e-8,-0.0017424137905466815,-1.6475754777084468e-5,-2.731001280582881e-8,-0.0017422844622990985,-1.6540670952381766e-5,-2.7367575703814308e-8,-0.001742116355369948,-1.6677544114767887e-5,-2.7488179361086792e-8,-0.0017418876343611228,-1.686031928037145e-5,-2.764933739189588e-8,-0.0017415883616594284,-1.70577248174131e-5,-2.782387438953023e-8,-0.0017412205022093819,-1.7238115114124338e-5,-2.7984175560639326e-8,-0.0017407965855088022,-1.737379930727008e-5,-2.8106002984605667e-8,-0.0017403372333003285,-1.744456666693547e-5,-2.81716008451723e-8,-0.0017398678463401798,-1.7440083829039737e-5,-2.817179627356715e-8,-0.0017394149398974874,-1.7360942313155324e-5,-2.8106908907450188e-8,-0.0017390025998627163,-1.7218462503755394e-5,-2.7986581351569095e-8,-0.0017386492629266872,-1.7033516940844868e-5,-2.78287765345854e-8,-0.0017383648667583472,-1.6834511621145167e-5,-2.7658071698212013e-8,-0.0017381483860776027,-1.6654526309760896e-5,-2.750323777098479e-8,-0.0017379857880764208,-1.6527352718845074e-5,-2.7393844848311547e-8,-0.0017378488996451671,-1.6481799532138352e-5,-2.735530264547702e-8,-0.0017376966372265247,-1.653390656976417e-5,-2.7402002468754002e-8,-0.0017374807521994074,-1.6678137811977933e-5,-2.752950967892001e-8,-0.0017371577619254865,-1.6881003467352378e-5,-2.7708880462880502e-8,-0.0017367058418978965,-1.7082956805723142e-5,-2.7888277038928824e-8,-0.0017361397871615877,-1.7213636041267133e-5,-2.8006313607759834e-8,-0.0017355130919502622,-1.7217983517437767e-5,-2.8014887489228886e-8,-0.0017349010873700975,-1.7080148864802256e-5,-2.789998107144859e-8,-0.0017343723348015217,-1.6829898005292252e-5,-2.7687166142917287e-8,-0.0017339647832955254,-1.6527764114669422e-5,-2.742869117101087e-8,-0.0017336786370508808,-1.6239846977128967e-5,-2.718170516827529e-8,-0.0017334849605685624,-1.6017009429821272e-5,-2.6990333500378085e-8,-0.0017333407869161536,-1.588567181395312e-5,-2.6877727087182345e-8,-0.0017332024740586718,-1.5848606242811324e-5,-2.6846667644146168e-8,-0.0017330340615586818,-1.5890746362680283e-5,-2.68844715727071e-8,-0.0017328110493750382,-1.598598400945783e-5,-2.696877596915934e-8,-0.00173252127473545,-1.6103053832416733e-5,-2.7072598915931684e-8,-0.0017321643150833425,-1.6210210138051937e-5,-2.716841036510506e-8,-0.0017317501140170313,-1.6278998147010685e-5,-2.723144593688566e-8,-0.0017312970188940173,-1.6287366080985484e-5,-2.7242447571344237e-8,-0.0017308292084595779,-1.6222185622260528e-5,-2.7189872388028625e-8,-0.001730373452436675,-1.6081006942388617e-5,-2.7071418830950497e-8,-0.0017299553582569695,-1.5872667604661172e-5,-2.6894553273205772e-8,-0.0017295955423252537,-1.5616500957420817e-5,-2.6675832877706237e-8,-0.0017293061873740823,-1.5340170469505593e-5,-2.6439061947713e-8,-0.0017290883470865532,-1.507625010199129e-5,-2.6212382075122478e-8,-0.0017289303472872032,-1.485771739629063e-5,-2.6024423253133448e-8,-0.0017288076171489378,-1.4712600788592941e-5,-2.5899692716363257e-8,-0.0017286843786890062,-1.4657982104751628e-5,-2.5853345982890227e-8,-0.0017285179920752429,-1.469378801204321e-5,-2.5885710544355952e-8,-0.0017282669016267444,-1.4797809692912494e-5,-2.597784298491023e-8,-0.0017279022709099565,-1.4924826606494031e-5,-2.6090678957383975e-8,-0.0017274210330882648,-1.5013539408658058e-5,-2.6171041964052904e-8,-0.0017268544886931924,-1.500339980186787e-5,-2.6166307322124555e-8,-0.0017262646488298942,-1.4857541654773406e-5,-2.6044338623451537e-8,-0.0017257250829835684,-1.4580494467278208e-5,-2.5808814537283378e-8,-0.0017252937794389228,-1.4218526667931194e-5,-2.5499476937908507e-8,-0.0017249930231404602,-1.3840794807331261e-5,-2.517585149150039e-8,-0.0017248067699141875,-1.351270711306445e-5,-2.4894335555473773e-8,-0.0017246934534974646,-1.3276295708485894e-5,-2.4691333401292228e-8,-0.0017246038274408126,-1.314433765536367e-5,-2.4578159853052325e-8,-0.0017244948196652298,-1.3105269854769773e-5,-2.454517288778279e-8,-0.0017243364526524838,-1.3132362073222714e-5,-2.456957312402072e-8,-0.0017241132667976712,-1.3192342565411862e-5,-2.4622786661510245e-8,-0.0017238228661482834,-1.325163183139236e-5,-2.4675851118792835e-8,-0.0017234735662261548,-1.3280343921097598e-5,-2.470291409721152e-8,-0.0017230820075737141,-1.3254924222723466e-5,-2.4683557620105018e-8,-0.0017226707950760843,-1.3160121817767504e-5,-2.4604525475472103e-8,-0.001722265910630456,-1.2990581890931382e-5,-2.4461095384133306e-8,-0.001721893605087852,-1.275194862461917e-5,-2.4258014835579526e-8,-0.0017215766694778005,-1.2461004044485085e-5,-2.400961012256891e-8,-0.0017213304202050618,-1.2144266502687791e-5,-2.373858904526001e-8,-0.0017211591144521662,-1.1834740035222872e-5,-2.3473278345894057e-8,-0.0017210536379387664,-1.15669121811399e-5,-2.3243368159746304e-8,-0.0017209912434660293,-1.137053703664978e-5,-2.3074600444917153e-8,-0.00172093786428734,-1.126418106526938e-5,-2.2983213066028008e-8,-0.0017208531150557185,-1.1249725559581083e-5,-2.2971150222902847e-8,-0.0017206977257007766,-1.1309037278010377e-5,-2.3023095245395752e-8,-0.0017204427559582552,-1.1404176889886242e-5,-2.3106548502949438e-8,-0.0017200791234227555,-1.1482681882738014e-5,-2.3176327687590162e-8,-0.0017196246541953794,-1.148889330573019e-5,-2.3184350335903796e-8,-0.001719124641958263,-1.1380227657635337e-5,-2.3093722950941158e-8,-0.0017186423638384035,-1.114361781624759e-5,-2.289295661201278e-8,-0.0017182400231541156,-1.0804036814357762e-5,-2.2603315828948557e-8,-0.0017179572397719124,-1.0418304686722344e-5,-2.2273489276189473e-8,-0.0017177979779009823,-1.0055136813138216e-5,-2.1962468500676522e-8,-0.0017177326568771723,-9.771363476111051e-6,-2.171915971274942e-8,-0.0017177126940655086,-9.59618259083335e-6,-2.1568855933039855e-8,-0.0017176882158911563,-9.528664202440341e-6,-2.151102115154199e-8,-0.0017176207842986657,-9.54532916023194e-6,-2.152570092195504e-8,-0.001717488539588401,-9.61114215968148e-6,-2.1582903167043163e-8,-0.0017172856020235222,-9.688935408136953e-6,-2.1650695633700068e-8,-0.0017170188075453885,-9.745503388018222e-6,-2.1700489974222203e-8,-0.001716704030343493,-9.75481187740589e-6,-2.1709853665659155e-8,-0.001716363051667733,-9.699527683861308e-6,-2.1663854398151375e-8,-0.0017160209740540878,-9.571902058244573e-6,-2.155581284513286e-8,-0.0017157037275235207,-9.374493289871258e-6,-2.1387892099804606e-8,-0.0017154351582843574,-9.12063251889091e-6,-2.1171465309349033e-8,-0.0017152334371241793,-8.834059379219236e-6,-2.0926792740536966e-8,-0.0017151070380174468,-8.54691461997685e-6,-2.0681324010697784e-8,-0.0017150511747853247,-8.295434661355793e-6,-2.0466057621787945e-8,-0.0017150460711992154,-8.113332137404114e-6,-2.030992124260642e-8,-0.0017150584488687581,-8.023886119027629e-6,-2.0233017236108107e-8,-0.0017150469068009022,-8.032794681682757e-6,-2.0240470470753276E-08,-0.0017149705846409252,-8.124212126971078e-6,-2.031895666669989e-8,-0.0017147992299687779,-8.261786867259084e-6,-2.043750161115691e-8,-0.0017145220766764634,-8.39524066367176e-6,-2.0553060054856926e-8,-0.001714152932724592,-8.471588872493842e-6,-2.062012893709478e-8,-0.0017137294505731322,-8.448766698921679e-6,-2.0602470471424994e-8,-0.0017133056268037235,-8.30827935977141e-6,-2.0484010951138584e-8,-0.0017129382965746429,-8.062726137621993e-6,-2.0275329834940626e-8,-0.0017126708829768335,-7.754388283059394e-6,-2.0012476947012425e-8,-0.0017125200757254853,-7.443621313326269e-6,-1.9747060849152198e-8,-0.0017124712795059404,-7.190431363037621e-6,-1.9530504080148718e-8,-0.001712485108463056,-7.0366396458408515e-6,-1.9398773754969298e-8,-0.0017125116285125956,-6.995979960543143e-6,-1.9363850589301513e-8,-0.0017125055152946264,-7.054904126090996e-6,-1.941433171688431e-8,-0.0017124362267456486,-7.181290036679982e-6,-1.9522819783303132e-8,-0.0017122912356786113,-7.33559115667751e-6,-1.9655458212988638e-8,-0.0017120739679193392,-7.480041670713854e-6,-1.9779851901213196e-8,-0.0017117993662422982,-7.584250733816216e-6,-1.9869913460128613e-8,-0.0017114893374762983,-7.627641340691138e-6,-1.9907989660052855e-8,-0.0017111690927208221,-7.6000125055850025e-6,-1.9885345225042433e-8,-0.0017108644073861132,-7.501412760528949e-6,-1.9802025000362843e-8,-0.0017105992780522003,-7.341978719606794e-6,-1.966667578346078e-8,-0.0017103933189507282,-7.1417111820099305e-6,-1.949632951528594e-8,-0.0017102585004460788,-6.929573781906971e-6,-1.9315642219774395e-8,-0.0017101954017993111,-6.7409497837180035e-6,-1.9154764556717096e-8,-0.0017101899463117245,-6.612514274616833e-6,-1.904501927146042e-8,-0.0017102124219094009,-6.574302226505446e-6,-1.9012164611844463e-8,-0.0017102208546907933,-6.640381461484933e-6,-1.906841604034119e-8,-0.0017101696872487946,-6.801430426475136e-6,-1.920604126355059e-8,-0.0017100221870999638,-7.023203351349197e-6,-1.939596217498844e-8,-0.0017097624173563275,-7.2532026779098715e-6,-1.959339512897098e-8,-0.0017094018542985613,-7.4343348959541015e-6,-1.9749511339903364e-8,-0.0017089776595243197,-7.520980981562084e-6,-1.982519953065219e-8,-0.0017085430785728673,-7.491875094526717e-6,-1.98021064005799e-8,-0.0017081533169143335,-7.355782261528479e-6,-1.968751486928549e-8,-0.0017078512816734047,-7.148736530329722e-6,-1.9512013140907094e-8,-0.0017076570788535014,-6.924050653939927e-6,-1.9321004792382517e-8,-0.0017075639301940206,-6.73805286028801e-6,-1.9162573935492407e-8,-0.0017075414744693901,-6.635623404704152e-6,-1.9075152574921577e-8,-0.0017075452538536885,-6.6397481673598866e-6,-1.907856769945405e-8,-0.0017075291279762277,-6.74799680854229e-6,-1.917095975773456e-8,-0.001707456464753147,-6.936270654025548e-6,-1.9331909124735297e-8,-0.001707306873839935,-7.167486224038338e-6,-1.9529815014463757e-8,-0.0017070774940020905,-7.40150152130711e-6,-1.9730384470556232e-8,-0.001706780055599116,-7.603160648750164e-6,-1.9903542367193303e-8,-0.0017064359548183703,-7.747073464223104e-6,-2.0027552034501053e-8,-0.0017060712869391593,-7.819370843360752e-6,-2.009053088308096e-8,-0.0017057128647851082,-7.81750689300007e-6,-2.0090272816758505e-8,-0.0017053853475831233,-7.749258787440385e-6,-2.0033369653230264e-8,-0.0017051090246987348,-7.63165252439743e-6,-1.9934273203516424e-8,-0.0017048976130836205,-7.48990374053086e-6,-1.9814391821666054e-8,-0.0017047556071532683,-7.355870167993619e-6,-1.9700800557958514e-8,-0.0017046752314598494,-7.265069438578037e-6,-1.962374814999241e-8,-0.001704633907873945,-7.251176602605976e-6,-1.9612010035070857e-8,-0.0017045942123405239,-7.337574074837141e-6,-1.968569133958673e-8,-0.0017045088636094908,-7.527447475358424e-6,-1.984773628854404e-8,-0.0017043321125059295,-7.796609969145614e-6,-2.0077728553648004e-8,-0.0017040352892301902,-8.094628881719389e-6,-2.033278529821439e-8,-0.0017036199174814714,-8.357321757473915e-6,-2.0558199710134475e-8,-0.0017031207453830734,-8.527279641554265e-6,-2.07049674527795e-8,-0.0017025957211632837,-8.573251713438601e-6,-2.0746330786424403e-8,-0.0017021073995130097,-8.499347348814524e-6,-2.0685612575558143e-8,-0.0017017044497118188,-8.341162243397592e-6,-2.0552915628861326e-8,-0.0017014101770728533,-8.152663137236833e-6,-2.0393996128262026e-8,-0.001701220123087332,-7.99029114266652e-6,-2.0256802195303342e-8,-0.0017011069963663247,-7.899440803721392e-6,-2.0180015465234488e-8,-0.0017010298088642021,-7.905934485141747e-6,-2.0185786978182623e-8,-0.0017009442845075707,-8.013087611659719e-6,-2.0277176829621546e-8,-0.001700812271449088,-8.203778005991368e-6,-2.043983579510598e-8,-0.001700608518360257,-8.446292559298515e-6,-2.0646923134808663e-8,-0.0017003238336688721,-8.702227743979316e-6,-2.086581340902206e-8,-0.0016999645473487364,-8.934420936028888e-6,-2.106486263485468e-8,-0.00169954913513485,-9.113190354238928e-6,-2.1218747636263865e-8,-0.0016991033874861217,-9.22001102864717e-6,-2.1311618593498575e-8,-0.0016986554807616981,-9.248647435155238e-6,-2.13380740034121e-8,-0.0016982318855080062,-9.204399731118582e-6,-2.1302519561850147e-8,-0.0016978543995590132,-9.10238542444722e-6,-2.121770451114759e-8,-0.0016975380294125626,-8.965565187764711e-6,-2.1103046899748445e-8,-0.0016972892355614753,-8.822716746064468e-6,-2.0982928734896224e-8,-0.001697104147393287,-8.706075816679848e-6,-2.0884721675880377e-8,-0.0016969666972081788,-8.647926619789557e-6,-2.0835920379221263e-8,-0.00169684740011825,-8.675181170249637e-6,-2.0859546028640884e-8,-0.0016967045804855362,-8.801519162920972e-6,-2.0967436610679105e-8,-0.0016964905065300056,-9.01844333619171e-6,-2.1152579343920042e-8,-0.0016961639731149969,-9.289415793960601e-6,-2.138406153842879e-8,-0.001695707106127775,-9.553311743058151e-6,-2.160998864081665e-8,-0.0016951385176591758,-9.741104001052941e-6,-2.1771702413548394e-8,-0.0016945128063564176,-9.801298769835388e-6,-2.1825425829586347e-8,-0.001693902985101117,-9.720976758235634e-6,-2.176009941619977e-8,-0.0016933741666031645,-9.529958261736527e-6,-2.1600847624303437e-8,-0.0016929627649807358,-9.286767509844959e-6,-2.1397063223247418e-8,-0.0016926700984223038,-9.056285660978077e-6,-2.1203544267075215e-8,-0.0016924690855679811,-8.890755742029625e-6,-2.1064502321326876e-8,-0.0016923170302585921,-8.819805710338477e-6,-2.1005150945671767e-8,-0.0016921682214408472,-8.8489478525651e-6,-2.1030391509463162e-8,-0.0016919833229793798,-8.963433333096914e-6,-2.1127991678712995e-8,-0.0016917350451069605,-9.1345146397534e-6,-2.1273812337831973e-8,-0.0016914106590955637,-9.326304850307346e-6,-2.1437577987506275e-8,-0.0016910119930584138,-9.50234733555081e-6,-2.158843896357954e-8,-0.0016905533915853798,-9.631291450467526e-6,-2.1699798048136526e-8,-0.0016900581754099764,-9.69110899668149e-6,-2.1752905508392625e-8,-0.0016895542586885487,-9.671493446052107e-6,-2.1738910779710982e-8,-0.0016890696305639124,-9.574362283327237e-6,-2.1659302094648493e-8,-0.0016886283866275086,-9.412685663855614e-6,-2.1524925607916213e-8,-0.001688247743667381,-9.208192002297713e-6,-2.1354054577412935e-8,-0.0016879360364431592,-8.98854909081757e-6,-2.1170017704178606e-8,-0.0016876914563649197,-8.784322466768402e-6,-2.0998642806816554e-8,-0.0016875013089274406,-8.625690463057586e-6,-2.086549585606093e-8,-0.0016873417279686287,-8.53858560005698e-6,-2.0792626469016813e-8,-0.001687178325547085,-8.539692110101775e-6,-2.079432297753112e-8,-0.0016869691166023061,-8.630151987089456e-6,-2.0871746461888742e-8,-0.0016866715029369072,-8.789267347131455e-6,-2.100754636158876e-8,-0.001686254318023176,-8.97163165767185e-6,-2.1163398058176738e-8,-0.0016857129301765929,-9.112940780203801e-6,-2.1284938230037018e-8,-0.0016850801573558933,-9.148161471228022e-6,-2.1317184884815498e-8,-0.001684422796496244,-9.037763226930734e-6,-2.122672379094548e-8,-0.0016838198027999708,-8.787797426035769e-6,-2.1018591580797273e-8,-0.0016833318949512636,-8.44940531154977e-6,-2.0735764854021037e-8,-0.0016829803888256231,-8.096954946202853e-6,-2.0440726785689123e-8,-0.0016827459755191082,-7.799047296914452e-6,-2.0191141842253217e-8,-0.001682583454796451,-7.598483392665845e-6,-2.0023083749209106e-8,-0.0016824406087873034,-7.507046345778621e-6,-1.9946647297024858e-8,-0.00168227233893414,-7.511005682637191e-6,-1.995050767444206e-8,-0.0016820477635596358,-7.580629314178077e-6,-2.0009840918065495e-8,-0.0016817519149339769,-7.679226904576688e-6,-2.0093885939198342e-8,-0.0016813844563981313,-7.770076038468931e-6,-2.017176810577966e-8,-0.00168095711875254,-7.821310599237092e-6,-2.02166337334569e-8,-0.0016804905773571324,-7.809332280904686e-6,-2.020854689581189e-8,-0.001680010953275545,-7.72105576611143e-6,-2.013639837823021e-8,-0.001679546036692029,-7.555014866778501e-6,-1.999884849506686e-8,-0.0016791214090587767,-7.3212178391739496e-6,-1.9804212819061585e-8,-0.0016787568208649483,-7.0396326381076e-6,-1.956919439356282e-8,-0.0016784633058374865,-6.737431280764423e-6,-1.9316573595337173e-8,-0.0016782413530992905,-6.445394475960026e-6,-1.907219462969039e-8,-0.001678080222805157,-6.193862700986028e-6,-1.8861571689255484e-8,-0.0016779584103784654,-6.008506027515523e-6,-1.8706342929766363e-8,-0.001677845249146384,-5.906093833141004e-6,-1.8620715185890165e-8,-0.0016777038192801804,-5.890290612856807e-6,-1.8607914310898255e-8,-0.0016774958004093384,-5.947719194763358e-6,-1.8656841222782147e-8,-0.0016771890493794792,-6.04551842846217e-6,-1.873997969081269e-8,-0.001676767832841618,-6.132885965309012e-6,-1.8814675758844495e-8,-0.0016762435242489034,-6.149771262434435e-6,-1.8830466334363702e-8,-0.0016756602448421592,-6.044400624246342e-6,-1.8743841862040513e-8,-0.001675087945535953,-5.795520152856072e-6,-1.8536922752685177e-8,-0.001674600133436057,-5.427392994706577e-6,-1.8229981102522346e-8,-0.0016742451149479186,-5.004926323171685e-6,-1.7877295972549893e-8,-0.0016740276746855878,-4.608399079730942e-6,-1.7546004506771972e-8,-0.0016739119980301556,-4.302510944871832e-6,-1.729026756861099e-8,-0.0016738412334485694,-4.117301795986611e-6,-1.7135338860309113e-8,-0.0016737597260480786,-4.047201977927108e-6,-1.7076725758927597e-8,-0.0016736272940627243,-4.062129813392705e-6,-1.708939796436854e-8,-0.0016734236526182423,-4.121225593287399e-6,-1.7139232302019368e-8,-0.0016731464204356393,-4.183527382690121e-6,-1.719194905092986e-8,-0.001672806667024793,-4.214324596648135e-6,-1.721846074771176e-8,-0.0016724243936852225,-4.1882372375009135e-6,-1.7197481453770475e-8,-0.0016720247121886067,-4.090499672781078e-6,-1.71166177315317e-8,-0.001671634560924054,-3.9173958791691575e-6,-1.697273167292582e-8,-0.0016712796064216253,-3.676148262014399e-6,-1.677183719774153e-8,-0.0016709811132979546,-3.3841381804794744e-6,-1.6528438089025636e-8,-0.001670752839878428,-3.067097445950772e-6,-1.626401154436992e-8,-0.0016705983902454557,-2.755995668689129e-6,-1.6004410253319553e-8,-0.0016705096420609104,-2.4827410471397807e-6,-1.5776279333381472e-8,-0.0016704667555038147,-2.2751486697532836e-6,-1.5602864533974782e-8,-0.001670440054529566,-2.151829226592785e-6,-1.5499751063543376e-8,-0.001670393800312215,-2.117817669325008e-6,-1.5471212409242127e-8,-0.001670291584102462,-2.1617204405963794e-6,-1.5507814775575798e-8,-0.0016701029794063543,-2.2550054075283997e-6,-1.5585801952800447e-8,-0.0016698110099757678,-2.354258371242796e-6,-1.5668961170856538e-8,-0.0016694193436379667,-2.4075797922360825e-6,-1.5713962061550806e-8,-0.0016689568880535386,-2.3659216383981152e-6,-1.5679837674904023e-8,-0.001668476255894404,-2.198389705642687e-6,-1.5540770761251108e-8,-0.0016680427111036224,-1.9070635849955495e-6,-1.5298448763090533e-8,-0.0016677138985701416,-1.5331708742942751e-6,-1.49871845626283e-8,-0.001667517861434114,-1.147223731015582e-6,-1.4665690841976024e-8,-0.0016674416245268775,-8.243545513833562e-7,-1.4396566986045408e-8,-0.0016674379465091208,-6.170824570407865e-7,-1.4223645290633774e-8,-0.0016674458929825874,-5.401446955353702e-7,-1.415932767755485e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_20.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_20.json new file mode 100644 index 000000000..ddc7d4dd9 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_20.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":20000,"numberOfSamples":1000,"samples":[0.002920358133904192,-6.784113942412794e-6,1.9052440314477163e-8,0.0029206413912713745,-6.613636446664559e-6,1.880279195741177e-8,0.0029208307139081857,-6.4248857259363685e-6,1.8526799455172666e-8,0.002920930147853429,-6.259580496894272e-6,1.8285299846459358e-8,0.002920958301557765,-6.151401288497133e-6,1.8127384394993633e-8,0.002920943527534336,-6.121517965926748e-6,1.8083876197142136e-8,0.002920918375602291,-6.176714362040785e-6,1.816459054828576e-8,0.0029209142523147777,-6.309966452545619e-6,1.8359183512205728e-8,0.0029209570493570875,-6.502919273456435e-6,1.864078390277559e-8,0.0029210641805222245,-6.729529878146821e-6,1.8971329337261025e-8,0.0029212431239192664,-6.960111764971586e-6,1.9307474224319167e-8,0.0029214911994797127,-7.165144308668532e-6,1.960613535377138e-8,0.002921796120285953,-7.318617634903727e-6,1.982935162046132e-8,0.002922137007124233,-7.4010933087209115e-6,1.994874542519259e-8,0.0029224858842140738,-7.402792330024526e-6,1.9950053694911065e-8,0.0029228100891597296,-7.3269133160290385e-6,1.9838013786501703e-8,0.0029230765056806078,-7.192875581754198e-6,1.9641124744988003e-8,0.002923258593947595,-7.038021661925838e-6,1.941411030247615e-8,0.0029233461420444737,-6.914897975233613e-6,1.9233867338703342e-8,0.0029233550561071457,-6.88082642372724e-6,1.9184132872670825e-8,0.002923331035256764,-6.979157664713172e-6,1.9328047777690732e-8,0.002923340142385916,-7.2183869507838524e-6,1.9677702094935728e-8,0.002923445583922481,-7.561828631160178e-6,2.0179192009197127e-8,0.002923681317946548,-7.937980661899995e-6,2.072789220706034e-8,0.0029240384097172193,-8.268180631197756e-6,2.1208898937220332e-8,0.0029244717828463846,-8.495446917109097e-6,2.1539128515592525e-8,0.0029249206337382287,-8.5993447870362e-6,2.168897594018406e-8,0.0029253292642615033,-8.593866031641322e-6,2.1679150221309016e-8,0.002925659785723746,-8.515407336314436e-6,2.1563040883823154e-8,0.0029258958667452545,-8.409144036535884e-6,2.140676187245665e-8,0.0029260405842169023,-8.318330424117874e-6,2.1273515340970926e-8,0.0029261116369550147,-8.277597083016847e-6,2.1213831819462888e-8,0.0029261360482877165,-8.309529221173803e-6,2.1260608728115165e-8,0.0029261452014683505,-8.42340926017503e-6,2.142729184107828e-8,0.002926170313882796,-8.615486024606374e-6,2.1708269585437497e-8,0.00292623844165663,-8.870566448345604e-6,2.2081201504360447e-8,0.00292636924853009,-9.164729529600066e-6,2.2511001728707966e-8,0.0029265727710682966,-9.46889441648262e-6,2.295507952203869e-8,0.0029268483980316373,-9.752900430721535e-6,2.336931848773817e-8,0.0029271851539575938,-9.989600330613871e-6,2.371405611551756e-8,0.0029275631112714875,-1.0158516530347245e-5,2.3959412562508196e-8,0.002927955664309901,-1.0248883948905652e-5,2.408973052847181e-8,0.002928332543885939,-1.0262052169211477e-5,2.4107097524156514e-8,0.002928663659626732,-1.0213176614852856e-5,2.4033835922844377e-8,0.002928924086482032,-1.0131859571605514e-5,2.391343414198871e-8,0.002929100469893201,-1.006068720901442e-5,2.380835533385682e-8,0.00292919825272032,-1.0049779074946679e-5,2.3791978424671676e-8,0.0029292472514429032,-1.0145544621233506e-5,2.3932078427797663e-8,0.0029293008561212352,-1.0374107175155202e-5,2.4266580620660107e-8,0.0029294238469290295,-1.0725024417737487e-5,2.4779841229322424e-8,0.002929669111734987,-1.114611883277768e-5,2.539521780426727e-8,0.0029300535325597157,-1.1558053316444333e-5,2.599647534430263e-8,0.0029305485124082784,-1.1884615009568598e-5,2.647210161222967e-8,0.0029310923955805034,-1.2081611605397568e-5,2.675757842754958e-8,0.002931616304399638,-1.2148069338781219e-5,2.6851763811636517e-8,0.002932067285150511,-1.2117575796211164e-5,2.6804177118692685e-8,0.002932418917621506,-1.2040100109443465e-5,2.6688285414068273e-8,0.002932670230039864,-1.1965464765100921e-5,2.657720810322275e-8,0.0029328387680504554,-1.1933289258766363e-5,2.6528961772784398e-8,0.00293295270881014,-1.196897681852962e-5,2.658062017342903e-8,0.002933044376699607,-1.2083490982675024e-5,2.67480469420976e-8,0.0029331455921541476,-1.2274805413081184e-5,2.7028061070784242e-8,0.002933284292138651,-1.2529877406152909e-5,2.7401345594697467e-8,0.00293348183921598,-1.2826952297089921e-5,2.7835835906596038e-8,0.0029337508490475143,-1.3138354603080276e-5,2.829083170402535e-8,0.002934093645838865,-1.3433894030281315e-5,2.872201713802254e-8,0.0029345016544849406,-1.3684880135773215e-5,2.908736254701938e-8,0.0029349561406361926,-1.386840837531521e-5,2.935340201831078e-8,0.002935430486740117,-1.3971275110489517e-5,2.95009506018706e-8,0.002935893835760189,-1.3992889279387817e-5,2.9529348563241594e-8,0.002936315747796631,-1.3946693107954746e-5,2.9458526641335536e-8,0.0029366714399644074,-1.3859725730502529e-5,2.9328347332084718e-8,0.0029369471463227275,-1.3770076163005065e-5,2.919483182596872e-8,0.0029371450608840764,-1.3721886782902614e-5,2.912277265954847e-8,0.002937286864066753,-1.3757394229001907e-5,2.917400350300773e-8,0.0029374138979444495,-1.3905986529102212e-5,2.9391340967481903e-8,0.002937581299334286,-1.4172039349156543e-5,2.9780814874648412e-8,0.002937844163109093,-1.45262281968288e-5,3.029905020497397e-8,0.0029382377175291947,-1.4907319198974039e-5,3.085599616240686e-8,0.0029387598782889463,-1.5239082205155629e-5,3.13397558100923e-8,0.0029393676298225253,-1.5457827043506526e-5,3.165695446938089e-8,0.002939992216838139,-1.5536378976067384e-5,3.1767915909756623e-8,0.0029405653190518453,-1.5490797301223943e-5,3.169654522724492e-8,0.002941041254771594,-1.536815347138079e-5,3.151235350452084e-8,0.00294140542344543,-1.5225670745632641e-5,3.129971116966001e-8,0.0029416699353257774,-1.511314588614597e-5,3.113191036723647e-8,0.002941863403875871,-1.5063955018859357e-5,3.105791466104839e-8,0.002942020994539501,-1.5093505935668198e-5,3.110013611490886e-8,0.002942177366646585,-1.520170158147927e-5,3.125814014183412e-8,0.0029423625508156873,-1.537654151057894e-5,3.1514004634474597e-8,0.002942599690849947,-1.559743059921687e-5,3.183721614696178e-8,0.00294290359336924,-1.5838011990550073e-5,3.2188849522134435e-8,0.00294327957060671,-1.606891948600009e-5,3.252562907878252e-8,0.002943722566359027,-1.626091105834113e-5,3.2804552667574874e-8,0.0029442169460562008,-1.6388674978272435e-5,3.2988495583917805e-8,0.002944737613991192,-1.643514977217652e-5,3.3052553288382284e-8,0.002945253028492552,-1.6395599116742716e-5,3.299000825108424e-8,0.0029457301748656087,-1.6280316984019043e-5,3.2816276383530096e-8,0.0029461409054937337,-1.6114844458962526e-5,3.2569189442586106e-8,0.002946468467779173,-1.59369584836108e-5,3.230452078197805e-8,0.0029467127007430827,-1.5790452065963385e-5,3.20867790313752e-8,0.002946892484190752,-1.571653783339316e-5,3.19765091292342e-8,0.0029470444074099875,-1.574421226294738e-5,3.201610119609517e-8,0.00294721700040216,-1.5881334913556607e-5,3.2216717921521556e-8,0.002947460426363542,-1.6108825234197094e-5,3.2549869520431156e-8,0.002947812788728661,-1.6380947123874963e-5,3.294795449427606e-8,0.002948286406491707,-1.663423983095662e-5,3.3317466246604255e-8,0.0029488597757889802,-1.6805051579412595e-5,3.356478318315856e-8,0.0029494809972528905,-1.6850594771345913e-5,3.362711592054566e-8,0.0029500837834087173,-1.6764027436157334e-5,3.3494691584581735e-8,0.002950609547099543,-1.65754022846451e-5,3.321214488618771e-8,0.0029510248489415226,-1.6338277873894157e-5,3.285874310463184e-8,0.002951326908519711,-1.6110067758768604e-5,3.251932528889389e-8,0.002951537740617979,-1.5935923031543694e-5,3.226045946019777e-8,0.002951692897861342,-1.5841154803625142e-5,3.2119268917177497e-8,0.0029518308167177263,-1.5831373922113136e-5,3.210371527010424e-8,0.002951985680243071,-1.5896753371837802e-5,3.219898309769699e-8,0.0029521838394617654,-1.6017149276703177e-5,3.237510141211502e-8,0.0029524425171660266,-1.6166416508957604e-5,3.259333287301716e-8,0.002952769476479237,-1.631566760743691e-5,3.281097659429368e-8,0.0029531628666808734,-1.6435949662826805e-5,3.298530817637135e-8,0.002953611072809355,-1.6501010877409013e-5,3.307765926789581e-8,0.0029540929521073237,-1.6490693620487103e-5,3.305842467294873e-8,0.002954579264429746,-1.639499922671663e-5,3.291305556929234e-8,0.00295503617946976,-1.6218085914775832e-5,3.264794315872196e-8,0.0029554312636725514,-1.598068794654785e-5,3.2293958485677294e-8,0.002955741283648492,-1.5719093070127868e-5,3.1904895652031e-8,0.002955959806034109,-1.547937573783238e-5,3.154889715991773e-8,0.0029561017019983917,-1.5307268455907255e-5,3.129343797151466e-8,0.002956202124345455,-1.5236171399037398e-5,3.118759456372629e-8,0.002956309344895545,-1.5277053681785616e-5,3.124717312307237e-8,0.002956473061121083,-1.5413664099591182e-5,3.144774573045378e-8,0.002956731321048645,-1.56048785559379e-5,3.1728248939181924e-8,0.00295709965139376,-1.5793981380019647e-5,3.20047831722283e-8,0.002957565526219128,-1.592284518104132e-5,3.2191570296512827e-8,0.002958090281759539,-1.5947524626471783e-5,3.2223937815342005e-8,0.0029586188407144266,-1.5850738642942996e-5,3.2076690446522256e-8,0.002959094945026436,-1.5646720190761735e-5,3.177121976954928e-8,0.002959476848073268,-1.5376083073574004e-5,3.136786811924238e-8,0.0029597476091094625,-1.5092533249955837e-5,3.094622473963542e-8,0.0029599165389014807,-1.4847001851064014e-5,3.058161120537158e-8,0.0029600126576895124,-1.4675368085643121e-5,3.032691574396036e-8,0.0029600742944759875,-1.4593152680899354e-5,3.020479859533819e-8,0.0029601393336397405,-1.4596748310243467e-5,3.020960605628144e-8,0.002960238698290419,-1.4668406120361078e-5,3.031483113270092e-8,0.002960393348094185,-1.4782054688900286e-5,3.048176038556993e-8,0.0029606137208240614,-1.4908213038661743e-5,3.0666732803764704e-8,0.002960900307724539,-1.5017561814104221e-5,3.082638893027108e-8,0.002961244434757364,-1.50835587775595e-5,3.092151102287129e-8,0.0029616289196745093,-1.508481954343969e-5,3.092053838966425e-8,0.0029620288994349014,-1.5007922270276185e-5,3.080373072655211e-8,0.002962413625758523,-1.485083932757977e-5,3.056826258788275e-8,0.0029627502369207145,-1.4626387490437281e-5,3.023332794121676e-8,0.002963010182597418,-1.4364071234967201e-5,2.9842834228472035E-08,0.002963177767764606,-1.4107920694885702e-5,2.9462135061082662e-8,0.002963258245024794,-1.390835698351417e-5,2.9165907356940043e-8,0.002963281197327158,-1.3808595017261191e-5,2.9017964910745684e-8,0.0029632955592347656,-1.3829869002871433e-5,2.9049396981577167e-8,0.0029633562901483323,-1.396211303207011e-5,2.9244867118890364e-8,0.002963507429295757,-1.4165122782118485e-5,2.9544476640865564e-8,0.0029637685076608447,-1.4380196230406393e-5,2.986111941278739e-8,0.0029641293995320965,-1.4547336536681909e-5,3.010599812437667e-8,0.0029645544477331213,-1.462147944059388e-5,3.021262159737794e-8,0.002964993199433165,-1.4582947790407866e-5,3.015220993420224e-8,0.002965393786237881,-1.4440252912374524e-5,2.993775541428279e-8,0.002965715263846332,-1.4225700000439636e-5,2.9617431791449873e-8,0.002965936105661564,-1.3985740295725363e-5,2.926023813664994e-8,0.0029660572013795127,-1.3768956215185547e-5,2.893816297894991e-8,0.0029660991821764673,-1.361495218959358e-5,2.8709729777681658e-8,0.0029660954822132313,-1.3546940317984253e-5,2.8609061319606824e-8,0.0029660836753954115,-1.3569374678669404e-5,2.86424548981107e-8,0.002966097715672726,-1.3670152439685494e-5,2.8791723939980673e-8,0.002966162758787371,-1.382559151959131e-5,2.9021622975413763e-8,0.002966292909415142,-1.4006141463460001e-5,2.9288313696922994e-8,0.0029664912327432187,-1.4181368889154244e-5,2.9546719679842586e-8,0.00296675098439865,-1.432364071392131e-5,2.975594063607446e-8,0.0029670571768570203,-1.441068763053631e-5,2.988302426452729e-8,0.0029673880824924595,-1.4427641005829092e-5,2.990599124607975e-8,0.0029677168251591012,-1.4369146872198044e-5,2.9817001755657374e-8,0.002968013691011178,-1.4241810907193253e-5,2.962601250879183e-8,0.0029682500709710805,-1.4066513065220714e-5,2.93642059457502e-8,0.002968404731954602,-1.387910107568484e-5,2.9084963591962518e-8,0.002968471978193223,-1.3727039399383037e-5,2.88588007731629e-8,0.002968469059433979,-1.3659767445614165e-5,2.875897632722551e-8,0.0029684378958154877,-1.3713145157645224e-5,2.8838395498620046e-8,0.00296843646941631,-1.3893353069001035e-5,2.9105800690051132e-8,0.0029685202671800416,-1.4169383669450605e-5,2.9514779524273305e-8,0.0029687215722676882,-1.4480741544933563e-5,2.997532983204709e-8,0.0029690374925616814,-1.4758063993347154e-5,3.038452227517716e-8,0.002969432550313911,-1.494625005415047e-5,3.0660807023103234e-8,0.0029698527534371528,-1.501941615613648e-5,3.076614564288683e-8,0.002970242975131316,-1.4983590593674082e-5,3.070991787329774e-8,0.002970560707010411,-1.486978332026129e-5,3.053852833456252e-8,0.002970783380041674,-1.4722598896256202e-5,3.031840881526067e-8,0.0029709096528671933,-1.4588664344004444e-5,3.01187930361603e-8,0.0029709563531596737,-1.4507263299708571e-5,2.999782950169233e-8,0.0029709528196634203,-1.450412607323851e-5,2.9993430059943106e-8,0.0029709340930672533,-1.4588613765477793e-5,3.011917526326649e-8,0.0029709342235076834,-1.4754157039491757e-5,3.036503994043903e-8,0.0029709808089967682,-1.4981337496558506e-5,3.070201327711546e-8,0.0029710914938153535,-1.524256500555707e-5,3.1089054340748793e-8,0.0029712726180356206,-1.5507206205397086e-5,3.1480689014010646e-8,0.0029715197167699482,-1.5746211713835314e-5,3.1833846061620287e-8,0.002971819217195222,-1.5935676545529305e-5,3.211310994113541e-8,0.0029721506391493777,-1.6059298169857467e-5,3.2294356226821274e-8,0.002972488915422919,-1.6110085669579795e-5,3.236730284468479e-8,0.0029728068475521232,-1.609171171330991e-5,3.233754856855953e-8,0.0029730780491342918,-1.6019684593364873e-5,3.2228331099957483e-8,0.002973280996517472,-1.5922014544477006e-5,3.2081488017266414e-8,0.002973404663571169,-1.5838170077771026e-5,3.195582334149546e-8,0.0029734552005521004,-1.581431674792034e-5,3.1919928221359786e-8,0.002973461188362297,-1.589302000644207e-5,3.2036819078499595e-8,0.0029734728689441363,-1.609792381140514e-5,3.234121094806937e-8,0.0029735507610109523,-1.6418860094304986e-5,3.281753040259766e-8,0.002973744280704623,-1.6807320664665265e-5,3.3393348896120576e-8,0.0029740698756861514,-1.7189700640362698e-5,3.395915574472174e-8,0.002974502213153519,-1.7494403406110863e-5,3.4408643234550394e-8,0.002974984560957685,-1.767802825408724e-5,3.4677597890506306e-8,0.0029754513730213712,-1.773672456282881e-5,3.476073805538473e-8,0.002975849730807777,-1.7700253301847003e-5,3.470280180238341e-8,0.0029761508530331345,-1.7616516953682456e-5,3.4575409590022556e-8,0.0029763511916333146,-1.7535807952942615e-5,3.445351817065031e-8,0.0029764671850589274,-1.7499734982786542e-5,3.439891544803893e-8,0.002976527814731713,-1.753553605886131e-5,3.445182277720747e-8,0.0029765674333753333,-1.7654482487030005e-5,3.462863214504655e-8,0.0029766197783471023,-1.785285028144174e-5,3.4923452338110174e-8,0.002976713303471049,-1.8114495901758313e-5,3.531200044507124e-8,0.00297686786306883,-1.841450460826479e-5,3.575704849602197e-8,0.002977092820345906,-1.8723439945705067e-5,3.6214741069552453E-08,0.0029773865940886136,-1.9011730919729806e-5,3.6641106825301627e-8,0.00297773758195352,-1.9253744086145604e-5,3.6998098021908325e-8,0.002978126225410339,-1.9431077092030192e-5,3.725847234837322e-8,0.002978527778364898,-1.953481608938666e-5,3.740914085341509e-8,0.0029789154040244796,-1.9566826718393777e-5,3.7453087807647996e-8,0.002979263474936315,-1.9540223734977267e-5,3.741007038668588e-8,0.002979551126528603,-1.9479037319080024e-5,3.731610210216535e-8,0.002979766242014358,-1.9416859969519788e-5,3.722137847792964e-8,0.0029799099497124348,-1.9393715173435276e-5,3.7185523694292244e-8,0.002980000915971834,-1.94498533312271e-5,3.7268276541520824e-8,0.0029800772524500073,-1.9615566721707554e-5,3.7514326950814606e-8,0.002980192469529219,-1.9898167604817833e-5,3.7934040287157073e-8,0.0029804022602219083,-2.0271164712515565e-5,3.8487521814506124e-8,0.0029807434701728474,-2.067424132501533e-5,3.9084720785291444e-8,0.0029812147089178787,-2.1030261025836366e-5,3.961077233026522e-8,0.0029817719928732045,-2.127449949752043e-5,3.99694784583061e-8,0.0029823449666828935,-2.1379992430783766e-5,4.0121037663042906e-8,0.0029828645165091085,-2.136410513008704e-5,4.009182899623436e-8,0.0029832854451143304,-2.127531976246566e-5,3.995464665032265e-8,0.002983594498668351,-2.1171712511966522e-5,3.97964527218785e-8,0.0029838054954291746,-2.1103248487216302e-5,3.9691834147374094e-8,0.002983948836829765,-2.110276132606735e-5,3.968953147631429e-8,0.002984061290257191,-2.1184288397485705e-5,3.981006008442894e-8,0.002984178513731084,-2.1345484561751207E-05,4.004945855912969e-8,0.00298433040769511,-2.157146104983014e-5,4.0385128619668554e-8,0.002984538433971821,-2.183875045296736e-5,4.078179890719198e-8,0.002984814157245484,-2.2119128743535838e-5,4.1197228817699106e-8,0.0029851587068223267,-2.2383338100873876e-5,4.158774803164346e-8,0.0029855631058775885,-2.260472386163859e-5,4.191366897386889e-8,0.002986009558291577,-2.2762699849510053e-5,4.214444460091879e-8,0.002986473810408079,-2.2845709776562213e-5,4.226307152736928e-8,0.0029869284555065143,-2.285321248440732e-5,4.226903134195116e-8,0.0029873468009023675,-2.279640960153469e-5,4.217934987696174e-8,0.0029877069362470323,-2.2697618488155953e-5,4.202762496290873e-8,0.002987995706883981,-2.2588196005956238e-5,4.186087368514205e-8,0.0029882122724941918,-2.250493424394035e-5,4.173407992678916e-8,0.002988370845250907,-2.2484777608857293e-5,4.170223881865493e-8,0.0029885017936435655,-2.255756728162393e-5,4.180950622118746e-8,0.002988649508545319,-2.2737002269993502e-5,4.20757789848222e-8,0.002988864944534272,-2.3011660125789477e-5,4.248345478531366e-8,0.0029891917531914853,-2.3340375925996207e-5,4.2970713042447454e-8,0.0029896486141179545,-2.3657833305475466e-5,4.3439950290240724e-8,0.002990215930999584,-2.3893473135528555e-5,4.378597223794274e-8,0.0029908371871804683,-2.399812996226874e-5,4.393568517521914e-8,0.0029914382467285117,-2.396417191820179e-5,4.3878147729951906e-8,0.0029919551613743003,-2.38265851199188e-5,4.3666186218943454e-8,0.0029923547556799392,-2.364535922564181e-5,4.33899815622375e-8,0.0029926388924618567,-2.34815530183942e-5,4.314111317342226e-8,0.0029928352743501543,-2.3379858232251807e-5,4.298635560434982e-8,0.002992983643000855,-2.3362211966869825e-5,4.2958145653724355e-8,0.002993124239325345,-2.3429729514789833e-5,4.305762336091702e-8,0.0029932908205783236,-2.3568260581625195e-5,4.3263117748307686e-8,0.0029935075467194595,-2.3754218892099406e-5,4.353897939933425e-8,0.002993788115402275,-2.3959322132927218e-5,4.3842700238288005e-8,0.002994135865131543,-2.415427368613513e-5,4.413039745178603e-8,0.002994544317604473,-2.431187474329782e-5,4.436143642962751e-8,0.0029949981369148688,-2.4409940834154676e-5,4.4502773677267694e-8,0.002995474733920963,-2.4434159363146072e-5,4.453322269139798e-8,0.002995946867852737,-2.438065412063379e-5,4.444727962470359e-8,0.0029963863997792425,-2.4257633800533217e-5,4.425756592263305e-8,0.0029967688850502656,-2.4085455016201706e-5,4.399488097416399e-8,0.002997078338300538,-2.3894673268282683e-5,4.370522458009922e-8,0.002997311349129843,-2.3721945852451404e-5,4.344359182276227e-8,0.002997479656226587,-2.360404297666528e-5,4.32649398235654e-8,0.0029976103593761477,-2.357065305448074e-5,4.3213385803306306e-8,0.002997743110787153,-2.3636926496027646e-5,4.3311086910764544e-8,0.002997923748088096,-2.379704664473801e-5,4.354874311053949e-8,0.0029981942175954005,-2.4020889171051923e-5,4.388077348084879e-8,0.0029985799058661606,-2.4256592745038067e-5,4.422930981774514e-8,0.0029990778745615423,-2.444143335305884e-5,4.450051619084297e-8,0.002999651934402648,-2.4520419116148653e-5,4.461236561595702e-8,0.003000240119555401,-2.4466536425871935e-5,4.452486712152954e-8,0.0030007744382348467,-2.4292342453891288e-5,4.4257372821343864e-8,0.0030012043836071256,-2.4045254021272564e-5,4.388146492212079e-8,0.003001512146798215,-2.3788596603881732E-05,4.3492440534199405e-8,0.003001713011004348,-2.3579216292932016e-5,4.3175608587979206e-8,0.0030018440201570076,-2.345253767991309e-5,4.298382851303703e-8,0.0030019492490419297,-2.3418849803166555e-5,4.293202980731309e-8,0.0030020683571267115,-2.3467794115789163e-5,4.300412504387121e-8,0.003002230577040951,-2.3575924418412295e-5,4.3164515275253525e-8,0.0030024530481396073,-2.371369072928725e-5,4.336864156691746e-8,0.0030027414546316424,-2.3850507219765965e-5,4.357057053753451e-8,0.0030030914014577796,-2.395813305179184e-5,4.3728004665977624e-8,0.003003489836964812,-2.4013129247926298e-5,4.3805913400348664e-8,0.003003916505986112,-2.3999045197511412e-5,4.3779791639210484e-8,0.0030043458018004154,-2.3908648392456543e-5,4.3639009503235175e-8,0.003004749546491452,-2.3746015567883387e-5,4.338995688522113e-8,0.0030051010544452283,-2.3527756377723387e-5,4.305786620408989e-8,0.003005380278727441,-2.3282359290256304e-5,4.268578367873625e-8,0.0030055791218540325,-2.3046814799346892e-5,4.232942511550203e-8,0.003005705403471987,-2.2860300990568903e-5,4.2047613637055405e-8,0.0030057838269298923,-2.2755768795899834e-5,4.188959157506121e-8,0.0030058528292368726,-2.275134395340437e-5,4.188212374752424e-8,0.003005957307061821,-2.2843946110056914e-5,4.2020014794074985E-08,0.003006138413427418,-2.300724171618979e-5,4.226319699714995e-8,0.0030064225790959894,-2.319527741556905e-5,4.254234844837243e-8,0.003006812562702178,-2.335201743558618e-5,4.277330694714285e-8,0.0030072836012702583,-2.3425444976355578e-5,4.2878234687331705e-8,0.003007787264335132,-2.3382901257872224e-5,4.280856410095554e-8,0.003008263689228249,-2.3222450315454287e-5,4.2561953877304193e-8,0.0030086592071474436,-2.2974830200955383e-5,4.218511547518296e-8,0.0030089426676550976,-2.26937486182808e-5,4.17591305405803e-8,0.00300911333844383,-2.2438134195979213e-5,4.137267939823414e-8,0.003009197487585295,-2.225432969879038e-5,4.1095226879594374e-8,0.003009236757661162,-2.216547948200621e-5,4.0961121500672567e-8,0.003009274709149118,-2.217043771176245e-5,4.09681037873079e-8,0.0030093468102407217,-2.224960297551781e-5,4.108625065125137e-8,0.003009475717436156,-2.2373205783984607e-5,4.1270546851323725e-8,0.003009670815179887,-2.250862585044295e-5,4.147189797251425e-8,0.0030099299700386954,-2.2625428795493783e-5,4.164463699013084e-8,0.00301024187402901,-2.269838136100306e-5,4.1750971465696804e-8,0.003010588197802463,-2.2709282253166442e-5,4.17636812926794e-8,0.0030109454772800953,-2.2648401738654642e-5,4.1668279995880246e-8,0.0030112871514783373,-2.2515993789587058e-5,4.1465320020488957e-8,0.003011586410402015,-2.2323777967550487e-5,4.1172650945728414e-8,0.003011820354517727,-2.2095615453953176e-5,4.082642765490463e-8,0.0030119753682766987,-2.1866121724890676e-5,4.0478962804724885e-8,0.0030120526329220835,-2.167596603147096e-5,4.019155827324615e-8,0.003012071619005174,-2.1563470526289128e-5,4.002177521312465e-8,0.0030120689879420764,-2.1553983387326334e-5,4.0007412510859045e-8,0.0030120914835277484,-2.1650539471334874e-5,4.015251477306536e-8,0.003012183981443884,-2.1829957093484467e-5,4.0421644155871945e-8,0.003012376436940448,-2.2046872823385574e-5,4.074612539538994e-8,0.003012674385510726,-2.2245060636632923e-5,4.104120937557746e-8,0.003013056385483303,-2.237249037808146e-5,4.122877520759659e-8,0.003013479206572159,-2.2395363336080645e-5,4.125840285038834e-8,0.00301388907552939,-2.2307009988112173e-5,4.112064949092303e-8,0.003014235716569667,-2.21292539477236e-5,4.0848957479960844e-8,0.0030144852458368573,-2.1905904722336058e-5,4.0509715506145036e-8,0.003014628140393211,-2.1690273931464643e-5,4.0183354013727575e-8,0.0030146798861370155,-2.1530670765035162e-5,3.9942465173289727e-8,0.003014674513909391,-2.1458647516230403e-5,3.9834154839566405e-8,0.0030146539150070514,-2.1483480978725524e-5,3.9871866653527925e-8,0.003014657045850174,-2.159355446238517e-5,4.003762590554032e-8,0.0030147123189946208,-2.1762610361229233e-5,4.029158028075859e-8,0.0030148344079461886,-2.1957660138997936e-5,4.0583952504102195e-8,0.003015024723893025,-2.214588593896058e-5,4.0865392615269084e-8,0.0030152739036193445,-2.22993320272481e-5,4.109395623141755e-8,0.0030155648211872598,-2.239750335835605e-5,4.123893927793968e-8,0.0030158753159103555,-2.242862410171888e-5,4.1282740545661414e-8,0.0030161804959735242,-2.239035571976067e-5,4.122196425411615e-8,0.0030164549748184135,-2.2290484655788065e-5,4.106850249505057e-8,0.0030166756785176938,-2.2147566876471484e-5,4.085053467582822e-8,0.0030168257902463656,-2.1990840651876128e-5,4.0612367627877493e-8,0.0030168998356597245,-2.185809576971141e-5,4.041113557692705e-8,0.003016908801918456,-2.1790004412026398e-5,4.030814374624823e-8,0.0030168827390098687,-2.1820318277313286e-5,4.035402021045058e-8,0.0030168675107474373,-2.19637983748077e-5,4.057054444845606e-8,0.003016913871536386,-2.220687703617631e-5,4.09366942603126e-8,0.003017061280745224,-2.2507121073764624e-5,4.138801109760418e-8,0.0030173232653145413,-2.28042122748035e-5,4.1833304318833444e-8,0.0030176816547766365,-2.3038752114974032e-5,4.218308051823787e-8,0.003018092461901088,-2.317060860472061e-5,4.2377204037070425e-8,0.0030185000617629827,-2.3189358211647577e-5,4.240056434796237e-8,0.0030188531890023565,-2.3114278349446322e-5,4.2282916648184983e-8,0.0030191172695145925,-2.298608274263823e-5,4.2086230161827244e-8,0.003019280521670172,-2.2854616393563075e-5,4.188596434454325e-8,0.00301935377876645,-2.27664496809722e-5,4.1752283274555145e-8,0.0030193653932179577,-2.2755137035095014e-5,4.173540981919782e-8,0.0030193531828910203,-2.2835689436507088e-5,4.185743087774839e-8,0.003019355569264338,-2.3003756094996915e-5,4.211123646364793e-8,0.003019403958407845,-2.323899690414335e-5,4.246574371735947e-8,0.003019517875462904,-2.3511172447957385e-5,4.2875145551518413e-8,0.003019703373553423,-2.3786991097561844e-5,4.328922423781491e-8,0.003019954219332213,-2.4036029761377636e-5,4.3662218358333147e-8,0.003020254766068992,-2.423482031971884e-5,4.395891153209101e-8,0.003020583367897793,-2.4369010761043288e-5,4.415784033020523e-8,0.0030209155492026242,-2.4434102956819604e-5,4.425239523927991e-8,0.0030212267021837735,-2.443546844269732e-5,4.4250868318591255e-8,0.0030214945520319145,-2.438812313993975e-5,4.417614262844354e-8,0.0030217018620748537,-2.4316298536123176e-5,4.406504030121207e-8,0.0030218398456035413,-2.4252307744576375e-5,4.396654725060574e-8,0.003021912331535931,-2.4233602777596313e-5,4.39372627104561e-8,0.0030219396761021347,-2.429662036167427e-5,4.4032012805518794e-8,0.0030219599100410016,-2.4466782499552282e-5,4.4288740896769435e-8,0.00302202361177359,-2.4746531459929342e-5,4.47105455738881e-8,0.003022180395983599,-2.5107010582484676e-5,4.525329764117915e-8,0.003022460057180725,-2.5490814286278737e-5,4.5829951905006934e-8,0.003022857627761485,-2.5828964736561783e-5,4.633626256410645e-8,0.003023332267934383,-2.6065721301283244e-5,4.668826880948124e-8,0.003023821927221237,-2.6178133626157623e-5,4.685181828073514e-8,0.0030242654527104103,-2.618060722133502e-5,4.6849397702988095e-8,0.00302462064736006,-2.6115003315723564e-5,4.674500325784846e-8,0.003024872054652819,-2.6034210741007566e-5,4.661907867346306e-8,0.003025029247398639,-2.5987096868666402e-5,4.654559337911846e-8,0.003025119674183166,-2.600869221520683e-5,4.657718713531259e-8,0.0030251798618585422,-2.6115962524536738e-5,4.6738915646380234e-8,0.003025247304514287,-2.6307892425086884e-5,4.702858653637406e-8,0.0030253540345252404,-2.6568373656992416e-5,4.742130825887169e-8,0.003025522180290973,-2.6870812112854194e-5,4.7876552038498893e-8,0.0030257616742353777,-2.718362842899639e-5,4.834647617031556e-8,0.0030260701248843638,-2.7475754898200334e-5,4.878418797216237e-8,0.003026434531440565,-2.7721296131052857e-5,4.915072369570908e-8,0.003026834267375794,-2.790282528074767e-5,4.941997646359749e-8,0.003027244652317317,-2.801310467185596e-5,4.958126578195143e-8,0.00302764045789911,-2.8055375984440208e-5,4.963976761859313e-8,0.0030279989828120874,-2.8042678247256376e-5,4.961548465878466e-8,0.003028302732030385,-2.7996614735003015e-5,4.9541371336797554e-8,0.0030285419382640503,-2.7945668380696642e-5,4.946074008271887e-8,0.0030287171664962805,-2.7922799028450726e-5,4.9423540183523226e-8,0.003028841979820805,-2.796162115926255e-5,4.948048077466765e-8,0.0030289448272879803,-2.8090202994150213e-5,4.967360897101288e-8,0.00302906808799766,-2.832216698757468e-5,5.002291747065914e-8,0.003029261393516597,-2.8646859820436187e-5,5.051165188848918e-8,0.0030295674732655794,-2.9023648863821986e-5,5.107788139765754e-8,0.0030300035036457318,-2.9387468552092513e-5,5.1622994265168756e-8,0.003030547654439084,-2.966892547984612e-5,5.204210187529804e-8,0.0030311419708281494,-2.9821700123341288e-5,5.226546402242462e-8,0.003031713429022907,-2.9841451121119933e-5,5.228710697781398e-8,0.0030322015269454838,-2.9764614366811912e-5,5.216297581619774e-8,0.003032576700297681,-2.964992539693665e-5,5.1982771928407634e-8,0.0030328427049061664,-2.95558177823456e-5,5.18354400080819e-8,0.0030330273738204275,-2.952483864326578e-5,5.178537523848844e-8,0.0030331699517057442,-2.9577898541893805e-5,5.1863748181959154e-8,0.0030333104138618784,-2.9715604944099784e-5,5.207074030425486e-8,0.003033482465717576,-2.9922976396352082e-5,5.238294189196952e-8,0.0030337098242709487,-3.017493755703473e-5,5.276185486031358e-8,0.0030340047066781646,-3.0441434203506502e-5,5.316170038656006e-8,0.0030343677318868385,-3.069201162682167e-5,5.353632168723621e-8,0.0030347889661070187,-3.089987345211356e-5,5.384526338775909e-8,0.0030352499978571756,-3.104524236184448e-5,5.405880170678398e-8,0.0030357268634388502,-3.111778908424594e-5,5.416158516454266e-8,0.0030361935715449567,-3.1117887001919675e-5,5.415451590233293e-8,0.003036625814699871,-3.105651407747209e-5,5.4054586154864e-8,0.003037004388893214,-3.095390233892545e-5,5.3892806738359834e-8,0.003037318044491069,-3.083722670992275e-5,5.3710656905416486e-8,0.0030375656938618433,-3.073753439132445e-5,5.355535566628204e-8,0.0030377579336559293,-3.068595891553895e-5,5.347403607373892e-8,0.0030379177300265737,-3.0709070813912385e-5,5.350663829087113e-8,0.00303807966723912,-3.0823076928323533e-5,5.367713979638666e-8,0.0030382864205653216,-3.102708512509555e-5,5.3983480616954495e-8,0.003038580787609243,-3.1297162733261364e-5,5.438876948576837e-8,0.0030389926926067358,-3.158502205672186e-5,5.481947606929273e-8,0.003039524072818,-3.1826340398447944e-5,5.517809779127173e-8,0.0030401396754807146,-3.196074975273588e-5,5.5373393880473416e-8,0.0030407732402690456,-3.1956872342941396e-5,5.5358273365942866e-8,0.0030413506216760183,-3.1827784431995975e-5,5.515324561172027e-8,0.0030418182463314066,-3.1625541651179424e-5,5.4838080988230775e-8,0.003042160215499455,-3.141800758364335e-5,5.4516451859117366e-8,0.003042396527409552,-3.126315753054347e-5,5.4276642795710085e-8,0.003042568426483442,-3.119410063882663e-5,5.416865946881467e-8,0.0030427219468042673,-3.121729790939866e-5,5.4201628447496637e-8,0.0030428965072263536,-3.131876817788899e-5,5.435349924198628e-8,0.0030431195875498325,-3.1472417249374476e-5,5.4583966139684054e-8,0.003043405671120528,-3.164719823662061e-5,5.48454888443154e-8,0.003043757278206,-3.181220441401584e-5,5.509103044165085e-8,0.0030441666670632966,-3.194016210578213e-5,5.527928024881129e-8,0.0030446177728978936,-3.2010055857858906e-5,5.537854846801234e-8,0.0030450884814295937,-3.200922767702134e-5,5.5369895852801475e-8,0.003045553386619406,-3.193493319092446e-5,5.524947681257876e-8,0.003045987115545042,-3.179510076572901e-5,5.502968803317016e-8,0.0030463680745412454,-3.1607871380829794e-5,5.473845618856727e-8,0.0030466821164058687,-3.139963516825679e-5,5.441621391559135e-8,0.0030469255028017037,-3.120163298944072e-5,5.4110664553357935e-8,0.003047106649642553,-3.1045429760949075e-5,5.3869815322197836e-8,0.003047246264489913,-3.0957724333207185e-5,5.373401644060654e-8,0.0030473756148905722,-3.0955076276420677e-5,5.372793333790556e-8,0.0030475327337165107,-3.10391075449408e-5,5.385333611732599e-8,0.0030477562593878016,-3.119291882112134e-5,5.408383161903094e-8,0.0030480767420623433,-3.138019112187306e-5,5.436371344206401e-8,0.003048506271394186,-3.154923496407961e-5,5.461427067933738e-8,0.003049029398017934,-3.164403612417949e-5,5.4750595244403097E-08,0.003049600741217892,-3.162181473782961e-5,5.470817249590223e-8,0.0030501546590933595,-3.147129459702184e-5,5.447053534930495e-8,0.0030506267199089275,-3.122124129326912e-5,5.408216609011085e-8,0.003050977543809847,-3.0931489493301834e-5,5.363475132421305e-8,0.0030512056349143645,-3.066970206362606e-5,5.323164358366911e-8,0.0030513427951945633,-3.048709541508865e-5,5.2950735410073135e-8,0.0030514375272195533,-3.0405493613713788e-5,5.2824725934812176e-8,0.0030515374213706445,-3.0418359774685625e-5,5.284287745599565e-8,0.003051677995809869,-3.050014466075965e-5,5.296553808075435e-8,0.0030518790092155215,-3.061696562449272e-5,5.314062781446654e-8,0.003052145625853913,-3.073469977610028e-5,5.3316031028704927e-8,0.0030524714707749288,-3.082377392153637e-5,5.344682144560079e-8,0.0030528417493476028,-3.086160174564249e-5,5.34988474804598e-8,0.0030532358836312897,-3.0833881042707114e-5,5.345060667689741e-8,0.003053629879526026,-3.0735485986035706e-5,5.3294565854492434e-8,0.0030539988364117142,-3.0571146292916206e-5,5.30382059792326e-8,0.0030543199507090837,-3.0355674406952507e-5,5.270438907050841e-8,0.0030545760956502454,-3.0113150877368533e-5,5.233010961195881e-8,0.00305475954547292,-2.9874438142143042e-5,5.1962653663563995e-8,0.003054874940487383,-2.967277780668974e-5,5.165280031939516e-8,0.0030549404324154324,-2.9537825570307475e-5,5.144563962738253e-8,0.0030549861390338404,-2.9489134143288323e-5,5.137059250576423e-8,0.0030550495976808005,-2.953061394193003e-5,5.143300630399881e-8,0.003055168710759939,-2.9647526534915528e-5,5.160970828560753e-8,0.0030553733364540553,-2.9807121158297693e-5,5.1850176986509324e-8,0.0030556770688369554,-2.9963521348213533e-5,5.208418350889287e-8,0.0030560711382057876,-3.0066914121891328e-5,5.223590149011024e-8,0.003056522783852153,-3.007606385331831e-5,5.224295582005858e-8,0.0030569803906741184,-2.9971466768568165e-5,5.207634125974998e-8,0.0030573862107332603,-2.9764480348069197e-5,5.1754164969916074e-8,0.0030576939719519337,-2.9497043921062268e-5,5.134105271121149e-8,0.0030578844960596806,-2.9229485363525857e-5,5.092940536552576e-8,0.0030579714726823846,-2.9020378842860718e-5,5.060856308901679e-8,0.00305799430929109,-2.890783769790072e-5,5.0436246780448754e-8,0.0030580024833647516,-2.8900743931462217e-5,5.042530128741445e-8,0.0030580398139917744,-2.8981793723107103e-5,5.0548579370877406e-8,0.0030581349144192635,-2.9117796452997896e-5,5.075489270553819e-8,0.0030582989710085853,-2.927092112731661e-5,5.0986296117823764e-8,0.00305852838098303,-2.9406906130383003e-5,5.1190589621726315e-8,0.00305880913029923,-2.9499417804318987e-5,5.132784410791377e-8,0.0030591209014314944,-2.9531615236497716e-5,5.1372652866946216e-8,0.003059440241717404,-2.949633831159525e-5,5.131434068941656e-8,0.00305974298908132,-2.9395907947313022e-5,5.1156659354477445e-8,0.0030600065090859636,-2.9241933794825013e-5,5.091753916282965e-8,0.00306021229511157,-2.9054948323373344e-5,5.062856693783168e-8,0.003060349177847135,-2.8863199511689882e-5,5.033312632870034e-8,0.003060416814008068,-2.8699745555567035e-5,5.008188395273282e-8,0.0030604284223485962,-2.8597283966096064e-5,4.992478512143156e-8,0.0030604111977471983,-2.858098323762389e-5,4.990002248696701e-8,0.0030604029204521956,-2.8660871126497475e-5,5.002240613766968e-8,0.0030604443802250266,-2.8826475438747818e-5,5.027527520898142e-8,0.0030605691021830185,-2.9046441406551585e-5,5.061009175503469e-8,0.00306079346737266,-2.927436144349517e-5,5.0955543464884993e-8,0.0030611106463299936,-2.945974872572592e-5,5.123445153963956e-8,0.003061490627398194,-2.9561147187201426e-5,5.1383839021491824e-8,0.0030618866932196325,-2.9557585511589545e-5,5.137235223398255e-8,0.0030622468460100747,-2.9455021239405097e-5,5.1209933881528055e-8,0.0030625273270125427,-2.9285654512983767e-5,5.0946554534423536e-8,0.0030627045011972953,-2.909970499319971e-5,5.065943900038011e-8,0.003062781223049597,-2.8951506243513924e-5,5.043168206571564e-8,0.0030627851170516554,-2.8884214842026012e-5,5.032886811317642e-8,0.003062759221135395,-2.8918582214671775e-5,5.038203695084455e-8,0.0030627487734678108,-2.9049687038960627e-5,5.0582911500186546e-8,0.0030627893702877065,-2.9251814457828465e-5,5.0891584468485985e-8,0.0030629003148716434,-2.9488179827505706e-5,5.1251525998749074e-8,0.0030630839037973016,-2.972103318011528e-5,5.160504457192073e-8,0.0030633288315558426,-2.9918997653759335e-5,5.190441062046527e-8,0.003063615124797014,-3.0060785653816723e-5,5.211739828811116e-8,0.003063918729338474,-3.013609360645597e-5,5.222854366679751e-8,0.003064214995878956,-3.014497667576545e-5,5.223815136496016e-8,0.0030644811540353513,-3.0096760320048008e-5,5.2160662139867385e-8,0.003064698316991432,-3.0009023509637796e-5,5.202315302953461e-8,0.0030648536429064674,-2.990656924730143e-5,5.1863784882354814e-8,0.0030649429933266646,-2.9819741475536308e-5,5.1729180727117875e-8,0.0030649738454125133,-2.9781167475517766e-5,5.166933721709507e-8,0.0030649674206902153,-2.98201748061254e-5,5.172897531156119e-8,0.0030649581828044383,-2.9955006804012056e-5,5.19355879701887e-8,0.0030649887015580467,-3.0184701153387606e-5,5.2287079973691934e-8,0.0030650993228122743,-3.048438554024296e-5,5.274472973817438e-8,0.0030653151426291397,-3.080799959377198e-5,5.3237545317571995e-8,0.0030656356436287177,-3.109971429626911e-5,5.36798936350581e-8,0.003066032397083313,-3.131062399609393e-5,5.3997123564829124e-8,0.0030664566457068772,-3.141392264624986e-5,5.414878191396371e-8,0.003066853673243906,-3.141241782904111e-5,5.414000445922996e-8,0.003067178107954643,-3.1336255718859404e-5,5.401782535141934e-8,0.003067405017322031,-3.123297452844401e-5,5.385569119674471e-8,0.0030675342967685115,-3.115406523908855e-5,5.3732673458228506e-8,0.0030675883450696387,-3.1142126616185284e-5,5.3713731593782084e-8,0.003067604598905477,-3.122165258980363e-5,5.3835712946092174e-8,0.0030676253853558076,-3.139518885501176e-5,5.41016984091395e-8,0.0030676878955794595,-3.164514859820826e-5,5.448403678006608e-8,0.0030678167760080873,-3.1940102956282886e-5,5.4934156079083943e-8,0.00306802082106185,-3.22432379520567e-5,5.539556794925043e-8,0.0030682938008947383,-3.252038055262967e-5,5.581610023286302e-8,0.003068618188348601,-3.2745712319185725e-5,5.6156527333722295e-8,0.0030689700372110436,-3.290455445210272e-5,5.63947158589191e-8,0.0030693235621584002,-3.299368835276426e-5,5.652604281911584e-8,0.0030696546829265168,-3.302018003318915e-5,5.656158441311524e-8,0.003069943501781531,-3.299964329710182e-5,5.652548727111865e-8,0.0030701761356594238,-3.295448884467991e-5,5.6452316329964884e-8,0.0030703464351241215,-3.2912168983386934e-5,5.6384348797087725e-8,0.0030704579205523843,-3.290292724600728e-5,5.6368046064395786e-8,0.0030705257705411666,-3.2956240209135014e-5,5.6448491101539555e-8,0.003070577902929506,-3.3095212754677564e-5,5.666072725949836e-8,0.003070653303256023,-3.332901887976236e-5,5.7018206275630994e-8,0.0030707954675129484,-3.3645317050531466e-5,5.750131258839977e-8,0.003071040281409215,-3.4006866132882734e-5,5.805237688321617e-8,0.003071401442066699,-3.435724590922433e-5,5.858460257890024e-8,0.003071860664240823,-3.463707718078335e-5,5.900700173455468e-8,0.003072369948294953,-3.4805077484133635e-5,5.9256687131385314e-8,0.0030728668933984586,-3.4853323968064e-5,5.932224867940723e-8,0.00307329574470014,-3.4808729472292477e-5,5.9245906426521214e-8,0.0030736238628414326,-3.472127382584356e-5,5.910521892617646e-8,0.0030738476136962186,-3.4646440956723325e-5,5.898583976281836e-8,0.0030739883560582247,-3.462984017376718e-5,5.895772090868357e-8,0.0030740829181741033,-3.46981445897087e-5,5.906122528438606e-8,0.0030741729261370603,-3.485661305223858e-5,5.930354340403719e-8,0.0030742957031104122,-3.509154811261891e-5,5.966276668283171e-8,0.0030744779277463736,-3.537572740023708e-5,6.00964697542749e-8,0.0030747323559975367,-3.5675189893930766e-5,6.055223916889516e-8,0.003075057487670119,-3.5956061174078274e-5,6.097812908001633e-8,0.0030754397046584866,-3.619027550379833e-5,6.133134047523962e-8,0.0030758570531433604,-3.6359408441814945e-5,6.158398173260262e-8,0.0030762836935755364,-3.645637499575067e-5,6.17255797130405e-8,0.0030766941332692503,-3.6485215974385064e-5,6.176270393282051e-8,0.00307706662715048,-3.645952970605651e-5,6.17165520944473e-8,0.0030773855806581914,-3.64002479832436e-5,6.161954383422073e-8,0.0030776432027652626,-3.63332416409525e-5,6.151163570192726e-8,0.003077840759611733,-3.628682113866609e-5,6.143643256726638e-8,0.003077989627912044,-3.628885788142236e-5,6.143667890109774e-8,0.0030781120193623807,-3.6363006241524466e-5,6.154837667649236e-8,0.0030782405956229293,-3.652349964920907e-5,6.179278977302228e-8,0.0030784153961581056,-3.6768720995789186e-5,6.216668724687254e-8,0.003078676287039924,-3.707542807113103e-5,6.263368664319519e-8,0.0030790504999446576,-3.739763323181358e-5,6.312273725650803e-8,0.0030795385416962856,-3.767491089624212e-5,6.354097060212617e-8,0.0030801063485889927,-3.7851372011602716E-05,6.380282181650783e-8,0.003080691860843348,-3.789839797156401e-5,6.3864909335135015E-08,0.0030812263089583505,-3.782804205247127e-5,6.374660437345014e-8,0.0030816595018051856,-3.768799022595951e-5,6.352218567186832e-8,0.003081975175275685,-3.754141745986299e-5,6.328960513196501e-8,0.0030821904003572086,-3.7444257862379394e-5,6.313520651894206e-8,0.003082343638281676,-3.743069219176931e-5,6.311124043335557e-8,0.0030824800552818033,-3.7509564541134194e-5,6.323047245576145e-8,0.0030826400072475326,-3.7668452785068254e-5,6.347276711043042e-8,0.003082852413765722,-3.788093848520992e-5,6.379661295313797e-8,0.003083132266538477,-3.811403698482697e-5,6.415076333549884e-8,0.0030834808667202927,-3.833449478651092e-5,6.448396137955909e-8,0.0030838877341181153,-3.8513714836371074e-5,6.475242681002939e-8,0.0030843336004778847,-3.8631288755844996e-5,6.49251538042667e-8,0.003084794042322366,-3.867707285475078e-5,6.49869875714132e-8,0.0030852433321181686,-3.865183435490819e-5,6.49395475346079e-8,0.0030856581339217173,-3.856655888053119e-5,6.48001336398034e-8,0.0030860206460516367,-3.844058492853828e-5,6.459884806542256e-8,0.0030863208771382037,-3.8298947069799535e-5,6.437449277747022e-8,0.0030865580404335806,-3.816935596666206e-5,6.416988298112212e-8,0.0030867412223701774,-3.807898089265322e-5,6.402682842646071e-8,0.0030868893766480983,-3.8050984731237867e-5,6.398072676630348e-8,0.0030870304944824955,-3.810068561233592e-5,6.405462439468387e-8,0.003087199430753806,-3.823122572618231e-5,6.425261522376926e-8,0.0030874333446925814,-3.842914766591009e-5,6.455320872359164e-8,0.0030877636895722525,-3.866159342862816e-5,6.490525234810125e-8,0.0030882049718960573,-3.887836166676586e-5,6.523127311346362e-8,0.003088743561312213,-3.9022341755227606e-5,6.544356507347711e-8,0.003089333590640843,-3.904860755320145e-5,6.547348840413299e-8,0.0030899071036917716,-3.894510170953161e-5,6.530322358465656e-8,0.0030903979050176593,-3.8742004346281896e-5,6.498015271661827e-8,0.003090767228006569,-3.8501181533249536e-5,6.460049051721142e-8,0.0030910160608724553,-3.8290854101103754e-5,6.426997931057188e-8,0.0030911786470456865,-3.816087723268984e-5,6.406549047523721e-8,0.003091304636594572,-3.81308943961482e-5,6.401668515462453e-8,0.0030914415331645385,-3.819243835001492e-5,6.410948319588161e-8,0.003091624053373996,-3.831851468248846e-5,6.430123035197483e-8,0.0030918706623143453,-3.8474104361764894e-5,6.453722136219927e-8,0.0030921846709144477,-3.8624255014770126e-5,6.476330985906157e-8,0.0030925572633731823,-3.8739191826344275e-5,6.493373044917373e-8,0.0030929709124494467,-3.879722444333691e-5,6.501542077873879e-8,0.003093402731555433,-3.8786312162609277e-5,6.499027635350036e-8,0.0030938277663450082,-3.870467412242986e-5,6.485599547202599e-8,0.0030942222139669767,-3.856054410640383e-5,6.462566902485165e-8,0.003094566519648795,-3.8371053174280506e-5,6.432606100579885e-8,0.0030948481721392368,-3.816012347433993e-5,6.399436069664364e-8,0.003095063804553022,-3.795541247827492e-5,6.36734419165358e-8,0.003095220250846101,-3.778464042825393e-5,6.34061366452044e-8,0.003095334440344874,-3.76716671513097e-5,6.322910755980504e-8,0.00309543208101415,-3.76325912073004e-5,6.316677889485286e-8,0.0030955450293822886,-3.767217508425234e-5,6.32258396731875e-8,0.003095707183071852,-3.778095740397159e-5,6.339090801722296e-8,0.00309594862334514,-3.793365750566644e-5,6.36222778804018e-8,0.003096287931628474,-3.80901905074783e-5,6.385770713701393e-8,0.0030967236941520254,-3.8201303672671125e-5,6.402124536059043e-8,0.003097228280907147,-3.822036947682624e-5,6.404140759803494e-8,0.0030977490184312755,-3.8120022723220564e-5,6.387670810024808e-8,0.0030982210755350135,-3.7907147081520453e-5,6.353864073301886e-8,0.0030985900761617553,-3.762610731223205e-5,6.309655120907573e-8,0.0030988336384995293,-3.734434007536094e-5,6.265523738702239e-8,0.003098968816215725,-3.7126254709522466e-5,6.231441792645098e-8,0.003099041425769494,-3.7010331236075636e-5,6.213318613669418e-8,0.0030991055833493103,-3.7000963291756114e-5,6.211747094970239e-8,0.0030992057850765756,-3.707503307238412e-5,6.223050579274813e-8,0.0030993681475792695,-3.719515769679686e-5,6.241367766141261e-8,0.0030996000182369945,-3.7321886461173106e-5,6.260562024590069e-8,0.0030998940056717068,-3.742152940130405e-5,6.275433238229519e-8,0.003100233021590866,-3.7469791909199243e-5,6.282264287237035e-8,0.0031005946146256498,-3.74527865541713e-5,6.278957087078115e-8,0.0031009543309571943,-3.7366892039579344e-5,6.264995951136436e-8,0.003101288498980592,-3.721816385706405e-5,6.241351573364313e-8,0.0031015767979117176,-3.702139137135275e-5,6.210337620395833e-8,0.0031018047687390517,-3.679862687950359e-5,6.175387343947005e-8,0.0031019661991720264,-3.657686241831285e-5,6.140695022313485e-8,0.0031020649564957345,-3.638462538015085e-5,6.110684934249384e-8,0.0031021156285978737,-3.624768225270253e-5,6.089338495755532e-8,0.003102142484188417,-3.6184428286903e-5,6.079473351831937e-8,0.0031021765631752685,-3.620172937410701e-5,6.082097958568538e-8,0.0031022510076930674,-3.629208197157182e-5,6.095979473559371e-8,0.0031023950750430954,-3.643289906673445e-5,6.117550104443778e-8,0.0031026275545373554,-3.658852828809345e-5,6.141241349154455e-8,0.0031029505897565103,-3.6715498961018746e-5,6.160314515690131e-8,0.0031033454561945222,-3.677128760644678e-5,6.168223979401771e-8,0.0031037725875075316,-3.672594194239396e-5,6.160407633853862e-8,0.0031041783170027994,-3.6573890333345214e-5,6.13609507617016e-8,0.0031045091130757767,-3.634081561194844e-5,6.099349544356457e-8,0.0031047297909969312,-3.607980110758601e-5,6.058452494813771e-8,0.0031048374201034855,-3.585494963702326e-5,6.023352619407363e-8,0.003104862516995215,-3.5718644691785436e-5,6.002135737673514e-8,0.003104856093193385,-3.569405931092349e-5,5.998319444364333e-8,0.0031048700872880267,-3.577137790618058e-5,6.010288490586609e-8,0.003104941604094109,-3.5916960865466545e-5,6.032745899023271e-8,0.00310508658575867,-3.608784938858073e-5,6.058987181278256e-8,0.003105301813939656,-3.6244129061960325e-5,6.082825896614451e-8,0.0031055709169320175,-3.6355939860998774e-5,6.099670423139435e-8,0.003105870647986892,-3.6405690275413666e-5,6.106846533436347e-8,0.0031061756914431407,-3.638750956805874e-5,6.103492926911871e-8,0.0031064618740461935,-3.630572623697611e-5,6.090315332297189e-8,0.0031067083897661323,-3.617327510332381e-5,6.069340518034317e-8,0.0031068996748370463,-3.6010179052804656e-5,6.043687697777326e-8,0.0031070273067826453,-3.5841809895788134e-5,6.017304374810048e-8,0.003107091924907097,-3.569640763286369e-5,5.994580924865879e-8,0.003107104690948129,-3.5601421586642455e-5,5.979775912534584e-8,0.0031070874280543044,-3.557871974140187e-5,5.976263364692894e-8,0.0031070705639987084,-3.563939705212548e-5,5.985721638430891e-8,0.00310708845076731,-3.577953751271076e-5,6.007479140748683e-8,0.0031071724854550274,-3.597857902840596e-5,6.0382741421625e-8,0.003107343449944664,-3.620155104969642e-5,6.072622362437715e-8,0.0031076051132779385,-3.640540195274204e-5,6.10381901744192e-8,0.0031079410880545904,-3.6548419234103456e-5,6.125412657583635e-8,0.0031083163328670636,-3.6600797795219e-5,6.132843658673388e-8,0.003108683776045806,-3.655377779638129e-5,6.12484672972554e-8,0.0031089953478281146,-3.642449473760269e-5,6.104178540723422e-8,0.0031092151923365167,-3.6254006005909544e-5,6.077284786520125e-8,0.003109331132111241,-3.6097367552710236e-5,6.052739707346827e-8,0.00310935954808475,-3.6007610042852635e-5,6.038750927329051e-8,0.0031093404361101393,-3.601917120844064e-5,6.04059490162074e-8,0.0031093239113226005,-3.6137917913298556e-5,6.059089030936383e-8,0.003109354124427072,-3.6341991680345246e-5,6.090751315544337e-8,0.0031094576079410963,-3.6591899919457295e-5,6.12939239128099e-8,0.003109639723574992,-3.684400498898479e-5,6.168222747975021e-8,0.003109888172433052,-3.706155993675539e-5,6.201562972733295e-8,0.003110179865335902,-3.7220522609188814e-5,6.225730522644977e-8,0.0031104876813696455,-3.731061864999249e-5,6.239184703464731e-8,0.00311078539719096,-3.733367074941028e-5,6.242252235980394e-8,0.0031110506840359895,-3.730106234421321e-5,6.236728729470829e-8,0.003111266829818254,-3.723134017143124e-5,6.225510727514509e-8,0.0031114239398752712,-3.7148181411718e-5,6.212287206499815e-8,0.0031115201531575613,-3.7078419428024274e-5,6.201236188919679e-8,0.003111562975299694,-3.7049500972479054e-5,6.196625586571644e-8,0.003111570240611829,-3.7085775629295866e-5,6.20222732746493e-8,0.0031115696907623807,-3.720350361712773e-5,6.220533256957703e-8,0.003111595961660061,-3.740535774526301e-5,6.251900193071125e-8,0.0031116842348012787,-3.7676298720104116e-5,6.293919212979045e-8,0.0031118612256879658,-3.798340020650173e-5,6.341407163920447e-8,0.003112136139777003,-3.828150901245256e-5,6.387306782824209e-8,0.003112495379209596,-3.852427301854293e-5,6.424415997620797e-8,0.003112903926884855,-3.867726198381603e-5,6.447432367142958e-8,0.0031133136874417224,-3.872848224078679e-5,6.454579824951314e-8,0.0031136761793375063,-3.8692456923064395E-05,6.448222652228261e-8,0.0031139554371912236,-3.860656882561176e-5,6.434267804320025e-8,0.0031141372703484766,-3.8521032659985596e-5,6.420576709598722e-8,0.0031142324513703736,-3.848555621137015e-5,6.414873497201981e-8,0.003114273122112332,-3.85363882869955e-5,6.422732768153216e-8,0.0031143034616922818,-3.868736365238427e-5,6.446208120483557e-8,0.0031143674207793413,-3.892758353008189e-5,6.483503018920008e-8,0.003114497459059395,-3.9226240381586666e-5,6.529750515880651e-8,0.0031147078121036174,-3.954245370409532e-5,6.578559894383833e-8,0.00311499378960663,-3.983627974908429e-5,6.623730004445356e-8,0.0031153360888836355,-4.007726426013293e-5,6.660567612073376e-8,0.0031157075151952004,-4.024868825724295e-5,6.686529743458914e-8,0.00311607947574405,-4.034776414925683e-5,6.701237492469503e-8,0.0031164267230209515,-4.038331710088937e-5,6.706105409678788e-8,0.0031167301083817336,-4.037260325837689e-5,6.703845169512361e-8,0.003116977890976981,-4.033831580823609e-5,6.698004129434217e-8,0.0031171663505323325,-4.030610095786534e-5,6.692583316158584e-8,0.0031173002857739405,-4.030233658179883e-5,6.691691302618574e-8,0.0031173935830516013,-4.035158745219613e-5,6.699141672014888e-8,0.003117469472534857,-4.047311163717984e-5,6.71790093138832e-8,0.0031175594775110223,-4.067616621474953e-5,6.749354678239481e-8,0.0031176996760878236,-4.095478103045957e-5,6.792501578391407e-8,0.003117923245200117,-4.1284097202451735e-5,6.843400804444655e-8,0.003118249965451604,-4.162156390749211e-5,6.895378532468487e-8,0.0031186762577232225,-4.1915651713568604e-5,6.940399276282996e-8,0.0031191714040973333,-4.212116830683181e-5,6.971456663709166e-8,0.0031196840741649716,-4.2215346438736336e-5,6.985077033810668e-8,0.003120157847027817,-4.220674667049533e-5,6.98269624957057e-8,0.0031205489414833265,-4.2132362620646234e-5,6.97018734876997e-8,0.0031208383916512266,-4.20448327662397e-5,6.955836204462521e-8,0.003121034785095203,-4.199616018547974e-5,6.947774286240719e-8,0.003121168632125931,-4.202421267565137e-5,6.951862361251391e-8,0.0031212820770698153,-4.214528318978495e-5,6.970544612819716e-8,0.0031214177248149594,-4.235306877230772e-5,7.002722768273191e-8,0.0031216092731973467,-4.2622792035729374e-5,7.044435725304227e-8,0.0031218754919343627,-4.2918580516760454e-5,7.090035608149642e-8,0.0031222181803268524,-4.320209457310386e-5,7.133539946884241e-8,0.003122623947005099,-4.344044848734895e-5,7.169857291254788e-8,0.00312306884485219,-4.361179467816571e-5,7.195639886437939e-8,0.003123524289638139,-4.370774340490241e-5,7.209642624241596e-8,0.0031239626656890764,-4.373282262997294e-5,7.21262580887302e-8,0.0031243615440335547,-4.3701909396077086e-5,7.206948965492392e-8,0.0031247061538028763,-4.3636780471882876e-5,7.196033443639855e-8,0.0031249903765416783,-4.356272900897019e-5,7.183837800351165e-8,0.0031252168682957006,-4.3505688790359626e-5,7.174410685588453e-8,0.0031253968441908885,-4.348975073626395e-5,7.17150048965672e-8,0.0031255497310814042,-4.35346390742139e-5,7.178155313739291e-8,0.00312570246406995,-4.3652662272077505e-5,7.196242839516862e-8,0.0031258876523310264,-4.384487979547073e-5,7.225856364534224e-8,0.003126139361453899,-4.409699636109416e-5,7.26468964950289e-8,0.003126485461480311,-4.437689592985936e-5,7.307674195249288e-8,0.003126937079372063,-4.4637120813428204e-5,7.347383911846252e-8,0.003127478854765807,-4.482535361453673e-5,7.375675854161458e-8,0.0031280666690904416,-4.490213927602775e-5,7.386449999496449e-8,0.0031286382404406153,-4.4858518891369295e-5,7.37839353542856e-8,0.0031291344460409416,-4.472272685316552e-5,7.356017852034121e-8,0.0031295207052957296,-4.455029894921475e-5,7.328095575302624e-8,0.0031297969026368396,-4.440289276125083e-5,7.304320913549977e-8,0.0031299925059136854,-4.4327735522592144e-5,7.292069128837017e-8,0.0031301525953489643,-4.4346566926362245e-5,7.294663172919162e-8,0.003130323040755186,-4.44552245163689e-5,7.311334170083266e-8,0.0031305398839340287,-4.463002091424208e-5,7.338260528006618e-8,0.00313082404631057,-4.483652215332876e-5,7.369977824422968e-8,0.0031311803606072124,-4.503787355813529e-5,7.400698484506922e-8,0.0031315994383132096,-4.5201450522542784e-5,7.425347439859536e-8,0.0031320612381614877,-4.530356848674249e-5,7.440279963037097e-8,0.0031325396046175753,-4.533218545978504e-5,7.443682235158883e-8,0.003133007088926917,-4.528754210138793e-5,7.435654510846008e-8,0.003133439334571156,-4.51809403698077e-5,7.41801159799911e-8,0.003133818472273233,-4.503213230381495e-5,7.393873233871031e-8,0.003134135205289634,-4.486591093923118e-5,7.367133504974223e-8,0.0031343895555660316,-4.470855447784281e-5,7.34190699593144e-8,0.003134590575431148,-4.4584622562577654e-5,7.322027017012072e-8,0.0031347554245567386,-4.451420562905288e-5,7.310611312884732e-8,0.0031349080100163845,-4.451044644791041e-5,7.309669605942408e-8,0.0031350771198854635,-4.457710742852157e-5,7.319723119373661e-8,0.0031352936217133444,-4.47060605212665e-5,7.339422020383135e-8,0.0031355858958112227,-4.487510826442938e-5,7.365224958348347e-8,0.003135972822388433,-4.5047645339306655e-5,7.391369496033267e-8,0.0031364549294214225,-4.517674188187485e-5,7.410524949995039e-8,0.003137006880828943,-4.521608014150156e-5,7.415499865583744e-8,0.0031375773084138556,-4.513707215275879e-5,7.401903658596108e-8,0.003138101428611319,-4.494515854131807e-5,7.370680978793502e-8,0.0031385245037932065,-4.468383466731007e-5,7.328731665396651e-8,0.0031388241332245405,-4.441996388809048e-5,7.286597138629206e-8,0.003139017499846824,-4.421722026618582e-5,7.254276438257211e-8,0.003139150157383647,-4.411342074013215e-5,7.237653893372397e-8,0.0031392756212672386,-4.411288523762928e-5,7.237306272266767e-8,0.003139437968769991,-4.4192948719133804e-5,7.249557334607343e-8,0.0031396632755686426,-4.431658177299298e-5,7.268500837724008e-8,0.0031399588406845693,-4.444412071309936e-5,7.287870894461722e-8,0.0031403166737552367,-4.454122642373622e-5,7.302295817715162e-8,0.0031407183126958165,-4.4583109623867075e-5,7.307944575839242e-8,0.0031411394477191415,-4.4556196731207386e-5,7.302762227868937e-8,0.0031415539994911366,-4.445830099035177e-5,7.28647417048713e-8,0.003141937728993228,-4.429775179132686e-5,7.260437295376374e-8,0.0031422713373744243,-4.4091609934731785e-5,7.227358181570472e-8,0.0031425429027575314,-4.386309308749254e-5,7.190893225978437e-8,0.0031427494576673834,-4.363836426557965e-5,7.155149576181157e-8,0.0031428974772572276,-4.3442976873453624e-5,7.124128957024562e-8,0.003143002214192302,-4.329843267004607e-5,7.101185038058907e-8,0.003143086052266109,-4.321920239699395e-5,7.088551186228275e-8,0.0031431760678829164,-4.3210361139567735e-5,7.086966698763124e-8,0.0031433008971223707,-4.3265945431617366e-5,7.09542336198036e-8,0.003143486895319873,-4.336813785078726e-5,7.111052058211447e-8,0.0031437533847702066,-4.348759147027911e-5,7.12919612296051e-8,0.0031441069213620117,-4.358585463469756e-5,7.143813366953108e-8,0.003144535476545944,-4.362139298757207e-5,7.148429942205696e-8,0.003145005091611609,-4.3560203673701036e-5,7.137795505629189e-8,0.003145463126681861,-4.3389675112285365e-5,7.11003324650128e-8,0.003145851574927433,-4.3129979926205826e-5,7.068402441148508e-8,0.0031461283507413433,-4.2833959953962696e-5,7.021264040871186e-8,0.003146286100171612,-4.257032356693477e-5,6.979432110562806e-8,0.0031463558591178996,-4.239669820392884e-5,6.951932082306872e-8,0.003146392327049763,-4.233819904869464e-5,6.942631862677053e-8,0.0031464507043553205,-4.2383168839997224e-5,6.94958958380317e-8,0.0031465688651928546,-4.249459392815535e-5,6.966883115670779e-8,0.0031467612849682977,-4.262689345829094e-5,6.987285185595196e-8,0.0031470222789782287,-4.273918499304871e-5,7.004366315740973e-8,0.0031473330289561153,-4.2802158807808166e-5,7.013567759431403e-8,0.003147668417268007,-4.279983806022786e-5,7.01245308551207e-8,0.0031480021049310764,-4.272860133319068e-5,7.00052672228628e-8,0.0031483099313495784,-4.259528124034335e-5,6.978916831189976e-8,0.0031485723125253334,-4.241509647530167e-5,6.950045735299453e-8,0.0031487761173877083,-4.2209454417396814e-5,6.917289890407978e-8,0.0031489161538580373,-4.2003459881328945e-5,6.884596295593158e-8,0.003148996162170557,-4.1822953882087386e-5,6.856021556609623e-8,0.003149028978654053,-4.169106752864223e-5,6.835188836388549e-8,0.003149035482429731,-4.162464544196019e-5,6.824720046102467e-8,0.003149042199251593,-4.163112014627014e-5,6.825739085675065e-8,0.00314907771956232,-4.170639233813112e-5,6.837538674971382e-8,0.0031491682653819867,-4.18342132313785e-5,6.857492364962827e-8,0.0031493329122884942,-4.198742613049102e-5,6.881267918772647e-8,0.003149579039836493,-4.213120402571019e-5,6.903358555963276e-8,0.0031498986271138838,-4.2228420130555436e-5,6.91794432100356e-8,0.0031502664228729867,-4.2247298350746497e-5,6.920097199180307e-8,0.003150641701734798,-4.217078712182122e-5,6.907238815589541e-8,0.0031509754961388586,-4.200545381164349e-5,6.880509810771359e-8,0.0031512238608324395,-4.1785638196682574e-5,6.845392811745735e-8,0.0031513640821730364,-4.1567794289340616e-5,6.810802378555436e-8,0.003151406157010707,-4.141327484247085e-5,6.786370323995615e-8,0.0031513912510576945,-4.136560918026271e-5,6.778876311671728e-8,0.003151375804577231,-4.1434395174820625e-5,6.789730029476199e-8,0.0031514098642566202,-4.159482257943738e-5,6.81492342574456e-8,0.0031515215625475173,-4.18012216288661e-5,6.847194098192803e-8,0.0031517136174996478,-4.200494130433833e-5,6.878861599395965e-8,0.0031519692707481077,-4.216756787951769e-5,6.903911030241721e-8,0.003152261517243071,-4.2266490087485424e-5,6.918851693440988e-8,0.0031525610670786637,-4.229461685062819e-5,6.922644943555905e-8,0.0031528414655990046,-4.22573706176436e-5,6.9162068457332e-8,0.003153081775375267,-4.216923255662013e-5,6.901853417953314e-8,0.0031532678798198805,-4.205077312180638e-5,6.882835975902144e-8,0.0031533932546355388,-4.192616457967239e-5,6.862959482793142e-8,0.0031534595708972847,-4.1820803001536924e-5,6.84621653927876e-8,0.0031534770784778826,-4.175861379115542e-5,6.836364650161207e-8,0.0031534643622982412,-4.17588032667655e-5,6.836409543908077e-8,0.0031534468701465957,-4.183228856251606e-5,6.848035579602831e-8,0.003153453782052926,-4.197854007215975e-5,6.871105220452271e-8,0.003153513263736754,-4.218384148552481e-5,6.903390427614672e-8,0.0031536467429532566,-4.242196322172231e-5,6.940693592124387e-8,0.003153863430347162,-4.265783483101526e-5,6.977446531891138e-8,0.003154156585993926,-4.285397543340932e-5,7.007742427316526e-8,0.00315450279718283,-4.2978622186424466e-5,7.026625449926472e-8,0.0031548650041122103,-4.301400854080456e-5,7.031388230440871e-8,0.00315519943918034,-4.296289169347691e-5,7.022577473855363e-8,0.003155465859320983,-4.285109888117147e-5,7.00436294628589e-8,0.0031556391659936065,-4.272394847220358e-5,6.983943122484468e-8,0.0031557188612724523,-4.263555517927237e-5,6.969842457165365e-8,0.0031557317728420436,-4.263280101975123e-5,6.969387032889604e-8,0.0031557249027450757,-4.2739520543408744e-5,6.98623192302485e-8,0.0031557498994496218,-4.294833096833603e-5,7.019104128047928e-8,0.00315584589866597,-4.322452786249621e-5,7.062447804376743e-8,0.0031560287243041687,-4.3519737897634517e-5,7.108598411323216e-8,0.003156290210848438,-4.378791545601902e-5,7.150311106554863e-8,0.0031566054069980037,-4.3996660675542415e-5,7.182534984786604e-8,0.0031569423808284628,-4.4131253208340974e-5,7.203026754938302e-8,0.003157270337523358,-4.4192994871844845e-5,7.212064457656072e-8,0.003157564470837877,-4.419496903596624e-5,7.211761487890475e-8,0.003157808015852627,-4.415761251223253e-5,7.205364259861087e-8,0.0031579926823708912,-4.4105138784809375e-5,7.196695049477917e-8,0.0031581184957774153,-4.406285452731199e-5,7.189738913692536e-8,0.003158193599416625,-4.4054911516432865e-5,7.188294750699247e-8,0.003158234031798483,-4.4101897275740684e-5,7.195593087373301e-8,0.003158263018098467,-4.421788006294162e-5,7.213822712040806e-8,0.003158309054218505,-4.440704337455989e-5,7.243594276621938e-8,0.0031584021289597524,-4.466069514352587e-5,7.283470938809992e-8,0.0031585679463628875,-4.495603322513259e-5,7.329786169090022e-8,0.003158821045759386,-4.5258255933040026e-5,7.37699600181512e-8,0.003159158924190263,-4.5526890236963015e-5,7.418696615489833e-8,0.0031595597943583466,-4.572549126524957e-5,7.44916678688917e-8,0.003159985788919604,-4.5832004494916494e-5,7.465002833083531e-8,0.003160391467505701,-4.5846244908167024e-5,7.466284408960723e-8,0.003160735390904223,-4.5791651761595475e-5,7.456824370500927e-8,0.003160991329864051,-4.5710340506587154e-5,7.443354724124745e-8,0.0031611557652805296,-4.56525958579643e-5,7.433840211999739e-8,0.0031612493653574466,-4.566356507695597e-5,7.43536688058528e-8,0.0031613116320375638,-4.577082683019708e-5,7.452191859422641e-8,0.00316138983687732,-4.5976704493927694e-5,7.484561016922063e-8,0.0031615255351170207,-4.625816721714404e-5,7.52873081576349e-8,0.00316174330606514,-4.6574539940815696e-5,7.578215147025375e-8,0.0031620456464795553,-4.687999059605023e-5,7.625769376845123e-8,0.003162415165519021,-4.713588347181678e-5,7.665335200741533e-8,0.003162822036835446,-4.731880660958561e-5,7.693289460631574e-8,0.0031632329785881486,-4.7422738256966696e-5,7.708762391075058e-8,0.0031636185498555743,-4.7456548574135615e-5,7.713222429686289e-8,0.003163957394531511,-4.743930170684533e-5,7.709723112409955e-8,0.003164237749092535,-4.7395460395258866e-5,7.702145770310557e-8,0.0031644572629982944,-4.735103026805132e-5,7.694598016390119e-8,0.0031646221440750945,-4.733077694987257e-5,7.690981863864776e-8,0.003164746262745098,-4.735610332844896e-5,7.694660644621445e-8,0.003164850315648308,-4.744295341822404e-5,7.708123668442743e-8,0.003164960615211108,-4.7599282087552986e-5,7.732580598792541e-8,0.00316510674443353,-4.7822150507262595e-5,7.767502077308712e-8,0.0031653173075884386,-4.809522158373371e-5,7.810233831505504e-8,0.003165613500816317,-4.8388234367153477e-5,7.855932068502407e-8,0.003166001527547761,-4.8660505245747866e-5,7.898136490858256e-8,0.0031664667240323473,-4.886967395690606e-5,7.930165483686465e-8,0.0031669732473650035,-4.898427913808119e-5,7.947106008168446e-8,0.0031674717018881997,-4.899555012818512e-5,7.94766938590658e-8,0.0031679131839261526,-4.892263568963575e-5,7.934999749978144e-8,0.0031682643359964833,-4.8808002238974886e-5,7.91591853553536e-8,0.0031685171259444567,-4.8704610129976645e-5,7.898863798646383e-8,0.003168689888016564,-4.866027347872532e-5,7.891391738685978e-8,0.0031688203554882553,-4.870497925930795e-5,7.898168134647224e-8,0.0031689541483683986,-4.884458925824059e-5,7.919995944645049e-8,0.003169132666912061,-4.90615415154104e-5,7.953967154409288e-8,0.0031693835370994743,-4.932123743816433e-5,7.994513150365482e-8,0.0031697155633991425,-4.958174182690445e-5,8.034963065946353e-8,0.0031701188096189092,-4.9803993111668386e-5,8.069160780662406e-8,0.0031705690690595756,-4.995993501816825e-5,8.092735112553882e-8,0.0031710349046023332,-5.003685841512912e-5,8.103761860361142e-8,0.003171484997353245,-5.003758483585365e-5,8.10276899103105e-8,0.0031718939250299756,-4.997743721292307e-5,8.092241368604767e-8,0.0031722454763997874,-4.98796363572316e-5,8.075886678430627e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_21.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_21.json new file mode 100644 index 000000000..841a3deb4 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_21.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":21000,"numberOfSamples":1000,"samples":[0.0031725336341924394,-4.9770637985046546e-5,8.057900832626396e-8,0.0031727619720193665,-4.967631255249218e-5,8.042370582661394e-8,0.0031729423213677447,-4.961918610821703e-5,8.032842301827844e-8,0.003173093301004051,-4.9616439750269165e-5,8.032005503717977e-8,0.0031732388512125246,-4.9678142521825614e-5,8.04140915834666e-8,0.003173406461172115,-4.980531114277095e-5,8.061152056197695e-8,0.003173624434517486,-4.998780080363393e-5,8.089554409980637e-8,0.0031739174410596086,-5.02027153676187e-5,8.122921958837977e-8,0.0031743000569504428,-5.0414905317985565e-5,8.155645946622467e-8,0.0031747693572844707,-5.058170552271261e-5,8.1809696462639e-8,0.003175299754099858,-5.066328166614758e-5,8.192630588543693e-8,0.003175844728509721,-5.06368615606572e-5,8.187106223913913e-8,0.003176348378152092,-5.0508762136083794e-5,8.16550486069026e-8,0.0031767639923363524,-5.0316402748498936e-5,8.133866443459827e-8,0.0031770709661550177,-5.011689791600365e-5,8.101329428919594e-8,0.0031772811274633317,-4.9967147620633346e-5,8.076944687326912e-8,0.003177432030673561,-4.9905479367471625e-5,8.066745206192551e-8,0.003177572270523811,-4.994259580574966e-5,8.072317955227706e-8,0.003177746439699948,-5.0063033684474547e-5,8.091070950808379e-8,0.0031779848344744835,-5.0233470557248106e-5,8.117598151931799e-8,0.0031782992076989803,-5.0413262606724425e-5,8.145387798184555e-8,0.003178683508504494,-5.056397454491497e-5,8.168346678500409e-8,0.0031791178624765563,-5.0656360805938936e-5,8.181895509495128e-8,0.003179574229733301,-5.067436252240991e-5,8.183576329438713e-8,0.003180022490647086,-5.0616168724939576e-5,8.173192449420742e-8,0.0031804358927458322,-5.049270511433461e-5,8.152548156884965e-8,0.0031807950553075313,-5.0324297904340744e-5,8.124910490024964e-8,0.0031810901697997096,-5.013646650496189e-5,8.094342997127281e-8,0.003181321456190578,-4.995570801310683e-5,8.065043893174666e-8,0.0031814982527144423,-4.9805917795511555e-5,8.040785329190629e-8,0.0031816373210504898,-4.970574993088201e-5,8.024497887522197e-8,0.0031817608717426495,-4.9666782981278536e-5,8.017978161620004e-8,0.0031818944706078238,-4.969213348437762e-5,8.021665586604609e-8,0.003182064656150664,-4.977526990474911e-5,8.034455083019423e-8,0.0031822958582123618,-4.9899054210053294e-5,8.053555151866265e-8,0.0031826060765792474,-5.00355420814562e-5,8.074475516704612e-8,0.0031830011463665404,-5.014786026254351e-5,8.091345990457809e-8,0.0031834686693217383,-5.0195995982255704e-5,8.097846711663703e-8,0.0031839746468371897,-5.01475748419181e-5,8.088913626890179e-8,0.0031844673261262986,-4.999173257679851e-5,8.062922765445895e-8,0.003184891172592454,-4.974957666882377e-5,8.023331134917238e-8,0.0031852075073160895,-4.9472597723993216e-5,7.978406694492346e-8,0.0031854111053174357,-4.922574084934537e-5,7.938518959159813e-8,0.0031855320833315435,-4.9062718900561163e-5,7.912193983519057e-8,0.003185621952271365,-4.9007423813544054e-5,7.903149987919705e-8,0.003185733140730741,-4.905026352546958e-5,7.909733195325303e-8,0.003185903073154297,-4.915750209942922e-5,7.926446313102022e-8,0.0031861477150601954,-4.9285511618747645e-5,7.946261622724468e-8,0.0031864630412842053,-4.9393086955828754e-5,7.962606325736776e-8,0.0031868305582437354,-4.944910682330027e-5,7.970578335261417e-8,0.0031872237417380285,-4.9435815064372105e-5,7.967442526435043e-8,0.003187613799646374,-4.934910556784959e-5,7.952642648280632e-8,0.0031879743406409483,-4.919701658863508e-5,7.927535204629794e-8,0.0031882849181979036,-4.899707191619981e-5,7.894954072044581e-8,0.0031885333705692622,-4.8772886247731465e-5,7.85867133852273e-8,0.0031887169235430774,-4.8550472591157195e-5,7.82281831475899e-8,0.0031888421191353347,-4.8354611885566905e-5,7.791317453714298e-8,0.0031889236591736768,-4.820561826479776e-5,7.767373204135999e-8,0.003188982392912168,-4.811685191685343e-5,7.753076281390647e-8,0.0031890428229633568,-4.80931088914721e-5,7.749144001256398e-8,0.003189130371339149,-4.8129751866914776e-5,7.754779717892457e-8,0.0031892684093893045,-4.821248076042052e-5,7.767640704932689e-8,0.003189474936144377,-4.8317827589117846e-5,7.78393091488724e-8,0.003189758740824415,-4.841472688601514e-5,7.798671830001753e-8,0.0031901151496382964,-4.846801130205281e-5,7.806277470675716e-8,0.0031905224205677797,-4.844497532884705e-5,7.801604196463123e-8,0.003190941284990858,-4.8325353983456495e-5,7.781525298490396e-8,0.0031913210506145494,-4.811258839800113e-5,7.746697340533311e-8,0.0031916141519961177,-4.784055752540146e-5,7.702604990677442e-8,0.003191795418319783,-4.7568255887754585e-5,7.658695371946121e-8,0.0031918755740832448,-4.73600221174305e-5,7.625217949764229e-8,0.003191898603829455,-4.725988960279658e-5,7.609132297246147e-8,0.0031919229650166662,-4.7275184045738147e-5,7.611500607230232e-8,0.003191998333085281,-4.737827479416436e-5,7.62779363395227e-8,0.0031921508881996145,-4.752216804202383e-5,7.65041794434679e-8,0.003192381393929433,-4.765854984268982e-5,7.671628736820805e-8,0.0031926718219546014,-4.7750056416319196e-5,7.685497758163076e-8,0.003192994371773742,-4.7775167613736925e-5,7.688676322707986e-8,0.0031933191121518447,-4.7727892633397725e-5,7.680310882032987e-8,0.0031936191057208192,-4.761498877639121e-5,7.661565929511285e-8,0.0031938734231599622,-4.74525826505499e-5,7.635065824624502e-8,0.0031940688710230926,-4.7262880918771545e-5,7.60436847923047e-8,0.0031942008964133926,-4.707097737875328e-5,7.573466367930087e-8,0.0031942737606263116,-4.6901719035824056e-5,7.546299629687368e-8,0.003194299972841271,-4.6776661718682426e-5,7.526278957837741e-8,0.003194298887206334,-4.6711226468842323e-5,7.51583342891208e-8,0.003194294386829285,-4.671240074914931e-5,7.516039741374076e-8,0.0031943118407074603,-4.6777394668392805e-5,7.526403312546946e-8,0.0031943746893159835,-4.6893437644436546e-5,7.544826377873212e-8,0.0031945009495270385,-4.7038759907479775e-5,7.567773903852656e-8,0.0031946998830175675,-4.7184820903478814e-5,7.590646855791671e-8,0.0031949691011137634,-4.729986237129749e-5,7.608369607755573e-8,0.0031952925157211496,-4.735397448743149e-5,7.616211706606225e-8,0.003195640046002511,-4.7325873413935426e-5,7.610866131565764e-8,0.0031959707011487326,-4.721084275969199e-5,7.591694218179518e-8,0.0031962407678702612,-4.7027544120006907e-5,7.561778712416466e-8,0.0031964172220154555,-4.68193172139658e-5,7.528100427078354e-8,0.003196492459990767,-4.664522204584982e-5,7.500092425591764e-8,0.003196492024360513,-4.6560407478603466e-5,7.486507180241458e-8,0.0031964677331033607,-4.6593856889802264e-5,7.491877034751068e-8,0.003196477403032644,-4.673659702635629e-5,7.514654134177191e-8,0.0031965625176653793,-4.694773588519694e-5,7.548204705047288e-8,0.0031967362693748544,-4.717322873987367e-5,7.583837429474331e-8,0.003196985533609338,-4.73651776342118e-5,7.613905990916508e-8,0.0031972812138878572,-4.74929888958597e-5,7.633588427653374e-8,0.003197589462630078,-4.7545490933105095e-5,7.64119965822908e-8,0.0031978796496195555,-4.752757942989125e-5,7.637620017022061e-8,0.00319812848863574,-4.745512493931714e-5,7.625453549820702e-8,0.00319832144886984,-4.73503257355979e-5,7.608275219379998e-8,0.003198452856742482,-4.723812082730018e-5,7.590064580016247e-8,0.0031985255501511783,-4.7143356527051194e-5,7.57476813144896e-8,0.0031985502819583764,-4.708825806567633e-5,7.565908112945316e-8,0.003198544736531598,-4.708995351933302e-5,7.566191375034777e-8,0.0031985318797554075,-4.7158036203798245e-5,7.577116598009077e-8,0.0031985373474858482,-4.729251335254058e-5,7.598640463765804e-8,0.003198585869566576,-4.7482775567525455e-5,7.629010685976644e-8,0.003198697155597323,-4.77081476564717e-5,7.664860219081877e-8,0.0031988819238857836,-4.794029858008897e-5,7.701607636820799e-8,0.003199138852327985,-4.8147471043280815e-5,7.734153154992998e-8,0.003199453210956632,-4.830010600773658e-5,7.757794512375888e-8,0.003199797758983186,-4.8377126251611665e-5,7.769236057072432e-8,0.0032001363178023106,-4.8371976704389703e-5,7.767540881795748e-8,0.0032004303140051693,-4.829716076321788e-5,7.754825940028813e-8,0.0032006480922657813,-4.818534649742223e-5,7.736402060215561e-8,0.0032007754503471137,-4.8084736666072045e-5,7.720004750070717e-8,0.0032008237523528764,-4.804734673697885e-5,7.713910918442968e-8,0.0032008304786310298,-4.811209016681051e-5,7.724247975155619e-8,0.0032008488052868407,-4.828932206014769e-5,7.75255161602495e-8,0.0032009288771208118,-4.8555592301733185e-5,7.794960329169746e-8,0.0032010998408043487,-4.886272668875077e-5,7.843695977208304e-8,0.003201361960637265,-4.915635461273817e-5,7.89004476629134e-8,0.0032016912406135044,-4.939361188750261e-5,7.927192014721211e-8,0.0032020513707647475,-4.955240233850549e-5,7.951689650027676e-8,0.003202405716929175,-4.963141986809062e-5,7.963431614369855e-8,0.003202725094131901,-4.964474472975755e-5,7.96475824883057e-8,0.0032029909049170156,-4.961523348656123e-5,7.959378125967193e-8,0.0032031952157390927,-4.9569099471490336e-5,7.951497736532009e-8,0.003203339535741044,-4.9532218017991734e-5,7.945241230521701e-8,0.003203433394698867,-4.9527674213515084e-5,7.944273135170713e-8,0.003203493051170196,-4.9573859322178696e-5,7.951503476725994e-8,0.0032035401504446515,-4.968261143955701e-5,7.968790885396807e-8,0.003203599881864006,-4.9857248372708116e-5,7.996622623173358e-8,0.0032036981474841027,-5.009083623491609e-5,8.033833401588e-8,0.003203857560932273,-5.036549668524096e-5,8.077497791863144e-8,0.003204092697562571,-5.0653692877754714e-5,8.123148677107812e-8,0.003204405679190628,-5.092213317310819e-5,8.165420910353239e-8,0.0032047836194003913,-5.1138171334250516e-5,8.199093925766638e-8,0.0032051993388942314,-5.1277508026645685e-5,8.220333981594443e-8,0.0032056159214573134,-5.1331152612609345e-5,8.227803147217174e-8,0.003205994476325643,-5.130950962968257e-5,8.223291039616594e-8,0.0032063034747539243,-5.124205747668012e-5,8.211628608958799e-8,0.0032065274675029567,-5.117202959915313e-5,8.199800522314307e-8,0.0032066727907678195,-5.114661833837934e-5,8.195353656090792e-8,0.003206768020942503,-5.120449980278048e-5,8.204400434520673e-8,0.003206857735831905,-5.1363916576045276e-5,8.229736031489842e-8,0.0032069901253816147,-5.161569359479557e-5,8.269759795845019e-8,0.0032072020803685336,-5.192501441612641e-5,8.318797642795423e-8,0.0032075077397297554,-5.2242393867866604e-5,8.368882847285539e-8,0.0032078955532431,-5.251946367429561e-5,8.412289258504691e-8,0.0032083345384939406,-5.272262269658563e-5,8.443706503733802e-8,0.0032087857334492185,-5.2839458337762004e-5,8.461246000974382e-8,0.0032092132683576424,-5.287735806351859e-5,8.466190722367029e-8,0.003209591378752329,-5.285732676741347e-5,8.461980304623928e-8,0.0032099067777057117,-5.28068081968459e-5,8.45304822826286e-8,0.0032101578456377655,-5.275393921740916e-5,8.443903221733049e-8,0.0032103524731652163,-5.272386017376191e-5,8.438550073902889e-8,0.003210505786562472,-5.273660287213019e-5,8.440164096217491e-8,0.0032106382225371155,-5.280577247081059e-5,8.450886182259405e-8,0.0032107738321281018,-5.293736316606222e-5,8.471631689347386e-8,0.0032109383060951215,-5.312841217033488e-5,8.501870672494748e-8,0.0032111560978738906,-5.3365752533195204e-5,8.53942849508674e-8,0.0032114462795934918,-5.362571089155793e-5,8.580446840164302e-8,0.003211817437324192,-5.3875979778961625e-5,8.619700739786424e-8,0.003212262941595191,-5.408075100149098e-5,8.651439387397291e-8,0.0032127589082548043,-5.42090965214644e-5,8.670741201761251e-8,0.003213267160170133,-5.4244595572723914e-5,8.675057308886833e-8,0.0032137438024166646,-5.419248668805494e-5,8.665344939450431e-8,0.003214151231767454,-5.4080711291759844e-5,8.646208359285265e-8,0.0032144693035585834,-5.395352361443707e-5,8.624839037585663e-8,0.003214701461565474,-5.385958237500533e-5,8.609072790016972e-8,0.003214873783886847,-5.383864063516811e-5,8.605238679805011e-8,0.0032150276171485034,-5.391105610832501e-5,8.616487457733809e-8,0.003215208326315366,-5.4072889410851724e-5,8.642041535988369e-8,0.0032154533705997484,-5.429755486548332e-5,8.677506471248515e-8,0.0032157828754069747,-5.4543390211428154e-5,8.716123185097693e-8,0.0032161952720170784,-5.47649828140714e-5,8.750601063943785e-8,0.0032166691643119804,-5.492483570390711e-5,8.7749822276115e-8,0.003217170484883344,-5.500177601999277e-5,8.785966932376333e-8,0.0032176621369899984,-5.499386164298536e-5,8.783350388091249e-8,0.0032181127441866936,-5.491583634520034e-5,8.76958803060696e-8,0.003218502126948113,-5.479314994168618e-5,8.748819344576886e-8,0.0032188229483265337,-5.465521433334049e-5,8.72578166749344e-8,0.0032190794757014783,-5.452988429357098e-5,8.704931644272088e-8,0.0032192849457666393,-5.443991014971355e-5,8.689888287838887e-8,0.003219458734952503,-5.440110974291796e-5,8.683149639470852e-8,0.003219623918717538,-5.442154904813298e-5,8.685964506488469e-8,0.0032198052118412182,-5.45010330062948e-5,8.698248405259667e-8,0.0032200268668433098,-5.463053766414709e-5,8.718490554543236e-8,0.0032203099278025797,-5.479171920972871e-5,8.743680309860852e-8,0.0032206683696555803,-5.4957218224956276e-5,8.769370344416006e-8,0.003221104252445989,-5.509302127948437e-5,8.790074530833945e-8,0.0032216031987040658,-5.516423932315975e-5,8.800209652952139e-8,0.003222132914621037,-5.514457142603367e-5,8.795617458979574e-8,0.003222647901010924,-5.502711200558859e-5,8.775290593353369e-8,0.0032231013851103294,-5.483131338436564e-5,8.74247239172623e-8,0.003223460966712298,-5.4600702849415643e-5,8.704264763661174e-8,0.003223720696988658,-5.43901749473945e-5,8.66955543476372e-8,0.0032239032022557705,-5.4248004296358326e-5,8.646099319840247e-8,0.003224051050262102,-5.4200944786757004e-5,8.638114273675721e-8,0.003224212268778945,-5.424827912428962e-5,8.645345453958669e-8,0.0032244265358801734,-5.4365234327404105e-5,8.663660081008881e-8,0.003224716276502034,-5.451231450454134e-5,8.686597920410975e-8,0.003225083737911467,-5.4646403659949004e-5,8.707189019189658e-8,0.0032255131188312245,-5.473059972318432e-5,8.719538813836393e-8,0.0032259761006378034,-5.4741087113638165e-5,8.719911679190398e-8,0.0032264390598020325,-5.467034723233956e-5,8.707212789604444e-8,0.003226870334335864,-5.452668660564738e-5,8.682879510984012e-8,0.0032272460710804887,-5.4330699940323715e-5,8.65029138253738e-8,0.0032275536298945894,-5.4109915442819836e-5,8.613902532997006e-8,0.003227792304669776,-5.389313593906661e-5,8.5783374691673e-8,0.0032279718677233277,-5.370570458175747e-5,8.547642058179856e-8,0.003228109845550558,-5.356634066004432e-5,8.524786544988952e-8,0.003228228456413095,-5.348557339633553e-5,8.511420042723426e-8,0.0032283518197443535,-5.346531342893715e-5,8.507801310989298e-8,0.0032285035568127823,-5.349896832429377e-5,8.512814037196994e-8,0.003228704536722173,-5.357174984312455e-5,8.524016481482288e-8,0.0032289703539402797,-5.366119984972382e-5,8.537735462686527e-8,0.00322930813206437,-5.373842092470895e-5,8.549282323459017e-8,0.003229712689921856,-5.377103839587337e-5,8.553448506801853e-8,0.0032301631836865975,-5.3729107718665944e-5,8.545465152637074e-8,0.0032306227277087924,-5.359428799950994e-5,8.522472059019744e-8,0.0032310441986026,-5.337012969281068e-5,8.48515280839209e-8,0.0032313836582013745,-5.30879790841398e-5,8.438660592029636e-8,0.0032316176061930268,-5.280197806460897e-5,8.391790250084734e-8,0.0032317548261706127,-5.2571609399665335e-5,8.354146004605948e-8,0.0032318343808087915,-5.243934120871027e-5,8.332524114371036e-8,0.00323190997001867,-5.24157284474321e-5,8.328513968311465e-8,0.003232029903870015,-5.247922773889295e-5,8.33849749888785e-8,0.0032322230037252673,-5.2587959715898925e-5,8.355594128527012e-8,0.0032324945300250224,-5.269508974157829e-5,8.372185756843382e-8,0.0032328299476484103,-5.2761097382812485e-5,8.381914925073835e-8,0.0032332022647684135,-5.2760565068347416e-5,8.380767128683809e-8,0.0032335796804347913,-5.268412304439345e-5,8.367349551296979e-8,0.003233931955256522,-5.2537170491451925e-5,8.342645104170425e-8,0.00323423510297691,-5.2336755010051395e-5,8.309480474079313e-8,0.003234474406802793,-5.210743061617814e-5,8.271847665355266e-8,0.0032346457437325534,-5.187668488346703e-5,8.234172294838152e-8,0.003234755280902423,-5.167055575138879e-5,8.200621219761825e-8,0.003234817807050895,-5.150997501251897e-5,8.174527616602243e-8,0.00323485410132211,-5.140821394599531e-5,8.157988013641992e-8,0.0032348878601373273,-5.1369622605597356e-5,8.15166024002056e-8,0.003234942697918216,-5.138953284328997e-5,8.154743911983669e-8,0.00323503947037617,-5.1454958354580704e-5,8.16508993774942e-8,0.0032351938886941546,-5.154582187779148e-5,8.179401797604287e-8,0.0032354142832091816,-5.16366609641141e-5,8.193524012891515e-8,0.003235699333554656,-5.1699018157927345e-5,8.202847891428973e-8,0.0032360358332845078,-5.170513116825102e-5,8.202923924758582e-8,0.003236397395298634,-5.163367599192616e-5,8.190391001440081e-8,0.0032367460274376706,-5.147751296830587e-5,8.164208997353886e-8,0.003237038911014802,-5.125146075858404e-5,8.126881868503913e-8,0.0032372413519731985,-5.099546813545693e-5,8.084938120768122e-8,0.0032373424767896393,-5.076735769152771e-5,8.04773994266105e-8,0.003237364737593232,-5.0623575968753e-5,8.024369261604461e-8,0.0032373583817348877,-5.0595930934664296e-5,8.01987556722749e-8,0.0032373814263608053,-5.067835383782129e-5,8.033154293976049e-8,0.0032374767927001143,-5.0831888417986464e-5,8.05778502518239e-8,0.0032376595358681605,-5.100299476696643e-5,8.08503013355666e-8,0.0032379179830066707,-5.1142929781694154e-5,8.106998345596535e-8,0.0032382234578475634,-5.121949714913483e-5,8.118548183125027e-8,0.0032385413765336594,-5.1220034229706235e-5,8.117745244402647e-8,0.0032388396301233986,-5.1148784000511076e-5,8.105395968506553e-8,0.00323909343633175,-5.1022080757357263e-5,8.084232217504016e-8,0.003239287476598087,-5.086344596635564e-5,8.058099601387515e-8,0.003239416418574005,-5.06993062299847e-5,8.031267394281034e-8,0.0032394844711164405,-5.055531403368913e-5,8.007849327535253e-8,0.0032395041778899027,-5.0453203864372276e-5,7.991313554603084e-8,0.003239494528968082,-5.0408228290502986e-5,7.98408045445796e-8,0.0032394784475627734,-5.0427301336513986e-5,7.987225828658261e-8,0.003239479791896909,-5.050810067219918e-5,8.000332058699083e-8,0.0032395202194974377,-5.063931236648878e-5,8.021522493846629e-8,0.003239616293252338,-5.080193546123921e-5,8.047671952390412e-8,0.003239777049036872,-5.097147176821398e-5,8.074769163503124e-8,0.003240002171167665,-5.112088531384368e-5,8.098412232278307e-8,0.0032402808961741075,-5.122423243494423e-5,8.114415044682696e-8,0.0032405918090109447,-5.126100829262938e-5,8.119521335082708e-8,0.003240904131438615,-5.122133435508816e-5,8.112236888320618e-8,0.003241181684719136,-5.111146117220087e-5,8.093692711688671e-8,0.003241390622446391,-5.095766931217798e-5,8.068237971757372e-8,0.0032415106650658305,-5.080520775946731e-5,8.04323546602781e-8,0.003241546514068598,-5.070868740467566e-5,8.027494782684523e-8,0.0032415324844812794,-5.071373081832885e-5,8.028313812372978e-8,0.003241523709398545,-5.083705921425271e-5,8.048281634683229e-8,0.0032415751240446157,-5.1057319994444045e-5,8.083823631077988e-8,0.003241719537245258,-5.132391935969942e-5,8.126660197144499e-8,0.0032419576140943988,-5.157842278878715e-5,8.167296421774885e-8,0.0032422632301883753,-5.177516910115313e-5,8.198373070848606e-8,0.0032425973491017465,-5.189151237656024e-5,8.216316480911329e-8,0.003242921385633165,-5.192728220314501e-5,8.221219939811576e-8,0.003243205429064354,-5.1898436692860174e-5,8.215775773060924e-8,0.0032434313058024543,-5.182970678799692e-5,8.204054311489319e-8,0.0032435923938506023,-5.1748673330064326e-5,8.190536290404036e-8,0.0032436920809447035,-5.1681708633171465e-5,8.179466859600291e-8,0.0032437419250657485,-5.165123951677518e-5,8.17443236041018e-8,0.0032437597611700603,-5.167373948957442e-5,8.178051974505204e-8,0.0032437676397874047,-5.1758154968282606e-5,8.191729901686929e-8,0.003243789408658554,-5.190473825027876e-5,8.215464440259327e-8,0.0032438478099100776,-5.2104555505873134e-5,8.247762756783664e-8,0.0032439612563935362,-5.234009583257239e-5,8.28573715553115e-8,0.0032441407595725984,-5.258721229750601e-5,8.325425050664329e-8,0.0032443875424479525,-5.281834024054875e-5,8.36232428780749e-8,0.0032446918276209393,-5.300675228469284e-5,8.392100559929466e-8,0.0032450332255609038,-5.3131371114476176e-5,8.411381289746435e-8,0.00324538295404514,-5.318148371486626e-5,8.418520437848297e-8,0.003245707983573782,-5.316071079859441e-5,8.414223757206918e-8,0.0032459772192329835,-5.3089364431137183e-5,8.401896535485175e-8,0.0032461694781570896,-5.300370532228837e-5,8.387484551908885e-8,0.003246281847351533,-5.2950284714670026e-5,8.37853066862844e-8,0.0032463352544695014,-5.297443793121066e-5,8.382308719834454e-8,0.0032463728424833803,-5.310479309421307e-5,8.403337508404443e-8,0.003246448216996769,-5.333992759564566e-5,8.441256609303461e-8,0.0032466062921121183,-5.364552457477591e-5,8.49040114435253e-8,0.0032468659901151594,-5.396605828032138e-5,8.541718992475005e-8,0.003247214553528512,-5.424562065011762e-5,8.586156956307863e-8,0.003247615679936334,-5.444642162568678e-5,8.617657458590432e-8,0.003248024912597425,-5.455655514944839e-5,8.634399975468773e-8,0.003248403432332568,-5.458687626580262e-5,8.638262859372707e-8,0.0032487255353343303,-5.4562352771310106e-5,8.633386467620277e-8,0.00324898008935198,-5.451326661190067e-5,8.624724859115626e-8,0.0032491685238771285,-5.4468896133598934e-5,8.617020704301661e-8,0.0032493017385686698,-5.44538837415368e-5,8.614231992982142e-8,0.0032493972235823195,-5.448639212370825e-5,8.619253072529561e-8,0.0032494766715691,-5.4577106999117414e-5,8.633766110669544e-8,0.003249563821635595,-5.4728537878472483e-5,8.658130339795376e-8,0.0032496821379050258,-5.4934496846960336e-5,8.691293350608795e-8,0.0032498520196944476,-5.5180047124981716e-5,8.730779131766455e-8,0.0032500875683692987,-5.544249647615775e-5,8.772852392629017e-8,0.0032503934051933206,-5.569395062737085e-5,8.812944569042736e-8,0.0032507623946056432,-5.5905572624570456e-5,8.846361811302392e-8,0.0032511752416808635,-5.60531534073218e-5,8.869203900002466e-8,0.0032516027189509527,-5.6122949655416366e-5,8.879316740083876e-8,0.003252010653866079,-5.6116271961945236e-5,8.87702629117698e-8,0.0032523669850277413,-5.605136928982403e-5,8.865417136694602e-8,0.0032526495630223616,-5.596163996267052e-5,8.850004846746351e-8,0.003252852996146235,-5.588978132512746e-5,8.837752315420322e-8,0.0032529925562878982,-5.58782471815996e-5,8.83550511189378e-8,0.003253103082055259,-5.595758026448335e-5,8.848108953757554e-8,0.0032532314776745693,-5.613576384150119e-5,8.876716640678854e-8,0.0032534234568621025,-5.6393001850667115e-5,8.917985280515563e-8,0.0032537084871765787,-5.668575826548498e-5,8.964767779069584e-8,0.0032540894242032077,-5.696017640428366e-5,9.008307761306017e-8,0.00325454214619616,-5.716962075359378e-5,9.041084937999461e-8,0.0032550252674333844,-5.728830620990315e-5,9.059011621990187e-8,0.003255494511827089,-5.731556283163272e-5,9.06209904156305e-8,0.003255914883576044,-5.7271048375594106e-5,9.0536487245569e-8,0.003256266746644497,-5.71854418674298e-5,9.03871423788393e-8,0.003256546050101389,-5.709145577327869e-5,9.022629331978918e-8,0.003256761198809244,-5.701770488175832e-5,9.010018411835402e-8,0.0032569290319573213,-5.6985589687069876e-5,9.004308407198988e-8,0.0032570712782715805,-5.700820517414628e-5,9.007569729439265e-8,0.003257211829634789,-5.709019855395602e-5,9.02050273070369e-8,0.003257374555642879,-5.722785472994945e-5,9.042451477474267e-8,0.0032575811280771455,-5.740918789972536e-5,9.07141464433097e-8,0.0032578484112563417,-5.761434937787547e-5,9.104111671626653e-8,0.003258185352705804,-5.781702102123823e-5,9.136217618930464e-8,0.0032585898547709312,-5.7987501554828986e-5,9.162880083070914e-8,0.003259046711760422,-5.8097856157750106e-5,9.179571951463989e-8,0.0032595281106661137,-5.812865707175766e-5,9.183195308320635e-8,0.003259997899742414,-5.807559874358659e-5,9.173151942039728e-8,0.003260419534272522,-5.7953377600878414e-5,9.151954278320197e-8,0.003260765818064894,-5.7794560130481856e-5,9.125009531413922e-8,0.0032610273094332534,-5.7642803315349266e-5,9.099481763997835e-8,0.0032612163205118245,-5.754195090058938e-5,9.082492438170712e-8,0.0032613648222029144,-5.752416949150301e-5,9.07918667306029e-8,0.0032615165714595593,-5.7600716096652344e-5,9.09125486368035e-8,0.003261715522120589,-5.7758163232549566e-5,9.116362370356967e-8,0.003261993680028687,-5.796146329096944e-5,9.148694570509478e-8,0.0032623620293660872,-5.8163394938097374e-5,9.180524978805767e-8,0.003262807665272582,-5.8317766793719975e-5,9.20437012761951e-8,0.0032632983134054426,-5.839199548958222e-5,9.215020451540345e-8,0.0032637924706452283,-5.8374669624859956e-5,9.210741718701442e-8,0.0032642511156409566,-5.827592207902026e-5,9.193302480930112e-8,0.0032646467560847373,-5.8121634092867766e-5,9.167002565308534e-8,0.003264967464613854,-5.794476140729533e-5,9.137245205768258e-8,0.0032652161360441057,-5.777729029325265e-5,9.109227604970783e-8,0.0032654068966987506,-5.764485386744147e-5,9.087078295628466e-8,0.003265560763456718,-5.756421591411039e-5,9.073466938213295e-8,0.0032657018358711034,-5.754278131830879e-5,9.069539608026732e-8,0.0032658544101094944,-5.757911789189286e-5,9.075008999633211e-8,0.0032660408074434333,-5.766372839766714e-5,9.088277448331733e-8,0.003266279396647697,-5.777976701135738e-5,9.106550153542938e-8,0.003266582301739539,-5.790395532285883e-5,9.12598753635655e-8,0.0032669526451217174,-5.80083795326496e-5,9.142009964322477e-8,0.003267381767555401,-5.8063972041273024e-5,9.149881185930952e-8,0.0032678476163183977,-5.804619770493952e-5,9.145646309337639e-8,0.003268316164476314,-5.79424713012002e-5,9.12733988533491e-8,0.0032687475221006164,-5.7759070899220414e-5,9.096097972973574e-8,0.003269106529960257,-5.7523825509117984e-5,9.056570793575683e-8,0.0032693746058921917,-5.7281393394498796e-5,9.01612217244734e-8,0.0032695575700859222,-5.7081169177186004e-5,8.982829299441299e-8,0.003269685200835826,-5.696205583363011e-5,8.962983858648573e-8,0.003269802214385346,-5.69404396125155e-5,8.959138558936853e-8,0.0032699545344188102,-5.700604476264368e-5,8.969464615227079e-8,0.0032701763009091883,-5.7126338282034846e-5,8.988518777066455e-8,0.003270481677542585,-5.725676162404585e-5,9.008956185060092e-8,0.0032708629470038705,-5.735286992395743e-5,9.023531943545998e-8,0.00327129431081459,-5.73809369580062e-5,9.026823726629858e-8,0.003271739599354458,-5.7324683909892404e-5,9.0162995318363e-8,0.0032721614993477402,-5.7187059246788255e-5,8.992569167509696e-8,0.0032725298445275717,-5.698731841848309e-5,8.958873870059514e-8,0.0032728270521627735,-5.675482647236528e-5,8.920055536744774e-8,0.003273049851570274,-5.652171851946322e-5,8.881356947561132e-8,0.0032732076970815966,-5.6316492523811355e-5,8.847388481842329e-8,0.003273319145670565,-5.615979289425225e-5,8.821459453534936e-8,0.0032734076545255755,-5.6062581528121386e-5,8.80529729256984e-8,0.003273497839452653,-5.602614665502433e-5,8.799058220459504e-8,0.003273612612866018,-5.604313201827532e-5,8.801494830994981e-8,0.0032737710867281598,-5.609888691693807e-5,8.81017115844299e-8,0.0032739868282610452,-5.617282175496241e-5,8.821681580619211e-8,0.0032742660365082388,-5.6239927611709573e-5,8.831905491514963e-8,0.003274605453936708,-5.627300819139812e-5,8.836386764965425e-8,0.0032749903608651097,-5.624637481283029e-5,8.830953041101465e-8,0.0032753938061936853,-5.614154823740327e-5,8.812653176627841e-8,0.0032757789936782864,-5.595449360495289e-5,8.78092919463083e-8,0.003276106647287594,-5.5701960526054305e-5,8.738628367074491e-8,0.0032763471421135533,-5.5422576587764e-5,8.692152997987455e-8,0.003276493258995722,-5.516877259292599e-5,8.650115186701256e-8,0.0032765664014518425,-5.499014654352684e-5,8.6206007430559e-8,0.003276610999942624,-5.491529491512299e-5,8.608196484440229e-8,0.00327667876464851,-5.494164014254628e-5,8.612345199946136e-8,0.0032768108494707626,-5.5038149965003114e-5,8.627829358674474e-8,0.0032770262708863127,-5.5157998227194705e-5,8.646888984364038e-8,0.0032773198064892668,-5.525387498988542e-5,8.661760852501955e-8,0.003277667339223204,-5.528988528837087e-5,8.666631731922832e-8,0.0032780346135977243,-5.5247658906088445e-5,8.658614562003795e-8,0.0032783860663120725,-5.512713483912658e-5,8.637835326428021e-8,0.0032786918994025917,-5.494363190933129e-5,8.606912261480339e-8,0.0032789327276445193,-5.472280951801439e-5,8.570104945011115e-8,0.003279101674465376,-5.449476059083265e-5,8.532342409842275e-8,0.0032792040453030104,-5.4288301754132294e-5,8.498301212375031e-8,0.0032792550494914192,-5.4126402494692005e-5,8.471678473867611e-8,0.00327927635003745,-5.402331015253779e-5,8.454741469132955e-8,0.003279292261048445,-5.398344931011103e-5,8.448159405887646e-8,0.0032793262697919023,-5.4001841681931624e-5,8.451073771217038e-8,0.0032793983038223334,-5.406554644950239e-5,8.461328637466328e-8,0.003279522775013503,-5.4155543035676e-5,8.475773055077884e-8,0.0032797071337421773,-5.4248736184423704e-5,8.490590178054932e-8,0.0032799506498463736,-5.432014534373688e-5,8.501666483516674e-8,0.003280243299674806,-5.434560660615751e-5,8.505051210231342e-8,0.003280565004985942,-5.430549748269372e-5,8.497579494488648e-8,0.003280886168989561,-5.4189871664097075e-5,8.47771184438119e-8,0.003281171139090372,-5.4004474659509736e-5,8.446499011144445e-8,0.003281386101154559,-5.377533480404946e-5,8.408301336304262e-8,0.0032815110470657827,-5.354778435894943e-5,8.370597725390225e-8,0.003281551525320081,-5.3376005048922325e-5,8.342256462979238e-8,0.0032815423544261006,-5.3303997698127796e-5,8.330417977081286e-8,0.0032815375199139597,-5.334662167257096e-5,8.337402779899631e-8,0.003281589425999078,-5.3482477388724635e-5,8.359571772677401e-8,0.003281729077837722,-5.366347603158219e-5,8.388931201996357e-8,0.0032819577992785165,-5.383448660629819e-5,8.416390530143764e-8,0.003282252028816867,-5.3951461208844274e-5,8.434755805679241e-8,0.003282575064733863,-5.399087527054447e-5,8.440270284958065e-8,0.0032828888308288045,-5.395041499415586e-5,8.432692167156779e-8,0.0032831620823933123,-5.384442525035143e-5,8.414501783308623e-8,0.003283374577592845,-5.369758720472906e-5,8.389827797025655e-8,0.0032835182149421297,-5.3538900495709054e-5,8.363445972132653e-8,0.003283596317507677,-5.3396677990892325e-5,8.339967143688218e-8,0.0032836217594359217,-5.3294597136367996e-5,8.323212142857587e-8,0.0032836142689651616,-5.3248868881598726e-5,8.31577096068053e-8,0.0032835972456282487,-5.326663219322064e-5,8.318754756177193e-8,0.003283594445314077,-5.33455619881586e-5,8.331735797629278e-8,0.003283626858166137,-5.34746355750414e-5,8.35286872417797e-8,0.0032837101355881193,-5.363590835227975e-5,8.379175121758466e-8,0.0032838527983820075,-5.3806929427041975e-5,8.406937560267436e-8,0.003284055181100754,-5.396343946274494e-5,8.432148778286718e-8,0.0032843089773761463,-5.40822511951771e-5,8.450998775388706e-8,0.003284597358913076,-5.414438100313206e-5,8.460404446842303e-8,0.003284895834787221,-5.413857912979374e-5,8.458595257932233e-8,0.003285174445296768,-5.406532947278778e-5,8.445757818292492e-8,0.0032854023338345904,-5.3940697089698616e-5,8.424636958756322e-8,0.0032855554831677934,-5.379806390910282e-5,8.400782714837921e-8,0.003285626815766494,-5.3684562539693467e-5,8.38193737194727e-8,0.0032856347701112503,-5.3649414340871245e-5,8.376117760633833e-8,0.0032856235616832005,-5.3725485877918647e-5,8.38860837426238e-8,0.003285650142636974,-5.391249164401037e-5,8.419236027689752e-8,0.0032857616382241683,-5.4173556173630084e-5,8.461836300416228e-8,0.003285976011289329,-5.444965808100916e-5,8.50665090145353e-8,0.003286277545198635,-5.468347961861177e-5,8.544264341871019e-8,0.0032866275363075573,-5.483838580460321e-5,8.568728752895917e-8,0.0032869809330381304,-5.490461627338049e-5,8.578565026164803e-8,0.0032872996339806037,-5.489474335285152e-5,8.575977711296552e-8,0.003287559053510933,-5.48347345844862e-5,8.565341922089876e-8,0.0032877491677817746,-5.475543920672599e-5,8.551775502054806e-8,0.0032878725457978937,-5.4686451467669074e-5,8.540127833973602e-8,0.0032879413934742783,-5.465235422268597e-5,8.534381381044643e-8,0.003287974597188788,-5.4670536130827427e-5,8.53731992403231e-8,0.003287994886136215,-5.474993658443841e-5,8.550343585455102e-8,0.003288026004617243,-5.489052942074253e-5,8.573393033814724e-8,0.0032880898877680324,-5.508355309891816e-5,8.604985500404462e-8,0.003288203921857211,-5.5312587539400495e-5,8.642385409484243e-8,0.0032883785505384453,-5.5555608027442216E-05,8.681938148259401e-8,0.0032886156357365445,-5.578790705412445e-5,8.719554080619211e-8,0.0032889078436774757,-5.5985521987479445e-5,8.751283667062376e-8,0.003289239125545009,-5.612881998939157e-5,8.77392146012537e-8,0.003289586318797038,-5.620594849831879e-5,8.78558281449679e-8,0.0032899218910641607,-5.621585137160659e-5,8.786195042061433e-8,0.0032902179191576634,-5.617054021271309e-5,8.77784760736655e-8,0.0032904515278464005,-5.609599525829377e-5,8.764903319639631e-8,0.003290611690989794,-5.603034994237022e-5,8.753663675600585e-8,0.0032907060886177963,-5.601757230920074e-5,8.751312401969255e-8,0.0032907648315062244,-5.60957001758165e-5,8.763993271030684e-8,0.00329083651219213,-5.628175714456582e-5,8.794367269940098e-8,0.003290973902945432,-5.656023599277606e-5,8.839762192953688e-8,0.003291213321631433,-5.6884077700507716e-5,8.892363541663668e-8,0.003291558763057707,-5.7191191598862794e-5,8.941943124269481e-8,0.0032919809643103797,-5.742839856654776e-5,8.979798297636507e-8,0.0032924313677109907,-5.756902600419823e-5,9.001640079964623e-8,0.0032928611324823196,-5.7616237434723784e-5,9.008120657162066e-8,0.003293234884122227,-5.759476981903807e-5,9.003437623650073e-8,0.003293535602904595,-5.753893290328132e-5,8.993321103832823e-8,0.003293762927268325,-5.7482792094576774e-5,8.983397854989548e-8,0.003293928650397064,-5.745439610101603e-5,8.978246898705095e-8,0.003294052074754002,-5.7473344437337244e-5,8.981023130920463e-8,0.003294156313027807,-5.755021904012821e-5,8.993390698836747e-8,0.0032942654733313977,-5.768674160814335e-5,9.01556607176256e-8,0.0032944022662521263,-5.787621616364838e-5,9.046394738638393e-8,0.003294585697181951,-5.810428412374258e-5,9.083470767938509e-8,0.003294828730883638,-5.835025192829971e-5,9.123350329312376e-8,0.0032951361110117538,-5.858935210068161e-5,9.161924961334033e-8,0.003295502862145243,-5.879608733804884e-5,9.194981099819587e-8,0.0032959140922813155,-5.894836427269165e-5,9.218894166181916e-8,0.003296346501630117,-5.903178845858687e-5,9.2313465377073e-8,0.0032967716942378903,-5.904330752969372e-5,9.231927451156279e-8,0.003297161013652729,-5.8993325195830865e-5,9.222465017716898e-8,0.0032974912528637187,-5.8905595820280855e-5,9.206977518622295e-8,0.0032977504065195102,-5.881449638135142e-5,9.191186754025751e-8,0.003297942473857903,-5.875940209359208e-5,9.181563871498607e-8,0.0032980898714052753,-5.877616173854993e-5,9.183921908280787e-8,0.0032982314957932714,-5.88866346272826e-5,9.201718962789459e-8,0.0032984146833885644,-5.908904162486795e-5,9.23451566292984e-8,0.0032986812779857745,-5.935379884542151e-5,9.277334751463147e-8,0.003299051997951586,-5.962945134656554e-5,9.321663709787946e-8,0.003299516827886728,-5.985901363351853e-5,9.358146928311346e-8,0.0033000378122319263,-5.999998453310655e-5,9.379868554416737e-8,0.003300563468977945,-6.003775679601342e-5,9.384541959529023e-8,0.003301046759699778,-5.9986342425414024e-5,9.374604054768167e-8,0.0033014576765286454,-5.987863396959832e-5,9.355579500500295e-8,0.003301786809054379,-5.975339670750789e-5,9.33390980278829e-8,0.0033020419823445663,-5.964508164161518e-5,9.315264867329e-8,0.0033022421362587082,-5.9578548895871055e-5,9.303685979764736e-8,0.003302411561432909,-5.9567748630520254e-5,9.301394192772079e-8,0.0033025757102160976,-5.961647141519134e-5,9.308938092423752e-8,0.003302758454813665,-5.971971311326604e-5,9.32543085753427e-8,0.003302980149123383,-5.986499809573707e-5,9.348767984635991e-8,0.0033032558966772426,-6.003362496588928e-5,9.375826851834662e-8,0.003303593705146403,-6.0202192353766145e-5,9.402715772445558e-8,0.0033039926166897105,-6.034495084095433e-5,9.425167222522078e-8,0.003304441386900897,-6.043737478577002e-5,9.439138689843304e-8,0.003304918618617791,-6.046082993353868e-5,9.441594479608006e-8,0.0033053952081656575,-6.040751190609572e-5,9.431324511412548e-8,0.0033058394190006372,-6.028418972979809e-5,9.409552551950787e-8,0.0033062239072710452,-6.011307792870043e-5,9.380056022170947e-8,0.0033065329819612454,-5.99287475949815e-5,9.348622559924204e-8,0.003306767914704313,-5.977122717532698e-5,9.321879190076651e-8,0.003306948486177933,-5.9676703637333575e-5,9.305741226162379e-8,0.0033071098761496675,-5.966803032891732e-5,9.303855751819586e-8,0.003307295078633383,-5.974750722150152e-5,9.316446634613662e-8,0.003307544114132092,-5.9894223093106617E-05,9.339925812123948e-8,0.0033078824817017226,-6.006764076265878e-5,9.367527554290179e-8,0.003308312428674662,-6.021771715946743e-5,9.390997219756039e-8,0.003308810868846452,-6.02993136284251e-5,9.402960860305769e-8,0.003309335890088662,-6.028585030600706e-5,9.39915224159716e-8,0.003309839846317023,-6.017646168426142e-5,9.379561381316522e-8,0.003310283495942255,-5.999380790271972e-5,9.348042402784567e-8,0.0033106453888089448,-5.977450811021991e-5,9.310709708273535e-8,0.0033109239015205183,-5.955734946844783e-5,9.273979011758474e-8,0.003311133299984977,-5.937407692846487e-5,9.243051520461885e-8,0.0033112972340637236,-5.924481776115903e-5,9.221178385233012e-8,0.0033114426199441147,-5.917750316763905e-5,9.209590179549796e-8,0.0033115952609545363,-5.9169497804775444e-5,9.207784107991695e-8,0.003311777204723194,-5.920987375766593e-5,9.213904652853273e-8,0.0033120052080999,-5.92814938356559e-5,9.225082851606375e-8,0.003312289594904694,-5.936274846059623e-5,9.237717028262174e-8,0.003312633024578902,-5.942929679557276e-5,9.247760893901174e-8,0.003313029137070735,-5.945642637260442e-5,9.251122688928723e-8,0.0033134615879803833,-5.942257807852542e-5,9.244260873645003e-8,0.0033139044987459776,-5.931413137224047e-5,9.22498336783901e-8,0.0033143255654085853,-5.913063940039792e-5,9.193309185903323e-8,0.003314692523404364,-5.888852657791199e-5,9.152061902109267e-8,0.003314982071759978,-5.862063074863608e-5,9.106765658072329e-8,0.0033151883441194956,-5.836990960235362e-5,9.064573525743296e-8,0.003315327061036844,-5.817820907612507e-5,9.032387007253822e-8,0.003315432756404787,-5.807381239007963e-5,9.014792415786519e-8,0.003315549502730872,-5.80625870862475e-5,9.012617527068651e-8,0.0033157184572218204,-5.8126053541180765e-5,9.022654455023874e-8,0.003315966551858763,-5.8226689676969886e-5,9.038585941639497e-8,0.0033162996332138915,-5.831825523870404e-5,9.052728727571216e-8,0.0033167015288640424,-5.835787971070538e-5,9.058041563143791e-8,0.0033171388754599613,-5.8316694902620264e-5,9.049864230177064e-8,0.003317570199537387,-5.818631498100734e-5,9.026951683504713e-8,0.0033179566224040904,-5.7979533462259516e-5,8.99154851350754e-8,0.0033182710352989515,-5.772533753434543e-5,8.94853309482593e-8,0.003318503156852944,-5.746022504077495e-5,8.903967082003617e-8,0.003318659520612165,-5.721893166409305e-5,8.863565691424088e-8,0.0033187593907932924,-5.7027409664830245e-5,8.831554830627552e-8,0.0033188288152567313,-5.6899447070337116e-5,8.810136402150192e-8,0.0033188949683195744,-5.683663868685322e-5,8.799503967854189e-8,0.0033189820031886176,-5.683044444173091e-5,8.79819251290983e-8,0.0033191086079180677,-5.686498657172212e-5,8.80353851458633e-8,0.0033192868090701146,-5.6919687627007744e-5,8.812108202417043e-8,0.0033195213608058194,-5.6971468212093134e-5,8.820056393045532e-8,0.003319809205334997,-5.6996756676009524e-5,8.823463939940167e-8,0.0033201388682853913,-5.6973850769248384e-5,8.818741927408212e-8,0.0033204901645404743,-5.688617916715095e-5,8.803185327819643e-8,0.0033208351653437364,-5.672667481568836e-5,8.775700668157399e-8,0.0033211417606726764,-5.650258196722333e-5,8.737589343481958e-8,0.0033213807589085697,-5.623860290952227e-5,8.693042466255639e-8,0.003321535704580842,-5.5975194089382036e-5,8.64882803546673e-8,0.003321611779853912,-5.575964063734652e-5,8.612788421461543e-8,0.0033216383488875716,-5.563121550563371e-5,8.591372038897917e-8,0.00332166160133251,-5.560648771923718e-5,8.587208299016034e-8,0.003321729332346463,-5.567246407025703e-5,8.597999999454416e-8,0.0033218749696411454,-5.5791288194139026e-5,8.617344710132884e-8,0.003322108078793622,-5.591357362818337e-5,8.636987047930183e-8,0.003322414074917141,-5.599359775464645e-5,8.649361999558831e-8,0.0033227610657908736,-5.600062818328033e-5,8.649468343439781e-8,0.0033231098129842453,-5.592409172339057e-5,8.635693899550423e-8,0.003323423401229845,-5.577304858807897e-5,8.60968278743868e-8,0.0033236746106560327,-5.5571625019046895e-5,8.57553706414179e-8,0.0033238501378285963,-5.535223551652658e-5,8.538670353148495e-8,0.003323951512978097,-5.5148243821503265e-5,8.504591708672522e-8,0.0033239930515267515,-5.4987516475655016e-5,8.477855814651931e-8,0.003323997693098464,-5.4888022929405465e-5,8.461360179444422e-8,0.0033239919654675055,-5.485601986581888e-5,8.456067453943338e-8,0.0033240012834951657,-5.4886614374086276e-5,8.461111130656435e-8,0.00332404640453801,-5.496599005265156e-5,8.474164448132102e-8,0.003324141328817078,-5.507438956499113e-5,8.491926542726227e-8,0.003324292421254159,-5.5189074106772154e-5,8.510604823670503e-8,0.0033244982624229583,-5.528690636714247e-5,8.526342573891019e-8,0.0033247498139609742,-5.534665974060568e-5,8.5356116539381e-8,0.003325030738318475,-5.535139742517621e-5,8.535622814349039e-8,0.003325318078773487,-5.529132808874682e-5,8.524810407518335e-8,0.0033255840434287193,-5.516732559483926e-5,8.503412127897562e-8,0.003325800025884042,-5.4994500283684165e-5,8.474038755337137e-8,0.003325943636647162,-5.4803921202816106e-5,8.441925947919739e-8,0.003326007954119694,-5.463949661780294e-5,8.414386557641033e-8,0.0033260093929748016,-5.454751850488496e-5,8.39906316797749e-8,0.0033259881913321188,-5.4560143825206843e-5,8.401195873056964e-8,0.0033259972865628765,-5.4680122236649234e-5,8.421112518435034e-8,0.003326082679984568,-5.4876669269890736e-5,8.453576539427439e-8,0.0033262656698723574,-5.509660108184346e-5,8.489670021080734e-8,0.0033265367421952,-5.528454025680654e-5,8.520177547374201e-8,0.0033268625692368203,-5.540089651290604e-5,8.53858406600953e-8,0.0033271997836301316,-5.5430263445104554e-5,8.542454745717457e-8,0.00332750801243725,-5.538020410605459e-5,8.533193941439912e-8,0.0033277582273325535,-5.527451512296222e-5,8.514878834424156e-8,0.0033279360985943923,-5.514504454421498e-5,8.492865234127454e-8,0.0033280417206101223,-5.502443713341801e-5,8.47257264967664e-8,0.0033280872119350394,-5.494062573953781e-5,8.458583816329359e-8,0.0033280931856418602,-5.4913121909954754e-5,8.454056432249686e-8,0.003328084687829209,-5.49510529651956e-5,8.460424445406648e-8,0.003328087119786794,-5.505287514330795e-5,8.477367296994299e-8,0.003328122619004344,-5.520754438276987e-5,8.503008040542494e-8,0.0033282072794208633,-5.539681605654844e-5,8.534289014342119e-8,0.0033283494784650124,-5.559823205385741e-5,8.567459021016955e-8,0.0033285493241682613,-5.5788247308437714e-5,8.5985886311372e-8,0.0033287989546007955,-5.594511202878772e-5,8.624053969095568e-8,0.0033290834152926,-5.605145404558202e-5,8.640978601385084e-8,0.0033293820025522038,-5.609665354800625e-5,8.647641681844645e-8,0.00332967012765513,-5.607914249037254e-5,8.64386360154981e-8,0.003329922108265471,-5.600868372770514e-5,8.63137014691309e-8,0.003330115618151409,-5.590807269377462e-5,8.614043768918587e-8,0.0033302381328333365,-5.58126677029861e-5,8.597808953775239e-8,0.0033302943335076583,-5.5765475825965935e-5,8.589791861426393e-8,0.0033303112431023363,-5.580611329656748e-5,8.596488539474054e-8,0.003330335893358347,-5.595512706192685e-5,8.621187561535514e-8,0.0033304217950196257,-5.620076748901601e-5,8.661809726569148e-8,0.0033306077541668403,-5.649824615334275e-5,8.710815973363818e-8,0.003330900673735715,-5.678551821777345e-5,8.757850948338549e-8,0.0033312733708816735,-5.7007580014031255e-5,8.793794593475561e-8,0.003331677827847687,-5.713506396332166e-5,8.81385544183494e-8,0.0033320641462310304,-5.7168762976044525e-5,8.818303689777447e-8,0.003332394888741356,-5.713232454494835e-5,8.81121521924967e-8,0.003332650948899174,-5.706056072566515e-5,8.79848172366316e-8,0.0033328307387244707,-5.69892054818512e-5,8.786079588531413e-8,0.003332946103134148,-5.6948270940260595e-5,8.7789662082767e-8,0.003333017524013881,-5.695869565914077e-5,8.780546633003202e-8,0.003333069785980845,-5.7031151550971855e-5,8.79250644837299e-8,0.003333128293176569,-5.7166122827538784e-5,8.814848616597651e-8,0.003333215942814037,-5.735486447701515e-5,8.846062555209589e-8,0.003333350526081416,-5.758107712399529e-5,8.883400189972032e-8,0.003333542711568079,-5.782323256543382e-5,8.923255045240708e-8,0.0033337948024626724,-5.805748921759443e-5,8.961641831353482e-8,0.0033341004955474854,-5.826092281925177e-5,8.994735848331943e-8,0.0033344456574180216,-5.8414663420069585e-5,9.019404254409442e-8,0.0033348099763535065,-5.850667539814434e-5,9.033680470762473e-8,0.0033351693972139954,-5.8534013007029704e-5,9.037145788055351e-8,0.0033354992652454255,-5.850435337312846e-5,9.031176994724097e-8,0.003335778150817505,-5.8436628216984924e-5,9.019026948162117e-8,0.0033359924676545083,-5.836033415719681e-5,9.005674088553579e-8,0.003336141696475799,-5.831247259530645e-5,8.99728131408324e-8,0.003336242937122228,-5.833081796090152e-5,9.000064726389226e-8,0.003336332072852576,-5.844314497737879e-5,9.018519988192054e-8,0.003336457993721301,-5.8654611621949015e-5,9.053364701309959e-8,0.003336668034416213,-5.8939341334053395e-5,9.100181248328803e-8,0.0033369886308538366,-5.9243988034202145e-5,9.15003563787348e-8,0.0033374117211466396,-5.950577741976175e-5,9.192485569877443e-8,0.0033378966406314506,-5.9676814334938345e-5,9.219623025373824e-8,0.003338387060585492,-5.974061238822445e-5,9.228818050131115e-8,0.003338832161640395,-5.9712769824558396e-5,9.222809662066525e-8,0.003339200660884803,-5.9629238348668325e-5,9.207713490030904e-8,0.0033394839946629365,-5.9531508527586526e-5,9.19051435138701e-8,0.00333969194933606,-5.9455615021928336e-5,9.177216062406416e-8,0.0033398456958361393,-5.9426735296063406e-5,9.171952556625893e-8,0.0033399714625476887,-5.94580076063395e-5,9.176821138029921e-8,0.0033400959454044452,-5.9551503177061825e-5,9.19207583444299e-8,0.003340243216604815,-5.969991931487511e-5,9.21642828744451e-8,0.003340432528612182,-5.988845372977386e-5,9.247363390315894e-8,0.00334067661964073,-6.009682747560091e-5,9.281470236403697e-8,0.003340980391006287,-6.0301603901974886e-5,9.314821825194654e-8,0.0033413400860247433,-6.047899922745841e-5,9.34344253905957e-8,0.0033417433406987395,-6.0608161718892285e-5,9.363861218700703e-8,0.0033421704338331562,-6.0674530868574566e-5,9.373681434940468e-8,0.003342596793867571,-6.067274472862805e-5,9.372073186756808e-8,0.003342996619504433,-6.060857747387037e-5,9.360092417739725e-8,0.0033433472973181913,-6.049938316515723e-5,9.340736779360886e-8,0.003343634076313921,-6.037265637678459e-5,9.318674843140178e-8,0.003343854352958671,-6.026253039672385e-5,9.29962869527095e-8,0.0033440207974379525,-6.02040503597778e-5,9.289398103642671e-8,0.00334416209570793,-6.0225227664861864e-5,9.292540486542561e-8,0.0033443195738953684,-6.033783862182839e-5,9.310869759814082e-8,0.0033445382535737425,-6.052967926745262e-5,9.342213643036966e-8,0.0033448528768625176,-6.076271261213488e-5,9.380146725962548e-8,0.0033452733341006566,-6.098129519580642e-5,9.415379750598335e-8,0.0033457773304763423,-6.11302103754188e-5,9.43875995339562e-8,0.003346316441695281,-6.117498982465232e-5,9.444642575943193e-8,0.0033468338086486238,-6.111354333006799e-5,9.432810795018451e-8,0.0033472838692474196,-6.097324927755117e-5,9.4079645301939e-8,0.0033476441985163447,-6.0797240704200516e-5,9.377398884436344e-8,0.0033479163084475117,-6.062888070521747e-5,9.348385258171712e-8,0.003348119017326552,-6.050124738963157e-5,9.326410433273226e-8,0.0033482798563691583,-6.043317112036643e-5,9.314535120928058e-8,0.0033484280459571253,-6.0429873261064216e-5,9.313533471622201e-8,0.0033485900303240564,-6.0485597297215256e-5,9.322360188274091e-8,0.0033487870427821647,-6.058650061285441e-5,9.338645264051759e-8,0.003349033779148276,-6.071317745669125e-5,9.359112405668456e-8,0.003349337512154647,-6.084287930407258e-5,9.379941019517652e-8,0.0033496973868342426,-6.0951778738148076e-5,9.39713912066027e-8,0.0033501040189214903,-6.1017654657638296e-5,9.406994902831682e-8,0.003350539852327468,-6.102313701204754e-5,9.406628005534092e-8,0.0033509808424563464,-6.0959184102096446e-5,9.394579478956938e-8,0.0033513997985662727,-6.0828035243102085e-5,9.371305998195274e-8,0.003351771242630648,-6.064464806465786e-5,9.339407682046672e-8,0.0033520770502697586,-6.043567280060645e-5,9.303431185934628e-8,0.0033523115992083793,-6.023549059632611e-5,9.269175686275925e-8,0.0033524849538567095,-6.0079656147178764e-5,9.242570667708549e-8,0.003352622868607595,-5.999683644913714e-5,9.228321247007672e-8,0.0033527629108964156,-6.0000858451751614e-5,9.228598308330152e-8,0.0033529466888537886,-6.0084899028015664e-5,9.242109352946563e-8,0.003353209163212818,-6.0220101719581925e-5,9.263915942649568e-8,0.003353567452423346,-6.036056292024498e-5,9.286301996208644e-8,0.003354013074553909,-6.045506176241125e-5,9.300742375322236e-8,0.003354511938151932,-6.0462793179074204e-5,9.300515855826013e-8,0.003355013937094379,-6.036701837740332e-5,9.282957547814603e-8,0.0033554690078815767,-6.018006277425595e-5,9.250263119120252e-8,0.0033558424476254254,-5.9937221757790955e-5,9.208440293612802e-8,0.0033561228412348943,-5.9683282240027307e-5,9.165030735952862e-8,0.003356320744440452,-5.9458664926667036e-5,9.126781835699132e-8,0.003356461215846782,-5.929059997108527e-5,9.09818074709203e-8,0.0033565749791113304,-5.919060979973586e-5,9.081060603989335e-8,0.0033566915189816907,-5.915640839670276e-5,9.07494897969949e-8,0.0033568350305881473,-5.91755770416691e-5,9.077702401431161e-8,0.003357022613830941,-5.9229226963443656e-5,9.086121990946202e-8,0.003357263701159578,-5.929496452229679e-5,9.096440629587108e-8,0.003357559911226247,-5.934921839576949e-5,9.104702421945221e-8,0.0033579049385909485,-5.9369383956175455e-5,9.1071192375381e-8,0.0033582845835001054,-5.9336313704812116e-5,9.100494733703145e-8,0.00335867744667257,-5.923739982099832e-5,9.082751861971475e-8,0.003359057001605932,-5.906997363720898e-5,9.053508695821385e-8,0.003359395616398978,-5.884413276926084e-5,9.014546329210125e-8,0.003359670484111321,-5.858354614172143e-5,8.96992412648217e-8,0.003359870306372325,-5.83227294745991e-5,8.925494292974744e-8,0.003360000476205311,-5.8100244081356475e-5,8.887733886137964e-8,0.0033600842939887445,-5.794905158876692e-5,8.862112733910623e-8,0.0033601588394004405,-5.7886876867381644e-5,8.851484939281549e-8,0.0033602660797591934,-5.790993390908707e-5,8.85506789176601e-8,0.003360441674025316,-5.799244505104898e-5,8.868407215376571e-8,0.003360704848971143,-5.809247460735285e-5,8.884397868653839e-8,0.003361052408555661,-5.8162610399993446e-5,8.895098477449679e-8,0.0033614587985430038,-5.816263041067814e-5,8.893850581578914e-8,0.003361882595100984,-5.807055435201572e-5,8.877103313526498e-8,0.0033622778382321966,-5.788851232418176e-5,8.845357733079992e-8,0.003362606646946412,-5.764123357960088e-5,8.802875740347297e-8,0.003362848722009863,-5.736772166360094e-5,8.756257923304475e-8,0.003363004624307182,-5.710951428610873e-5,8.712465566458204e-8,0.0033630925651310676,-5.690004657624532e-5,8.677046271557997e-8,0.0033631411170110623,-5.6758424875231495e-5,8.653114040510852e-8,0.003363181256001812,-5.668835779717318e-5,8.641199419472419e-8,0.0033632402740149748,-5.6680785627308535e-5,8.639713164955336e-8,0.0033633383786634027,-5.67180183840242e-5,8.64564805526587e-8,0.0033634874868962595,-5.6777755378881375e-5,8.65524655651299e-8,0.0033636912810481303,-5.683628445550697e-5,8.66452477529796e-8,0.003363945718484768,-5.687086249094485e-5,8.669663650025481e-8,0.0033642395389277832,-5.686171426360383e-5,8.667346696354637e-8,0.0033645548029027344,-5.6794222114151424e-5,8.655138743646585e-8,0.0033648679728196743,-5.6661634264931834e-5,8.631952160889124e-8,0.003365152316192434,-5.646808727765676e-5,8.598556119531746e-8,0.0033653823440695273,-5.6231009443925796e-5,8.557966538825618e-8,0.003365540348867742,-5.598115619209057e-5,8.515425825459867e-8,0.0033656236291926926,-5.5758262063050816e-5,8.477643543829795e-8,0.003365649237974656,-5.5601580627967396e-5,8.451187493962213e-8,0.003365652653538818,-5.5537505781072915e-5,8.440402629396734e-8,0.0033656789459104476,-5.5569291146105796e-5,8.445703766415184e-8,0.003365769023611574,-5.5674099565599833e-5,8.463116901817921e-8,0.003365946605285959,-5.580935658495085e-5,8.485389455646114e-8,0.003366211262409989,-5.592573091926771e-5,8.504204720695987e-8,0.0033665395943343838,-5.598132333980049e-5,8.512577176624952e-8,0.003366892961472996,-5.59521898282755e-5,8.506604596898847e-8,0.003367228357217615,-5.583677491599288e-5,8.486175343471328e-8,0.0033675090217883843,-5.565418314517531e-5,8.454632832083293e-8,0.0033677122812087027,-5.543770395775392e-5,8.417651191158752e-8,0.0033678331653782018,-5.522579913828783e-5,8.381704806824443e-8,0.0033678834944036373,-5.50530389308712e-5,8.352552276592036e-8,0.0033678872697589877,-5.494321345418341e-5,8.334103225252462e-8,0.003367874119813055,-5.490600237086945e-5,8.327889130742978e-8,0.0033678728417263332,-5.493731937946403e-5,8.333146207894089e-8,0.003367906582298691,-5.50223028120182e-5,8.347329601819736e-8,0.003367990240931756,-5.5139459330814e-5,8.36680693328067e-8,0.003368129820921837,-5.5264706650024884e-5,8.387526013174893e-8,0.0033683230141878383,-5.53746278372721e-5,8.405550425907457e-8,0.0033685602874602904,-5.544884667401181e-5,8.417455801548991e-8,0.0033688260245799536,-5.5471875403664845e-5,8.420648096017351e-8,0.0033690996964164,-5.54349217648513e-5,8.41368044105891e-8,0.0033693574390171246,-5.533796983745346e-5,8.396611154911362e-8,0.003369574738556079,-5.51920190230235e-5,8.371373979967595e-8,0.0033697309471166486,-5.502062543221554e-5,8.342014676700197e-8,0.0033698157191195807,-5.4858963662490004e-5,8.314502135403152e-8,0.00336983588693757,-5.4748211466438515e-5,8.295758836096101e-8,0.003369819180796456,-5.472435396786891e-5,8.291770942984493e-8,0.0033698103447281362,-5.4804144817696605e-5,8.305241791698605e-8,0.0033698580327925177,-5.497509215486744e-5,8.333937840761425e-8,0.00336999704671909,-5.519660736781785e-5,8.370918090270701e-8,0.003370235023755808,-5.541355414664154e-5,8.406846696487325e-8,0.0033705505910493,-5.557548077177791e-5,8.43325066766928e-8,0.0033709027002781183,-5.565191209448797e-5,8.445094442884492e-8,0.0033712449573918956,-5.563811944371171e-5,8.441726573141519e-8,0.0033715383281370122,-5.5551947479558465e-5,8.426301455023264e-8,0.0033717588003342688,-5.5425603682988634e-5,8.404350744757277e-8,0.0033718997534319347,-5.529628730757146e-5,8.382176259040501e-8,0.0033719703516509663,-5.519808521396885e-5,8.365483265879684e-8,0.0033719915125817105,-5.515616301581334e-5,8.358424368986457e-8,0.003371990670460589,-5.5183508520810655e-5,8.363084262341449e-8,0.003371996312094328,-5.5280222125438397e-5,8.37938999603007e-8,0.0033720332014755966,-5.543506986883743e-5,8.405389123547616e-8,0.0033721189855487107,-5.56286157858378e-5,8.437778720791833e-8,0.003372262458821144,-5.5837078683713314e-5,8.472545698884107e-8,0.0033724633940253805,-5.603614789623234e-5,8.505597653427594e-8,0.003372713546608454,-5.620417709122976e-5,8.533294234846123e-8,0.0033729982668022603,-5.632452546423462e-5,8.552844070193068e-8,0.00337329829570848,-5.6387235045065904e-5,8.562597120345452e-8,0.003373591662554191,-5.639037939243083e-5,8.56228158420924e-8,0.0033738558827816345,-5.634128823507716e-5,8.553209949381927e-8,0.0033740709065428706,-5.625757728164715e-5,8.538435984518772e-8,0.0033742233614416587,-5.6167318041165296e-5,8.522753464272809e-8,0.0033743120850930324,-5.6106839883563096e-5,8.512295286558207e-8,0.0033743535182657845,-5.6114284681771475e-5,8.51343302306435e-8,0.003374383584560917,-5.621816091412462e-5,8.530860378052354e-8,0.003374451653711905,-5.642363033026548e-5,8.565316246357324e-8,0.003374604874548048,-5.670392651341919e-5,8.612176775673318e-8,0.003374868363272367,-5.700515151316815e-5,8.662290807184912e-8,0.0033752327666612806,-5.726543902108981e-5,8.705223569982031e-8,0.003375657734454065,-5.743861941957818e-5,8.733251492462779e-8,0.00337608883276525,-5.7508964679654286e-5,8.743842547911098e-8,0.0033764770314720334,-5.749109053497066e-5,8.739613430904317e-8,0.003376791288154108,-5.741928432963936e-5,8.726484516431357e-8,0.003377021873463669,-5.733428391425587e-5,8.711405749206888e-8,0.003377177244553692,-5.727289468373037e-5,8.700584615729924e-8,0.0033772782065038614,-5.7261975296652276e-5,8.698482352101486e-8,0.003377351897211726,-5.731608876134401e-5,8.707450164078988e-8,0.0033774266600864046,-5.743750053577925e-5,8.727765185706965e-8,0.0033775279397840904,-5.761758344607225e-5,8.757892428997106e-8,0.0033776751676794963,-5.783921764291742e-5,8.794897670651642e-8,0.0033778797227997696,-5.807988352583364e-5,8.834963725304223e-8,0.0033781440270615184,-5.831509017006301e-5,8.873957895692964e-8,0.0033784617768650477,-5.8521803894550365e-5,8.908001953560924e-8,0.003378819238634322,-5.868149381761238e-5,8.933984781642511e-8,0.003379197323670683,-5.8782439093002966e-5,8.949957584080041e-8,0.003379574066231394,-5.882122050843463e-5,8.955393397490966e-8,0.003379927308581292,-5.880351542948081e-5,8.951323372093641e-8,0.0033802375736910525,-5.8744255904977356e-5,8.940353066295135e-8,0.003380491220639322,-5.86670851430349e-5,8.92654614473728e-8,0.003380684061250688,-5.8602724717853605e-5,8.915117457299559e-8,0.003380825238790617,-5.8585283278155506e-5,8.911787039413452e-8,0.0033809400725077258,-5.8645366370736766e-5,8.921617853680288e-8,0.0033810692089788217,-5.8799874204040243e-5,8.947323513780382e-8,0.003381260821250198,-5.904106722336901e-5,8.987469296042821e-8,0.0033815547925915685,-5.933123263112307e-5,9.0356110182332e-8,0.003381964109575867,-5.961028832185029e-5,9.081592148861166e-8,0.0033824647851254143,-5.981713959083937e-5,9.1151422106769e-8,0.003383003169851391,-5.9914358833980524e-5,9.130033548932249e-8,0.0033835175357943767,-5.9901254032734106e-5,9.126278647579509e-8,0.0033839605590798446,-5.980890433849116e-5,9.10926902260356e-8,0.00338431099616989,-5.968366488858203e-5,9.086948355865654e-8,0.0033845727837585357,-5.9570442762593056e-5,9.066948346775116e-8,0.0033847670858004075,-5.950243521857609e-5,9.05484296124944e-8,0.0033849232362922243,-5.9497727807565615e-5,9.053594275132374e-8,0.0033850716583332255,-5.956024397003957e-5,9.063751388399143e-8,0.0033852393421935963,-5.9682490187505253e-5,9.083949487511646e-8,0.0033854472176725985,-5.984859127500225e-5,9.111441080009529e-8,0.0033857086133339863,-6.003720459463659e-5,9.142588647628522e-8,0.0033860284271986017,-6.022439650227471e-5,9.173340583043047e-8,0.003386402955846923,-6.038656005091193e-5,9.199713865518988e-8,0.003386820462731965,-6.0503374088305864e-5,9.218289744117541e-8,0.003387262658810295,-6.05606230682693e-5,9.226693315388558e-8,0.0033877071395750856,-6.0552452997181255e-5,9.223981379163578e-8,0.0033881305330445235,-6.048266726105932e-5,9.210864890465263e-8,0.0033885120041810286,-6.036487174837796e-5,9.189727295160823e-8,0.003388836782278121,-6.022136221100909e-5,9.164417689053099e-8,0.003389099364723984,-6.008071140194549e-5,9.139814912203612e-8,0.003389306087909998,-5.9974056769629564e-5,9.121173103792565e-8,0.0033894766507592314,-5.992991778520634e-5,9.113234376727132e-8,0.0033896436217253243,-5.9967392439029444e-5,9.119094033650632e-8,0.003389848331184142,-6.00884494472235e-5,9.138938243016609e-8,0.003390131696696725,-6.027176738671097e-5,9.169052134537972e-8,0.003390520408645742,-6.0472489173007385e-5,9.20181223124543e-8,0.003391013048776062,-6.0632291852483944e-5,9.227391611926006e-8,0.003391574685345615,-6.069936708195099e-5,9.237117323434914e-8,0.0033921465752053356,-6.0649508463182645e-5,9.227013011226155e-8,0.003392668019375996,-6.049561955058757e-5,9.199390213601754e-8,0.003393098109249708,-6.027985582758634e-5,9.161498325294656e-8,0.003393425788317697,-6.005472021645174e-5,9.12229510324662e-8,0.00339366621882231,-5.986502345047448e-5,9.089367784604274e-8,0.003393849764889761,-5.973824800765525e-5,9.067301795341194e-8,0.0033940108887349028,-5.9683418753718195e-5,9.057517474706375e-8,0.0033941806177451347,-5.969475502631139e-5,9.058927390461232e-8,0.0033943828082887316,-5.9756555264083074e-5,9.068792616803152e-8,0.0033946329021984417,-5.984744069403636e-5,9.083450585144963e-8,0.003394937808251754,-5.994358255246006e-5,9.098854172687638e-8,0.003395296161910116,-6.002127117598997e-5,9.110993548500498e-8,0.003395698804414143,-6.0059267214638514e-5,9.116285658288206e-8,0.0033961296425301405,-6.004122350292775e-5,9.111984405853812e-8,0.0033965672449549665,-5.995817702591761e-5,9.096608893871411e-8,0.0033969875056327195,-5.9810681332088226e-5,9.070310529653611e-8,0.0033973673472186662,-5.960989551896998e-5,9.035055940505286e-8,0.0033976890073721226,-5.937702862808381e-5,8.994519524467432e-8,0.00339794414966279,-5.914078600227383e-5,8.953626954603158e-8,0.00339813686265762,-5.893285864413488e-5,8.91776383701858e-8,0.0033982846760873316,-5.8782022201718587e-5,8.891757350029357e-8,0.0033984170426695744,-5.8707756459061303e-5,8.878796990728907e-8,0.0033985710041651773,-5.8714419523522015e-5,8.879474808736464e-8,0.003398783964213327,-5.8787308590801815e-5,8.891163690828701e-8,0.003399084097724401,-5.889244323337396e-5,8.908026373626042e-8,0.003399480270250761,-5.898203293481756e-5,8.921967011645284e-8,0.0033999551699554283,-5.900646431000797e-5,8.924656326463904e-8,0.003400466358786225,-5.893049216975236e-5,8.91024588459512e-8,0.003400957801068039,-5.8747104648884236e-5,8.877683281588798e-8,0.003401378527359106,-5.848118000125292e-5,8.831304298309702e-8,0.0034016995373273343,-5.817987411373497e-5,8.779181892187154e-8,0.0034019205448226966,-5.789489120259509e-5,8.730103063936285e-8,0.0034020649231812825,-5.7666180030203005e-5,8.690798801868969e-8,0.003402168049287801,-5.751375176227864e-5,8.664571506488682e-8,0.003402265858276145,-5.743804869788241e-5,8.651389470980682e-8,0.00340238747932283,-5.742519852330234e-5,8.64881096032888e-8,0.0034025522455255973,-5.7453234933997976e-5,8.653057385184077e-8,0.0034027695489980392,-5.7497130460310654e-5,8.659865614011625e-8,0.003403039886903058,-5.753221388492227e-5,8.665054230622828e-8,0.0034033560870460524,-5.753644074444263e-5,8.664895352331391e-8,0.0034037044047870047,-5.7492186034072585e-5,8.656414307834132e-8,0.003404065680014834,-5.738807359108861e-5,8.637705347880114e-8,0.0034044170305128105,-5.722099116240365e-5,8.60828262613509e-8,0.003404734597935735,-5.6997926909140374e-5,8.569395943787588e-8,0.003404997558905359,-5.6736793275923886e-5,8.524163215191012e-8,0.0034051929890715296,-5.646520876211743e-5,8.477344074418974e-8,0.003405320408160798,-5.621648018227168e-5,8.434631513995815e-8,0.003405394300451476,-5.6022900264124296e-5,8.40149123124777e-8,0.0034054430646795236,-5.590772696450894e-5,8.381791884209707e-8,0.0034055038606741876,-5.587815564824331e-5,8.376626228374444e-8,0.0034056142384550816,-5.59216390476811e-5,8.383721738396868e-8,0.003405802567121793,-5.600706841995555e-5,8.397686437719106e-8,0.003406079762115114,-5.609104831024885e-5,8.411111539414267e-8,0.0034064347003346877,-5.6128202268790945e-5,8.416335082003054e-8,0.0034068351738956544,-5.6083285215666045e-5,8.407483916197228e-8,0.003407235151776666,-5.594181500695267e-5,8.382243623901492e-8,0.0034075871596243503,-5.5715353849958e-5,8.342714398589868e-8,0.0034078560389337632,-5.543856994368361e-5,8.294878555047174e-8,0.0034080288015259303,-5.5158405656903775e-5,8.246741739171249e-8,0.003408116556022004,-5.491960304745137e-5,8.20587213493105e-8,0.0034081483496585887,-5.475262430635319e-5,8.17736335484883e-8,0.0034081606287834965,-5.466819510979342e-5,8.162935251217643e-8,0.003408187213574958,-5.465879991060622e-5,8.161218884734959e-8,0.0034082529479952245,-5.470438823302094e-5,8.168747464274309e-8,0.0034083714747449156,-5.477893708194855e-5,8.181075694408507e-8,0.0034085458513296286,-5.4855751000708015e-5,8.193669718795236e-8,0.003408770414545297,-5.4910925975911326e-5,8.202480039048432e-8,0.003409032781106392,-5.4925363401297566e-5,8.204274072682829e-8,0.0034093155318804143,-5.488606600123461e-5,8.196858076576507e-8,0.0034095977133735593,-5.478735913882586e-5,8.179294852554372e-8,0.0034098566636729913,-5.463228818846857e-5,8.1521508229844755E-08,0.003410070752139286,-5.443391476149148e-5,8.117715796819658e-8,0.0034102233957102024,-5.4215684339399623e-5,8.0800505879973e-8,0.003410308068531649,-5.400958289018258e-5,8.044648266424068e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_22.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_22.json new file mode 100644 index 000000000..5a65685cc --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_22.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":22000,"numberOfSamples":1000,"samples":[0.003410332914201753,-5.3850894022675106e-5,8.017517098961131e-8,0.003410322528879365,-5.376958194615e-5,8.003701237438996e-8,0.0034103145652221627,-5.3780481135696216e-5,8.005617875605212e-8,0.0034103506775372276,-5.3876274061593275e-5,8.021888857849169e-8,0.003410464307410866,-5.402707135418975e-5,8.047308167596654e-8,0.003410669971601388,-5.4187778507499705e-5,8.074133887896081e-8,0.003410958362427396,-5.431078402439631e-5,8.094271511350002e-8,0.0034112988966924413,-5.435925986441926e-5,8.101538020005893e-8,0.0034116483046836123,-5.431671386401488e-5,8.093263501288651e-8,0.0034119621492173344,-5.41904204198061e-5,8.070834304160092e-8,0.0034122059256284677,-5.400841636122217e-5,8.039138838903804e-8,0.0034123629141804617,-5.38113276447821e-5,8.005145827068325e-8,0.003412436926427523,-5.3641509849942013e-5,7.976047048128742e-8,0.0034124495366027988,-5.3532666321671336e-5,7.957504010808949e-8,0.0034124330661485227,-5.350283981451321e-5,7.952484351765614e-8,0.0034124218722404974,-5.3552370565715433e-5,7.960947036368768e-8,0.0034124447457084236,-5.3666539079328896e-5,7.980316491937519e-8,0.0034125202858526367,-5.382106091332426e-5,8.00642647210325e-8,0.0034126555868305777,-5.398815305369993e-5,8.034545908014444e-8,0.0034128473776592204,-5.414152490629849e-5,8.06021342297411e-8,0.0034130843642180496,-5.425966542015235e-5,8.079783644736344e-8,0.0034133497512128354,-5.4327618445658844e-5,8.090725685897239e-8,0.003413623435855102,-5.4337869912637006e-5,8.091781018622006e-8,0.003413883907454681,-5.429097539492461e-5,8.083081580105819e-8,0.0034141102665403125,-5.419622361028624e-5,8.066268207707981e-8,0.0034142849136512055,-5.407215162017978e-5,8.044570051432896e-8,0.00341439730488426,-5.394617096384391e-5,8.022718223765307e-8,0.003414448551881033,-5.385201336379878e-5,8.006482802604857e-8,0.0034144554442633347,-5.382365677022172e-5,8.001619006311863e-8,0.003414451133210198,-5.388562472720168e-5,8.012215438343905e-8,0.0034144795115925615,-5.4042269894100845e-5,8.038890648236031e-8,0.003414582717752921,-5.427144088560471e-5,8.077748959286917e-8,0.0034147858366957128,-5.452785635760065e-5,8.120990068433355e-8,0.003415086335408109,-5.475685197042185e-5,8.159276299340531e-8,0.0034154541675420077,-5.491264135361651e-5,8.184854560101504e-8,0.003415842328369328,-5.497241133679643e-5,8.19395012048398e-8,0.0034162020648540446,-5.494079694397467e-5,8.187500799224558e-8,0.0034164960597480513,-5.484509224563486e-5,8.170297816008171e-8,0.003416705855690934,-5.472520370648011e-5,8.14923147861858e-8,0.0034168331491478627,-5.462263220717812e-5,8.131389578844407e-8,0.003416896425673255,-5.457135459703978e-5,8.122506662590603e-8,0.003416924864737033,-5.459196701501527e-5,8.125992201462119e-8,0.0034169512624180483,-5.468942093895768e-5,8.142580537893595e-8,0.0034170054267853647,-5.485407812356393e-5,8.17054100824689e-8,0.0034171092005408077,-5.506533196508355e-5,8.206310391954363e-8,0.0034172737893538854,-5.529662285957986e-5,8.24534661992994e-8,0.0034174994368857004,-5.552057481406241e-5,8.282992315001632e-8,0.0034177769459542693,-5.5713266654435735e-5,8.315188937008223e-8,0.0034180902481047706,-5.58571185539423e-5,8.338960767448971e-8,0.0034184192209990544,-5.594239734507513e-5,8.352672714006698e-8,0.0034187422744122974,-5.5967759795049916e-5,8.356130894842189e-8,0.0034190386613258106,-5.5940313585960716e-5,8.350600300356605e-8,0.0034192907451060053,-5.5875438829459745e-5,8.338772029482915e-8,0.0034194865853197334,-5.5796286755981725e-5,8.324661178228372e-8,0.0034196231618546383,-5.573239332743332e-5,8.313343416160889e-8,0.0034197100026956712,-5.571629566234729e-5,8.310353167794132e-8,0.0034197718373557965,-5.5777017730924494e-5,8.320565011677361e-8,0.0034198476546487924,-5.593045265235306e-5,8.346570742357244e-8,0.0034199832418701356,-5.6169307155583144e-5,8.387000547866622e-8,0.0034202166393619616,-5.64584557493018e-5,8.435767926960611e-8,0.0034205614639800535,-5.67418663020452e-5,8.483274082655738e-8,0.003420997727034218,-5.696140593963007e-5,8.51962311929662e-8,0.0034214773558268368,-5.707879301142648e-5,8.538365211417604e-8,0.0034219421419332224,-5.708851047552745e-5,8.538688805157197e-8,0.0034223438059788605,-5.701585691614104e-5,8.525060072019697e-8,0.0034226564954146083,-5.690413699843295e-5,8.504993386503595e-8,0.003422878920363075,-5.679944106094893e-5,8.486413227000239e-8,0.0034230291674335464,-5.6739176541925223e-5,8.475681081074442e-8,0.003423136660697731,-5.6746178962097036e-5,8.476606168603778e-8,0.0034232343831674863,-5.682746769406769e-5,8.490269488349289e-8,0.0034233527024106186,-5.697594757338996e-5,8.515352124084064e-8,0.003423515048462373,-5.717372366496969e-5,8.548725451920484e-8,0.003423735360724929,-5.739623453008071e-5,8.586162778920173e-8,0.0034240171921175824,-5.761661689063496e-5,8.623076555625632e-8,0.003424354282394761,-5.7809781532945634e-5,8.655200921001188e-8,0.003424732337212298,-5.795580012171021e-5,8.679159414405439e-8,0.0034251316600929604,-5.804228112995662e-5,8.692867283680107e-8,0.0034255301389273553,-5.8065571370678764e-5,8.695739993818016e-8,0.0034259061435299876,-5.8030942708281336e-5,8.68873016976559e-8,0.003426241192945239,-5.7952061490074354e-5,8.674237096252997e-8,0.003426522442310002,-5.784987818084441e-5,8.655906513984539e-8,0.0034267450710929025,-5.775090698206635e-5,8.638314938058331e-8,0.0034269146613510586,-5.768461436478088e-5,8.626498016672915e-8,0.0034270492888037753,-5.7679206341423455e-5,8.625215296635437e-8,0.0034271801115048016,-5.775513150463932e-5,8.637847340111039e-8,0.003427348318837799,-5.791673040416302e-5,8.66500111928406e-8,0.003427596290732135,-5.814466196255829e-5,8.703260278195282e-8,0.0034279529627239238,-5.8394327194921334e-5,8.744949479355945e-8,0.003428418470586544,-5.860576263431353e-5,8.77983298726461e-8,0.00342895785967562,-5.872474275422114e-5,8.79870966366347e-8,0.0034295111225311516,-5.872520138069127e-5,8.797231646130829e-8,0.0034300159367414112,-5.8619276575255356e-5,8.777608739665868e-8,0.003430429936364875,-5.8449346719175054e-5,8.747221956219683e-8,0.0034307409539403753,-5.8269005362368705e-5,8.715330218992734e-8,0.0034309636874953423,-5.812488879415304e-5,8.689927969838687e-8,0.0034311290547955646,-5.804651663753494e-5,8.676002574361577e-8,0.0034312730856115364,-5.804431513186724e-5,8.675224016919222e-8,0.003431428842749821,-5.811258599710215e-5,8.686495556850346e-8,0.003431621833748501,-5.823424073945281e-5,8.706799112634763e-8,0.0034318679871170456,-5.838549788451625e-5,8.732014432177786e-8,0.0034321731793053077,-5.854001187955921e-5,8.757621999925782e-8,0.0034325337535511193,-5.8672442465983527E-05,8.779300375802679e-8,0.0034329377969641297,-5.876149483775846e-5,8.79343338304245e-8,0.0034333670820067457,-5.8792422402358875e-5,8.7975316488367e-8,0.0034337996533433854,-5.875886549720411e-5,8.790547650809066e-8,0.0034342129023982814,-5.8663743295375374e-5,8.773032040338553e-8,0.0034345867528595554,-5.8519040728693963E-05,8.747098149349937e-8,0.00343490662495616,-5.834457618854895e-5,8.716204139286165e-8,0.003435165997133961,-5.816584043444344e-5,8.684766473704805e-8,0.003435368377604481,-5.8010940498476064e-5,8.657614158669101e-8,0.003435528469312809,-5.79066894188021e-5,8.639300030976978e-8,0.0034356721817477088,-5.787374966119817e-5,8.633265875065238e-8,0.0034358346431882215,-5.7920805816179714e-5,8.640865043476558e-8,0.00343605489737805,-5.8038637339463834e-5,8.660388209222903e-8,0.0034363663675272185,-5.8196543664505935e-5,8.686495377469283e-8,0.003436784132872785,-5.834498191690136e-5,8.710692888866458e-8,0.003437293776835478,-5.8427735873480615e-5,8.72341254787051e-8,0.0034378497110881335,-5.8402092841660325e-5,8.717442687949159e-8,0.0034383882973978448,-5.8257765502926945e-5,8.691145603639477e-8,0.003438851408713721,-5.802240303565348e-5,8.649384664598423e-8,0.0034392073380863355,-5.774932951993929e-5,8.601401185593557e-8,0.0034394577744100104,-5.749559608304214e-5,8.557022184800596e-8,0.003439630233895451,-5.7303386349150334e-5,8.523451882013677e-8,0.0034397639148655676,-5.71921018810065e-5,8.503923334835471e-8,0.003439897152082377,-5.716002300749245e-5,8.498019404726612e-8,0.0034400599773055985,-5.719061355114749e-5,8.502796230293353e-8,0.0034402713672934656,-5.725932344600479e-5,8.513976877355545e-8,0.0034405393098027363,-5.7338962376120295e-5,8.52687687250456e-8,0.0034408620305790096,-5.7403458295962594e-5,8.5370360365332e-8,0.0034412295639111826,-5.74305399376233e-5,8.540661686558558e-8,0.0034416255077720182,-5.7403819017073256e-5,8.534975049941572e-8,0.0034420290593737894,-5.7314494475115625e-5,8.518502074925517e-8,0.0034424175204084556,-5.7162649725107814e-5,8.491300299198063e-8,0.0034427693744096327,-5.695780291358059e-5,8.45505703435799e-8,0.003443067694390436,-5.671827027498391e-5,8.412977141244271e-8,0.0034433033585062117,-5.6469137408961e-5,8.369422260683416e-8,0.003443477522363603,-5.6238888006486065e-5,8.329312068593308e-8,0.0034436028265143223,-5.6054927768332085e-5,8.297335687745774e-8,0.0034437028776761053,-5.593849466785818e-5,8.277067663956046e-8,0.0034438096971042514,-5.589961405993521e-5,8.270110737924363e-8,0.0034439589152577502,-5.593284157050621e-5,8.275395289466784e-8,0.0034441825909026142,-5.601493075148707e-5,8.288821797121621e-8,0.0034445001635288017,-5.610621465702858e-5,8.303535737202917e-8,0.0034449095226591654,-5.615762951966539e-5,8.311147869532069e-8,0.0034453821233687756,-5.612393855092263e-5,8.303989847633601e-8,0.003445866927768903,-5.598013860657117e-5,8.277898571579688e-8,0.003446305117155568,-5.573359851034611e-5,8.234268399454156e-8,0.003446650688170405,-5.54237541297035e-5,8.179975395214818e-8,0.003446886420895123,-5.5107576665760024e-5,8.124862318937609e-8,0.0034470267259821934,-5.483846667724602e-5,8.078097385183255e-8,0.00344710766051307,-5.464993566767857e-5,8.04536936374894e-8,0.003447171789706657,-5.455038535028025e-5,8.028012646114274e-8,0.0034472558389312216,-5.452741901483898e-5,8.02378602589795e-8,0.003447384454009153,-5.455622510521429e-5,8.028347230580017e-8,0.003447569166450617,-5.460748845901849e-5,8.036626359875367e-8,0.003447810144196527,-5.465292154467429e-5,8.043768722291936e-8,0.0034480987268725206,-5.466849659176279e-5,8.045671557812648e-8,0.003448419783191651,-5.46362499989435e-5,8.039277888315682e-8,0.003448753772593059,-5.45454637568273e-5,8.022774113086465e-8,0.0034490787902391605,-5.439364106836301e-5,7.995762374625734e-8,0.003449372967644381,-5.41872734508112e-5,7.959400330433788e-8,0.0034496174799257423,-5.394199608711304e-5,7.916430464845655e-8,0.003449800033082265,-5.368150494101013e-5,7.870985989025718e-8,0.0034499182123150364,-5.343472982432336e-5,7.828086678372597e-8,0.003449981722370573,-5.323117506956941e-5,7.792815673433031e-8,0.0034500124919465153,-5.30949612652312e-5,7.769278778854012e-8,0.0034500419488425822,-5.303878495366926e-5,7.759565134357626e-8,0.003450105483013042,-5.305939695552917e-5,7.762989261880157e-8,0.0034502349108771345,-5.3136052000312036E-05,7.775860628781301e-8,0.00345045036327994,-5.3232896856317525e-5,7.791934553656435e-8,0.0034507534559009615,-5.330563477313901e-5,7.803586216602371e-8,0.0034511239123253042,-5.331189940292976e-5,7.80359816725961e-8,0.0034515217741313154,-5.3223411868618484e-5,7.787229296285301e-8,0.0034518963778732035,-5.303630985682997e-5,7.753954870439826e-8,0.003452200772443476,-5.277494601652743e-5,7.708083438603485e-8,0.0034524067233620208,-5.24857622131667e-5,7.657676351766069e-8,0.003452513539318852,-5.222238745671445e-5,7.611970105647155e-8,0.003452546358006263,-5.202834487641089e-5,7.578401494859984e-8,0.003452545316805372,-5.1925238857953614e-5,7.56059228122419e-8,0.0034525517079226162,-5.1910531969244896e-5,7.55799748568084e-8,0.0034525973425899702,-5.1963341595560646e-5,7.566935879164173e-8,0.003452699860306806,-5.2053492925631584e-5,7.582168477769657e-8,0.003452863075258511,-5.2149607426261665e-5,7.598291155508565e-8,0.0034530799060755258,-5.222439818684115e-5,7.61063070119408e-8,0.003453335818338361,-5.2257343532068194e-5,7.615685892232103e-8,0.003453611766785339,-5.223571891965294e-5,7.61129377116946e-8,0.0034538864899658996,-5.215494408708145e-5,7.596690383151867e-8,0.003454138506384482,-5.201882998128307e-5,7.572562427973521e-8,0.003454348337076918,-5.183978826068164e-5,7.541091271463072e-8,0.0034545013314538756,-5.1638552963418784e-5,7.505903324803353e-8,0.003454591043269122,-5.144265642680074e-5,7.47179322561575e-8,0.0034546224963198295,-5.128290588661151e-5,7.444094709790633e-8,0.003454614029832736,-5.118756231866206e-5,7.427657654620211e-8,0.0034545960964780477,-5.117499667449252e-5,7.425575471974446e-8,0.0034546059759224725,-5.124696696840789e-5,7.438038383349255e-8,0.003454678971542103,-5.13853618139435e-5,7.46180167622108e-8,0.003454838496800186,-5.155451806553497e-5,7.490622976898416e-8,0.003455088410098183,-5.170923490366474e-5,7.516676020545438e-8,0.0034554104312331923,-5.18063784397559e-5,7.53256558047392e-8,0.0034557677626890567,-5.181660232781692e-5,7.533338722547459e-8,0.003456114043853787,-5.173270086815992e-5,7.517894604581043e-8,0.0034564052677747885,-5.157212308820495e-5,7.48937718027089e-8,0.003456611436614271,-5.1372648185342906e-5,7.454392055414663e-8,0.0034567244663298784,-5.118206849108857e-5,7.421205085109125e-8,0.0034567595924578005,-5.104487112438851e-5,7.397444303572169e-8,0.0034567496932292933,-5.0990411029647274e-5,7.388079046187029e-8,0.0034567348219838017,-5.1026634462844345E-05,7.394368941315555e-8,0.0034567511208470503,-5.1140910162072285e-5,7.41404001886787e-8,0.003456822969488365,-5.130640701071599e-5,7.442407063670418e-8,0.0034569600809666373,-5.149059048477161e-5,7.473844540174441e-8,0.003457158836079232,-5.166263101478568e-5,7.503054191154755e-8,0.0034574058624226842,-5.179814342816616e-5,7.525864485773623e-8,0.0034576819982162126,-5.188131487414444e-5,7.53958236160267e-8,0.003457965624434055,-5.190529764163641e-5,7.543055726802653e-8,0.003458235153642075,-5.187182989119657e-5,7.536613158997809e-8,0.003458470988800748,-5.179074706531707e-5,7.52198852644471e-8,0.0034586575036994354,-5.1679536585510255e-5,7.502247538759579e-8,0.0034587855033521653,-5.156254212189298e-5,7.481641900418598e-8,0.0034588552057932243,-5.1469030724573484e-5,7.465256143383775e-8,0.0034588791061978532,-5.142920657003421e-5,7.458297859873786e-8,0.003458883218149259,-5.1467660711166246e-5,7.464955268013278e-8,0.0034589045776179444,-5.159510836468649e-5,7.48697763858947e-8,0.0034589835250980615,-5.180135000044591e-5,7.522485150187091e-8,0.0034591517840109193,-5.205370320062124e-5,7.56573232920082e-8,0.0034594206555359705,-5.2303828254811026e-5,7.608317761780516e-8,0.0034597750906966754,-5.250174966429808e-5,7.641623908985145e-8,0.0034601771049745287,-5.2611539439694236e-5,7.659526793472266e-8,0.003460577222136936,-5.262200185778321e-5,7.660223703442587e-8,0.003460928903507887,-5.254861496345348e-5,7.646534203758294e-8,0.003461200559315436,-5.2427345790902366e-5,7.624789704143432e-8,0.0034613819623500147,-5.230371513415596e-5,7.602909490634815e-8,0.00346148446467581,-5.2220931733726785e-5,7.58833715008536e-8,0.003461536103359664,-5.2210117968981436e-5,7.586364467457609e-8,0.003461573517811942,-5.2284544913011865e-5,7.599167543503633e-8,0.0034616329485504336,-5.243864613206289e-5,7.625673698865155e-8,0.003461742549106104,-5.265142211148723e-5,7.662177846795173e-8,0.003461917703165235,-5.2892782274308036e-5,7.703449448843473e-8,0.0034621599737674246,-5.313072477304534e-5,7.74396760194996e-8,0.0034624591084389793,-5.33374098966768e-5,7.778955053911857e-8,0.003462796779292467,-5.349304510582412e-5,7.805033191515012e-8,0.003463150686187144,-5.3587487694671127e-5,7.820488911072816e-8,0.0034634980867577683,-5.362014291759816e-5,7.825256020973388e-8,0.0034638184347490337,-5.35989854743125e-5,7.820751398896041e-8,0.0034640953366142095,-5.353936163065365e-5,7.809672470592285e-8,0.0034643182806015373,-5.3462782486652334e-5,7.795785220255605e-8,0.0034644845501561154,-5.339545627403919e-5,7.783656035226323e-8,0.0034646014413177184,-5.336592005983549e-5,7.778221516267927e-8,0.0034646882637985664,-5.3400881599815127e-5,7.78405393635882e-8,0.003464776653159077,-5.351867683920702e-5,7.804231285445772e-8,0.003464906957150965,-5.372111733504216e-5,7.838949782169935e-8,0.0034651189235659127,-5.398689725856593e-5,7.884418711991946e-8,0.0034654377510551313,-5.427171287388532e-5,7.932912268318844e-8,0.003465861181889111,-5.45189747063227e-5,7.974637922620187e-8,0.0034663557995089868,-5.4679006723517416e-5,8.001057810235294e-8,0.003466866832075317,-5.4727667638690595e-5,8.008101605182355e-8,0.003467337213583027,-5.467430917764118e-5,7.997525515932372e-8,0.0034677259185634294,-5.45558137956383e-5,7.975848386026634e-8,0.0034680175758430914,-5.4421850197762574e-5,7.951758779610465e-8,0.003468221945391668,-5.431943863471243e-5,7.93341221303494e-8,0.003468366749984431,-5.4282189894998705e-5,7.926564782173139e-8,0.003468488253575451,-5.432554626942201e-5,7.933775100923389e-8,0.003468622577673265,-5.4446940976185534e-5,7.954473091422483e-8,0.00346879910386759,-5.4629139136083834e-5,7.985575566520995e-8,0.003469036315266957,-5.484531500646757e-5,8.022385234336574e-8,0.0034693400970225562,-5.506482644748267e-5,8.05959068464886e-8,0.003469704347103154,-5.525874833196587e-5,8.09221138287859e-8,0.003470113426848338,-5.54043045866477e-5,8.116348069551332e-8,0.003470545719066106,-5.548767615842907e-5,8.129655797854296e-8,0.0034709775149081618,-5.550506450046016e-5,8.131522490515083e-8,0.0034713865350294564,-5.546223505877917e-5,8.122990831469518e-8,0.00347175466700389,-5.537307165347207e-5,8.10651077332558e-8,0.003472069935483391,-5.5257707024367603e-5,8.085614780070984e-8,0.0034723279767847086,-5.514048489525153e-5,8.064555763367976e-8,0.0034725332728849033,-5.504767565387728e-5,8.047894670947377e-8,0.0034727002510506733,-5.5004592720721175e-5,8.039983781883514e-8,0.003472853897452726,-5.5031486682279284e-5,8.044249502323219e-8,0.0034730286883273595,-5.513778809238864e-5,8.062209526950794e-8,0.003473263973229728,-5.531544130156531e-5,8.092351809161323e-8,0.0034735943076693245,-5.553413717659481e-5,8.129347436960563e-8,0.003474035665897499,-5.574326882078972e-5,8.16441259001113e-8,0.0034745731955609315,-5.5884742086398796e-5,8.18752580591423e-8,0.0034751596486798657,-5.5914583892773785e-5,8.19115493205368e-8,0.003475729749079442,-5.5822556153648676e-5,8.173640984494093e-8,0.0034762246796353497,-5.563705319293436e-5,8.140033666182622e-8,0.003476612701492186,-5.541203574155975e-5,8.099801039245487e-8,0.003476895422108325,-5.52051656998577e-5,8.063001150121857e-8,0.0034771002354880218,-5.50597528893753e-5,8.037124816213464e-8,0.003477266808137206,-5.499678333889154e-5,8.025718895626209e-8,0.003477434878777277,-5.501575513956466e-5,8.028567476587208e-8,0.0034776364077081026,-5.510010155564282e-5,8.042677847876208e-8,0.0034778919129647623,-5.522370891534653e-5,8.063443431098723e-8,0.003478209655577147,-5.53567664624354e-5,8.085668027157581e-8,0.003478586484780268,-5.547053781197861e-5,8.104383769654996e-8,0.003479009745324267,-5.5541137233202974e-5,8.115488223399064e-8,0.0034794599661624203,-5.55522999409954e-5,8.116209039532e-8,0.00347991406310937,-5.5497055559913984e-5,8.105385714697197e-8,0.00348034877409459,-5.5378226962704636e-5,8.083554656447708e-8,0.003480743967899695,-5.5207701396177e-5,8.052824678244802e-8,0.003481085399356866,-5.500462615502403e-5,8.016563989201027e-8,0.003481366669257658,-5.4792906661938594e-5,7.978960191727658e-8,0.0034815903954937507,-5.459831114198394e-5,7.944505128213398e-8,0.003481768645435652,-5.444530524158718e-5,7.917429462220676e-8,0.003481922641158277,-5.435363020679066e-5,7.901097650404148e-8,0.003482081557943241,-5.43344611388244e-5,7.897344901624152e-8,0.0034822796949849086,-5.438607219406785e-5,7.90574880741661e-8,0.0034825508886991334,-5.4489814677525574e-5,7.922969966297901e-8,0.003482919510198329,-5.460863179618924e-5,7.942530879637457e-8,0.00348338922468968,-5.4691530175031036e-5,7.955606784582527e-8,0.0034839341482262006,-5.468684887826709e-5,7.953314250976801e-8,0.003484500044929782,-5.456236411226566e-5,7.930171563250027e-8,0.003485020395764967,-5.432242661163013e-5,7.887051211495277e-8,0.003485441830665722,-5.4009666442778456e-5,7.831463037203127e-8,0.003485744308334187,-5.3687830051453043e-5,7.774555423085291e-8,0.003485944356059249,-5.341619454208322e-5,7.726643890430705e-8,0.0034860824605426953,-5.323068031905013e-5,7.69391413336341e-8,0.003486205192699337,-5.313887848336849e-5,7.677573716104043e-8,0.003486351616487765,-5.312585818689202e-5,7.674902644824243e-8,0.003486546989851855,-5.3163832246076e-5,7.680975614919294e-8,0.003486802071512451,-5.322081037736187e-5,7.690188262653895e-8,0.003487115234474545,-5.326655085161755e-5,7.697289095930539e-8,0.003487475361305784,-5.3276107450321254e-5,7.697977967690026e-8,0.00348786468748232,-5.323188756023941e-5,7.689243976502786e-8,0.003488261541112851,-5.3124867656400085e-5,7.669564695902987e-8,0.0034886431118577687,-5.2955187271283527e-5,7.639006967152842e-8,0.0034889883345022694,-5.273207584356439e-5,7.599217164183895e-8,0.00348928082718179,-5.247287143335613e-5,7.553253065060545e-8,0.0034895115406157772,-5.220092938007728e-5,7.505217138911657e-8,0.0034896806403166163,-5.194253721386278e-5,7.45970984578306e-8,0.003489798281891112,-5.17231700616895e-5,7.421163449310192e-8,0.003489884081885023,-5.156346255637453e-5,7.393127924950925e-8,0.0034899651917605482,-5.1475349070217194e-5,7.37759579390884e-8,0.0034900730046242873,-5.145880727187514e-5,7.374448490150087e-8,0.0034902384487222934,-5.149957504391051e-5,7.38108940008001e-8,0.003490485713360978,-5.1568581097192085e-5,7.392383226896056e-8,0.0034908247516596694,-5.162452953725788e-5,7.401135645851316e-8,0.0034912442178913756,-5.162129070334261e-5,7.399384833356589e-8,0.0034917082870866084,-5.152067046187914e-5,7.380600775763368e-8,0.003492161919526589,-5.1307906470345714e-5,7.342344472404727e-8,0.0034925468003312904,-5.100251708159784e-5,7.28812436475048e-8,0.0034928230231711763,-5.065567102917774e-5,7.22692085054129e-8,0.00349298480607223,-5.0332008284307815e-5,7.170010948102879e-8,0.003493060486880091,-5.008509810197167e-5,7.126687367301145e-8,0.0034930978108644877,-4.994040408769448e-5,7.10129659368693e-8,0.003493144812116986,-4.989292212429899e-5,7.092852991350264e-8,0.003493236329890927,-4.991616821749949e-5,7.09664233386691e-8,0.003493389382240401,-4.997451260323819e-5,7.106400377600212e-8,0.0034936049670886314,-5.003303046878982e-5,7.116036558566628e-8,0.0034938724850190725,-5.006315699024087e-5,7.120605641471014e-8,0.003494174181710002,-5.004500801825621e-5,7.116689888635155e-8,0.003494488647240114,-4.9967898958017656e-5,7.10247226686362e-8,0.003494793491455296,-4.983017838931351e-5,7.077701977191036e-8,0.0034950676495118685,-4.963883343406836e-5,7.043629688622425e-8,0.0034952936893218015,-4.940884123717768e-5,7.00290073852739e-8,0.0034954602703394025,-4.91619116469257e-5,6.959337044053813e-8,0.003495564525333123,-4.8924164351532744e-5,6.917524860206665e-8,0.0034956137545527114,-4.872255946766232e-5,6.882178267966077e-8,0.003495625715726868,-4.858035828766625e-5,6.857332667336269e-8,0.003495626962793271,-4.8512296531638016e-5,6.845495049254806e-8,0.003495649053141319,-4.852049680516395e-5,6.846936904534974e-8,0.00349572299679345,-4.859225484338337e-5,6.859329915473242e-8,0.0034958728136478237,-4.870052145709375e-5,6.877863372874697e-8,0.003496109274904872,-4.8807474643686194e-5,6.895900381066696e-8,0.0034964250870034323,-4.887130098211752e-5,6.906179269833887e-8,0.0034967931639454048,-4.885581409325789e-5,6.902485348345956e-8,0.0034971698712657363,-4.874139651093061e-5,6.881530246607359e-8,0.0034975044920154213,-4.853405294472491e-5,6.84449092255104e-8,0.0034977539089692195,-4.82679369446728e-5,6.797415829244196e-8,0.0034978977356623906,-4.799750824878962e-5,6.749837862946622e-8,0.003497946438249529,-4.778016802970108e-5,6.71174247409688e-8,0.003497937170337883,-4.765667743097292e-5,6.690162413586374e-8,0.0034979190953097782,-4.763908471093491e-5,6.687094352623798e-8,0.003497936251514583,-4.771117288133363e-5,6.699607854306233e-8,0.0034980160892215074,-4.783863709240464e-5,6.72164958349271e-8,0.0034981665960245093,-4.798196106874302e-5,6.746304065721289e-8,0.0034983797653029723,-4.810632101892896e-5,6.7675162011292e-8,0.003498637465113023,-4.818668505636025e-5,6.780961989824135e-8,0.003498916867361659,-4.820909523255125e-5,6.784251930616007e-8,0.0034991943722301896,-4.816994545602405e-5,6.77679407084832e-8,0.003499448182358842,-4.8074658565751284e-5,6.759564195017042e-8,0.003499660159392372,-4.793641707463699e-5,6.734892080114882e-8,0.003499817561197899,-4.777495464323169e-5,6.70625616249293e-8,0.0034999149556601225,-4.761498368904733e-5,6.678005875369204e-8,0.0034999561644388504,-4.7483672003196496e-5,6.654908362581237e-8,0.003499955598723389,-4.7406752130685654e-5,6.64145242188782e-8,0.003499937981419274,-4.7403373506660164e-5,6.64093764187308e-8,0.0034999354725625304,-4.748062569635709e-5,6.654518620862992e-8,0.0034999818663642855,-4.762947778629249e-5,6.680512211808298e-8,0.003500104737353191,-4.782411608126126e-5,6.714310459443665e-8,0.0035003176166506283,-4.802589279357225e-5,6.749101949715656e-8,0.0035006147541124916,-4.819155958831892e-5,6.777333062458293e-8,0.0035009704717046735,-4.8283900302600454e-5,6.79257035406021e-8,0.0035013438418472647,-4.828195062171539e-5,6.791269545624289e-8,0.0035016879794580935,-4.818789700989003e-5,6.77394776851162e-8,0.00350196195728518,-4.8028314713332036e-5,6.7453611515929e-8,0.0035021422800556846,-4.784851634702435e-5,6.713486096804716e-8,0.0035022301857497284,-4.770064526201016e-5,6.687425034339409e-8,0.0035022515726871335,-4.762872570098612e-5,6.674801281177754e-8,0.003502248809025409,-4.76559744371242e-5,6.6795665439382e-8,0.0035022673478896467,-4.777938593190681e-5,6.701087743219682e-8,0.003502342631637575,-4.7973344665574994e-5,6.734808187955503e-8,0.0035024922414820824,-4.819969702053791e-5,6.774024524213613e-8,0.003502715017307082,-4.841926028605082e-5,6.811897897486228e-8,0.0035029954034810603,-4.8600480484494276e-5,6.842952899629088e-8,0.003503309784163736,-4.872362633221379e-5,6.863790981889476e-8,0.0035036322351094896,-4.878127146575032e-5,6.873159448741184e-8,0.0035039386022962613,-4.877672372667128e-5,6.871671928860393e-8,0.003504208970165578,-4.87218399559206e-5,6.861430714964363e-8,0.003504429141433504,-4.863501729753385e-5,6.845682584882933e-8,0.00350459182981821,-4.853945290340068e-5,6.828516088744188e-8,0.0035046979735865453,-4.846124060565817e-5,6.814520400131455e-8,0.00350475808642424,-4.842667362547513e-5,6.808297903800876e-8,0.00350479302443529,-4.845822639406622e-5,6.813746753851686e-8,0.003504833027239744,-4.8569169986268695e-5,6.833115419174137e-8,0.003504913702238319,-4.8757838383985466e-5,6.866012446657687e-8,0.0035050683853181447,-4.900391199350466e-5,6.908782646579392e-8,0.0035053182256271995,-4.926964452673352e-5,6.954751938057267e-8,0.003505663509814919,-4.950767016413277e-5,6.995616209346973e-8,0.003506080502214955,-4.967398233611283e-5,7.023720489982495e-8,0.0035065262851390663,-4.974153435641874e-5,7.034430756266863e-8,0.003506950416802348,-4.970896615211756e-5,7.027638385694825e-8,0.003507309058355678,-4.960110682063593e-5,7.0078148342398e-8,0.003507576569966767,-4.9461571981689524e-5,6.982680430100155e-8,0.003507751260505524,-4.9340525835212706e-5,6.961036660223815e-8,0.0035078543380118467,-4.928155435713404e-5,6.950463542881697e-8,0.003507923017411245,-4.931120710474176e-5,6.955507505634865e-8,0.003508000088817847,-4.943373386134086e-5,6.976794205386932e-8,0.0035081230318595195,-4.9631997266688886e-5,7.011223942234489e-8,0.003508315707408989,-4.987372010955851e-5,7.053089174394624e-8,0.003508584634184765,-5.012067906449034e-5,7.095689951327328e-8,0.003508920154172877,-5.033779131119303e-5,7.13291488630146e-8,0.0035093011174319503,-5.0499608977751295e-5,7.16036029544808e-8,0.0035097008909079027,-5.059322819724562e-5,7.175822123658268e-8,0.003510092795370233,-5.0618099620991336e-5,7.179252228933486e-8,0.0035104540074803628,-5.058396686418179e-5,7.172395576915468e-8,0.0035107678630634256,-5.050815563358695e-5,7.15831936559844e-8,0.0035110250474179707,-5.041300190160958e-5,7.140965978633763e-8,0.003511224303772449,-5.0323602655051194e-5,7.124755864747469e-8,0.003511373081760116,-5.026556563032649e-5,7.114182180173342e-8,0.0035114881227789486,-5.026219499321855e-5,7.113303314780363e-8,0.003511595434404246,-5.0330578468163386e-5,7.125049337013055e-8,0.003511728512620591,-5.047647794780582e-5,7.15033405278639e-8,0.0035119233836461974,-5.0689046876978714e-5,7.187153222950117e-8,0.003512209769178392,-5.093800093324406e-5,7.230120436607415e-8,0.003512599955153083,-5.1176799888461815e-5,7.271049692322936e-8,0.003513080034794742,-5.135392592457402e-5,7.300940477436388e-8,0.003513609502076132,-5.14298349934786e-5,7.312941724983363e-8,0.0035141320281950124,-5.139216413429823e-5,7.305001548325024e-8,0.0035145936629104664,-5.1261041454466944e-5,7.28077595651944e-8,0.003514959887450534,-5.108168091747994e-5,7.248300624823855e-8,0.0035152241266274524,-5.090867675710344e-5,7.217204520177112e-8,0.0035154059396990682,-5.078968882418096e-5,7.195828527441259e-8,0.0035155420813633245,-5.075426745699315e-5,7.189270617613542e-8,0.0035156751083582306,-5.0809654038145116e-5,7.198679130075311e-8,0.003515843117254807,-5.094257374417173e-5,7.221607476825528e-8,0.0035160725094786714,-5.112494538587068e-5,7.253048594280297e-8,0.0035163744088703465,-5.132142690619098e-5,7.286773029032713e-8,0.0035167446049327736,-5.1497064920155425e-5,7.316666417595633e-8,0.003517166385541075,-5.1623642515698906e-5,7.337826896105822e-8,0.0035176151934762446,-5.168374224689177e-5,7.347259275945112e-8,0.0035180638474490854,-5.167220679053694e-5,7.344117159692746e-8,0.003518487230567752,-5.159533656149261e-5,7.329555446259182e-8,0.0035188657466365884,-5.146856119474064e-5,7.306321274190783e-8,0.0035191873567905307,-5.13134535075297e-5,7.278232032475649e-8,0.0035194484899109596,-5.1154771029381724e-5,7.249655785721567e-8,0.0035196543025420254,-5.101775638284942e-5,7.225031546170417e-8,0.0035198186084428556,-5.0925530397301455e-5,7.208400788541844e-8,0.0035199635105888586,-5.089622436322815e-5,7.202894163244655e-8,0.003520118343208592,-5.093945103045378e-5,7.210112224469392e-8,0.0035203169511922577,-5.105206016209678e-5,7.229397007328736e-8,0.003520592065648051,-5.1214188069510806e-5,7.2571689142489e-8,0.00352096625240208,-5.138810927673326e-5,7.286756429012272e-8,0.0035214411001403445,-5.1523353653888815e-5,7.309310451119305e-8,0.0035219896591436894,-5.15702050538723e-5,7.316168179423694e-8,0.0035225589618442157,-5.149859927706176e-5,7.302152157725176e-8,0.003523085668432638,-5.1313067895405906e-5,7.268175566529078e-8,0.003523518917940908,-5.105359802726036e-5,7.221375246224139e-8,0.003523838095962248,-5.0780520742168284e-5,7.17243210762634e-8,0.0035240564761216146,-5.0552185506667285e-5,7.13161973079306e-8,0.003524211505779421,-5.040730619616483e-5,7.105688273569124e-8,0.003524349502340482,-5.035813602950126e-5,7.096680808680643e-8,0.0035245122820342207,-5.039321453053906e-5,7.102455458373297e-8,0.003524729076631242,-5.0485092313253465e-5,7.1180850127246e-8,0.003525013583176288,-5.059899047337806e-5,7.137404304621766e-8,0.003525364590777378,-5.070022815478351e-5,7.154318300099117e-8,0.0035257686958330417,-5.075977742115368e-5,7.163764186847562e-8,0.003526204144558562,-5.075793251795897e-5,7.16233638631601e-8,0.003526645154897335,-5.06861406598159e-5,7.148591957241648e-8,0.003527066167471657,-5.0547118838004726e-5,7.123062042100954e-8,0.0035274455836368955,-5.03535175473795e-5,7.088014482938875e-8,0.003527768623758874,-5.012545639882056e-5,7.047021401502236e-8,0.0035280290362206864,-4.988738877980477e-5,7.004408058198917e-8,0.0035282296839363246,-4.966483945398808e-5,6.964675729891865e-8,0.003528382291270085,-4.9481325891113706e-5,6.931952735975422e-8,0.003528506567199636,-4.935546278755109e-5,6.909476075587484e-8,0.003528628724271695,-4.929815291741338e-5,6.899092748257108e-8,0.0035287791842859104,-4.9309749713025403e-5,6.900767973450815e-8,0.0035289888641371506,-4.9377284113068966e-5,6.912119895490268e-8,0.003529283256307753,-4.947268367777429e-5,6.92813827041382e-8,0.0035296742313782816,-4.955407009659888e-5,6.941439827038625e-8,0.003530151349516904,-4.957278427309963e-5,6.943511266213218e-8,0.0035306772094212354,-4.948747198735312e-5,6.92717079077621e-8,0.003531192964839601,-4.928195652942658e-5,6.889685346018671e-8,0.0035316365215482056,-4.89774365236009e-5,6.834895029601523e-8,0.003531966575744259,-4.862874958980648e-5,6.772540073203424e-8,0.0035321786442322665,-4.830377164926679e-5,6.714615431489767e-8,0.003532303511122255,-4.805750770984733e-5,6.670788672264682e-8,0.0035323910644271955,-4.7915439884981005e-5,6.645464473265158e-8,0.003532490905278016,-4.787198094158151e-5,6.637538089556046e-8,0.0035326391070453276,-4.7899603242805185e-5,6.6420465804465665E-08,0.003532853457600977,-4.79609329089279e-5,6.652335567882734e-8,0.003533134764875135,-4.801870810507902e-5,6.661826425948239e-8,0.0035334709225311187,-4.80420607780708e-5,6.6651124930788e-8,0.0035338414892082007,-4.800969554135657e-5,6.658497123133597e-8,0.003534221883309781,-4.791109649069916e-5,6.640185991590025e-8,0.0035345870911481937,-4.774650430734176e-5,6.610271983901248e-8,0.003534914922415681,-4.7525956167852065e-5,6.570564041722356e-8,0.003535188784668761,-4.726751897573049e-5,6.524278234784632e-8,0.003535399869757837,-4.699475689773158e-5,6.475593288560843e-8,0.003535548488616758,-4.673352273796198e-5,6.429082959559262e-8,0.0035356443027719678,-4.6508419457597334e-5,6.389085743601263e-8,0.003535705452163371,-4.633936348530399e-5,6.359090277517784e-8,0.0035357567090917945,-4.623851257366044e-5,6.341187165168234e-8,0.003535826730715225,-4.6207747236638295e-5,6.335626221346214e-8,0.0035359444328626815,-4.62369186224868e-5,6.340521229944e-8,0.0035361343987252193,-4.6303140463713727e-5,6.351750974087675e-8,0.0035364112077063,-4.637182901460024e-5,6.363172583245652e-8,0.0035367731674912405,-4.640084478194753e-5,6.367372155706706e-8,0.003537197303637594,-4.634911429135081e-5,6.357183762261232e-8,0.0035376391122535576,-4.618966433176537e-5,6.327964211385549e-8,0.003538041119459337,-4.592349949638268e-5,6.280007246840904e-8,0.0035383510638224264,-4.558644822183458e-5,6.219724757422401e-8,0.0035385429814836127,-4.524104977366377e-5,6.158200500178063e-8,0.0035386287865788782,-4.495389988038994e-5,6.107183348045023e-8,0.003538652157842681,-4.477026159769317e-5,6.074602879654554e-8,0.0035386688439036844,-4.47004078804151e-5,6.062170724859673e-8,0.003538726003163398,-4.4722809906257866e-5,6.065974926915645e-8,0.0035388505435425223,-4.4797903515981296e-5,6.078947944701308e-8,0.003539047874416657,-4.488281287540454e-5,6.093489620785433e-8,0.0035393068814284787,-4.4941391084842396e-5,6.103238884542969e-8,0.003539606554146499,-4.494882794965666e-5,6.103867464873075e-8,0.003539921676724328,-4.4892499760318906e-5,6.093205597538492e-8,0.003540226919719803,-4.477102781459113e-5,6.07105950251088e-8,0.0035404997394379314,-4.4592754938286915e-5,6.03893845810904e-8,0.0035407226338242614,-4.437398906963968e-5,5.999749164758063e-8,0.003540885022134315,-4.413694086471505e-5,5.957436958624628e-8,0.0035409847601478635,-4.3907158055120185e-5,5.91653320895687e-8,0.003541029039603609,-4.371029443432704e-5,5.881578782502931e-8,0.003541034222876167,-4.3568356911767184e-5,5.856451374224705e-8,0.0035410242820919035,-4.34959360356527e-5,5.843690932693798e-8,0.0035410278165807162,-4.349704460319828e-5,5.8439391136652944e-8,0.003541073866467474,-4.35631774348635e-5,5.8556051173999174e-8,0.003541186954993939,-4.367314619920436e-5,5.874856491748497e-8,0.0035413819586960823,-4.379504612211161e-5,5.895993621631804e-8,0.003541659481115643,-4.389056974908652e-5,5.9122364071120686e-8,0.0035420026717852874,-4.392188556736655e-5,5.9169501196338025e-8,0.0035423770266627625,-4.386091460591744e-5,5.9052739202674654e-8,0.003542735137307152,-4.369954534362978e-5,5.8758966934382756e-8,0.003543027709928473,-4.345726115647605e-5,5.8323693696870554e-8,0.003543219432923343,-4.318096116450492e-5,5.783045574779396e-8,0.0035433037039722254,-4.293306375151269e-5,5.7389662664115485e-8,0.003543307510625984,-4.2770211481893025e-5,5.710096925546551e-8,0.003543281657416864,-4.2722564889928e-5,5.7016803661170176e-8,0.0035432808969128654,-4.2784998811324036e-5,5.7127048886294805e-8,0.003543345083182791,-4.29237431526913e-5,5.7371094348610354e-8,0.0035434901225729534,-4.309218173774192e-5,5.766603094543882e-8,0.0035437096200434323,-4.324625449648452e-5,5.793397699501254e-8,0.003543982437111229,-4.335377416740421e-5,5.811844457672117e-8,0.003544280963361055,-4.339731616568985e-5,5.81892230593214e-8,0.003544577345674607,-4.337307492070495e-5,5.814014309175838e-8,0.0035448472547188253,-4.328818788598209e-5,5.798423922921832e-8,0.003545071945356522,-4.315800457900615e-5,5.774893393946444e-8,0.0035452395202854154,-4.300371531604833e-5,5.7471914844255585e-8,0.0035453459408502194,-4.285012265748278e-5,5.719723861116069e-8,0.0035453958923160433,-4.2723120313231096e-5,5.697084279090594e-8,0.0035454032149012556,-4.264651128545993e-5,5.683482254338785e-8,0.0035453903011499546,-4.2638151061864956e-5,5.682050114724788e-8,0.003545385835098054,-4.270593783651835e-5,5.6941284815840156e-8,0.0035454206037119564,-4.2844639289619016e-5,5.718710304786205e-8,0.003545521737679013,-4.3034763683612925e-5,5.7522579910149e-8,0.0035457064554863466,-4.3244478586494526e-5,5.7890672855239426e-8,0.0035459768841103315,-4.343484771283477e-5,5.822218243869248e-8,0.0035463175130871715,-4.35676865911608e-5,5.8449803092231185e-8,0.003546696374372438,-4.361459001005239e-5,5.852408386886376e-8,0.003547070408275864,-4.3565227278255075e-5,5.842791123349795e-8,0.0035473947092906958,-4.343266116837182e-5,5.8185596798430805e-8,0.003547634245769986,-4.3253317404532224e-5,5.786248016398101e-8,0.003547775128552845,-4.307980993012999e-5,5.755198880500784e-8,0.0035478310759871168,-4.296686019185961e-5,5.7350653828112885e-8,0.003547840931561206,-4.295416001320256e-5,5.732790326738767e-8,0.003547856465191098,-4.305323561587963e-5,5.7503072995357236e-8,0.0035479251065484753,-4.3244764513410865e-5,5.7840967381065036e-8,0.0035480755467052556,-4.3487437490787506e-5,5.82678059755974e-8,0.003548312159234838,-4.3733132149183526e-5,5.869821561074207e-8,0.003548618609759482,-4.394085957403888e-5,5.9059893258797215e-8,0.0035489665155445534,-4.4084657379925696e-5,5.930742385274079e-8,0.0035493243155301293,-4.4155064485646884e-5,5.94246850590516e-8,0.0035496635912923074,-4.415657349882108e-5,5.942017343141657e-8,0.003549962454933137,-4.4103723515838815e-5,5.932002348157367e-8,0.0035502068853032385,-4.401745537774121e-5,5.91615814739689e-8,0.0035503910919313167,-4.392223541541534e-5,5.898836758135166e-8,0.0035505176599334156,-4.3843716170544275e-5,5.884594653272736e-8,0.0035505977261718136,-4.3806355923926305e-5,5.877765373835154e-8,0.0035506509029348764,-4.38304481117814e-5,5.881923373523053e-8,0.0035507042417583052,-4.392838644885185e-5,5.8992150582505356e-8,0.003550789375607358,-4.4100629561268414e-5,5.9296460179193444e-8,0.0035509372747178996,-4.4332623510118206e-5,5.970549942120029e-8,0.0035511709877155606,-4.459455929913146e-5,6.016568287046157e-8,0.0035514981633926815,-4.4845618151110135e-5,6.060425933750863e-8,0.0035519062473257645,-4.504285818124529e-5,6.094521953949166e-8,0.003552363010141798,-4.515265199572119e-5,6.112959670344877e-8,0.0035528232538145662,-4.516091931665212e-5,6.113348597576136e-8,0.0035532400588138987,-4.5078419810363994e-5,6.097717700290937e-8,0.0035535771481694945,-4.4939099071296303e-5,6.07218955472018e-8,0.0035538186514130496,-4.479186991256323e-5,6.045492489427308e-8,0.0035539735035672354,-4.4688098423139305e-5,6.02672442098929e-8,0.0035540731748337205,-4.466810631879039e-5,6.022963420680442e-8,0.0035541630731403067,-4.475043551216551e-5,6.037388305148787e-8,0.003554289865126375,-4.4927280773815736e-5,6.068503341769779e-8,0.0035544886846951913,-4.516779476639947e-5,6.110755581298996e-8,0.0035547745839082123,-4.542805241964009e-5,6.156319330980759e-8,0.0035551408759050616,-4.5663759910920776e-5,6.197350799964669e-8,0.003555563963135248,-4.5841008864221135e-5,6.227883337795943e-8,0.0035560116876657694,-4.5941979139417047e-5,6.24482093400329e-8,0.0035564516280192447,-4.596527201117455e-5,6.24798008660841e-8,0.003556857010155012,-4.592266312849646e-5,6.239502440655055e-8,0.003557209714814007,-4.5834565631833704e-5,6.223046308066282e-8,0.003557501080364987,-4.572581403912075e-5,6.203040815733011e-8,0.0035577315537230697,-4.562240269450946e-5,6.184110140786349e-8,0.003557910036471095,-4.554903608560832e-5,6.170637764909142e-8,0.0035580533024840793,-4.552692161730423e-5,6.166368747736406e-8,0.0035581853049642667,-4.557119728743023e-5,6.173946177102266e-8,0.0035583356940717664,-4.568768485662425e-5,6.194333838364082e-8,0.0035585365708927026,-4.586927857225371e-5,6.226185510588425e-8,0.0035588166627198116,-4.609326999183041e-5,6.265390851272246e-8,0.003559193137323904,-4.632193829336071e-5,6.30520372167614e-8,0.003559663281878733,-4.650876999059089e-5,6.337362542760012e-8,0.003560200245713937,-4.661063021140253e-5,6.354254648899662e-8,0.0035607569317794813,-4.6602396654738655e-5,6.351506594055439e-8,0.003561278648384015,-4.6487494514614917e-5,6.32983887923139e-8,0.0035617199935504846,-4.6298558243764545e-5,6.29516014692535e-8,0.003562058627582537,-4.608741314362649e-5,6.256758166751812e-8,0.0035623004672044175,-4.5909078533960046e-5,6.224430829280521e-8,0.003562475581175662,-4.5806486601264316e-5,6.205760310203278e-8,0.0035626279001984354,-4.580067735294027e-5,6.204384806523509e-8,0.003562802954124633,-4.5888015756848204e-5,6.219537779330008e-8,0.003563037055132452,-4.6043654273636875e-5,6.246701201447148e-8,0.003563350070700666,-4.622932203076322e-5,6.27901620525839e-8,0.0035637427913076075,-4.6403085941301916e-5,6.309025042503193e-8,0.003564198880158738,-4.6528682381631946e-5,6.330320173165173e-8,0.0035646903766327347,-4.658232632749611e-5,6.338736538669235e-8,0.0035651848849890845,-4.6555732749513495e-5,6.332870370697999e-8,0.0035656523705938485,-4.645535269046844e-5,6.313929883122431e-8,0.0035660700713561725,-4.6298937321714985e-5,6.285117367268997e-8,0.003566425004528302,-4.611096934697695e-5,6.250815533966789e-8,0.0035667143995241142,-4.591827694533483e-5,6.215809174271331e-8,0.0035669448573334944,-4.574655007561588e-5,6.184666832943819e-8,0.0035671310343054594,-4.561778706202556e-5,6.161284724828767e-8,0.0035672942787601126,-4.554824175451044e-5,6.148516952915002e-8,0.0035674611803288114,-4.5546361387194964e-5,6.147805454901015e-8,0.003567661543033928,-4.5610385548273515e-5,6.158757512312564e-8,0.003567924912442449,-4.5725767445714075e-5,6.178702994408387e-8,0.0035682748142848095,-4.5863544983274e-5,6.202428486357496e-8,0.0035687207877180566,-4.598192357438832e-5,6.222480065079293e-8,0.0035692503506583244,-4.603366023380281e-5,6.230484445613422e-8,0.0035698255742100237,-4.597995195287227e-5,6.219611092854864e-8,0.0035703895352063105,-4.580682740172019e-5,6.187471998839677e-8,0.003570883632004423,-4.553525834522834e-5,6.137904502638934e-8,0.003571268864222055,-4.521699225352601e-5,6.080211684283172e-8,0.0035715396695708015,-4.4916408899932836e-5,6.025908338968015e-8,0.003571723198393817,-4.468799023289393e-5,5.984686372144387e-8,0.003571866379697392,-4.456067955242553e-5,5.961625196141818e-8,0.0035720191409290983,-4.453406964456066e-5,5.956536150564443e-8,0.0035722211083410766,-4.458410992868764e-5,5.965019352482582e-8,0.003572494625911943,-4.4673173061435514e-5,5.980293252365561e-8,0.0035728434568544545,-4.476028636567257e-5,5.995034390494367e-8,0.0035732552997467812,-4.480936493091201e-5,6.002839604720158e-8,0.003573706429317807,-4.479480285769821e-5,5.99920413721776e-8,0.0035741673042217212,-4.4704415364411226e-5,5.982025244393188e-8,0.0035746082437256763,-4.45398457623661e-5,5.951659167339322e-8,0.003575004335958261,-4.43147481520429e-5,5.9105889956792483e-8,0.003575338940318722,-4.405137481478573e-5,5.862814161090186e-8,0.0035756054724064797,-4.3776367002100296e-5,5.81310100746709e-8,0.0035758075061845546,-4.3516565870462726e-5,5.766237414128631e-8,0.0035759576042431298,-4.32955011747464e-5,5.726406668644314e-8,0.003576075473322457,-4.313078064462699e-5,5.696719548910158e-8,0.0035761858511276887,-4.3032185858342236e-5,5.678871564724287e-8,0.0035763162079560256,-4.300017921430965e-5,5.672876610846801e-8,0.0035764940524594456,-4.3024605140873026e-5,5.6768438605918676e-8,0.0035767432881861085,-4.30836704446525e-5,5.686814868430869e-8,0.0035770790275487753,-4.314407216803266e-5,5.6968106744896594e-8,0.0035775010573515023,-4.3164050813275044e-5,5.699394484154996e-8,0.003577987803146952,-4.310136895375068e-5,5.6870952361826546e-8,0.0035784948165471183,-4.292678335936257e-5,5.65479221696561e-8,0.003578962840272767,-4.2639405852658924e-5,5.602429479005061e-8,0.003579336851006414,-4.227498438897039e-5,5.536473452635238e-8,0.003579588685688661,-4.18979968512765e-5,5.468488805835137e-8,0.0035797296080622783,-4.1578011198993515e-5,5.4109049105691114e-8,0.0035798042114301037,-4.1363105981440804e-5,5.372259413331688e-8,0.0035798702564199783,-4.126542984896543e-5,5.354626012529212e-8,0.0035799774382410184,-4.126391236459329e-5,5.354128307652321e-8,0.003580154993927935,-4.1317791469285e-5,5.363395239974795e-8,0.003580409608935486,-4.1381581597515776e-5,5.374262013811699e-8,0.003580729783643385,-4.1415934670145685e-5,5.3797139133405634e-8,0.003581092408746188,-4.139336320909661e-5,5.3748926352074026e-8,0.003581469034566333,-4.130007224972205e-5,5.357400193982709e-8,0.0035818310034735766,-4.1135487314135264e-5,5.3271956810880735e-8,0.0035821534692491988,-4.0910476824976e-5,5.286268340386592e-8,0.003582418418358619,-4.06446935945381e-5,5.238161243589318e-8,0.0035826166797022483,-4.0363280171443215e-5,5.187384845082181e-8,0.00358274884529989,-4.009317462540421e-5,5.1387588037206476e-8,0.003582824995614943,-3.985933882274082e-5,5.096737917280055e-8,0.0035828632611508504,-3.9681384105172434e-5,5.064806914993073e-8,0.0035828875139954875,-3.957098298811167e-5,5.045014818249678e-8,0.003582924529544475,-3.953016479695639e-5,5.0376688098463605e-8,0.00358300081862799,-3.955047708564117e-5,5.0411877426842314e-8,0.0035831392261010796,-3.961300640930363e-5,5.052117648958689e-8,0.003583355214352302,-3.968931328155379e-5,5.065319072165797e-8,0.0035836526718863154,-3.974377438611344e-5,5.074407946967609e-8,0.003584019676710392,-3.973841845099247e-5,5.072633320424865e-8,0.0035844258489106545,-3.9641235948389545e-5,5.0543575221023724e-8,0.003584824176308066,-3.943762986883524e-5,5.0170788891649215e-8,0.0035851605988330357,-3.914173842671066e-5,4.963424297277142e-8,0.0035853918960880448,-3.880043670747472e-5,4.9018405921792256e-8,0.003585505322328108,-3.848249328671764e-5,4.844644654517097e-8,0.003585527515563994,-3.8253569503164206e-5,4.803549689485371e-8,0.0035855144146158527,-3.8149888897543195e-5,4.784960245800021e-8,0.0035855273906091824,-3.8166487904675314e-5,4.787887836846632e-8,0.0035856104495281117,-3.8265157169492204e-5,4.805402080142565e-8,0.0035857798816200707,-3.8393560363288984e-5,4.828082047147677e-8,0.0035860268763078557,-3.8503227747035004e-5,4.847250586230702e-8,0.003586326680961035,-3.855986372475001e-5,4.8568113786697065e-8,0.003586648121636525,-3.8546152355993225e-5,4.853728942981486e-8,0.0035869605978639182,-3.846010828728895e-5,4.837710529272839e-8,0.003587238303345829,-3.8311783073421156e-5,4.810602981932446e-8,0.0035874625495865785,-3.811982896336047e-5,4.775775329407981e-8,0.00358762304655042,-3.790829412712801e-5,4.7375493462969575e-8,0.003587718543212155,-3.7703539314087314e-5,4.700651815697953e-8,0.0035877568854504843,-3.753109690746856e-5,4.669652828927809e-8,0.0035877543189045003,-3.741240911193318e-5,4.648378792509094e-8,0.0035877337821993926,-3.736170012036886e-5,4.639348279578213e-8,0.003587722146397466,-3.738348798138e-5,4.643324183247487e-8,0.003587746637258956,-3.747117499085622e-5,4.659063494568057e-8,0.0035878308010265218,-3.760702188597041e-5,4.683321176191194e-8,0.0035879904688035855,-3.776372946249842e-5,4.7111485215557924e-8,0.0035882302134709367,-3.790765307608103e-5,4.736488113389693e-8,0.0035885407027646038,-3.800358818517712e-5,4.753047496748133e-8,0.0035888975265631912,-3.802122612155703e-5,4.755460390198331e-8,0.003589262683625903,-3.7943134492679234e-5,4.740703403510289e-8,0.003589590313060849,-3.777295305645327e-5,4.709535929441549e-8,0.0035898376636516174,-3.754070148435225e-5,4.6674180657203245e-8,0.003589979939820703,-3.730052104784748e-5,4.6240824276023414e-8,0.003590023371945228,-3.711708048632642e-5,4.5910925049693536e-8,0.0035900077501635065,-3.7042871910765236e-5,4.577784781514526e-8,0.0035899933020088546,-3.709707415007798e-5,4.587502096050476e-8,0.003590037208575344,-3.725873614994456e-5,4.6163979998570615e-8,0.0035901730111987757,-3.747812082032692e-5,4.655494611376622e-8,0.0035904033060219416,-3.769784537258867e-5,4.6944876133643913e-8,0.003590705852666982,-3.787137405914086e-5,4.725061888805473e-8,0.0035910458330059257,-3.7972004750569304e-5,4.7424881917477886e-8,0.0035913870901548824,-3.799305368319623e-5,4.7456342834723396e-8,0.003591699210907479,-3.794340612840332e-5,4.736148608065085e-8,0.0035919606768198722,-3.7842095199116786e-5,4.7174801397497153e-8,0.0035921596171359957,-3.7713708795726786e-5,4.6940568127754947e-8,0.003592293558379161,-3.758490512066759e-5,4.6706667488679346e-8,0.0035923688823323,-3.7481625279828046e-5,4.651961895285797e-8,0.0035924001126666325,-3.742650014676788e-5,4.641991343171655e-8,0.003592408782381076,-3.743612894819133e-5,4.643708427178588e-8,0.0035924214411165024,-3.751830128528744e-5,4.6584688608919025e-8,0.0035924664696293106,-3.7669705308534085e-5,4.685621045027915e-8,0.003592569774155505,-3.7874901547291835e-5,4.7223301285490726e-8,0.003592749902450613,-3.810728859606727e-5,4.763765035237718e-8,0.0035930135281971444,-3.833251364146036e-5,4.8037268016193544e-8,0.003593352477999401,-3.85142094254474e-5,4.835692293551611e-8,0.003593743318325711,-3.862124028617287e-5,4.8541211620976406e-8,0.0035941500803349773,-3.8635219635304036e-5,4.855799005285224e-8,0.0035945303054739485,-3.8556856029829644e-5,4.8409563859566875e-8,0.0035948441441678958,-3.84093266238022e-5,4.8138450958546775e-8,0.0035950652932258955,-3.823653707192244e-5,4.7823971958565097E-08,0.003595191000352243,-3.809453371200407e-5,4.7566669363102354e-8,0.003595246796889517,-3.803631027123147e-5,4.7461060314247433E-08,0.0035952816700368603,-3.809404780623166e-5,4.756396298769029e-8,0.0035953529476908017,-3.826654280703843e-5,4.7872228760978966e-8,0.0035955064360887307,-3.851914359448242e-5,4.832290540180464e-8,0.0035957614102684605,-3.8797097685212365e-5,4.8817364790469434e-8,0.0035961074408753227,-3.904519065318432e-5,4.925659081088645e-8,0.0035965125426542463,-3.922380619036841e-5,4.9569925989950274e-8,0.0035969362675940465,-3.9315732962972006e-5,4.972712682605005e-8,0.003597341109482439,-3.932441886961113e-5,4.9735041797245097e-8,0.0035976991308152764,-3.9267828750470704e-5,4.962644042986901e-8,0.0035979941492756103,-3.917176770050048e-5,4.944797265987095e-8,0.0035982212646163817,-3.906461231436291e-5,4.925073309806581e-8,0.0035983853864858173,-3.8973731332623625e-5,4.9083882869826816e-8,0.003598499705108412,-3.8923037020490345e-5,4.899027237780294e-8,0.003598584313547959,-3.893093107139329e-5,4.900272753215885e-8,0.003598664665047769,-3.900814200916675e-5,4.914012707459969e-8,0.003598769295912446,-3.91554181102269e-5,4.940325446403414e-8,0.003598926296552057,-3.936159589408526e-5,4.9771395938974046e-8,0.0035991584178781378,-3.9603052569638225e-5,5.020149262688757e-8,0.0035994774570306106,-3.9845742495034574e-5,5.063196470603437e-8,0.003599879456446016,-4.0050595060088164e-5,5.099254875986903e-8,0.0036003427551529487,-4.018188155414745e-5,5.121939647495595e-8,0.0036008305267239238,-4.021666105614067e-5,5.127201267350899e-8,0.003601298082359539,-4.015241628723848e-5,5.114683795044416e-8,0.0036017034785005065,-4.001010080325409e-5,5.0882498429844205e-8,0.0036020186446318633,-3.983102151691306e-5,5.055393791953197e-8,0.00360223784043595,-3.966773922720605e-5,5.025583994965174e-8,0.0036023807275160397,-3.957088011118183e-5,5.0078834765566855e-8,0.0036024884440489483,-3.957514576006304e-5,5.008445593779248e-8,0.003602612836630004,-3.9688759093846825e-5,5.028643421396089e-8,0.003602801507346342,-3.9890448396384285e-5,5.064559582445518e-8,0.0036030837132397233,-4.013591224250133e-5,5.1081729897139555e-8,0.0036034625787910108,-4.037175117016467e-5,5.149873123423126e-8,0.0036039164745840613,-4.0551277524241955e-5,5.181297742668326e-8,0.0036044080529050305,-4.0646004294966926e-5,5.197384946590186e-8,0.00360489619893693,-4.064945869958866e-5,5.197041780922286e-8,0.0036053460251226866,-4.0574082061552914e-5,5.182570742191499e-8,0.0036057344318386826,-4.044453999591332e-5,5.158455566701788e-8,0.0036060514579108944,-4.029075668722807e-5,5.130104481965624e-8,0.003606299011004411,-4.01424970484346e-5,5.1028778692332877e-8,0.0036064885833287518,-4.0025849226308426e-5,5.081459498933569e-8,0.003606638973317254,-3.9961099891688534e-5,5.069476213733481e-8,0.003606774332411993,-3.9961203232245695e-5,5.069221405358963e-8,0.0036069222452277806,-4.003023028212907e-5,5.081374865009258e-8,0.0036071112182922568,-4.016168303508934e-5,5.1047028727656355e-8,0.003607366963232316,-4.033714988858951e-5,5.135826999643147e-8,0.0036077072303672525,-4.0526398781894345e-5,5.169257162187404e-8,0.0036081358410376746,-4.069044856608033e-5,5.19795998409735e-8,0.00360863791472181,-4.0788768684664725e-5,5.214662964419998e-8,0.0036091792602710175,-4.079000858969095e-5,5.2137837160242114e-8,0.003609712280943959,-4.068309768113012e-5,5.1934170132578293e-8,0.0036101880918484254,-4.04838562463079e-5,5.1565076095717744e-8,0.0036105710604826644,-4.0233135214053623e-5,5.11049366675387e-8,0.0036108500263461432,-3.998610781681087e-5,5.065355467128838e-8,0.003611041677968052,-3.9796540409886596e-5,5.0307660035659015e-8,0.0036111851665100313,-3.970186618515915e-5,5.0134017422303575e-8,0.0036113304864999287,-3.971382372907988e-5,5.0152753919674675e-8,0.0036115247250119607,-3.98167918000583e-5,5.033467938084641e-8,0.0036118001491949494,-3.997345877334354e-5,5.061180843179813e-8,0.003612167114637999,-4.013564216404726e-5,5.089703004119631e-8,0.0036126132814578962,-4.025692196720492e-5,5.110687626163271e-8,0.0036131087640671185,-4.0303479742982214e-5,5.118093281193777e-8,0.0036136150876857724,-4.026034802700086e-5,5.109292725088119e-8,0.003614094856008835,-4.0132016043704154e-5,5.085165351686192e-8,0.0036145193074628326,-3.993836208888382e-5,5.0493512681573206e-8,0.003614872292763547,-3.9708210576448246e-5,5.0070825982924494e-8,0.003615150815762236,-3.947285164647236e-5,4.9640137095099506e-8,0.0036153632808230353,-3.926096931140428e-5,4.9253097195019005e-8,0.0036155267616432177,-3.909538048400595e-5,4.89506275147321e-8,0.0036156642392711075,-3.8991230807476714e-5,4.8759693003331155e-8,0.0036158021749105296,-3.895495080175904e-5,4.86914245950835e-8,0.0036159682275933073,-3.8983383111791493e-5,4.873955389149923e-8,0.003616188577386115,-3.9062911493915725e-5,4.887889729439448e-8,0.0036164842465590077,-3.9168981167351876e-5,4.906461395007111e-8,0.003616866127419069,-3.926707099410478e-5,4.9234122993500053E-08,0.003617329348913702,-3.931673398289274e-5,4.9314522167269587e-8,0.003617849150796829,-3.928001916208648e-5,4.923780665633049e-8,0.003618381798653043,-3.913360777112033e-5,4.896267227430695e-8,0.0036188735440883186,-3.888055553865431e-5,4.849554188132768e-8,0.003619276853702225,-3.855491658006466e-5,4.789873129478229e-8,0.0036195676184713646,-3.821416389457841e-5,4.7276580612196774e-8,0.0036197545025373444,-3.792090095161403e-5,4.6742254073388355e-8,0.0036198753513412853,-3.772222272857822e-5,4.6380371688515686e-8,0.0036199830801991757,-3.763623905030227e-5,4.6222755173165736e-8,0.00362012849213772,-3.7650144684676776e-5,4.624521707582522e-8,0.003620346940104583,-3.77278873639625e-5,4.6381754134727366e-8,0.0036206519317770578,-3.7822429509832206e-5,4.654694600928876e-8,0.0036210353347296935,-3.788800232657244e-5,4.6658156643896576e-8,0.0036214722356083732,-3.7889552847069945e-5,4.665250017723497e-8,0.0036219282737146377,-3.7808250334028e-5,4.6496606350338104e-8,0.003622367558528604,-3.764294604213074e-5,4.618907856043481e-8,0.003622759613618764,-3.740807222574171e-5,4.5756568470016735e-8,0.003623084197594277,-3.7129000539556704e-5,4.524531717165578e-8,0.0036233334897944123,-3.6836271033352585e-5,4.471070197478162e-8,0.003623511822352105,-3.656004150987419e-5,4.42072171491852e-8,0.003623633625770037,-3.632568696345636e-5,4.378055463898182e-8,0.0036237204746564565,-3.615095303416537e-5,4.3462496938331666e-8,0.0036237980238943072,-3.604451542869379e-5,4.326833725239851e-8,0.0036238932087061873,-3.600542881626248e-5,4.3195891834918523e-8,0.0036240316260941043,-3.6022998605292114e-5,4.322528366433578e-8,0.003624234754252283,-3.6076927455552074E-05,4.331926852948421e-8,0.0036245165668879796,-3.613800749232242e-5,4.34246123367742e-8,0.003624879311897084,-3.617023187311202e-5,4.3476066000601294e-8,0.0036253090835464646,-3.6135726391495956e-5,4.3405390637871034e-8,0.0036257732585274127,-3.6003592967351125e-5,4.315733397260209e-8,0.0036262232058954036,-3.576186980901324e-5,4.271111422394686e-8,0.003626605331546473,-3.542823247726426e-5,4.209956869519151e-8,0.003626879436036661,-3.50518579454549e-5,4.1412337399755736e-8,0.0036270365079126123,-3.470071004044956e-5,4.0772704917605835e-8,0.0036271047904969573,-3.443736111457935e-5,4.029373159298715e-8,0.0036271389316380864,-3.429581521273013e-5,4.003629528591115e-8,0.0036271983746661196,-3.427189565117347e-5,3.999186380888534e-8,0.0036273272627723543,-3.433001504928174e-5,4.009507060595036e-8,0.0036275443605000503,-3.441929039714666e-5,4.02532013146905e-8,0.003627843559349204,-3.448978456372097e-5,4.037574941419381e-8,0.0036282007307444626,-3.450355291645972e-5,4.039436204166938e-8,0.0036285824334346233,-3.443962968437811e-5,4.027168052144104e-8,0.003628953774846586,-3.4294406238919776e-5,4.000181674287031e-8,0.003629284453436167,-3.4079224683629005e-5,3.960585055025596e-8,0.00362955288864694,-3.381643465683662e-5,3.912462715686188e-8,0.0036297485036715003,-3.353465476085004e-5,3.8610171191587416e-8,0.0036298722480067286,-3.3263883330298314e-5,3.811684927278125e-8,0.003629935574821214,-3.303104643643447e-5,3.769332757952957e-8,0.003629958188257625,-3.285642390889165e-5,3.737611903004188e-8,0.003629964993502037,-3.275128511796277e-5,3.7185320702803963e-8,0.0036299828010852926,-3.271683137367501e-5,3.712271268820873e-8,0.003630037189355566,-3.274419552984249e-5,3.7171770693712e-8,0.003630149597490292,-3.281517977483511e-5,3.729903127915843e-8,0.0036303345419651353,-3.290362286671258e-5,3.7456641443449155e-8,0.0036305967997701106,-3.297753462876925e-5,3.758635247116539e-8,0.003630928513207681,-3.300252642506156e-5,3.762587782766384e-8,0.0036313068265694214,-3.294744940956532e-5,3.7519188323039196e-8,0.00363169380297549,-3.2792780456482834e-5,3.7231652891866554e-8,0.0036320412779389313,-3.254062980327011e-5,3.676798183842747e-8,0.0036323028298620714,-3.222229600651305e-5,3.618566999286661e-8,0.00363245144150968,-3.1896535693968474e-5,3.559165692670533e-8,0.003632494924818845,-3.163343128727202e-5,3.5112974053962996e-8,0.003632477752238004,-3.148784739433187e-5,3.4848610971418145e-8,0.0036324645616411712,-3.147677766139223e-5,3.4828549478256566e-8,0.003632513929295136,-3.1574620316264846e-5,3.5005434477029905e-8,0.0036326579319382944,-3.1727711619258e-5,3.528122902984301e-8,0.0036328967617592235,-3.187682011716218e-5,3.554823526809591e-8,0.0036332061434049393,-3.197502524181992e-5,3.572156454636925e-8,0.0036335495974229026,-3.1995847248725226e-5,3.575374279393732e-8,0.003633889293870905,-3.19333227910892e-5,3.563461873953822e-8,0.003634193172744235,-3.17978842240923e-5,3.538369154094479e-8,0.003634438615965457,-3.161109030916799e-5,3.504045625380042e-8,0.003634613855985011,-3.1400671454106465e-5,3.465541572534082e-8,0.003634718071699902,-3.11961575856113e-5,3.428219175465637e-8,0.003634760562279025,-3.102500639946222e-5,3.3970535921702535e-8,0.0036347591134491177,-3.0909251987672765e-5,3.376025962304962e-8,0.003634737607805422,-3.086278268132625e-5,3.367629517795057e-8,0.0036347229490649663,-3.088948453492992e-5,3.372533325761154e-8,0.003634741563228235,-3.0982560065987805e-5,3.389460784514429e-8,0.003634815901229414,-3.112512713113596e-5,3.4153020033679004e-8,0.0036349612766972193,-3.129198170965659e-5,3.4454394956192596e-8,0.003635183245992869,-3.145240784677646e-5,3.4742669582784826e-8,0.0036354757079425717,-3.1573956992053166e-5,3.495886526255861e-8,0.0036358199160614058,-3.1627212256825974e-5,3.504983415027823e-8,0.0036361849045063073,-3.159171660721317e-5,3.4979039620345153e-8,0.003636530479561921,-3.1462895172653124e-5,3.473901011215707e-8,0.0036368142578559253,-3.1258495477149596e-5,3.436280051338025e-8,0.003637003387374721,-3.102115681331883e-5,3.3928392231956515e-8,0.003637088755021439,-3.081237158304347e-5,3.35475459720963e-8,0.003637094946225761,-3.069500019812094e-5,3.333402234292594e-8,0.0036370770559699434,-3.0708848592774254e-5,3.335935424561485e-8,0.0036371013292986853,-3.085231309250355e-5,3.361973574732224e-8,0.0036372186076369544,-3.108268917674487e-5,3.4036836713625407e-8,0.0036374461301725914,-3.133543760619602e-5,3.449300493597974e-8,0.0036377666800752285,-3.154966294649507e-5,3.4877648547478624e-8,0.003638141297749838,-3.1685759118405125e-5,3.511925103365506e-8,0.0036385252843173046,-3.173024090401332e-5,3.5193980505349496e-8,0.0036388799750885084,-3.1691380373824776e-5,3.5117541386689996e-8,0.003639178463924923,-3.1591479016366276e-5,3.493096321710203e-8,0.003639406831918024,-3.145964120367891e-5,3.4687408289269027e-8,0.0036395631103395176,-3.132641488984484e-5,3.444246310972407e-8,0.003639655535314708,-3.122008096808154e-5,3.4247456211883176e-8,0.0036397006665107633,-3.1163893875378406e-5,3.414448139816457e-8,0.003639721329488939,-3.1173806420359784e-5,3.416226804857164e-8,0.0036397441644748767,-3.125655767899938e-5,3.431270209771732e-8,0.003639796568166988,-3.140832386339877e-5,3.458839076722247e-8,0.0036399030331303018,-3.161441580614675e-5,3.49621599593727e-8,0.0036400812861970703,-3.1850493516183555e-5,3.538933414193512e-8,0.0036403388783366928,-3.2085469069802425e-5,3.581309683606768e-8,0.003640670899708472,-3.228595888933305e-5,3.617266898678714e-8,0.003641059410890908,-3.242184074945234e-5,3.6413480741849684e-8,0.003641474976614793,-3.2472192397990765e-5,3.6497992784001544e-8,0.0036418804736073327,-3.243081777099901e-5,3.6415684316993066e-8,0.0036422373048892133,-3.231046066567557e-5,3.619054998193656e-8,0.003642513965287651,-3.2144261682321465e-5,3.588351146600024e-8,0.0036426959856221573,-3.198235682061668e-5,3.5586005065773693e-8,0.0036427944977556605,-3.1881697208743154e-5,3.5401356745524745e-8,0.0036428486849075714,-3.188933045907144e-5,3.5414444145402196e-8,0.0036429173685921887,-3.202403752604784e-5,3.565852233264122e-8,0.0036430596414088368,-3.226577445343364e-5,3.609629779052436e-8,0.0036433124954249867,-3.2561078847616284e-5,3.66299793816928e-8,0.0036436776177795477,-3.284337212027593e-5,3.713830880496045e-8,0.0036441242313400286,-3.3057030277970586e-5,3.7520345040000954e-8,0.0036446041810241324,-3.317277180321848e-5,3.772337507096917e-8,0.0036450692490085615,-3.3189738563198884e-5,3.7746545722749065e-8,0.003645482899676809,-3.3128175256394194e-5,3.7627357042686266e-8,0.0036458246434632187,-3.301933774306142e-5,3.7423151774873677e-8,0.003646089234413236,-3.289707990184836e-5,3.71957515176344e-8,0.003646283665094115,-3.279244336538491e-5,3.7001641525103554e-8,0.0036464239349174375,-3.273067656021924e-5,3.6886607019548715e-8,0.0036465323149864697,-3.272957018214073e-5,3.6882747854165715e-8,0.0036466349961541663,-3.279825429446103e-5,3.700630533575309e-8,0.0036467596710251142,-3.2936106766617314e-5,3.725568811188398e-8,0.0036469325807821826,-3.313193807407561e-5,3.7610026698915855e-8,0.0036471748124150484,-3.3364069240662704e-5,3.802938859382088e-8,0.003647498169133209,-3.360210126412473e-5,3.845809149088258e-8,0.0036479015316435363,-3.38109253939106e-5,3.883209072712449e-8,0.003648368986541947,-3.395689666898082e-5,3.909027582893097e-8,0.003648870921029724,-3.401521748118757e-5,3.9187927000580045e-8,0.0036493686380024244,-3.397675991479839e-5,3.91090927084104e-8,0.0036498219897588453,-3.385230235314705e-5,3.887418894134722e-8,0.0036501985693956885,-3.367263505175776e-5,3.854000701640252e-8,0.0036504824684245895,-3.348382883038354e-5,3.819088250354824e-8,0.003650680396759058,-3.333785800459016e-5,3.792145205144569e-8,0.003650822939161007,-3.3279840876376515e-5,3.781338373671198e-8,0.003650959134371577,-3.3334613467666114e-5,3.791106516073476e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_23.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_23.json new file mode 100644 index 000000000..3f54533a6 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_23.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":23000,"numberOfSamples":1000,"samples":[0.003651144035305788,-3.3496975736922465e-5,3.820410327566936e-8,0.0036514219143992843,-3.3730554777606135e-5,3.862552436820353e-8,0.0036518112676496577,-3.397791609056264e-5,3.907035721036122e-8,0.00365229870095008,-3.417907449598782e-5,3.9429383363913e-8,0.00365284489977173,-3.4290356787269744e-5,3.962343833009104e-8,0.0036533992613388363,-3.429527055965991e-5,3.962310443890886e-8,0.003653915601993734,-3.4204210437811016e-5,3.9448034728001705e-8,0.0036543625588809866,-3.404606217387052e-5,3.915149562803171e-8,0.003654726821743164,-3.385745548023324e-5,3.880065521411588e-8,0.003655011114586897,-3.367402646076845e-5,3.846060844958942e-8,0.003655229952491537,-3.352516388562213e-5,3.818482941081412e-8,0.0036554053665251193,-3.343165583497147e-5,3.8010946814686524e-8,0.0036555634966590643,-3.3404964167691095e-5,3.7959478606448984e-8,0.0036557319972541605,-3.3447035834001456e-5,3.803352192134055e-8,0.0036559377077366316,-3.355009646938942e-5,3.821840523078073e-8,0.003656203941986329,-3.3696494348695236e-5,3.848145228658821e-8,0.0036565469978612378,-3.3859223781751256e-5,3.877301569526761e-8,0.0036569720596978405,-3.4004124438745524e-5,3.9030579556823116e-8,0.003657469498455847,-3.40947073072433e-5,3.918763315500793e-8,0.003658013393850613,-3.409978236972752e-5,3.918760770228968e-8,0.0036585642841328063,-3.400250012732713e-5,3.9000338042948336e-8,0.003659077039174998,-3.380774452480385e-5,3.8635466490843415e-8,0.0036595124517896076,-3.354428513728769e-5,3.8146233975437406e-8,0.0036598488695074555,-3.325957393919969e-5,3.761980345160911e-8,0.0036600895177045143,-3.30080589998171e-5,3.7155744789631976e-8,0.0036602626699706706,-3.2836659874036776e-5,3.6839414480127626e-8,0.0036604145345912036,-3.277203283919482e-5,3.671875744486885e-8,0.003660597076071134,-3.281332359526204e-5,3.679128814107534e-8,0.0036608541980586175,-3.293230507705976e-5,3.700462952878297e-8,0.003661210012998719,-3.308093000187256e-5,3.7270537712529526e-8,0.003661662575751951,-3.320440094368456e-5,3.74888633727299e-8,0.003662185161327315,-3.325597408349231e-5,3.7574542846225874e-8,0.003662734729255613,-3.320874898829924e-5,3.747900861351535e-8,0.0036632644530644296,-3.3060666580031256e-5,3.719917570818271e-8,0.003663735688217234,-3.283177311008349e-5,3.677230797634811e-8,0.003664125550367317,-3.255600900274537e-5,3.6260899113540797e-8,0.0036644288159946347,-3.227144312843095e-5,3.573475239964142e-8,0.003664655379067319,-3.20122786606644e-5,3.525635740926294e-8,0.0036648256060508692,-3.180406776074698e-5,3.487218993328028e-8,0.0036649655917790954,-3.166186058055134e-5,3.460940215582945e-8,0.003665103342555086,-3.15901849968733e-5,3.4475849367541365e-8,0.003665265988254904,-3.158372346364206e-5,3.4461364201339914e-8,0.003665477540567749,-3.162801003528849e-5,3.4539055157405407e-8,0.0036657565338192736,-3.17000936026722e-5,3.466655892539428e-8,0.0036661130590637785,-3.176968248208968e-5,3.478820502904388e-8,0.003666545202793297,-3.180174937323968e-5,3.483986629008923e-8,0.003667035788941662,-3.1761745550580205e-5,3.475855435760227e-8,0.0036675514497473767,-3.162389916152661e-5,3.449759311569503e-8,0.003668046654744528,-3.138114071038292e-5,3.404470126419763e-8,0.0036684741721542814,-3.105261032794423e-5,3.343560777759723e-8,0.003668799974560434,-3.068345735179965e-5,3.2753539214570226e-8,0.0036690165364966303,-3.0334013759936222e-5,3.2109244036842246e-8,0.0036691474276989216,-3.0061206934846583e-5,3.160683200695938e-8,0.0036692401145173264,-2.9900241087574385e-5,3.131020806459519e-8,0.0036693503292834495,-2.9854613982101406e-5,3.122493185911916e-8,0.003669525187357138,-2.989751080207272e-5,3.1301037813817e-8,0.0036697912282753556,-2.9982013376298203e-5,3.1452001909760237e-8,0.003670149929656101,-3.0055069990531985e-5,3.15804774867729e-8,0.00367058012275416,-3.007069224005011e-5,3.160245845426072e-8,0.003671045233915078,-2.9999480736268876e-5,3.14646043020311e-8,0.00367150289146305,-2.9833136999524488e-5,3.1152343179196404e-8,0.0036719145236925356,-2.9583830819543413e-5,3.068856987855197e-8,0.0036722528819754623,-2.9279274289988172e-5,3.012451965536157e-8,0.0036725060723375516,-2.8955216659429878e-5,2.9525956515840337e-8,0.003672677754130943,-2.864755268356975e-5,2.895869275364607e-8,0.003672784291843022,-2.838594682136872e-5,2.8476927435519246e-8,0.0036728502871910297,-2.8189969093245898e-5,2.8116221838894727e-8,0.0036729039195573616,-2.8067750927584617e-5,2.7891105878276732e-8,0.0036729730472076353,-2.8016458620949784e-5,2.7795998669456532e-8,0.0036730823256591566,-2.8023639314141942e-5,2.7807699502206006e-8,0.0036732510393670506,-2.806876922500443e-5,2.7888233842029837e-8,0.0036734911388206174,-2.8124848250507907e-5,2.7987802985082756e-8,0.003673805048096844,-2.8160365318995213e-5,2.8048454388623762e-8,0.0036741831643614118,-2.8142417714421486e-5,2.800989211450284e-8,0.0036746017845311393,-2.8042014596425726e-5,2.781926303572099e-8,0.003675023305396148,-2.7842042600133794e-5,2.7445742165138232e-8,0.003675401277467576,-2.7546573380207877e-5,2.6897486202051013e-8,0.0036756920590245525,-2.718737099853137e-5,2.623340000871415e-8,0.0036758711240840844,-2.682142732552505e-5,2.555844943167183e-8,0.0036759465937811365,-2.6515692647237495e-5,2.499551903112205e-8,0.0036759605227197774,-2.6323182982489206e-5,2.464151777744949e-8,0.0036759744983032644,-2.6262593443452535e-5,2.4530039671133795e-8,0.0036760466285700347,-2.6312844659637143e-5,2.462156779143457e-8,0.0036762123044454384,-2.6424126112870143e-5,2.4824015221802194e-8,0.003676476786014314,-2.6537239075107872e-5,2.5028430559382807e-8,0.0036768192350094923,-2.6601221243758545e-5,2.5141395201407517e-8,0.0036772028513650874,-2.658386925131194e-5,2.5104237965815816e-8,0.0036775858883604795,-2.6474864491415744e-5,2.4898599976612817e-8,0.0036779306440379686,-2.6283647779182486e-5,2.4542371246482394e-8,0.003678209538973982,-2.603439997978615e-5,2.408037372138913e-8,0.003678408358108114,-2.5759783494692988e-5,2.357282896906436e-8,0.003678526948850447,-2.5494493653466036e-5,2.308351403533256e-8,0.0036785777355817883,-2.5269467883076505e-5,2.2669143006386352e-8,0.003678582593628918,-2.5107461818455048e-5,2.2371273529194018e-8,0.003678568782474355,-2.5020417507422695e-5,2.2211520779320994e-8,0.0036785647042003374,-2.500871973525351e-5,2.21902445854814e-8,0.0036785961805071692,-2.5062054156622615e-5,2.228816628316454e-8,0.003678683593958781,-2.5161266743696174e-5,2.24697994986493e-8,0.003678839813725382,-2.528068865976697e-5,2.268772363615898e-8,0.0036790686589521994,-2.5390721102639514e-5,2.28873548323344e-8,0.0036793636633603534,-2.5460766843175067e-5,2.301239734670839e-8,0.0036797070625050198,-2.5462938404665122e-5,2.3011746096490555e-8,0.0036800695540226,-2.5377224112577794e-5,2.2849032250097418e-8,0.0036804123072578534,-2.5198284596178738e-5,2.251506689142407e-8,0.003680693157902537,-2.4942526484895308E-05,2.2040681988927512e-8,0.003680878158399637,-2.4651854910035483e-5,2.150341156448466e-8,0.0036809565821238504,-2.4388619881055524e-5,2.101802531841774e-8,0.003680952179938686,-2.4218042502926116e-5,2.0704157135192892e-8,0.003680920788736872,-2.418258152607271e-5,2.063924897056901e-8,0.0036809307429876595,-2.428216159309294e-5,2.082238656290625e-8,0.0036810354111426534,-2.4473729304710523e-5,2.1173726237950885e-8,0.003681253971997315,-2.4690578711906134e-5,2.1570233191745147e-8,0.0036815697161010955,-2.4868511669727512e-5,2.1893875946001677e-8,0.00368194233743989,-2.4964629040890916e-5,2.2066135288962184e-8,0.003682324212490332,-2.496342898745231e-5,2.2059068741709067e-8,0.0036826731166814996,-2.4873277705717296e-5,2.1888636709994033e-8,0.0036829591588462465,-2.4718729832185195e-5,2.1600441398920033e-8,0.003683167023967205,-2.4532594782350245e-5,2.1255080252265367e-8,0.0036832954099022645,-2.4349370543578626e-5,2.0916081024659693e-8,0.0036833550335923348,-2.4200218198591833e-5,2.0640692551785886e-8,0.0036833658565634006,-2.410924176009306e-5,2.047307011231562e-8,0.00368335380237866,-2.4090944865297163e-5,2.0439619325797367e-8,0.0036833471475006176,-2.4148859135246296e-5,2.054650508300012e-8,0.003683372810946003,-2.4275435196936255e-5,2.07794955328708e-8,0.003683452919780664,-2.445325289733475e-5,2.110623168930102e-8,0.003683602046501696,-2.465734339942249e-5,2.1480525304410102e-8,0.003683825298735307,-2.4858264023953814e-5,2.184802813428788e-8,0.0036841172991974114,-2.5025683730293013e-5,2.2152849985111426e-8,0.0036844620856947494,-2.5132324086251992e-5,2.234486049199623e-8,0.003684833943600737,-2.5158192450841574e-5,2.2387540094785343e-8,0.0036851994497372497,-2.5095227283073492e-5,2.226654684123872e-8,0.003685521611166236,-2.495214102688181e-5,2.199854944989616e-8,0.0036857671361551635,-2.4758044853092278e-5,2.1637716007903936e-8,0.0036859169029455434,-2.4561976529873085E-05,2.127462522493109e-8,0.0036859772914223593,-2.44246555966739e-5,2.102094321803886e-8,0.0036859863765741317,-2.4400569866343113e-5,2.0976459090247287e-8,0.0036860072100742725,-2.451503865503077e-5,2.1187033549314085e-8,0.0036861059724534228,-2.4748908547852973e-5,2.1616674172997784e-8,0.003686324629094954,-2.504318975211854e-5,2.2156284356747038e-8,0.003686664486266351,-2.5323155005089623e-5,2.2668137696737203e-8,0.0036870898114569946,-2.5527244493044108e-5,2.303909962374833e-8,0.003687546149128421,-2.5624766795011134e-5,2.3213143420424893e-8,0.00368798044731879,-2.5617338941137874e-5,2.3193859568407812e-8,0.0036883539373483384,-2.5529670793774248e-5,2.3027315403045705e-8,0.0036886463867155743,-2.5397760191839542e-5,2.2780188658898496e-8,0.003688854693802478,-2.5259351496340612e-5,2.2522155643143783e-8,0.0036889891708466456,-2.5147850491353615e-5,2.231471497123031e-8,0.0036890695533378795,-2.5088946206269493e-5,2.2205016955307542e-8,0.0036891214131626097,-2.5098827308126288e-5,2.222261384963983e-8,0.0036891729137179556,-2.518329063537529e-5,2.2377841591020216e-8,0.0036892516769625227,-2.5337494371236543e-5,2.2661397865423784e-8,0.0036893816097385863,-2.554645169281843e-5,2.3045303929869593e-8,0.0036895797925711486,-2.578657672893664e-5,2.3485809567516533e-8,0.0036898538468566012,-2.6028463573269312e-5,2.392855402626147e-8,0.003690200266554174,-2.624073990187162e-5,2.431568410168666e-8,0.0036906040827712275,-2.6394652975592825e-5,2.4594312535909952e-8,0.0036910401320671615,-2.646892578198544e-5,2.4725481010514338e-8,0.0036914760290490357,-2.6454258869800837e-5,2.469246723504824e-8,0.0036918767628710283,-2.6356872170899155e-5,2.450728188668473e-8,0.003692210885339878,-2.6200462392483775e-5,2.4214168577148188e-8,0.0036924581686777775,-2.602543095805307e-5,2.388800430693621e-8,0.003692617733382483,-2.5883626505455566e-5,2.362443103435925e-8,0.0036927139953002153,-2.58271594885082e-5,2.3519158494680385e-8,0.0036927961075991973,-2.5891978747853797e-5,2.3637775773338626e-8,0.0036929267649546634,-2.6081277797364088e-5,2.398538810384016e-8,0.0036931609455419815,-2.6358161739026842e-5,2.4493348826303326e-8,0.0036935234174346435,-2.665549718890737e-5,2.5037572254635175e-8,0.003693998101314756,-2.6900775812927172e-5,2.5484402286752192e-8,0.0036945360219985063,-2.7042710855034788e-5,2.5739608547857825e-8,0.0036950760446270714,-2.7065371302568437e-5,2.57743737612283e-8,0.003695565661023816,-2.6985691375977797e-5,2.5620578062499176e-8,0.00369597274607554,-2.684069713273219e-5,2.5347080120574853e-8,0.003696287324292012,-2.667345195030066e-5,2.5033662232297028e-8,0.0036965173262114045,-2.6523010525635966e-5,2.4752456189175374e-8,0.0036966825886261623,-2.6419227346433036e-5,2.455840471365584e-8,0.003696809522700842,-2.6380986372349695e-5,2.4486064306819182e-8,0.0036969270936339123,-2.6416117172469423e-5,2.454950799475654e-8,0.0036970637745599656,-2.6521893503182198e-5,2.4743286277766767e-8,0.0036972449046433265,-2.6685737210574117e-5,2.504376987032764e-8,0.0036974900334030988,-2.6886274245188e-5,2.541115595707101e-8,0.003697810176347896,-2.7095219934198905e-5,2.5793006605434385e-8,0.0036982053804941253,-2.728057365079077e-5,2.613018555159297e-8,0.003698663356525077,-2.7411217452902692e-5,2.6365357275177697e-8,0.0036991599725369096,-2.7462484334453646e-5,2.6453253365305067e-8,0.0036996621606698965,-2.7421763096580724e-5,2.6370997112730044e-8,0.00370013328491362,-2.729281033021235e-5,2.6126029195423446e-8,0.0037005403211717563,-2.7097411250876837e-5,2.5759105766375958e-8,0.0037008616198824073,-2.6873458549975153e-5,2.534063229254157e-8,0.0037010937154705065,-2.6669054268328128e-5,2.4959623377691335e-8,0.0037012553893138378,-2.6532771677849146e-5,2.470560529795536e-8,0.003701386925754609,-2.6501162935385394e-5,2.464554459140342e-8,0.0037015427319560873,-2.65862451416973e-5,2.4800881221936585e-8,0.0037017770840136652,-2.6767600671031702e-5,2.5133175185444305e-8,0.003702126226889177,-2.6994365678892358e-5,2.5547991564237983e-8,0.003702594034496086,-2.7199503702774686e-5,2.5921361512321817e-8,0.003703149146929241,-2.7322124217394617e-5,2.6140992193989e-8,0.0037037362260185593,-2.732763109091641e-5,2.6143421934714618e-8,0.003704295665546802,-2.721607872496196e-5,2.5929372282700263e-8,0.0037047816795343263,-2.7016566312550213e-5,2.5553267597604028e-8,0.003705171555362991,-2.6773370862474705e-5,2.509745527697299e-8,0.003705465407158616,-2.6531809403462105e-5,2.4645955131628586e-8,0.0037056802842188206,-2.6328749558537203e-5,2.4266888380384873e-8,0.003705842962671197,-2.6188473724591307e-5,2.4004889346311846e-8,0.0037059839388316924,-2.6122241314280676e-5,2.3880388417301026e-8,0.0037061332623507665,-2.6129556128220352e-5,2.3892034999399584e-8,0.003706317770909461,-2.6199800840217618e-5,2.4019772205175913e-8,0.0037065589557418377,-2.6313745875571078e-5,2.4227665838511646e-8,0.003706870840343872,-2.644512355745995e-5,2.4466855843329514e-8,0.003707257688373799,-2.6562856852741105e-5,2.4679720562225874e-8,0.003707711915905993,-2.6634592082949376e-5,2.4806441695489335e-8,0.003708213120455237,-2.663186058357122e-5,2.479455939697902e-8,0.0037087294412449907,-2.6536451255494063e-5,2.4610743259413702e-8,0.003709222214515911,-2.6346543661015368e-5,2.4252099963225886e-8,0.0037096538724641567,-2.6080329046030495e-5,2.3752812169666824e-8,0.003709997524539029,-2.577492734907529e-5,2.3182040780489726e-8,0.0037102454227998637,-2.5479672505274922e-5,2.263137359655951e-8,0.0037104132986381126,-2.524481178501241e-5,2.219379012489409e-8,0.0037105385684950997,-2.5108446768208215e-5,2.1939440481081604e-8,0.003710672201591465,-2.5085405601484373e-5,2.1895121723236657e-8,0.0037108659074224157,-2.5161493732589e-5,2.2033822651041703e-8,0.0037111577917986476,-2.5295461489293446e-5,2.2278586025456243e-8,0.0037115606470070174,-2.542917933201141e-5,2.2521498478199035e-8,0.0037120571654388006,-2.5503837048517596e-5,2.2653719725711947e-8,0.003712604656330799,-2.5477070966070233e-5,2.259714366597435e-8,0.0037131481138471807,-2.5334611035146297e-5,2.232587717598007e-8,0.0037136365417578987,-2.509202414715311e-5,2.1869364929837613e-8,0.0037140360486028587,-2.4786787143587042e-5,2.1297584304020552e-8,0.0037143354755474435,-2.4465255139622436e-5,2.069678054959071e-8,0.003714544467024974,-2.4170306202152613e-5,2.0146497047207724e-8,0.003714687020580643,-2.393338515246342e-5,1.9704838425664365e-8,0.0037147941125955726,-2.3771532108372094e-5,1.9403042636394202e-8,0.0037148976705766875,-2.3687944947412868e-5,1.924662719845783e-8,0.0037150265340877417,-2.367419895466894e-5,1.9219583030809972e-8,0.003715204015883382,-2.37127525260934e-5,1.928905809182854e-8,0.0037154462776015544,-2.377915294824585e-5,1.9409457545578542e-8,0.0037157608120527794,-2.384409788521174e-5,1.9526274662557453e-8,0.0037161447586631148,-2.387597552240848e-5,1.9580823667812967e-8,0.003716583383528966,-2.384460787773986e-5,1.9517213785745727e-8,0.0037170496879362957,-2.372665990986959e-5,1.929240272445178e-8,0.003717506623292282,-2.3512366057301022e-5,1.8888665065491976e-8,0.003717913280569818,-2.3211764390501293e-5,1.832510925529357e-8,0.0037182350231976446,-2.2857213753819283e-5,1.766226069432184e-8,0.0037184549931704456,-2.2499015996168416e-5,1.69938183046161e-8,0.0037185822522199053,-2.2193400184984013e-5,1.642422937600723e-8,0.0037186520125712316,-2.1986125984029035e-5,1.6038180871423233e-8,0.0037187166025020217,-2.1897980951190913e-5,1.5873715102312037e-8,0.0037188302313518797,-2.1918094714878887e-5,1.5909975868926e-8,0.0037190333250862505,-2.200738683831528e-5,1.6073822676410523e-8,0.003719341736464505,-2.211021106517147e-5,1.6261616807192078e-8,0.003719743573072058,-2.216979978548509e-5,1.636795341593824e-8,0.0037202036700935363,-2.214280148765948e-5,1.631260873446929e-8,0.0037206737661205037,-2.2009147434640982e-5,1.6058763393847896e-8,0.0037211051970497504,-2.1775071201819367e-5,1.5618506174731158e-8,0.003721460458739193,-2.1469112666244478e-5,1.5045318183279198e-8,0.0037217205729197273,-2.113297412457324e-5,1.4417004888548999e-8,0.0037218868002361744,-2.081050254733132e-5,1.3815164650950308e-8,0.0037219772900882707,-2.0538209327698315e-5,1.3307554545741322e-8,0.003722020789722907,-2.033950176989565e-5,1.2937408851043707e-8,0.00372204987109083,-2.022296133826621e-5,1.2720322617019088e-8,0.0037220953992123298,-2.018363795951063e-5,1.2646747001885697e-8,0.0037221828649194387,-2.0205878245740093e-5,1.26873047206367e-8,0.0037223303313133104,-2.02664502220618e-5,1.2798609312135926e-8,0.003722547317866394,-2.0337344535813425e-5,1.292845264550573e-8,0.0037228339677174557,-2.0388317730423293e-5,1.3020518278734751e-8,0.003723180190839855,-2.0389705420379754e-5,1.3019629712220013e-8,0.0037235650128087322,-2.0316187736311858e-5,1.2878799919059847e-8,0.003723957027956693,-2.0152005616268402e-5,1.256897561523051e-8,0.003724317479797812,-1.9897320189773163e-5,1.2090860847159705e-8,0.0037246074892309214,-1.9573777293026863e-5,1.1485194896322013e-8,0.0037247994563825186,-1.922551672634567e-5,1.0834500081040653e-8,0.003724889413287953,-1.8911635022200557e-5,1.024891375539621e-8,0.003724903860006442,-1.8689419208005423e-5,9.834890386340725e-9,0.0037248950039658825,-1.8593936835862856e-5,9.657227552497414e-9,0.0037249241617011717,-1.8624070004157957e-5,9.713213497022367e-9,0.0037250406734058938,-1.874272347827841e-5,9.933231932671707e-9,0.003725266442256563,-1.889068343187049e-5,1.0206743013046786e-8,0.003725591957814072,-1.900639132302381e-5,1.0419161121580107e-8,0.0037259828367480837,-1.9042941445738243e-5,1.0483445088589561e-8,0.0037263919105630754,-1.8977532859680972e-5,1.0357575288150131e-8,0.0037267718541946424,-1.8812970780198845e-5,1.004722544629047e-8,0.0037270852122032435,-1.857321752592454e-5,9.597390829866145e-9,0.0037273105106150057,-1.829556589372417e-5,9.077766944676528e-9,0.0037274442822466383,-1.8021665816886436e-5,8.566019197106112e-9,0.003727499446205275,-1.7789180452793088e-5,8.132238797880786e-9,0.0037275009651962054,-1.762549477405663e-5,7.827238632585327e-9,0.003727480107433613,-1.7544324987777415e-5,7.676278027300595e-9,0.003727468693735596,-1.7545252223564655e-5,7.678260381961283e-9,0.0037274943796830745,-1.7615546114334517e-5,7.809198521585769e-9,0.0037275775048591624,-1.773333185341448e-5,8.028155894012631e-9,0.003727729461688348,-1.7871140037744037e-5,8.283855986333845e-9,0.0037279521045785026,-1.7999224672154963e-5,8.520831022886832e-9,0.0037282376812551145,-1.80885880022614e-5,8.685033780576021e-9,0.0037285690243083164,-1.8114038809190196e-5,8.729555432946514e-9,0.003728920113641478,-1.8057767593507887e-5,8.621345067804234e-9,0.0037292576952676747,-1.7913835381609194e-5,8.349624258909386e-9,0.0037295452618239825,-1.769325645659619e-5,7.935342096310923e-9,0.003729750685610381,-1.742782377238727e-5,7.438195143004906e-9,0.0037298573864923707,-1.7169070621178025e-5,6.954523489002591e-9,0.0037298756982351187,-1.6978346810287705e-5,6.598664526266755e-9,0.003729847357057938,-1.690734999300974e-5,6.466620041821976e-9,0.0037298361456615196,-1.6976011363689884e-5,6.594939654273422e-9,0.0037299052651525726,-1.716065001020904e-5,6.938856540972064e-9,0.003730092529452638,-1.7401587629302746e-5,7.386701385086378e-9,0.0037303974273488636,-1.7626624987369516e-5,7.803782958842304e-9,0.0037307856005640463,-1.7776600142330956e-5,8.080023637204767e-9,0.0037312048557727917,-1.782075236454326e-5,8.158500185359126e-9,0.0037316025984929033,-1.7758874434021704e-5,8.039315141398938e-9,0.003731938096263313,-1.7614499874872118e-5,7.76676690099454e-9,0.0037321881752387263,-1.7424800949631686e-5,7.410439462798648e-9,0.003732347832913049,-1.7230987288991442e-5,7.047285654047261e-9,0.003732427807332729,-1.7070752855394434e-5,6.747564430999931e-9,0.0037324505819447216,-1.6972951318685194e-5,6.564937105062063e-9,0.0037324456392299724,-1.695435236964585e-5,6.530439072511247e-9,0.003732444524964121,-1.701842445824136e-5,6.650238763256346e-9,0.0037324762624747466,-1.7155994000405556e-5,6.906918712508451e-9,0.003732563584080442,-1.734745000939961e-5,7.263649467205659e-9,0.003732720347862681,-1.7566052220995436e-5,7.670403442963853e-9,0.003732950305259306,-1.7781762662003478e-5,8.071102483695934e-9,0.003733247046701793,-1.796503766997897e-5,8.410658713739836e-9,0.003733594793483443,-1.8090329320746774e-5,8.641476568061361e-9,0.003733969829689655,-1.8139333953936072e-5,8.729522514097567e-9,0.0037343425695851745,-1.8104141430392796e-5,8.660245887318678e-9,0.003734680606263795,-1.7990430125363365e-5,8.444572497323546e-9,0.003734953553838489,-1.782034694147802e-5,8.124239420623847e-9,0.003735140403146867,-1.7633507226156773e-5,7.77352976095781e-9,0.003735238848109435,-1.748329459267977e-5,7.4921953391734e-9,0.003735273477531778,-1.742550583944127e-5,7.384151459049214e-9,0.0037352966592492363,-1.749922907883764e-5,7.52182191537506e-9,0.0037353759026406193,-1.7706708770883272e-5,7.908742842178216e-9,0.003735568740471046,-1.8005201420696946e-5,8.464598259716825e-9,0.003735897522340255,-1.8320262806021934e-5,9.050180658370451e-9,0.0037363400742964556,-1.8575326378219387e-5,9.522633384422312e-9,0.0037368415776035976,-1.8720037863678725e-5,9.788290822532997e-9,0.0037373380712256233,-1.874245668787921e-5,9.825363797506921e-9,0.0037377771555825133,-1.8663787364666786e-5,9.673974471483982e-9,0.0037381282616453346,-1.852433494079792e-5,9.409797508911304e-9,0.0037383834002827367,-1.8369540890756483e-5,9.117901324121186e-9,0.003738552757404369,-1.824019873721411e-5,8.874473223547163e-9,0.003738658809558917,-1.8167100505264942e-5,8.736870253285727e-9,0.003738730844138739,-1.8168783218842287e-5,8.739462794445459e-9,0.0037388003329487827,-1.8251037280980622e-5,8.892751862877826e-9,0.00373889698628947,-1.8407514500518183e-5,9.18453775255549e-9,0.0037390453516148825,-1.8621272393550024e-5,9.582855243041857e-9,0.0037392620029640536,-1.886722395403692e-5,1.0040612490717398e-8,0.0037395535311001136,-1.9115464924135617e-5,1.0501851379362463e-8,0.0037399156645016815,-1.9335279841595094e-5,1.0909231443508442e-8,0.003740333727271666,-1.949936503986908e-5,1.1211879486748627e-8,0.0037407843754003085,-1.9587781487259298e-5,1.1372730485053469e-8,0.00374123843967038,-1.9591286559904284e-5,1.1374739407503882e-8,0.003741664694071747,-1.951376722599113e-5,1.1225445494692067e-8,0.003742034426709988,-1.9373566096839915e-5,1.0959456056172562e-8,0.0037423268826330203,-1.9203348136011737e-5,1.0638143074060602e-8,0.0037425355319994974,-1.9047512251718933e-5,1.0344682395521544e-8,0.003742674153842459,-1.8955552707843683e-5,1.0171510875620036e-8,0.003742780075672932,-1.897020365172007e-5,1.0198117014107015e-8,0.003742910352084255,-1.91115247419747e-5,1.0461391980825988e-8,0.003743127236642866,-1.936274082819314e-5,1.0929372494595087e-8,0.0037434748877366456,-1.966787992300605e-5,1.1497025901544866e-8,0.0037439582292228346,-1.994830716850865e-5,1.2017239417133448e-8,0.0037445380916303205,-2.0132874757777342e-5,1.235715857869903e-8,0.003745147304945264,-2.018475709919423e-5,1.24483095139559e-8,0.003745717536123864,-2.0110039024257403e-5,1.2302602979977455e-8,0.0037462009957385913,-1.994718213155144e-5,1.1992528512288664e-8,0.003746578533952196,-1.9748112336383324e-5,1.1615631205305184e-8,0.0037468562058775336,-1.9561943110626034e-5,1.1263957057301948e-8,0.0037470568320752493,-1.942580720910747e-5,1.1006894832462288e-8,0.003747211591296955,-1.936188801722068e-5,1.0885690830408487e-8,0.0037473537091404366,-1.937798694893093e-5,1.0914592901045096e-8,0.00374751426169476,-1.9469411529319156e-5,1.1084443738119213e-8,0.003747719306811906,-1.9621107982094123e-5,1.1366715498674678e-8,0.003747987653823677,-1.98098865025236e-5,1.171772196127629e-8,0.0037483289877986337,-2.00069900657524e-5,1.2083476553019989e-8,0.0037487424409848157,-2.018133651430223e-5,1.2405790481457967e-8,0.003749216049729212,-2.0303576953806943e-5,1.262985740223278e-8,0.0037497276616432853,-2.0350656359240593e-5,1.2712744009555985e-8,0.0037502476097356495,-2.0310161881186038e-5,1.263147987969798e-8,0.0037507430698388022,-2.01836052339569e-5,1.238917732256602e-8,0.003751183640813286,-1.9987806416820744e-5,1.201762072309364e-8,0.003751547358372743,-1.975377558398845e-5,1.1575159589463945e-8,0.0037518262278624856,-1.9522888966651756e-5,1.1139487350292194e-8,0.003752030366449994,-1.9340357022812065e-5,1.0795307888503861e-8,0.003752189575101569,-1.9246075080711368e-5,1.0617115929008991e-8,0.00375235065514588,-1.926362082860626e-5,1.0648597353873207e-8,0.00375256874733072,-1.9389760757096198e-5,1.0883103913087454e-8,0.0037528923589819,-1.95889336244771e-5,1.1253515334163685e-8,0.003753345377221318,-1.9798233653190108e-5,1.1641722277737352e-8,0.003753914085684261,-1.9945444226348306e-5,1.1912441558529761e-8,0.0037545482183929373,-1.997468342657704e-5,1.1961217063101045e-8,0.003755178268860511,-1.9866841003214947e-5,1.1752664664935419e-8,0.003755740498054235,-1.9643572837075e-5,1.132790926630942e-8,0.003756196287862252,-1.9354386897528227e-5,1.078027677361611e-8,0.0037565380292510645,-1.9056473937833167e-5,1.02173374524946e-8,0.003756783287516352,-1.879808625982981e-5,9.729641408606765e-9,0.003756964059188642,-1.8610299848009276e-5,9.375278483928095e-9,0.0037571168822495586,-1.850601029274588e-5,9.178087064121487e-9,0.0037572761536310796,-1.8482743679660896e-5,9.133032553034088e-9,0.003757470458105261,-1.8526444575679007e-5,9.213386299761704e-9,0.003757720726876309,-1.8614862202039136e-5,9.377117285257808e-9,0.0037580391353763576,-1.8720347719301517e-5,9.572164083264661e-9,0.0037584281701537876,-1.88124868526117e-5,9.741392613497707e-9,0.003758879845331222,-1.886115999095588e-5,9.828343171502811e-9,0.003759375547369298,-1.884045521805883e-5,9.784556157303305e-9,0.0037598873171901443,-1.8733336140393533e-5,9.578297218737537e-9,0.0037603812993048536,-1.8536245409891986e-5,9.20316322759362e-9,0.003760823522734917,-1.826223272290799e-5,8.683933253519903e-9,0.0037611872682305502,-1.794102306496649e-5,8.07668074991078e-9,0.003761460322951104,-1.761495849043393e-5,7.461118830695648e-9,0.003761649939215854,-1.7330967802997768e-5,6.925453527388214e-9,0.003761783669047966,-1.7130080930370736e-5,6.546618226195867e-9,0.0037619052215471355,-1.7036850169632218e-5,6.370380696093653e-9,0.0037620655927134623,-1.7051287457088965e-5,6.396265383341771e-9,0.0037623107889809214,-1.7145824206739997e-5,6.571987750426438e-9,0.0037626686506996173,-1.7269316797664524e-5,6.8011328521040325e-9,0.0037631385620556235,-1.7358826009662052e-5,6.965369983083214e-9,0.003763688525936491,-1.735727517214488e-5,6.957620478797519e-9,0.0037642627046168722,-1.7231514285195872e-5,6.7159383377332736e-9,0.003764798192409383,-1.6983144070799588e-5,6.243784790204022e-9,0.003765244475384821,-1.6646684177942917e-5,5.606514320308481e-9,0.003765577041731878,-1.6276113749033035e-5,4.905976489211403e-9,0.0037658001496303955,-1.5926872483978327e-5,4.246574565661419e-9,0.003765940043113608,-1.5641428521669665e-5,3.7080826046676444e-9,0.0037660339883212393,-1.5442580188857785e-5,3.3330932819261697e-9,0.0037661202972565054,-1.533378212849883e-5,3.1277370664346276e-9,0.0037662317987403426,-1.530331931720143e-5,3.0696368494463564e-9,0.00376639269783391,-1.5329353706236113e-5,3.117459743615627e-9,0.0037666175999535394,-1.5384239766858776e-5,3.2190461479142756e-9,0.003766911424015544,-1.5437798596845338e-5,3.3175546155956647e-9,0.0037672694199051165,-1.5460010735471215e-5,3.3565118674225895e-9,0.003767677144880793,-1.5423844881946676e-5,3.285127707090549e-9,0.0037681108405431198,-1.5308808573030386e-5,3.0649759961602738e-9,0.00376853909328297,-1.5105335091860154e-5,2.678249819012819e-9,0.0037689267978603287,-1.4819271966290807e-5,2.1362017496681052e-9,0.0037692419464796334,-1.4474679157593949e-5,1.4843891964449467e-9,0.003769464408607395,-1.4112525842013234e-5,8.001758661740843e-10,0.0037695940570376656,-1.3783562552421724e-5,1.7924187200268179e-10,0.003769654513644912,-1.3535943066435279e-5,-2.877953882684514e-10,0.003769689655352273,-1.3401132828683478e-5,-5.419454827697908e-10,0.0037697528877103145,-1.3383352936094304e-5,-5.756719343471206e-10,0.0037698924838657317,-1.3456848768446041e-5,-4.379133873754168e-10,0.0037701379529232566,-1.3572133855236433e-5,-2.2219011005250034e-10,0.0037704917152187136,-1.36690613658659e-5,-4.190341608565942e-11,0.003770928286669406,-1.3692704936665648e-5,-4.184426881656405e-13,0.003771400984222682,-1.360764722503169e-5,-1.6419689144365008e-10,0.0037718542846100875,-1.3406801484918508e-5,-5.462400593197952e-10,0.0037722383742051645,-1.3112239502991186e-5,-1.1045888736203505e-9,0.0037725215280944423,-1.2767820548965187e-5,-1.756277314541145e-9,0.003772696517123917,-1.2426225277517897e-5,-2.4018373226817705e-9,0.003772779492258509,-1.2135018031827889e-5,-2.9516198186066968e-9,0.0037728027992608884,-1.1926333275018554e-5,-3.345233937647147e-9,0.003772805248437262,-1.1812618336310583e-5,-3.559509949169215e-9,0.0037728234022769208,-1.1787985186950563e-5,-3.605855082757096e-9,0.003772885871274732,-1.1832888997680663e-5,-3.5213519611769673e-9,0.0037730107830056705,-1.1919671821302818e-5,-3.3582733409701644e-9,0.0037732054834411486,-1.201738319949041e-5,-3.1750111515168823e-9,0.0037734672788120238,-1.2095393134790393e-5,-3.029308059715573e-9,0.0037737843623683997,-1.2126141515841897e-5,-2.9731078275435696e-9,0.0037741366633792803,-1.2087713479066177e-5,-3.0477005332985616e-9,0.0037744969434948855,-1.1966854684521575e-5,-3.2780044851181107e-9,0.0037748329505799573,-1.1762652811277419e-5,-3.665584516120736e-9,0.0037751117090649177,-1.1490296257088035e-5,-4.1815534879312055e-9,0.003775306671071242,-1.1183066734645489e-5,-4.762857357367671e-9,0.0037754069823609203,-1.0889694911885241e-5,-5.3173572358538974e-9,0.0037754256798606545,-1.0664706834353456e-5,-5.742147928915882e-9,0.003775401726689244,-1.0552455653838138e-5,-5.953742048116789e-9,0.003775391866454253,-1.0570337492320954e-5,-5.9196954740658214E-09,0.0037754533346908404,-1.069965404964022e-5,-5.6757115830877735e-9,0.0037756245234761812,-1.0889973474384802e-5,-5.3172574611983255e-9,0.0037759125769722722,-1.1075505491388981e-5,-4.9685789284492975e-9,0.0037762927653174714,-1.119569145297422e-5,-4.743856103245313e-9,0.0037767180710236953,-1.1211551456236634e-5,-4.716422581730153e-9,0.0037771336262513635,-1.1113289439129748e-5,-4.904484620551893e-9,0.0037774906920141566,-1.0919093669290008e-5,-5.273435637376515e-9,0.0037777568305629415,-1.0667562119560446e-5,-5.750186818487831e-9,0.0037779208867569462,-1.0406866195721732e-5,-6.243650787702565e-9,0.003777992767016646,-1.018352746019933e-5,-6.665958168127169e-9,0.0037779989182269913,-1.0033140590648544e-5,-6.949989656900959e-9,0.0037779751011073896,-9.97469904417571e-6,-7.060078675057539e-9,0.0037779584786724603,-1.0009194292538516e-5,-6.994608417451776e-9,0.0037779809048557934,-1.0121958368840203e-5,-6.781516708789922e-9,0.0037780645720082466,-1.0287344353781977e-5,-6.469394097223917e-9,0.003778220234630747,-1.047413085648688e-5,-6.1172540917545026e-9,0.003778447456985994,-1.0650388607779883e-5,-5.785368244403539e-9,0.003778735979536752,-1.078723859059365e-5,-5.528224279977244e-9,0.0037790674522738318,-1.086163687447547e-5,-5.3893085312301e-9,0.0037794172242492487,-1.0858682366088469e-5,-5.396741791551607e-9,0.003779756331525049,-1.0773944571270184e-5,-5.55883105247937e-9,0.0037800542820276006,-1.0616049404699768e-5,-5.859127603922072e-9,0.0037802835715694304,-1.0409041615552987e-5,-6.251958361016585e-9,0.0037804265587483227,-1.019284428731572e-5,-6.661632999833887e-9,0.0037804839392265306,-1.0019107510829138e-5,-6.990419724209726e-9,0.003780481632655872,-9.940027335123063e-6,-7.139785874260027e-9,0.003780470551458204,-9.990760852975178e-6,-7.043636122099973e-9,0.0037805145003715693,-1.0171924492472818e-5,-6.701260118724001e-9,0.0037806679024364473,-1.0443026877787217e-5,-6.189548974586507e-9,0.003780953749669685,-1.0734040814978671e-5,-5.640990002948598e-9,0.003781354446672115,-1.0970848138577473e-5,-5.195569712053512e-9,0.0037818202123343133,-1.1100878236964057e-5,-4.952398320323635e-9,0.0037822885451625726,-1.1106690075405191e-5,-4.9441331682067115e-9,0.0037827037918562686,-1.1004732221553931e-5,-5.139393429677356e-9,0.003783029580921028,-1.083450210581651e-5,-5.463297256101165e-9,0.0037832528926456414,-1.0645014240624529e-5,-5.8230619263333884E-09,0.003783382008619057,-1.0483107839539345e-5,-6.130107278142606e-9,0.0037834411521074293,-1.0385293670330903e-5,-6.315462602182711e-9,0.003783463866855065,-1.0373167422302901e-5,-6.338434431871988e-9,0.003783486346677699,-1.0451924135314523e-5,-6.1894075059543604e-9,0.0037835415059761126,-1.0611498941792025e-5,-5.887657773983901e-9,0.0037836543994592214,-1.0829747870240204e-5,-5.475280541301254e-9,0.0037838393893894684,-1.1076912436351042e-5,-5.00868499477498e-9,0.0037840991940355684,-1.1320547095963303e-5,-4.549244861849569e-9,0.0037844256115939245,-1.1530111692398709e-5,-4.154636535393267e-9,0.003784801380528869,-1.168067724546158e-5,-3.871892905681978e-9,0.0037852026131201958,-1.1755664641185652e-5,-3.732277813199833e-9,0.0037856015155439153,-1.1748839795853997e-5,-3.747515652641209e-9,0.003785969367532291,-1.166580442859177e-5,-3.906921033511718e-9,0.00378628001510182,-1.1525110745466617e-5,-4.175235589964458e-9,0.003786514449205436,-1.1358637205725354e-5,-4.491921267897067e-9,0.0037866667919770496,-1.1209875032777431e-5,-4.774493370527981e-9,0.0037867507548969247,-1.1128029735137191e-5,-4.929817589830909e-9,0.0037868036489551913,-1.1156279232741838e-5,-4.8764159931144795e-9,0.0037868831215570773,-1.1315159538627571e-5,-4.575860551166065e-9,0.0037870524179700496,-1.1587432273622035e-5,-4.061235434398263e-9,0.0037873563096598654,-1.1915434657407038e-5,-3.441960618087722e-9,0.0037877994416602927,-1.2218268853877623e-5,-2.871179678081107e-9,0.00378834159065941,-1.2422814649923206e-5,-2.4871089224278254e-9,0.0037889140278449785,-1.249102829822317e-5,-2.361451809750297e-9,0.0037894464319104034,-1.2428832387716597e-5,-2.4826372919214795e-9,0.003789888854569995,-1.2276000741283246e-5,-2.775033513542293e-9,0.003790220598166225,-1.2087372015433666e-5,-3.13458685349092e-9,0.003790447689810322,-1.1915907774812648e-5,-3.4609407828149515e-9,0.0037905948035725874,-1.1802236082212254e-5,-3.6772233896817644e-9,0.003790696401172688,-1.1770385986698964e-5,-3.73808626895047e-9,0.003790789335206898,-1.1827575732369238e-5,-3.6300747743801807e-9,0.003790907337032187,-1.1966138926110403e-5,-3.3679632150517645e-9,0.0037910770946163676,-1.2166553303929558e-5,-2.9889909055131355e-9,0.0037913156361942314,-1.2401135693384962e-5,-2.545809144827838e-9,0.0037916289168516333,-1.263815898674036e-5,-2.0986190900712304e-9,0.0037920116463947694,-1.2846175399722612e-5,-1.7069510131467538e-9,0.0037924484233062025,-1.299819527970367e-5,-1.4217770124520617e-9,0.0037929160329965078,-1.3075228465631499e-5,-1.2788768709480869e-9,0.0037933865555892653,-1.3068858631174979e-5,-1.294030013439374e-9,0.0037938309814365434,-1.2982776331081918e-5,-1.4601266957738199e-9,0.0037942231481280977,-1.283322743822306e-5,-1.7462770627408988e-9,0.003794543866539171,-1.2648304256008901e-5,-2.0991058430070644e-9,0.003794785242433129,-1.2465858940810928e-5,-2.4467144889246194e-9,0.0037949550625008244,-1.232927438422763e-5,-2.7067816859225326e-9,0.003795080187817642,-1.2279927284374798e-5,-2.8009626097236014e-9,0.0037952065161867134,-1.2345871523227187e-5,-2.6763892980301933e-9,0.0037953921373555235,-1.2528542983790664e-5,-2.3307936469979733e-9,0.0037956913857025054,-1.2793157015980988e-5,-1.8305356927816436e-9,0.003796132776286854,-1.3071563213552118e-5,-1.3050406169510527e-9,0.0037967017325761278,-1.328280143626571e-5,-9.077926254452141e-10,0.0037973411548898497,-1.3364516232244082e-5,-7.568234874396928e-10,0.0037979727650269374,-1.3297561018064426e-5,-8.881042448926196e-10,0.003798527090663047,-1.3109356495992466e-5,-1.2492122368724608e-9,0.003798964917021712,-1.28570520619648e-5,-1.7313517826797332e-9,0.0037992820034057637,-1.2603783737617608e-5,-2.2145093402545987e-9,0.003799500926082306,-1.240063635168012e-5,-2.6017407417391375e-9,0.0037996585584883936,-1.2278587025970907e-5,-2.8344302677579545e-9,0.0037997952173949366,-1.2248205620853774e-5,-2.892780987975255e-9,0.0037999474748775944,-1.2303191954665917e-5,-2.789037696090718e-9,0.003800144171209063,-1.2424890429828608e-5,-2.5588855394347242e-9,0.0038004044225855666,-1.2586549203308632e-5,-2.2533402981175947e-9,0.003800736709459013,-1.2757180681021012e-5,-1.9313801867040904e-9,0.0038011386726849684,-1.2905234943333781e-5,-1.6529274004774604e-9,0.0038015976307220777,-1.300228941643676e-5,-1.4718298071475957e-9,0.0038020920655212837,-1.3026745702081325e-5,-1.4288825387251392e-9,0.0038025942999659027,-1.2967137471847075e-5,-1.5456250913598982e-9,0.0038030742779153713,-1.2824453504739554e-5,-1.8199956009474816e-9,0.0038035040835843223,-1.2613005619355985e-5,-2.224696148359336e-9,0.003803862725819495,-1.2359515273662385e-5,-2.7088896073266286e-9,0.0038041406058219682,-1.210021971862752e-5,-3.203654961905564e-9,0.003804343039903815,-1.187601536262798e-5,-3.6312222314006306e-9,0.0038044921992625045,-1.172572264151848e-5,-3.9178384073525195e-9,0.00380462650870891,-1.1677577510893996e-5,-4.010014190249887e-9,0.0038047960105914956,-1.1739750231113836e-5,-3.892553967922982e-9,0.0038050522524015824,-1.1892359741202971e-5,-3.603641811340095e-9,0.0038054328722651374,-1.2085474055587181e-5,-3.238495369877979e-9,0.003805944893983198,-1.224821847258572e-5,-2.931950879082715e-9,0.003806555314129275,-1.2310374852742212e-5,-2.8173999266934114e-9,0.003807197680863527,-1.2229146407934576e-5,-2.9759540232212596e-9,0.0038077950074467274,-1.2006673466743497e-5,-3.4031768325958983e-9,0.003808287639007238,-1.1687444632760447e-5,-4.014049779331443e-9,0.003808650970431554,-1.1338022030420527e-5,-4.681632012604156e-9,0.003808896131037573,-1.1022265614456972e-5,-5.284306129734353e-9,0.0038090582406506883,-1.0784417102233183e-5,-5.738002868905132e-9,0.0038091815513970188,-1.0643809594594406e-5,-6.006202185145872e-9,0.003809307974440942,-1.0597903969188504e-5,-6.094047127429888e-9,0.0038094707196667066,-1.062865600428072e-5,-6.036147477861492e-9,0.0038096919065528753,-1.070881560223071e-5,-5.8845641294033734e-9,0.003809982306819115,-1.0806887438420577e-5,-5.699365884995947e-9,0.003810341878982876,-1.0890883083801036e-5,-5.541482188826337e-9,0.003810760558410313,-1.0931470433055232e-5,-5.466698369518253e-9,0.003811219360612792,-1.0905036479831683e-5,-5.5198308461602985e-9,0.003811692191355198,-1.0796853778255012e-5,-5.728734249431048e-9,0.0038121488378866334,-1.0604042188757008e-5,-6.098714331775193e-9,0.0038125593293713445,-1.0337543772812268e-5,-6.608803289335694e-9,0.003812899313522184,-1.0022178567600895e-5,-7.211652084835195e-9,0.003813155569947561,-9.694053505107579e-6,-7.838435889364233e-9,0.003813330410478557,-9.395101236701062e-6,-8.409236512806301e-9,0.0038134436413059824,-9.165292526420089e-6,-8.847896464769259e-9,0.0038135310890633975,-9.033789295919845e-6,-9.098924795496566e-9,0.0038136392405932478,-9.010703935907942e-6,-9.143237881021444e-9,0.0038138161247166904,-9.081404582108e-6,-9.008993457535895e-9,0.003814099382214336,-9.205645720023213e-6,-8.773169562587337e-9,0.0038145038512597245,-9.323767143029389e-6,-8.549656250554983e-9,0.003815012795942145,-9.370894020933878e-6,-8.462137200027408e-9,0.0038155779477628124,-9.29673571143693E-06,-8.606350895718982e-9,0.0038161315938342274,-9.08397255339519e-6,-9.015063906599803e-9,0.0038166080185463146,-8.755923206484596e-6,-9.64348405426532e-9,0.003816965037754244,-8.368207760136484e-6,-1.0385219024877421e-8,0.003817195248806939,-7.988222530295059e-6,-1.1111520776134655e-8,0.0038173229340541176,-7.673167559394442e-6,-1.1713278449963451e-8,0.0038173910001939285,-7.456361956860252e-6,-1.212711923818663e-8,0.0038174460930694254,-7.344703089557365e-6,-1.234016488954878e-8,0.0038175278039535875,-7.323953104584782e-6,-1.2379836417372083e-8,0.00381766349450458,-7.3667834734719346E-06,-1.2298441630227018e-8,0.003817867345920316,-7.44006181186134e-6,-1.2159268639340678e-8,0.003818141527292887,-7.510114938000029e-6,-1.2026573341010378e-8,0.003818477933177015,-7.546220680736763e-6,-1.1958946292781465e-8,0.003818859819405176,-7.523169308927341e-6,-1.2004439996582582e-8,0.0038192634063506886,-7.4236603910782554e-6,-1.2196000644852678e-8,0.0038196599709800997,-7.2408663983656445e-6,-1.254657877456703e-8,0.003820019070571289,-6.980898470168708e-6,-1.3044426574530458e-8,0.0038203132898458427,-6.664287919255013e-6,-1.3650268900585339e-8,0.0038205242460868597,-6.325154432293589e-6,-1.4298887743684189e-8,0.0038206486164603457,-6.006817141678243e-6,-1.4907506500728048e-8,0.0038207020750147184,-5.75354803338733e-6,-1.5391558345619086e-8,0.0038207189146382747,-5.599839594091006e-6,-1.568521212544733e-8,0.0038207461938191602,-5.560151445206347e-6,-1.5760970711142652e-8,0.00382083315281559,-5.622636517693993e-6,-1.5641635859755003e-8,0.003821018492077559,-5.749455228146534e-6,-1.5399662200224305e-8,0.0038213190875863523,-5.884391306755396e-6,-1.5142562499287096e-8,0.0038217235693960125,-5.966361142703782e-6,-1.4987076158289204e-8,0.0038221931563597426,-5.9456270845393625e-6,-1.502819170366169e-8,0.0038226704818977797,-5.798272337779563e-6,-1.531149257821805e-8,0.0038230947974088572,-5.5340664292121286e-6,-1.581812655956149e-8,0.0038234191450172406,-5.194116998158923e-6,-1.6469310260958883e-8,0.003823623312951976,-4.838285790666961e-6,-1.7150435861376128e-8,0.0038237175482825378,-4.526986941152714e-6,-1.7745939341755873e-8,0.0038237362016777052,-4.3046651521168036e-6,-1.8170927741837015e-8,0.003823725137708133,-4.1908453164058315e-6,-1.8388262055022257e-8,0.003823728754133948,-4.180212251173304e-6,-1.8408322336149633e-8,0.0038237809830387044,-4.2490079943162265e-6,-1.8276693046141356e-8,0.0038239015028385787,-4.363551982793333e-6,-1.8057833412152605e-8,0.003824095946593768,-4.487740674388706e-6,-1.7820751134813358e-8,0.003824358126063857,-4.588281903972761e-6,-1.7629039709488436e-8,0.0038246727136478013,-4.637862217435199e-6,-1.753487003336477e-8,0.003825017627068585,-4.61711276381841e-6,-1.7575256806811815e-8,0.003825366118825118,-4.516259894351772e-6,-1.7768895996776932e-8,0.0038256891088083935,-4.336919177129825e-6,-1.8112701958105336e-8,0.0038259584950023394,-4.093846046758095e-6,-1.8578421203903003e-8,0.00382615197722384,-3.815735474025295e-6,-1.9111084395452904e-8,0.0038262592364493595,-3.543489200549398e-6,-1.963234108463913e-8,0.0038262880282502877,-3.3242349858685718e-6,-2.005195595532296e-8,0.0038262672917729517,-3.200584377536259e-6,-2.0288421016364784e-8,0.0038262439982333636,-3.197318624244381e-6,-2.029444817156697e-8,0.003826272400189211,-3.3105522427901474e-6,-2.0077656752741834e-8,0.0038263982363601133,-3.505059768382942e-6,-1.9705603558615896e-8,0.003826643866615569,-3.7224637285441357e-6,-1.929005491723827e-8,0.003827000550067141,-3.897808129259171e-6,-1.8955276671465806e-8,0.0038274307773840765,-3.9781801362031975e-6,-1.8802446818552187e-8,0.0038278791501668245,-3.936838386802747e-6,-1.8882656721060616e-8,0.003828287511464482,-3.7789936758587133e-6,-1.91858484343628e-8,0.003828609599833306,-3.538639788532877e-6,-1.9646859993872794e-8,0.0038288214789188135,-3.2682591437941436e-6,-2.01651251887211e-8,0.0038289254924217973,-3.0247269062595245e-6,-2.0631684713590868e-8,0.0038289472814131997,-2.855414110560565e-6,-2.0955834728401942e-8,0.0038289273259179074,-2.788188187669053e-6,-2.108429624581785e-8,0.0038289100096469695,-2.827593307999e-6,-2.100851341943847e-8,0.0038289336504991763,-2.957270847791984e-6,-2.0759969177050435e-8,0.0038290239989857604,-3.1466075062872564e-6,-2.0397397678011425e-8,0.0038291919363631554,-3.358735621529485e-6,-1.9991428033826533e-8,0.0038294345412146105,-3.5575484015966483e-6,-1.9611153660184545e-8,0.0038297379974115684,-3.7126062375014595e-6,-1.931477643950267e-8,0.0038300809546290265,-3.8019422327944494e-6,-1.9144289526878937e-8,0.003830437556664625,-3.813471476213471e-6,-1.9122815383613343e-8,0.0038307800423785735,-3.7458453013279217e-6,-1.925296167705247e-8,0.0038310813355700818,-3.6092600087004904e-6,-1.951522260747604e-8,0.003831318289772106,-3.4261620143933223e-6,-1.9866570427390518e-8,0.0038314761727888578,-3.2310651372663914e-6,-2.024078705408704e-8,0.003831554328173983,-3.067891478985199e-6,-2.0553606536838275e-8,0.00383157155253598,-2.9829338185445362e-6,-2.071629056719002e-8,0.0038315679388297268,-3.0127134004410304e-6,-2.0658964500687748e-8,0.0038315991481782685,-3.1692879484097765e-6,-2.0358751628086406e-8,0.0038317214021556132,-3.429727904878386e-6,-1.9859827008455862e-8,0.0038319713636641617,-3.7377031114383478e-6,-1.9270251199510938e-8,0.003832350581616624,-4.0199454376947184e-6,-1.8730381252591345e-8,0.003832823444733821,-4.211063811726861e-6,-1.8365375552540856e-8,0.0038333298168283644,-4.2746105018214276e-6,-1.82449115700899e-8,0.0038338051698647065,-4.211439514210527e-6,-1.8367216874901712e-8,0.003834198761806769,-4.0546278942909735e-6,-1.8668806860764246e-8,0.003834484151940069,-3.856273197654131e-6,-1.9049773936193798e-8,0.0038346613147808603,-3.6724518049993973e-6,-1.940260611015573e-8,0.0038347524550533677,-3.550605899014387e-6,-1.9636361789940677e-8,0.0038347942577808274,-3.52127028068912e-6,-1.969253972068335e-8,0.0038348288874075678,-3.5944825007219915e-6,-1.9551978029488838e-8,0.0038348954913967792,-3.7604912766397788e-6,-1.9233502467926943e-8,0.0038350235792819626,-3.9939514459539405e-6,-1.8785861778853742e-8,0.0038352291926199416,-4.260277158951203e-6,-1.8275496622939114e-8,0.003835514073341714,-4.522523088560736e-6,-1.7773291753942183e-8,0.0038358673369616493,-4.7473979554075516E-06,-1.7343025332758908e-8,0.0038362687210526454,-4.9095732722181525e-6,-1.7033139263666595e-8,0.00383669236799276,-4.99408908331157e-6,-1.6872194841765404e-8,0.003837110381916312,-4.997253315309627e-6,-1.6867206012024054e-8,0.0038374959397268127,-4.926686817006647e-6,-1.7003556999435392e-8,0.003837826168240292,-4.800973729438346e-6,-1.724561889505605e-8,0.0038380852198412027,-4.64897087800454e-6,-1.7538006826362915e-8,0.0038382680055769084,-4.508244405378731e-6,-1.780856000998818e-8,0.0038383845372422826,-4.4213473667315845e-6,-1.7975542156029803e-8,0.0038384635487548452,-4.428331072852901e-6,-1.7962111992879813e-8,0.003838552412999034,-4.554891468079644e-6,-1.7719129920892407e-8,0.003838709449637709,-4.79857611780019e-6,-1.7251579776228027e-8,0.003838986727658379,-5.120008018211622e-6,-1.6635275122453434e-8,0.0038394080255532118,-5.448208410521412e-6,-1.6006525398447498e-8,0.0038399539523913803,-5.703228860578149e-6,-1.5518689679738132e-8,0.003840565607656355,-5.826728491288216e-6,-1.5283563189269852e-8,0.0038411666084649057,-5.803303992373885e-6,-1.5330502316579828e-8,0.003841690669226006,-5.6615015185918996e-6,-1.5604511736937722e-8,0.0038421002535852433,-5.457713918832178e-6,-1.5997183329700725e-8,0.0038423907809453407,-5.254822630049416e-6,-1.6387728287251544e-8,0.003842584084612968,-5.1054363205735894e-6,-1.6675159725889587e-8,0.0038427176193724898,-5.043044755021766e-6,-1.6795248365588627e-8,0.003842834018332966,-5.07989312250766e-6,-1.6724578044920652e-8,0.003842972942410085,-5.209054269116863e-6,-1.6476567824802356e-8,0.0038431654789848045,-5.4086399567047076e-6,-1.60933997922233e-8,0.00384343077449617,-5.647036470412883e-6,-1.563595510392797e-8,0.00384377466746861,-5.888566057774086e-6,-1.5172890552403953e-8,0.003844190175581018,-6.098988812967744e-6,-1.477000694122479e-8,0.0038446595948861905,-6.250255466342545e-6,-1.4481091439427506e-8,0.003845157818995818,-6.324023724179862e-6,-1.4341201409106802e-8,0.0038456562996112983,-6.313615647304992e-6,-1.4362989566193652e-8,0.003846127011783707,-6.224437602563978e-6,-1.4535971378501742e-8,0.003846546039512686,-6.073206328661482e-6,-1.4828020425045514e-8,0.0038468967151338742,-5.886318244836747e-6,-1.518844046641186e-8,0.0038471724104394123,-5.6974965543184785e-6,-1.5552409101517088e-8,0.0038473791476006172,-5.544524492413738e-6,-1.5847232591313744e-8,0.0038475379016441485,-5.464345014145458e-6,-1.6001824499551356e-8,0.0038476855030219305,-5.485613097100651e-6,-1.596112434254084e-8,0.003847871879727775,-5.6186931393504005e-6,-1.5705383768277254e-8,0.0038481508803807564,-5.845389848453475e-6,-1.526986177286528e-8,0.003848563503714657,-6.114171536753636e-6,-1.4753886498476955e-8,0.0038491178160156275,-6.348715588209728e-6,-1.4304328128888127e-8,0.0038497770085141143,-6.472740813382431e-6,-1.4067840281603289e-8,0.0038504673064347367,-6.441502007513236e-6,-1.4130328256331074e-8,0.0038511053849232322,-6.261082594443713e-6,-1.4479857491646347e-8,0.003851629844832358,-5.983091492067725e-6,-1.5016874116127136e-8,0.003852018859395578,-5.680152288202065e-6,-1.5601434430578248e-8,0.0038522882875718684,-5.418923444947771e-6,-1.6105201466218447e-8,0.0038524776393092323,-5.243503092060938e-6,-1.644339124890214e-8,0.0038526343526436983,-5.171293042120779e-6,-1.658266798991624e-8,0.0038528022610099396,-5.196803821713961e-6,-1.6533754071038998e-8,0.003853015203081441,-5.2983925912731155e-6,-1.6338444310091512e-8,0.003853294442269686,-5.444945618229092e-6,-1.6056762373860484e-8,0.0038536482567425854,-5.601504835855946e-6,-1.5756133822008962e-8,0.0038540726814287585,-5.7339517789242305e-6,-1.550233250246981e-8,0.0038545530770026947,-5.813032433141409e-6,-1.535167747524828e-8,0.003855066511348219,-5.817774971569551e-6,-1.5344433001374196e-8,0.0038555849763886965,-5.738119863076067e-6,-1.5499788248752717e-8,0.0038560793166990247,-5.576384824864866e-6,-1.5813120373490353e-8,0.0038565234608473496,-5.347216994734051e-6,-1.6256150387493468e-8,0.0038568984147355433,-5.075979025649893e-6,-1.678004601450871e-8,0.00385719557764678,-4.795731754718215e-6,-1.7321162029551486e-8,0.0038574190570229696,-4.543041028615571e-6,-1.780903983008837e-8,0.003857586762326891,-4.352859428110214e-6,-1.817625138390654e-8,0.003857730049101876,-4.252572787910336e-6,-1.8369938134093778e-8,0.0038578912513364937,-4.255213948707043e-6,-1.8364992404288677e-8,0.003858117874957074,-4.3525404651654585e-6,-1.8177456727680517e-8,0.003858452354547486,-4.510210597999658e-6,-1.7873784612501723e-8,0.003858917791777117,-4.669051428707108e-6,-1.756829129472984e-8,0.003859503672194377,-4.756979406824098e-6,-1.7400082133742694e-8,0.003860160107605068,-4.712384004790362e-6,-1.7487936966225806e-8,0.0038608091664962376,-4.510570068775836e-6,-1.7879323414882926e-8,0.003861372398538454,-4.177424357879907e-6,-1.8524047943606895e-8,0.003861800506333025,-3.7795425476321384e-6,-1.9293349565570984e-8,0.0038620880164654562,-3.396288792625095e-6,-2.0033913711143205e-8,0.003862267166860147,-3.0911799396654256e-6,-2.062317555474824e-8,0.0038623893494130436,-2.8966628210158406e-6,-2.099867596807234e-8,0.003862506563495998,-2.8140990119499413e-6,-2.115798768293966e-8,0.0038626598321244918,-2.822389550608056e-6,-2.114198102596278e-8,0.003862874873005275,-2.8882527356427605e-6,-2.1014973901108832e-8,0.003863162336153394,-2.9744902195046028e-6,-2.0848814677809523e-8,0.0038635199304515298,-3.045533830271848e-6,-2.0712205478631623e-8,0.0038639348992436243,-3.0710234770790767e-6,-2.066378398501029e-8,0.0038643864355204357,-3.028367117469868e-6,-2.0747147455070232e-8,0.00386484822728367,-2.904831494192115e-6,-2.0986801911394604e-8,0.0038652914752601592,-2.699236644680084e-6,-2.1384920240420773e-8,0.003865688624510196,-2.4228755743300013e-6,-2.191962018272638e-8,0.00386601767419727,-2.0990064949875313e-6,-2.2545976090700474e-8,0.003866266452299767,-1.760409030734062e-6,-2.3200715561079226e-8,0.0038664359843247702,-1.4449098341719433e-6,-2.3810796904036255e-8,0.0038665420780329414,-1.1892409375748905e-6,-2.4305217895457498e-8,0.003866614450261009,-1.0220808697119544e-6,-2.4628464023641513e-8,0.0038666931331427633,-9.574329517630934e-7,-2.4753373068809092e-8,0.00386682224894407,-9.894664267422647e-7,-2.469119648990868e-8,0.0038670414158975728,-1.0900193002419434e-6,-2.449647640784153e-8,0.0038673755149895308,-1.2103925169421118e-6,-2.4263553007702945e-8,0.0038678247276590877,-1.2892296045959293e-6,-2.4111252377403624e-8,0.003868358444959499,-1.267252656795297e-6,-2.4154311249935473e-8,0.0038689178723244452,-1.106609395965305e-6,-2.446591385034712e-8,0.0038694306364283385,-8.077989637281885e-7,-2.504494355576824e-8,0.0038698345342124824,-4.141703486132289e-7,-2.5807311711834674e-8,0.003870099809101716,1.7314109784301966e-9,-2.661245619101961e-8,0.0038702378083155316,3.6458720020279093e-7,-2.7314567339474627e-8,0.0038702920854368386,6.214663267685033e-7,-2.7811317375819918e-8,0.0038703190910244194,7.53858335647063e-7,-2.8067074676155508e-8,0.00387036974897286,7.748010931081934e-7,-2.8107228302703305e-8,0.0038704788581488724,7.175311052953002e-7,-2.7996153658333026e-8,0.0038706626331334653,6.232083040671878e-7,-2.781347285744613e-8,0.0038709211656908133,5.318687125353667e-7,-2.7636609917695287e-8,0.003871242513436442,4.772284502188831e-7,-2.753078648423058e-8,0.003871606525933271,4.841804967947889e-7,-2.754418615260003e-8,0.0038719879135084533,5.675785755217659e-7,-2.7705577960566147e-8,0.003872358880346966,7.314004543716178e-7,-2.8022675148351287e-8,0.0038726919022138077,9.680249185641712e-7,-2.8480732932027746e-8,0.003872963138652044,1.2579586782204766e-6,-2.9042030043767234e-8,0.00387315657601737,1.5708285211382788e-6,-2.9647789466682646e-8,0.0038732683373289547,1.86855923238929e-6,-3.0224309921934445e-8,0.0038733099271485473,2.1112153111972303e-6,-3.069424612561177e-8,0.003873308852725411,2.2650543922665764e-6,-3.0992188082449424e-8,0.0038733053736022243,2.3111642765606837e-6,-3.108140596859698e-8,0.003873345192169577,2.2521788410355123e-6,-3.0966904370240415e-8,0.0038734693367986866,2.1146262125177263e-6,-3.0700024716839653e-8,0.003873703593536369,1.9454980220390796e-6,-3.037183659191588e-8,0.0038740502205765353,1.8030645268901052e-6,-3.009534652539585e-8,0.003874484463380578,1.7433559304306285e-6,-2.997927136727451e-8,0.003874957745425761,1.805067475563303e-6,-3.009872427079351e-8,0.0038754081819814224,1.9969121911983876e-6,-3.0470633717663e-8,0.0038757768904046563,2.2921729176794824e-6,-3.104314330933098e-8,0.0038760255596562514,2.6342273406501153e-6,-3.1706344087442033e-8,0.003876148467003275,2.953007064522305e-6,-3.232426651598912e-8,0.003876173208269964,3.1867247516892045e-6,-3.2777089184574225e-8,0.0038761496228379723,3.299682974732298e-6,-3.2995681880150156e-8,0.0038761325461103228,3.2890272755367357e-6,-3.297463097922817e-8,0.003876166403606068,3.179714693762658e-6,-3.276239593634084e-8,0.003876276896591104,3.0126859225590633e-6,-3.243833774524097e-8,0.0038764701624275557,2.8325579269208208e-6,-3.208888404389721e-8,0.0038767365992111737,2.6787515873070964e-6,-3.1790385133102694e-8,0.003877056148306675,2.580816495240054e-6,-3.160009687833867e-8,0.003877403029010765,2.556826343211539e-6,-3.1553084495681475e-8,0.0038777493008821016,2.613289973686861e-6,-3.166203618942354e-8,0.0038780675614554605,2.745446505360736e-6,-3.191780672517262e-8,0.003878333476381656,2.937524412643369e-6,-3.2289889347489e-8,0.0038785287779384415,3.1632353044676755e-6,-3.2727348319001116e-8,0.0038786449743421613,3.38733667833281e-6,-3.3161835770498974e-8,0.0038786873128192818,3.569409484611795e-6,-3.351491898098499e-8,0.003878677591593657,3.6707118908738144e-6,-3.371139093728882e-8,0.003878653651155005,3.663736005572876e-6,-3.369782934114989e-8,0.003878663611183559,3.5420997935283253e-6,-3.346179770353897e-8,0.003878754731082063,3.3267106762652564e-6,-3.304380167421774e-8,0.003878959662882301,3.0642480397399228e-6,-3.2534349810315585e-8,0.0038792851193151815,2.8166766000497898e-6,-3.2053637071171815e-8,0.003879707781335941,2.644580007151263e-6,-3.171924924585675e-8,0.003880179414535661,2.590044261113597e-6,-3.161296170025512e-8,0.003880639462395093,2.664856929841553e-6,-3.175779169109812e-8,0.003881030963909623,2.847441295081661e-6,-3.211196330829822e-8,0.003881315132026455,3.088989773401876e-6,-3.258074793403881e-8,0.003881480673019954,3.3267950065992406e-6,-3.304234350010906e-8,0.0038815453906210946,3.500934082932849e-6,-3.33803219040278e-8,0.0038815497710628015,3.5694288741531944e-6,-3.3513127109619604e-8,0.003881544796778198,3.5173837589184617e-6,-3.341184114435914e-8,0.003881578212321525,3.3577257039687044e-6,-3.310159999772678e-8,0.0038816837406748395,3.1243817248589497e-6,-3.264830861127478e-8,0.0038818760151617553,2.8614164265762064e-6,-3.213752525507882e-8,0.0038821512694009203,2.612341272483004e-6,-3.165370238768937e-8,0.0038824917692874394,2.4124461107722537e-6,-3.1265314802538124e-8,0.003882871480346175,2.2849072067360234e-6,-3.1017329356398934e-8,0.0038832611824149987,2.2398928027330586e-6,-3.0929494207351274e-8,0.0038836323245214632,2.275318774487282e-6,-3.099781618751069e-8,0.0038839597921307414,2.378108423025778e-6,-3.119699030134757e-8,0.0038842242152507703,2.5254286212354412e-6,-3.148275781095068e-8,0.0038844144663355965,2.686059250390416e-6,-3.179451894543604e-8,0.0038845306688387576,2.822639547206788e-6,-3.2059675183163195e-8,0.003884587357003466,2.8959475224504465e-6,-3.220196455639171e-8,0.0038846153737523,2.8722310269464106e-6,-3.21557550736718e-8,0.003884660056959134,2.7333387608771316e-6,-3.18857668919105e-8,0.0038847732762158013,2.4869046599035173e-6,-3.1406851357082614e-8,0.0038849991252745794,2.1712642698410145e-6,-3.0793495921892944e-8,0.0038853574442500984,1.8496451423368823e-6,-3.016850650976043e-8,0.0038858330515733975,1.5925789224385644e-6,-2.9668865383990577e-8,0.003886377556622482,1.4547566015723252e-6,-2.940082528056271e-8,0.0038869241473787107,1.4569552475180457e-6,-2.9404819127186324e-8,0.0038874085176017156,1.5809669809562609e-6,-2.9645564220367717e-8,0.003887786800305342,1.7780034980890623e-6,-3.002832302171855e-8,0.0038880447159318995,1.9850173646662214e-6,-3.0430573951043864e-8,0.0038881971924163384,2.1420596256770285e-6,-3.073574438290413e-8,0.003888280961175994,2.205781072292864e-6,-3.085948449380518e-8,0.0038883435694981065,2.1568374784550173e-6,-3.076410840731744e-8,0.0038884319296096136,2.0009593416802778e-6,-3.0460718017368735e-8,0.00388858281744708,1.7646673454508626e-6,-3.000089846925649e-8,0.003888816937092785,1.487387634284406e-6,-2.9461380448588014e-8,0.003889137213009564,1.2122368285186793e-6,-2.8926083312790018e-8,0.0038895308769200843,9.77741933194379e-7,-2.8469964105098837e-8,0.0038899740437511265,8.120453633245923e-7,-2.81477220260484e-8,0.003890437171818333,7.300902557734322e-7,-2.7988343358411724e-8,0.0038908900772970704,7.333723847624609e-7,-2.7994672649499975e-8,0.0038913058202770783,8.11313345377628e-7,-2.8146131740211625e-8,0.003891663485624368,9.432958331578632e-7,-2.8402680159512044e-8,0.0038919502946732623,1.1008399990349611e-6,-2.8708996787877187e-8,0.0038921635340459903,1.2499486900889057e-6,-2.8998973546822423e-8,0.0038923125934744473,1.3541502616078596e-6,-2.9201603267134142e-8,0.0038924208408559866,1.379197734291158e-6,-2.9250157793629576e-8,0.0038925260361622285,1.3003034856014153e-6,-2.909634192665132e-8,0.0038926769630940033,1.1115916402400212e-6,-2.8728743103664676e-8,0.0038929238963934187,8.34996763450161e-7,-2.819013439953649e-8,0.003893302729372596,5.229491681716229e-7,-2.7582633768285374e-8,0.0038938176635446077,2.486270920040773e-7,-2.704868519022275e-8,0.0038944323474479204,8.290889866841129e-8,-2.6726217478885122e-8,0.0038950779585628413,6.71542862886964e-8,-2.6695708784190685e-8,0.0038956768103849595,1.9679611586948285e-7,-2.694825472718397e-8,0.003896169311776245,4.2495370109331924e-7,-2.73925766726845e-8,0.003896530677936019,6.822594553111313e-7,-2.7893606935094835e-8,0.0038967721729981984,9.007324311420936e-7,-2.8318972956552194e-8,0.003896930972109137,1.0312737312306008e-6,-2.8573056292209646e-8,0.0038970560356940956,1.0512333616440805e-6,-2.8611714898809007e-8,0.0038971954492596143,9.637576168076825e-7,-2.84410251401411e-8,0.0038973875128366286,7.922909732076531e-7,-2.8106623400673385e-8,0.003897655773663217,5.73039745366953e-7,-2.7679078820458593e-8,0.0038980074203048315,3.470975623162463e-7,-2.723855936562174e-8,0.003898434383602654,1.532557749678879e-7,-2.686076811069166e-8,0.003898916483642837,2.2273778031217942e-8,-2.6605698033749048e-8,0.003899425869944706,-2.6879705272445377e-8,-2.651026260606674e-8,0.003899931946443452,1.135752503116599e-8,-2.658517606455315e-8,0.003900405988380751,1.2952483923987927e-7,-2.6815784333920333e-8,0.0039008248607193337,3.0902597073996624e-7,-2.7165815642283763e-8,0.0039011736945926885,5.228355224148576e-7,-2.7582659172522265e-8,0.003901447733469793,7.385703341824681e-7,-2.800327930437387e-8,0.0039016535931530446,9.218576909926763e-7,-2.8360689234556944e-8,0.003901810063641041,1.0402342282423203e-6,-2.8591513682344532e-8,0.0039019482346590566,1.068114437545263e-6,-2.8645727584383664e-8,0.0039021099156309434,9.933162871447647e-7,-2.8499486010026745e-8,0.0039023425147539973,8.245733393134014e-7,-2.816985246159411e-8,0.0039026886667243655,5.973876226969504e-7,-2.7726207946250197e-8,0.0039031709184319144,3.732053312467776e-7,-2.728856993304565e-8,0.003903776436955178,2.2643689124575264e-7,-2.7002203145251322e-8,0.0039044517336320776,2.1908852626009318e-7,-2.6988107235954432e-8,0.0039051160269753435,3.7343990320735743e-7,-2.728970832405026e-8,0.0039056904602020087,6.597257455398579e-7,-2.7848816986833218e-8,0.0039061274952976715,1.008182754458275e-6,-2.8529159419230002e-8,0.003906424029832539,1.337864454440272e-6,-2.917267690733211e-8,0.0039066143239121455,1.584673185538172e-6,-2.9654276855512307e-8,0.003906751629333246,1.7160417124478927e-6,-2.991045051383723e-8,0.003906889981347287,1.7312807173328777e-6,-2.993987957694521e-8,0.003907072257425082,1.6535639424178371e-6,-2.978777180552823e-8,0.003907324953080964,1.5196860399174986e-6,-2.9525923596991393e-8,0.003907657617907691,1.3710174126904936e-6,-2.9235136326534077e-8,0.003908064791635279,1.246627938272527e-6,-2.8991808582392042e-8,0.003908529121213566,1.178355331974727e-6,-2.8858246582644022e-8,0.0039090251008069895,1.1874723538953122e-6,-2.8876064406570793e-8,0.0039095231741027164,1.2828026766380307e-6,-2.9062457134925734e-8,0.003909993971965604,1.4602429723720258e-6,-2.940930205385144e-8,0.003910412376088683,1.7037257014122688e-6,-2.9885126077279e-8,0.003910760972899444,1.9875614267849495e-6,-3.043974711070414e-8,0.003911032543742426,2.279815827653438e-6,-3.1010855542352346e-8,0.003911231493909528,2.5463069029857515e-6,-3.153173238001942e-8,0.003911374222650876,2.7549910335127733e-6,-3.193972170951845e-8,0.003911488384327841,2.880624085469085e-6,-3.218531726661661e-8,0.003911610864352182,2.909667982481857e-6,-3.224183476086153e-8,0.003911783886839922,2.84536194505679e-6,-3.211546429333361e-8,0.003912048236733935,2.7121190655270843e-6,-3.1853969077637996e-8,0.003912432956737331,2.5569177610852085e-6,-3.1549408250500364e-8,0.003912942711842446,2.4439948046497946e-6,-3.13276712957956e-8,0.003913547494005578,2.439525781374463e-6,-3.1318405148871284e-8,0.003914182801008766,2.587612510786791e-6,-3.160796365905382e-8,0.00391476670682019,2.8876813198392386e-6,-3.219515496038958e-8,0.003915229878465214,3.288612511808708e-6,-3.297977441605243e-8,0.00391554262842195,3.707168304776008e-6,-3.3798756641249064e-8,0.003915722816780819,4.061134667377567e-6,-3.449114586943816e-8,0.0039158221519932715,4.297554871760769e-6,-3.495337435976911e-8,0.003915902612886247,4.403020028690837e-6,-3.5159304982510026e-8,0.003916016771863963,4.3972762305046315e-6,-3.51476057496457e-8,0.003916198069716032,4.319425094326008e-6,-3.499472431255641e-8,0.003916459596845121,4.214738888555488e-6,-3.4789167335719515e-8,0.003916797401300606,4.125457418511884e-6,-3.46135897824814e-8,0.003917195121291198,4.085545626385126e-6,-3.453456558879286e-8,0.003917628376812855,4.118078743411213e-6,-3.459741276197698e-8,0.00391806864547818,4.234057023541767e-6,-3.4823781820516536e-8,0.0039184868549933145,4.432100524385358e-6,-3.521100643460954e-8,0.003918856894454718,4.698942282664103e-6,-3.5733089149345645e-8,0.003919159062997544,5.010909292212568e-6,-3.634366398414867e-8,0.003919383180819294,5.336673361384431e-6,-3.698142096457321e-8,0.003919530829987342,5.641296545403175e-6,-3.757799607711368e-8,0.0039196162213828035,5.891218249778886e-6,-3.8067651883344666e-8,0.0039196653747344806,6.059652716046391e-6,-3.8397777275256785E-08,0.003919713456096689,6.131770978781817e-6,-3.853905013964011e-8,0.003919800276775679,6.108967573413839e-6,-3.849390802272054e-8,0.003919964045053333,6.011521522845613e-6,-3.830191792649171e-8,0.003920233494230299,5.878730153642338e-6,-3.804014811232711e-8,0.003920618992780859,5.764983763374026e-6,-3.781547454419313e-8,0.00392110459247313,5.730010496430183e-6,-3.7745352062984805e-8,0.0039216448866342514,5.822802882578071e-6,-3.792614771435408e-8,0.00392217165582521,6.062441369382195e-6,-3.839540769990899e-8,0.003922612784897084,6.424343781374744e-6,-3.910483982583697e-8,0.003922918279510956,6.842549813656679e-6,-3.9924854655693004e-8,0.0039230801956615,7.231684285990491e-6,-4.068779460101494e-8,0.003923134148926395,7.5187772284920845e-6,-4.125047503163074e-8,0.003923141833425455,7.667435752105012e-6,-4.1541586012182924e-8,0.003923166269325025,7.683166138878378e-6,-4.1571999586433136e-8,0.003923253198934327,7.602234341381125e-6,-4.1412808153840096e-8,0.00392342418128479,7.474463541507354e-6,-4.1161593315289665e-8,0.003923678875818511,7.348774715809465e-6,-4.091417238620076e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_24.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_24.json new file mode 100644 index 000000000..509a7d10c --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_24.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":24000,"numberOfSamples":1000,"samples":[0.003924001349468574,7.264665173102422e-6,-4.0747989552475184e-8,0.003924366586169156,7.248790607297544e-6,-4.0715438046854016e-8,0.0039247455983737215,7.31449699975775e-6,-4.084288354023843e-8,0.003925109134008881,7.462510402409807e-6,-4.1131928535769936e-8,0.003925430619334403,7.681943579661476e-6,-4.156132990390201e-8,0.003925688916221978,7.9515663056217e-6,-4.208949033990723e-8,0.003925871139610513,8.241724001493012e-6,-4.26582543580377e-8,0.003925975343160025,8.517452558510482e-6,-4.319903585164052e-8,0.003926012408625573,8.743124708146312e-6,-4.364190844664137e-8,0.0039260062351111815,8.888393011087458e-6,-4.392721436513869e-8,0.0039259914819518545,8.934553769547599e-6,-4.401802379763859e-8,0.003926008601681654,8.87995541059872e-6,-4.391078722925618e-8,0.003926096603853184,8.742886424791559e-6,-4.364111335220435e-8,0.003926284700461693,8.560700555841224e-6,-4.328218871863738e-8,0.003926584419799495,8.38460458304358e-6,-4.293463839580567e-8,0.003926983982520055,8.27018419490559e-6,-4.270791978660203e-8,0.003927446933578442,8.26450952654458e-6,-4.269489056436631e-8,0.003927917035426422,8.392007583137403e-6,-4.294388907717355e-8,0.003928330548152765,8.643213090672838e-6,-4.343648270886796e-8,0.003928634404239271,8.97202431142347e-6,-4.4082022548759444e-8,0.003928804571353034,9.306016764539644e-6,-4.473798796749362e-8,0.003928855847415065,9.568840746130847e-6,-4.525415343428905e-8,0.0039288366735898165,9.705875342600683e-6,-4.552310678124801e-8,0.003928810708523999,9.70075387287824e-6,-4.5512697637589113e-8,0.003928834802404048,9.575566014901797e-6,-4.526632710582171e-8,0.003928943827175889,9.377534807333275e-6,-4.487669985208786e-8,0.003929146690245219,9.161289638700064e-6,-4.445102369531869e-8,0.003929431010766044,8.97479258527682e-6,-4.408344678591044e-8,0.003929771249439363,8.851942834798086e-6,-4.3840594450064106e-8,0.003930136299987928,8.810775413828423e-6,-4.375803213461219e-8,0.0039304949376361325,8.854733935909684e-6,-4.3842713182813283e-8,0.003930819251349883,8.97490756364095e-6,-4.4077307493303816e-8,0.003931086911330102,9.152169769274805e-6,-4.442436000944777e-8,0.0039312831240633185,9.359120650070548e-6,-4.4830096409770687e-8,0.003931402736278697,9.562353565431697e-6,-4.522888479978551e-8,0.0039314523679986994,9.725809891954073e-6,-4.554983213541918e-8,0.003931451821677968,9.81581544058732e-6,-4.572667330703574e-8,0.0039314335373014,9.807739373223678e-6,-4.5710846370490446e-8,0.003931438847422937,9.693139686684408e-6,-4.5485541526462294e-8,0.003931510540598468,9.485126741041124e-6,-4.507628154878644e-8,0.0039316827752822045,9.21922505098598e-6,-4.455269004539336e-8,0.003931971055312627,8.947933809120098e-6,-4.401789076476449e-8,0.0039323657307728825,8.729358784614993e-6,-4.358622919525109e-8,0.003932831731699162,8.612643855888081e-6,-4.335462841531593e-8,0.003933315344617792,8.62429738570606e-6,-4.337560654570439e-8,0.003933756715300976,8.759463349484685e-6,-4.363994931455601e-8,0.003934105106059232,8.981053856326873e-6,-4.407485811762412e-8,0.003934332913929343,9.227877438043526e-6,-4.4559891225405716e-8,0.0039344440871193175,9.430525068002884e-6,-4.4958286576969273e-8,0.003934473402796723,9.530858688927084e-6,-4.5155432327327116e-8,0.003934475863914978,9.498545685117723e-6,-4.509149078422063e-8,0.003934509718222492,9.33827824991407e-6,-4.47756142603218e-8,0.003934619792227327,9.085158588882537e-6,-4.427682786107174e-8,0.003934827415641757,8.791280140237335e-6,-4.369760258181166e-8,0.00393512933343696,8.510038014808986e-6,-4.31429928445453e-8,0.0039355035636141015,8.284081649552148e-6,-4.269695029529051e-8,0.003935918018543304,8.139406686077033e-6,-4.241070000822375e-8,0.003936338353846052,8.084775818140693e-6,-4.2301584302013366e-8,0.003936733445406277,8.114176353890525e-6,-4.235787766689351e-8,0.0039370785461212525,8.210197709692123e-6,-4.254541828860122e-8,0.003937356971767464,8.347130480599071e-6,-4.281369430236631e-8,0.003937561263758311,8.493567783692922e-6,-4.310094762045791e-8,0.003937694438031615,8.615002843389891e-6,-4.333926631812809e-8,0.003937771330134241,8.67725650150846e-6,-4.346131796842194e-8,0.003937819322870859,8.651508326884634e-6,-4.3410256470381495e-8,0.003937877058427044,8.521099894445721e-6,-4.3153137231452934e-8,0.003937989463885939,8.288931327634417e-6,-4.269550841092151e-8,0.003938198228981029,7.982475866423666e-6,-4.209131265757179e-8,0.003938529202136906,7.652421272823026e-6,-4.144024574779018e-8,0.003938981172624146,7.362348631112524e-6,-4.086748201679056e-8,0.003939521858698951,7.171057158621901e-6,-4.048891544782165e-8,0.003940094615197016,7.113880374154503e-6,-4.0374365707466556e-8,0.0039406342007793785,7.190918645244552e-6,-4.052432522098116e-8,0.003941085456845227,7.366953288287352e-6,-4.086966435709471e-8,0.003941417979926735,7.582297213206803e-6,-4.1292902967637985e-8,0.003941632550878733,7.769811582108233e-6,-4.1661704613367465e-8,0.0039417586573959,7.872367731094012e-6,-4.186332403044912e-8,0.00394184498935138,7.856147459827803e-6,-4.183089280710224e-8,0.003941946090056001,7.716963831159671e-6,-4.155595404739903e-8,0.003942108844751583,7.478721284531861e-6,-4.1085488184775086e-8,0.003942362280649743,7.1851264448118275e-6,-4.0505610055412035e-8,0.003942713056297738,6.887545188092401e-6,-3.9917635489093076e-8,0.003943147094181412,6.63285056822077e-6,-3.9414089140640513e-8,0.00394363576055283,6.45458746493619e-6,-3.906122521138246e-8,0.003944143851940386,6.3689698481875325e-6,-3.889108334065558e-8,0.003944636869159611,6.375238897636767e-6,-3.89021835862169e-8,0.003945086178514301,6.458758785510235e-6,-3.906566285644976e-8,0.003945471885644119,6.595087712929455e-6,-3.9333345409787816e-8,0.003945784062145488,6.75381682031183e-6,-3.96453240801719e-8,0.0039460231949269235,6.9018086924852714e-6,-3.993631138475404e-8,0.003946200484182494,7.0061699834473986e-6,-4.0141443325436696e-8,0.003946338123548155,7.037663514739489e-6,-4.020297398706976e-8,0.003946469030517169,6.975321308310946e-6,-4.007939202239149e-8,0.0039466347171631935,6.8125615268396335e-6,-3.9757548945000605e-8,0.003946879526314831,6.563781000662389e-6,-3.926572917290399e-8,0.003947240113576192,6.26832771088985e-6,-3.8681519815076635e-8,0.00394773162032693,5.987155767768718e-6,-3.8125213666258697e-8,0.00394833606959585,5.788678511154436e-6,-3.7731893344309e-8,0.0039490010315956,5.726070108611301e-6,-3.760663760887806e-8,0.003949653254363835,5.815841448021564e-6,-3.778221021701663e-8,0.003950222933085804,6.029784395114221e-6,-3.8203094717768544e-8,0.003950666763769117,6.305251283013329e-6,-3.874572335149639e-8,0.003950978997636163,6.567633107643007e-6,-3.926282625402561e-8,0.003951187946508848,6.753390037519353e-6,-3.9628897768472654e-8,0.003951342970045106,6.82499234587586e-6,-3.9769697357740485e-8,0.00395149899125544,6.775528812781524e-6,-3.9671369919487616e-8,0.003951703461040263,6.625121099539185e-6,-3.9373432374454456e-8,0.003951987858015527,6.412572497682793e-6,-3.8952382552237284e-8,0.003952363959429004,6.185216687773946e-6,-3.8501729618800614e-8,0.003952824318389738,5.9890392604355895e-6,-3.811248119847719e-8,0.003953346084383744,5.8605580191022866e-6,-3.7857015174201214e-8,0.003953896995412957,5.821583390244034e-6,-3.777860582122305e-8,0.003954442092751837,5.877359468380301e-6,-3.7887672658214384e-8,0.003954949781935346,6.017769412892624e-6,-3.816417373000497e-8,0.003955396289717578,6.220694202785564e-6,-3.856432318594815e-8,0.003955768174884203,6.456367672750993e-6,-3.902927598979735e-8,0.003956063179994125,6.691705169501888e-6,-3.949369249275251e-8,0.003956290051901221,6.894111093467348e-6,-3.989319559509603e-8,0.003956467854520423,7.034854759428582e-6,-4.017095218887658e-8,0.0039566249669400816,7.092436622888951e-6,-4.0284290088954386e-8,0.003956797478346305,7.056481487425291e-6,-4.021245059161304e-8,0.003957025994777186,6.932388600346256e-6,-3.996590300588929e-8,0.003957349414623954,6.7458410699163445e-6,-3.959537173887109e-8,0.003957794778545756,6.544498614818847e-6,-3.9195220973930975e-8,0.003958364489074411,6.392651543668574e-6,-3.889283923884582e-8,0.003959026190955713,6.355295837039837e-6,-3.881705762450065e-8,0.003959713978117959,6.473712946892012e-6,-3.904975388942963e-8,0.003960346658841707,6.743821961530491e-6,-3.958294960032686e-8,0.003960857575990237,7.112323350996538e-6,-4.031115186969541e-8,0.0039612197932018854,7.496174919039376e-6,-4.10699402100219e-8,0.003961452306299503,7.814588012843276e-6,-4.169936348567501e-8,0.003961606574536528,8.01530911676443e-6,-4.209596468724888e-8,0.003961744529834369,8.08439052342442e-6,-4.223205431160473e-8,0.003961919898203691,8.041055608842375e-6,-4.2145503385516964e-8,0.003962167934107929,7.92540646416268e-6,-4.1915471608097986e-8,0.003962502766954194,7.785608877629877e-6,-4.1637175222764884e-8,0.003962919504652272,7.667738377555936e-6,-4.140189174962666e-8,0.00396339860412415,7.6088866362392024e-6,-4.128330394764023e-8,0.003963911081389532,7.633028280277278e-6,-4.132919427751386e-8,0.003964423927548092,7.749152914604407e-6,-4.1557593105492124e-8,0.003964905318504584,7.951432583245587e-6,-4.1957026443146924e-8,0.003965329172806784,8.221199670866641e-6,-4.249046155503989e-8,0.0039656786145144665,8.530378408627668e-6,-4.310220299700377e-8,0.003965947990889918,8.845841392371245e-6,-4.37266017606286e-8,0.003966143368775138,9.134007815143316e-6,-4.429715430491004e-8,0.003966281763390242,9.365126081644348e-6,-4.475489492347632e-8,0.003966389432433808,9.517028569907252e-6,-4.50557398961551e-8,0.0039664994413490615,9.578380169243303e-6,-4.517691762130738e-8,0.003966648478154706,9.551562333274848e-6,-4.512279719134597e-8,0.003966872442131501,9.455213790585541e-6,-4.493010285476397e-8,0.003967200009096507,9.325645135291122e-6,-4.4670856835179115e-8,0.003967643942139405,9.215087087823338e-6,-4.4448923046119814e-8,0.0039681916280942,9.183905742556441e-6,-4.438445858297688e-8,0.003968799131557344,9.284666046934797e-6,-4.4582129386551373e-8,0.003969395714603861,9.540259293398974e-6,-4.508756258136944e-8,0.0039699037202130414,9.926237027984614e-6,-4.585222439096121e-8,0.003970268552470416,1.0371684773005795e-5,-4.673521137896835e-8,0.003970482142169558,1.078412203468818e-5,-4.755282003004367e-8,0.0039705843561092195,1.10860283048514e-5,-4.815115477383973e-8,0.003970642360386332,1.1241376583518066e-5,-4.845874452293147e-8,0.003970722821708415,1.125981504453911e-5,-4.8494689966727235e-8,0.0039708723071808566,1.11829441885822e-5,-4.834134805360363e-8,0.003971110919069601,1.1065211622363857e-5,-4.810650188240576e-8,0.003971435431608885,1.0958632735931508e-5,-4.7893216781566505e-8,0.003971826265812919,1.0903990546723049e-5,-4.778250186894762e-8,0.003972254586729742,1.0927283245886881e-5,-4.782624238951511e-8,0.003972688105211575,1.1039249843146977e-5,-4.8046116883982526e-8,0.0039730955939297884,1.1236386675066273e-5,-4.843545087392066e-8,0.00397345054557075,1.1502799362280447e-5,-4.8962807876693554e-8,0.003973734208169738,1.1812792318729848e-5,-4.9577158828296015e-8,0.003973937950405579,1.2134265111817801e-5,-5.021471558067026e-8,0.003974064679006379,1.2432918992578263e-5,-5.080734411592102e-8,0.003974128944467808,1.2676973960732623e-5,-5.129190491821449e-8,0.003974155556457899,1.2841827542246017e-5,-5.1619414061577866e-8,0.0039741767870729505,1.2914097734147498e-5,-5.1763003268766806e-8,0.003974228381508199,1.2894585117898373e-5,-5.1723840310494984e-8,0.0039743446740342315,1.2799778794775203e-5,-5.1534278839920305e-8,0.003974553031218095,1.2661651645222267e-5,-5.1257656952560386e-8,0.00397486770830553,1.252526192551265e-5,-5.0983665712715536e-8,0.003975283624309093,1.244306855380536e-5,-5.081702986908633e-8,0.003975771762776541,1.2464764616558008e-5,-5.085712444532777e-8,0.003976279358595454,1.2622668128129355e-5,-5.1168686224427466e-8,0.003976738806949802,1.2915806066879637e-5,-5.174997205879499e-8,0.00397708712480231,1.3300494013523065e-5,-5.251398213335525e-8,0.003977290708495544,1.3697307875515348e-5,-5.3302462984544026e-8,0.003977362035950759,1.4017395454687275e-5,-5.393846232144907e-8,0.003977355858695399,1.4196719691249908e-5,-5.429455632185751e-8,0.003977345605575303,1.4218583669657343e-5,-5.433755885903962e-8,0.003977394646971235,1.4112859234273654e-5,-5.412679978292305e-8,0.003977538120767945,1.3937040535825622e-5,-5.377637606636613e-8,0.003977780313015663,1.3753373811437281e-5,-5.3409789340420174E-08,0.0039781024005110955,1.361276026355333e-5,-5.312812805725196e-8,0.003978473023124186,1.3547849219766439e-5,-5.299644136530384e-8,0.003978857094370713,1.3572654477401475e-5,-5.304293291262342e-8,0.00397922161367756,1.3685187261991948e-5,-5.326404503945597e-8,0.0039795391090315735,1.387078103509612e-5,-5.363091484811033e-8,0.003979789799970764,1.4105237357237993e-5,-5.4095556401576257e-8,0.0039799632178153825,1.4357845076354077e-5,-5.45968922420498e-8,0.003980059500806607,1.4594673222991368e-5,-5.506737604277994e-8,0.003980090142970023,1.4782539911570218e-5,-5.5440930753357645e-8,0.003980077642195864,1.4893710156689642e-5,-5.566226817310781e-8,0.003980053468419345,1.4910803096605801e-5,-5.56965853216742e-8,0.0039800541106269635,1.4830983623911673e-5,-5.553787293347947e-8,0.0039801154418540406,1.466838142817004e-5,-5.5213797919344863e-8,0.003980266139921954,1.4453775388946017e-5,-5.478524269653043e-8,0.003980521287767714,1.4231023369268172e-5,-5.4339391697161045e-8,0.003980877353979621,1.4050315119139707e-5,-5.397640762167942e-8,0.003981309717837675,1.395868469966156e-5,-5.3790488944141864e-8,0.003981774090037387,1.3988628469092594e-5,-5.3846999457069773e-8,0.003982213281677193,1.4146764402475845e-5,-5.415961657859051e-8,0.003982570011449755,1.4406143821260008e-5,-5.467482526558627e-8,0.003982804131697453,1.47071498764841e-5,-5.527369286809923e-8,0.003982908778352366,1.4970992193698437e-5,-5.579891732093303e-8,0.003982916824397885,1.5124448073961797e-5,-5.6104337480320424e-8,0.003982891263406429,1.5126160410236833e-5,-5.610742482232311e-8,0.00398290215454356,1.4980743595872157e-5,-5.581730514030468e-8,0.0039830019202654705,1.4733222541316497e-5,-5.532354528930037e-8,0.003983211326857249,1.4448727937037265e-5,-5.4755680309660146e-8,0.003983520104257227,1.4189885389384998e-5,-5.423828496751849e-8,0.003983897259054235,1.4001826693159665e-5,-5.386125283385029e-8,0.003984303459136277,1.3907216352427944e-5,-5.366993275012876e-8,0.003984700579759181,1.3908279420985249e-5,-5.3669095525382856e-8,0.003985057207973846,1.399170223752423e-5,-5.3832563887307894e-8,0.00398535107067196,1.4133635001783242e-5,-5.411306762933109e-8,0.003985569881970607,1.4303771905497005e-5,-5.445033306625039e-8,0.0039857117052029475,1.4468652878353123e-5,-5.4777689929636526e-8,0.003985785248092382,1.4594817843348775e-5,-5.502840613731594e-8,0.003985809897015252,1.4652472383143383e-5,-5.514301337657362e-8,0.003985814826438397,1.4619974837042523e-5,-5.5078226609295487e-8,0.0039858363205629195,1.4488750116827408e-5,-5.481669944437828e-8,0.003985912714645442,1.426742833517886e-5,-5.4375274115178266e-8,0.003986077146685968,1.3983468945714063e-5,-5.380829619913038e-8,0.003986349418788184,1.3680607655818763e-5,-5.320267121504874e-8,0.003986729243878734,1.3411429492368585e-5,-5.266321054783875e-8,0.003987193368925278,1.3226052188088213e-5,-5.229014065094215e-8,0.0039876982347206835,1.3159498917999302e-5,-5.2153854337675876E-08,0.00398818833657533,1.3221106579292605e-5,-5.227358445765773e-8,0.003988608901007278,1.338916970518754e-5,-5.260647556617648e-8,0.003988920183252699,1.3613194193081244e-5,-5.3051916801022585e-8,0.003989109646982799,1.3824650626505712e-5,-5.347299765131535e-8,0.003989197746223967,1.3954767944424933e-5,-5.373215558025435e-8,0.003989233827788415,1.3954763566654355e-5,-5.373171638754063e-8,0.003989281800794039,1.3811236850979288e-5,-5.3444699852450874e-8,0.003989400134260441,1.3549823535973889e-5,-5.292209959911019e-8,0.003989624365284392,1.3225093106393183e-5,-5.227268643727621e-8,0.003989959279866753,1.290162083662521e-5,-5.1625249279043706e-8,0.0039903824814073756,1.2635093520500604e-5,-5.109093995112096e-8,0.00399085532254792,1.2460509228031144e-5,-5.0739748289693165e-8,0.003991335096141489,1.2389290014694273e-5,-5.0594703090057124e-8,0.003991784193685639,1.2412788238110021e-5,-5.063879306432595e-8,0.0039921750376531425,1.2508400657934924e-5,-5.082710027342623e-8,0.0039924916979013365,1.264552801312763e-5,-5.109866380876292e-8,0.003992729733420645,1.2790244411010073e-5,-5.138580639540977e-8,0.003992895505481774,1.2908774182592685e-5,-5.162109554086806e-8,0.003993005539841018,1.2970483448082949e-5,-5.1743325651077926e-8,0.003993085805853583,1.2951169554634605e-5,-5.170407528089941e-8,0.0039931702182065525,1.2837098930575677e-5,-5.1475750096119304e-8,0.003993297356816803,1.2629535465925717e-5,-5.106062222453551e-8,0.003993504537036869,1.2348458326471559e-5,-5.04982889205154e-8,0.00399381928261621,1.2033164964636035e-5,-4.9866956012253766e-8,0.003994250001187529,1.1737322154317254e-5,-4.9273662215669775e-8,0.0039947794474397376,1.1517572315967707e-5,-4.883161802180583e-8,0.003995364932969854,1.1417909076784898e-5,-4.8629022529340004e-8,0.0039959471867255245,1.145512467560501e-5,-4.8699907040692296e-8,0.003996465923696541,1.1611411554188564e-5,-4.9009176717670445e-8,0.003996876828671035,1.1837637422183225e-5,-4.9458966925161574e-8,0.003997163971009506,1.2066380201857806e-5,-4.991458667779847e-8,0.003997343759283495,1.2230228260355551e-5,-5.024110820721207e-8,0.003997459714537061,1.227962356731739e-5,-5.033913205513782e-8,0.0039975700174394516,1.2195246540345806e-5,-5.016966528746188e-8,0.0039977315793668896,1.199171433994848e-5,-4.9761614483588085e-8,0.003997985303974457,1.1711837911922054e-5,-4.920037428897476e-8,0.003998346858193554,1.1413566865496914e-5,-4.8601769213070115e-8,0.0039988053495900785,1.1154143067304714e-5,-4.808037527313077e-8,0.0039993293627035445,1.0976671983429418e-5,-4.7722620398013583e-8,0.003999877225762814,1.0902767894712806e-5,-4.7571985490559816e-8,0.004000407493370264,1.0931979187466173e-5,-4.762776490445662e-8,0.00400088668699902,1.1046120607170104e-5,-4.785368769200271e-8,0.0040012933178902805,1.1215681826101956e-5,-4.8190753288722657e-8,0.004001618824597613,1.140602944436198e-5,-4.856968419517292e-8,0.004001866716617343,1.1582292382143262e-5,-4.8920729394387654e-8,0.004002051089467816,1.1712900988527266e-5,-4.9180732644461024e-8,0.004002195134543225,1.1772393926335084e-5,-4.9298705411811596e-8,0.0040023296147842545,1.1744241358596293e-5,-4.9241438831947997e-8,0.004002490702025333,1.1624164492064202e-5,-4.9000150214148706e-8,0.004002716177242634,1.1423787492992013e-5,-4.859784391910101e-8,0.0040030390227214704,1.1173356864132723e-5,-4.8094833920023865e-8,0.004003478361347815,1.0920997712239193e-5,-4.7587334303852796e-8,0.004004029802038545,1.0725563863908767e-5,-4.719320099784125e-8,0.004004659792221574,1.0641953511935584e-5,-4.7022548424382676e-8,0.004005309358395405,1.0702231547952575e-5,-4.713991105371558e-8,0.004005909305357476,1.0900742430031743e-5,-4.7534332339053704e-8,0.004006402231050277,1.1192022790909333e-5,-4.8115061170983004e-8,0.004006761493609258,1.1504328555145381e-5,-4.8738556290387605e-8,0.004006998416788491,1.1762810600434922e-5,-4.925487801263246e-8,0.0040071557972175655,1.1911802199676452e-5,-4.955234189469917e-8,0.004007292492485376,1.1928068755813912e-5,-4.9584090451901684e-8,0.004007466154921649,1.182270536529946e-5,-4.9371962164986925e-8,0.004007719484345561,1.1633960677447274e-5,-4.8992235679285965e-8,0.004008072516982853,1.1415035698476774e-5,-4.855132546462214e-8,0.004008521247009628,1.1220739757355388e-5,-4.81591306861145e-8,0.004009041556486812,1.1095986552782165e-5,-4.790595409748483e-8,0.004009596684482728,1.1068126254001404e-5,-4.784699794194256e-8,0.004010146061004549,1.1144061978931795e-5,-4.799641499742937e-8,0.0040106533603855915,1.1311869844993711e-5,-4.833044905420133e-8,0.004011092236707525,1.1545566812726804e-5,-4.8796997573800546e-8,0.004011449171177877,1.1811239466230054e-5,-4.9327987188523245e-8,0.004011723764818403,1.2072971677857698e-5,-4.985134835693644e-8,0.00401192736389657,1.2297623888833959e-5,-5.0300619813788786e-8,0.004012080963416897,1.2458294160137046e-5,-5.06218316152855e-8,0.004012212952149902,1.2536886563441079e-5,-5.077857415701251e-8,0.004012356748830488,1.2526361690877996e-5,-5.075648134300845e-8,0.004012547921684051,1.2433048238960548e-5,-5.0567928963629637e-8,0.0040128199805693305,1.2278886932150372e-5,-5.025666471468604e-8,0.004013197985529161,1.2102470950470938e-5,-4.990002190519058e-8,0.00401369000353784,1.1956510006150005e-5,-4.960388878819715e-8,0.004014278532066863,1.1898883530667995e-5,-4.948472066423443e-8,0.0040149167491389135,1.197622246061075e-5,-4.963648586630433e-8,0.004015535619726837,1.2203997061740317e-5,-5.0090569001978953e-8,0.004016064005360639,1.2553240036393509e-5,-5.0789018255737813e-8,0.0040164548830214815,1.2954750430225737e-5,-5.1592962190804215e-8,0.004016703733644348,1.3322431746732769e-5,-5.232951731508461e-8,0.004016848431434354,1.3584310465564186e-5,-5.2854110685949694e-8,0.004016951977140229,1.3704978067918915e-5,-5.309550581731473e-8,0.00401707918422125,1.3690726517722423e-5,-5.3066050186417026e-8,0.004017278464444657,1.3580022117076173e-5,-5.284257367174307e-8,0.004017573349390648,1.3427603643939568e-5,-5.253461517336548e-8,0.004017962524787026,1.3289293461804937e-5,-5.2254123260796106e-8,0.004018424992325505,1.3210932934703492e-5,-5.2093339215260626e-8,0.0040189273729024705,1.3221997414880813e-5,-5.211190437947683e-8,0.0040194315062708425,1.3333214209773679e-5,-5.2331872879317006e-8,0.004019901334926071,1.3537385768781908e-5,-5.273915282943784e-8,0.00402030839443015,1.3812681913253474e-5,-5.3290015781132485e-8,0.004020635440219238,1.4127527132908653e-5,-5.392095666905157e-8,0.004020878035146411,1.4446146519830484e-5,-5.455996088115213e-8,0.004021044226821732,1.473392798977689e-5,-5.513737746601209e-8,0.00402115275112109,1.496191131793451e-5,-5.559493860655362e-8,0.004021230393628464,1.5110074592057919e-5,-5.589227823087387e-8,0.004021308993990323,1.5169566143298608e-5,-5.601133518705951e-8,0.004021422225284333,1.5144214158221058e-5,-5.595940175161358e-8,0.0040216019835709,1.505150937068162e-5,-5.57712373201424e-8,0.004021873939755527,1.4922916833095616e-5,-5.550989215428107e-8,0.0040222517467002885,1.4802621499919506e-5,-5.5264327043482085e-8,0.004022730175355548,1.4742845077977562e-5,-5.513999395696767e-8,0.00402327924617558,1.4793651408929851e-5,-5.5238179247849234e-8,0.004023843665981839,1.498685836194858e-5,-5.562340967782772e-8,0.004024352851506316,1.5318263529964064e-5,-5.62874975195311e-8,0.004024743118745088,1.573836892528872e-5,-5.7130821512435726e-8,0.004024984194842726,1.6162535861771282e-5,-5.7982877436069443E-08,0.004025094377176705,1.6501026274800637e-5,-5.866291758713605e-8,0.004025133037057492,1.6693810177365013e-5,-5.9050065212816505e-8,0.0040251747474465615,1.6730082192383597e-5,-5.912247029379822e-8,0.004025281332087344,1.6644195416193686e-5,-5.894897656672424e-8,0.004025485746450353,1.6495866969054968e-5,-5.864930998217878e-8,0.004025790429201538,1.634835179138792e-5,-5.8350370181822665e-8,0.0040261746462862255,1.6253223052331517e-5,-5.815584387978385e-8,0.0040266044641294775,1.624327250382378e-5,-5.813200951807451e-8,0.004027041638836209,1.633135361213576e-5,-5.8305293951082345e-8,0.00402745025711566,1.6512469372403883e-5,-5.866622925242898e-8,0.00402780134494779,1.6767326438795646e-5,-5.917637987828972e-8,0.004028075926393701,1.7066612366788847e-5,-5.977686171643531e-8,0.004028266748303052,1.7375686093179322e-5,-6.039784671300595e-8,0.004028378700267617,1.7659404592882538e-5,-6.096841423803015e-8,0.004028427921096438,1.7886793273255926e-5,-6.142604364033798e-8,0.00402843964084909,1.8035151508268353e-5,-6.172486403108444e-8,0.004028445012514573,1.809312331270539e-5,-6.184175008856881e-8,0.0040284773268235005,1.8062494703952662e-5,-6.177988665082503e-8,0.004028567910222432,1.7958723498241694e-5,-6.156990468255793e-8,0.004028741861400401,1.781021131030546e-5,-6.12686094634135e-8,0.0040290136622913525,1.765619786846825e-5,-6.095496322789188e-8,0.0040293826809504,1.754280016104753e-5,-6.07222216328837e-8,0.004029829124215082,1.751619084809753e-5,-6.066410876225836e-8,0.004030312256108125,1.7612020509539247e-5,-6.085324393616324e-8,0.004030774031389632,1.7841815454699297e-5,-6.131341293797681e-8,0.00403115142107213,1.8180564860966387e-5,-6.199433879515745e-8,0.0040313974300052735,1.8563852856182064e-5,-6.27659191383855e-8,0.004031503203472192,1.8902856758312773e-5,-6.344869780801121e-8,0.004031507215610012,1.9116091643266002e-5,-6.387812802255732e-8,0.004031481930153734,1.916242569246173e-5,-6.397118926916185e-8,0.004031503768949901,1.9055383830683572e-5,-6.375504333127174e-8,0.004031624504421274,1.885153534554923e-5,-6.334344369125224e-8,0.00403185885677837,1.8623798019755862e-5,-6.288296518438462e-8,0.004032189274944319,1.8436620157024645e-5,-6.250321630029159e-8,0.004032579178971542,1.83324637336343e-5,-6.228981683190497e-8,0.004032986090714059,1.8329161981569122e-5,-6.227911243671427e-8,0.0040333708125981456,1.8423493871162983e-5,-6.246522183995398e-8,0.004033702484811329,1.8596808258675e-5,-6.281112340841897e-8,0.0040339608469825575,1.882045266602357e-5,-6.325939983367222e-8,0.004034137070431829,1.906045203237547e-5,-6.374161530130195e-8,0.004034233855241526,1.928170635220029e-5,-6.41868612531973e-8,0.004034264876079334,1.9452018078757834e-5,-6.453000617107153e-8,0.004034253391531761,1.9546047063260236e-5,-6.47197441623075e-8,0.004034229755724816,1.9548977882390267e-5,-6.472596597020264e-8,0.004034227730682795,1.9459320969577683e-5,-6.454533452522716e-8,0.004034279865723162,1.9290186380915923e-5,-6.420383235003002e-8,0.004034412486171448,1.9068594732676885e-5,-6.375547510633614e-8,0.00403464093034948,1.8832637893526655e-5,-6.327679436677401e-8,0.004034965687074627,1.8626536313167505e-5,-6.285707244922939e-8,0.004035370034247165,1.8493819644007736e-5,-6.258465123000945e-8,0.004035819874790727,1.846886648562048e-5,-6.252971679787746e-8,0.004036266904185114,1.856732169763407e-5,-6.272465029492704e-8,0.0040366565598250765,1.8777113738250836e-5,-6.31455681508602e-8,0.0040369414612311345,1.9053783781087113e-5,-6.370271942688705e-8,0.004037098344333292,1.932539834606959e-5,-6.42504851948613e-8,0.004037141902942749,1.951083270094533e-5,-6.462457097034529e-8,0.004037125865169994,1.954813798447868e-5,-6.46995458547251e-8,0.004037125861820998,1.9419995141300983e-5,-6.444028053955575e-8,0.00403721048480607,1.9160768124473176e-5,-6.391602935018678e-8,0.004037416430514758,1.88403649270376e-5,-6.326771012194285e-8,0.0040377405727112705,1.853563684839144e-5,-6.265022145619625e-8,0.004038149143064464,1.8305856043064805e-5,-6.218312567891382e-8,0.004038594479970898,1.8181596820678142e-5,-6.192833669694351e-8,0.004039029805036155,1.8165835433560526e-5,-6.189230839848963e-8,0.004039418015136255,1.8241197474729e-5,-6.204049708155263e-8,0.0040397350446880215,1.837815198734788e-5,-6.231370568667206e-8,0.004039969999138671,1.8541650006683282e-5,-6.264136381327966e-8,0.004040124041563737,1.8695860404660215e-5,-6.295108921511804e-8,0.004040209074777056,1.8807706049100226e-5,-6.317591860236914e-8,0.004040246363654397,1.88500021655281e-5,-6.32607471793734e-8,0.004040264737547788,1.8804636954320954e-5,-6.316879237455187e-8,0.004040297831687618,1.866571824947087e-5,-6.288791561688243e-8,0.004040379958326903,1.844201983765977e-5,-6.243550964565625e-8,0.004040540705219954,1.8157672301950075e-5,-6.185990253089828e-8,0.004040799030115895,1.7850119174229367e-5,-6.123634554926798e-8,0.0040411581509778,1.7564868093298403e-5,-6.065660011340943e-8,0.004041602732207329,1.734741098407994e-5,-6.021277355052825e-8,0.0040420995762303815,1.7233639004230466e-5,-5.997796689164541e-8,0.004042602323436688,1.724067110935005e-5,-5.998756494201581e-8,0.00404305992163886,1.736012884995211e-5,-6.022533875758978e-8,0.004043427966196684,1.7555910433464828e-5,-6.061865961283453e-8,0.0040436810936756275,1.7768500926616962e-5,-6.104709566844615e-8,0.004043823230883101,1.7927149455153616e-5,-6.1367140862782e-8,0.004043891164479845,1.7968977540453174e-5,-6.145110341710769e-8,0.004043947176700689,1.7860007267002482e-5,-6.122984744605595e-8,0.0040440603521150744,1.760913353792817e-5,-6.072111082777755e-8,0.004044282997667049,1.726658843338252e-5,-6.002633777071843e-8,0.004044633306112802,1.6905912165610116e-5,-5.929416783466505e-8,0.0040450925842591984,1.6598297213721576e-5,-5.866858772554347e-8,0.004045616463144047,1.6391968202125593e-5,-5.824729428445154e-8,0.004046152091763345,1.630410509649094e-5,-5.80653572847142e-8,0.004046652760383014,1.6324348036651065e-5,-5.8102214711525505e-8,0.004047085929565268,1.6424100266681775e-5,-5.830035937199191e-8,0.004047435228495953,1.6566189179488793e-5,-5.8584786032397173e-8,0.004047698959744002,1.671216642566975e-5,-5.8877737365682856e-8,0.004047887444712365,1.6826943646276348e-5,-5.9108127517374904e-8,0.00404802049508203,1.6881670483517197e-5,-5.9217433706880595e-8,0.004048125273323472,1.6855947238255258e-5,-5.9164217502915826e-8,0.004048234127401434,1.674008799311883e-5,-5.8928701076803824e-8,0.004048381670060571,1.6537530470193916e-5,-5.851761039418674e-8,0.004048600436416601,1.6266746291805815e-5,-5.796802584768781e-8,0.004048914984056892,1.5961326425245878e-5,-5.734760338043135e-8,0.004049335282066074,1.566668088020222e-5,-5.674801447212363e-8,0.0040498513719114376,1.5432414454828066e-5,-5.626965875165331e-8,0.004050431921230339,1.5301075079280176e-5,-5.5998974280483204e-8,0.004051028668995067,1.5296083993458358e-5,-5.598395649797168e-8,0.004051586738790464,1.5412983005455173e-5,-5.62162478465142e-8,0.004052058328986434,1.5617600591062285e-5,-5.6627167195976384e-8,0.004052415758160085,1.5852514347711364e-5,-5.7100596870077054e-8,0.004052659913064241,1.6050494133565283e-5,-5.7500160816537554e-8,0.0040528214440387015,1.6151570852562244e-5,-5.7703907353645075e-8,0.004052953861013157,1.611931020329749e-5,-5.763746552942237e-8,0.004053119682835466,1.595162622613579e-5,-5.729612717276807e-8,0.004053373025435257,1.5682212292362576e-5,-5.6747852350428666e-8,0.004053744027610918,1.537106055446932e-5,-5.611410681536437e-8,0.004054230846152612,1.5086637935810276e-5,-5.553375453822118e-8,0.004054802304411898,1.488624806595296e-5,-5.5123232299645195e-8,0.0040554095026198176,1.4802029857689209e-5,-5.494808734565473e-8,0.004056000829014219,1.4836834906018199e-5,-5.501449222707493e-8,0.0040565344012080526,1.496913360261363e-5,-5.527907211829798e-8,0.004056984713435475,1.5162646600086324e-5,-5.5668377746635783e-8,0.004057343673139978,1.537616244421555e-5,-5.609881419197702e-8,0.004057618154709957,1.5570907870645105e-5,-5.6491651348612124e-8,0.004057826336088842,1.571498161585009e-5,-5.678207302107251e-8,0.004057994236563965,1.5785663812756403e-5,-5.692387796847087e-8,0.004058152876449292,1.5770755436499932e-5,-5.6892175274642595e-8,0.004058335730497766,1.56698047725992e-5,-5.6685842838322767e-8,0.004058575736492297,1.5495479753201927e-5,-5.6330312045967666e-8,0.004058901067412491,1.5274593050186677e-5,-5.587969998232432e-8,0.0040593292989023755,1.504744016568601e-5,-5.541556302293769e-8,0.004059860688647646,1.4863522530534258e-5,-5.5038323485976716e-8,0.004060472924789321,1.4772178278052189e-5,-5.484831991380623e-8,0.004061121016256655,1.4808824187926628e-5,-5.491786333355384e-8,0.004061745398388068,1.4980995070619321e-5,-5.526278213620586e-8,0.0040622878335508355,1.5260905424743596e-5,-5.58271445794069e-8,0.00406270977840194,1.5589957864201896e-5,-5.6492254117461846e-8,0.004063005280007226,1.5895053516072876e-5,-5.71096919262533e-8,0.004063202722944347,1.611033761314179e-5,-5.7545486920249105e-8,0.004063355322523949,1.6195737978189514e-5,-5.7717829505718655e-8,0.004063524982892078,1.614629397440836e-5,-5.761611433490631e-8,0.0040637654881181635,1.5990874718776372e-5,-5.729846921069878e-8,0.0040641096822484745,1.5782374878243806e-5,-5.687200018963553e-8,0.004064563196214051,1.558309622417832e-5,-5.646323142518138e-8,0.004065105372946402,1.5449401160722053e-5,-5.6186965778914343e-8,0.004065696400389077,1.5419375479983378e-5,-5.612111731815594e-8,0.004066288252635861,1.5506240841777267e-5,-5.6293121212787874e-8,0.004066836155862962,1.5698542971993716e-5,-5.668010909236039e-8,0.004067307459695976,1.5966009975132922e-5,-5.7220705532581126e-8,0.00406768613309999,1.6268363193234948e-5,-5.783296271933897e-8,0.004067972917711898,1.6564106468153707e-5,-5.8432340733695405e-8,0.004068182486831887,1.681727652571284e-5,-5.894554234053274e-8,0.00406833933892352,1.7001503611134662e-5,-5.931880776278692e-8,0.004068473756113949,1.7101841750667816e-5,-5.952159722920657e-8,0.004068618388467829,1.7115337876791556e-5,-5.9547687041123166e-8,0.004068805319711415,1.7051183194416186e-5,-5.941546370891142e-8,0.004069063045413328,1.693080237181354e-5,-5.9168176976249445e-8,0.004069412642286213,1.6787584460103433e-5,-5.887352588619779e-8,0.004069862675046376,1.6665125654505054e-5,-5.862021049541122e-8,0.0040704033862420915,1.6612132979317868e-5,-5.8507611354420696e-8,0.004071002433343476,1.6672362317351996e-5,-5.8625252169843815e-8,0.004071606146962371,1.6870078458229394e-5,-5.90230533337598e-8,0.004072150180031084,1.7195707718266797e-5,-5.968194828764344e-8,0.004072579327330133,1.7600304654934825e-5,-6.050250155157372e-8,0.004072869038903364,1.800622384140864e-5,-6.132663264350784e-8,0.004073036765467772,1.8332569931295446e-5,-6.1989505493645e-8,0.004073135737926338,1.852349328887892e-5,-6.237718185712606e-8,0.004073234663677566,1.85650892687075e-5,-6.246099877342193e-8,0.004073394556097025,1.848476914851136e-5,-6.229627231999442e-8,0.004073652726352091,1.833737723399551e-5,-6.199414171839608e-8,0.004074017372470005,1.818678426452505e-5,-6.168431508746106e-8,0.0040744707750797445,1.808984214398682e-5,-6.148259812586677e-8,0.004074977337424825,1.8085790232343694e-5,-6.14693541796517e-8,0.004075493263269258,1.8191439776279438e-5,-6.167952512829171e-8,0.004075975798354961,1.840124607827241e-5,-6.210249277646861e-8,0.004076390776901895,1.8691144047334405e-5,-6.268964660170682e-8,0.004076717622217568,1.902494399145827e-5,-6.336732629192284e-8,0.004076951353972912,1.9361837440099986e-5,-6.405219775676581e-8,0.004077101746210127,1.96635091438295e-5,-6.46659095300111e-8,0.0040771903314508785,1.989970237527024e-5,-6.514655672234517e-8,0.004077246262806788,2.005165635670929e-5,-6.545569860243698e-8,0.004077302032084395,2.0113486301099913e-5,-6.558109876386352e-8,0.0040773896466789,2.0092092019349717e-5,-6.553647593087778e-8,0.004077537342209875,2.0006253451383885e-5,-6.535969647604283e-8,0.004077766555167821,1.988527789663943e-5,-6.511016738314298e-8,0.004078088689458051,1.976710784085783e-5,-6.486516989220184e-8,0.004078501328342447,1.96951136887764e-5,-6.471343334262049e-8,0.004078984379126887,1.971216651307541e-5,-6.474300004433253e-8,0.004079498090171917,1.985082590723176e-5,-6.502100525056876e-8,0.004079986278779378,2.0120252289371937e-5,-6.55667052274478e-8,0.004080388235941525,2.0494122797303468e-5,-6.632662153528476e-8,0.004080659282108669,2.0908086133771597e-5,-6.716933519624624e-8,0.0040807921628955995,2.1274886377819846e-5,-6.791652262392293e-8,0.004080825530396653,2.151542116556529e-5,-6.840653341073122e-8,0.00408083076942298,2.1590301346052778e-5,-6.855881484240877e-8,0.00408088328291802,2.1513241158620907e-5,-6.84010788689678e-8,0.004081035155949392,2.134019848115492e-5,-6.804703209129059e-8,0.004081302546732209,2.1144355238359504e-5,-6.764545015636383e-8,0.004081668918553097,2.0992072249557375e-5,-6.733141248227607e-8,0.00408209685499066,2.092848134334002e-5,-6.719713964870882e-8,0.004082540990125184,2.09731231952271e-5,-6.72830951751148e-8,0.004082958197133572,2.112218615191573e-5,-6.758231956110174e-8,0.00408331422869279,2.1353847294547875e-5,-6.805099975797541e-8,0.0040835874057665485,2.1634567155020024e-5,-6.862106700376206e-8,0.004083770116681637,2.1925434668298697e-5,-6.921309213990532e-8,0.004083868551366543,2.218816882099307e-5,-6.974866033503243e-8,0.0040839008942840345,2.239039499761978e-5,-7.016132947403248e-8,0.004083894232067077,2.250978778831476e-5,-7.0405207142333e-8,0.004083880571241067,2.25366960163881e-5,-7.046030306590217e-8,0.00408389252947929,2.2475031488631666e-5,-7.033426314434203e-8,0.004083959249418965,2.2341562177163083e-5,-7.00608865512821e-8,0.004084102836943754,2.2163971654346905e-5,-6.969625158825354e-8,0.004084335399848269,2.1977972812721735e-5,-6.931302372966625e-8,0.004084656614019778,2.1823582213426522e-5,-6.899305140282665e-8,0.004085051725131036,2.1740298666453316e-5,-6.881758196303943e-8,0.00408549043013785,2.1760499615591525e-5,-6.88536205880247e-8,0.004085928134416261,2.1900671848150498e-5,-6.913569532030017e-8,0.0040863118371121795,2.215161693360532e-5,-6.964550832191338e-8,0.004086592559838579,2.2471365259167905e-5,-7.029728262333709e-8,0.004086743511323791,2.278742626781085e-5,-7.094245749548945e-8,0.004086777069432108,2.3014650869490377e-5,-7.140649996468963e-8,0.004086748324489586,2.3086554162397423e-5,-7.155319319147187e-8,0.004086737210606845,2.298478523801362e-5,-7.134486880118048e-8,0.0040868162246094596,2.274751838270059e-5,-7.085933294161156e-8,0.004087022774633262,2.245098166859568e-5,-7.025197183973786e-8,0.004087351063401967,2.21773293531232e-5,-6.969023534135919e-8,0.004087762942117613,2.1988078250473938e-5,-6.929965848306815e-8,0.004088206426731321,2.1912888693068682e-5,-6.914113536613453e-8,0.0040886315320029145,2.1951514131721826e-5,-6.921484527465759e-8,0.004088999563181579,2.2082048330308014e-5,-6.947683655171173e-8,0.004089286694209541,2.227007195705091e-5,-6.985740065000953e-8,0.0040894840997412005,2.2476260228544262e-5,-7.027641992708612e-8,0.004089596524746182,2.2662126678655353e-5,-7.065510425729817e-8,0.004089640201779963,2.2794420332461283e-5,-7.092513321189004e-8,0.0040896402838893646,2.284862699133553e-5,-7.103599943485881e-8,0.004089627705490863,2.2811697616913437e-5,-7.096068474456991e-8,0.004089635411507748,2.2683801109797253e-5,-7.069921973276663e-8,0.004089694115390104,2.2478677051700234e-5,-7.027932793650815e-8,0.004089828036207196,2.2222286505042233e-5,-6.975365444924291e-8,0.004090051161470819,2.1949786269337134e-5,-6.919369964114232e-8,0.004090364511991667,2.170103932630054e-5,-6.86808528694382e-8,0.004090754790796106,2.151498959955255e-5,-6.829506592183514e-8,0.004091194666195651,2.142330844766789e-5,-6.810185855541579e-8,0.004091644993372157,2.1443624281504225e-5,-6.813824314344391e-8,0.0040920596967446154,2.1572833523424404e-5,-6.83986719144852e-8,0.004092394222561333,2.1782031162445324e-5,-6.88243378416857e-8,0.00409261763274889,2.2016102025325163e-5,-6.93022303226837e-8,0.0040927261558925485,2.2201941671687712e-5,-6.968213454108016e-8,0.004092752390399775,2.226781056753669e-5,-6.98165868041908e-8,0.004092761828782771,2.217010941896625e-5,-6.961594162020133e-8,0.004092832347522563,2.191489742469643e-5,-6.90924145000651e-8,0.004093023916310563,2.1559197363135236e-5,-6.836256507621499e-8,0.004093355382863215,2.1188443825140062e-5,-6.760103065423595e-8,0.004093801442773309,2.0883140487863215e-5,-6.697239893387999e-8,0.004094308353665391,2.0693642127327703e-5,-6.657980636574702e-8,0.004094815962852751,2.0632674505226746e-5,-6.644971858931919e-8,0.0040952745320277885,2.068224872375703e-5,-6.654596569206641e-8,0.0040956524926629954,2.0806194730034872e-5,-6.67951505187713e-8,0.004095937126088291,2.0961685991746184e-5,-6.711000602505771e-8,0.004096131713874594,2.1107263596701378e-5,-6.740571701477901e-8,0.004096251810518326,2.1207630473032185e-5,-6.760979080112129e-8,0.004096321810660583,2.123646163530461e-5,-6.766796655208107e-8,0.004096371868974252,2.117828020698269e-5,-6.754820351325027e-8,0.004096434786498749,2.102987222746858e-5,-6.724363080817744e-8,0.0040965424713340064,2.0801158863912584e-5,-6.677428971329367e-8,0.004096721827951759,2.0514974467630822e-5,-6.618661611930796e-8,0.004096990403276643,2.0205057223031076e-5,-6.554934138305202e-8,0.004097352573177603,1.9911884762201487e-5,-6.494509874821933e-8,0.0040977972420050135,1.9676507214749987e-5,-6.445798705026133e-8,0.00409829795293573,1.953307645034436e-5,-6.415839226662203e-8,0.00409881595753222,1.950131413892924e-5,-6.408749767114518e-8,0.0040993062317397294,1.958041987144307e-5,-6.424454113672405e-8,0.004099725949858662,1.9745840788228674e-5,-6.457984351456717e-8,0.004100044534043069,1.9950335607570126e-5,-6.499672432697775e-8,0.004100253632198516,2.013084019847643e-5,-6.536554032319219e-8,0.004100374104936217,2.0221969791798727e-5,-6.555157283498206e-8,0.004100455954183344,2.017477740412432e-5,-6.545379905395303e-8,0.0041005675891791,1.9975516702515512e-5,-6.504358355699308e-8,0.004100774805833544,1.965545542492212e-5,-6.438482789008002e-8,0.004101116885460426,1.928372582152993e-5,-6.361922074229146e-8,0.004101591870619371,1.894360567216253e-5,-6.291755062884213e-8,0.004102159238000308,1.8703470116557066e-5,-6.242018269746027e-8,0.00410275747591571,1.859703517591237e-5,-6.219659152435074e-8,0.0041033257619690735,1.8620141853715126e-5,-6.223872071816769e-8,0.004103819526959297,1.874065523208672e-5,-6.248114525442182e-8,0.004104216341986781,1.8912959818053868e-5,-6.283064370406833e-8,0.004104514378076207,1.909031638156852e-5,-6.319144791179558e-8,0.004104727475774354,1.9232607115184218e-5,-6.348113509152911e-8,0.004104879851426564,1.931006277488053e-5,-6.363836365897142e-8,0.004105001750774871,1.9304641429037065e-5,-6.362581755356893e-8,0.004105126061105588,1.9210481227772614e-5,-6.343120965738759e-8,0.004105285298052878,1.903412670485694e-5,-6.306774716776545e-8,0.004105508333763851,1.879451414608241e-5,-6.257405625726658e-8,0.004105816518487927,1.8522105372562953e-5,-6.201237977882163e-8,0.004106219408261088,1.8256224455901378e-5,-6.146316659960243e-8,0.004106711031782206,1.8039834534071813e-5,-6.101448588822051e-8,0.00410726820104739,1.7911758794004197e-5,-6.074620274769431e-8,0.00410785241819564,1.7897526858302653e-5,-6.071123337928272e-8,0.004108416180285091,1.8001212401072268e-5,-6.091866896065255e-8,0.0041089130241994485,1.820113748087769e-5,-6.132469615222139e-8,0.004109309104207408,1.8451646262672002e-5,-6.183595690444914e-8,0.0041095931983087045,1.869153552715818e-5,-6.232669811154938e-8,0.004109782084836411,1.8857869433917337e-5,-6.266717936609684e-8,0.004109919049387194,1.890226775739589e-5,-6.275732940350907e-8,0.004110064678761718,1.8805497319272342e-5,-6.255697025959145e-8,0.004110281124285083,1.858555641793577e-5,-6.210261238000375e-8,0.004110613703963449,1.829511610327427e-5,-6.150227952510236e-8,0.004111076186029953,1.8007169267841526e-5,-6.090602884987728e-8,0.004111646199815092,1.779292050803584e-5,-6.046048759796877e-8,0.0041122733354077975,1.770055011084275e-5,-6.026514317284309e-8,0.0041128962379817155,1.774357289428051e-5,-6.034829633072815e-8,0.004113460777981091,1.790224628658376e-5,-6.06698069713779e-8,0.004113932211375858,1.8134726118468195e-5,-6.114390913053563e-8,0.004114298813701848,1.8391239948785017e-5,-6.166830949707429e-8,0.004114568894174971,1.862570592744579e-5,-6.214811466500701e-8,0.004114764817887481,1.8802594772439982e-5,-6.251002429640857e-8,0.004114916941016438,1.8899611324047082e-5,-6.270792853777051e-8,0.004115058788903396,1.8907892822336005e-5,-6.272336282371548e-8,0.004115223529956793,1.883126597625609e-5,-6.256398245923092e-8,0.00411544112890223,1.8685396522870248e-5,-6.226179188618023e-8,0.004115735426728429,1.8496880076378558e-5,-6.187126850283822e-8,0.004116120670135077,1.830166124887891e-5,-6.146615285795259e-8,0.0041165976094830435,1.8141735245261587e-5,-6.113275473128614e-8,0.0041171501459813615,1.8059102673713814e-5,-6.095761535265301e-8,0.0041177444298378775,1.808677278934742e-5,-6.100903876410642e-8,0.0041183326482072515,1.8238377845822922e-5,-6.131565461947553e-8,0.004118862644895194,1.8500025366803055e-5,-6.184947666116739e-8,0.004119291845670744,1.882888305936909e-5,-6.252277761117837e-8,0.004119600995524518,1.916129270179671e-5,-6.320463576506777e-8,0.004119802051454148,1.9429176950619105e-5,-6.375467477591138e-8,0.004119936452241972,1.9579389208801835e-5,-6.406297574667329e-8,0.004120063979010977,1.958911524116044e-5,-6.408192449547398e-8,0.004120246088908799,1.9472222424355246e-5,-6.383944294513096e-8,0.00412052913259154,1.927501773422856e-5,-6.343041897475507e-8,0.004120932292519319,1.906320686341203e-5,-6.299000026420115e-8,0.0041214433902594435,1.890409343719484e-5,-6.265701578056743e-8,0.004122023468462977,1.884920647966687e-5,-6.253815085908088e-8,0.004122618451191795,1.8922390072082127e-5,-6.268323571647604e-8,0.004123173897075194,1.911656377839061e-5,-6.307832429936484e-8,0.0041236480036418895,1.939920158835302e-5,-6.365677983994343e-8,0.004124019202185466,1.9723461236942205e-5,-6.432213367561228e-8,0.004124287288244285,2.0040448516884058e-5,-6.49734234542431e-8,0.004124469567213898,2.0308896945277934e-5,-6.552527867409888e-8,0.004124594685466592,2.050066336393985e-5,-6.591937018917111e-8,0.004124696486907284,2.0602417835979338e-5,-6.61279466825767e-8,0.004124809121272801,2.0614914334906605e-5,-6.615231627858997e-8,0.00412496354787499,2.055127128513555e-5,-6.601926590271963e-8,0.004125184918062037,2.0435134717556e-5,-6.57772755655983e-8,0.004125490124622406,2.029885113054249e-5,-6.549281651963915e-8,0.004125884999648892,2.0181120072676474e-5,-6.524562199853932e-8,0.004126361187835996,2.012312227810521e-5,-6.512079755335909e-8,0.004126893637683346,2.016202160381174e-5,-6.519543374690128e-8,0.0041274407643772945,2.0321520249793008e-5,-6.551902559572129e-8,0.0041279499280898095,2.0601210358685798e-5,-6.609131944530118e-8,0.00412836969991199,2.0969274287628928e-5,-6.684706034379096e-8,0.004128666706476001,2.1364544730577544e-5,-6.766013860494177e-8,0.0041288402130868545,2.1711284432474734e-5,-6.837410979895914e-8,0.0041289260941142205,2.1943052421982018e-5,-6.88515335136089e-8,0.0041289863790102055,2.2025323150899638e-5,-6.902071138081227e-8,0.004129088666642758,2.1966206179071726e-5,-6.889782614187511e-8,0.0041292849632450085,2.1811418243791324e-5,-6.857662713945957e-8,0.0041295982485091585,2.1627811881081866e-5,-6.819461136355642e-8,0.004130019713586947,2.1483464269815928e-5,-6.789215710034456e-8,0.004130514847826705,2.1431037977969292e-5,-6.777831067919666e-8,0.004131034556120914,2.1497848193685356e-5,-6.79102050168444e-8,0.0041315275855180284,2.1683260008845836e-5,-6.828741599827955e-8,0.0041319514162801475,2.196236627165169e-5,-6.885922779761631e-8,0.0041322797208666745,2.2294052841138688e-5,-6.95410620986726e-8,0.004132505435793167,2.2631076927335552e-5,-7.023526137874012e-8,0.004132639559466678,2.2929656701609897e-5,-7.085103297987233e-8,0.0041327068073958445,2.3156619956378226e-5,-7.131941152567361e-8,0.004132739789933165,2.329325563893979e-5,-7.160135080100659e-8,0.0041327732697304005,2.3336073204430915e-5,-7.168931655885992e-8,0.004132839498526474,2.3295362222597494e-5,-7.160425905283545e-8,0.00413296489491445,2.319267720853539e-5,-7.139037898864675e-8,0.004133167727447015,2.3058081690060263e-5,-7.110948143247038e-8,0.004133456251584568,2.2927368246838634e-5,-7.083536734083875e-8,0.004133826864680379,2.2838893766911416e-5,-7.064744138921729e-8,0.004134262246139552,2.2829234263837425e-5,-7.062178621276581e-8,0.004134730285875639,2.2926717969593375e-5,-7.081769093706275e-8,0.004135185707911027,2.31425991815179e-5,-7.125916402041035e-8,0.0041355769071945506,2.346164589422353e-5,-7.191520269449173e-8,0.004135859441965122,2.383687117408675e-5,-7.268874415754124e-8,0.00413601369908566,2.4195039750171892e-5,-7.342810252300716e-8,0.004136058529573073,2.4456681249135846e-5,-7.396855759155849e-8,0.004136050487278654,2.456513384479195e-5,-7.419258398190955e-8,0.004136065019007573,2.4509860369459744e-5,-7.407805053129414e-8,0.004136168231272512,2.4330162569653813e-5,-7.370577611668552e-8,0.004136394459822497,2.409789030051738e-5,-7.322376999160329e-8,0.0041367395368764786,2.389056192725738e-5,-7.279186780905995e-8,0.0041371686481556655,2.3768649735412706e-5,-7.253505860848046e-8,0.004137631091783037,2.3763952092816136e-5,-7.251957894397494e-8,0.0041380747660009765,2.3878490225956004e-5,-7.275049880309497e-8,0.004138456791204421,2.4090059448810835e-5,-7.318286374029693e-8,0.004138749601503419,2.4360668956780575e-5,-7.37387885346733e-8,0.004138943194899096,2.4645468588374668e-5,-7.4325712073413e-8,0.004139044422775969,2.49009409295305e-5,-7.485336553975188e-8,0.0041390740178470385,2.509158954761269e-5,-7.52478055388981e-8,0.004139062078858488,2.519450532721772e-5,-7.546109277291754e-8,0.004139042857680081,2.5201537323836e-5,-7.547591881161818e-8,0.004139049681730755,2.5119185084212284e-5,-7.530538123596477e-8,0.004139110696144454,2.4966623708413148e-5,-7.498882514872912e-8,0.004139245793706889,2.4772544989273615e-5,-7.458527889421062e-8,0.004139464664095014,2.4571523457755883e-5,-7.416602259172535e-8,0.0041397656452513715,2.4400247311316832e-5,-7.380696250121588e-8,0.004140135103394312,2.4293510720908743e-5,-7.358048043260725e-8,0.004140547313718007,2.427954414351527e-5,-7.354575599206736e-8,0.004140965413628404,2.4374141223041407e-5,-7.373639326420042e-8,0.004141344873455721,2.457362346913388e-5,-7.414551482757032e-8,0.004141641326420783,2.48483642172095e-5,-7.471205791422762e-8,0.0041418235765014145,2.5141002654557318e-5,-7.53169965475809e-8,0.004141889215372904,2.537511100337642e-5,-7.58014858398564e-8,0.004141874921065243,2.5477517766043897e-5,-7.601342829768719e-8,0.004141851043315424,2.5408217951499304e-5,-7.58696248028512e-8,0.004141897199717203,2.5181416417097176e-5,-7.539927233814727e-8,0.004142070032062376,2.4862233791190885e-5,-7.473692425033855e-8,0.004142382136416294,2.4539521848464896e-5,-7.406615519129582e-8,0.004142802962387187,2.4291862821753357e-5,-7.354938496791458e-8,0.004143276515293847,2.4165133492908547e-5,-7.328171206236878e-8,0.004143742610608551,2.416776805253065e-5,-7.328119646301892e-8,0.004144152149564842,2.427840550811608e-5,-7.350451056510971e-8,0.004144474270556827,2.4457891470911152e-5,-7.387144252687797e-8,0.004144697408744952,2.4660435604785124e-5,-7.428767698568889e-8,0.004144827026181618,2.484202674459949e-5,-7.466207837487929e-8,0.004144881994566124,2.4966196964502726e-5,-7.491871231531306e-8,0.0041448905048311665,2.500781452275799e-5,-7.500493400442998e-8,0.004144885711446158,2.4955282841337656e-5,-7.489617429690564e-8,0.004144901261135358,2.481120187725696e-5,-7.459741678649363e-8,0.004144966982912023,2.4591489692204364e-5,-7.41413441693972e-8,0.004145105121592094,2.4322991873659133e-5,-7.358329870301691e-8,0.004145327544473218,2.403980237268326e-5,-7.299364256044502e-8,0.004145634190738719,2.377879003345024e-5,-7.24485997969921e-8,0.0041460127758167105,2.3574818073592004e-5,-7.202053283003591e-8,0.00414643966336036,2.3455929817344242e-5,-7.17680808924154e-8,0.004146881876040019,2.343860803994068e-5,-7.172625974921142e-8,0.0041473004753961136,2.3523144481116746e-5,-7.189658153429537e-8,0.004147656007247302,2.3689506623327728e-5,-7.223811648289735e-8,0.004147916808771172,2.3895221603221915e-5,-7.266284458651311e-8,0.0041480699650081705,2.4078275121643128e-5,-7.304167053080141e-8,0.004148132195104441,2.4168654642653938e-5,-7.322864004199276e-8,0.004148154320381181,2.4109831376965727e-5,-7.310586674653458e-8,0.004148211444887462,2.388423375298592e-5,-7.263656875158706e-8,0.004148377033934869,2.3528252738308904e-5,-7.189610084153054e-8,0.004148691963497075,2.3123109596003326e-5,-7.105280147716092e-8,0.0041491473031022115,2.27629923552026e-5,-7.030185625864194e-8,0.004149691355374006,2.251899382813585e-5,-6.979067613092937e-8,0.004150253959921051,2.2418989460666156e-5,-6.957735617198645e-8,0.0041507716459602394,2.2449203170718728e-5,-6.963393426794152e-8,0.0041512023452277315,2.2568972898863263e-5,-6.987681903782312e-8,0.004151528686471275,2.2727414027209948e-5,-7.020106669410957e-8,0.004151754402958528,2.287579296648152e-5,-7.050582576156142e-8,0.004151898371708361,2.2974592076086222e-5,-7.070894000466604e-8,0.004151988885126911,2.2996670531363484e-5,-7.075363347500511e-8,0.004152058955955876,2.2928322974470473e-5,-7.061092750138042e-8,0.004152142382845093,2.2769356506527704e-5,-7.02799821925708e-8,0.0041522701226427315,2.253246200945357e-5,-6.978684571499767e-8,0.004152466791086021,2.2241707192617996e-5,-6.91812637823709e-8,0.004152747431065876,2.192983419561754e-5,-6.853098876725601e-8,0.004153115009949348,2.163416853510276e-5,-6.791329347391853e-8,0.004153559267504416,2.1391372281000134e-5,-6.740420502635174e-8,0.004154057371060857,2.1231670864169294e-5,-6.706668724391143e-8,0.004154576533781043,2.1173336928637963e-5,-6.693925978559595e-8,0.004155078480972005,2.121824985076246e-5,-6.702665399660066e-8,0.00415552544495053,2.1349266802329204e-5,-6.729405133405011e-8,0.004155887326128362,2.153005321203464e-5,-6.76663910045802e-8,0.004156149549489265,2.1708297200182368e-5,-6.803485371706521e-8,0.004156320429207047,2.18236504091612e-5,-6.827342868724723e-8,0.004156435436193511,2.1821325191162423e-5,-6.826745995209362e-8,0.004156554325266331,2.1670061717922965e-5,-6.795132318021076e-8,0.004156747395736589,2.137880483492358e-5,-6.734326680703699e-8,0.004157071827894007,2.100211751024774e-5,-6.655662407843876e-8,0.004157547507220719,2.0626045399976664e-5,-6.577030263586701e-8,0.004158146618620178,2.033725265562143e-5,-6.516458127082557e-8,0.0041588047435924405,2.0191197783449442e-5,-6.485500848833399e-8,0.00415944679960301,2.0196654226797564e-5,-6.486025586921148e-8,0.004160012347865569,2.0321627878139327e-5,-6.51143438105989e-8,0.004160468885463152,2.0512010737360385e-5,-6.550526134746365e-8,0.004160812154099564,2.071068901280456e-5,-6.591452917912113e-8,0.004161059067630895,2.087014425419266e-5,-6.624331294613351e-8,0.004161239040043181,2.095792204410952e-5,-6.642382604808944e-8,0.004161386829742425,2.095738077188751e-5,-6.642102047979822e-8,0.0041615375835493676,2.0866361049708102e-5,-6.622998144256762e-8,0.004161723445766619,2.069540030448162e-5,-6.587231810027344e-8,0.004161970833005958,2.0465957657424777e-5,-6.53924752623177e-8,0.004162297807662163,2.0208374532718804e-5,-6.485342857751e-8,0.004162711465524075,1.9958972538912966e-5,-6.433060157681065e-8,0.004163205788963567,1.9755721872438256e-5,-6.390289279020207e-8,0.004163760874885751,1.9632401292486634e-5,-6.364064398012052e-8,0.0041643445126078645,1.9611945515193513e-5,-6.359191191485507e-8,0.004164916661599382,1.9700370056451175e-5,-6.376982675484982e-8,0.004165436593260296,1.9883038081479463e-5,-6.414465536185601e-8,0.004165871533002719,2.0124840290481865e-5,-6.464389273479223e-8,0.004166204973161034,2.03750141868381e-5,-6.516203187808346e-8,0.0041664427071129,2.0576291719662896e-5,-6.557950750839939e-8,0.004166614831251215,2.067725739446178e-5,-6.578854573835485e-8,0.004166772201513261,2.064596860090837e-5,-6.572180046924913e-8,0.004166976394844767,2.0481684872547044e-5,-6.537706967734264e-8,0.004167283762105637,2.0220289969068403e-5,-6.482876722062341e-8,0.0041677270966903575,1.9928853053708316e-5,-6.42166276496646e-8,0.004168301889621721,1.9687639520167372e-5,-6.370817178698891e-8,0.004168964945397345,1.9564346141463034e-5,-6.344493463573707e-8,0.0041696482095524585,1.9591663234778752e-5,-6.349560115607152e-8,0.004170281928490304,1.975909669494271e-5,-6.383883261318782e-8,0.004170815776114936,2.002177562328637e-5,-6.438149484450375e-8,0.004171229165072177,2.0319307693815556e-5,-6.499787658365365e-8,0.004171529641595815,2.0594371506068787e-5,-6.556842529790701e-8,0.004171744205095692,2.08044574697309e-5,-6.600426377969002e-8,0.004171909319060356,2.0925909999591906e-5,-6.625570255367975e-8,0.004172063035543002,2.095283945319605e-5,-6.631007474738575e-8,0.004172240006446445,2.0893942567726186e-5,-6.618518936112582e-8,0.004172468631381149,2.0769185793469826e-5,-6.592244924085984e-8,0.00417276921141435,2.0606998287037323e-5,-6.558098507505531e-8,0.004173152263607924,2.044171213681954e-5,-6.523229587640529e-8,0.004173616699217774,2.0310521591751063e-5,-6.49539193513707e-8,0.004174148228173609,2.0249146804649307e-5,-6.482044670278411e-8,0.0041747190205534725,2.0285797724636808e-5,-6.489100076513135e-8,0.004175290038969232,2.043401685070224e-5,-6.519431780277011e-8,0.004175817138082009,2.0686286120805764e-5,-6.571531492271147e-8,0.004176260742955059,2.1011275247548487e-5,-6.638915896100802e-8,0.004176596947866172,2.135738903704526e-5,-6.710846106930013e-8,0.004176826283818876,2.1663316572518304e-5,-6.774516430718877e-8,0.004176976440504031,2.187329985370935e-5,-6.818241888125293e-8,0.004177097171342621,2.1952541600749897e-5,-6.834687461472092e-8,0.004177248393652027,2.1897850265493772e-5,-6.823110493770005e-8,0.004177484698447774,2.1740143881249863e-5,-6.789904756326871e-8,0.004177840456289382,2.153777152476557e-5,-6.74722389787032e-8,0.004178319648003268,2.1361956093379974e-5,-6.709951969906079e-8,0.004178893720907776,2.1277850737766288e-5,-6.69174602353876e-8,0.004179508920172153,2.1326593435868438e-5,-6.701273548062968e-8,0.00418010143870764,2.1514398644594126e-5,-6.739909921106913e-8,0.004180615325979776,2.181278040040501e-5,-6.801760816720763e-8,0.004181016588925626,2.2169477458321236e-5,-6.875930338309788e-8,0.004181298828271539,2.2524986894682156e-5,-6.949975199756988e-8,0.004181480040607371,2.282791399696808e-5,-7.013122390191389e-8,0.0041815939531634075,2.304443453220907e-5,-7.058260201965475e-8,0.004181680312312281,2.3160968578745368e-5,-7.082508197011263e-8,0.0041817771738139765,2.31820016723154e-5,-7.086767934850143e-8,0.004181916138040746,2.3125777208913207e-5,-7.074824050457918e-8,0.004182119981389813,2.301988109644779e-5,-7.052420786013162e-8,0.004182401587912403,2.2897560902910874e-5,-7.026493333350233e-8,0.004182763226082177,2.279464572132352e-5,-7.004528039888718e-8,0.004183195714757309,2.27463722411251e-5,-6.993905040066949e-8,0.0041836776903782045,2.2783245722880823e-5,-7.001037080800247e-8,0.004184175936522711,2.2925337371297516e-5,-7.030174363642383e-8,0.004184648351533992,2.3175376573468616e-5,-7.081948145094982e-8,0.00418505106926234,2.351265779926658e-5,-7.152078397866612e-8,0.00418534981740814,2.3891456557676195e-5,-7.231026107348822e-8,0.004185532699444083,2.4247798955379997e-5,-7.305402455302344e-8,0.0041856186975773695,2.4515523630203316e-5,-7.361333203789702e-8,0.004185656116733408,2.4647127383329684e-5,-7.388829334143641e-8,0.004185709463990267,2.4630561585255983e-5,-7.385309068068146e-8,0.004185839553237669,2.4494045601495442e-5,-7.356612233607162e-8,0.004186085175026919,2.4297013898756418e-5,-7.315119149276783e-8,0.004186453058714402,2.4111865678345753e-5,-7.275951997366621e-8,0.00418691819641979,2.4003918546233812e-5,-7.252797509274851e-8,0.004187432570247736,2.4015686123816057e-5,-7.254618294928173e-8,0.004187938527366445,2.4158751006996613e-5,-7.283932258420115e-8,0.00418838289655064,2.4413937365967342e-5,-7.336815666881627e-8,0.004188728513422404,2.4738606360928003e-5,-7.404399556996649e-8,0.00418896077263449,2.5078536869024493e-5,-7.475342352649681e-8,0.004189088187108331,2.5380979408035573e-5,-7.538568393181177e-8,0.004189137637378765,2.560542386655624e-5,-7.585541248978948e-8,0.004189146482758514,2.5729746333905715e-5,-7.611571356090715e-8,0.004189154226481784,2.5751295531856018e-5,-7.616056328669566e-8,0.004189195811872894,2.5684118435083626e-5,-7.601902615037475e-8,0.004189297432699497,2.55542284301067e-5,-7.574531169066045e-8,0.004189474640743976,2.539461358412779e-5,-7.54082984053367e-8,0.004189731923761839,2.5240920754474522e-5,-7.508253449426259e-8,0.004190062893369365,2.5127892543049684e-5,-7.484086743090381e-8,0.004190450577587119,2.508605327542561e-5,-7.474758404267058e-8,0.004190867863493793,2.5137902888573805e-5,-7.48504270355493e-8,0.004191278851066964,2.5293029167128904e-5,-7.517021445445091e-8,0.004191642553303303,2.55423836176811e-5,-7.568861108228818e-8,0.004191920429727899,2.585359199989586e-5,-7.633807975528864e-8,0.004192087961726734,2.6171043691637975e-5,-7.700197953776512e-8,0.0041921473996541884,2.6425138639552714e-5,-7.753404214212685e-8,0.004192134962329874,2.655208648022618e-5,-7.780007245043969e-8,0.004192114992464122,2.6518357750800253e-5,-7.772933711625707e-8,0.004192159595389882,2.6337159580545134e-5,-7.734907825665287e-8,0.0041923223662205,2.6066037508450072e-5,-7.677941655751047e-8,0.004192619875803577,2.578592305862587e-5,-7.618950486964727e-8,0.0041930293080447165,2.557321200031067e-5,-7.57392457018824e-8,0.004193500258489232,2.5478197525003033e-5,-7.553431849801728e-8,0.004193972401104941,2.5516253407646417e-5,-7.560771560475328e-8,0.004194391412284077,2.5670481527066318e-5,-7.592504671513956e-8,0.004194719476384159,2.5901118869691845e-5,-7.640387556528128e-8,0.004194939943894964,2.6157253045760205e-5,-7.693795310378307e-8,0.004195057196908215,2.6387965736528168e-5,-7.742045708403442e-8,0.004195093049339342,2.655137914482246e-5,-7.776307074307687e-8,0.0041950809049979216,2.662075619193178e-5,-7.790902792572845e-8,0.0041950589164355375,2.6587196549228087e-5,-7.783901651533447e-8,0.004195063418449753,2.6459035460426867e-5,-7.75700484300396e-8,0.004195123687424457,2.6258649342688074e-5,-7.714875237095379e-8,0.004195258624765763,2.6017731648806405e-5,-7.664139315682479e-8,0.0041954753979068695,2.5772178721423704e-5,-7.612311259338277e-8,0.004195769575099257,2.5557431308106203e-5,-7.566822001278618e-8,0.004196126138573454,2.540453466231477e-5,-7.534204817948078e-8,0.004196520954855405,2.53367037714102e-5,-7.51938225051339e-8,0.004196922622790946,2.5365966871741377e-5,-7.524954946219042e-8,0.004197295156724912,2.5489504985313087e-5,-7.550410520029874e-8,0.004197602564194241,2.5685951525308174e-5,-7.591317047680027e-8,0.004197816369561635,2.5913292788382522e-5,-7.638861304882352e-8,0.004197925960352721,2.6111518336327034e-5,-7.68040568734833e-8,0.004197949030411529,2.6213720596972247e-5,-7.701841069760118e-8,0.004197935777056729,2.6166841984154432e-5,-7.691972134593537e-8,0.004197959246279704,2.5955973534895593e-5,-7.647632694596954e-8,0.004198090449018128,2.561816100677808e-5,-7.576574198158926e-8,0.0041983690577137925,2.523320397695459e-5,-7.495518310321368e-8,0.00419878704502883,2.4893403872054307e-5,-7.423809664192561e-8,0.004199294657828197,2.466944744060831e-5,-7.37627848726335e-8,0.004199822567905109,2.4590529631573546e-5,-7.35909004360926e-8,0.004200305861270729,2.4644214422214637e-5,-7.369713717322046e-8,0.0042006995521685,2.478930388189759e-5,-7.399597656866322e-8,0.0042009837510207735,2.497203494463084e-5,-7.437531825774549e-8,0.004201161612568837,2.5139530804678885e-5,-7.472443695283559e-8,0.0042012538478359,2.524867550071118e-5,-7.495254886807737e-8,0.004201292331705662,2.527094607106964e-5,-7.49991216701699e-8,0.00420131393742547,2.5194311755950153e-5,-7.483814941996342e-8,0.004201354951284227,2.502295376661067e-5,-7.447781373617757e-8,0.0042014462866753815,2.4775206437341213e-5,-7.395626000164893e-8,0.004201609778427287,2.448005996210069e-5,-7.333420007618452e-8,0.004201855844869758,2.4172631007671907e-5,-7.268529378705414e-8,0.004202182698645817,2.3889171851144942e-5,-7.208562808425933e-8,0.004202577017310062,2.3662279170995062e-5,-7.160372968477706e-8,0.004203015758641201,2.351672818202007e-5,-7.129194406720078e-8,0.004203468829726377,2.3466037764782944e-5,-7.11792747736706e-8,0.004203902457944527,2.3509754658052647e-5,-7.126556074908164e-8,0.004204283346550584,2.3631449505063676e-5,-7.151698648158335e-8,0.004204584061959764,2.3797752657327603e-5,-7.186374646115213e-8,0.0042047900364866496,2.3959694992948275e-5,-7.22027000677904e-8,0.0042049075001769935,2.4058568751254713e-5,-7.240978381987185e-8,0.004204969667533672,2.4038460412971196e-5,-7.23666645880367e-8,0.004205036113172845,2.386531479855544e-5,-7.200115046387884e-8,0.004205179685910332,2.3546624248548318e-5,-7.132872503889457e-8,0.0042054607744250174,2.313929579412769e-5,-7.046897812798647e-8,0.00420589989798239,2.27347232082449e-5,-6.961404483515537e-8,0.004206466015888612,2.242427014344388e-5,-6.895601774624227e-8,0.004207089445384607,2.2264274521212205e-5,-6.861351443079364e-8,0.004207690765000283,2.2260358548173973e-5,-6.859880736537034e-8,0.004208207794816714,2.2375384589948536e-5,-6.883449347627073e-8,0.004208608832725967,2.2550256047354552e-5,-6.919700655526116e-8,0.004208892174623421,2.2724239908018644e-5,-6.955907850228315e-8,0.0042090782601795,2.284808125073127e-5,-6.981713891001085e-8,0.004209200296160906,2.2889691428958756e-5,-6.990328564693268e-8,0.004209296350094005,2.283492007234416e-5,-6.97870980120373e-8,0.004209403565906254,2.268592751806816e-5,-6.947247890090181e-8,0.004209554005893156,2.2458595057271006e-5,-6.899240475833879e-8,0.004209771538720962,2.2179411033598958e-5,-6.840241608206303e-8,0.00421006954601963,2.1881833085248087e-5,-6.777287276654248e-8,0.0042104495193963105,2.1602047665670182e-5,-6.717991814560981e-8,0.0042109008189892645,2.137421177667367e-5,-6.669544160393412e-8,0.004211401868604031,2.1225620883696596e-5,-6.637699983388579e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_25.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_25.json new file mode 100644 index 000000000..ea9010347 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_25.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":25000,"numberOfSamples":1000,"samples":[0.0042119228229227776,2.117242668988509e-5,-6.625892772821196e-8,0.00421242951621424,2.1216421815835606e-5,-6.634559593072919e-8,0.004212888396602669,2.1343324948057996e-5,-6.660764965178544e-8,0.004213272077688695,2.1522955697259163e-5,-6.698208934125665e-8,0.004213565153061029,2.171164617537871e-5,-6.737707330135306e-8,0.004213769823711238,2.1857483451438128e-5,-6.768286051317844e-8,0.004213910198871436,2.190927122349849e-5,-6.779084064030356e-8,0.004214032922657624,2.1829493537962127e-5,-6.762116816618272e-8,0.004214200852587069,2.160938196621095e-5,-6.71548148810529e-8,0.004214477322022827,2.1280462370500936e-5,-6.645802296286292e-8,0.004214903100503305,2.091373094832423e-5,-6.568048925307495e-8,0.004215475880773675,2.0600151223130995e-5,-6.501412598684065e-8,0.004216145898744334,2.0417442948628495e-5,-6.462301093688222e-8,0.004216833579580056,2.0400376819345232e-5,-6.458079850055622e-8,0.004217459970123071,2.053157579362677e-5,-6.485132807375522e-8,0.004217972502130171,2.0755398012646987e-5,-6.531780445307867e-8,0.004218354775674382,2.100283844312381e-5,-6.583514699901046e-8,0.004218621473875984,2.1213061032032433e-5,-6.627523661803764e-8,0.004218806437975746,2.1344829856945014e-5,-6.655094448616457e-8,0.0042189509605779895,2.1378863630848206e-5,-6.662115374902181e-8,0.004219095409105211,2.1315105530184897e-5,-6.648517553484988e-8,0.004219274283414654,2.1168357298914947e-5,-6.617374421911176e-8,0.0042195135261831026,2.0964046864058137e-5,-6.574021509881736e-8,0.0042198289277669875,2.0734467344645254e-5,-6.52526270229363e-8,0.004220225061155502,2.0515161357874974e-5,-6.478598265567233e-8,0.004220694716869642,2.0341013243499278e-5,-6.441392136515793e-8,0.004221219187507694,2.024179213121955e-5,-6.419932023758131e-8,0.004221769966808666,2.0237378693578086e-5,-6.418431147260425e-8,0.0042223122778394,2.033346797221274e-5,-6.438129961003437e-8,0.004222810379006872,2.051879431947242e-5,-6.47670814186124e-8,0.0042232340746766765,2.0764877854194254e-5,-6.528213506219293e-8,0.004223565395287756,2.1029006330211313e-5,-6.583665389689409e-8,0.004223804128873946,2.1260585340412296e-5,-6.632374566900979e-8,0.004223970876957566,2.1410361180324564e-5,-6.663887945834917e-8,0.004224106369310762,2.14415465441151e-5,-6.670356203916723e-8,0.0042242657983087495,2.134115638552841e-5,-6.648957977625455e-8,0.004224507399419219,2.112855412696634e-5,-6.603731852191216e-8,0.004224876159364572,2.085686994094544e-5,-6.545888489491197e-8,0.004225386732174476,2.0603067839644234e-5,-6.491709513429656e-8,0.004226013160943935,2.0446027498544085e-5,-6.457905743766462e-8,0.004226693128151923,2.043932475634994e-5,-6.45585312505897e-8,0.004227347974683707,2.059163946791718e-5,-6.487440472016235e-8,0.004227909703767054,2.086563813515611e-5,-6.544822544194953e-8,0.004228341362829596,2.1195202646072075e-5,-6.614053530613902e-8,0.004228642402086946,2.1510125092377255e-5,-6.680302045077538e-8,0.004228840647210552,2.1755805619472572e-5,-6.732012834688552e-8,0.004228978598476052,2.190213346099413e-5,-6.762786101905045e-8,0.0042291010496863166,2.194302357527711e-5,-6.771287814009528e-8,0.0042292470592518745,2.1891133200885374e-5,-6.760145956889963e-8,0.004229446049571827,2.1771621167792976e-5,-6.73464393792848e-8,0.004229716468222322,2.1616855272094037e-5,-6.701607817399818e-8,0.004230065522044785,2.146232151279719e-5,-6.668539495546459e-8,0.004230489183412082,2.134317016838142e-5,-6.642880367863476e-8,0.004230972374903851,2.12906866823376e-5,-6.631261090471438e-8,0.004231489771832401,2.132821216102119e-5,-6.638640134078987e-8,0.00423200798906628,2.1466603019303647e-5,-6.667347585959588e-8,0.004232489876042049,2.1700112891328544e-5,-6.716214332465655e-8,0.004232901078212662,2.2004253231900497e-5,-6.780110661848243e-8,0.0042332180115707534,2.233735468493118e-5,-6.850259405413669e-8,0.004233435294041164,2.264690582136456e-5,-6.915558955274176e-8,0.004233570081750011,2.288024682846949e-5,-6.964836523197342e-8,0.004233661175459219,2.299740945877807e-5,-6.989570010663392e-8,0.00423376212210765,2.298272324126421e-5,-6.986362270031153e-8,0.004233929261141872,2.2851697779811398e-5,-6.958422181245012e-8,0.004234207211841524,2.2650495622957343e-5,-6.915475814576002e-8,0.004234615425259081,2.2446809897144912e-5,-6.871849564593151e-8,0.004235140014210337,2.231313047848069e-5,-6.842929415254376e-8,0.004235734703969059,2.230620625541042e-5,-6.840801170460767e-8,0.004236332511029088,2.2449320169543877e-5,-6.870475534746973e-8,0.004236865352914913,2.2724777630289437e-5,-6.928273029224622e-8,0.004237284245080581,2.3080599212484498e-5,-7.003223837757029e-8,0.004237571736415137,2.3448608166368112E-05,-7.080893495957507e-8,0.004237742342841121,2.3765484141766943e-5,-7.147847424023432e-8,0.004237833085799702,2.3988137660734125e-5,-7.194917126202141e-8,0.004237890189882673,2.4099447950975766e-5,-7.218425790080511e-8,0.004237957595590428,2.4105773514283147e-5,-7.219670738284095e-8,0.004238069919582637,2.4030269658422523e-5,-7.203516533111505e-8,0.004238249618365501,2.39056679238968e-5,-7.176871236223504e-8,0.004238506777009503,2.376842054507791e-5,-7.14744782604305e-8,0.004238839960336995,2.3654485763485328e-5,-7.122870298290076e-8,0.004239237195182148,2.359612316887198e-5,-7.109993006965748e-8,0.00423967689584437,2.3618836515735366e-5,-7.114251881836275e-8,0.00424012919339875,2.3737839999153642e-5,-7.138914208350213e-8,0.004240558555859129,2.3954028829091893e-5,-7.184219988672258e-8,0.004240928632216016,2.425035359666654e-5,-7.246603747851151e-8,0.004241209686151803,2.4590515496345863e-5,-7.31840475098621e-8,0.004241387602314709,2.4922420371615704e-5,-7.388587732093796e-8,0.00424147157146284,2.5187961743731242e-5,-7.44481247159738e-8,0.004241496426214619,2.5338027012562994e-5,-7.476619148263978e-8,0.004241516665120159,2.53481927416961e-5,-7.478765248745461e-8,0.004241592614544567,2.5228750538790737e-5,-7.453362965654456e-8,0.004241773093309497,2.5024267468472517e-5,-7.409800415341168e-8,0.004242080828456248,2.480219962828495e-5,-7.362345063271682e-8,0.004242505642303187,2.463448176734963e-5,-7.326256531566072e-8,0.004243007230734643,2.4578174120876555e-5,-7.313688342900408e-8,0.004243526169055569,2.4660842178798045e-5,-7.330574786416262e-8,0.004243999680967984,2.4874463362710607e-5,-7.375310120416703e-8,0.0042443776570801894,2.5179193207145155e-5,-7.439515440950807e-8,0.004244634361830328,2.551555261019759e-5,-7.510602778954726e-8,0.0042447725833558445,2.5820973313206575e-5,-7.575282082432305e-8,0.004244819645713096,2.6045265557054406e-5,-7.622855268466984e-8,0.004244817657500771,2.6160427534331055e-5,-7.647316726976563e-8,0.004244812063322777,2.6162998914343238e-5,-7.647870316326475e-8,0.004244842201737484,2.6070232563465724e-5,-7.628128320228887e-8,0.004244935733735506,2.5913058455968382e-5,-7.594622609168704e-8,0.004245106822619801,2.572872050475992e-5,-7.555241538069889e-8,0.004245356804103788,2.5554802441117856e-5,-7.517960510152853e-8,0.004245675934005867,2.5425040582432493e-5,-7.48995353162313e-8,0.004246045266184226,2.53664067068817e-5,-7.47697603900719e-8,0.004246438382144604,2.5396616745149382e-5,-7.482836234073875e-8,0.004246823330043397,2.552139706651534e-5,-7.508808847131201e-8,0.004247165619004974,2.5731389115804212e-5,-7.55296442638736e-8,0.004247433275937945,2.5999499171301278e-5,-7.609589214748047e-8,0.0042476044631466715,2.6280705900143398e-5,-7.669131102787287e-8,0.004247676613223559,2.6517177808645175e-5,-7.719284879324458e-8,0.004247673609435171,2.6650746595202952e-5,-7.747651982304646e-8,0.004247645708001549,2.66412350943042e-5,-7.74564776254694e-8,0.004247658309913079,2.6483856580341366e-5,-7.712204781528955e-8,0.004247771456591539,2.6216061034290582e-5,-7.655226898516179e-8,0.004248018640476505,2.590800755606473e-5,-7.589568494417051e-8,0.004248395212570714,2.563994069145496e-5,-7.532244221725396e-8,0.004248861259489376,2.5477021622606432e-5,-7.497104067998361e-8,0.00424935590167607,2.5452038700586148e-5,-7.491170753332291e-8,0.004249815624233812,2.5560514080836893e-5,-7.513587325912593e-8,0.0042501900081495896,2.5766672608186727e-5,-7.556853344785969e-8,0.004250451383611506,2.6015861961209102e-5,-7.609427999654669e-8,0.0042505977356969114,2.6248914551540066e-5,-7.658758795271883e-8,0.0042506498090625795,2.6415031884901112e-5,-7.694017883491166e-8,0.004250644097952955,2.648096828203765e-5,-7.708071584908982e-8,0.0042506237812728765,2.6435303290169302e-5,-7.698415129034421e-8,0.004250629816343292,2.6287691938557887e-5,-7.667036324682085e-8,0.0042506940711203485,2.6064200669597658e-5,-7.619435383064163e-8,0.00425083548128867,2.5800616341765846e-5,-7.563201480582007e-8,0.004251059186062351,2.5535598231431913e-5,-7.506549954746807e-8,0.004251357853991461,2.5304981396812947e-5,-7.457106386619228e-8,0.004251714123475805,2.5137752884505912e-5,-7.421052674232194e-8,0.004252103288002902,2.5053445751813735e-5,-7.402578044122805e-8,0.0042524958808914486,2.5060282096586535e-5,-7.403485203242214e-8,0.004252860347046862,2.5153483119387155e-5,-7.422821487858902e-8,0.004253166420302202,2.5313592833064807e-5,-7.4565027741937e-8,0.004253390056795452,2.5505445065978426e-5,-7.497072826604751e-8,0.004253520373611728,2.567954717105097e-5,-7.533987563241299e-8,0.004253567583483577,2.5778553226866115e-5,-7.555000192971296e-8,0.004253568477479618,2.57508981459835e-5,-7.549083696491824e-8,0.004253583802551681,2.5570092233629636e-5,-7.51055603806773e-8,0.004253683035294351,2.5251865633977112e-5,-7.44273175308893e-8,0.0042539191944363595,2.4857202588394434e-5,-7.35855734003273e-8,0.004254305764216735,2.447438286380503e-5,-7.276784994537231e-8,0.004254809815918776,2.4186839495990022e-5,-7.215147164839955e-8,0.004255365549942023,2.40441206534225e-5,-7.184200794898621e-8,0.004255899200387112,2.4050089820884473e-5,-7.184826829956902e-8,0.0042563516080044266,2.416972185021108e-5,-7.209662433728606e-8,0.004256690396141003,2.434605252160264e-5,-7.246675786316027e-8,0.0042569115892744334,2.4517943449023026e-5,-7.282912443145628e-8,0.0042570344588616455,2.463347637775471e-5,-7.30732558512375e-8,0.0042570934805204125,2.465775417313392e-5,-7.312438614433928e-8,0.004257129932313604,2.4575925834567138e-5,-7.295011734563332e-8,0.0042571843494951115,2.4392667825468296e-5,-7.255962537821784e-8,0.00425729039774817,2.4129023933815476e-5,-7.199717208281165e-8,0.004257470606229811,2.3817370327804808e-5,-7.133146006679518e-8,0.004257734255741909,2.349544247400287e-5,-7.064283667735547e-8,0.004258077393204028,2.3200390137071024e-5,-7.001050679824002e-8,0.004258484618862725,2.2963666553012255e-5,-6.950158216921607e-8,0.004258932027056634,2.2807293789006354e-5,-6.916316297269846e-8,0.0042593906153518026,2.2741586385370254e-5,-6.901757022449099e-8,0.0042598297434363165,2.276399055898611e-5,-6.905989169541386e-8,0.004260220606168873,2.2858651267932304e-5,-6.925694232532747e-8,0.004260539991874552,2.2996585299082128e-5,-6.954740578872719e-8,0.004260774793749827,2.3136869567961894e-5,-6.984415171021355e-8,0.004260927452055153,2.3230106921002925e-5,-7.004155848425731e-8,0.004261021309681241,2.3226075701983406e-5,-7.003196358517582e-8,0.004261102938290243,2.308688722779646e-5,-6.9733984200722e-8,0.004261236712509181,2.2804045770392858e-5,-6.912910597515336e-8,0.004261487734137989,2.2412204909363093e-5,-6.829103484152083e-8,0.004261895857940792,2.1987951130290533e-5,-6.738297115674651e-8,0.004262453748847359,2.1626559517556065e-5,-6.660796308383029e-8,0.004263104835077354,2.14049565306401e-5,-6.613002381831203e-8,0.004263765230072934,2.1352073118542486e-5,-6.601108302348439e-8,0.004264356348996169,2.14434400684497e-5,-6.619951822339648e-8,0.00426482929740014,2.1618744627758198e-5,-6.656745990661841e-8,0.004265171943391067,2.1807560186110623e-5,-6.696539410340849e-8,0.004265402331610535,2.194966411597293e-5,-6.726522140368924e-8,0.004265556764276095,2.2005321336605362e-5,-6.738204521109695e-8,0.004265678484351986,2.1957407300082035e-5,-6.727876331639272e-8,0.004265809259589074,2.1808924150594526e-5,-6.696101507231523e-8,0.004265983904005325,2.1578682448027443e-5,-6.646826954849454e-8,0.004266226920993157,2.1296504146896058e-5,-6.586379168206377e-8,0.004266550629286272,2.0998265292050864e-5,-6.522408289024045e-8,0.004266954602654954,2.072086530767614e-5,-6.46280184319503e-8,0.0042674264408546,2.0497353315112702e-5,-6.414629674705478e-8,0.004267943861511287,2.0352576012947905e-5,-6.383209365453901e-8,0.004268477960877023,2.0299833661802612e-5,-6.371398436365584e-8,0.004268997253092252,2.0338959047789847e-5,-6.379193925228933e-8,0.004269472004022922,2.0455923406950072e-5,-6.403649435074647e-8,0.004269878504480831,2.0623872099556896e-5,-6.439082513227808e-8,0.004270203091943123,2.0805512560485156e-5,-6.477560803074754e-8,0.004270445852852126,2.0956944805511876e-5,-6.509700275244613e-8,0.004270623800199121,2.10334314266037e-5,-6.525895403540025e-8,0.004270772558072353,2.0997890319405713e-5,-6.518152289098647e-8,0.00427094441011345,2.083220432249813e-5,-6.482534637528951e-8,0.004271199798210908,2.05492416329248e-5,-6.421755267416815e-8,0.00427159041645784,2.0199863007888447e-5,-6.346677840095314e-8,0.004272137010630017,1.986641311092636e-5,-6.274914812415897e-8,0.004272812866192905,1.9637907019181664e-5,-6.225512618287865e-8,0.004273546661830289,1.957484111226967e-5,-6.211428300886088e-8,0.004274248084309201,1.9683554754882735e-5,-6.234052528862284e-8,0.004274842584556,1.9916585609271047e-5,-6.283284863669002e-8,0.004275294989396107,2.0196932839426866e-5,-6.34271221447608e-8,0.004275612111248886,2.044876157713103e-5,-6.396157774097112e-8,0.004275829854443942,2.0618302854561106e-5,-6.432132893338302e-8,0.004275996344867708,2.068048102350494e-5,-6.445246254988373e-8,0.004276158761153353,2.0635703336763096e-5,-6.435525871581819e-8,0.00427635575964747,2.050278681984088e-5,-6.406929194779216e-8,0.004276614264766545,2.03118344130943e-5,-6.365844604760266e-8,0.004276948681532183,2.0098462742130343e-5,-6.319870838452115e-8,0.00427736112987467,1.9899240304877655e-5,-6.276838480380487e-8,0.004277842211255956,1.974773290141609e-5,-6.243949971073313e-8,0.004278372391904025,1.967077619426468e-5,-6.226968673760751e-8,0.004278924276628769,1.9684968915617704e-5,-6.229464867897638e-8,0.00427946603046503,1.9793798937027695e-5,-6.252207128612635e-8,0.004279965907331355,1.9986115124125946e-5,-6.292842834492383e-8,0.004280397398965965,2.0236567080278434e-5,-6.345990398536185e-8,0.004280744247696593,2.0508303055502708e-5,-6.403801521126411e-8,0.004281004505802116,2.075787626038736e-5,-6.45698971255669e-8,0.004281192901995228,2.0941958152062637e-5,-6.496252518206134e-8,0.004281340930710332,2.1025255578912166e-5,-6.513969573609285e-8,0.004281494037741554,2.0988991621400003e-5,-6.506040387677097e-8,0.004281705020143845,2.083884172795236e-5,-6.473613988226346e-8,0.004282022932066112,2.0609966237029076e-5,-6.424190093837948e-8,0.004282478182800925,2.0365345667199266e-5,-6.371269223823294e-8,0.004283067616495902,2.018344302717714e-5,-6.331700549222439e-8,0.004283747241477742,2.0134651144824004e-5,-6.320619458649664e-8,0.0042844407554519515,2.0253973496551404e-5,-6.345578723847007e-8,0.004285064598384449,2.0524555265033713e-5,-6.403009214368057e-8,0.004285558228008341,2.0883667246896797e-5,-6.479498002189184e-8,0.004285903068305841,2.1248575485531713e-5,-6.557331881327865e-8,0.004286121591209917,2.1546759971092086e-5,-6.620971443688664e-8,0.004286261550244254,2.173512138139228e-5,-6.661161891835543e-8,0.004286377010822107,2.1803562222643158e-5,-6.675698118613891e-8,0.004286514639174886,2.1767962224157696e-5,-6.667927461907289e-8,0.004286707249844844,2.1659831340824737e-5,-6.644549978914754e-8,0.004286972651294204,2.1517288514130502e-5,-6.613702981233638e-8,0.004287315036407035,2.137879459328305e-5,-6.583625969488997e-8,0.004287726996196279,2.1279125575024203e-5,-6.561792724729806e-8,0.00428819142343141,2.1246497524740444e-5,-6.554282703858169e-8,0.004288683412819257,2.1300005175710134e-5,-6.56522121072733e-8,0.004289172646002349,2.144705325197606e-5,-6.596225331674356e-8,0.004289626831671317,2.1681083267848825e-5,-6.64591918001667e-8,0.004290016489747565,2.1980505883871905e-5,-6.709706780234995e-8,0.0042903207017423875,2.2309974166205005e-5,-6.780039689973465e-8,0.004290532704681695,2.2624802256956494e-5,-6.847351420232322e-8,0.004290663720481053,2.2878545281189634e-5,-6.901668815447957e-8,0.004290743428588021,2.3032647343331645e-5,-6.934675430215987e-8,0.004290816160740989,2.3066060527652307e-5,-6.941783186631997e-8,0.004290932973482719,2.298241860165485e-5,-6.923692897416443e-8,0.004291140720082246,2.281268438762679e-5,-6.886989001401675e-8,0.004291469988513568,2.261171092999127e-5,-6.843422945885471e-8,0.0042919245712092595,2.244789438370406e-5,-6.807700264279899e-8,0.004292475971297328,2.238658804783379e-5,-6.793912075922681e-8,0.004293066649609138,2.2470558774809148e-5,-6.811318501504072e-8,0.004293623937526895,2.2703998892035536e-5,-6.860890598586648e-8,0.0042940818493636184,2.304812006375384e-5,-6.934344898792616e-8,0.004294402362672422,2.3432831436448893e-5,-7.016645002765099e-8,0.004294586104386337,2.378055743966283e-5,-7.091121590795328e-8,0.004294667795317409,2.4030920659155234e-5,-7.144780929009046e-8,0.004294700566059802,2.4155324165777983e-5,-7.171440891510901e-8,0.004294738209100082,2.4157840931771394e-5,-7.171925710040148e-8,0.0042948226573763385,2.4066452881318333e-5,-7.152192906009953e-8,0.004294978812281802,2.3921337639631674e-5,-7.120830502904449e-8,0.004295214901080934,2.3765000948817973e-5,-7.08694876550506e-8,0.004295525436407369,2.363587044291823e-5,-7.058807624485363e-8,0.004295894601684546,2.3564786623837452E-05,-7.04305813207749e-8,0.004296299122201778,2.357308522950433e-5,-7.044321503200956e-8,0.004296710657229467,2.367115187319423e-5,-7.064870539544668e-8,0.004297098295590391,2.38568917503796e-5,-7.104295898373251e-8,0.004297431906932636,2.4114275885103977e-5,-7.159190498213205e-8,0.004297686870625992,2.4412901902798002e-5,-7.223050607165677e-8,0.004297849991681794,2.4710049162891303e-5,-7.286710575334312e-8,0.00429792530231652,2.4956591162591826e-5,-7.339606327152146e-8,0.004297937372396556,2.5107015043400802e-5,-7.371925088269417e-8,0.004297929510021779,2.5131737805527713e-5,-7.377254984435431e-8,0.004297955548234345,2.5027789983162344e-5,-7.354890403274291e-8,0.004298066575615005,2.4823310836198834e-5,-7.310812995376074e-8,0.004298296552607654,2.4573070322224938e-5,-7.256747872959403e-8,0.004298651648983001,2.434559188780995e-5,-7.207413756368472e-8,0.004299106911661393,2.4205518413300738e-5,-7.176741926718479e-8,0.004299611453430702,2.4196312655059432e-5,-7.174150839999789e-8,0.0043001009376553104,2.4328171010078167e-5,-7.201924724959771e-8,0.004300514215980978,2.45747458074727e-5,-7.254478183774332e-8,0.00430080955408668,2.4880164403869278e-5,-7.319841098782959e-8,0.00430097535914321,2.5174795560467062e-5,-7.383040760602065e-8,0.004301031639911904,2.5394822709818133e-5,-7.430318462394381e-8,0.004301021854896047,2.549876742515806e-5,-7.452698087324046e-8,0.004300998826632299,2.5475424898201563e-5,-7.447707677090092e-8,0.0043010105133326326,2.5341837209243172e-5,-7.418955573869462e-8,0.00430109035070397,2.513426620792213e-5,-7.374198268112992e-8,0.004301253742716078,2.48970164755011e-5,-7.32294267491531e-8,0.004301499427306543,2.467299592201586e-5,-7.274417707510015e-8,0.0043018132999952385,2.4497627550464064e-5,-7.236262240548909e-8,0.004302172657874503,2.4395814589290057e-5,-7.213867310051331e-8,0.004302549817683467,2.4380785913499932e-5,-7.210122313442096e-8,0.0043029149958991805,2.44536492446394e-5,-7.225313252007961e-8,0.004303238964457443,2.460296377691644e-5,-7.2570238773880585E-08,0.00430349625434463,2.4804348391217722e-5,-7.300042578258291e-8,0.0043036695281246816,2.50209511462533e-5,-7.34645445614565e-8,0.0043037550770795956,2.5206324498041653e-5,-7.386254745634518e-8,0.004303768148276709,2.5311391686062272e-5,-7.408849797523384e-8,0.004303745290754547,2.5296058710614142e-5,-7.405564302472968e-8,0.0043037402219377715,2.5143263129179642e-5,-7.372674513257676e-8,0.004303811401843918,2.486984655474745e-5,-7.31375476237472e-8,0.004304003924871586,2.452738717704159e-5,-7.239861410051003e-8,0.004304332998053507,2.4189634346796077e-5,-7.166837537127397e-8,0.004304777053220583,2.3930305794275484e-5,-7.110548942813876e-8,0.0043052839373079,2.380055815885997e-5,-7.082046368346776e-8,0.004305786979287081,2.381512406074437e-5,-7.084577599968396e-8,0.004306223908680077,2.3950918898359302e-5,-7.113265222969439e-8,0.0043065521824008435,2.4156359154944985e-5,-7.157081214482665e-8,0.00430675720105395,2.4366745878058644e-5,-7.202132826384251e-8,0.00430685272341944,2.452074994873828e-5,-7.235202054839195e-8,0.0043068746876313785,2.457397362237289e-5,-7.246674040986775e-8,0.004306870807432403,2.450692094765032e-5,-7.232274420159353e-8,0.0043068889333198876,2.4326274108967804e-5,-7.193368553734489e-8,0.004306967157178836,2.4060115372153373e-5,-7.135951482856131e-8,0.004307127792060001,2.3749312473508598e-5,-7.068800846487233e-8,0.004307375847549257,2.3437998378882705e-5,-7.001424126954424e-8,0.0043077011487614265,2.316559033074148e-5,-6.942331161839482e-8,0.004308082476774727,2.296156998550824e-5,-6.897901648309085e-8,0.004308492160407662,2.2843008936849732e-5,-6.871848008341235e-8,0.00430890014225028,2.2814028032551207e-5,-6.865098180169714e-8,0.004309277281921247,2.2866200020617407e-5,-6.875880227967708e-8,0.004309598220494261,2.2979234337591817e-5,-6.899862356038913e-8,0.004309844408536244,2.3121853538730567e-5,-6.930329429478826e-8,0.0043100078615668095,2.3253479651415424e-5,-6.95853524949172e-8,0.004310095640386761,2.3328083445441076e-5,-6.974529757037752e-8,0.0043101338257101485,2.3301787131791224e-5,-6.968807200575135e-8,0.004310168187241177,2.3144787924465443e-5,-6.934892854607553e-8,0.004310257826444425,2.285531683637069e-5,-6.872365125157918e-8,0.004310459684221365,2.2469228310805165e-5,-6.788925321183882e-8,0.0043108073193948325,2.2056750050369026e-5,-6.699692997284909e-8,0.004311294032439131,2.170255209789584e-5,-6.622910378436072e-8,0.004311871307369093,2.1476062378587954e-5,-6.573553756794064e-8,0.004312465198993063,2.1407057452158824e-5,-6.558081946270183e-8,0.004313001977162613,2.147859710794636e-5,-6.572910476913147e-8,0.00431343005920553,2.1637960989153616e-5,-6.606750631843108e-8,0.004313730316577628,2.181691089414023e-5,-6.644950764688654e-8,0.004313914738250244,2.1951418489715036e-5,-6.673726332891451e-8,0.004314017860593639,2.1995240270097538e-5,-6.6830778021755e-8,0.00431408563427076,2.1926188546349096e-5,-6.668152880876458e-8,0.004314164844430976,2.1746350005664837e-5,-6.62931915957548e-8,0.00431429466372932,2.1478088191753095e-5,-6.571331506627689e-8,0.004314501024681896,2.1157447735519515e-5,-6.501929657323107e-8,0.004314794068269408,2.0826407239506826e-5,-6.430170217264929e-8,0.004315168523400873,2.0525388218328684e-5,-6.364798919827755e-8,0.00431560642180513,2.0287173353931803e-5,-6.31292183912412e-8,0.0043160812455876356,2.0132909454777427e-5,-6.279132138753954e-8,0.004316562520177888,2.007033177327738e-5,-6.265126152698634e-8,0.00431702006617794,2.00938082788825e-5,-6.269717769742918e-8,0.004317427588706235,2.018551638500187e-5,-6.28909388180351e-8,0.004317765712734754,2.0317234227004703e-5,-6.317193328846631e-8,0.004318024775138963,2.0452628316515763e-5,-6.34618604024906e-8,0.00431820770093002,2.0550394730606987e-5,-6.367139110618334e-8,0.004318332893899484,2.0569188001987255e-5,-6.371081436092053e-8,0.004318436011644906,2.04754635624101e-5,-6.350712260775898e-8,0.0043185681789404615,2.0254385622796044e-5,-6.302778494565895e-8,0.004318787523787666,1.9921423273137004e-5,-6.230594134708772e-8,0.004319142414166795,1.9528518015015e-5,-6.145372829533996e-8,0.004319650180655444,1.9156534321257355e-5,-6.064588141621515e-8,0.004320282432594846,1.8890460254098007e-5,-6.006610839445816e-8,0.00432096924731175,1.8786257539194468e-5,-5.983551079099197e-8,0.004321623889974825,1.8848028753740572e-5,-5.996331107102821e-8,0.004322174856199251,1.9029232241916958e-5,-6.03494594472305e-8,0.004322587553187694,1.9254995930678356e-5,-6.083272565155132e-8,0.004322867520357473,1.9450265918529555e-5,-6.125132934634046e-8,0.004323049667978551,1.956007946768571e-5,-6.148655784160723e-8,0.004323182862961931,1.9557648041747735e-5,-6.148015369528662e-8,0.004323316556168647,1.9443050480583164e-5,-6.123159791433297e-8,0.004323491840940722,1.9237131005163212e-5,-6.0785188942898e-8,0.004323736659978244,1.8974013586600857e-5,-6.021415798447603e-8,0.00432406401637427,1.8693883726101143e-5,-5.960523413418266e-8,0.004324472264424686,1.8436553474490432e-5,-5.904470094336049e-8,0.004324946983099295,1.8236033860153257e-5,-5.860648003866715e-8,0.004325464084859797,1.811635649105119e-5,-5.8342897748555724e-8,0.004325993794135984,1.8088868183602328e-5,-5.8278740560323874e-8,0.004326505053826906,1.8151193617222837e-5,-5.84090469392405e-8,0.004326969827564337,1.8287871460248693e-5,-5.870057233852731e-8,0.004327366867667058,1.8472348280178974e-5,-5.909613070587311e-8,0.004327684784604043,1.8669955227489085e-5,-5.952094345795759e-8,0.004327924409123366,1.8841706401499647e-5,-5.989069354469142e-8,0.004328100446453682,1.8948978694444737e-5,-6.012153384588638e-8,0.004328242207755195,1.8959396499784854e-5,-6.014285604854431e-8,0.00432839251061342,1.8854306712077532e-5,-5.991366270790545e-8,0.004328602976287375,1.8637363771232864e-5,-5.9441399495521534e-8,0.004328923808193235,1.834172061702968e-5,-5.879768517306489e-8,0.0043293877420519525,1.803074398317214e-5,-5.8119858923673065e-8,0.004329992303019424,1.7786082973530267e-5,-5.7585025996974733e-8,0.0043306904239555155,1.768141014178147e-5,-5.735306902442807e-8,0.004331400140317573,1.7751344357086818e-5,-5.749928204325917e-8,0.00433203358321681,1.797402614272783e-5,-5.79766211094402e-8,0.004332530332663138,1.828016466901793e-5,-5.8635303908857e-8,0.004332875915402321,1.858298602165903e-5,-5.928765562337491e-8,0.00433309804217549,1.8810034258350935e-5,-5.977689798049865e-8,0.004333248483983109,1.8921204984793378e-5,-6.001607106531904e-8,0.00433338344031064,1.891050947589809e-5,-5.999178553599807e-8,0.004333550076056095,1.879802272931174e-5,-5.974688447449809e-8,0.00433378028617974,1.8619161178224815e-5,-5.935746777534596e-8,0.004334089547866698,1.841532739235039e-5,-5.891288378805079e-8,0.004334478361386218,1.8227051919153682e-5,-5.8500987248132956e-8,0.004334934676237755,1.8089192813388756e-5,-5.819765687811798e-8,0.004335436753461419,1.8027479513569926e-5,-5.805910095808496e-8,0.0043359564346629785,1.805604332199269e-5,-5.8116315662884676e-8,0.004336462854060841,1.8175905259323786e-5,-5.837173979925861e-8,0.0043369265589401195,1.8374650843245116e-5,-5.8798606028170783e-8,0.0043373237749320314,1.8627644789034814e-5,-5.9343665372251605e-8,0.004337640287689868,1.8900903887741546e-5,-5.993342885257249e-8,0.004337874393414731,1.915541028175581e-5,-6.0483416036833585E-08,0.004338038508031595,1.935252810257927e-5,-6.090974291052553e-8,0.004338159117798005,1.9460134108828392e-5,-6.114232980148806e-8,0.004338274774933433,1.9459013263327866e-5,-6.113884811203717e-8,0.004338431681466829,1.9348999136279857e-5,-6.089826911602292e-8,0.004338676165081497,1.9153806772625883e-5,-6.047161761109011e-8,0.004339043688685932,1.8922294391678095e-5,-5.996487910391701e-8,0.004339545635601907,1.872276095381814e-5,-5.952661815361361e-8,0.004340158161930944,1.8627380820978457e-5,-5.9314042383671195e-8,0.004340820587457169,1.8688023122385006e-5,-5.944030774359304e-8,0.0043414499059315215,1.8912570225124942e-5,-5.992294543545765e-8,0.004341969354982378,1.9256317958197064e-5,-6.066513104038634e-8,0.00434233727438235,1.963727956575248e-5,-6.148895689362684e-8,0.004342559700425284,1.9968375421524345e-5,-6.22053917653275e-8,0.004342681194553419,2.0187890581981525e-5,-6.268039485374884e-8,0.004342762928135588,2.0273446998614515e-5,-6.286515201466919e-8,0.004342861762115175,2.0238340874590014e-5,-6.278807051788223e-8,0.0043430181177510525,2.0118621313219873e-5,-6.25268278416331e-8,0.004343252686041884,1.9959504096147545e-5,-6.217910056180777e-8,0.004343568466291725,1.9805367104343365e-5,-6.184105171446118e-8,0.004343954731686096,1.9693836953182042e-5,-6.159455561595036e-8,0.004344390973704534,1.9652723436851773e-5,-6.150043408182522e-8,0.004344850331140559,1.969838524407601e-5,-6.159471002910778e-8,0.004345302792489047,1.9834740731576415e-5,-6.188629404236862e-8,0.004345718569954192,2.0052786388798823e-5,-6.235588467085406e-8,0.004346071890108299,2.0330942481172956e-5,-6.295676357140448e-8,0.004346345120939216,2.0636843362656404e-5,-6.361874562488397e-8,0.004346532649407227,2.0931092520010435e-5,-6.425633112670948e-8,0.004346643556812209,2.1172987348254808e-5,-6.478105282775598e-8,0.004346702139067369,2.1327622981692872e-5,-6.511679997367014e-8,0.004346745608778673,2.137326837845882e-5,-6.521581332631904e-8,0.004346818808370958,2.130755124320618e-5,-6.507223672428581e-8,0.004346966320702236,2.1150975510158874e-5,-6.472999399619078e-8,0.004347222824520035,2.0946473775532036e-5,-6.428207114555517e-8,0.004347603087958219,2.0753784072168932e-5,-6.385844812624413e-8,0.004348093942432825,2.0637814013072452e-5,-6.36007815326696e-8,0.004348651739160019,2.0651659508830847e-5,-6.36252925003523e-8,0.0043492091234758985,2.0818025289423062e-5,-6.398208836552688e-8,0.004349692649033529,2.1116545144798856e-5,-6.462735152225057e-8,0.004350046851532632,2.148558579412229e-5,-6.542717677117046e-8,0.004350254077818288,2.1841590704683874e-5,-6.619972247540033e-8,0.004350339218690546,2.2108334127427978e-5,-6.677897296497183e-8,0.0043503570289232605,2.2241363549602545e-5,-6.706795464383658e-8,0.004350370300956235,2.2236598604831392e-5,-6.705740408002692e-8,0.004350430646805905,2.2122994339245096e-5,-6.680980212150948e-8,0.004350568672542956,2.1947338186704e-5,-6.642641374111236e-8,0.004350793241612556,2.1759652050497017e-5,-6.601571687264844e-8,0.0043510958731244245,2.1603418432720286e-5,-6.567227801223937e-8,0.004351456464205779,2.1510811396030194e-5,-6.546638399293138e-8,0.004351848247956533,2.1501213936502228e-5,-6.544069492800358e-8,0.004352241536665431,2.1581184167779784e-5,-6.560999904068952e-8,0.00435260671995346,2.174478040527643e-5,-6.596178678053824e-8,0.004352917203110646,2.1974004373243897e-5,-6.645716600620018e-8,0.004353152776554337,2.2239771173006768e-5,-6.70329889115276e-8,0.0043533034557195595,2.250423557099356e-5,-6.760694213289382e-8,0.004353373159793762,2.2725320394767957e-5,-6.808739588456914e-8,0.004353381934028024,2.2863721397970617e-5,-6.838860655220757e-8,0.004353365144473504,2.2891593869259356e-5,-6.844958399294913e-8,0.004353368520464555,2.2800891768739177e-5,-6.825225963723115e-8,0.004353439178980252,2.2608536352457108e-5,-6.783284315230564e-8,0.004353614398994551,2.235592337679717e-5,-6.728093363331758e-8,0.004353911091254241,2.210179351953395e-5,-6.672420060605343e-8,0.004354319093981324,2.1909457854221882e-5,-6.63007028625976e-8,0.00435480070535855,2.183105798865961e-5,-6.612459579585697e-8,0.004355297564439238,2.1892701313526038e-5,-6.62535720399581e-8,0.004355744274261172,2.208486894760374e-5,-6.666768156040473e-8,0.004356085988373349,2.2362140804206785e-5,-6.72684784304803e-8,0.004356294790867451,2.265429960519879e-5,-6.790310472655907e-8,0.004356378446729466,2.2886711643210605e-5,-6.840875002736263e-8,0.004356377083974059,2.300287959510685e-5,-6.866191818023424e-8,0.004356348835649946,2.2979906602058662e-5,-6.861222380829316e-8,0.004356351070803769,2.283100298627068e-5,-6.828791603511024e-8,0.0043564253033482265,2.2596103437619816e-5,-6.777550831067574e-8,0.004356590438485916,2.232692894571213e-5,-6.71873398673657e-8,0.004356843977258533,2.207328036231141e-5,-6.663181407464889e-8,0.00435716773989199,2.1874255200302816e-5,-6.619429149558181e-8,0.0043575345277402245,2.17545974438534e-5,-6.592907552880914e-8,0.00435791364940389,2.1724473774609717e-5,-6.585880479157714e-8,0.004358274835255978,2.1780736857639492e-5,-6.597708420358102e-8,0.00435859102021611,2.190842428008057e-5,-6.625166759485598e-8,0.004358840788105637,2.2082124326210005e-5,-6.66273960160543e-8,0.004359011140673432,2.2267590761594875e-5,-6.702970759557112e-8,0.004359100770459174,2.2424521416654e-5,-6.737069654700543e-8,0.0043591232349589806,2.2511572931629804e-5,-6.756005138998922e-8,0.004359108521787183,2.2494178942973776e-5,-6.752211476792377e-8,0.004359100878157092,2.235434252364082e-5,-6.721725820444066e-8,0.004359151203790916,2.209952344550378e-5,-6.666129656422452e-8,0.004359304391648528,2.1766202486049173e-5,-6.59333189575158e-8,0.004359585156155929,2.141440124607869e-5,-6.516384241477555e-8,0.004359988028082468,2.1112991988769316e-5,-6.450292098818624e-8,0.004360476321122433,2.0920264451710092e-5,-6.407788779132097e-8,0.004360991139310915,2.0866833130000284e-5,-6.395608344448584e-8,0.0043614672632936585,2.094691373648151e-5,-6.412567446990825e-8,0.00436185047259702,2.1120373710730043e-5,-6.449986452881506e-8,0.004362111124733698,2.1324180464702604e-5,-6.4941620161576e-8,0.004362250570187353,2.1489435250093217e-5,-6.53007002748905e-8,0.004362299121386524,2.155913544719217e-5,-6.54524253343876e-8,0.004362306490900004,2.1501808725852057e-5,-6.532755100187959e-8,0.004362327761153033,2.131732881203479e-5,-6.492513324816661e-8,0.0043624093738372635,2.103373524474476e-5,-6.430576510522246e-8,0.0043625793884881775,2.0697054625575986e-5,-6.356950528095524e-8,0.004362844207020741,2.0358383999011046e-5,-6.282776240788013e-8,0.004363191208127825,2.006260880711081e-5,-6.217865603614356e-8,0.004363594835992581,1.984133466131531e-5,-6.169150041406605e-8,0.004364023394089613,1.971031936272081e-5,-6.140108548051583e-8,0.004364444713893855,1.9670147056786693e-5,-6.130906149278202e-8,0.004364830116595006,1.9708457183723877e-5,-6.13887614197793e-8,0.004365157008842049,1.9802456355045293e-5,-6.159066614971228e-8,0.0043654108447642925,1.9921222630134676e-5,-6.184741174273681e-8,0.004365587133171469,2.002805687530203e-5,-6.207888714985402e-8,0.004365693773882021,2.0083687956816993e-5,-6.219920719112305e-8,0.004365753261816067,2.0051413982690625e-5,-6.21279557727769e-8,0.004365803266929434,1.990492580654581e-5,-6.18073352015643e-8,0.004365893211815998,1.963812772857377e-5,-6.122369196067238e-8,0.00436607468587738,1.9273718051626967e-5,-6.042630561545666e-8,0.004366386030933518,1.8864892817626648e-5,-5.953112197574838e-8,0.004366836077417156,1.8485075349996475e-5,-5.869834534688314e-8,0.004367395636384049,1.8206114824510273e-5,-5.808489610024617e-8,0.0043680034475078715,1.807342018736887e-5,-5.779018629925774e-8,0.004368585429190273,1.8090183319349116e-5,-5.7821670584522674e-8,0.004369078205338029,1.8218018646954217e-5,-5.8096130493753056e-8,0.004369446485515545,1.8391914972714372e-5,-5.8472137246485704e-8,0.00436968898915749,1.854111673960781e-5,-5.879546235081837e-8,0.004369833869388169,1.8607666783746486e-5,-5.893945230499611e-8,0.004369927829734204,1.8558083076927652e-5,-5.883053071818364e-8,0.0043700232722843815,1.8387261432697222e-5,-5.845686139765173e-8,0.004370166642890487,1.8115771799109823e-5,-5.78626810222891e-8,0.004370389908592708,1.778250420799372e-5,-5.7132479090411445e-8,0.004370706190176643,1.7434832951346612e-5,-5.63696521066772e-8,0.004371109765100231,1.7118586178875612e-5,-5.5674571774707e-8,0.00437157972214823,1.6869939219546253e-5,-5.5126719806860253e-8,0.004372085769119738,1.671054970042191e-5,-5.477386649502183e-8,0.004372594495239376,1.6646123535862942e-5,-5.462880762363998e-8,0.004373074761423813,1.6667710334556395e-5,-5.467217352867607e-8,0.004373501568673639,1.675457816700928e-5,-5.485876153998176e-8,0.004373858478157565,1.687756120804058e-5,-5.5124896858937915e-8,0.004374139111879542,1.7002287531392034e-5,-5.5395470307775045e-8,0.0043743482958161295,1.7092346989803696e-5,-5.559079621301812e-8,0.004374503133939031,1.7112951246571128e-5,-5.5634563689226273e-8,0.004374633720251839,1.7035925052044434e-5,-5.546478116239983e-8,0.00437478225005965,1.6846665517467146e-5,-5.504911354774486e-8,0.0043749983953135655,1.6552475631203626e-5,-5.440324873724291e-8,0.004375328872488854,1.618927976830758e-5,-5.360566541222857e-8,0.0043758013925030695,1.5821068508656155e-5,-5.2796405543630164e-8,0.004376408267399701,1.552634116046679e-5,-5.214735730105396e-8,0.004377099954417064,1.5371900421595234E-05,-5.180488666204743e-8,0.004377797060914417,1.5385036173928835e-5,-5.182897065432117e-8,0.004378418187720637,1.5540645773084347e-5,-5.2165003016123936e-8,0.004378909008357041,1.5771884933839974e-5,-5.266706122898232e-8,0.0043792572209281865,1.599719360222389e-5,-5.315697219265368e-8,0.004379488986244382,1.6147744983164754e-5,-5.34842622002332e-8,0.004379653735493992,1.6183696763184442e-5,-5.356159676976171e-8,0.004379807029548539,1.6097454183882332e-5,-5.337188796430934e-8,0.004379997377027852,1.5908215829117925e-5,-5.2956489809098333e-8,0.004380258535441446,1.5652790384862128e-5,-5.239536296392365e-8,0.004380606499311609,1.5376010872551103e-5,-5.178635373794103e-8,0.00438103981704955,1.5122274389860483e-5,-5.122678455064238e-8,0.0043815422062817,1.4928716380928159e-5,-5.079841505994918e-8,0.0043820867949589636,1.4820349015323273e-5,-5.055656434916802e-8,0.004382641303252554,1.4807475268811135e-5,-5.052422039228374e-8,0.004383173380248949,1.4885420145896664e-5,-5.0691348370280644e-8,0.004383655356796422,1.5036302184118528e-5,-5.1018815625741976e-8,0.004384067847834171,1.5232293344004387e-5,-5.144564428159387e-8,0.0043844019828522774,1.543961315370945e-5,-5.1897827868784535e-8,0.004384660446837142,1.5622634657119858e-5,-5.229728990740927e-8,0.0043848576711448175,1.5747902572815793e-5,-5.257058563354719e-8,0.0043850193932531934,1.5788236658408824e-5,-5.2657827564574646e-8,0.0043851814481957125,1.572732220635757e-5,-5.252279948825495e-8,0.004385386970873339,1.5565072314536914e-5,-5.216487783723147e-8,0.004385680534183977,1.532309143986357e-5,-5.163119876709418e-8,0.004386097920633204,1.5047759637200314e-5,-5.102352030618483e-8,0.004386652021040343,1.4806503360449029e-5,-5.0490006751438264e-8,0.004387319473877426,1.4672634763753373e-5,-5.019184730718326e-8,0.004388037475553013,1.4699180145777687e-5,-5.024571194944651e-8,0.004388719358254085,1.4892581471994294e-5,-5.066597535539156e-8,0.004389286252243407,1.5203884862031068e-5,-5.1345376667470573e-8,0.00438969797548042,1.5546829342512437e-5,-5.209476228885879e-8,0.004389964650890107,1.583302129175502e-5,-5.272030351592314e-8,0.004390134913807563,1.6002864742013964e-5,-5.309129370757188e-8,0.004390272271287374,1.6037840528340582e-5,-5.3166940446750974e-8,0.004390434097429688,1.595511112825302e-5,-5.298445643173724e-8,0.004390660057645578,1.579392903294117e-5,-5.262936255347156e-8,0.004390969109008046,1.5602006407262715e-5,-5.220585215637865e-8,0.0043913615412258964,1.542537772061049e-5,-5.1814795817357e-8,0.004391823037389939,1.5302039558842245e-5,-5.153985439117854e-8,0.004392329121287766,1.5258332624760626e-5,-5.143939304550827e-8,0.004392849551497714,1.5307073316800725e-5,-5.1542117695367437e-8,0.004393352682154456,1.54470359086033e-5,-5.18457185429351e-8,0.00439380971458905,1.566375392426153e-5,-5.23185628529972e-8,0.004394198597306122,1.5931683059558592e-5,-5.2904527284831545e-8,0.004394507186734965,1.621768345692803e-5,-5.353077333402549e-8,0.004394735227108045,1.6485492657756142e-5,-5.411762647781867e-8,0.004394894902223298,1.6700626893534787e-5,-5.45892803278868e-8,0.004395009971871057,1.6835218512750443e-5,-5.48843068576531e-8,0.004395113603586854,1.687246367982367e-5,-5.496537371682426e-8,0.004395244949411491,1.6810475067017456e-5,-5.482779901120044e-8,0.0043954442427448425,1.6665347947444088e-5,-5.450649984627839e-8,0.004395745883391455,1.6472740140844224e-5,-5.407968384406357e-8,0.0043961693024316155,1.6286178870649144e-5,-5.366522773031633e-8,0.0043967088244268844,1.616943709032258e-5,-5.340384348847231e-8,0.00439732633496883,1.6180870696195093e-5,-5.342443633742838e-8,0.004397953375547895,1.635135413255929e-5,-5.379535836427356e-8,0.0043985084347460835,1.6664842817597192e-5,-5.448152340898046e-8,0.004398926535594353,1.7055762545965226e-5,-5.533868602056141e-8,0.004399186184162931,1.7430878674003617e-5,-5.616169045398201e-8,0.004399316502889809,1.7706012639717648e-5,-5.676535310620799e-8,0.004399380619391071,1.7836085828877507e-5,-5.7050496127308454e-8,0.0043994479138703985,1.782330059445976e-5,-5.70217692683362e-8,0.004399571685962228,1.7705329205192075e-5,-5.676158687960766e-8,0.004399779842592975,1.7535919356775476e-5,-5.6387604272475e-8,0.004400076250313624,1.736849329520766e-5,-5.601691660456328e-8,0.0044004470021380936,1.7246443601718784e-5,-5.574493496590799e-8,0.0044008672958289925,1.7199144884804796e-5,-5.5636639903815625e-8,0.004401307044890794,1.724130099925887e-5,-5.572497188992369e-8,0.00440173510197177,1.737368836590099e-5,-5.6012208288017816e-8,0.004402122691783258,1.7584415933249197e-5,-5.6472543144591716e-8,0.004402446537357039,1.785064042267672e-5,-5.705582151470724e-8,0.004402691816659508,1.8141037663291022e-5,-5.7693066337959046e-8,0.004402854735432183,1.841939830699297e-5,-5.8304506128850546e-8,0.0044029441466111215,1.86494319283523e-5,-5.88101859483882e-8,0.004402981550175842,1.8800342453498846e-5,-5.914217622460607e-8,0.004402999067764595,1.8852377164001726e-5,-5.925669183407802e-8,0.004403035359985339,1.8801411674438728e-5,-5.914416507577008e-8,0.0044031298139103415,1.866162281600663e-5,-5.883524829467042e-8,0.004403315601073636,1.8465518632622366e-5,-5.8401102927705954e-8,0.004403612303337892,1.8260820798133723e-5,-5.794674902359043e-8,0.00440401903455858,1.810360352195355e-5,-5.7596036212635465e-8,0.004404509752154576,1.8047165882872968e-5,-5.746702598309528e-8,0.004405033516436402,1.812725114889848e-5,-5.763917890945277e-8,0.004405522902615492,1.834684093381671e-5,-5.8119578846809494e-8,0.0044059119457882465,1.866727755270758e-5,-5.8823215461512124e-8,0.004406159440016461,1.9013925428711905e-5,-5.958550245976834e-8,0.004406266628248096,1.9299284542711648e-5,-6.021339687547807e-8,0.004406277737108989,1.945484969608813e-5,-6.055575571644973e-8,0.004406261496645234,1.9454837423611572e-5,-6.055559500071444e-8,0.004406284449775708,1.9319660877416878e-5,-6.025761062267969e-8,0.00440639062788073,1.910099176720538e-5,-5.977521664665257e-8,0.004406594829344743,1.886022453602534e-5,-5.924323335780905e-8,0.004406887078573716,1.8651292088100253e-5,-5.878025539400848e-8,0.004407241761031286,1.8511880264080445e-5,-5.846944211875105e-8,0.0044076263524043535,1.8461551898719056e-5,-5.835435137480919e-8,0.0044080076754981525,1.8503530268696664e-5,-5.8442683603324096e-8,0.00440835579500999,1.862755742929406e-5,-5.871235534719573e-8,0.004408646532290339,1.881262321625275e-5,-5.911736690258402e-8,0.004408863496128932,1.9029458207028737e-5,-5.959328119831901e-8,0.004409000066919958,1.924325840921723e-5,-6.006330961355848e-8,0.004409061253908856,1.9417302526743488e-5,-6.044637646552229e-8,0.004409064800155661,1.9517894893698925e-5,-6.066804549783033e-8,0.00440904055014602,1.9520391771617026e-5,-6.067376479634501e-8,0.004409027212339246,1.9415263477098266e-5,-6.044217579738232e-8,0.004409066265143777,1.9212538136596372e-5,-5.99949182565613e-8,0.004409193715141178,1.8942795303234154e-5,-5.939893403493536e-8,0.0044094314113227616,1.865344497733075e-5,-5.875845298339941e-8,0.004409780143242562,1.8400286623901103e-5,-5.8196555817766816e-8,0.004410216569539457,1.8235638567657733e-5,-5.782905216370578e-8,0.004410695422717016,1.8195238170461436e-5,-5.773546974239403e-8,0.004411157650944433,1.8286844900537162e-5,-5.7933659296607315e-8,0.004411543971861461,1.8484117436023682e-5,-5.836601541020027e-8,0.004411811395675748,1.8729348317482946e-5,-5.890535923731313e-8,0.004411947793992804,1.89470109132833e-5,-5.938486561457419e-8,0.0044119780011767805,1.906592214848751e-5,-5.964712702981143e-8,0.004411956808968038,1.9042277832868503e-5,-5.9595124411453214e-8,0.004411950401682743,1.8873156757466962e-5,-5.92220569871064e-8,0.004412014554899769,1.8594182067809693e-5,-5.8606156280090905e-8,0.004412179536671111,1.8263848967560027e-5,-5.7876134214088945e-8,0.0044124466739733125,1.7943581917926447e-5,-5.716729690606632e-8,0.004412794575472388,1.7682304086576782e-5,-5.6587619247160394e-8,0.004413189368832398,1.7509204078874898e-5,-5.6201810628385806e-8,0.004413594086340192,1.743345530047553e-5,-5.603059765879325e-8,0.004413975065031127,1.7447630029714103e-5,-5.605809066694707e-8,0.004414305472350097,1.7532025516451413e-5,-5.6241179923360305e-8,0.004414567041261399,1.7658503065552773e-5,-5.651793566777759e-8,0.004414751115520992,1.779363418722658e-5,-5.681456751260478e-8,0.004414859663338807,1.7901658854669397e-5,-5.7052019121006296e-8,0.0044149062993784445,1.794805755027884e-5,-5.7153915757579485e-8,0.004414916691840586,1.7904389601374315e-5,-5.7057269944060924e-8,0.004414927200000021,1.77543682378513e-5,-5.672588204884182e-8,0.0044149804922138025,1.750003314877578e-5,-5.616395099473292e-8,0.00441511759337999,1.7165714561544804e-5,-5.542484487782527e-8,0.004415367428776234,1.679696126662312e-5,-5.460881274387819e-8,0.0044157368984729635,1.64525946058128e-5,-5.3845568238601775e-8,0.0044162055472075626,1.6190716787134946e-5,-5.3263516737987664e-8,0.004416727899593218,1.6052589799655223e-5,-5.295419024084609e-8,0.0044172437234548155,1.6049869174066154e-5,-5.294395078197559e-8,0.004417693384688244,1.615974344870538e-5,-5.3183040430361466e-8,0.004418033663467096,1.6329784446188893e-5,-5.355607037861073e-8,0.004418249405605174,1.6491255741248804e-5,-5.391129234465096e-8,0.004418357633513688,1.657727659886784e-5,-5.41007360539825e-8,0.004418402673640693,1.6540796109409133e-5,-5.4020027084270734e-8,0.004418443391223361,1.636694373579072e-5,-5.3635805163711675e-8,0.004418536429934856,1.6075637077552477e-5,-5.2991599870440183e-8,0.004418721153570862,1.5713686813819345e-5,-5.219048380509432e-8,0.004419011327149181,1.5339827180016276e-5,-5.136208116526004e-8,0.004419395436149071,1.5008693642004086e-5,-5.062720950800594e-8,0.004419843763828487,1.475917925423041e-5,-5.0072119853676645e-8,0.004420318190940414,1.4609543041482485e-5,-4.973758066953034e-8,0.004420781006999231,1.455837640529271e-5,-4.9620879180614367e-8,0.004421200875707693,1.4588855571197866e-5,-4.9685116993361385e-8,0.004421555921818236,1.4673832615992423e-5,-4.9870423302738325e-8,0.004421834861138942,1.4780363310829798e-5,-5.0103979045361175e-8,0.004422037237442245,1.4873349197413976e-5,-5.030810679146616e-8,0.0044221735003303324,1.4918708687383351e-5,-5.0407314602882546e-8,0.004422265076734925,1.488684665139391e-5,-5.0335987892971714e-8,0.004422343894139628,1.4757129675741033e-5,-5.004829930915722e-8,0.004422450182798508,1.4523472760162985e-5,-4.953057889944237e-8,0.004422627129488367,1.4199935359410018e-5,-4.8813710361903955e-8,0.004422911606825086,1.382367526534905e-5,-4.7979688149729203e-8,0.004423322237828266,1.3451651182103001e-5,-4.715436315562399e-8,0.00442384901396835,1.3148639319550321e-5,-4.6480995689175956e-8,0.004424450465700748,1.2968277830758903e-5,-4.6078384882655163e-8,0.004425062411682258,1.2934115116972632e-5,-4.599895383332543e-8,0.004425616532075163,1.3029713949506274e-5,-4.620678002907812e-8,0.00442606125460747,1.3203026493029452e-5,-4.658713648167632e-8,0.004426376247492937,1.3382921571667098e-5,-4.698291956016331e-8,0.0044265757656095205,1.3500398155340669e-5,-4.7241493967355725e-8,0.0044267015746751685,1.3506656906523134e-5,-4.7254652877251136e-8,0.004426809564985756,1.3383317501207797e-5,-4.698127400556689e-8,0.004426954798878417,1.3143641854113754e-5,-4.645015416988944e-8,0.004427178862902963,1.282611238434304e-5,-4.574598280569655e-8,0.004427502065621027,1.248309395401886e-5,-4.498442593684408e-8,0.004427921557662274,1.2167909243147152e-5,-4.4283605507852286e-8,0.0044284149290582065,1.1923590626574095e-5,-4.373914849628887e-8,0.004428947492553156,1.1775726251332769e-5,-4.340818287378602e-8,0.0044294807498054785,1.1730276245194692e-5,-4.330431159108967e-8,0.00442997978210213,1.1775616157272551e-5,-4.3402016286169154e-8,0.004430418284203898,1.1887104697408922e-5,-4.3646763807176316e-8,0.004430781078167451,1.2032394059880673e-5,-4.396683813881441e-8,0.004431064723837474,1.2176260557030221e-5,-4.428411771350637e-8,0.0044312770935376515,1.228454666456542e-5,-4.452283720664672e-8,0.004431436570445023,1.2327479539015128e-5,-4.4616919616307796e-8,0.004431571073044788,1.2282959424570596e-5,-4.451723465126646e-8,0.004431716519505703,1.2140402085948442e-5,-4.420012359781004e-8,0.004431913708413011,1.190525144918933e-5,-4.367745401611296e-8,0.004432202271488714,1.1603137979985335e-5,-4.3005902031456583e-8,0.00443261096494701,1.128105558813796e-5,-4.228959825337529e-8,0.004433145658560025,1.1001798769206879e-5,-4.166779716993523e-8,0.004433779801368679,1.082900401217352e-5,-4.12817006687968e-8,0.004434454646972603,1.0805123199301839e-5,-4.122560821070611e-8,0.004435094025680583,1.093179184586048e-5,-4.1503363883340675e-8,0.004435629850168535,1.1164738583475233e-5,-4.20170322203088e-8,0.004436026030782993,1.1428372850655338e-5,-4.259921088755147e-8,0.004436288544140871,1.1642827137621819e-5,-4.30729574358741e-8,0.00443645852333741,1.1749408550127374e-5,-4.33081550485094e-8,0.004436594888881352,1.1724150687214207e-5,-4.3251474414460785e-8,0.004436755874140951,1.1577909422798677e-5,-4.292656969019233e-8,0.00443698556045168,1.134743368171151e-5,-4.241440383930332e-8,0.004437307141160754,1.1082923092713402e-5,-4.1825890935872864e-8,0.004437722000943753,1.0835997728485317e-5,-4.1275427325207346e-8,0.004438212894918262,1.0650076781292515e-5,-4.0859608303239765e-8,0.004438749638289341,1.055393982394728e-5,-4.0642808497137944e-8,0.004439295959152751,1.0558721353467244e-5,-4.065026502851615e-8,0.004439816265453436,1.065819146280534e-5,-4.0868482817672476e-8,0.004440281272009354,1.0831676496297347e-5,-4.1251640135869176e-8,0.004440671831938921,1.1048643543678123e-5,-4.173183848769729e-8,0.004440980777783971,1.1273898329578631e-5,-4.2230779881881195e-8,0.00444121303269828,1.1472474912977608e-5,-4.267071508775094e-8,0.004441384565236301,1.1613723431763203e-5,-4.298351149337096e-8,0.004441520716355006,1.1674659260946504e-5,-4.311801611635916e-8,0.004441654103827259,1.1642927188475744e-5,-4.304658575328331e-8,0.004441821893723169,1.151970903380154e-5,-4.277157863485106e-8,0.004442061733825511,1.1322569755221519e-5,-4.2331789891194374e-8,0.004442405367359218,1.1087324544257746e-5,-4.1806717475930976e-8,0.004442869542993695,1.0866655575333044e-5,-4.1313536007648224e-8,0.004443445735403163,1.0722317764963522e-5,-4.0989728756109695e-8,0.004444093284368835,1.0708865030730829e-5,-4.0956817567218523e-8,0.0044447430760904995,1.085167507562386e-5,-4.127142029165161e-8,0.004445316435740319,1.1129602124610225e-5,-4.1886642259513546e-8,0.004445754128237322,1.1475626607160576e-5,-4.2653546623268654e-8,0.004446040101964218,1.180003031512926e-5,-4.3372752883896014e-8,0.004446205530673317,1.2024629257590159e-5,-4.387057130415036e-8,0.004446312162708855,1.2108771182796773e-5,-4.405669777283164e-8,0.004446427135514646,1.2055740045207085e-5,-4.3938284164400834e-8,0.004446602819718554,1.1902415131929761e-5,-4.3596893302424874e-8,0.004446867462772274,1.1702280581489064e-5,-4.3150880569211476e-8,0.00444722502652385,1.1510013581017392e-5,-4.272141346034424e-8,0.004447660112373166,1.1371009258943887e-5,-4.240940734950581e-8,0.004448144592351008,1.1315808141326373e-5,-4.228315760058449e-8,0.00444864413440166,1.1358103698667109e-5,-4.237371725707588e-8,0.004449124029971733,1.1495141539025288e-5,-4.2675501313854964e-8,0.004449554153193063,1.1709878328814522e-5,-4.315087896932633e-8,0.004449912835517964,1.1974488478859295e-5,-4.373794004970734e-8,0.004450189440411732,1.2254789064169708e-5,-4.4360459045246395e-8,0.004450385488268202,1.2515133469631053e-5,-4.493894052335691e-8,0.004450514285615522,1.2723218588808307e-5,-4.540139076746559e-8,0.004450599251519201,1.285424788009527e-5,-4.569253626675187e-8,0.0044506713012207,1.2894201090678989e-5,-4.578100104332719e-8,0.004450765540459394,1.2842246866083047e-5,-4.5664633203186566e-8,0.004450917284953617,1.2712332911019386e-5,-4.537412450667041e-8,0.004451157155322636,1.2533780867555994e-5,-4.497450577626395e-8,0.004451504873237557,1.2350163721766086e-5,-4.45628020467471e-8,0.004451961919675364,1.2214876307893983e-5,-4.425820466465791e-8,0.004452504731610211,1.218142064773772e-5,-4.418032467973815e-8,0.004453082319776596,1.2287689702351628e-5,-4.441399178406356e-8,0.0044536237576869794,1.2537566429059222e-5,-4.496809227303929e-8,0.004454058600129623,1.2889221277017663e-5,-4.5749448011482285e-8,0.004454344557171657,1.3261764007055407e-5,-4.657774011379726e-8,0.004454487209756872,1.356321056345686e-5,-4.724799032523849e-8,0.004454537817108847,1.3726577222573843e-5,-4.761103975360433e-8,0.004454569953530231,1.3733042945322505e-5,-4.762500825386583e-8,0.0044546503114754445,1.3611019367534598e-5,-4.7353008192290663e-8,0.004454819540444871,1.3417353161617989e-5,-4.692121901981639e-8,0.004455088006355839,1.3214963151419203e-5,-4.6469264458608674e-8,0.0044554417320164475,1.3056798315819873e-5,-4.6114776888332594e-8,0.00445585181070049,1.2978205618864193e-5,-4.5936593073707565e-8,0.004456283063848414,1.2995515360089378e-5,-4.597157388372203e-8,0.004456700455403941,1.3107894323916252e-5,-4.621850553884396e-8,0.0044570734879752745,1.3300386432833933e-5,-4.664459015113946e-8,0.004457379329847273,1.354733210799182e-5,-4.719288460843296e-8,0.004457605083715164,1.381611653844664e-5,-4.779065425340231e-8,0.004457749208594007,1.4071308351959136e-5,-4.835873390854053e-8,0.004457821935847933,1.4279162754995978e-5,-4.882171487818592e-8,0.004457844413589892,1.4412244841220207e-5,-4.9118304592704225e-8,0.004457846392811299,1.4453606997495086e-5,-4.9210578647334747e-8,0.004457862579541846,1.4399892313824196e-5,-4.909080557286075e-8,0.004457928006711199,1.4262935015950712e-5,-4.878499921089497e-8,0.0044580728160356475,1.406956442522464e-5,-4.835259699152093e-8,0.004458316817654614,1.385936585539174e-5,-4.7881662798881046e-8,0.004458664213340158,1.3680097018682372e-5,-4.7478820736234354e-8,0.004459099197509258,1.3580228791160693e-5,-4.725262339870064e-8,0.004459584026033035,1.3598195514992196e-5,-4.728940689142557e-8,0.004460062199621417,1.3749252092781208e-5,-4.762371409222547e-8,0.0044604695823886415,1.4013664681784223e-5,-4.8211740969940616e-8,0.004460753777901616,1.4333327715772738e-5,-4.8923755358978294e-8,0.004460895857321044,1.4624178301927179e-5,-4.957195585635171e-8,0.00446092230560696,1.4804495669279922e-5,-4.997383459421404e-8,0.004460896977374359,1.4826692738442146e-5,-5.002318300311229e-8,0.004460895349738283,1.4694329378561483e-5,-4.972790533985917e-8,0.004460976016780967,1.4455254987504552e-5,-4.919452719357374e-8,0.0044611646111219405,1.4178234027314433e-5,-4.857603680579923e-8,0.004461454185855782,1.3928460573193122e-5,-4.801746458935442e-8,0.0044618157539403095,1.3752419469232318e-5,-4.7622364855750946e-8,0.0044622107137216325,1.3673354803297678e-5,-4.7442825841443116e-8,0.00446260043945746,1.369354382664959e-5,-4.7484455725649896e-8,0.004462952022908023,1.3799219006272274e-5,-4.7717131725367e-8,0.004463241121058138,1.3965553328710682e-5,-4.8085882901992276e-8,0.004463453324834858,1.4160873361938923e-5,-4.852016867099879e-8,0.0044635849469705675,1.435036495631774e-5,-4.894218569650978e-8,0.004463643417515637,1.4499782775240661e-5,-4.9275285274911396e-8,0.004463647051016639,1.4579493829923948e-5,-4.945312739285398e-8,0.004463623708041326,1.456882906403381e-5,-4.9429429021382195e-8,0.004463607842406662,1.4460176219189537e-5,-4.918704040982184e-8,0.0044636357910401445,1.4261818394534823e-5,-4.874420470914212e-8,0.0044637397511841466,1.3998495202235436e-5,-4.815581116683994e-8,0.004463941391235043,1.3708962880863763e-5,-4.7508063679370155e-8,0.004464246337336341,1.3440376771153735e-5,-4.6906117413019404e-8,0.0044646407956383674,1.3240001878015215e-5,-4.645569825673976e-8,0.004465091381001237,1.3145269848031426e-5,-4.624087973870854e-8,0.004465549066273715,1.3173598219246631e-5,-4.6301165592733985e-8,0.004465957939694511,1.3314136875100861e-5,-4.661280004540448e-8,0.004466268576327031,1.352468763662037e-5,-4.708169932958065e-8,0.00446645372428031,1.3737541360524216e-5,-4.7556478385599956e-8,0.004466520878302181,1.3876287526487771e-5,-4.786615773013864e-8,0.004466514326078782,1.3880445157377903e-5,-4.7875375783545784e-8,0.004466502142877897,1.3727918531229615e-5,-4.753461483998569e-8,0.004466552086217613,1.344312403337607e-5,-4.689826847344771e-8,0.0044667082651349286,1.3085819784721498e-5,-4.609959388131855e-8,0.004466980019477852,1.2727550786706039e-5,-4.529813388914731e-8,0.004467345755137234,1.2428783962732317e-5,-4.4628795806165725e-8,0.004467765779943532,1.2225982089979055e-5,-4.4173112494455235e-8,0.004468196005854024,1.2129693991677846e-5,-4.395498255353792e-8,0.004468597642816224,1.2129490543834448e-5,-4.395156917433471e-8,0.00446894206410521,1.2201011417455164e-5,-4.410885737385981e-8,0.00446921225500677,1.2312244640502023e-5,-4.43555394468987e-8,0.004469402654481283,1.2428213420078234e-5,-4.46134499502362e-8,0.0044695185950805304,1.2514503621319245e-5,-4.48055188286882e-8,0.004469575723049835,1.2540430548831996e-5,-4.486296672886854e-8,0.004469599148903078,1.2482479511679878e-5,-4.473308223481721e-8,0.004469621667375493,1.2328204497541601e-5,-4.4387945702341005e-8,0.004469680258111596,1.2080054076724377e-5,-4.38329250854799e-8,0.004469810440791369,1.1757832861630705e-5,-4.3112118745779403e-8,0.004470038938882233,1.139812552580378e-5,-4.2307071423256166e-8,0.004470376233823944,1.1049363336854192e-5,-4.1525836645826615e-8,0.004470811437085582,1.0762470256707936e-5,-4.088220096014905e-8,0.004471311827050345,1.057885493987764e-5,-4.046892914926202e-8,0.004471828174441778,1.0518954079644614e-5,-4.0332120643179816e-8,0.00447230517930829,1.057478045414597e-5,-4.045439322306815e-8,0.004472694773246646,1.0709058764895794e-5,-4.075274930775221e-8,0.004472969079340785,1.0862056909000877e-5,-4.1093716830421817e-8,0.004473129460972397,1.096542999972803e-5,-4.1324306385980915e-8,0.004473208349376754,1.0960344314636686e-5,-4.131265117419883e-8,0.004473261801176122,1.0814980769902441e-5,-4.098727821687716e-8,0.004473353611162491,1.0535090952922028e-5,-4.036078520359405e-8,0.004473535890618031,1.0162456216834655e-5,-3.952640941680167e-8,0.004473833792415958,9.760956408521302e-6,-3.862688960352953e-8,0.004474240602953426,9.396173414810474e-6,-3.7808898628385294e-8,0.004474724001444978,9.11738920258227e-6,-3.718281945206038e-8,0.004475238859403357,8.948272943174389e-6,-3.6801887768029544e-8,0.0044757402350894555,8.887048525787006e-6,-3.6662466891908055e-8,0.004476192324498001,8.912754115928486e-6,-3.6717928510436886e-8,0.004476572466872101,8.99328366656885e-6,-3.689655835364853e-8,0.004476871540255352,9.092325994737656e-6,-3.711706737226179e-8,0.0044770926280973825,9.174281950373387e-6,-3.7299643889725875e-8,0.004477249315061717,9.207572991317009e-6,-3.737343689531388e-8,0.0044773641629216165,9.167232096321902e-6,-3.7282422144220036e-8,0.004477467204936426,9.037578898248145e-6,-3.699141801660316e-8,0.004477593756950581,8.815347168589488e-6,-3.649307148880597e-8,0.00447778058690321,8.512872182307729e-6,-3.5814955514758316e-8,0.004478059745215661,8.159958224253264e-6,-3.502372164908136e-8,0.004478450365817333,7.802247766408065e-6,-3.4221459193305144e-8,0.004478950468601355,7.494062159631074e-6,-3.3529720730520204e-8,0.004479532465119492,7.285542176108168e-6,-3.3060801908352687e-8,0.004480146136971822,7.2072554470058906e-6,-3.288331103792207e-8,0.004480730224220354,7.258279349781589e-6,-3.2995444030558204e-8,0.004481229449583244,7.4035582392112385e-6,-3.331896233314279e-8,0.004481610689525678,7.582522644393277e-6,-3.371838931973838e-8,0.004481872292063173,7.725939025928392e-6,-3.403868938062639e-8,0.00448204374844317,7.774910697168804e-6,-3.414782399457034e-8,0.004482176671298304,7.696059172490782e-6,-3.397078855811176e-8,0.004482330435030019,7.4890430319435334e-6,-3.350650916046562e-8,0.004482556672721601,7.1850969128227755e-6,-3.282465246101726e-8,0.0044828866992572885,6.837522641746615e-6,-3.2044432737991846e-8,0.0044833250857910616,6.507056498926579e-6,-3.130192899832561e-8,0.004483850858172803,6.24650987263678e-6,-3.071570165203201e-8,0.004484425307959444,6.08924159396039e-6,-3.036088489326645e-8,0.004485003194359061,6.044356934728174e-6,-3.025827024763154e-8,0.004485543401858622,6.098712850233066e-6,-3.0378643182073185e-8,0.004486016219005494,6.2234233182378906e-6,-3.0657287324259747e-8,0.0044864064166258944,6.3817652026060565e-6,-3.1011736157922704e-8,0.004486712974298434,6.536100940869929e-6,-3.135738930785751e-8,0.004486946987567679,6.652794334948827e-6,-3.16186317416998e-8,0.0044871290855611435,6.705289352964788e-6,-3.173578594963119e-8,0.004487287039748156,6.676139966458214e-6,-3.1669660514816774e-8,0.004487453549021817,6.558809591876483e-6,-3.1405558068106883e-8,0.004487663626245549,6.359694715241642e-6,-3.095779699979666e-8,0.004487950667436226,6.100153211559874e-6,-3.0374268126452117e-8,0.004488340386805238,5.817319379742182e-6,-2.973828357636435e-8,0.004488842722498734,5.561454687988725e-6,-2.9162651978515495e-8,0.004489443758855133,5.387386078451001e-6,-2.87704753805209e-8,0.00449010207955269,5.339481305214199e-6,-2.866142686948672e-8,0.004490754688042762,5.434077367358827e-6,-2.887228736862537e-8,0.004491334130057058,5.647948607453723e-6,-2.9351019643881805e-8,0.004491791249757919,5.921297869142392e-6,-2.99634549511861e-8,0.004492112629279643,6.17644552752166e-6,-3.0535254824106297e-8,0.00449232388491216,6.343735825162951e-6,-3.0910079891972617e-8,0.004492478423788278,6.3824291151391336e-6,-3.0996454297399085e-8,0.0044926387333911215,6.288994539844147e-6,-3.078631234061721e-8,0.004492858636300761,6.092913739653983e-6,-3.0345562453837724e-8,0.004493171588724417,5.844789364045817e-6,-2.9787493231587065e-8,0.00449358619792652,5.60206433789655e-6,-2.9240893731404095e-8,0.004494087869175982,5.4161245069199806e-6,-2.882123891207294e-8,0.004494644740160421,5.322864554289205e-6,-2.8609503663609465e-8,0.004495216006784931,5.337654872160231e-6,-2.864069875751362e-8,0.004495760772876803,5.45491845871229e-6,-2.8902689986086383e-8,0.00449624562807949,5.6517357057193595e-6,-2.9344127629553888e-8,0.004496649625176552,5.894052353282223e-6,-2.988837234120634e-8,0.004496966197981279,6.14368973988668e-6,-3.044936038422412e-8,0.004497202413708704,6.364618307242032e-6,-3.094585642668188e-8,0.004497376491928267,6.527582409948589e-6,-3.131194447327545e-8,0.004497514640436966,6.6129278100694005e-6,-3.150337999113445e-8,0.004497647925917268,6.612117621637158e-6,-3.150093270015358e-8,0.004497809336845073,6.528610724443239e-6,-3.131231070153016e-8,0.004498030707089667,6.3785361876222695e-6,-3.09736925859592e-8,0.004498338829174895,6.191080665260008e-6,-3.055066942661581e-8,0.004498750077775436,6.0076683654676744e-6,-3.013646953689903e-8,0.004499263612814337,5.8780642609847445e-6,-2.9843203850422515e-8,0.004499854940636369,5.851244450515609e-6,-2.9781269629881294E-08,0.004500473936466841,5.960397636023314e-6,-3.002551100540538e-8,0.004501052719345036,6.205775394502228e-6,-3.057655086561226e-8,0.00450152565398311,6.544818406940442e-6,-3.133855594471292e-8,0.004501855052718436,6.89991925988118e-6,-3.213677936923044e-8,0.004502048299394567,7.184984577129539e-6,-3.277745584916125e-8,0.00450215485481849,7.337928245096862e-6,-3.312096524996092e-8,0.004502244939964075,7.34104622514252e-6,-3.31275673941889e-8,0.0045023832883471036,7.220589179745083e-6,-3.285626158580508e-8,0.0045026110823796145,7.030850470500054e-6,-3.2428926008768215e-8,0.0045029404092560505,6.834169236371335e-6,-3.198546698313869e-8,0.004503358106314494,6.685082210089396e-6,-3.1648403907449894e-8,0.004503833931529304,6.621199922123047e-6,-3.150250475699595e-8,0.004504329393182454,6.659916022098113e-6,-3.158735035096041e-8,0.004504805490228415,6.79906815339101e-6,-3.18986098972113e-8,0.0045052288712172945,7.020052500014815e-6,-3.239479081077634e-8,0.004505576291020284,7.292536290791366e-6,-3.300768877577651e-8,0.004505837190189702,7.580099251624076e-6,-3.3655110613896705e-8,0.0045060143045280365,7.846042790020471e-6,-3.42541110553583e-8,0.004506122446663604,8.058625318459529e-6,-3.473295260761845e-8,0.0045061858442556986,8.195104654863028e-6,-3.504028264202122e-8,0.004506234642510104,8.244233774000591e-6,-3.515070923594395e-8,0.004506301185498216,8.20730170658394e-6,-3.506705303538336e-8,0.004506416396345633,8.098093426558627e-6,-3.482021907021817e-8,0.004506606235169193,7.94206498498607e-6,-3.446740371929097e-8,0.004506887964378976,7.774744655900673e-6,-3.4088620681013444e-8,0.004507265898608951,7.63883680811971e-6,-3.378026681707891e-8,0.004507726866888514,7.578827637892328e-6,-3.364294154809401e-8,0.0045082369085281135,7.631796357853752e-6,-3.376059550196789e-8,0.0045087423408103665,7.81442404265071e-6,-3.4171064362557586e-8,0.004509179270358261,8.109527450340536e-6,-3.48355963905556e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_26.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_26.json new file mode 100644 index 000000000..d989a12f4 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_26.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":26000,"numberOfSamples":1000,"samples":[0.004509493310776733,8.460255546355793e-6,-3.5625800851343465e-8,0.004509663584584268,8.78152154032578e-6,-3.634960149730122e-8,0.004509716789810693,8.989819707723907e-6,-3.681866430913203e-8,0.004509719059465651,9.037418772725032e-6,-3.692552117143939e-8,0.004509748243703133,8.930185223519827e-6,-3.668355434778159e-8,0.004509863647122957,8.719470842231082e-6,-3.620846132642241e-8,0.004510089653785742,8.476972036399517e-6,-3.5661533171045015e-8,0.004510416800722429,8.269299770251092e-6,-3.51925282944491e-8,0.004510813094911667,8.1427235238956e-6,-3.4905561743649874e-8,0.004511237012805131,8.118815983827459e-6,-3.4849442039030304e-8,0.004511647598100416,8.19695215375018e-6,-3.5023237901990346e-8,0.004512010754110658,8.359585736620415e-6,-3.538793530902102e-8,0.004512302608721269,8.577895407180773e-6,-3.5878908014654e-8,0.004512511101780664,8.817020399356672e-6,-3.6417590410461715e-8,0.004512636407156604,9.040913865577355e-6,-3.692247406897225e-8,0.004512690307657771,9.216869444768706e-6,-3.7319489010541575e-8,0.004512694498577715,9.319590010896785e-6,-3.755134208751638e-8,0.004512677812454461,9.33448051439994e-6,-3.758499305360356e-8,0.004512672525088187,9.259714461186162e-6,-3.74162487552752e-8,0.004512710155956202,9.106773676260358e-6,-3.7070886445067697e-8,0.004512817232229619,8.899452134994748e-6,-3.660239062283695e-8,0.004513011361703757,8.671416905011533e-6,-3.6086549932726506e-8,0.0045132978459024205,8.462410007400726e-6,-3.561303803422552e-8,0.00451366700674806,8.313087368408677e-6,-3.5273853268424084e-8,0.004514092641922462,8.258223307030978e-6,-3.5147920393724736e-8,0.004514532771288454,8.318077690988317e-6,-3.5281410931936163e-8,0.004514934630932754,8.4888481118899e-6,-3.566597134940736e-8,0.004515245854344678,8.735374126556136e-6,-3.622214330179837e-8,0.0045154316998782295,8.991891199064452e-6,-3.6801147360575755e-8,0.004515492902915043,9.176856590224277e-6,-3.7218586920753816e-8,0.004515473030595792,9.22132948769478e-6,-3.731873347690093e-8,0.004515445973338222,9.09843419372188e-6,-3.704104339955742e-8,0.00451548682469044,8.835578371895206e-6,-3.644751863773576e-8,0.00451564268107663,8.500985857177386e-6,-3.5692080359945736e-8,0.0045159197183348996,8.174205711565663e-6,-3.495399269113799e-8,0.004516289609363855,7.91891452501725e-6,-3.437668106843999e-8,0.004516706111846334,7.769533914623208e-6,-3.403776290168179e-8,0.004517121078763411,7.73134067417984e-6,-3.3949388348932536e-8,0.0045174946878258695,7.787734155315276e-6,-3.4074540770568025e-8,0.004517799867137044,7.908923469211388e-6,-3.434642142253354e-8,0.004518023021591153,8.059160327422076e-6,-3.468456742654183e-8,0.004518163140214663,8.202005982025426e-6,-3.50066650311153e-8,0.004518230411948181,8.30424890030949e-6,-3.523747823122548e-8,0.004518244570725208,8.33915192550796e-6,-3.531634932075353e-8,0.004518232782286238,8.28935594403696e-6,-3.5203891163581475e-8,0.004518226774465987,8.149365170645358e-6,-3.488762043767852e-8,0.004518259006711036,7.927116613346235e-6,-3.438542274392408e-8,0.004518358060544222,7.643963370228097e-6,-3.3745425584923236e-8,0.004518543856405558,7.332621283429884e-6,-3.3041356370972954e-8,0.004518823498710852,7.0329632269025115e-6,-3.236314547040654e-8,0.004519188579967757,6.785903929501321e-6,-3.180325247605029e-8,0.004519614661144808,6.626048418181081e-6,-3.14401232958339e-8,0.0045200634304379044,6.5740276672578925e-6,-3.132079397132222e-8,0.004520487966458727,6.62956304606739e-6,-3.144502131997278e-8,0.00452084147546764,6.766843341505083e-6,-3.175463526314589e-8,0.004521089187148414,6.934764185105069e-6,-3.2134004538126606e-8,0.004521221269959029,7.065025688552307e-6,-3.2428442843453624e-8,0.004521261859102045,7.089574850293132e-6,-3.248384715700535e-8,0.0045212674299407694,6.964089990219654e-6,-3.2199939344201606e-8,0.004521310513078177,6.687544084459722e-6,-3.1574464342686096e-8,0.004521453447203763,6.305670157088708e-6,-3.071085821791362e-8,0.0045217253573987225,5.893958647960642e-6,-2.9779688167653515e-8,0.004522114733755025,5.529133856038296e-6,-2.8954214723599135e-8,0.004522579377927455,5.264744210794258e-6,-2.8355366465152043e-8,0.004523065009217748,5.120982847527676e-6,-2.802885167464862e-8,0.004523521972907846,5.088150002782038e-6,-2.7952986672350293e-8,0.004523914736487703,5.136932989628306e-6,-2.8061821235107004e-8,0.004524224518460753,5.229079919518181e-6,-2.8269112293518485e-8,0.004524447866784532,5.325356167857952e-6,-2.8486202260608446e-8,0.004524593830297251,5.390497834119252e-6,-2.8633216627973057e-8,0.004524681160259874,5.396171432205578e-6,-2.864585654482284e-8,0.004524735849207278,5.323027317101781e-6,-2.8480176026552257e-8,0.0045247886943237964,5.16249823096028e-6,-2.8116730602371682e-8,0.004524872353940403,4.918444281738836e-6,-2.7564280225240977e-8,0.0045250174349796965,4.608134848323794e-6,-2.68619228883987e-8,0.004525247591606092,4.261615509273891e-6,-2.6077583364155316e-8,0.004525574321292053,3.918549452938378e-6,-2.530086898948843e-8,0.00452599277311532,3.622150479587777e-6,-2.462943302074595e-8,0.0045264801545203655,3.4107258886289212e-6,-2.4149954956603862e-8,0.004526998018263306,3.308450392319929e-6,-2.3917312554474847e-8,0.004527498775693957,3.317760005942039e-6,-2.3937301228621522e-8,0.00452793558120547,3.415707219466181e-6,-2.415823276235786e-8,0.00452827373820132,3.555942963102195e-6,-2.4475281614218993e-8,0.004528501076735233,3.677053577969154e-6,-2.4749321189987848e-8,0.004528634255226658,3.7166708540264696e-6,-2.4838951555615288e-8,0.00452871788049019,3.6288209284880697e-6,-2.4639908971730102e-8,0.004528814461392247,3.399578871249497e-6,-2.4120586107355082e-8,0.004528986348915549,3.0544546974012395e-6,-2.3338735228699577e-8,0.004529275447593868,2.652362755159554e-6,-2.2427751850493508e-8,0.0045296894826229355,2.266809562799965e-6,-2.1554061940523532e-8,0.004530201357681512,1.962172998408435e-6,-2.0863453384503786e-8,0.004530761107800889,1.7757792179593227e-6,-2.044053421769499e-8,0.004531313427122603,1.7122786235617054e-6,-2.0295983770420518e-8,0.0045318125655776954,1.749367675975404e-6,-2.037944352447753e-8,0.004532230187937357,1.8490802478591477e-6,-2.0605011670815894e-8,0.00453255650096998,1.968861091375431e-6,-2.08762767548505e-8,0.004532797413529103,2.069429992863889e-6,-2.1104137100273155e-8,0.004532970455627508,2.1191957801873115e-6,-2.121685754164669e-8,0.004533101006844266,2.0963386322046738e-6,-2.1164869031366592e-8,0.004533219236241922,1.9898190337828303e-6,-2.09231193072752e-8,0.004533357423629913,1.8001513809640854e-6,-2.0492836790277707e-8,0.004533546992225019,1.540165048997408e-6,-1.9903207651827864e-8,0.004533814625910253,1.2352637227640804e-6,-1.9211889086172134e-8,0.0045341773121543635,9.220902568912064e-7,-1.8501932634248034e-8,0.004534637007950439,6.443360771918933e-7,-1.7872295458798828e-8,0.004535176664792075,4.4499167138597644e-7,-1.7420339103780497e-8,0.004535760035304328,3.557925328380303e-7,-1.7217978115692215e-8,0.004536337215533742,3.866412902473646e-7,-1.728772350881937e-8,0.004536855876733859,5.191842687487436e-7,-1.7588072274695526e-8,0.004537275385870752,7.081369882607212e-7,-1.8016430469229954e-8,0.004537579125593926,8.912435030713721e-7,-1.8431639886474907e-8,0.004537780530744449,1.005317578228007e-6,-1.8690357071296403e-8,0.004537920538034231,1.0034699039837472e-6,-1.868616129977461e-8,0.0045380570398233745,8.682810605385142e-7,-1.837946472292758e-8,0.004538249294644987,6.169983072998986e-7,-1.780931248930263e-8,0.004538541670781989,2.970358272201004e-7,-1.708319176747392e-8,0.004538951579800054,-2.7231731686069303e-8,-1.634711520277816e-8,0.004539465565272268,-2.9245638234442717e-7,-1.5744867236873657e-8,0.004540044817016876,-4.530987714794202e-7,-1.537993968878856e-8,0.004540637691521912,-4.913904592554641e-7,-1.5292863661002783e-8,0.0045411941681401885,-4.179588426089708e-7,-1.545968048557915e-8,0.0045416771529875445,-2.646725790176748e-7,-1.580808820140591e-8,0.004542067915028178,-7.389589463817978e-8,-1.624181308946475e-8,0.004542365941693601,1.1161571806108388e-7,-1.6663601282918254e-8,0.004542585366851695,2.557719936323004e-7,-1.6991327574329404e-8,0.004542750301596352,3.328556897280507e-7,-1.7166487509062615e-8,0.004542890539772055,3.288339048433999e-7,-1.7157205799619142e-8,0.004543038110357333,2.4148307307612337e-7,-1.6958505979006495e-8,0.00454322442352209,8.020747945813414e-8,-1.659185787564851e-8,0.004543477357567356,-1.341554185295706e-7,-1.6104693284517906e-8,0.0045438176089469635,-3.6995599015852086e-7,-1.5568968349127696e-8,0.004544254057927853,-5.868612278189073e-7,-1.507632289085078e-8,0.004544778812882803,-7.409000787411416e-7,-1.4726631776247386e-8,0.0045453638821404034,-7.933529756111925e-7,-1.4607830316871693e-8,0.004545962512626217,-7.226259496806341e-7,-1.4768947865738407e-8,0.004546517831531095,-5.353354038386974e-7,-1.5194914668309396e-8,0.004546978401910495,-2.705801777601392e-7,-1.5796839796783648e-8,0.004547315606031961,7.426064280520287e-9,-1.6428760347708144e-8,0.00454753489003374,2.2771495362971647e-7,-1.6929398929145512e-8,0.004547674975302893,3.348200634734904e-7,-1.7172762210130373e-8,0.004547795269270398,3.0546407671952013e-7,-1.7106022758788838e-8,0.004547957342816333,1.5361082419481356e-7,-1.6760923023671023e-8,0.004548207818776337,-7.620926519655014e-8,-1.623857269178295e-8,0.004548567688113334,-3.2310178950335675e-7,-1.5677235728358874e-8,0.004549029689400049,-5.261904517049809e-7,-1.5215224434557068e-8,0.004549562879332015,-6.387181991297879e-7,-1.4958938590346338e-8,0.004550122119909111,-6.369676213818445e-7,-1.4962560924246113e-8,0.004550659547407562,-5.227487180281773e-7,-1.522226203843342e-8,0.00455113503524916,-3.198295674394947e-7,-1.568415057741117e-8,0.004551523306381531,-6.614611648123595e-8,-1.6261898726347644e-8,0.004551816641272785,1.9551328796095916e-7,-1.685796274830549e-8,0.004552023601182218,4.2580724108011224e-7,-1.7382583753550408e-8,0.004552165189758773,5.945892816202448e-7,-1.7766991018379748e-8,0.004552270093790798,6.837932410099917e-7,-1.7970026091410244e-8,0.004552370226282839,6.880617875256065e-7,-1.797954851084639e-8,0.004552497089156715,6.141061808103928e-7,-1.781091130786019e-8,0.004552678823971549,4.796156243032983e-7,-1.7504429067141582e-8,0.004552937441607541,3.1202357072442164e-7,-1.7122570952647516e-8,0.004553285657210565,1.4683488458868566e-7,-1.6746191281231358e-8,0.004553723072438308,2.461230159602889e-8,-1.6467701649164962e-8,0.004554232297584862,-1.4673606685835707e-8,-1.6378198838017022e-8,0.004554776931368462,5.916408340345163e-8,-1.654648595704409e-8,0.004555304544316013,2.5471410996338887e-7,-1.699210890005788e-8,0.004555757580182239,5.487508779098537e-7,-1.766206390844868e-8,0.00455609163018589,8.847980560550384e-7,-1.8427567403072217e-8,0.004556294266149341,1.1862585904106192e-6,-1.9114066338961307e-8,0.00455639356224145,1.3819276275300728e-6,-1.955944643880223e-8,0.004556449423840962,1.4320994076717743e-6,-1.967347844662727e-8,0.00455653146260646,1.3415196289400694e-6,-1.9467164239301853e-8,0.004556695250636879,1.1538974614742377e-6,-1.9040064669564954e-8,0.00455696762660136,9.337292242152009e-7,-1.8538868697838413e-8,0.004557344253094815,7.457228920368247e-7,-1.8110674855141883e-8,0.004557796262614695,6.393184058846508e-7,-1.7867944352973605e-8,0.004558280964655819,6.408021303045762e-7,-1.7870661006435703e-8,0.004558752717751708,7.521507776956689e-7,-1.812364701480733e-8,0.004559171865542613,9.545520907436515e-7,-1.8584396920373626e-8,0.004559510918417762,1.214685417394258e-6,-1.9177186559210626e-8,0.0045597577345257365,1.492268065989241e-6,-1.9810175736451022e-8,0.004559915758252532,1.747525782261627e-6,-2.0392490975707653e-8,0.004560001790681829,1.947399946982737e-6,-2.084852456530275e-8,0.004560042130719432,2.069755428846989e-6,-2.112766147211479e-8,0.004560068031127442,2.105379942421046e-6,-2.1208875035905857e-8,0.004560111313149676,2.0580137470542224e-6,-2.110073390215724e-8,0.004560200668904181,1.943025512553438e-6,-2.083829693588606e-8,0.004560358702285993,1.785412603296129e-6,-2.0478523102675264e-8,0.004560599413535639,1.6174458646150957e-6,-2.009495393525646e-8,0.004560925771429382,1.4758038902445344e-6,-1.977126696599221e-8,0.004561327227637577,1.3976103681723366e-6,-1.9592281027131787e-8,0.004561777687863393,1.414475222692563e-6,-1.963031184849548e-8,0.004562235579990404,1.5439760444566057e-6,-1.9925614673578647e-8,0.004562648675447503,1.7796412722016043e-6,-2.046341689014831e-8,0.004562966076598825,2.0834817290894464e-6,-2.1156859279096877e-8,0.004563156563769151,2.3880171788488707e-6,-2.1851733662215338e-8,0.004563226026995868,2.6134961406077906e-6,-2.236596297709388e-8,0.004563222002259049,2.697182257226839e-6,-2.255654425324677e-8,0.004563218140920344,2.6200473503104345e-6,-2.2380369070183947e-8,0.004563285177328307,2.4142697533356353e-6,-2.1911080480621846e-8,0.00456346510562536,2.1474700508499156e-6,-2.1302898831592876e-8,0.0045637614855055355,1.8952029862123072e-6,-2.0727876983910757e-8,0.004564146109374209,1.717390042126911e-6,-2.0322347502066937e-8,0.004564573586655692,1.6467160412382832e-6,-2.0160696512706902e-8,0.004564995621143562,1.6879982482464885e-6,-2.025403919365333e-8,0.004565371098880404,1.823849272809698e-6,-2.0563061761098215e-8,0.004565671575998424,2.0224636955771143e-6,-2.1015577494141815e-8,0.004565883304822525,2.2451570701558744e-6,-2.1523520714831093e-8,0.004566007062175339,2.4528861969496664e-6,-2.1997743592595424e-8,0.004566056469157245,2.6116666971517507e-6,-2.23604574329312e-8,0.004566055109573586,2.6967378051573467e-6,-2.2554903643749895e-8,0.004566032787591015,2.6952576374760298e-6,-2.2551638035756678e-8,0.004566021340058094,2.6074130943391173e-6,-2.2351082445335482e-8,0.004566050456020915,2.445916611802514e-6,-2.198229461679592e-8,0.004566143978834918,2.234071638222029e-6,-2.1498460356284963e-8,0.004566316991076654,2.002834908710053e-6,-2.0970174692905903e-8,0.004566573698773829,1.7872369419549948e-6,-2.047735188978444e-8,0.004566906025496633,1.6222415688750605e-6,-2.009987915744285e-8,0.004567292941820179,1.5378947751270364e-6,-1.9906572258774763e-8,0.0045677009482845456,1.5534732761251689e-6,-1.9941722705096247e-8,0.004568086845586504,1.6706423254153708e-6,-2.0209304708076832e-8,0.004568404479915657,1.8669001932336232e-6,-2.065787129431821e-8,0.004568616641222311,2.0927296815380814e-6,-2.1174057753546027e-8,0.004568710628782926,2.277737563029436e-6,-2.159677431671749e-8,0.004568710906383361,2.3496980887248315e-6,-2.1760931647364762e-8,0.004568678450507578,2.2627328227331568e-6,-2.1561913449607736e-8,0.004568690934995052,2.0202730399911163e-6,-2.100789416692359e-8,0.004568811461316786,1.6765736725135978e-6,-2.0223021008261412e-8,0.004569064102334118,1.3138502582226867e-6,-1.939501198865483e-8,0.00456942983638702,1.0095623883627573e-6,-1.870048308376553e-8,0.0045698609228537225,8.126805895776015e-7,-1.8250956905805127e-8,0.004570301299600792,7.370286449055343e-7,-1.8077863586350383e-8,0.004570702395164331,7.675146472653699e-7,-1.8146849034032396e-8,0.004571031105591736,8.712119800734532e-7,-1.838299920858834e-8,0.004571271553897738,1.0077872223193491e-6,-1.8694474593890068e-8,0.004571423431715869,1.1371794672960694e-6,-1.898988427190855e-8,0.00457149912894306,1.224623094486609e-6,-1.9189713805360918e-8,0.004571520661368493,1.2439529482437433e-6,-1.9233970167685107e-8,0.004571516461258664,1.1798659800376192e-6,-1.90875063062554e-8,0.004571517887299565,1.0292685411183112e-6,-1.874320617434184e-8,0.00457155544903053,8.015811947188519e-7,-1.822266996676711e-8,0.004571654890494846,5.177527012148897e-7,-1.757386049492885e-8,0.0045718335249696285,2.0776980474633583e-7,-1.686531683855287e-8,0.004572097388308316,-9.323396016944465e-8,-1.6177255542095043e-8,0.004572439665645757,-3.4987692521596087e-7,-1.5590463436344316e-8,0.004572840644505964,-5.31972816140779e-7,-1.5173961796713732e-8,0.004573269348815289,-6.200415053200593e-7,-1.4972436045635267e-8,0.004573687024026574,-6.10406095595246e-7,-1.4994491965318193e-8,0.004574052809641157,-5.192579563073559e-7,-1.520320779417572e-8,0.00457433198222599,-3.843987328357727e-7,-1.5512049283710714e-8,0.004574506433080039,-2.6231970700412053e-7,-1.57915871799184e-8,0.004574585098804139,-2.1787955603130257e-7,-1.5893271807468845e-8,0.0045746091849351205,-3.056827632750247e-7,-1.569220003592137e-8,0.004574645498676162,-5.476968892825376e-7,-1.513834525051923e-8,0.004574765267068838,-9.184797312588896e-7,-1.4290196294897466e-8,0.00457501606601899,-1.3499749934384158e-6,-1.3303575679860455e-8,0.004575402559457306,-1.7569182650377685e-6,-1.2373436343486388e-8,0.00457588755670308,-2.0690376161348062e-6,-1.1660288023729968e-8,0.004576410675222101,-2.2521266223356963e-6,-1.1242149216779647e-8,0.004576911396180024,-2.3103385627944873e-6,-1.1109414454615705e-8,0.004577344958268909,-2.275047092560445e-6,-1.119036156480763e-8,0.004577688009744958,-2.190125367673378e-6,-1.1384764724171442e-8,0.00457793703023403,-2.1001362793857524e-6,-1.1590799048558753e-8,0.004578103680851678,-2.0432033769984585e-6,-1.1721260373927869e-8,0.004578209903486739,-2.0476287663152695e-6,-1.1711299731405369e-8,0.00457828387494594,-2.1305649056463137e-6,-1.1521549135013692e-8,0.004578356691217041,-2.2974938653969773e-6,-1.113942510021554e-8,0.004578459254883159,-2.5420904405371936e-6,-1.0579494532798996e-8,0.004578618975408969,-2.8466169571197294e-6,-9.882523233547e-9,0.004578856169100808,-3.183321162571054e-6,-9.112167432714705e-9,0.004579180478803452,-3.5174083811508843e-6,-8.34808453913955e-9,0.004579588120477424,-3.8118316727193404e-6,-7.674971745318212e-9,0.004580060934558044,-4.03352156185739e-6,-7.168392305513895e-9,0.0045805679854873955,-4.1600968235078126e-6,-6.87951141941344e-9,0.0045810699651512255,-4.185692981165825e-6,-6.821782230335321e-9,0.00458152603375295,-4.124467505914989e-6,-6.962856854404446e-9,0.004581902189684743,-4.010657797913334e-6,-7.224349646031663e-9,0.004582179915574498,-3.894438306832133e-6,-7.491268811747432e-9,0.004582363424246814,-3.833098119282915e-6,-7.632267271587255e-9,0.004582483126184382,-3.8777855317296025e-6,-7.53011848341852e-9,0.004582592398102796,-4.057840675385612e-6,-7.117693448106915e-9,0.004582755475052093,-4.367487092300224e-6,-6.408428922268497e-9,0.004583027684494128,-4.761913130848646e-6,-5.505193981758026e-9,0.004583434904318093,-5.1682652158940795e-6,-4.575001218916299e-9,0.004583962740856525,-5.509717091332434e-6,-3.793847647778333e-9,0.004584562235224711,-5.731726984261732e-6,-3.286608037184449e-9,0.0045851690079899594,-5.8173444046123675e-6,-3.092013230972495e-9,0.004585724984926677,-5.785936446522613e-6,-3.1655856948169594e-9,0.004586192672434863,-5.680003803249362e-6,-3.4098510201368928e-9,0.004586558909587067,-5.549240041603622e-6,-3.710862720240599e-9,0.004586831090544941,-5.438473165345392e-6,-3.965824489806852e-9,0.004587030516411275,-5.381337431846182e-6,-4.097587491428378e-9,0.004587186126494469,-5.398361853965937e-6,-4.059053627389166e-9,0.0045873298103882906,-5.49731379182367e-6,-3.8324359563939324e-9,0.004587493095288864,-5.6741958005571095e-6,-3.427014054705955e-9,0.0045877044693880785,-5.914235263036652e-6,-2.876857912876998e-9,0.004587986651218072,-6.192958116809043e-6,-2.238299632400325e-9,0.004588353448843592,-6.477950803344133e-6,-1.5858038797377467e-9,0.004588806428404769,-6.73216177730537e-6,-1.0043412823020856e-9,0.00458933233628059,-6.919340188748711e-6,-5.769299288868636e-10,0.004589902743292579,-7.011376771941958e-6,-3.6786881572565e-10,0.004590477310455618,-6.996130497857601e-6,-4.0485922692968167e-10,0.004591011167147137,-6.883260760486553e-6,-6.656513658249578e-10,0.0045914652682251846,-6.705371049354524e-6,-1.075393733113511e-9,0.004591817010039603,-6.512924106794449e-6,-1.5182606557942965e-9,0.004592067796621043,-6.363468442006583e-6,-1.8621675068497396e-9,0.004592244944227824,-6.307637731525589e-6,-1.9909320328163395e-9,0.004592396800370081,-6.375463343972728e-6,-1.835720290287429e-9,0.004592581636072272,-6.566741952320174e-6,-1.397147556305703e-9,0.004592852503308843,-6.848670800862258e-6,-7.506592754098574e-10,0.0045932418347822595,-7.16265852740837e-6,-3.085310633349787e-11,0.004593750787773998,-7.439775464126724e-6,6.039907256439864e-10,0.004594348004365676,-7.620693551409611e-6,1.0176568839792315e-9,0.004594979307958952,-7.67285027729872e-6,1.1353900564086016e-9,0.004595584733360852,-7.597882344516838e-6,9.60993606260401e-10,0.004596115629330661,-7.427042036220201e-6,5.663444100107817e-10,0.004596545284004681,-7.208277314545172e-6,6.172570217697634e-11,0.004596870828408168,-6.9916428475073475e-6,-4.377209163440163e-10,0.004597108555701069,-6.818392915343977e-6,-8.371051908542961e-10,0.004597286586221487,-6.715617670183615e-6,-1.0741512526115635e-9,0.004597438018468549,-6.6953943241077795e-6,-1.1211643140079087e-9,0.004597595917342151,-6.7563461785649045e-6,-9.814428534041288e-10,0.0045977900559172604,-6.8858632210796456e-6,-6.841521467843064e-10,0.004598044659033155,-7.062128212677125e-6,-2.796287018101613e-10,0.004598376318128057,-7.255916920005681e-6,1.6480339335871812e-10,0.004598791545151504,-7.4327601793754e-6,5.698408862789437e-10,0.004599284036273952,-7.55641510487658e-6,8.521963256757693e-10,0.004599832545317101,-7.59449169585154e-6,9.37519703522967e-10,0.004600401089893143,-7.526267837569374e-6,7.783330705853753e-10,0.0046009435048163455,-7.351117380604259e-6,3.7337668699399923e-10,0.004601413323426574,-7.094082392306315e-6,-2.1959916877791475e-10,0.004601777276461345,-6.804398311453375e-6,-8.872456883447427e-10,0.004602027574734469,-6.544807205465784e-6,-1.4852269544859042e-9,0.004602187108824936,-6.373998484428838e-6,-1.878640796994688e-9,0.004602304305622246,-6.328662725555859e-6,-1.983290254130587e-9,0.004602439234285484,-6.4122851305789306e-6,-1.7913894121004542e-9,0.004602646341656962,-6.59454075292182e-6,-1.372856112257814e-9,0.004602959791749618,-6.820555679744346e-6,-8.539567811146143e-10,0.004603385401025903,-7.026168406663905e-6,-3.8223413598513426e-10,0.004603900535041509,-7.154432726648315e-6,-8.862971018962839e-11,0.004604461221360877,-7.16909923779504e-6,-5.6530923583887666e-11,0.004605014161836207,-7.061911347469658e-6,-3.0496913721986693e-10,0.004605510173710997,-6.852198505821913e-6,-7.894778705239851e-10,0.004605915231864156,-6.579480498016876e-6,-1.4190378636351609e-9,0.004606216233404941,-6.291994615044852e-6,-2.0824711583876744e-9,0.00460642071017142,-6.035108556079831e-6,-2.675171494544614e-9,0.00460655193149057,-5.842863718623184e-6,-3.1186589302558516e-9,0.004606641995139615,-5.733972110264688e-6,-3.369853455113043e-9,0.004606725264452894,-5.711711571864843e-6,-3.4213163304000836e-9,0.0046068334424430035,-5.7661813773756325e-6,-3.2960088168680032e-9,0.004606992447073734,-5.877366283212291e-6,-3.0401786490361465e-9,0.004607220525040382,-6.01804827384349e-6,-2.7166204947669695e-9,0.004607526828035787,-6.156368380259616e-6,-2.3987754818787228e-9,0.004607909878637184,-6.2584771004198995e-6,-2.1646433927517645e-9,0.004608355861891447,-6.292108699703443e-6,-2.0885544550141327e-9,0.004608837460403657,-6.231941022115572e-6,-2.2288041686048496e-9,0.004609314869247811,-6.066944432541149e-6,-2.610692390028512e-9,0.004609741181179981,-5.808287594175388e-6,-3.208296374163034e-9,0.004610073532643847,-5.494016982094601e-6,-3.9337217762102935e-9,0.004610288280096579,-5.185259144008995e-6,-4.645941435360547e-9,0.004610393895995997,-4.950873931477467e-6,-5.186269288801948e-9,0.004610433184336685,-4.844246198175972e-6,-5.431895389162019e-9,0.004610470758879338,-4.8829096485003395e-6,-5.342766223918112e-9,0.0046105707030473,-5.0419564476459976e-6,-4.976589310976798e-9,0.004610775446429694,-5.26417400954597e-6,-4.465310329754646e-9,0.004611094963682681,-5.480348310975678e-6,-3.968302033161426e-9,0.00461150823724263,-5.62972692844612e-6,-3.625329611994953e-9,0.004611973094222571,-5.673786679284628e-6,-3.524987578971608e-9,0.0046124390559712505,-5.60146915226002e-6,-3.692726761576285e-9,0.004612859222188488,-5.427288532920816e-6,-4.095184948750271e-9,0.004613199097686521,-5.184761096077944e-6,-4.655216115005645e-9,0.00461344157660515,-4.917463952163088e-6,-5.272388730713527e-9,0.004613587996069912,-4.669665926120923e-6,-5.844552407820035e-9,0.004613655691602776,-4.478251084401866e-6,-6.28652082530562e-9,0.004613673077859672,-4.367267921755222e-6,-6.542744128551488e-9,0.00461367367651798,-4.345651474038695e-6,-6.592631310893555e-9,0.0046136904516331,-4.407814373872608e-6,-6.449178045460803e-9,0.004613751389181142,-4.536239263420983e-6,-6.152919507168062e-9,0.004613876649815567,-4.704994955452618e-6,-5.763751856803909e-9,0.004614077028175075,-4.883303608630905e-6,-5.352690069082215e-9,0.004614353162834188,-5.038827337005442e-6,-4.994329710158694e-9,0.004614695036423012,-5.140875843306533e-6,-4.759499974144619e-9,0.004615081647533657,-5.164078436357073e-6,-4.706796509128987e-9,0.004615481345908867,-5.093156815280933e-6,-4.871507157630509e-9,0.004615854140456318,-4.928932317867542e-6,-5.251665030544923e-9,0.004616157793161933,-4.694284295014727e-6,-5.794263848231378e-9,0.004616358878782183,-4.436656622864292e-6,-6.389541647842568e-9,0.004616447225878722,-4.222062557520083e-6,-6.884973524270293e-9,0.004616447316459371,-4.117217975337249e-6,-7.126660174101772e-9,0.0046164171712829195,-4.163817419832329e-6,-7.018720722844495e-9,0.004616430002982171,-4.358091358751388e-6,-6.5703061256921416e-9,0.004616545920780777,-4.64955458388336e-6,-5.898225015384205e-9,0.004616789519416018,-4.961068379082266e-6,-5.180477898492885e-9,0.004617144952363664,-5.21797868115541e-6,-4.5890532040936815e-9,0.004617567428571435,-5.370589400078979e-6,-4.238257150629672e-9,0.004618001377383055,-5.4024523567296e-6,-4.165786813726474e-9,0.00461839617858386,-5.326689531338634e-6,-4.341319230810882e-9,0.004618715659086564,-5.176427103811998e-6,-4.688546619249612e-9,0.004618941704013463,-4.994299138923035e-6,-5.1092602716603065e-9,0.0046190738457956015,-4.823500218588578e-6,-5.503860695653606e-9,0.004619126539673815,-4.701021915286869e-6,-5.786919842108562e-9,0.00461912513350184,-4.6530002781485684e-6,-5.897985711351209e-9,0.004619101113456684,-4.692128922859444e-6,-5.8076723886911916e-9,0.004619087174435325,-4.817110070681227e-6,-5.5190059356818914e-9,0.004619112672785507,-5.013950645613634e-6,-5.064416509080086e-9,0.004619199956383798,-5.258745206492392e-6,-4.499227652478228e-9,0.004619361925076508,-5.521396310506229e-6,-3.892989039720409e-9,0.004619600861690062,-5.769630238686212e-6,-3.3201995651143257e-9,0.0046199082837785595,-5.972903127371703e-6,-2.851352592334347e-9,0.004620265553426885,-6.106140175320044e-6,-2.5443702178223045e-9,0.004620645157437597,-6.15344235394916e-6,-2.4360418005486742e-9,0.004621012910332626,-6.111969284666793e-6,-2.5329705998129033e-9,0.004621331889116244,-5.995896088586415e-6,-2.8023280874564467e-9,0.004621569196957076,-5.839257062531263e-6,-3.16525563366286e-9,0.004621705946598681,-5.6949592448301445e-6,-3.499245426945735e-9,0.0046217486369424686,-5.626269776579186e-6,-3.6579976183436843e-9,0.004621736346891752,-5.688589628394338e-6,-3.5136773121236357e-9,0.004621735560203208,-5.9056093086997374e-6,-3.011976455429588e-9,0.004621818663207311,-6.252544277839716e-6,-2.2106262735571202e-9,0.004622034186749106,-6.660327133482274e-6,-1.269447535738715e-9,0.004622386277920894,-7.0421296244785226e-6,-3.8895869566759596e-10,0.004622835921998608,-7.326987257096725e-6,2.672247922603419e-10,0.004623320597655784,-7.481387241366695e-6,6.22078154458821e-10,0.004623778166074979,-7.511256501722334e-6,6.895832720469361e-10,0.0046241631750252934,-7.4503005879202574e-6,5.476957123973267e-10,0.0046244526906444455,-7.344777280885875e-6,3.031921981158643e-10,0.004624644751104253,-7.241142852555951e-6,6.324918068849496e-11,0.0046247535293354415,-7.178329664083658e-6,-8.227089394819571e-11,0.004624803929537004,-7.1838293799132266e-6,-6.982495105222414e-11,0.004624826696230001,-7.272134715425384e-6,1.3414464882997706e-10,0.004624854095060916,-7.444583539571314e-6,5.327371256362688e-10,0.004624916026302616,-7.690267618702546e-6,1.1006291093985203e-9,0.004625036574007785,-7.98793405485864e-6,1.7885067099525766e-9,0.004625231133799637,-8.30888821439031e-6,2.5298802519654072e-9,0.004625504428824734,-8.620815020618825e-6,3.2500039740028935e-9,0.004625849747329165,-8.892151827359156e-6,3.875986187591585e-9,0.0046262495157665465,-9.09652545200698e-6,4.346970267559263e-9,0.004626677147753625,-9.216883627944467e-6,4.623605244888573e-9,0.004627100098948487,-9.249002221467704e-6,4.6961442314090165e-9,0.004627484100502901,-9.204044867914665e-6,4.590434874603475e-9,0.004627798689161824,-9.109776567161958e-6,4.3708109803278244e-9,0.004628024187515499,-9.0095003276215e-6,4.1376398888795614e-9,0.004628159602392367,-8.956974239448121e-6,4.015455545081188e-9,0.004628229255540625,-9.005485803645908e-6,4.127521100134283e-9,0.004628283803510658,-9.1910726190435e-6,4.556926589182645e-9,0.004628390435834369,-9.514454774165462e-6,5.304877259037512e-9,0.004628610918423801,-9.931843970056032e-6,6.269651296939101e-9,0.004628975503068454,-1.03648245865506e-5,7.2696549997176675e-9,0.004629467998225569,-1.0728850454589621e-5,8.10939549229837e-9,0.004630032512152586,-1.0965482676576773e-5,8.65397700401509e-9,0.004630597398772655,-1.1060056137677217e-5,8.86984853736169e-9,0.004631101082919748,-1.1038122203419039e-5,8.816457412620772e-9,0.004631507147841215,-1.0948389067229884e-5,8.606690701628071e-9,0.004631806481354592,-1.0844288661248472e-5,8.364204739480547e-9,0.004632011465302068,-1.0771358781577292e-5,8.194291991699351e-9,0.004632147892557216,-1.0761401585255883e-5,8.170455351365712e-9,0.004632247893263616,-1.0831308542105932e-5,8.331728476942694e-9,0.00463234477781505,-1.0984114505098195e-5,8.685073680741978e-9,0.004632469369290628,-1.1210771926742844e-5,9.209415190899736e-9,0.004632647141513031,-1.1492171204089592e-5,9.860291714348777e-9,0.004632895765556187,-1.1801489544677315e-5,1.0575356211698413e-8,0.004633222987185644,-1.2107161747595294e-5,1.1281365019742708e-8,0.004633625109689717,-1.2376748980879223e-5,1.1903214390625413e-8,0.004634086659004174,-1.2581610090192167e-5,1.2374746891829162e-8,0.004634581752502566,-1.2701806877036646e-5,1.2650024924146413e-8,0.004635077356706937,-1.273044813037253e-5,1.2713298103112125e-8,0.004635538281190807,-1.2676599340062202e-5,1.2585709492729057e-8,0.004635933426539173,-1.2565907068775515e-5,1.2326775887080312e-8,0.0046362425090470906,-1.2438342120984666e-5,1.202920592778017e-8,0.004636462294497865,-1.234271921279755e-5,1.1806193185873564e-8,0.004636611028747824,-1.232775517799123e-5,1.1770617073140064e-8,0.004636729067608224,-1.2429993538057063e-5,1.2006973681361427e-8,0.004636873204322435,-1.2660614669240317e-5,1.2540806146547426e-8,0.004637103047741207,-1.2995764214321633e-5,1.3316407776853431e-8,0.004637461294852211,-1.3376967540621544e-5,1.4197950262497705e-8,0.00463795534065098,-1.3726217412767458e-5,1.5004554273269622e-8,0.004638550845381015,-1.3972478316380603e-5,1.5571711376454045e-8,0.004639183148953752,-1.4077211752893863e-5,1.5810383357853653e-8,0.0046397812865391925,-1.4045280259926954e-5,1.5732214181573113e-8,0.0046402914283477465,-1.3917086868911308e-5,1.5431235497281092e-8,0.004640688992994678,-1.3749519789539588e-5,1.50396004361683e-8,0.004640977811977925,-1.3597154104758875e-5,1.4683939035007512e-8,0.0046411816590931215,-1.3500634643284917e-5,1.4458435271925997e-8,0.004641334337283517,-1.3482814716284878e-5,1.4415936504639937e-8,0.004641471841569615,-1.3549864644392499e-5,1.45705737914381e-8,0.004641627345314647,-1.36943373473814e-5,1.4904873429144573e-8,0.004641828265389255,-1.3898382253809021e-5,1.5377192152694978e-8,0.004642094369945667,-1.4136568493739574e-5,1.592827642183505e-8,0.004642436229981527,-1.4378530825307724e-5,1.648746362443435e-8,0.004642853793025203,-1.4591962398589605e-5,1.6979710468902657e-8,0.00464333536372152,-1.4746476784586312e-5,1.7334602810121096e-8,0.004643857739129038,-1.481845010519349e-5,1.749756817785199e-8,0.00464438837763796,-1.479624509342569e-5,1.7441917675913e-8,0.0046448901141322415,-1.4684572553892183e-5,1.7178880316379137e-8,0.00464532817306209,-1.4506395760338885e-5,1.676197448758261e-8,0.0046456782783954416,-1.4300948688484878e-5,1.628240091514535e-8,0.004645933875498211,-1.4117326680498562e-5,1.5854168093428857e-8,0.004646110289799332,-1.4004423473821114e-5,1.5590715394014384e-8,0.004646244116896511,-1.399911276381716e-5,1.5577449679665026e-8,0.004646387005593405,-1.41153100211975e-5,1.5846355805771457e-8,0.004646594141764705,-1.4337032558028205e-5,1.6359950354097322e-8,0.004646909305258094,-1.4618613247030586e-5,1.701188561366317e-8,0.0046473503812339495,-1.4894178333601433e-5,1.7649042879564176e-8,0.004647900916773948,-1.5095625610264924e-5,1.811329983033688e-8,0.004648512809389593,-1.5173842404411922e-5,1.829077431406508e-8,0.004649120903019922,-1.5114403601433032e-5,1.8148248545685655e-8,0.004649663817187577,-1.4940331193331636e-5,1.7739550224659373e-8,0.004650101646361556,-1.4701189768492982e-5,1.7180166575556488e-8,0.004650423559198932,-1.4455016176381626e-5,1.6605176919502795e-8,0.004650644665764515,-1.4251827770794912e-5,1.613086614501808e-8,0.004650796624019296,-1.4124141025250696e-5,1.583268895658235e-8,0.004650917415804542,-1.4084914955533756e-5,1.5740543813909623e-8,0.004651043598431591,-1.4130241265291127e-5,1.5845089278510927e-8,0.0046512057278376125,-1.4243729279101672e-5,1.6107974164142077e-8,0.0046514261340793615,-1.4400690454054686e-5,1.6471579916206996e-8,0.00465171789456136,-1.4571531090473221e-5,1.6866922638427443e-8,0.004652084137226091,-1.4724599130893931e-5,1.7220302263998086e-8,0.00465251732741125,-1.4829134893015994e-5,1.746020024223448e-8,0.004652998819609395,-1.4859005735948932e-5,1.7525983107701823e-8,0.004653499526234626,-1.4797478165342453e-5,1.7378984205893643e-8,0.004653982822792938,-1.4642447874902636e-5,1.701461884775316e-8,0.004654410522758944,-1.4410540357957179e-5,1.6471859896107837e-8,0.004654751676673082,-1.4137726039344877e-5,1.5834608479389963e-8,0.0046549921899199246,-1.3874312315314267e-5,1.5219993013443092e-8,0.004655141733859297,-1.3673984905797297e-5,1.4752835810267254e-8,0.004655234441725839,-1.3579420898515158e-5,1.4532174851046341e-8,0.00465532189043984,-1.3609191262358246e-5,1.460084197006534e-8,0.00465545992364021,-1.3750758727023153e-5,1.4929278998332993e-8,0.004655693328327301,-1.3962304090208998e-5,1.5419907146882814e-8,0.004656043110456753,-1.4183068768481111e-5,1.5931259431933548e-8,0.0046565001678516875,-1.434927671056179e-5,1.631501554350779e-8,0.004657027305155954,-1.4411158052329369e-5,1.6455548921583325e-8,0.004657569281103155,-1.434612452943196e-5,1.630052615942731e-8,0.004658068049326739,-1.41639120076071e-5,1.5872851697627348e-8,0.0046584782426453645,-1.3901969676808915e-5,1.525993191601153e-8,0.0046587776708922075,-1.3613082255371558e-5,1.458484088844579e-8,0.004658969832612916,-1.3350233172794423e-5,1.397103491590227e-8,0.004659079003760188,-1.3154157206487545e-5,1.3513330900768914e-8,0.004659141208384155,-1.3046837117797856e-5,1.3262761688597618e-8,0.004659194957403009,-1.3031068730407019e-5,1.3225604937819598e-8,0.004659274330167408,-1.3094026415269862e-5,1.3371747416260096e-8,0.0046594050651191455,-1.3212282800757067e-5,1.3646426315830232e-8,0.004659602999671059,-1.3356523513515203e-5,1.3981232874721674e-8,0.004659873789227049,-1.3495310852038219E-05,1.430287645128278e-8,0.004660213024776066,-1.359808005239616e-5,1.4540151248134795e-8,0.00466060633304002,-1.3637992835869933e-5,1.4630579714044076e-8,0.00466102965981684,-1.3595349253137439e-5,1.4528372069494455e-8,0.004661450563042212,-1.3461902340691184e-5,1.421449651710166e-8,0.004661831730217652,-1.3245578696188559e-5,1.3707678548966238e-8,0.004662137755511344,-1.2973872164911173e-5,1.307227092715899e-8,0.004662344999202101,-1.2693012432152884e-5,1.2416231574338447e-8,0.0046624519407560735,-1.2460082818593682E-05,1.1872648439435237e-8,0.004662485004202495,-1.2327880026386206e-5,1.1564379854227212e-8,0.004662494901102442,-1.2327021407297365e-5,1.1562375295099926e-8,0.004662542595555069,-1.24533420275431e-5,1.185644126351985e-8,0.0046626799506357805,-1.2667322066857839e-5,1.2354101779958266e-8,0.004662933402383711,-1.2906251170550697e-5,1.2909087247827492e-8,0.004663297073919368,-1.3103506845817271e-5,1.3366273288023952e-8,0.004663736575308624,-1.3207064274389993e-5,1.360471420722314e-8,0.00466420034455511,-1.3191474217760806e-5,1.3565421464328888e-8,0.004664633821846689,-1.3061257113502004e-5,1.3259181775894936e-8,0.0046649923454657955,-1.284657142486857e-5,1.2756441236261749e-8,0.0046652500093320995,-1.2593575575264028e-5,1.2164869400910327e-8,0.004665403125135055,-1.2352518526780268e-5,1.160163133759852e-8,0.004665468293837048,-1.2166612359423423e-5,1.1167452954822372e-8,0.004665476372929213,-1.2064179756235221e-5,1.092829431744967e-8,0.004665464527011558,-1.205536188602705e-5,1.090765701107904e-8,0.00466546866248559,-1.2133139463074206e-5,1.1088976843000324e-8,0.004665517840456056,-1.2277264814901737e-5,1.1424838647350068e-8,0.00466563119751025,-1.245936221956031e-5,1.1848924275875613e-8,0.004665817006354218,-1.2647802841822536e-5,1.2287410809984839e-8,0.004666073053110041,-1.281166414378168e-5,1.2668190698852117e-8,0.004666387542373383,-1.292381306206243e-5,1.2928022906658796e-8,0.004666740117300406,-1.2963606556451226e-5,1.3018805625924864e-8,0.004667103089208761,-1.2919782368290056e-5,1.2914336858847914e-8,0.004667443516313451,-1.2793855787151033e-5,1.261828935995056e-8,0.004667727216102982,-1.2603634007130076e-5,1.2172443742013038e-8,0.004667925717887047,-1.2385223968453717e-5,1.1661335221281164e-8,0.004668025982969037,-1.2190587373047782e-5,1.1206425769168459e-8,0.004668040124918859,-1.2077562615726495e-5,1.0942668267392677e-8,0.004668009332740903,-1.2092131257680859e-5,1.0977046211594681e-8,0.004667995963365245,-1.2248776168792324e-5,1.1342816317376177e-8,0.004668063394253834,-1.2519839245074089e-5,1.1974895693262607e-8,0.004668252213447853,-1.2842352538933383e-5,1.272604191553377e-8,0.004668565476656956,-1.3140346753934688e-5,1.3419026252516424e-8,0.004668970137839872,-1.3350798188378615e-5,1.390712963685913e-8,0.00466941145688206,-1.3440881943664238e-5,1.4114239617360718e-8,0.004669831352637258,-1.3411820715628956e-5,1.4043647933471819e-8,0.004670183125758375,-1.3292231840828618e-5,1.3762398499525709e-8,0.004670439551567326,-1.3126587614643615e-5,1.3374333363953765e-8,0.0046705947835942166,-1.2963357965618242e-5,1.2992486691062576e-8,0.004670661871582767,-1.2845325839862214e-5,1.2716578643366719e-8,0.004670667699865216,-1.2802931475699457e-5,1.2617538625965364e-8,0.004670646681376949,-1.2850763728081769e-5,1.2729307862896565e-8,0.00467063427678483,-1.2987111806417097e-5,1.304775137827414e-8,0.004670661343090428,-1.3196164916613432e-5,1.353577457443399e-8,0.004670750064167247,-1.3452020070287972e-5,1.4132715042564545e-8,0.004670911777831962,-1.3723508501828329e-5,1.4765677409608379e-8,0.004671146597861861,-1.397894625705489e-5,1.5360669460035923e-8,0.004671444375319671,-1.4190158848444865e-5,1.5851986140975655e-8,0.004671786392194452,-1.4335593144657587e-5,1.6189419371909977e-8,0.004672147385320302,-1.440277455442945e-5,1.634395024210514e-8,0.004672497882915822,-1.439047323877524e-5,1.63128171558708e-8,0.004672807221955093,-1.4310754474099981e-5,1.6124358297051074e-8,0.004673047967062916,-1.4190585450886653e-5,1.5841798023873977e-8,0.004673202402940901,-1.4071681804180103e-5,1.556283414706472e-8,0.004673270739720579,-1.4006175424222032e-5,1.5409373309145138e-8,0.004673278417874302,-1.4045585886180635e-5,1.5501616287218707e-8,0.0046732771097705355,-1.4223112429589761e-5,1.5916656213600744e-8,0.0046733335426375954,-1.4535231411889031e-5,1.6645637433110732e-8,0.0046735060396706435,-1.4934337773744007e-5,1.7576826633511244e-8,0.004673819189801707,-1.5341741234222534e-5,1.852618723245616e-8,0.004674252268579398,-1.5677278964770178e-5,1.9306615085994873e-8,0.004674748944885229,-1.5888924620635015e-5,1.9797027686382072e-8,0.004675240882951573,-1.5966460031890974e-5,1.997414641383107e-8,0.004675670613593522,-1.593625842060622e-5,1.9900119679567408e-8,0.0046760041793818975,-1.5845643844857367e-5,1.9685820881802324e-8,0.00467623309851158,-1.5746690960885734e-5,1.945294625392006e-8,0.004676369818220206,-1.568457041001168e-5,1.930686205008403e-8,0.004676440772138309,-1.5691203227189234e-5,1.932191376955323e-8,0.004676479528732202,-1.5782987495501686e-5,1.9536206216259085e-8,0.004676520954653062,-1.5961033347667108e-5,1.995215400474037e-8,0.004676596422060922,-1.6212951573783454e-5,2.0540610281932875e-8,0.004676730027189161,-1.6515837372076925e-5,2.1247813816331533e-8,0.004676935979999788,-1.6840152095742693e-5,2.2004505046599017e-8,0.004677217318990602,-1.7154102391278926e-5,2.2736247570911134e-8,0.00467756602649892,-1.7428077777037665e-5,2.3373860561672378e-8,0.004677964479425937,-1.763863379374355e-5,2.3862716425329537e-8,0.0046783879238457065,-1.7771596392012232e-5,2.4169923607945506e-8,0.004678807583239352,-1.782417897198473e-5,2.4289203675387195e-8,0.004679194192743565,-1.780618647288843e-5,2.4243687912563586e-8,0.004679521978008149,-1.7740311713799754e-5,2.4086639550366526e-8,0.0046797732769125674,-1.7661270247751158e-5,2.3899445231071237e-8,0.004679943926326737,-1.7612934963310745e-5,2.378485408762777e-8,0.00468004874105327,-1.76419904879494e-5,2.38520116422879e-8,0.0046801248137174605,-1.7786845602176726e-5,2.4190427202702886e-8,0.004680228593309382,-1.806263404032576e-5,2.4834927068767032e-8,0.004680422650323219,-1.844760764224442e-5,2.5734020536887993e-8,0.0046807527992763975,-1.8880759513499523e-5,2.674458018490809e-8,0.0046812254701966765,-1.9278549072575866e-5,2.7671099756894892e-8,0.004681800427430815,-1.9566523632612258e-5,2.8339657629219468e-8,0.004682406079741662,-1.9708395147643984e-5,2.8665861411746463e-8,0.004682968366748158,-1.9715465849410977e-5,2.867679352392317e-8,0.004683435608529261,-1.9634266355882566e-5,2.8481924313167707e-8,0.0046837883337889595,-1.952439154406978e-5,2.822106187628867e-8,0.004684035487230924,-1.9439673756009193e-5,2.8020203083391307e-8,0.004684204485088165,-1.941806770279495e-5,2.7967929163297136e-8,0.00468433116167156,-1.9479029937500837e-5,2.8109428435669545e-8,0.004684452186456466,-1.9625176187452407e-5,2.845049597540157e-8,0.004684600168465979,-1.984553498761316e-5,2.896517248241957e-8,0.0046848006032723915,-2.0118998764571928e-5,2.9603786467988204e-8,0.0046850698397548065,-2.041773635670475e-5,3.0300926191513015e-8,0.004685413783371999,-2.0710763850050337e-5,3.098384943257845e-8,0.00468582740770953,-2.096777642395736e-5,3.1581541361914726e-8,0.004686295292293071,-2.1163165376747107e-5,3.203417446835051e-8,0.004686793459251504,-2.127986172954694e-5,3.230208207219933e-8,0.004687292561605285,-2.1312386356273433e-5,3.2372809600881676e-8,0.0046877621105637915,-2.126854613740853e-5,3.2264991110637834e-8,0.004688175258111988,-2.1169442043346494e-5,3.202831932504239e-8,0.004688513640797768,-2.104761290672734e-5,3.173919627450822e-8,0.004688771804655766,-2.0943260277204035e-5,3.149188772523059e-8,0.004688960704666771,-2.089847309766487e-5,3.138494951118754e-8,0.004689109427812848,-2.0949239557927876e-5,3.150244410680444e-8,0.0046892635417487075,-2.111546408427255e-5,3.189053130139887e-8,0.004689477922148566,-2.139077308886334e-5,3.253367882818093e-8,0.004689802698454854,-2.1736387602686895e-5,3.3340499356742825e-8,0.004690264446209853,-2.2085256460148676e-5,3.415361339714332e-8,0.004690850572478942,-2.2360461861946586e-5,3.4792836260214054e-8,0.004691507905376526,-2.2503277074614084e-5,3.512087981369812e-8,0.0046921603699025816,-2.2496547289027997e-5,3.5098078105129547e-8,0.004692737515622717,-2.2369205648309436e-5,3.4792895698371355e-8,0.0046931977430484575,-2.218033828194287e-5,3.434443116540985e-8,0.004693535450245421,-2.19946049648199e-5,3.390460552743203e-8,0.004693773572452373,-2.1862829343110403e-5,3.359254933534034e-8,0.0046939501630360635,-2.181362607661693e-5,3.3475032195887265e-8,0.004694106408800557,-2.1853986931876104e-5,3.356800326714713e-8,0.004694278929507639,-2.1974145041739544e-5,3.384814078091561e-8,0.004694495986966662,-2.2153135943492177e-5,3.4265942399950725e-8,0.00469477605708682,-2.236343686777121e-5,3.475658838964401e-8,0.004695127385027143,-2.25745849279392e-5,3.5248415385464474e-8,0.004695547882976639,-2.2756322352379375e-5,3.567032900021728e-8,0.004696025355911659,-2.2881787560675736e-5,3.595935203368904e-8,0.004696538399017729,-2.2930998865573962e-5,3.6068830865346576e-8,0.0046970585118214685,-2.2894428695522926e-5,3.597678695177047e-8,0.0046975538398428066,-2.277591695522771e-5,3.569266368776685e-8,0.004697994417085737,-2.2593897361128732e-5,3.52601055038316e-8,0.004698358163045725,-2.238005741037552e-5,3.475374675121492e-8,0.0046986364344812365,-2.2175013783692378e-5,3.4269031535764016e-8,0.0046988377483364,-2.2021316841364653e-5,3.3905777612987485e-8,0.004698988505350433,-2.1954843872662592E-05,3.3747957039559153e-8,0.00469913001615439,-2.199603289469974e-5,3.384312019587815e-8,0.004699311555481439,-2.2142626039551497e-5,3.418542095617081e-8,0.004699579681160445,-2.2366028659942287e-5,3.470720003209844e-8,0.004699965159038889,-2.261379023439517e-5,3.528496641002932e-8,0.0047004707613474824,-2.2820209470544427e-5,3.576439822294622e-8,0.004701065275270101,-2.29245915141501e-5,3.600321104272019e-8,0.0047016890656927665,-2.2891951736126434e-5,3.591970431021748e-8,0.004702272011748362,-2.2726666777386748e-5,3.5524736397453896e-8,0.004702756920507253,-2.2470877734699576e-5,3.491788013206634e-8,0.004703116987165939,-2.2187808782063738e-5,3.4248104068405246e-8,0.004703359534640568,-2.193925935774467e-5,3.3660754039070295e-8,0.004703517130520162,-2.176842696306175e-5,3.325714330433221e-8,0.004703633418269326,-2.1693450292192006e-5,3.3079469125848756e-8,0.004703750784664788,-2.1710014565138826e-5,3.311710181821752e-8,0.004703902999268972,-2.1798210735348334e-5,3.332284229703271e-8,0.00470411241473192,-2.1929606093883388e-5,3.362958798550564e-8,0.004704389870876045,-2.207267688476105e-5,3.396308166894864e-8,0.0047047356012256255,-2.2196523423997598e-5,3.425061394883235e-8,0.004705140226676658,-2.2273583221930157e-5,3.4427402906015455e-8,0.004705585684179088,-2.2282131344618075e-5,3.444250019797068e-8,0.004706046484988976,-2.2209080754436687e-5,3.426539393023329e-8,0.004706492021561705,-2.205305499960459e-5,3.389321201807501e-8,0.004706890608130669,-2.182697129221664e-5,3.3356730967267744e-8,0.00470721539646339,-2.1558758464267093e-5,3.2721977504560417e-8,0.004707451321018943,-2.12887104727388e-5,3.208392178194558e-8,0.004707601124258925,-2.1062650368795808e-5,3.1550339335174934e-8,0.004707687923092548,-2.092164673284272e-5,3.1217597646232705e-8,0.004707752373939844,-2.0890881213821516e-5,3.1144495257733445e-8,0.004707844271649323,-2.097124597532204e-5,3.1332583670419434e-8,0.004708010475613604,-2.113670162270532e-5,3.172008981581706e-8,0.004708282385389394,-2.1338748014371744e-5,3.219257613945702e-8,0.0047086664359290925,-2.15173693706775e-5,3.2608780636782456e-8,0.0047091404880734164,-2.161606952423453e-5,3.283599569519555e-8,0.004709657840613588,-2.159728736032355e-5,3.278626927707014e-8,0.0047101587972046815,-2.14536381865304e-5,3.244275536750323e-8,0.004710587092019814,-2.1210639927389882e-5,3.1866026733256766e-8,0.004710905784652387,-2.0918934500008726e-5,3.11756702803512e-8,0.004711106530119068,-2.0638435018091832e-5,3.051288304831013e-8,0.004711208865517889,-2.0420804081158147e-5,2.999917704131898e-8,0.004711250995690448,-2.029710843358638e-5,2.9707348003223693e-8,0.004711277151420492,-2.0274053881011356e-5,2.9652724627549498e-8,0.00471132674977426,-2.033766978305856e-5,2.9801983439850805e-8,0.00471142806619857,-2.046071242907155e-5,3.009067825446045e-8,0.004711596296366146,-2.061020016312087e-5,3.044100612335261e-8,0.004711834389857875,-2.0753171954947886e-5,3.077533281366249e-8,0.004712134965726818,-2.086041685204148e-5,3.1024925417154556e-8,0.004712482251510385,-2.090882235568343e-5,3.1135456149055995e-8,0.004712853737906606,-2.0883211847782863e-5,3.107133595210802e-8,0.004713221881139335,-2.0778334625325025e-5,3.082042383122008e-8,0.004713556597760101,-2.0601134262572815e-5,3.0399376917884984e-8,0.004713829354068818,-2.037263915355485e-5,2.9858068237885336e-8,0.004714019207495355,-2.0127999853239356e-5,2.9279591365504785e-8,0.004714120040236812,-1.9912737159773322e-5,2.8771311538676714e-8,0.00471414655809,-1.9773869991005393e-5,2.8443873226592142e-8,0.004714135386249772,-1.9746861801332327e-5,2.83804276963628e-8,0.004714138370032906,-1.984258160661189e-5,2.8606000254505665e-8,0.004714208596707071,-2.004036454826956e-5,2.9071316232283385e-8,0.004714383927031075,-2.029154199139544e-5,2.966130936884501e-8,0.00471467478824134,-2.0532945180363846e-5,3.022705867006223e-8,0.004715061013315357,-2.070513244011117e-5,3.0628741349271914e-8,0.00471549819391272,-2.076855953990602e-5,3.0773644450018024e-8,0.004715930398805945,-2.0712828599232458e-5,3.06378229761092e-8,0.00471630479798327,-2.0557372487725065e-5,3.02675794944921e-8,0.00471658419168978,-2.0344538606421003e-5,2.9763064924636998e-8,0.004716754587575241,-2.012762846230072e-5,2.9250034311585e-8,0.004716826391143379,-1.9957347775696705e-5,2.8847903519089865e-8,0.004716829482927148,-1.9870328926400146e-5,2.8642734974974278e-8,0.004716804183631088,-1.9882591570309303e-5,2.8671899620700577e-8,0.004716791192796836,-1.9989005281011388e-5,2.8922902741116466e-8,0.004716823437325514,-2.016770532199581e-5,2.934387756265717e-8,0.004716921469150951,-2.0387043502867066e-5,2.986002387931219e-8,0.0047170924226144694,-2.0612596164450385e-5,3.0390138793191444e-8,0.004717331446500595,-2.081266616228881e-5,3.085955828244744e-8,0.00471762425529221,-2.0961852660023846e-5,3.120852397033979e-8,0.004717949786709429,-2.104309008518074e-5,3.139695112234478e-8,0.004718282560551554,-2.104890203008696e-5,3.1407378398035346e-8,0.00471859492533725,-2.0982516486430054e-5,3.1247623321056654e-8,0.004718859796079545,-2.0859052414961204e-5,3.0953605446153896e-8,0.004719054624823485,-2.0706285041295662e-5,3.059112867970817e-8,0.004719167008269947,-2.0563643657749342e-5,3.025342322589191e-8,0.0047192012609654915,-2.0477478018717793e-5,3.00498426889888e-8,0.00471918345441392,-2.0491050133859172e-5,3.0082155472353386e-8,0.004719160711673773,-2.0630138351970563e-5,3.041060704503147e-8,0.004719191097019601,-2.0889406258420564e-5,3.1021931692673706e-8,0.004719325043469325,-2.1227769789697886e-5,3.181866698159706e-8,0.0047195859260143365,-2.1578468896618452e-5,3.264310559084911e-8,0.004719960156972756,-2.187111814865657e-5,3.3329373513019146e-8,0.004720402230039262,-2.2055137896671795e-5,3.375863627291979e-8,0.004720851199728154,-2.211368644516015e-5,3.3891818178741824e-8,0.004721249742534635,-2.2064084478755165e-5,3.3770422384395773e-8,0.004721558271420089,-2.194802371751545e-5,3.349326327499581e-8,0.004721761248337392,-2.181765833721016e-5,3.318355542341268e-8,0.004721866556401599,-2.1722520963282726e-5,3.295805030285286e-8,0.004721900238871268,-2.169987115382176e-5,3.29043510790176e-8,0.004721898892204645,-2.176929055241197e-5,3.306826983285239e-8,0.004721901529417458,-2.193141803818353e-5,3.345092527192641e-8,0.004721942348745987,-2.2170269412426117e-5,3.401426136456454e-8,0.004722045516212493,-2.2458138717909424e-5,3.4692640398515564e-8,0.004722222546618573,-2.2761699487966296e-5,3.540726851507083e-8,0.0047224722135377,-2.3047940802877143e-5,3.6080226653327896e-8,0.004722782394577666,-2.3288951948910685e-5,3.6645758612571877e-8,0.004723132980101565,-2.3465103100195668e-5,3.7057739558551584e-8,0.004723499026608934,-2.3566743782828097e-5,3.729363200615465e-8,0.004723853726366984,-2.3594919509001365e-5,3.7356145869933e-8,0.004724171226410891,-2.356158846622636e-5,3.727375668144662e-8,0.00472442964344223,-2.3489522051841577e-5,3.710048713221879e-8,0.004724614776565834,-2.3411574874169688e-5,3.691415587823861e-8,0.004724724794459883,-2.3368277341243487e-5,3.6810591870453345e-8,0.0047247752100325596,-2.340213360934399e-5,3.6890033197833116e-8,0.004724801818033701,-2.354741153860014e-5,3.723294414462482e-8,0.00472485768521177,-2.3816423663497148e-5,3.786770260091306e-8,0.004725000635390749,-2.418751526032683e-5,3.8742466858000376e-8,0.004725272431033011,-2.4603620051597823e-5,3.972202334985268e-8,0.0047256788219663705,-2.4987702204493527e-5,4.062439541897351e-8,0.004726183285667441,-2.5270759185625143e-5,4.128696584233639e-8,0.004726720126803429,-2.541754230471784e-5,4.162712542300643e-8,0.004727219448344189,-2.5435941739691993e-5,4.166429361538732e-8,0.004727629770664268,-2.536784151980682e-5,4.149811650246318e-8,0.00472792886355938,-2.5270329894455154e-5,4.126387077300937e-8,0.00472812265068321,-2.5197835046972124e-5,4.109015364379114e-8,0.0047282373150355555,-2.5190669974525258e-5,4.1071880240448236e-8,0.004728309665470908,-2.5270343003186838e-5,4.125937504726307e-8,0.004728378624615121,-2.543968430350618e-5,4.165883422548709e-8,0.004728478767596398,-2.5685707126707573e-5,4.223916565564198e-8,0.004728635885651726,-2.5983880913205705e-5,4.294209090323031e-8,0.004728864409439411,-2.6303109090072288e-5,4.369389967187808e-8,0.00472916659618418,-2.6610845597161917e-5,4.44175634064523e-8,0.004729533321857145,-2.687781278328495e-5,4.5043926732075706e-8,0.00472994622235607,-2.708187235910797e-5,4.55208730022123e-8,0.004730380793270376,-2.721067737099242e-5,4.5819553184842186e-8,0.004730809906752847,-2.7262961196945158e-5,4.593735403726144e-8,0.004731207297948036,-2.724866569169805e-5,4.589813042879811e-8,0.004731550882303068,-2.7188193463415645e-5,4.5750407942570875e-8,0.004731825972564864,-2.7110878798737e-5,4.5563763450471336e-8,0.004732028530653421,-2.7052515132200603e-5,4.54229491228676e-8,0.004732168446389242,-2.7051350258781955e-5,4.541834024160813e-8,0.004732272116670077,-2.714157631827611e-5,4.563044734216501e-8,0.004732382358303023,-2.734381236381859e-5,4.610740117539504e-8,0.004732552676207028,-2.765400554259749e-5,4.6838853150868065e-8,0.004732833512182073,-2.803550331529912e-5,4.773748847006038e-8,0.004733252285295634,-2.842190019560124e-5,4.864598097253564e-8,0.004733796293531172,-2.8735835655547945e-5,4.9381511830951945e-8,0.004734411109839088,-2.891853713979851e-5,4.980557132802008e-8,0.004735019503554785,-2.895397730306729e-5,4.9880998252676156e-8,0.004735551138537044,-2.887270533546891e-5,4.9680920882470014e-8,0.00473596575267552,-2.873482839748109e-5,4.9348284107208375e-8,0.004736259519104328,-2.8605104853960317e-5,4.903667122874668e-8,0.004736457060975534,-2.8533821667809858e-5,4.886493863585071e-8,0.0047365979415711565,-2.85485921602435e-5,4.88979128990018e-8,0.004736724583238949,-2.8654807118183317e-5,4.914769787656253e-8,0.0047368742116397,-2.8840382877356432e-5,4.958511728727826e-8,0.004737074552126241,-2.9081541619000465e-5,5.015347478913712e-8,0.004737342012367782,-2.934812648323624e-5,5.078111482310837e-8,0.004737681309886265,-2.960821833601568e-5,5.139231870366264e-8,0.004738086098954303,-2.9832193363411564e-5,5.191692419486976e-8,0.004738540469209245,-2.9996259595434974e-5,5.229874245767923e-8,0.0047390212881655396,-3.0085394338945098e-5,5.2502529913061444e-8,0.004739501377336211,-3.0095423581682325e-5,5.251886124976056e-8,0.004739953305782397,-3.0033870472254683e-5,5.236603682676017e-8,0.004740353348319325,-2.9919407976351642e-5,5.208868447062693e-8,0.004740685200385828,-2.9779991128983356e-5,5.175327771239827e-8,0.004740943182403257,-2.9649741613378564e-5,5.1440738209547884e-8,0.004741134674185391,-2.9564621576085497e-5,5.1236171222247815e-8,0.004741281429687509,-2.955689735080932e-5,5.121571324845782e-8,0.004741419089674041,-2.9648317114137292e-5,5.1430346955513816e-8,0.004741593583568248,-2.984236535396184e-5,5.18876132323745e-8,0.0047418528064249385,-3.0117417530783683e-5,5.2535574522677666e-8,0.004742232999460031,-3.0424697664623252e-5,5.325821214909581e-8,0.004742742611363063,-3.069609207813721e-5,5.3894094209571386e-8,0.004743351393757184,-3.086414788615748e-5,5.4283751424790724e-8,0.004743994368040548,-3.088836563852584e-5,5.433186801908802e-8,0.004744593460110826,-3.0773559410401626e-5,5.4050676811265004e-8,0.004745086788273111,-3.0567784478253706e-5,5.3554919237006306e-8,0.004745448989905369,-3.034083898991905e-5,5.301067418598428e-8,0.0047456930853903715,-3.015732469647893e-5,5.257126350003612e-8,0.004745857698513026,-3.00585998089884e-5,5.233439298931279e-8,0.004745990240669041,-3.0058200221043662e-5,5.233146185427817e-8,0.004746133999600095,-3.01466801907586e-5,5.2539325380684306e-8,0.004746321325199566,-3.0299826522431672e-5,5.289999214373297e-8,0.004746571565708012,-3.048628868783824e-5,5.333878061980279e-8,0.004746891547053987,-3.067323831866283e-5,5.377769034777425e-8,0.004747276976592629,-3.083031101807034e-5,5.414468688672485e-8,0.0047477141402886116,-3.09325591886319E-05,5.4380693556431183e-8,0.004748181886555148,-3.096289364885244e-5,5.444541244979396e-8,0.004748654088097438,-3.09141513535335e-5,5.432224087989675e-8,0.004749102826477359,-3.079058892868887e-5,5.4021765189798875e-8,0.0047495023578297945,-3.060826542501298e-5,5.358256772490767e-8,0.004749833466407175,-3.0393770407297746e-5,5.306810148158317e-8,0.0047500874842839194,-3.018108231591561e-5,5.2559163277776153e-8,0.004750269208928283,-3.000667785776047e-5,5.214226026089898e-8,0.004750398005292498,-2.990333609399654e-5,5.1894905169507964e-8,0.004750506508683392,-2.9893424852776115e-5,5.186969825178604e-8,0.004750636541043871,-2.9982645840082855e-5,5.2079533030619567e-8,0.0047508320083346,-3.0155421919572188e-5,5.248676449937229e-8,0.004751128908639331,-3.037369192805859e-5,5.300052553271625e-8,0.0047515437134295745,-3.058146946640733e-5,5.348771766126394e-8,0.004752063484848125,-3.071700733657849e-5,5.380196084787112e-8,0.0047526432287152715,-3.073156493559227e-5,5.382809002665862e-8,0.004753215530274019,-3.060859876345908e-5,5.352758456900073e-8,0.004753711939495655,-3.0373149193153703e-5,5.2960713748294996e-8,0.004754087100048578,-3.0083973403278307e-5,5.226769683183297e-8,0.00475433293603724,-2.98112136590755e-5,5.1615475629158006e-8,0.004754476264544549,-2.9611822552670604e-5,5.113920082596975e-8,0.004754563953700199,-2.9514823359041654e-5,5.0907249040929476e-8,0.0047546455613278705,-2.9520016886330627e-5,5.0918372072733805e-8,0.004754761071596459,-2.9605722627759065e-5,5.112036823852704e-8,0.004754935662167024,-2.9739033755819657e-5,5.143462572713782e-8,0.0047551796096890735,-2.988434036747737e-5,5.1776389895648226e-8,0.004755490589258526,-3.0008869624587908e-5,5.206783588245407e-8,0.004755856442393838,-3.008584029224015e-5,5.224546763974042e-8,0.004756257668350731,-3.0096339668500227e-5,5.2264540791731686e-8,0.004756669706745484,-3.0030731792701057e-5,5.210242554479061e-8,0.004757065414585785,-2.9889908539192638e-5,5.176159886049536e-8,0.004757418195542284,-2.968619040159789e-5,5.1271759843174285e-8,0.00475770601363651,-2.9443203318333868e-5,5.0689459342253564e-8,0.004757915965546911,-2.9193873541743718e-5,5.009323271378707e-8,0.004758048438176281,-2.8975983699953833e-5,4.957295059706262e-8,0.0047581194741599594,-2.882542250153593e-5,4.921372935448555e-8,0.004758160019778779,-2.876818870394926e-5,4.9076934374705044e-8,0.004758211358591651,-2.8813062505827567e-5,4.9182827912228046e-8,0.004758317093348088,-2.894711954955259e-5,4.950002836532726e-8,0.004758513086696229,-2.913579719092093e-5,4.994582695633771e-8,0.004758817511140333,-2.932837760191171e-5,5.03993731608605e-8,0.004759223605850981,-2.9468701036464705e-5,5.072723219425754e-8,0.004759697867909933,-2.9509504216527897e-5,5.0817464553032814e-8,0.004760185864983653,-2.942696235017769e-5,5.061410130962157e-8,0.0047606259543624555,-2.9230317643366145e-5,5.0139889000795495e-8,0.004760967607467908,-2.896139174117637e-5,4.9494965504536796e-8,0.004761187350905263,-2.8682116608214554e-5,4.882704196243258e-8,0.004761294966547717,-2.8454389880011927e-5,4.828336259201367e-8,0.004761327275387122,-2.8321230768383856e-5,4.796585845162461e-8,0.004761333553681048,-2.829714704173953e-5,4.790836114893017e-8,0.0047613601652829966,-2.8369688621673795e-5,4.808053312846534e-8,0.004761440321646852,-2.8508399895063426e-5,4.8409387338905586e-8,0.004761590551451071,-2.8675522491192136e-5,4.880485640357133e-8,0.004761812082991868,-2.883449707617644e-5,4.917998782520274e-8,0.004762094385548418,-2.8955069947828657e-5,4.946298307321452e-8,0.004762418882065095,-2.9015693696433737e-5,4.960280392062293e-8,0.0047627620311700624,-2.9004461174501594e-5,4.95713500331758e-8,0.004763097828331392,-2.8919547543918302e-5,4.936452599578333e-8,0.004763400221147088,-2.8769621484632385e-5,4.90032528762637e-8,0.004763646058855578,-2.8574085268911304e-5,4.8534040160042696e-8,0.004763818946533213,-2.8362398774863e-5,4.802731915464349e-8,0.004763913739565946,-2.8171404920085826e-5,4.757097276326134e-8,0.004763940543520972,-2.8039773963918373e-5,4.725700354486537e-8,0.004763926283878361,-2.7999613583819032e-5,4.7161505527736824e-8,0.004763911790083301,-2.806694015820014e-5,4.732201788368541e-8,0.004763943561668426,-2.8234348316907707e-5,4.772020956502153e-8,0.004764061768513518,-2.846950262937871e-5,4.827848357257109e-8,0.004764288248044224,-2.8721294087771193e-5,4.8874818169044365e-8,0.004764618840848933,-2.893247019251986e-5,4.93729414401414e-8,0.004765022978940383,-2.905493603698263e-5,4.965875709174304e-8,0.004765450868508584,-2.9062967578863874e-5,4.967170122917772e-8,0.004765846191254104,-2.8960399760946087e-5,4.942169071629253e-8,0.00476616076776282,-2.8779715550303997e-5,4.8986766544630736e-8,0.004766367084636814,-2.8573141543301774e-5,4.849172329484978e-8,0.004766464911858467,-2.839814847115955e-5,4.807347695622499e-8,0.00476647980983421,-2.8301831799976193e-5,4.784386143983262e-8,0.004766454199070231,-2.830937480805551e-5,4.7862255367856655e-8,0.004766434603844106,-2.8420157629011527e-5,4.8126495550133353e-8,0.004766459867818386,-2.861169104607286e-5,4.8582435764613466e-8,0.004766553900979995,-2.8848469249434867e-5,4.9145161379864336e-8,0.004766723895020026,-2.9091731049801776e-5,4.9722271610959204e-8,0.004766962652236033,-2.9307102792118214e-5,5.023203099217928e-8,0.004767252783211253,-2.946903329270971e-5,5.061383669831442e-8,0.004767570966247876,-2.956252059197733e-5,5.083224211036534e-8,0.00476789143265435,-2.9583263200849124e-5,5.0877272768619633e-8,0.004768188657904238,-2.9537233992896767e-5,5.076341708753041e-8,0.004768439713838026,-2.9440208044921784e-5,5.0528530531352904e-8,0.004768626910754468,-2.9317193423369705e-5,5.0232483468787865e-8,0.004768741178477299,-2.9201099070795987e-5,4.9953931538163455e-8,0.004768786027644776,-2.9129513499080413e-5,4.978252629146496e-8,0.004768780936853772,-2.9138496012208616e-5,4.980400285879896e-8,0.0047687618966803106,-2.9253256552848995e-5,5.007792821246455e-8,0.004768776430770757,-2.94777909524039e-5,5.0613091054872876e-8,0.004768871988096792,-2.9788111750287958e-5,5.13515752527904e-8,0.004769080444607102,-3.013432954967566e-5,5.2173957718739495e-8,0.004769405284770623,-3.0453486715106665e-5,5.293006343952431e-8,0.004769818220406904,-3.0688999004594416e-5,5.3485350267577706e-8,0.00477026743433048,-3.080834002271513e-5,5.376298803352503e-8,0.004770693577738604,-3.081168201237658e-5,5.3764285152528835e-8,0.004771046589895863,-3.072935915638893e-5,5.3562407814568835e-8,0.004771297631526678,-3.0610999818195513e-5,5.3276237909610404e-8,0.004771443711692161,-3.051122681918304e-5,5.303613422492912e-8,0.004771505396973143,-3.047631542556714e-5,5.295212013490912e-8,0.004771519499267242,-3.0534710642808274e-5,5.3091406911566415e-8,0.004771529205577235,-3.0692816320908944e-5,5.346855026149306e-8,0.00477157418650815,-3.0936189653487376e-5,5.404847750248202e-8,0.004771682921045021,-3.123511651048176e-5,5.4759893534474465e-8,0.004771868687189363,-3.1552574400663744e-5,5.551430977654335e-8,0.004772129449714966,-3.1852223337845775e-5,5.622508871487745e-8,0.004772450721118148,-3.210457768014518e-5,5.682212037646142e-8,0.0047728099065585915,-3.2290564110685556e-5,5.726024480323222e-8,0.004773180754965365,-3.240266257319448e-5,5.752190311025016e-8,0.004773537085899212,-3.244442374528547e-5,5.761592957241243e-8,0.004773855633711976,-3.242925814099788e-5,5.757463774878549e-8,0.004774118342142201,-3.237905496994603e-5,5.7450525834272396e-8,0.004774314614586185,-3.23226647010406e-5,5.731264700502641e-8,0.004774443914942631,-3.2293765111534964e-5,5.724146147285952e-8,0.004774518652136438,-3.232717786829844e-5,5.731994509929363e-8,0.0047745663374796085,-3.245259117379958e-5,5.761852250142311e-8,0.004774628801644312,-3.268548015279706e-5,5.817341730913397e-8,0.004774755642402249,-3.301726301171104e-5,5.896332753649877e-8,0.004774990554962329,-3.340982109567715e-5,5.989660608993938e-8,0.004775353818295921,-3.3800784181514464e-5,6.082409330155231e-8,0.004775829687604098,-3.412186477507274e-5,6.158296115132251e-8,0.004776367868533359,-3.4323594773016025e-5,6.205572173406188e-8,0.004776900497853547,-3.439347655809735e-5,6.22134491263007e-8,0.004777365818310518,-3.435798439395554e-5,6.21203712505869e-8,0.004777726423271264,-3.426947678704886e-5,6.190234646575702e-8,0.004777975587727213,-3.418704078505039e-5,6.170085067616404e-8,0.004778133031878161,-3.416016772550692e-5,6.163388088984261e-8,0.004778235183303571,-3.42193194337018e-5,6.177353927618648e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_27.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_27.json new file mode 100644 index 000000000..2cb27659e --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_27.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":27000,"numberOfSamples":426,"samples":[0.004778324486778677,-3.437325503603603e-5,6.213990841775234e-8,0.0047784403655323285,-3.4611193149972956e-5,6.270647293317436e-8,0.004778612794687001,-3.490776213298559e-5,6.34120907874662e-8,0.004778858592736182,-3.52292773450405e-5,6.41760174740733e-8,0.004779180332297561,-3.554033000747647e-5,6.491361305699471e-8,0.0047795676373042825,-3.580972313910667e-5,6.555048782196374e-8,0.004780000304382801,-3.601491695515349e-5,6.603309632804475e-8,0.00478045244087296,-3.61445559073166e-5,6.63347373647879e-8,0.004780896788498023,-3.619907152539314e-5,6.64569282050896e-8,0.004781308537182374,-3.6189716300693844e-5,6.642701476463283e-8,0.004781668287402928,-3.613665338138569e-5,6.62935418736394e-8,0.004781964263597514,-3.606664631235279e-5,6.612070094818705e-8,0.004782194088007322,-3.6010502207012165e-5,6.598220199376154e-8,0.004782366358377176,-3.600003307813221e-5,6.595397202033107e-8,0.004782501973157172,-3.6063967015481664e-5,6.610431957871602e-8,0.004782634428155468,-3.622211612037997e-5,6.647996630880908e-8,0.004782807312744113,-3.647777437681964e-5,6.708796154697767e-8,0.004783066725500625,-3.681018070253991e-5,6.787788985789277e-8,0.004783447527929692,-3.717158351927006e-5,6.873512189479286e-8,0.004783956543699519,-3.749495769285591e-5,6.949941757309266e-8,0.004784561694818515,-3.7714824470447004e-5,7.001467512930746e-8,0.00478519734376055,-3.779386901530488e-5,7.019245393058328e-8,0.004785787298279908,-3.773988586048272e-5,7.005238005891471e-8,0.004786273540716633,-3.760159745695435e-5,6.971198893123057e-8,0.004786634261718939,-3.7446681679021194e-5,6.93338948131939e-8,0.004786883955125812,-3.7336538281738074e-5,6.90651418882107e-8,0.004787060855944783,-3.731025026111713e-5,6.89987545085644e-8,0.004787211498019626,-3.738052485901743e-5,6.916423518663561e-8,0.004787378723491085,-3.753768633517913e-5,6.953747098677388e-8,0.004787594743852002,-3.775688736390837e-5,7.005827277528313e-8,0.004787878341866488,-3.8005421267547694e-5,7.064797754466723e-8,0.004788234677867704,-3.824887091042978e-5,7.122411974828502e-8,0.004788656578890198,-3.845602832364749e-5,7.171211724931977e-8,0.004789126866304347,-3.8602762874008655e-5,7.205447458736902e-8,0.004789621527438917,-3.867476505188969e-5,7.221733392634786e-8,0.004790113453092092,-3.866900598852055e-5,7.219394452663505e-8,0.004790576389242894,-3.859380569021363e-5,7.200475975629059e-8,0.004790988658217021,-3.846749668906106e-5,7.169414035802423e-8,0.004791336185455692,-3.831592746623132e-5,7.132428928460062e-8,0.004791614602286293,-3.8169236193829984e-5,7.096748066882624e-8,0.004791830442019499,-3.8058199395276177E-05,7.069730505809583e-8,0.00479200147328233,-3.8010251494226334e-5,7.057912997799612e-8,0.00479215608282581,-3.8045112493544786e-5,7.065962097547686e-8,0.004792331243570715,-3.816988109148568e-5,7.095502401154791e-8,0.00479256801539422,-3.837391090721481e-5,7.143902873254914e-8,0.004792903356231363,-3.8625101009650084e-5,7.203412021826269e-8,0.00479335809982377,-3.887092912081732e-5,7.261428947824125e-8,0.004793923998139211,-3.904832069801235e-5,7.302876037880577e-8,0.004794557121329183,-3.910366330394545e-5,7.314982344552248e-8,0.004795186187943556,-3.901641098772414e-5,7.292918982979318e-8,0.004795737032643518,-3.881216157437762e-5,7.242916797983955e-8,0.004796161501972789,-3.855411099464743e-5,7.180203477009054e-8,0.004796453566145229,-3.831658356890081e-5,7.122636889591443e-8,0.004796644767523727,-3.815714860499036e-5,7.084000022037542e-8,0.004796785949434881,-3.8101951194646106e-5,7.070485098911682e-8,0.004796928139441377,-3.8146598603855446e-5,7.080934608157665e-8,0.004797110480654036,-3.8265789851055167e-5,7.109188904690533e-8,0.004797355877127002,-3.8424311612934556e-5,7.146748579270787e-8,0.004797671612426517,-3.8585616852327366e-5,7.184835086333892e-8,0.004798052093481322,-3.8717282547673696e-5,7.215687639979793e-8,0.004798481982683185,-3.879416904832568e-5,7.233306811500727e-8,0.0047989392109531745,-3.880032466659669e-5,7.233903786826962e-8,0.004799398014519919,-3.873014716490181e-5,7.216177815700216e-8,0.004799832156249859,-3.858883316916818e-5,7.181423253686315e-8,0.004800218353251468,-3.839193072968296e-5,7.133417138730679e-8,0.004800539728226463,-3.816370201797726e-5,7.07801739212383e-8,0.004800788798428815,-3.7934150450836535e-5,7.022440790334248e-8,0.004800969422381577,-3.773493298607536e-5,6.97427737273164e-8,0.004801097307136082,-3.7594608437565975e-5,6.940350057998089e-8,0.004801198860837516,-3.753375575082618e-5,6.925545753494772e-8,0.004801308307002621,-3.7560557353341817e-5,6.931760143740602e-8,0.004801463061629263,-3.766739513003747e-5,6.957089748412672e-8,0.0048016973159992595,-3.7829085241195104e-5,6.995424232825527e-8,0.004802033897188718,-3.800393663211438e-5,7.036721161540528e-8,0.004802475381486049,-3.8139426649914707e-5,7.068384881196978e-8,0.004802997237534293,-3.8183940325160886e-5,7.078086051437349e-8,0.0048035477616877155,-3.810365748834886e-5,7.057799420498539e-8,0.004804059432364746,-3.789890582121566e-5,7.007704800926735e-8,0.004804471058177286,-3.76100617891968e-5,6.93758159734603e-8,0.004804751226949466,-3.730566920695092e-5,6.863938578566553e-8,0.0048049094711126545,-3.705654492532993e-5,6.803781398940207e-8,0.004804988697932718,-3.691017647857788e-5,6.768458911635844e-8,0.004805045208603211,-3.687881976068849e-5,6.760819207952647e-8,0.004805128912216125,-3.6943695478478026e-5,6.776250536534154e-8,0.004805272128763522,-3.706800766501402e-5,6.805842303113509e-8,0.0048054875443432725,-3.72102043926267e-5,6.839587172762585e-8,0.004805771578807736,-3.733305531184578e-5,6.868556225257375e-8,0.004806109373196501,-3.740819210339049e-5,6.885971585954908e-8,0.004806479267214914,-3.741763766075652e-5,6.887556737614801e-8,0.00480685624919262,-3.7353970688048305e-5,6.871568343569287e-8,0.00480721474503835,-3.722005965565962e-5,6.838732853486281e-8,0.004807531254878627,-3.70285788369557e-5,6.792132402469517e-8,0.004807787168840347,-3.680107359176237e-5,6.736978068548045e-8,0.0048079717908961535,-3.656606685754552e-5,6.680147748275388e-8,0.004808085124176199,-3.635572067784862e-5,6.629375291303479e-8,0.0048081395655390005,-3.6201003683608846e-5,6.59208353445968e-8,0.004808159619935799,-3.61259119702826e-5,6.573995300854134e-8,0.004808179052187587,-3.614182096799145e-5,6.577781399967254e-8,0.0048082354644977225,-3.624339663861216e-5,6.602088125342372e-8,0.004808363016906486,-3.640739698014146e-5,6.641263422122376e-8,0.004808584568140996,-3.659514206004428e-5,6.685967165663355e-8,0.004808904762436531,-3.6758854267688404e-5,6.724710168628325e-8,0.00480930579650223,-3.685155258136531e-5,6.746239580653564e-8,0.0048097478566896616,-3.683927126708737e-5,6.742470100953433e-8,0.004810176029910032,-3.6712847565078014e-5,6.711298772615927e-8,0.0048105340254307105,-3.649482817530326e-5,6.658239512536003e-8,0.004810781727205723,-3.62365842449442e-5,6.595705126594526e-8,0.004810909644980501,-3.6003671889103674e-5,6.539470778083783e-8,0.004810942478516832,-3.5853999525254e-5,6.503419712779448e-8,0.004810929054258762,-3.581891665158464e-5,6.495006857326439e-8,0.0048109239580987374,-3.589619723046781e-5,6.513597488805307e-8,0.0048109704482596355,-3.605632765339819e-5,6.552011162684835e-8,0.004811091479469972,-3.625616637154878e-5,6.599830095926331e-8,0.0048112894999106535,-3.645235261818129e-5,6.646628961790225e-8,0.004811551496979631,-3.661003899809157e-5,6.684062633294758e-8,0.004811855326073649,-3.6706519877171644e-5,6.706718834733222e-8,0.004812175008010524,-3.673147922115121e-5,6.71216166824625e-8,0.00481248442724685,-3.668578285980148e-5,6.70063528600365e-8,0.004812759857408077,-3.6580011791983614e-5,6.67471364140862e-8,0.004812982021847438,-3.643312892218514e-5,6.638984182107787e-8,0.004813138260380984,-3.627105788419161e-5,6.599705939990736e-8,0.004813224984539436,-3.612453739463318e-5,6.56428706687843e-8,0.004813250027706149,-3.6025539008764395e-5,6.540413556464342e-8,0.004813233901618618,-3.600194055235022e-5,6.53476083256435e-8,0.004813208641342787,-3.6070981482546236e-5,6.55141956879046e-8,0.004813213185891162,-3.623309956685937e-5,6.590422431888505e-8,0.0048132853329533815,-3.6468577247922494e-5,6.646953796652841e-8,0.00481345196089862,-3.6739232782648675e-5,6.711775543238068e-8,0.004813720524850067,-3.699585543676539e-5,6.773031548224511e-8,0.004814074915372328,-3.718990777229592e-5,6.819070851646075e-8,0.004814477519636433,-3.7286327454266165e-5,6.841524919716474e-8,0.004814877412507499,-3.727371265226798e-5,6.837744468682739e-8,0.004815222824200392,-3.71687674239285e-5,6.811846623591315e-8,0.004815474776181273,-3.70132472069625e-5,6.773954080785747e-8,0.0048156180606356,-3.686348225678969e-5,6.737652512252384e-8,0.004815665783668138,-3.677486127562191e-5,6.716247159200004e-8,0.004815655222405848,-3.678604759224073e-5,6.718971555136587e-8,0.004815636005506843,-3.690868613654817e-5,6.74853269118757e-8,0.004815655154643246,-3.712641741469069e-5,6.800902880734398e-8,0.0048157448657402905,-3.740272786418989e-5,6.86723392503097e-8,0.004815916982414414,-3.769330697538445e-5,6.936842915828944e-8,0.004816164398472773,-3.79575991566434e-5,6.999989097850887e-8,0.004816466732888395,-3.8166161444911164e-5,7.049630552378684e-8,0.004816796998892661,-3.830332545250297e-5,7.082047667647441e-8,0.004817127128752034,-3.8366574426466915e-5,7.096680517792435e-8,0.004817431716377734,-3.8364425072400815e-5,7.095614538559232e-8,0.00481769031494261,-3.831406952629976e-5,7.0830151666776e-8,0.004817889007363463,-3.823930287395324e-5,7.064632660863894e-8,0.004818021924002364,-3.81685964240486e-5,7.047337979987863e-8,0.004818092995005395,-3.8132677946559405e-5,7.038533637487357e-8,0.004818117609598462,-3.8160829347254704e-5,7.045252292139183e-8,0.0048181231757472446,-3.8275439457385075e-5,7.072838433001155e-8,0.004818147032808319,-3.848524220234855e-5,7.123323584537503e-8,0.004818230263552585,-3.877913888410908e-5,7.193954194116859e-8,0.004818407376247594,-3.9123929426344404e-5,7.276667979907158e-8,0.004818694517905241,-3.946919365675648e-5,7.359290131063591e-8,0.004819081226702352,-3.975987623674142e-5,7.428575222689352e-8,0.004819530473516512,-3.99528372131395e-5,7.474192447320143e-8,0.004819988207444505,-4.003071053802827e-5,7.492052207630327e-8,0.0048203989246250615,-4.000728896884301e-5,7.485582965376748e-8,0.004820721175466344,-3.99227597487728e-5,7.464556945092878e-8,0.004820937782280773,-3.9831445677784674e-5,7.442110541926777e-8,0.004821058434419171,-3.978679151255124e-5,7.431111753324506e-8,0.004821115078288102,-3.982808284365596e-5,7.44096350669423e-8,0.0048211522270188,-3.9972043873461636e-5,7.475600152324611e-8,0.004821215190839854,-4.021085655268812e-5,7.533039650683856e-8,0.004821339447086454,-4.051642323333889e-5,7.606436621672032e-8,0.004821543793180569,-4.084903826994292e-5,7.686186217830935e-8,0.004821828560137223,-4.11675330397259e-5,7.762370019061549e-8,0.00482217843219588,-4.143791773110746e-5,7.826830249781045e-8,0.004822568060222116,-4.163862375087511e-5,7.874420409142698e-8,0.004822968276370532,-4.176204785493435e-5,7.903364411314588e-8,0.0048233512962861805,-4.1813332547424874e-5,7.914952587908982e-8,0.004823694268337095,-4.180773689787612e-5,7.912902718095061e-8,0.004823981341733217,-4.176770959006623e-5,7.902653839294732e-8,0.004824204843306262,-4.172022434438517e-5,7.890725119874452e-8,0.004824366170721857,-4.169434217802275e-5,7.884127164436675e-8,0.0048244767088938545,-4.1718500655906905e-5,7.889702962949885e-8,0.004824558542278362,-4.1816828861910714e-5,7.9132317175072e-8,0.004824644046356498,-4.2004005130913916e-5,7.958186192139638e-8,0.004824772810595939,-4.227902970506275e-5,8.02424031086156e-8,0.004824984330163837,-4.261986981161869e-5,8.105999852427741e-8,0.0048253063789773926,-4.2982701249766916e-5,8.192845535537351e-8,0.004825742302472369,-4.330968240475467e-5,8.2708249557431e-8,0.004826263889668254,-4.354578668059347e-5,8.326714000557609e-8,0.004826816164327769,-4.365883275531775e-5,8.352838122738419e-8,0.004827334389224904,-4.3652515189787744e-5,8.350199407923697e-8,0.0048277656748831246,-4.356505406150206e-5,8.328128245698638e-8,0.00482808475136242,-4.3454640222978786e-5,8.300742298950006e-8,0.0048282979694060126,-4.337986978855226e-5,8.282198985286413e-8,0.004828436715004647,-4.3383781338829196e-5,8.28283556019412e-8,0.004828545452468338,-4.3485739353153795e-5,8.307227830943268e-8,0.004828669442671055,-4.368097256269977e-5,8.354112596095182e-8,0.004828845131978453,-4.394543747541324e-5,8.417594361299053e-8,0.004829094332003,-4.42434357404026e-5,8.489003053203357e-8,0.004829422222056958,-4.453594609792681e-5,8.558908046994333e-8,0.004829818689134246,-4.4788154520325726e-5,8.618928271603903e-8,0.004830262162433468,-4.497503014521456e-5,8.663067376891177e-8,0.004830724791376845,-4.508429236527066e-5,8.688419593273334e-8,0.004831177763389958,-4.5116784857431304e-5,8.695250414418422e-8,0.0048315958105310045,-4.50848066644472e-5,8.686584714086303e-8,0.004831960372320328,-4.50092207251216e-5,8.667501419792826e-8,0.004832261385448886,-4.4916181410082026e-5,8.644339426785272e-8,0.004832498085672877,-4.4834021165063305e-5,8.623945104183476e-8,0.004832679280731162,-4.479034989518507e-5,8.612971656792317e-8,0.004832823322580668,-4.480906858922817e-5,8.61715560370843e-8,0.004832957631610085,-4.490685000713927e-5,8.640463908636807e-8,0.0048331170643941285,-4.508874878499018e-5,8.684036295819687e-8,0.004833339822081472,-4.5343323574385394e-5,8.745021561454051e-8,0.004833659599911437,-4.5639123415037367e-5,8.815754137046817e-8,0.004834094074838598,-4.592604139982e-5,8.884105976880853e-8,0.004834633097564738,-4.6145321609871045e-5,8.935914049205118e-8,0.004835233759482804,-4.624855257649796e-5,8.959560230484134e-8,0.004835829415303181,-4.621862951064732e-5,8.951018080070509e-8,0.004836352230776127,-4.6080232054244594e-5,8.916366565204528e-8,0.0048367583349983355,-4.589150422661235e-5,8.869757625100208e-8,0.004837041591904654,-4.572106996194247e-5,8.827831621545146e-8,0.004837230223456968,-4.562385027524527e-5,8.803847379686291e-8,0.004837371762779652,-4.562714338453696e-5,8.804318221037112e-8,0.004837516153686477,-4.572936473719342e-5,8.828738354028514e-8,0.004837703559825233,-4.590705729913291e-5,8.871321255880796e-8,0.00483795842100459,-4.6124666861455577e-5,8.923395641208231e-8,0.0048382884248457615,-4.634354743735913e-5,8.975592732878355e-8,0.004838686449812278,-4.652885932931713e-5,9.019505444720963e-8,0.004839134059291325,-4.6654302346770156e-5,9.048817401084265e-8,0.00483960577414928,-4.670490119196287e-5,9.059963781515475e-8,0.004840073592346507,-4.6677962776577816e-5,9.052354945919353e-8,0.004840511260350432,-4.6582397345525144e-5,9.028205993460479e-8,0.004840897899231785,-4.643670396318439e-5,8.992042145949509e-8,0.004841220660300779,-4.626596989787898e-5,8.949965282921296e-8,0.004841476202205037,-4.6098371678003375e-5,8.908802385796573e-8,0.004841671077489782,-4.596168029442229e-5,8.875259106524241e-8,0.004841821307091204,-4.587997080031785e-5,8.855125453694367e-8,0.004841951292609372,-4.587045888723051e-5,8.852512147964674e-8,0.004842091964053706,-4.5940344193465115e-5,8.869088863412212e-8,0.004842277739297711,-4.6083631809650075e-5,8.903322182845005e-8,0.004842541493972926,-4.627838807084122e-5,8.949828371537751e-8,0.004842906839177331,-4.648600438823033e-5,8.999219477976895e-8,0.004843378264295116,-4.665522221668618e-5,9.039097681872455e-8,0.004843932381435793,-4.6733606371812626e-5,9.056834871587784e-8,0.004844516593310677,-4.6686017948423326e-5,9.044026966797496e-8,0.004845061297440305,-4.651301745333522e-5,9.000924058638993e-8,0.004845504427784852,-4.6256995746914114e-5,8.93789350952813e-8,0.004845816313409309,-4.598827316210438e-5,8.872033893206934e-8,0.004846009719910427,-4.5777184591241536e-5,8.820391758061302e-8,0.004846129972474116,-4.566860671556084e-5,8.793778061329034e-8,0.0048462338316596935,-4.567181248329228e-5,8.794324136066889e-8,0.004846370227429732,-4.576600567215227e-5,8.816863162886767e-8,0.0048465699861102345,-4.591338738919411e-5,8.852141023091782e-8,0.004846844129874208,-4.6071908146491065e-5,8.889930925992923e-8,0.004847187112262369,-4.6204138643279386e-5,8.921179902089594e-8,0.004847581703514996,-4.6282067896565305e-5,8.939150694429025e-8,0.004848003735402131,-4.6289076937789076e-5,8.939877769506586e-8,0.004848426256645651,-4.6220321509909585e-5,8.922246700657916e-8,0.004848823209408606,-4.608209856359733e-5,8.887836627853265e-8,0.004849172664527739,-4.58903562975773e-5,8.840557932192903e-8,0.0048494595475039315,-4.5668426291373705e-5,8.786099087737668e-8,0.0048496777143903665,-4.544400174802944e-5,8.731188333905859e-8,0.004849831083297237,-4.524549703219852e-5,8.682706510070045e-8,0.0048499335706496585,-4.5098191704872816e-5,8.646751496052212e-8,0.004850007839811998,-4.502058698290767e-5,8.627758023189437e-8,0.004850082971399407,-4.502123491055191e-5,8.627733894012528e-8,0.00485019108473835,-4.509627653317102e-5,8.645669590689583e-8,0.004850362866722029,-4.522799803925022e-5,8.677198648497969e-8,0.004850621906510939,-4.5384910987798636e-5,8.71463393443206e-8,0.004850977946640694,-4.552441540774088e-5,8.747633199424684e-8,0.00485142013660625,-4.5599608404899196e-5,8.764862963748815e-8,0.0048519131380055204,-4.557121093968653e-5,8.756886324253519e-8,0.004852400538216197,-4.5422915883702246e-5,8.719862480298039e-8,0.004852819081156075,-4.517383633579113e-5,8.658536065820687e-8,0.004853121273694221,-4.4878623615075926e-5,8.586240756352643e-8,0.004853295526580276,-4.461012521329985e-5,8.52067471895604e-8,0.004853370910340709,-4.443133874108983e-5,8.477085726904584e-8,0.004853402989489355,-4.437253239360528e-5,8.462723494908248e-8,0.004853450340338429,-4.442557395851914e-5,8.475489986913897e-8,0.004853555566747505,-4.4554520782041413e-5,8.506551757055743e-8,0.004853737798332979,-4.471246662007726e-5,8.54446544743408e-8,0.00485399486389547,-4.485554721718429e-5,8.57858896141624e-8,0.004854309864890948,-4.495075979662197e-5,8.600964247263456e-8,0.00485465803028982,-4.497849770452831e-5,8.6069040778254e-8,0.00485501203358417,-4.493206747983682e-5,8.594850455856457e-8,0.00485534568228858,-4.481608527441229e-5,8.565974574854902e-8,0.004855636618776108,-4.464461889212684e-5,8.523726941055656e-8,0.004855868536584048,-4.4439150233652795e-5,8.473347207406128e-8,0.0048560330722339125,-4.422617519806977e-5,8.421282174134603e-8,0.004856131296365982,-4.4034205116743515e-5,8.374453608584602e-8,0.004856174444895931,-4.389004599187381e-5,8.339349699528367e-8,0.004856183359155293,-4.381463425405478e-5,8.321012126246628e-8,0.004856186304500604,-4.381908244061987e-5,8.322079181766202e-8,0.0048562152009108475,-4.3901681750652377e-5,8.342065742125228e-8,0.004856300584346492,-4.4046572784289005e-5,8.37705159905011e-8,0.004856465867596215,-4.422466583704176e-5,8.419918887759595e-8,0.004856721671702306,-4.439714167069116e-5,8.46121777512187e-8,0.004857061176355107,-4.452169624559631e-5,8.490696041970339e-8,0.004857457829840346,-4.456149265628484e-5,8.499476400738042e-8,0.00485786732258919,-4.4495941699599566e-5,8.482662558070934e-8,0.0048582357611451545,-4.433064375541632e-5,8.44172762033907e-8,0.004858514335168011,-4.4101716857274364e-5,8.385533918607352e-8,0.004858676764439197,-4.386931833014717e-5,8.32873433067394e-8,0.004858731337204977,-4.369916734671689e-5,8.287271910808891e-8,0.004858719353578516,-4.363884359422422e-5,8.272626402178683e-8,0.004858699079100403,-4.370113971203409e-5,8.287790899006382e-8,0.004858723862983524,-4.3863152455982114e-5,8.32708541147057e-8,0.004858826040038608,-4.4079389942548624e-5,8.379377681762571e-8,0.00485901243298159,-4.429951477497208e-5,8.432416681478761e-8,0.004859269289883763,-4.448198863401187e-5,8.476146671893096e-8,0.004859570954995191,-4.460045524794661e-5,8.504236029963514e-8,0.004859887795941977,-4.464428204949593e-5,8.514179476144743e-8,0.004860191622124641,-4.461614115330714e-5,8.506688634502332e-8,0.004860458789785439,-4.452889224023546e-5,8.48492775788132e-8,0.004860671945597038,-4.440278682495274e-5,8.453839235720549e-8,0.004860821241729715,-4.426305156165498e-5,8.419563819915824e-8,0.004860905419245433,-4.4137473414217795e-5,8.388856225560573e-8,0.004860932724572903,-4.405349915154474e-5,8.368376120026044e-8,0.004860921196088654,-4.403452027360999e-5,8.363778704610134e-8,0.004860897562807879,-4.4095524083173727e-5,8.378654746993848e-8,0.004860894101884112,-4.4238943389541296e-5,8.413526183041853e-8,0.0048609433408634845,-4.4451997534014956e-5,8.465211854456047e-8,0.004861071294856948,-4.470688491827875e-5,8.526891053304732e-8,0.004861290736213975,-4.4964675805282034e-5,8.589067031036176e-8,0.004861596402411748,-4.518269904195639e-5,8.641375721967553e-8,0.00486196380325942,-4.5324110154403064e-5,8.674916232953769e-8,0.0048623525742310615,-4.536760086172835e-5,8.684603658726279e-8,0.004862714420798966,-4.531482706925229e-5,8.670954354944289e-8,0.004863004623796651,-4.519303097661249e-5,8.640693812132527e-8,0.004863194723425296,-4.505076964306804e-5,8.605688184505726e-8,0.0048632825102846704,-4.494612337857568e-5,8.58005774809639e-8,0.004863294732214557,-4.492967036023607e-5,8.576036145889535e-8,0.004863279646140609,-4.50281209417457e-5,8.600009804265731e-8,0.004863291238192513,-4.5235972657266385e-5,8.650521261792416e-8,0.004863371875000471,-4.5519265521149334e-5,8.719217023603693e-8,0.004863541092600532,-4.5828989880735264e-5,8.794132978880563e-8,0.0048637941431590335,-4.611699389480268e-5,8.863570335939151e-8,0.004864108348633099,-4.6347665140982225e-5,8.918925654220265e-8,0.00486445241548828,-4.650270904600831e-5,8.95582979767788e-8,0.0048647945683711405,-4.658026758675538e-5,8.973908538631549e-8,0.004865107760312099,-4.659122884457311e-5,8.975868058567857e-8,0.004865372216069882,-4.655509521210519e-5,8.966485595145175e-8,0.004865576369720018,-4.649651590121914e-5,8.95177115085765e-8,0.004865717179949249,-4.644257685804242e-5,8.938315205316097e-8,0.004865800395588709,-4.642041241650156e-5,8.932709842864613e-8,0.004865840829426269,-4.6454505120622764e-5,8.940887781848442e-8,0.004865862139653059,-4.656317873149144e-5,8.967262906616372e-8,0.00486589520436499,-4.675433988431925e-5,9.013692766243163e-8,0.00486597415698355,-4.7021367342236717e-5,9.07848659725663e-8,0.004866129742279287,-4.7340909048838094e-5,9.15588685419079e-8,0.004866380968437412,-4.7674714425056845e-5,9.236536298478788e-8,0.004866727661902241,-4.797676853483728e-5,9.309231162293983e-8,0.004867147324684734,-4.8204752728047944e-5,9.363717379329655e-8,0.004867598631309231,-4.833237436364809e-5,9.393686151571851e-8,0.00486803127888161,-4.835807099496604e-5,9.398874966956663e-8,0.004868399226752945,-4.8306738611208255e-5,9.385460419655338e-8,0.0048686730911499205,-4.8223736532853264e-5,9.364566598366033e-8,0.004868847969216985,-4.816304071077976e-5,9.349354754634237e-8,0.0048689445715649204,-4.817300077705271e-5,9.351546946352385e-8,0.004869003383995121,-4.8283613222312364e-5,9.378341924616291e-8,0.004869073380924081,-4.849890638879081e-5,9.43059380023238e-8,0.0048691985524858695,-4.8796843985408144e-5,9.50282614209952e-8,0.004869406558763143,-4.9136789945777165e-5,9.585077822881535e-8,0.0048697031730176215,-4.947169627205198e-5,9.665881714263925e-8,0.004870073718317038,-4.9760441298475204e-5,9.735263346838005e-8,0.004870489786100687,-4.9976304469416066e-5,9.786787764373727e-8,0.004870917867218918,-5.010990840288102e-5,9.818254906626896e-8,0.004871326805083185,-5.016747905294032e-5,9.831256717497081e-8,0.004871692531052498,-5.016661596207553e-5,9.830134495028733e-8,0.004872000142688164,-5.0131652452055496e-5,9.820844897666668e-8,0.004872244237261572,-5.008976155652556e-5,9.810014547881626e-8,0.004872428488982316,-5.0068019068499616e-5,9.804229692860984e-8,0.004872565118915182,-5.0091037618228904e-5,9.809461966944169e-8,0.0048726744092658725,-5.017854275436142e-5,9.830475483883204e-8,0.004872783856378547,-5.034234927557437e-5,9.870086948139556e-8,0.00487292606572329,-5.058265619676878e-5,9.928265588588883e-8,0.0048731343054660824,-5.0884445663438285e-5,1.0001269113882292e-7,0.004873435129492483,-5.1215919899950034e-5,1.0081284930929764e-7,0.0048738390660209,-5.153170034332811e-5,1.015723136253397e-7,0.004874332805219763,-5.178266204412348e-5,1.0217165527867006e-7,0.004874877889632444,-5.1930947916088274e-5,1.0251939608479708e-7,0.004875419222669628,-5.196437324983978e-5,1.0258697726965176e-7,0.004875901546822159,-5.190279042143044e-5,1.0242405238386324e-7,0.004876286929160504,-5.179247995187442e-5,1.0214451691172397e-7,0.004876565554442809,-5.1691121210262656e-5,1.0188954108256096e-7,0.004876756238178176,-5.165032541885692e-5,1.0178476106510073e-7,0.004876898311797196,-5.170234825273362e-5,1.0190790776405611e-7,0.004877039291090606,-5.185415619525043e-5,1.0227463542533915e-7,0.004877222603926023,-5.20886997024062e-5,1.0284205932149231e-7,0.004877478233490123,-5.237148471881915e-5,1.0352515418660084e-7,0.004877817707882309,-5.2659998699574115e-5,1.0421992098956346e-7,0.004878233764547773,-5.291357147653802e-5,1.0482740644614637e-7,0.004878704103850562,-5.310151400306657e-5,1.0527339067231532e-7,0.0048791978095219886,-5.3207947753445196e-5,1.0551996632875121e-7,0.004879682486508378,-5.323275948828798e-5,1.055676880907866e-7,0.0048801303140343175,-5.318929968967715e-5,1.0544982140066945e-7,0.004880521970866183,-5.3100190207577814e-5,1.0522202640813102e-7,0.004880848294653186,-5.299267897057388e-5,1.0495098947741473e-7,0.0048811102117961675,-5.289457264711433e-5,1.0470451475918726e-7,0.004881317747189281,-5.2831136722353006e-5,1.045440020638691e-7,0.004881488756100408,-5.282274765893747e-5,1.0451875219165502e-7,0.004881647595748994,-5.2882791831743e-5,1.0466084584560046e-7,0.004881823499265498,-5.301535663747745e-5,1.0497951455693293e-7,0.004882047968987757,-5.321257874700818e-5,1.0545473459947656e-7,0.004882350207115018,-5.34522364381064e-5,1.0603152097503244e-7,0.004882749931583773,-5.3697319596594616e-5,1.0661911602920183e-7,0.004883248411975124,-5.390029444311228e-5,1.0710159048430002e-7,0.004883821223283848,-5.40142565780382e-5,1.0736509452548331e-7,0.004884418535029374,-5.400964585550486e-5,1.07338516263783e-7,0.004884977331862179,-5.388945231346987e-5,1.0703038492932809e-7,0.004885442982784979,-5.369291520334631e-5,1.0653767571805211e-7,0.0048857896031786405,-5.348285896525935e-5,1.060146273029446e-7,0.004886027899428079,-5.33225701704739e-5,1.0561598542362421e-7,0.004886197488183362,-5.3254761974328e-5,1.0544546399226637e-7,0.004886350220054461,-5.329186339414478e-5,1.0553216327134056e-7,0.00488653376420074,-5.341832436145469e-5,1.058366269418165e-7,0.004886780973520583,-5.3599972431194304e-5,1.0627419538425782e-7,0.004887105836022719,-5.379505921217329e-5,1.0674231474866518e-7,0.00488750437159898,-5.3963749688183614e-5,1.071437647657893e-7,0.004887958428542934,-5.4074868096297026e-5,1.074029666188478e-7,0.004888440866556042,-5.410987220354813e-5,1.0747544257958971e-7,0.004888921197063378,-5.406429862465683e-5,1.0735113586693954e-7,0.004889370931079509,-5.3946902121682926e-5,1.0705217492870693e-7,0.004889767913025726,-5.377692855867965e-5,1.0662613496775146e-7,0.004890099148351,-5.3580229669963764e-5,1.0613649899040003e-7,0.0048903619623596834,-5.3384985707783635e-5,1.0565218481282615e-7,0.004890563646224889,-5.321774155887791e-5,1.0523787065252472e-7,0.004890720050330306,-5.310023848256073e-5,1.0494629332969267e-7,0.00489085365033552,-5.304708763981897e-5,1.0481260896297154e-7,0.004890991351657461,-5.306401912048959e-5,1.0485014474108545e-7]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_3.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_3.json new file mode 100644 index 000000000..9767b1b50 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_3.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":3000,"numberOfSamples":1000,"samples":[-0.0016674126654346861,-5.729007527752374e-7,-1.4186514962201376e-8,-0.0016673064653587321,-6.734015165127343e-7,-1.4270276706700349e-8,-0.0016671184978181936,-7.942288639572809e-7,-1.4371055120518062e-8,-0.0016668581653082658,-8.937549802808163e-7,-1.4454094104781238e-8,-0.0016665462863460693,-9.416288807763305e-7,-1.4494058993362982e-8,-0.0016662092022260732,-9.201664606449159e-7,-1.4476216298494372e-8,-0.0016658745541862263,-8.237755484396502e-7,-1.4395945891238539e-8,-0.0016655683268689287,-6.578186550518726e-7,-1.4257765362438796e-8,-0.0016653124526036561,-4.3741842925891825e-7,-1.4074304544820363e-8,-0.0016651224530400707,-1.8607276082775895e-7,-1.3865132894139859e-8,-0.0016650049642489826,6.643303169026634e-8,-1.3655018765663274e-8,-0.0016649554928538104,2.8739437967418395e-7,-1.347113935991257e-8,-0.0016649572160637774,4.4604795424859426e-7,-1.3339056817593825e-8,-0.0016649817855313575,5.194876808583452e-7,-1.3277813795917761e-8,-0.0016649928181043465,4.985157505581373e-7,-1.329507262967021e-8,-0.00166495207648607,3.9179414860133283e-7,-1.3383654246342673e-8,-0.0016648274069321705,2.26664827416035e-7,-1.352084347660865e-8,-0.001664600739494372,4.5708357821865315e-8,-1.367124421905444e-8,-0.001664274219706894,-1.0088239670451744e-7,-1.3793127784445051e-8,-0.0016638726869829803,-1.6616023108150796e-7,-1.3847473701249546e-8,-0.0016634410124484337,-1.1869904209770958e-7,-1.3808176255662588e-8,-0.0016630354517974334,4.659577780072841e-8,-1.3671009811639623e-8,-0.001662709627560605,3.030262655914423e-7,-1.3458136463059741e-8,-0.0016624982880314673,5.958730436677693e-7,-1.3214963229037875e-8,-0.001662404794976831,8.568537842964569e-7,-1.2998163907749735e-8,-0.0016623988702162175,1.0254972177202318e-6,-1.2857973826241794e-8,-0.0016624271346917532,1.0685455003698803e-6,-1.2822084766277138e-8,-0.0016624319248438782,9.883600460942418e-7,-1.2888614390257493e-8,-0.001662369242835807,8.174787260993229e-7,-1.3030565315055226e-8,-0.0016622183938909184,6.041843871353809e-7,-1.3207794337616674e-8,-0.0016619818565370786,3.9717316279278375e-7,-1.3379782718210806e-8,-0.0016616789185444716,2.3502260822879676e-7,-1.3514435597222689e-8,-0.0016613377123989804,1.417265131744283e-7,-1.3591822041815075e-8,-0.0016609886089808544,1.2662367606576446e-7,-1.360423147824086e-8,-0.0016606598282278315,1.863922842656112e-7,-1.3554490273298172e-8,-0.0016603748199426104,3.0744517886406376e-7,-1.3453938412913645e-8,-0.0016601505255394024,4.680421085231016e-7,-1.3320649411749458e-8,-0.0016599957713533597,6.402384067973255e-7,-1.3177803860265977e-8,-0.0016599094977454972,7.922656339357963e-7,-1.3051723165875262e-8,-0.0016598791098382528,8.920717595398815e-7,-1.296895475612751e-8,-0.0016598798337515695,9.124839151887528e-7,-1.2952012505708826e-8,-0.001659876379622952,8.376861160842476e-7,-1.3014014454721298e-8,-0.0016598280484381447,6.695105801256583e-7,-1.3153456420237919e-8,-0.0016596973256014155,4.309782162426044e-7,-1.3351256087288848e-8,-0.001659460185844518,1.644717783767708e-7,-1.3572258355341262e-8,-0.0016591147270322442,-7.656124715275952e-8,-1.3772130406953462e-8,-0.0016586845140589572,-2.408327142852044e-7,-1.3908356700286018e-8,-0.0016582146152118225,-2.934361433791715e-7,-1.3952042824758485e-8,-0.0016577609941446497,-2.2641155822799227e-7,-1.3896646268225657e-8,-0.0016573762399432718,-6.21980795145008e-8,-1.3760786009222337e-8,-0.0016570956693766155,1.5125835864904947e-7,-1.3584155440668849e-8,-0.0016569277304044742,3.526938844470182e-7,-1.3417439166449944e-8,-0.0016568517179810498,4.838995413033776e-7,-1.3308801583491872e-8,-0.0016568239567060939,5.055051370474298e-7,-1.329085416886814e-8,-0.0016567907846579653,4.069873023778711e-7,-1.3372361772156796e-8,-0.0016567038867919353,2.0748592272561992e-7,-1.3537525963856996e-8,-0.001656532487673912,-5.231661404744325e-8,-1.375267653077842e-8,-0.0016562685745488837,-3.2332365832738283e-7,-1.3977143471321514e-8,-0.0016559247754694372,-5.607837026808751e-7,-1.4173848477561865e-8,-0.0016555275418913935,-7.327632792039998e-7,-1.4316343411791168e-8,-0.0016551092006448183,-8.233258722118555e-7,-1.4391445802169112e-8,-0.0016547013993568505,-8.316848376668471e-7,-1.439852456672699e-8,-0.0016543308264849162,-7.693391900307951e-7,-1.4347111821174578e-8,-0.0016540168884855639,-6.568154472154755e-7,-1.4254194224863743e-8,-0.00165377050241833,-5.208100635030763e-7,-1.4141844859881727e-8,-0.001653593196269087,-3.917048152325665e-7,-1.4035172614624135e-8,-0.001653476129350162,-3.0088888763530243e-7,-1.3960118899539777e-8,-0.0016533992421155022,-2.7714172882948965e-7,-1.3940479436687606e-8,-0.0016533313967630901,-3.4151069511884616e-7,-1.3993675666328718e-8,-0.001653232946576946,-5.008677652271779e-7,-1.4125420729844042e-8,-0.001653062183142646,-7.418000865678651e-7,-1.4324648124704472e-8,-0.0016527858361718897,-1.0281008249946432e-6,-1.456142157572885e-8,-0.0016523911376223348,-1.305464686483764e-6,-1.4790826634502255e-8,-0.0016518942603108112,-1.5146795210217696e-6,-1.4963914427081036e-8,-0.001651339688429203,-1.609920243457309e-6,-1.5042853245080335e-8,-0.0016507887609035258,-1.5746267527137686e-6,-1.501402985970417e-8,-0.0016503014049699613,-1.4275884845194972e-6,-1.4893009020259092e-8,-0.0016499186673924447,-1.2167625516751627e-6,-1.4719368976416159e-8,-0.0016496525262988243,-1.0042695210536724e-6,-1.4544312694847968e-8,-0.0016494852722868205,-8.488903215522008e-7,-1.4416272286595473e-8,-0.0016493768933366411,-7.916520763817829e-7,-1.4369068693422452e-8,-0.0016492770441696662,-8.477319335831267e-7,-1.441525088113211e-8,-0.0016491379089976894,-1.005586142802875e-6,-1.454535921366001e-8,-0.0016489247906258263,-1.2324077723442385e-6,-1.4732398295614608e-8,-0.0016486222435663186,-1.483745124523919e-6,-1.4939753931208416e-8,-0.0016482349077829455,-1.714387062746813e-6,-1.5130169934377415e-8,-0.0016477837047942081,-1.8876251196414704e-6,-1.5273388453025773e-8,-0.0016472992687706423,-1.9809318567924716e-6,-1.53508288088995e-8,-0.0016468148667739665,-1.987610693939075e-6,-1.5356941194346824e-8,-0.0016463605427636564,-1.915263460295526e-6,-1.529794271457019e-8,-0.0016459592556230336,-1.7824940981911972e-6,-1.5189110139549575e-8,-0.0016456248820582223,-1.6151699815473968e-6,-1.5051713360546717e-8,-0.0016453614347904178,-1.4430148462818047e-6,-1.4910218742385646e-8,-0.0016451628120618224,-1.2966201405178637e-6,-1.4789829372760213e-8,-0.0016450127057533186,-1.2044728826030512e-6,-1.4714032583746818e-8,-0.0016448847709624051,-1.1893868953393184e-6,-1.4701653351213367e-8,-0.0016447437874436506,-1.2638103881750775e-6,-1.4762980827432679e-8,-0.0016445491773054968,-1.4241708565546202e-6,-1.48951005064794e-8,-0.0016442623193067107,-1.645902905672155e-6,-1.5077791633897704e-8,-0.0016438578535539828,-1.8825890625995552e-6,-1.5272828105373147e-8,-0.0016433361724119703,-2.073293524915233e-6,-1.5430051194420875e-8,-0.0016427306855190664,-2.1595591992381907e-6,-1.5501400836018825e-8,-0.0016421028587470339,-2.107131410238427e-6,-1.545878784662949e-8,-0.0016415236596336047,-1.921503495197351e-6,-1.5306805835881395e-8,-0.0016410491716874508,-1.6475995048951014e-6,-1.508237666232406e-8,-0.0016407026930217476,-1.3532595827599134e-6,-1.4841150585489634e-8,-0.0016404710798181709,-1.1058220927750292e-6,-1.4638324030823384e-8,-0.0016403140434198668,-9.529880693486804e-7,-1.4513000663883932e-8,-0.0016401794241349037,-9.138189075949228e-7,-1.4480834585139251e-8,-0.001640017698453548,-9.79444485492997e-7,-1.4534599598191043e-8,-0.0016397921504842823,-1.1199629554508742e-6,-1.46498259445195e-8,-0.001639483962540219,-1.2938873374757163e-6,-1.4792536911725107e-8,-0.0016390929025693608,-1.4576102121358978e-6,-1.492701055511908e-8,-0.0016386346780947172,-1.5734220969873702e-6,-1.5022352898574618e-8,-0.0016381360741017184,-1.615194314249089e-6,-1.50571474431728e-8,-0.0016376290513289884,-1.5712506992188948e-6,-1.502179647791281e-8,-0.0016371449438908516,-1.4444928408342774e-6,-1.4918620999811586e-8,-0.0016367096648583616,-1.25031555175269e-6,-1.4760165902237422e-8,-0.0016363404739891797,-1.0131188796195411e-6,-1.4566365366279228e-8,-0.0016360443826047542,-7.623240043753878e-7,-1.4361298196704363e-8,-0.0016358178081207191,-5.285826195157557e-7,-1.4170084868955413e-8,-0.0016356469788772767,-3.4036970890659786e-7,-1.4016082203265821e-8,-0.001635508814606122,-2.207663722595964e-7,-1.3918227118982464e-8,-0.0016353723164385856,-1.840892669518823e-7,-1.3888261221685396e-8,-0.0016352009622329746,-2.3204470491520787e-7,-1.3927578205263703e-8,-0.0016349571713373055,-3.4963943026521634e-7,-1.4023883873503605e-8,-0.0016346099310555375,-5.023932688054426e-7,-1.4148931817790818e-8,-0.0016341454885156152,-6.3792299560969e-7,-1.4259849140121573e-8,-0.0016335782650784292,-6.955174267981529e-7,-1.4307009536395608e-8,-0.0016329555381133835,-6.248455078933967e-7,-1.4249353069369657e-8,-0.001632348566823429,-4.0811994916454653e-7,-1.4072462495238987e-8,-0.0016318292392897165,-7.307325909948915e-8,-1.3799065103672127e-8,-0.0016314426223732346,3.1411804635436726e-7,-1.348317422928833e-8,-0.0016311911484804568,6.740899862647185e-7,-1.3189486706427881e-8,-0.0016310385568320672,9.431757478148973e-7,-1.2969887537649966e-8,-0.0016309281956906096,1.0909595365989285e-6,-1.284917620325891e-8,-0.0016308035869936743,1.1218851358131656e-6,-1.2823744428951683e-8,-0.001630622539391083,1.0659851233981184e-6,-1.286910999649688e-8,-0.0016303628898681499,9.662126791094569e-7,-1.2950244535657924e-8,-0.0016300220532569065,8.673019924964457e-7,-1.303067628890683e-8,-0.0016296132995635643,8.078877149326865e-7,-1.3078931636879651e-8,-0.001629160810966706,8.157006448712503e-7,-1.3072446478192921e-8,-0.0016286945140845575,9.051596921306019e-7,-1.2999506114425888e-8,-0.001628245126395128,1.0769022975441644e-6,-1.285960415768863e-8,-0.0016278397306271277,1.3189544201936767e-6,-1.266248230864526e-8,-0.001627498165347806,1.6092434451098838e-6,-1.2426094284497363e-8,-0.0016272305284777825,1.919140067868813e-6,-1.2173739988352222e-8,-0.0016270360259148394,2.2175661941671596e-6,-1.1930728972988056e-8,-0.0016269031154630333,2.475096567993343e-6,-1.1721030329836182e-8,-0.0016268106690123906,2.6677037698851066e-6,-1.1564201830643506e-8,-0.0016267299509751117,2.7800877693262435e-6,-1.1472661493037969e-8,-0.0016266273869119789,2.808609891480967e-6,-1.1449301618478332e-8,-0.0016264683188791577,2.7638226285538478e-6,-1.148545475645509e-8,-0.001626222281076474,2.6722456015579204e-6,-1.1559486532781036e-8,-0.0016258702666007566,2.576093825543154e-6,-1.1637054006801947e-8,-0.001625413368763386,2.528652681956703e-6,-1.1674892793466553e-8,-0.0016248800163113045,2.5829769218688514e-6,-1.163000825805575e-8,-0.0016243264182511817,2.7739410660516134e-6,-1.147422855629942e-8,-0.001623824448257784,3.0994362029174313e-6,-1.1209399713251122e-8,-0.0016234371005962335,3.5125193005639037e-6,-1.0873674286989874e-8,-0.0016231924460283597,3.934280626806754e-6,-1.0531046713794774e-8,-0.0016230722116879442,4.2839261521980505e-6,-1.0247004462157263e-8,-0.0016230223920017024,4.509022315061528e-6,-1.0064052989792204e-8,-0.001622977701628644,4.599308318664541e-6,-9.990503166746648e-9,-0.0016228844735368534,4.580979504172208e-6,-1.0005062897292258e-8,-0.0016227124043607017,4.500425340947215e-6,-1.007001881606373e-8,-0.0016224552660553113,4.4079367639713336E-06,-1.0144494972609784e-8,-0.001622125516269599,4.346659224530802e-6,-1.0193467505461069e-8,-0.001621747326018003,4.347159211571133e-6,-1.0192193851439426e-8,-0.001621350394160166,4.425844840376646e-6,-1.0127472727933714e-8,-0.0016209651093993971,4.585398795260131e-6,-9.99724721593909e-9,-0.001620618755614523,4.816205832030953e-6,-9.809405621898151e-9,-0.0016203324293711152,5.0984795936064065e-6,-9.580037457445881e-9,-0.0016201185778446112,5.4050620808012625e-6,-9.331168050521922e-9,-0.0016199792751218015,5.7049341968223675e-6,-9.087925536625024e-9,-0.0016199055449921847,5.967355112173079e-6,-8.875191668941198e-9,-0.0016198780222882233,6.166231880713312e-6,-8.714053321567563e-9,-0.0016198689897785872,6.284171358720325e-6,-8.618507598772804e-9,-0.0016198456428020592,6.315766071306402e-6,-8.59280112903386e-9,-0.001619774385405621,6.26973000154361e-6,-8.629727496350617e-9,-0.0016196259296935819,6.169525357590731e-6,-8.710169915500509e-9,-0.0016193810015156772,6.052090182629365e-6,-8.804188184311565e-9,-0.0016190363271137104,5.963922429773775e-6,-8.87422587160706e-9,-0.0016186098081281857,5.953407381087274e-6,-8.88131796854117e-9,-0.0016181424573248472,6.058817784323751e-6,-8.794748910421731e-9,-0.0016176935536342239,6.293589642068541e-6,-8.60386918296675e-9,-0.001617326219104022,6.634329004002173e-6,-8.327694536227654e-9,-0.0016170853930605306,7.020289243504353e-6,-8.015286175478002e-9,-0.0016169778930223832,7.370415677596483e-6,-7.732028934152944e-9,-0.0016169675000937544,7.6131522800298654E-06,-7.535643904942126e-9,-0.0016169901136538418,7.713155380487486e-6,-7.454642010804234e-9,-0.0016169800837689205,7.679978347262525e-6,-7.481256003272846e-9,-0.0016168922572558102,7.556948303108508e-6,-7.580374851378752e-9,-0.0016167104555515727,7.400752728903742e-6,-7.706059646917471e-9,-0.0016164437683271215,7.26360821746386e-6,-7.816027752541982e-9,-0.0016161173530747812,7.183346466944154e-6,-7.879724076888564e-9,-0.0016157633104902577,7.180632707092512e-6,-7.880570755501255e-9,-0.0016154140207041772,7.260286490250837e-6,-7.814851788477083e-9,-0.001615098001463881,7.414069548772224e-6,-7.689396067402687e-9,-0.001614837378113596,7.623584166153096e-6,-7.519187049980965e-9,-0.0016146461104334338,7.863038966555796e-6,-7.325110558075486e-9,-0.0016145285922477045,8.102151822196889e-6,-7.13161729702838e-9,-0.0016144786655525626,8.30954750461279e-6,-6.963995681741373e-9,-0.0016144794389958994,8.456851025280304e-6,-6.8450772368244266e-9,-0.0016145044863076245,8.523247037034214e-6,-6.791555454796449e-9,-0.0016145208238440725,8.499790759989043e-6,-6.810504300559879e-9,-0.0016144936330299336,8.392510891781708e-6,-6.896885929710203e-9,-0.001614392228170857,8.223343280763281e-6,-7.032834909617165e-9,-0.0016141963521061268,8.028183732838383e-6,-7.189288356946133e-9,-0.0016139016436967962,7.851860839942969e-6,-7.330101133146092e-9,-0.0016135231106711163,7.740313336524296e-6,-7.4183830864822594e-9,-0.0016130954016894184,7.730606125699386e-6,-7.424519615650904e-9,-0.0016126685428214326,7.840105042654435e-6,-7.334806831697677e-9,-0.0016122981087462733,8.057474208610399e-6,-7.1585873366644e-9,-0.0016120303080747725,8.339676729142519e-6,-6.930579850289531e-9,-0.001611885615787256,8.619402313112867e-6,-6.704899178695777e-9,-0.0016118481928508355,8.824139607217275e-6,-6.539785116730204e-9,-0.001611868604140801,8.90107812285037e-6,-6.477642765675682e-9,-0.001611881154272387,8.835912981377337e-6,-6.529915716142489e-9,-0.0016118277460059921,8.655388821984905e-6,-6.674986610903632e-9,-0.001611675919713035,8.41338736769802e-6,-6.869352972909047e-9,-0.0016114237381993468,8.169993921702883e-6,-7.06452679210035e-9,-0.001611093177231819,7.974354515474472e-6,-7.220908293079042e-9,-0.0016107187721478148,7.856385780125358e-6,-7.3144902295771e-9,-0.0016103373933631776,7.826230747315016e-6,-7.33726541883732e-9,-0.0016099815773490676,7.877830737849756e-6,-7.294288237410739e-9,-0.0016096761674665666,7.993507370107692e-6,-7.199928950656389e-9,-0.0016094369744081014,8.147984768505116e-6,-7.074608444117655e-9,-0.0016092702451640983,8.311598200694667e-6,-6.942216930039938e-9,-0.00160917228355665,8.453152537768642e-6,-6.827830668858108e-9,-0.001609129179254943,8.543077992903146e-6,-6.755189047281374e-9,-0.0016091171262881026,8.557333011262786e-6,-6.743558851885236e-9,-0.0016091041391435737,8.481979668330493e-6,-6.804049103358642e-9,-0.0016090539129368906,8.317618601666572e-6,-6.9360391917084e-9,-0.0016089320065604345,8.082194724983374e-6,-7.1249350615802805e-9,-0.0016087135318696238,7.810443188597418e-6,-7.342654995567478e-9,-0.0016083904469439763,7.548814847622212e-6,-7.551773316743061e-9,-0.0016079759933311404,7.346151109873746e-6,-7.71307892483668e-9,-0.0016075042761180575,7.242056143792723e-6,-7.794939036152872e-9,-0.00160702430711951,7.255973870729432e-6,-7.782022387653911e-9,-0.0016065893832426634,7.380066935880531e-6,-7.680904798184895e-9,-0.0016062439692449664,7.578337494266571e-6,-7.520654677956422e-9,-0.0016060111996290365,7.793284040925081e-6,-7.347429731587253e-9,-0.001605884722251656,7.959699219668078e-6,-7.2134347447406345e-9,-0.0016058284903456366,8.02276170190471e-6,-7.162490523129645e-9,-0.001605786300256652,7.954794950983538e-6,-7.216659725347376e-9,-0.0016056989183379042,7.763856680531235e-6,-7.3693711382787e-9,-0.0016055223349501092,7.489910937153623e-6,-7.5884774454684e-9,-0.0016052394922760655,7.190282869697641e-6,-7.827929734487749e-9,-0.0016048613732839356,6.9214213509586415e-6,-8.042440056461898e-9,-0.0016044191014809085,6.724717813606781e-6,-8.19887721405118e-9,-0.0016039523942876091,6.620315668122966e-6,-8.281210552001504e-9,-0.0016034994404368291,6.608103489245576e-6,-8.289661775609236e-9,-0.00160309058100955,6.672612775449543e-6,-8.236730302719379e-9,-0.0016027456251598608,6.788717605477168e-6,-8.142605180973005e-9,-0.0016024734564696638,6.92643298585074e-6,-8.031328805630021e-9,-0.001602272562723833,7.054461000471735e-6,-7.927975303945096e-9,-0.0016021316395473646,7.1429733909865235e-6,-7.85643420942448e-9,-0.001602030096147785,7.166416618010949e-6,-7.837159326460504e-9,-0.0016019389325304322,7.106967943498292e-6,-7.884384590805072e-9,-0.001601822909317285,6.958748005321464e-6,-8.002733282683978e-9,-0.001601645025670833,6.732028706082511e-6,-8.183846196126166e-9,-0.0016013737843991493,6.455595568760507e-6,-8.404514185145453e-9,-0.0016009923060795966,6.174736476004758e-6,-8.628343547216521e-9,-0.0016005063926833,5.943025935706647e-6,-8.81240660038963e-9,-0.001599947436018963,5.80863970378304e-6,-8.918249717289788e-9,-0.0015993671346443959,5.799343297164342e-6,-8.923895711975885e-9,-0.001598824450917896,5.912206177088279e-6,-8.831981049727163e-9,-0.0015983691261643967,6.112691262219383e-6,-8.670353040535608e-9,-0.001598027750726865,6.34370842368762e-6,-8.484735141405814e-9,-0.001597796970333321,6.541210365541908e-6,-8.32624668865039e-9,-0.0015976453400901444,6.6511270032490696e-6,-8.237927113772566e-9,-0.0015975225826418882,6.642865882163979e-6,-8.244027233433758e-9,-0.0015973733172837778,6.5160674645092064e-6,-8.344671256899067e-9,-0.0015971514460371861,6.299134854850162e-6,-8.517063826659138e-9,-0.0015968312197721644,6.040236787256278e-6,-8.722695998097968e-9,-0.0015964119337554,5.793741677183589e-6,-8.918192024461737e-9,-0.0015959153524303371,5.606512708157547e-6,-9.066246268690955e-9,-0.0015953776009036073,5.508240931702783e-6,-9.143302312759663e-9,-0.0015948390145066778,5.5079279870896205e-6,-9.142302190616902e-9,-0.0015943353730508711,5.595937570596819e-6,-9.07100224242127E-09,-0.0015938924112206762,5.749295724445448e-6,-8.947734194601513e-9,-0.0015935237022038366,5.937745603497693e-6,-8.796600268425784e-9,-0.0015932308952599915,6.128923308494835e-6,-8.643381449495809e-9,-0.0015930050349990598,6.292138592490837e-6,-8.512542405787741e-9,-0.0015928280496299403,6.401112560124816e-6,-8.425039499555748e-9,-0.001592674118163697,6.436402325511549e-6,-8.396358552439093e-9,-0.001592511242825915,6.388162226916735e-6,-8.434284847973138e-9,-0.0015923038548076277,6.259479463662382e-6,-8.536238644079333e-9,-0.0015920175360308354,6.069704190545227e-6,-8.686647143544019e-9,-0.0015916265581974022,5.855945053772369e-6,-8.855809836079169e-9,-0.0015911234432686942,5.66982094337028e-6,-9.002557749844637e-9,-0.0015905271902137126,5.566980643098267e-6,-9.082660120678599e-9,-0.0015898846649755427,5.5901058549402035e-6,-9.062364074658102e-9,-0.0015892607401442954,5.751420421663427e-6,-8.932240034166934e-9,-0.0015887185141690312,6.0241142294602755e-6,-8.713870498328418e-9,-0.0015882979764191441,6.3490168297115175e-6,-8.454426383873467e-9,-0.0015880035039804617,6.654182728757788e-6,-8.211064945180594e-9,-0.0015878052699886624,6.877775058584288e-6,-8.032786882775957e-9,-0.0015876517590710897,6.984489838970192e-6,-7.947450754328946e-9,-0.0015874863779336544,6.971221701182685e-6,-7.957325293941682e-9,-0.0015872619917445506,6.863185748489404e-6,-8.042215733171648e-9,-0.0015869502414554443,6.704200258300083e-6,-8.167230467721707e-9,-0.0015865450265327885,6.544861833301743e-6,-8.292209810873044e-9,-0.001586060881771174,6.431419708027262e-6,-8.380562643969391e-9,-0.0015855275390838218,6.397223103243651e-6,-8.4060105625722e-9,-0.001584982293378186,6.457920516330214e-6,-8.356321717507075e-9,-0.0015844620349776742,6.61081898948137e-6,-8.233749425801078e-9,-0.0015839966677754043,6.837813403661317e-6,-8.052680242552925e-9,-0.0015836049744388627,7.110512974486875e-6,-7.83558877254055e-9,-0.00158329313272495,7.39599782801762e-6,-7.60852007937778e-9,-0.0015830553572955281,7.661943418484884e-6,-7.397063210929995e-9,-0.0015828757453601038,7.88048537908479e-6,-7.223288825216026e-9,-0.0015827305073950087,8.030921094971425e-6,-7.103576255489422e-9,-0.0015825902239223386,8.10175707948008e-6,-7.046953362750228e-9,-0.0015824222470464458,8.09261347207407e-6,-7.0535751904136625e-9,-0.0015821938020142208,8.016239439311893e-6,-7.1131587433406575e-9,-0.001581876678930113,7.90023529461386e-6,-7.203688583790658e-9,-0.0015814541506088944,7.786937005316729e-6,-7.291589958387156e-9,-0.001580929437716428,7.72886735500687e-6,-7.33539011103742e-9,-0.001580332627237802,7.777305469592599e-6,-7.294769075619663e-9,-0.0015797203731629178,7.964409090283794e-6,-7.144630568893987e-9,-0.0015791630814620142,8.285391603077017e-6,-6.889058321940481e-9,-0.001578720878001717,8.692298812053108e-6,-6.566101724486824e-9,-0.001578419502984907,9.10747486170557e-6,-6.2370916464480965e-9,-0.0015782405062512823,9.452091527792786e-6,-5.9641611304561455e-9,-0.0015781312909732138,9.674079549613374e-6,-5.7882606428250385e-9,-0.001578027360075597,9.761402781761969e-6,-5.718703551331627e-9,-0.0015778737449317608,9.738155742011253e-6,-5.736256424581671e-9,-0.0015776373992268053,9.650582774239132e-6,-5.804222309092312e-9,-0.0015773098917586672,9.551555633876995e-6,-5.88077278945436e-9,-0.0015769037319662415,9.488450878456881e-6,-5.928572703455147e-9,-0.001576445875891479,9.49569390768316e-6,-5.920653078048749e-9,-0.001575970674530697,9.591327497139855e-6,-5.84304192231517e-9,-0.0015755133171369835,9.77658865659438e-6,-5.694997471322311e-9,-0.0015751042615903047,1.003778163139329e-5,-5.487458624638412e-9,-0.001574765041689377,1.0349895109118027e-5,-5.240176643150512e-9,-0.0015745057554236149,1.0681318357532525e-5,-4.978030419643896e-9,-0.001574324361526077,1.0998934195309128e-5,-4.727059345412328e-9,-0.0015742076584801335,1.1272847997949395e-5,-4.510760254880358e-9,-0.0015741334933916324,1.148015300643822e-5,-4.347106597166391e-9,-0.0015740736145208995,1.1607546540740536e-5,-4.2464524410951475e-9,-0.0015739967905234456,1.165297766004052e-5,-4.210215818202505e-9,-0.0015738721019847755,1.1626573124438477e-5,-4.230176567081147e-9,-0.0015736725816667494,1.1550994953670337e-5,-4.288272760115865e-9,-0.0015733796828682138,1.1460984868635478e-5,-4.357060355334619e-9,-0.0015729888863822469,1.1400977627530216e-5,-4.401668546947189e-9,-0.001572515654131937,1.1418948321355508e-5,-4.38465144129614e-9,-0.0015719991378984194,1.155499016771094e-5,-4.27489553861985e-9,-0.0015714991590845522,1.1825387317786e-5,-4.059992614526739e-9,-0.0015710820407434478,1.2207971645261938e-5,-3.757587705347629e-9,-0.00157079647604091,1.2639630181296142e-5,-3.4172617851035963e-9,-0.0015706506457699233,1.3034205729014649e-5,-3.106531606911105e-9,-0.0015706061696304065,1.3315507185698884e-5,-2.885049906609442e-9,-0.0015705947849098492,1.3446774868260129e-5,-2.7815199812259615e-9,-0.0015705471798354855,1.3439686701807493e-5,-2.7865797392088607e-9,-0.0015704165589056223,1.3341690442592115e-5,-2.8627232184856177e-9,-0.0015701872847721412,1.3213818456770147e-5,-2.9617956699222407e-9,-0.0015698706765883304,1.3111683729022345e-5,-3.0400379076245207e-9,-0.0015694951802119525,1.3074916344619818e-5,-3.0664473087197053e-9,-0.0015690965559719964,1.3124045477720016e-5,-3.02518922812497E-09,-0.0015687104237655423,1.3261776187223445e-5,-2.914483963298332e-9,-0.0015683672849147719,1.3476135614623932e-5,-2.744017121960997e-9,-0.001568089331561201,1.3744221248213585e-5,-2.531925583923272e-9,-0.001567888481635352,1.4036199389495978e-5,-2.301652902586154e-9,-0.0015677654444036897,1.431949385617295e-5,-2.0787019259425203e-9,-0.001567709854690696,1.4563082634763757e-5,-1.8873090716874538e-9,-0.0015677016010537767,1.474164561397543e-5,-1.7472081474154697e-9,-0.0015677133377832947,1.4839081201440235e-5,-1.6708576042155112e-9,-0.0015677139033290711,1.4850945784761677e-5,-1.6615071481920558e-9,-0.001567672273456403,1.4785614343760266e-5,-1.712298071717079e-9,-0.001567561728035762,1.4664077909571058e-5,-1.8064872373507266e-9,-0.001567363964362006,1.4518342278869283e-5,-1.9188087740274477e-9,-0.0015670730416101715,1.4388371092908044e-5,-2.017975036911366e-9,-0.001566699009351379,1.4317124795163991e-5,-2.0706086887569183e-9,-0.001566270342050259,1.434288706438812e-5,-2.0471994116831762e-9,-0.0015658331609196012,1.4488670512990482e-5,-1.9302484376469083e-9,-0.0015654445000836176,1.4750408147840926e-5,-1.72331580198987e-9,-0.0015651576376926135,1.5088818242514955e-5,-1.4572399696723894e-9,-0.0015650016611725502,1.543273520838367e-5,-1.1875289074112136e-9,-0.0015649646525930018,1.5699315031914638e-5,-9.786981777112633e-10,-0.0015649932080395524,1.5825615668091956e-5,-8.797288461446118e-10,-0.0015650127561441629,1.5794360168681763e-5,-9.039460652179229e-10,-0.0015649578766231919,1.5637909598140213e-5,-1.0258340424130335e-9,-0.0015647946888691952,1.5419919015121727e-5,-1.1953572908828253e-9,-0.001564525408102832,1.5208671664966406e-5,-1.3589165068917122e-9,-0.0015641786040441487,1.5056893076463547e-5,-1.4752664574075088e-9,-0.00156379486909857,1.4993534545273575e-5,-1.521981552315444e-9,-0.0015634150399108117,1.5024788854757072e-5,-1.4945831313107964e-9,-0.0015630731490801214,1.5139317110787819e-5,-1.4023153307767539e-9,-0.0015627932503844573,1.5314097884522007e-5,-1.2634546568637839e-9,-0.0015625884467632353,1.5519419283943223e-5,-1.1013546330723007e-9,-0.001562460875346721,1.5722949233932406e-5,-9.412785609553453e-10,-0.0015624021479970563,1.5893311969822037e-5,-8.076525173200512e-10,-0.0015623942663999986,1.600355815982286e-5,-7.213957276926135e-10,-0.0015624113087739449,1.603464562664121e-5,-6.972120092446669e-10,-0.0015624222244725121,1.5978599480086515e-5,-7.411073308205331e-10,-0.0015623947894483653,1.5840685366149302e-5,-8.486840929629714e-10,-0.0015623003825704094,1.563995164582476e-5,-1.0047498832725248e-9,-0.00156211896716867,1.5407677934949402e-5,-1.1846143530044873e-9,-0.0015618434715127026,1.5183522199556461e-5,-1.3572122413585078e-9,-0.001561482731818114,1.5009579708722523e-5,-1.4898312300154014e-9,-0.0015610623229379093,1.492287455651844e-5,-1.553978673492256e-9,-0.0015606225925568506,1.4946887881331915e-5,-1.5318866836714567e-9,-0.001560212971251659,1.5083203136375069e-5,-1.422837639342225e-9,-0.0015598818401117295,1.530556706953706e-5,-1.2475983890907835e-9,-0.0015596626235708532,1.5560011265301256e-5,-1.0482226412439358e-9,-0.001559559627593272,1.577486934926789e-5,-8.802955933378288e-10,-0.0015595405570984476,1.5881538273988095e-5,-7.9692043926817e-10,-0.0015595430360532403,1.5839771966023374e-5,-8.291538101517867e-10,-0.0015594959955338393,1.5654660779172335e-5,-9.72801001056983e-10,-0.0015593463001946208,1.5374391353418983e-5,-1.190114515735307e-9,-0.0015590762116928854,1.5069709060576866e-5,-1.4258030022227316e-9,-0.001558703847788798,1.4807611900845037e-5,-1.6276153266680996e-9,-0.0015582703547364113,1.4632787290015397e-5,-1.7608768873779355e-9,-0.00155782354477752,1.4561962806159921e-5,-1.812864234105201e-9,-0.0015574055106049006,1.4587994709651823e-5,-1.7895075593158592e-9,-0.0015570463687551211,1.4687835068240819e-5,-1.7090593224017948e-9,-0.0015567627265973315,1.4830172836249719e-5,-1.5960694700656643e-9,-0.0015565585721585488,1.4981143223910987e-5,-1.4769346528028385e-9,-0.0015564268779924705,1.5108248878273527e-5,-1.3768878228299211e-9,-0.001556351184307716,1.5183283689987646e-5,-1.3177718726983572e-9,-0.0015563071846080817,1.518499355836712e-5,-1.3159931882651027e-9,-0.001556264759061091,1.5101840586844419e-5,-1.3803631127402186e-9,-0.0015561910289953722,1.493467497760959e-5,-1.5099983155967233e-9,-0.001556054769142461,1.4698525876528096e-5,-1.692928407678446e-9,-0.0015558319325716652,1.4422419435365395e-5,-1.9062865699394374e-9,-0.00155551134062967,1.4146276673803998e-5,-2.118820791349384e-9,-0.0015550990200105716,1.3914554215767493e-5,-2.2959501362179986e-9,-0.0015546195256492723,1.376733680242155e-5,-2.406755127218841e-9,-0.001554113115567492,1.3730683214261952e-5,-2.4314473667369036e-9,-0.001553628664032215,1.3808584379673326e-5,-2.367474165297039e-9,-0.0015532132442453931,1.3978822784027847e-5,-2.232532482775318e-9,-0.0015529002123789554,1.4194626461009348e-5,-2.063117347756414e-9,-0.0015526985302697924,1.439325938164884e-5,-1.907804521574992e-9,-0.0015525869004329388,1.4511149461068737e-5,-1.8155962076796212e-9,-0.0015525163561113226,1.4502518791870292e-5,-1.821618126894051e-9,-0.0015524229966605255,1.4355340596169604e-5,-1.934861536785402e-9,-0.0015522480046320417,1.4097085782131253e-5,-2.1337720574238567e-9,-0.0015519570630758844,1.3785964147240603e-5,-2.373056019133126e-9,-0.0015515502090884452,1.3490805690072358e-5,-2.5993134735632945e-9,-0.0015510581583219735,1.3269136012428824e-5,-2.7680732374480753e-9,-0.0015505287216183647,1.3153018247135854e-5,-2.8547493909096727e-9,-0.0015500111337097319,1.3146302784594268e-5,-2.8566824400189927e-9,-0.0015495446374244918,1.3230505435768768e-5,-2.788469542937826e-9,-0.001549153320614908,1.3373991814169866e-5,-2.6747740927702085e-9,-0.0015488458317407083,1.3540368315253085e-5,-2.543818936185515e-9,-0.0015486175736199625,1.3694424215569561e-5,-2.422826603784886e-9,-0.0015484534953238353,1.3805782453544893e-5,-2.335244042665086e-9,-0.0015483305799586244,1.3851194736815257e-5,-2.2989915178837034e-9,-0.0015482199989999771,1.3816427644258473e-5,-2.3249912029369815e-9,-0.001548089463216438,1.369826171317471e-5,-2.41558809311908e-9,-0.0015479064843226234,1.3506495043573231e-5,-2.5629790637511724e-9,-0.0015476430650823826,1.3265142070830212e-5,-2.748308110889761e-9,-0.0015472817047777522,1.3011433188873347e-5,-2.9425170054115522e-9,-0.0015468215378123499,1.2791153939947237e-5,-3.1100615838046316e-9,-0.0015462823008519895,1.264978126784404e-5,-3.2158634430605283e-9,-0.0015457034820694632,1.2620793299373853e-5,-3.23437207800151e-9,-0.0015451371557708795,1.271461979911524e-5,-3.1580199349164043e-9,-0.0015446354809309358,1.2912598720449401e-5,-3.001718234269623e-9,-0.0015442364302565255,1.3169086681883902e-5,-2.801040276875315e-9,-0.0015439524938185769,1.342193894043896e-5,-2.604019123633512e-9,-0.0015437662068975597,1.3608488064402962e-5,-2.4588197532468753e-9,-0.0015436340713854192,1.3682357584886e-5,-2.4008622169249547e-9,-0.001543497962354699,1.3626252232787606e-5,-2.4430807619033354e-9,-0.00154330101649021,1.3456844397511336e-5,-2.572263294225788e-9,-0.0015430034083978895,1.3219882326718478e-5,-2.7529027871083723e-9,-0.0015425929181858147,1.2976711436722279e-5,-2.937645646025132e-9,-0.0015420866882192013,1.278670592403656e-5,-3.080856310691857e-9,-0.00154152398796979,1.2691851204048305e-5,-3.1504613502583297e-9,-0.001540953480044075,1.2708519035282108e-5,-3.1341863973903237e-9,-0.0015404202334010281,1.2827867903263539e-5,-3.039126457904035e-9,-0.0015399566733843208,1.302256759212801e-5,-2.886485245993735e-9,-0.0015395788942260255,1.325586308652444e-5,-2.7045866919813093e-9,-0.0015392872954454852,1.3489692472678766e-5,-2.5226746116671805e-9,-0.0015390695180788213,1.3690362719305401e-5,-2.3666060094382767e-9,-0.0015389039426561332,1.3831829101966165e-5,-2.2563601055744896e-9,-0.0015387628159656927,1.3897428531583792e-5,-2.20469239650718e-9,-0.0015386148936828994,1.388103058929039e-5,-2.2162086122068876e-9,-0.0015384280799308537,1.3788188762037226e-5,-2.28644706084773e-9,-0.0015381727896268602,1.3637252599749298e-5,-2.4010335015984904e-9,-0.00153782662638598,1.3459685165893791e-5,-2.5355047694054314e-9,-0.0015373803606947806,1.3298103454663454e-5,-2.6569224773298658e-9,-0.0015368439449366434,1.3200271754010526e-5,-2.7285944715443808e-9,-0.0015362497069414172,1.3208268582747388e-5,-2.7184455758695063e-9,-0.0015356491281297727,1.3344727868614513e-5,-2.609535624585385e-9,-0.0015351012857119798,1.3601376685119754e-5,-2.4087144532296773e-9,-0.001534655333305587,1.3936432395579682e-5,-2.1484399499017215e-9,-0.0015343338675460306,1.4284442308400234e-5,-1.8790986065537597e-9,-0.001534124900712501,1.4575769360907748e-5,-1.6540268609434805e-9,-0.001533986063403117,1.4757650849527079e-5,-1.5134089313619608e-9,-0.0015338585577077514,1.4808523097929115e-5,-1.4733758294952858e-9,-0.001533684646016743,1.4741520547899112e-5,-1.5234227094639102e-9,-0.001533422629589494,1.4597945041350879e-5,-1.6315309243635806e-9,-0.0015330556633583313,1.4434363097761433e-5,-1.7541719141681908e-9,-0.0015325932941699795,1.43077142414427e-5,-1.8477863331828831e-9,-0.0015320665277323265,1.426230754346835e-5,-1.878725396982042e-9,-0.0015315185461519663,1.4321473573738102e-5,-1.8295328556822685e-9,-0.001530993934766879,1.4485180350014558e-5,-1.7006180859558923e-9,-0.001530529287402824,1.4733246178698408e-5,-1.5076755247691595e-9,-0.0015301472235543963,1.5032273750256648e-5,-1.2763383865137975e-9,-0.001529854434526647,1.5343751423442615e-5,-1.0360201232972493e-9,-0.0015296430494533845,1.5631173065596047e-5,-8.145421075795626e-10,-0.0015294939224596445,1.5865044960165455e-5,-6.343581941131169e-10,-0.0015293804665335667,1.6025681201232713e-5,-5.104211518947967e-10,-0.0015292721800424954,1.6104406698012555e-5,-4.492264661427397e-10,-0.0015291376898846022,1.610398838942385e-5,-4.484456737093128e-10,-0.0015289476443276155,1.6038826092304203e-5,-4.967851368558057e-10,-0.0015286780300962212,1.5934920116292352e-5,-5.7407767303816e-10,-0.0015283144581671828,1.5828995706173513e-5,-6.520649957069123e-10,-0.001527857433495814,1.5765420962771622e-5,-6.968641554284709e-10,-0.0015273273599870595,1.578919190086431e-5,-6.74377333345776e-10,-0.001526766307082904,1.5934197950098757e-5,-5.592021348606761e-10,-0.0015262325434225242,1.6208917896855537e-5,-3.454009983392546e-10,-0.0015257856016340661,1.6585900155219326e-5,-5.434009904032178e-11,-0.001525465322369261,1.7003376453317625e-5,2.6667254099619e-10,-0.0015252747715500247,1.738282006332563e-5,5.577945753003107e-10,-0.0015251774516648478,1.765614484759572e-5,7.673293029466002e-10,-0.0015251111941016761,1.778888314628154e-5,8.693422948032573e-10,-0.0015250108675460873,1.7788373699605145e-5,8.698678813149482e-10,-0.0015248284104435656,1.769597096092772e-5,8.008933904221264e-10,-0.001524543138352943,1.7570342537972436e-5,7.074837082249667e-10,-0.001524161958697962,1.747014596631279e-5,6.344307222398109e-10,-0.00152371290844506,1.7441141511317046e-5,6.163780060845438e-10,-0.001523235851785127,1.7509215448337496e-5,6.72585413499027e-10,-0.0015227730669315363,1.7678694633934106e-5,8.058200670495614e-10,-0.0015223612736943114,1.7934688640477055e-5,1.0043203383510617e-9,-0.0015220259505717274,1.82482101335355e-5,1.2458005545171251e-9,-0.0015217783771147274,1.858278154644696e-5,1.502482588468059e-9,-0.0015216153779278,1.8901176203271382e-5,1.7461563926156706e-9,-0.001521521286606779,1.9171184850908933e-5,1.9524855806838318e-9,-0.0015214713531420381,1.936973086375099e-5,2.1040967574472464e-9,-0.0015214357043695024,1.9485117407839795e-5,2.1923000740043392e-9,-0.001521383137404215,1.9517692447771478e-5,2.217627952739704e-9,-0.0015212844821984616,1.9479511468266107e-5,2.1895835175049778e-9,-0.0015211156742934025,1.939342867657197e-5,2.1258913140746853e-9,-0.0015208608563400331,1.9291673965034527e-5,2.0512979780619082e-9,-0.001520515854495682,1.9213505125941906e-5,1.995657851135691e-9,-0.0015200919884612346,1.9200901897949216e-5,1.9905876211772794e-9,-0.0015196190517206686,1.9290978781291798e-5,2.0637415938522103e-9,-0.001519144803733725,1.9504713196396947e-5,2.2304122471037216e-9,-0.001518727462232059,1.9834280591372538e-5,2.484141135478913e-9,-0.0015184192950395239,2.0235367514319987e-5,2.7910634415758664e-9,-0.0015182452262433325,2.0633099952696904e-5,3.0944338572009063e-9,-0.0015181877354138221,2.094520859440517e-5,3.3320858875781925e-9,-0.0015181899043198905,2.1113683302729238e-5,3.4603240998125803e-9,-0.0015181776587180065,2.1127106051478163e-5,3.4708520228233463e-9,-0.0015180885131474918,2.1021030404410242e-5,3.391091106264991e-9,-0.0015178909438639508,2.0859213783789e-5,3.2698730446144373e-9,-0.0015175877233646422,2.0709171992738493e-5,3.1587082248994756e-9,-0.0015172073558787026,2.0623842481949752e-5,3.0977101310951086e-9,-0.0015167914191089214,2.063317965218757e-5,3.109204821067375e-9,-0.0015163832619076432,2.0743705953134367e-5,3.1975368071754336e-9,-0.0015160200669873704,2.0942485608743105e-5,3.3523023756736195e-9,-0.0015157281682930876,2.1202788343014117e-5,3.5528268410564887e-9,-0.0015155208240000008,2.1490072546112796e-5,3.7727761422749006e-9,-0.0015153978329193042,2.1767775800983042e-5,3.984512020996164e-9,-0.0015153466823297202,2.2002561279956053e-5,4.162975427671088e-9,-0.0015153449752000046,2.2168662578104594e-5,4.2888951154383054e-9,-0.0015153638372301824,2.225102728825126e-5,4.351136659371982e-9,-0.001515371889179471,2.2246993016359994e-5,4.3479874066622305e-9,-0.0015153392563930425,2.216641597337143e-5,4.287271959233951e-9,-0.001515241213541778,2.2030490914074532e-5,4.1854284582402095e-9,-0.0015150613338686283,2.1869574703626888e-5,4.065761994294679e-9,-0.0015147941551076818,2.1720147110229897e-5,3.956004055400928e-9,-0.0015144474064621842,2.1620798118500058e-5,3.885163322724043e-9,-0.0015140436280418352,2.160676344805545e-5,3.879380610579873e-9,-0.0015136202312386242,2.1702388771875214e-5,3.956357484574458e-9,-0.001513226034844196,2.191177437422689e-5,4.1185205826258535e-9,-0.0015129120080209172,2.221001677650227e-5,4.346649078495528e-9,-0.001512715541928629,2.254041791686142e-5,4.597890678761155e-9,-0.001512642323751254,2.282451516198137e-5,4.8132638236435735e-9,-0.001512656112032841,2.2987226657755368e-5,4.936448725917021e-9,-0.0015126871339836351,2.2987814401065566e-5,4.937036368579893e-9,-0.0015126589666124984,2.283832816494508e-5,4.824488181507253e-9,-0.0015125191642603442,2.2596939508072832e-5,4.643164810446097e-9,-0.001512255771697461,2.234135481963672e-5,4.452159952580022e-9,-0.0015118937115124553,2.2139907404171068e-5,4.303255975411923e-9,-0.00151147883232571,2.203443093930126e-5,4.227845582902372e-9,-0.001511060993239207,2.2037202305538674e-5,4.234671953457867e-9,-0.0015106824975225093,2.213657085421608e-5,4.314282868663287e-9,-0.0015103725536317254,2.2305348342064856e-5,4.4455958177446396e-9,-0.001510145935250769,2.2508543748264166e-5,4.601885979825811e-9,-0.0015100037941396729,2.27093975733727e-5,4.75536669510632e-9,-0.0015099353530227085,2.2873996336669858e-5,4.880600371514767e-9,-0.0015099200916151164,2.2974973370313923e-5,4.957188134048892e-9,-0.0015099304637137257,2.2994496007904244e-5,4.971952359005194e-9,-0.0015099352286913673,2.2926461766264454e-5,4.920579998432417e-9,-0.0015099033645110472,2.277759522000927e-5,4.808472749402745e-9,-0.0015098082535331882,2.256704567886276e-5,4.650450638927179e-9,-0.0015096316019525189,2.2324318804894625e-5,4.469136915658275e-9,-0.0015093665766133704,2.208567924099814e-5,4.2921241199986e-9,-0.0015090197629728298,2.1889299652124044e-5,4.148176635499323e-9,-0.0015086116448405531,2.1769507934527783e-5,4.062815296740895e-9,-0.0015081753500045245,2.1750466832938717e-5,4.05360291565382e-9,-0.0015077531763032308,2.183960388547096e-5,4.125383508132904e-9,-0.0015073900399322092,2.202167990402843e-5,4.2660809956394935e-9,-0.0015071232263286609,2.225573764208077e-5,4.44462415416496e-9,-0.0015069693776782423,2.2478572667533146e-5,4.6136193435732875e-9,-0.0015069127900212765,2.261830809440704e-5,4.719430802140069e-9,-0.0015069025568193628,2.2617773461514468e-5,4.719545121206075e-9,-0.0015068654430890603,2.2459193836491986e-5,4.601005606662283e-9,-0.001506732732291867,2.2175454413684737e-5,4.388897633440769e-9,-0.0015064676102254564,2.1838262916960467e-5,4.1374773793336535e-9,-0.0015060770908259737,2.152899176668202e-5,3.9081543995164606e-9,-0.0015056034531821725,2.130964096087466e-5,3.747499605308365e-9,-0.0015051039831142801,2.120817745888039e-5,3.67616765940978e-9,-0.0015046318558587788,2.121994692951462e-5,3.6900798243215312e-9,-0.0015042251268647423,2.1317953608248667e-5,3.768369282876351e-9,-0.0015039036630436163,2.1464388035088392e-5,3.88222893943776e-9,-0.0015036707819547192,2.1619516091843104e-5,4.001665844105285e-9,-0.0015035165886605325,2.1747302655433718e-5,4.099689013291884e-9,-0.00150342132600212,2.1818716266063703e-5,4.154695925069204e-9,-0.001503358325448771,2.1813879500024203e-5,4.1519986156729824e-9,-0.0015032968462424501,2.1723736492507323e-5,4.08503905892022e-9,-0.0015032052341075262,2.155133538091197e-5,3.956368101994074e-9,-0.0015030546872407823,2.1312355770057032e-5,3.778071180337243e-9,-0.0015028235326783174,2.103420332333634e-5,3.5710789610787957e-9,-0.0015025013887804367,2.075307806093682e-5,3.362886440108658e-9,-0.0015020922453497882,2.0508886287330707e-5,3.183598559287639e-9,-0.0015016154742786625,2.0338452391119222e-5,3.0607104114683997e-9,-0.0015011040515861569,2.0268076034948164e-5,3.0134867470089806e-9,-0.001500599804274013,2.030688168146457e-5,3.04807733049152e-9,-0.0015001460726057133,2.044239395900025e-5,3.154424023362247e-9,-0.00149977856352969,2.0639604039527855e-5,3.305819021705255e-9,-0.0014995156172464786,2.0844817059723325e-5,3.461959279396227e-9,-0.0014993500137638414,2.0995399978085027e-5,3.576249789876038e-9,-0.0014992456432738306,2.1035335583678028e-5,3.60729449457631e-9,-0.0014991428844553212,2.0933644184201608e-5,3.532476786791916e-9,-0.0014989745730104767,2.0698804268457708e-5,3.3586078624101303e-9,-0.0014986888360896111,2.0380406021878866e-5,3.1231135922833585e-9,-0.0014982686733544998,2.0053717417477414e-5,2.88245886837212e-9,-0.001497737525690711,1.979300837962255e-5,2.692135997911263e-9,-0.001497148017881539,1.9647196210900128e-5,2.588415637713842e-9,-0.0014965613991866607,1.9629093705834248e-5,2.5803785904338805e-9,-0.0014960289411646245,1.971968706434261e-5,2.653283174951249e-9,-0.0014955820412908304,1.9880736800477454e-5,2.778157555940626e-9,-0.0014952309905867504,2.006787897714019e-5,2.9216817011335566e-9,-0.0014949687552116315,2.0239968863611068e-5,3.053154202397362e-9,-0.001494776174475137,2.0364131096063462e-5,3.1481831138080597e-9,-0.0014946265704327824,2.0417849223123522e-5,3.1901577490234746e-9,-0.0014944892845262566,2.038968095963877e-5,3.170735822070018e-9,-0.001494332545660484,2.0279629489477603e-5,3.090127645122555e-9,-0.0014941263545837618,2.009946410020862e-5,2.957370145196969e-9,-0.0014938459444002585,1.9872625600314708e-5,2.7902699955053625e-9,-0.0014934759328347927,1.9632856641228426e-5,2.614335134584265e-9,-0.0014930145655336932,1.9420569813598002e-5,2.4599538294097267e-9,-0.001492476702076429,1.9276431553751654e-5,2.3574741074222654e-9,-0.001491893815555032,1.923270705234934e-5,2.3306640563010123e-9,-0.0014913096645020614,1.930428755097455e-5,2.3900526656468323e-9,-0.0014907716135890666,1.9482318555866433e-5,2.5283426168944e-9,-0.0014903193643921373,1.973316438958572e-5,2.7198781518158167e-9,-0.0014899741448074898,2.0003956799043533e-5,2.9249937542774248e-9,-0.0014897315523588778,2.023395845028581e-5,3.098573729705269e-9,-0.0014895604078392077,2.036929696434408e-5,3.200967785115278e-9,-0.0014894086578894246,2.0377579597678796e-5,3.2087039570247428e-9,-0.0014892158047863976,2.0258385868426954e-5,3.122098731804692e-9,-0.001488929416536435,2.00457625312811e-5,2.9669485121319134e-9,-0.0014885210657221955,1.9800292408669174e-5,2.7885218058526498e-9,-0.0014879957071757151,1.9591794282292342e-5,2.6386436925550972e-9,-0.0014873899746012964,1.9478359809753334e-5,2.5601312681883347e-9,-0.0014867596618360918,1.949011570768919e-5,2.5748323704033555e-9,-0.0014861620498762876,1.96239922223134e-5,2.6799132147527057e-9,-0.0014856407320978139,1.9849868774778618e-5,2.8525944425785092e-9,-0.0014852179082245765,2.0123138972227992e-5,3.0595746869390322e-9,-0.001484894404555705,2.0397436089605455e-5,3.266468246613373e-9,-0.0014846544662120268,2.063358248057847e-5,3.444366312054756e-9,-0.0014844719149976677,2.080401172999627e-5,3.573026893968126e-9,-0.0014843155256631664,2.089389600951698e-5,3.6416569247405195e-9,-0.0014841529717873015,2.0900677734307805e-5,3.6485643076621275e-9,-0.0014839536957402732,2.083324538196875e-5,3.6005774495059056e-9,-0.0014836914694317035,2.0711220588510544e-5,3.5125354304605184e-9,-0.0014833473561297718,2.0564086382282243e-5,3.406608295349423e-9,-0.0014829133688975399,2.0429297886048457e-5,3.3108019367196984e-9,-0.0014823963710327067,2.0348185310062236e-5,3.25579730356668E-09,-0.0014818207428450856,2.0358734524199104e-5,3.269510016130022e-9,-0.0014812274772494347,2.048563738802864e-5,3.369725367338494e-9,-0.0014806675693328044,2.0730221397913308e-5,3.556767697544755e-9,-0.0014801896123771137,2.106481501301274e-5,3.809538836492915e-9,-0.0014798249253679303,2.143590416769047e-5,4.088059593597637e-9,-0.0014795761455542354,2.177709692752412e-5,4.3431788306475135e-9,-0.0014794146511569793,2.202796158292254e-5,4.530508461441201e-9,-0.0014792883061481331,2.21516328538685e-5,4.623353141774396e-9,-0.0014791364524373138,2.2144870224967428e-5,4.620002061129199e-9,-0.001478906684187595,2.203791530288745e-5,4.543444647931511e-9,-0.0014785683235115793,2.1885258092804413e-5,4.434360357647662e-9,-0.0014781193401062422,2.1750689691606835e-5,4.339933827235743e-9,-0.0014775854795386373,2.169092982823376e-5,4.3017291032046366e-9,-0.001477012299802205,2.1742145708306606e-5,4.345842348530162e-9,-0.0014764526498468376,2.191281179061359e-5,4.477843345187745e-9,-0.0014759534363243591,2.2184454181331846e-5,4.683549499194312e-9,-0.0014755455960484022,2.2519217855883682e-5,4.93475027814799e-9,-0.0014752396898019221,2.2870962823821085e-5,5.1974073013490225e-9,-0.0014750271342094889,2.3195958122338928e-5,5.439457561441334e-9,-0.0014748851544931095,2.3460421517391652e-5,5.636259530417908e-9,-0.0014747829673421675,2.3644120169039524e-5,5.773169265596725e-9,-0.001474687320693333,2.374080291527646e-5,5.845840169919798e-9,-0.0014745666070528286,2.3756880234768512e-5,5.859274017653767e-9,-0.0014743937130802754,2.370958754850038e-5,5.826487086509059e-9,-0.0014741482569230124,2.3625217663658505e-5,5.767179828898929e-9,-0.001473818894785108,2.353730629244631e-5,5.7063097259063755e-9,-0.0014734060778071696,2.3484074946004946e-5,5.672082995091509e-9,-0.001472924981874492,2.3504008874457454e-5,5.692603170476783e-9,-0.0014724072644037177,2.3628534088270373e-5,5.790480507708103e-9,-0.0014718991918354172,2.387197597384268e-5,5.975569281186334e-9,-0.0014714535304005726,2.422153315886059e-5,6.2378093646216116e-9,-0.0014711147480171334,2.463284924493281e-5,6.5441791770475725e-9,-0.0014709018005976526,2.5037149761910478e-5,6.844044438239558e-9,-0.0014707971735682401,2.5361087416693702e-5,7.08371765685339e-9,-0.0014707499231823534,2.5551998946229314e-5,7.224937628064112e-9,-0.0014706928556039132,2.559617122586235e-5,7.2582251778159335e-9,-0.0014705654035565266,2.5521412187611647e-5,7.204692681405604e-9,-0.0014703314954858874,2.5384704814681434e-5,7.106814374546921e-9,-0.001469986538679709,2.5252782134341083e-5,7.013936096625625e-9,-0.0014695540981764408,2.5183955143550453e-5,6.968766442288963e-9,-0.0014690762900327096,2.5215950258180403e-5,6.998456432120111e-9,-0.0014686020708823385,2.5360870206104967e-5,7.1110940673169154e-9,-0.001468176386598783,2.5606318665205407e-5,7.296811789583651e-9,-0.001467831922902369,2.592100301791191e-5,7.532134484148677e-9,-0.0014675843884544473,2.6263002803544234e-5,7.786145194716698e-9,-0.0014674316308986469,2.6588795756606222e-5,8.027060457500164e-9,-0.0014673561469447757,2.6861167542429433e-5,8.22790296065784e-9,-0.001467329858105644,2.7054651629686617e-5,8.370365121482301e-9,-0.0014673197245071011,2.7158013293985568e-5,8.446566196624374e-9,-0.0014672929285562525,2.717410966689769e-5,8.458950180331899e-9,-0.0014672208834997042,2.7118011201820044e-5,8.4189307986924e-9,-0.0014670820001531884,2.7014370775278294e-5,8.34495143072538e-9,-0.0014668636033767842,2.6894642929169563e-5,8.260369284515231e-9,-0.0014665634811135814,2.6794222102966245e-5,8.19123024785904e-9,-0.0014661914098972825,2.674909228562432e-5,8.163696466874626e-9,-0.001465770520724381,2.679114846664634e-5,8.200590836488431e-9,-0.001465337400999473,2.6941364730020337e-5,8.316505230393117e-9,-0.0014649388274165344,2.720105595585084e-5,8.511638713086152e-9,-0.0014646228477321868,2.7543744071366404e-5,8.766111014759959e-9,-0.0014644237187200332,2.791300341092992e-5,9.03854416039646e-9,-0.001464344966501293,2.8232690622237343e-5,9.273507511061049e-9,-0.00146435037296069,2.8431059296295023e-5,9.418980704214775e-9,-0.0014643722903750673,2.8469546292426055e-5,9.447272055057291e-9,-0.0014643365365555757,2.835968319109381e-5,9.367378735882624e-9,-0.0014641906956874835,2.8157374663821298e-5,9.220801767421116e-9,-0.0014639203699168175,2.793907130398366e-5,9.063972153156974e-9,-0.001463547743641747,2.777469392086682e-5,8.94819704622287e-9,-0.0014631181589848093,2.770971394278009e-5,8.906400483072525e-9,-0.0014626840013922983,2.7759615661242276e-5,8.949152904876544e-9,-0.0014622919778576426,2.7913376841285792e-5,9.067487925009645e-9,-0.0014619755187329977,2.8141209895819113e-5,9.238874894232356e-9,-0.0014617515941158011,2.840319839203045e-5,9.43374255358404e-9,-0.0014616206414562979,2.8657228590944903e-5,9.621316724398479e-9,-0.0014615686117483452,2.88656511750599e-5,9.77438646312151e-9,-0.0014615705063021332,2.9000359578134314e-5,9.872855466969257e-9,-0.0014615948598680729,2.9046009835060456e-5,9.905967029354836e-9,-0.001461608579480747,2.900124632155569e-5,9.873148682283592e-9,-0.0014615815016667387,2.8877991973552452e-5,9.783504838835818e-9,-0.001461490094774729,2.86991569091944e-5,9.65415693656674e-9,-0.0014613200429391873,2.8495379357004293e-5,9.507823393054517e-9,-0.0014610677949529376,2.8301325099769305e-5,9.370010304543687e-9,-0.0014607412749224225,2.8151769243240655e-5,9.266016170060544e-9,-0.001460359934266054,2.807741831222614e-5,9.217802419101563e-9,-0.001459954104262802,2.810012125881796e-5,9.240548810429125e-9,-0.0014595629027557774,2.8227079611997363e-5,9.338632920695437e-9,-0.001459229207373408,2.8444570378339046e-5,9.501348366973721e-9,-0.0014589903312328463,2.8713478214577256e-5,9.699906185659169e-9,-0.0014588646330113623,2.8970928160528702e-5,9.888704607981145e-9,-0.0014588380390138703,2.9143000527045176e-5,1.0014441084658272e-8,-0.0014588592510678298,2.916941323267889e-5,1.0033827086917958e-8,-0.0014588523821274818,2.9030953044343186e-5,9.933409035109415e-9,-0.0014587456644553276,2.8762477106263568e-5,9.739062259576716e-9,-0.001458501091057045,2.844024437257861e-5,9.506799999855063e-9,-0.001458127143420008,2.8150315430128008e-5,9.299622484807696e-9,-0.001457669435461303,2.7957472722960843e-5,9.164649386359438e-9,-0.0014571891196582215,2.788982620398424e-5,9.12181556433836e-9,-0.001456742655817562,2.7940470402478702e-5,9.1652351867303225E-09,-0.0014563700347164715,2.807848674258035e-5,9.271524962474886e-9,-0.0014560912588836175,2.826144010513699e-5,9.409190716108027e-9,-0.0014559078903742333,2.8445360201978687e-5,9.546033498517481e-9,-0.0014558067229891146,2.859145029300421e-5,9.65399985693406e-9,-0.0014557639343839687,2.867025540336573e-5,9.712068997365372e-9,-0.0014557492065120391,2.8664138594720785e-5,9.707890097359682e-9,-0.0014557298001960863,2.8568493551007577e-5,9.638560286519974e-9,-0.0014556745936851589,2.839177608483774e-5,9.510625422205857e-9,-0.0014555579370875656,2.815423714782051e-5,9.339183329667601e-9,-0.0014553629537277198,2.788526924195518e-5,9.14595894628804e-9,-0.0014550838573302906,2.7619586166606147e-5,8.95646433151999e-9,-0.0014547270310782067,2.7392671032165182e-5,8.796565507284847e-9,-0.0014543107698863327,2.7235881381529104e-5,8.688803061502544e-9,-0.0014538636547068316,2.7171559156514596e-5,8.648806078255112e-9,-0.0014534215710303232,2.7208440099601352e-5,8.68207399305285e-9,-0.001453023162629078,2.7337595874378007e-5,8.781285876904159e-9,-0.0014527031545351094,2.7529636906441165e-5,8.924571639210088e-9,-0.0014524833008458392,2.7735059993107925e-5,9.075970709988018e-9,-0.0014523621957538728,2.7890571544417234e-5,9.19001842577633e-9,-0.0014523077282724134,2.793379091660291e-5,9.22219677030714e-9,-0.0014522585937687897,2.7825223830983982e-5,9.144582317840528e-9,-0.0014521403795198652,2.7569149189017554e-5,8.960821255109384e-9,-0.001451893505617349,2.7219493141957345e-5,8.71038541518176e-9,-0.0014514989868257015,2.6862149989671336e-5,8.455773632611902e-9,-0.0014509858377754307,2.6581283086955036e-5,8.257991564297597e-9,-0.0014504161415827162,2.642918854125528e-5,8.154588223766253e-9,-0.0014498591074915373,2.6414918608475404e-5,8.151437565096828e-9,-0.0014493694267968629,2.6511849721997745e-5,8.228438049517682e-9,-0.001448977429522189,2.667403387196817e-5,8.351639483937653e-9,-0.0014486894408670674,2.6851542282472955e-5,8.484552463610772e-9,-0.0014484932417684118,2.700055872143433e-5,8.595494996252945e-9,-0.0014483645278005612,2.7088384874182358e-5,8.661115546099852e-9,-0.0014482724252906584,2.709519725146361e-5,8.667505390416874e-9,-0.0014481837922433506,2.7014246607076915e-5,8.610209915657879e-9,-0.0014480667630384213,2.6851367625677863e-5,8.493819386236972e-9,-0.0014478939985973695,2.6623968239600285e-5,8.331252341426477e-9,-0.0014476458307236476,2.635924813759418e-5,8.142498231074953e-9,-0.00144731311061095,2.6091231865376743e-5,7.952456649511876e-9,-0.0014468992107673786,2.5856444834127285e-5,7.787722099695875e-9,-0.0014464205463444633,2.5688537660867144e-5,7.672567457310853e-9,-0.0014459051593164764,2.5612502082256553e-5,7.624669465502379e-9,-0.0014453891705153014,2.5639343311066898e-5,7.651283894303304e-9,-0.0014449112632642608,2.5762226244715e-5,7.746636370364774e-9,-0.0014445057152640856,2.595501245227754e-5,7.891145026699935e-9,-0.0014441946694093064,2.6173960497131583e-5,8.052917461887092e-9,-0.0014439806475695987,2.636349963132186e-5,8.192048807278225e-9,-0.0014438411873451745,2.646690890427581e-5,8.268250609640819e-9,-0.0014437286296687954,2.6441511003512633e-5,8.251567637578792e-9,-0.001443578444853297,2.6275165731848128e-5,8.1339948899965e-9,-0.0014433273202660133,2.5997083928831833e-5,7.937096006765073e-9,-0.001442936409115405,2.567444219779277e-5,7.709508223593939e-9,-0.0014424086701659907,2.5391506100637698e-5,7.511889392046065e-9,-0.0014417892862947695,2.5219227646515815e-5,7.3950023164529674e-9,-0.001441147821285167,2.5191187270965408e-5,7.382424698161206e-9,-0.0014405525671188652,2.5297654232244746e-5,7.46642211059057e-9,-0.0014400506984845914,2.549697136888099e-5,7.616367322101587e-9,-0.0014396609875323325,2.573422047511667e-5,7.792362299919142e-9,-0.0014393770763216152,2.595731091946943e-5,7.956884889193762e-9,-0.0014391755390315833,2.6126299063856226e-5,8.081435414644157e-9,-0.0014390240648945822,2.621661961154909e-5,8.14872862017226e-9,-0.0014388876944924675,2.6218749094750767e-5,8.152319004850451e-9,-0.0014387330155882449,2.6136521805769236e-5,8.095315097039274e-9,-0.0014385310964584244,2.5985249879172986e-5,7.98902323659588e-9,-0.0014382599562942464,2.578984727441783e-5,7.851630723953415e-9,-0.001437907000473791,2.558258430097201e-5,7.706602007982529e-9,-0.0014374713475980292,2.539984818095332e-5,7.580298299298504e-9,-0.0014369654370357835,2.5277430919184726E-05,7.498481675769508e-9,-0.0014364149450387434,2.524445155724815e-5,7.481837634246073e-9,-0.0014358560907401488,2.531680732424275e-5,7.541239382042651e-9,-0.0014353299421923447,2.549174348391302e-5,7.67395063074306e-9,-0.0014348742608147498,2.5745447771436074e-5,7.862124322155557e-9,-0.0014345144552345818,2.6035180886781052e-5,8.074600559849243e-9,-0.0014342558619612528,2.6306381027453562e-5,8.272200047331242e-9,-0.001434079589311781,2.6503932782313694e-5,8.415841468953633e-9,-0.0014339437223416472,2.658569469617018e-5,8.476099349229682e-9,-0.0014337909162949274,2.653533090809111e-5,8.442148816768944e-9,-0.0014335620776601706,2.6370518693983798e-5,8.32738512813637e-9,-0.0014332136074441035,2.614232716045764e-5,8.16878953155742e-9,-0.0014327328436069065,2.592319956427502e-5,8.01823403658462e-9,-0.0014321447131647473,2.5785451237951414e-5,7.927095900408931e-9,-0.0014315049081303302,2.5778022969174607e-5,7.92972291182139e-9,-0.001430881462440153,2.591187567232032e-5,8.0331743458699e-9,-0.0014303331772278684,2.616035797685171e-5,8.217711692267238e-9,-0.0014298944934438224,2.6472481447071226e-5,8.446469961108673e-9,-0.0014295714210435305,2.6790920056085873e-5,8.67839265732808e-9,-0.0014293466416022695,2.706669905365202e-5,8.878682424407924e-9,-0.0014291886521796292,2.726698482237647e-5,9.024249768378522e-9,-0.0014290605250002484,2.7376714200605378e-5,9.104750656058354e-9,-0.0014289262535661926,2.7396668664601868e-5,9.121125674470142e-9,-0.0014287546376585928,2.734037378186705e-5,9.083361209742851e-9,-0.0014285215854872378,2.7231132652078738e-5,9.008387004102195e-9,-0.0014282118094740023,2.7099446056366132e-5,8.91824477219024e-9,-0.0014278205169719102,2.6980369162120895e-5,8.838165817857077e-9,-0.0014273551041353886,2.6910052790540644e-5,8.794014126806641e-9,-0.001426836217410468,2.692081607168585e-5,8.808668492982802e-9,-0.0014262969989791532,2.703467650249471e-5,8.897360695655925e-9,-0.0014257791653392638,2.7256366225002294e-5,9.062761040100194e-9,-0.0014253252294257476,2.7568169951920956e-5,9.291482753990074e-9,-0.0014249678412150235,2.7929586139618507e-5,9.554082763102208e-9,-0.001424719247272349,2.8283922152095817e-5,9.8099633515569e-9,-0.0014245649540888968,2.857138997614607e-5,1.0016784431585915e-8,-0.001424464819701088,2.874523105273305e-5,1.0141889729331605e-8,-0.0014243621807249333,2.8785614912595313e-5,1.0172034668321106e-8,-0.001424198594399113,2.8706550061364885e-5,1.0118076747905602e-8,-0.0014239298298215845,2.855338333973738e-5,1.0012952173362216e-8,-0.0014235384273948743,2.8391359153604704e-5,9.903332600293055e-9,-0.001423039068963574,2.8288237213866135e-5,9.837163726172813e-9,-0.0014224748046457894,2.8295862255426144e-5,9.850620457112531e-9,-0.0014219048911750486,2.8436423102220665e-5,9.95855573897215e-9,-0.0014213881167722824,2.8698019217145672e-5,1.0151643259449534e-8,-0.001420967450066756,2.9040746996965335e-5,1.0400951762124473e-8,-0.0014206611416994707,2.941022918094345e-5,1.066766982712532e-8,-0.001420462210050991,2.9752840746124096e-5,1.0913884054961945e-8,-0.0014203445464611544,3.0027360180390388e-5,1.111072374244291e-8,-0.0014202718523974758,3.0210625033603962e-5,1.1242230035220288e-8,-0.0014202059478694213,3.0297793467362173e-5,1.130543514634517e-8,-0.0014201126851082163,3.0299379741317255e-5,1.1308212546961511e-8,-0.001419965354967399,3.023722740125861e-5,1.126641797154726e-8,-0.0014197463754245395,3.0140745523510838e-5,1.1201222166966375e-8,-0.0014194482287997765,3.004374201377961e-5,1.1136832656018542e-8,-0.0014190743137684472,2.9981438465230445e-5,1.1098298258684281e-8,-0.001418639809555389,2.9986901963587264e-5,1.1108885328964141e-8,-0.001418171968272546,3.008617815680982e-5,1.1186579824169502e-8,-0.0014177085861886171,3.0291942135319834e-5,1.133964646008498e-8,-0.001417293059956346,3.05967206924271e-5,1.1562003200599675e-8,-0.0014169650708668305,3.0968510049347896e-5,1.1830355814926381e-8,-0.0014167481369272308,3.135278601208798e-5,1.210581797947972e-8,-0.0014166384270926171,3.168371673086619e-5,1.2341922339142801e-8,-0.001416601011852032,3.1903068064781095e-5,1.2497950944243014e-8,-0.001416577597530908,3.197990561297152e-5,1.2552765821321245e-8,-0.001416504023895075,3.192205189348772e-5,1.2512782170450044e-8,-0.0014163303334027324,3.177388113563488e-5,1.241023118085146e-8,-0.0014160352058320256,3.160197306166359e-5,1.2292773285630224e-8,-0.00141563020412267,3.147525183817631e-5,1.2209223647116733e-8,-0.001415154182806351,3.144686499940079e-5,1.219665427065755e-8,-0.0014146612944608804,3.1542588220823e-5,1.2272337128455885e-8,-0.0014142068212377667,3.17574992652059e-5,1.2431711044918489e-8,-0.0014138345495532411,3.206030619328251e-5,1.2651790954942593e-8,-0.0014135683760217552,3.240316711893786e-5,1.2898338055852669e-8,-0.0014134095167311366,3.273394154711765e-5,1.3134557510283644e-8,-0.0014133391618895421,3.300757270905415e-5,1.3329020931988017e-8,-0.0014133249690354472,3.31939594183018e-5,1.34610409333419e-8,-0.0014133289896605121,3.328119077205221e-5,1.3522794560786908e-8,-0.001413314822460721,3.3274656159752014e-5,1.3518607273504532e-8,-0.0014132527079583823,3.3193518643689525e-5,1.3462443644765452e-8,-0.0014131223461608018,3.3066195373724894e-5,1.3374722960227905e-8,-0.001412913992766144,3.292604615376844e-5,1.3279258055873786e-8,-0.0014126286522506636,3.2807704536436217e-5,1.3200599557144906e-8,-0.0014122779793304208,3.274378481004234e-5,1.3161617579820244e-8,-0.0014118840527596287,3.276134215889836e-5,1.318093997452497e-8,-0.0014114785988180107,3.287744387268909e-5,1.3269863918137662e-8,-0.0014111005438624472,3.309364278437632e-5,1.3428626290622916e-8,-0.0014107903444190032,3.339035361538781e-5,1.3642698341029341e-8,-0.0014105801213301545,3.372401496582465e-5,1.388102605623399e-8,-0.0014104809172316352,3.403140528598448e-5,1.4099169038639324e-8,-0.0014104721889999377,3.4244418459823575e-5,1.4249623837810556e-8,-0.0014105012730983308,3.431313016865975e-5,1.4297897851110098e-8,-0.0014104976530675871,3.4227232153276674e-5,1.4237483279052317e-8,-0.0014103978203613941,3.4023102917727105e-5,1.409478258989675e-8,-0.0014101683041605874,3.37710788967813e-5,1.3920030577394821e-8,-0.0014098152448564095,3.3549879175073367e-5,1.3769043937615413e-8,-0.0014093780596700428,3.342166325020871e-5,1.3685419104499984e-8,-0.0014089135400348065,3.341756238018929e-5,1.3690309226175862e-8,-0.0014084788334548454,3.3535493238112093e-5,1.37811189010826e-8,-0.0014081186845767038,3.374669781848928e-5,1.3936497322555077e-8,-0.0014078585339577186,3.400633332696204e-5,1.4124144409347155e-8,-0.0014077028508541673,3.42645878758073e-5,1.4308805334751806e-8,-0.0014076373664685578,3.4476340111075574e-5,1.4459025629545484e-8,-0.0014076339312917433,3.4608360343685586e-5,1.4552028310657353e-8,-0.0014076568208633863,3.464345854701809e-5,1.457641017245677e-8,-0.001407669277186434,3.458141606859998e-5,1.4532638817739162e-8,-0.0014076391876356137,3.443714237304597e-5,1.4431695615751243e-8,-0.0014075431589499628,3.42369134134312e-5,1.4292440206539112e-8,-0.0014073687088618709,3.401369363319955e-5,1.4138337135936162e-8,-0.0014071148025871514,3.380247774740365e-5,1.3994150056515684e-8,-0.0014067912957618034,3.363619137526845e-5,1.3882976655598566e-8,-0.001406417785833611,3.3542132876375727e-5,1.3823657520053249e-8,-0.0014060220696082155,3.3538605100390865e-5,1.3828389059174037e-8,-0.0014056380007306819,3.363132267047934e-5,1.3900311168766636e-8,-0.0014053019647113963,3.3809476163547754e-5,1.403098639393186e-8,-0.0014050467952829435,3.404235090138576e-5,1.4198316878603361e-8,-0.0014048925106380783,3.427900969237467e-5,1.4366522015636952e-8,-0.0014048352740607154,3.4454830578689884e-5,1.4490717899879615e-8,-0.0014048394576729162,3.450785686877302e-5,1.452817586539771e-8,-0.0014048405652307403,3.4402642110255266e-5,1.4454790297227312e-8,-0.001404764049178016,3.415061768516878e-5,1.4279243287251102e-8,-0.0014045544794032856,3.381223147440442e-5,1.4044512501709342e-8,-0.001404199019517501,3.34753415760048e-5,1.3812662721467575e-8,-0.0014037308928993113,3.322120032523223e-5,1.3640780805957817e-8,-0.0014032126628860826,3.309751484531842e-5,1.3561886833224022e-8,-0.0014027118105852483,3.311012467826726e-5,1.3579138976547671e-8,-0.0014022815504324637,3.3230920394382554e-5,1.3671690150678322e-8,-0.0014019518800177807,3.341272421638346e-5,1.3805518700988216e-8,-0.0014017290980962978,3.360354473780993e-5,1.3943711301648619e-8,-0.0014016000243125806,3.375694744860536e-5,1.4053807349603574e-8,-0.001401537920759662,3.383830386691697e-5,1.4112051071441454e-8,-0.001401508516602354,3.38278961316903e-5,1.4105333153706423e-8,-0.0014014756088146735,3.372177220527613e-5,1.4031568509718768e-8,-0.0014014060660440912,3.353076489929489e-5,1.3898885331730495e-8,-0.0014012739860668733,3.327793091957308e-5,1.3723815329935129e-8,-0.0014010636973225197,3.2994742987017955e-5,1.3528667448275764e-8,-0.0014007713279077503,3.271646976821572e-5,1.3338315101143095e-8,-0.0014004048383781237,3.247734073521475e-5,1.3176767910392181e-8,-0.001399982720160362,3.230609707347399e-5,1.3063963984102755e-8,-0.0013995317115542282,3.222223618554686e-5,1.3013065431940527e-8,-0.0013990837824146862,3.223298100013896e-5,1.3028362806501945e-8,-0.0013986724408224693,3.2330914871978444e-5,1.310378977963939e-8,-0.0013983280897938944,3.249234472603756e-5,1.3222059543851011e-8,-0.0013980719157413676,3.26771022098923e-5,1.3354806377875613e-8,-0.001397908301055983,3.2831582187595467E-05,1.3464847011626819e-8,-0.001397817347062273,3.289747667782527e-5,1.3512189019105797e-8,-0.001397751512132713,3.28277047548693e-5,1.3464871106866769e-8,-0.0013976423203658295,3.260691801970788e-5,1.3312974762696126e-8,-0.0013974208313565252,3.2266892279175194e-5,1.3079220779759064e-8,-0.0013970462170215551,3.188350281420138e-5,1.2816866134850941e-8,-0.001396526429072313,3.15504266134185e-5,1.2591347003175733e-8,-0.0013959162362914407,3.134208482490942e-5,1.2454319312828303e-8,-0.0013952934212709952,3.12876940613365e-5,1.2425488800691024e-8,-0.0013947290248052181,3.1368994960239776e-5,1.2491155941132685e-8,-0.0013942677926455445,3.153656609401135e-5,1.2615901943459306e-8,-0.001393923604268954,3.173094679442987e-5,1.2757639356311874e-8,-0.0013936850245932673,3.189863660685751e-5,1.287894027262053e-8,-0.0013935243292366379,3.20005016684368e-5,1.295286703830315e-8,-0.0013934059148908537,3.2014351751696166e-5,1.2964583482053157e-8,-0.0013932926868055352,3.193431439306784e-5,1.29106853876459e-8,-0.0013931506171936453,3.176890244780789e-5,1.279767711238989e-8,-0.0013929521622677431,3.153852371658084e-5,1.2640170940633758e-8,-0.0013926789463034916,3.1272453315631026e-5,1.2458806214965603e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_4.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_4.json new file mode 100644 index 000000000..fb9e3f35a --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_4.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":4000,"numberOfSamples":1000,"samples":[-0.0013923237156324762,3.10051313115372e-5,1.227772476593132e-8,-0.0013918913030339685,3.0771749723490945e-5,1.2121506307793586e-8,-0.0013913982265213998,3.060338976954708e-5,1.2011722091998317e-8,-0.0013908707040811456,3.052231698115309e-5,1.1963565646016446e-8,-0.001390341194667023,3.053811122326968e-5,1.198311590315129e-8,-0.0013898437960375297,3.064516965374932e-5,1.206567850949141e-8,-0.0013894089283486013,3.0821985171837794e-5,1.219550046257788e-8,-0.0013890577325521491,3.103246124664618e-5,1.234697235237071e-8,-0.001388796542557306,3.12295787680487e-5,1.2487412403812631e-8,-0.0013886120720738905,3.136210718279558e-5,1.2581786671309725e-8,-0.0013884688947041909,3.1385084006792996e-5,1.2599819994917749e-8,-0.0013883119458332274,3.127360474065753e-5,1.2525244839418013e-8,-0.0013880771300425396,3.103666131759266e-5,1.2365079707027838e-8,-0.0013877108551321243,3.072388276790292e-5,1.2154123117817592e-8,-0.0013871929430152989,3.0416606360292832e-5,1.1948741207200948e-8,-0.001386550391714903,3.0201205713724095e-5,1.1808429582903155e-8,-0.0013858506737383077,3.01357997768827e-5,1.1772803776767341e-8,-0.0013851759104291312,3.0229273883448915e-5,1.1847175892297428e-8,-0.001384592881220668,3.0443874540562336e-5,1.2004550146250928e-8,-0.0013841349373795028,3.0716035009628255e-5,1.2200281016361826e-8,-0.0013838008265632472,3.098058540822912e-5,1.2389009867920565e-8,-0.0013835645353088798,3.118712181259742e-5,1.2536034707260684e-8,-0.0013833877106148682,3.130621279611001e-5,1.2621499602221395e-8,-0.0013832296076505604,3.132862793970199e-5,1.2639667607070031e-8,-0.0013830533398082588,3.12615629520694e-5,1.2596119024238894e-8,-0.0013828292717648978,3.1124447793189026e-5,1.2504739208443173e-8,-0.001382536894290198,3.094526718665489e-5,1.238515875044467e-8,-0.001382166093661862,3.0757242436986546e-5,1.2260502826500002e-8,-0.0013817180828804721,3.059536687843876e-5,1.2155030689028627e-8,-0.0013812057662645032,3.0492356610198686e-5,1.2091316281131741e-8,-0.001380652965115511,3.0473944416237442e-5,1.2086924984252354e-8,-0.0013800918794172976,3.055405387965315e-5,1.2151015510603047e-8,-0.0013795585330693598,3.073089776278415e-5,1.2281664264941277e-8,-0.0013790865545975047,3.098519781713838e-5,1.2464780864846123e-8,-0.0013787002512115332,3.128152698517288e-5,1.2675280274755086e-8,-0.0013784083744284533,3.1573186320784075e-5,1.2880703491497357e-8,-0.0013782000273174174,3.181021399913377e-5,1.3046891803617532e-8,-0.0013780438976636682,3.19495350745652e-5,1.3144947940134445E-08,-0.0013778917807731484,3.1965865743675875e-5,1.3158522917130986e-8,-0.0013776871187557247,3.186125601721507e-5,1.3090054814128084e-8,-0.0013773784345414448,3.167005542915762e-5,1.2963872114938864e-8,-0.0013769355296510653,3.145540027821075e-5,1.2823586040322064e-8,-0.0013763632310821636,3.129451925350386e-5,1.2721957602677264e-8,-0.0013757051938257864,3.12548297658547e-5,1.2704580862237566e-8,-0.0013750325167593762,3.136980980661643e-5,1.2793513871866098e-8,-0.0013744200205683455,3.162705495398507e-5,1.297932656913296e-8,-0.001373921486003332,3.197529339541822e-5,1.3226141868971426e-8,-0.0013735559011152846,3.2345581764334165e-5,1.348632479099502e-8,-0.001373308834962327,3.267443076739067e-5,1.371638565723486e-8,-0.0013731440063741707,3.2918760928589506e-5,1.3887174851188765e-8,-0.0013730169969555664,3.306017025212218e-5,1.3986670884338575e-8,-0.001372885707505598,3.310177282032628e-5,1.4017645484980559e-8,-0.0013727161916267327,3.3062157152929236e-5,1.3993385650784678e-8,-0.0013724849650755444,3.2969528124314865e-5,1.3933613214447525e-8,-0.0013721795043743403,3.2857132549704686e-5,1.3861350571725312e-8,-0.001371798199420233,3.275975393211377e-5,1.3800541749182052e-8,-0.001371350267391638,3.2710546394120883e-5,1.3773879566233536e-8,-0.0013708554660210265,3.273748651144435e-5,1.3800332746004124e-8,-0.0013703429392595617,3.285908614832062e-5,1.3892159705457934e-8,-0.0013698482842253537,3.3079732505826116e-5,1.4051723281032588e-8,-0.0013694081789119867,3.33859216188847e-5,1.4269017354682299e-8,-0.0013690527752354515,3.3745292715916165e-5,1.4521206280880815e-8,-0.0013687973523058758,3.411026251376824e-5,1.4775341685527618e-8,-0.001368635864809167,3.442685430142285e-5,1.4994571911094206e-8,-0.001368539190809793,3.464725058126877e-5,1.5146764379461272e-8,-0.0013684596653155585,3.474271507765218e-5,1.5213225547749854e-8,-0.001368341412275528,3.471292842213015e-5,1.519483961915156e-8,-0.0013681340963783179,3.458864103148684e-5,1.5113572919781048e-8,-0.001367806641243441,3.442624486265195e-5,1.50084742827696e-8,-0.0013673571913396174,3.429481060775766e-5,1.492663952720893e-8,-0.0013668159712882611,3.425816744323766e-5,1.4910976651613327e-8,-0.0013662389537410337,3.4356679623137404e-5,1.4987969233571176e-8,-0.0013656929127156684,3.45948313307106e-5,1.5159539607809455e-8,-0.0013652362239514341,3.493996318255312e-5,1.540252269790559e-8,-0.0013649025854399397,3.533339206451559e-5,1.5676457844807535e-8,-0.001364694017006319,3.5709311516460834e-5,1.5936510012581336e-8,-0.0013645848390629765,3.6013317990182196e-5,1.6146000719145376e-8,-0.001364533006244744,3.6213785847992433e-5,1.6284003030435945e-8,-0.0013644928514191061,3.630413358810897e-5,1.6346724249025713e-8,-0.0013644247321696538,3.629841553527456e-5,1.6344369702902035e-8,-0.0013643001276189908,3.622421100892573e-5,1.6296216699097295e-8,-0.0013641030557909385,3.611585301733881e-5,1.6225972675099123e-8,-0.001363829489218644,3.6009284510185593e-5,1.6158272516967093e-8,-0.0013634861732545276,3.59384398039273e-5,1.6116209694143087e-8,-0.0013630895393642458,3.593237657339973e-5,1.6119355456194334e-8,-0.0013626646638417342,3.601230966247092e-5,1.618170797397962e-8,-0.001362243629102119,3.61880268938273e-5,1.6309266089582144e-8,-0.0013618622841067652,3.64538655276576e-5,1.6497393820657673e-8,-0.0013615544772974737,3.6785502430891855e-5,1.6728827194428735e-8,-0.0013613437161679772,3.713991173468955e-5,1.697386187057922e-8,-0.001361234021080087,3.746108911824493e-5,1.719439828116546e-8,-0.0013612037638524796,3.7692536866159856e-5,1.7352457140518053e-8,-0.001361206847971344,3.779396838960132e-5,1.742144636974678e-8,-0.0013611832374142226,3.7756031020244054e-5,1.7396011201743785e-8,-0.001361076191644119,3.7606086154550635e-5,1.7295762883204998e-8,-0.0013608496577971183,3.7401677631123275e-5,1.716059227166306e-8,-0.0013604990488915285,3.721408821670011e-5,1.7039232838343093e-8,-0.0013600520125571307,3.710835900255645e-5,1.697551683056106e-8,-0.0013595600099726545,3.712640498271043e-5,1.699695432191236e-8,-0.0013590841935409244,3.727760024130748e-5,1.71086275657347e-8,-0.001358679890204125,3.7538440708709115e-5,1.7293378278633092e-8,-0.00135838372132039,3.7860514706880266e-5,1.7517577456580113e-8,-0.0013582064390924846,3.818407848658802e-5,1.7740504047095585e-8,-0.0013581329272131877,3.845318903981301e-5,1.7924558906917483e-8,-0.0013581286541984837,3.862806850028087e-5,1.804345582610699e-8,-0.0013581498661130592,3.869159882723496e-5,1.8086397228283904e-8,-0.0013581539476281528,3.8649261142348775e-5,1.8057850041261867e-8,-0.0013581071226586598,3.8524189345567815e-5,1.7974088393725628e-8,-0.0013579883897526658,3.835008509330396e-5,1.7858356144320932e-8,-0.00135779018044884,3.8164384929534315e-5,1.7736239335068338e-8,-0.001357517027048097,3.800295694389865e-5,1.7632074255281237e-8,-0.0013571835099064594,3.789645286761099e-5,1.7566453802397066e-8,-0.0013568122323385436,3.786770844912354e-5,1.7554432313878906e-8,-0.0013564319146861178,3.792940545542113e-5,1.760394100218013e-8,-0.0013560751230173448,3.808144637277682e-5,1.771409396726125e-8,-0.001355774723096159,3.830809315615486e-5,1.7873437098055103e-8,-0.0013555581129589143,3.85759738967685e-5,1.805883775217439e-8,-0.0013554390847187276,3.883530834118127e-5,1.8236503204011578e-8,-0.001355409076240439,3.9027250633763036e-5,1.836699003058032e-8,-0.0013554321238842734,3.909874292882928e-5,1.8415131641263553e-8,-0.0013554490528045462,3.90218298649933e-5,1.836291168093209e-8,-0.0013553934777036426,3.88088274293409e-5,1.8219570358978306e-8,-0.0013552148739573212,3.8513364752411945e-5,1.8022193158569097e-8,-0.0013548976458011926,3.821394753241361e-5,1.7824422483376295e-8,-0.0013544662886432806,3.7987376502045904e-5,1.767824374087245e-8,-0.001353975167144596,3.788495877740173e-5,1.7617747380746665e-8,-0.0013534897169433626,3.792082265498023e-5,1.765132964873523e-8,-0.0013530679623867672,3.807359000944715e-5,1.776318309780284e-8,-0.0013527479846985185,3.82970266342332e-5,1.7920945154219862e-8,-0.0013525427737545379,3.8534126622979775e-5,1.8085549434599747e-8,-0.0013524413684721215,3.8730475725509086e-5,1.8220348872787433e-8,-0.0013524143580498815,3.8844550459139665e-5,1.829793515757917e-8,-0.0013524218120327396,3.885388259987187e-5,1.830403299861606e-8,-0.0013524218425320289,3.8756778190668846e-5,1.8238389323156565e-8,-0.0013523781464381873,3.857000249417001e-5,1.8113029207340084e-8,-0.0013522652859119853,3.832360437107422e-5,1.7948697828581297e-8,-0.0013520711816035556,3.805446144349454e-5,1.7770522740602527e-8,-0.0013517970474576544,3.7800026057570636e-5,1.760383303417335e-8,-0.0013514555502732262,3.759328234789039e-5,1.7470765883749638e-8,-0.0013510681406707162,3.745922197053802e-5,1.7387859156658665e-8,-0.0013506622145259056,3.741251692416933e-5,1.7364450412879974e-8,-0.0013502682953014952,3.7455843878886433e-5,1.7401577299135237e-8,-0.0013499170098815133,3.757843888576176e-5,1.749114206947162e-8,-0.0013496352319221148,3.775487577483726e-5,1.7615323797154796e-8,-0.001349440649488639,3.794495617766193e-5,1.7746750386563e-8,-0.0013493347424008647,3.809671819615431e-5,1.7850659872577422e-8,-0.001349295890582923,3.8155046902679206e-5,1.7890635669466993e-8,-0.0013492766959825838,3.807708327935155e-5,1.783874654599152e-8,-0.0013492110735612106,3.785133903622449e-5,1.768815260529381e-8,-0.001349033855976422,3.751108479626499e-5,1.7461969909133265e-8,-0.0013487069795288752,3.71303580506857e-5,1.7210535401503925e-8,-0.0013482379377772538,3.67993136705882e-5,1.6994726215196717e-8,-0.001347678208637462,3.659042766946213e-5,1.6863046213677397e-8,-0.0013471024913643088,3.6534216931232214e-5,1.6835204236635903e-8,-0.0013465817610538201,3.661531138061667e-5,1.6899639174625656e-8,-0.0013461637307948591,3.67855921967629e-5,1.702274689456107e-8,-0.0013458659040266978,3.698362593147122e-5,1.716236688366139e-8,-0.0013456786096961092,3.715150481672573e-5,1.7279353443021854e-8,-0.0013455729607305563,3.7245547989349e-5,1.7344764650321256e-8,-0.0013455098437546319,3.724113849988471e-5,1.7342896275356996e-8,-0.0013454479816408654,3.713333537401668e-5,1.7271384802952297e-8,-0.0013453504339775678,3.693472237791048e-5,1.7139497446621565e-8,-0.0013451893773290563,3.66714125531848e-5,1.69653115025737e-8,-0.001344949053305138,3.6377906041960216e-5,1.677225728879621e-8,-0.0013446268270830342,3.6091487557028635e-5,1.658542561013439e-8,-0.0013442324429496473,3.584683872566402e-5,1.642801203779135e-8,-0.0013437858000863968,3.567151610583387e-5,1.6318286339007397e-8,-0.0013433138090793446,3.5582718952246464e-5,1.6267381969080993e-8,-0.0013428468552322856,3.5585336135370534e-5,1.6277959343087233e-8,-0.0013424151246411572,3.567102736278635e-5,1.6343650045473796e-8,-0.0013420448217986622,3.581815905326798e-5,1.6449191850671144e-8,-0.0013417540843769415,3.5992621037087415e-5,1.6571231526067074e-8,-0.0013415482762467888,3.6150103914661236e-5,1.6680073457991738e-8,-0.0013414149103668283,3.624123041516313e-5,1.6743183400191018e-8,-0.0013413198868642417,3.622112481074397e-5,1.6731446982117347e-8,-0.00134120845189209,3.606369069563323e-5,1.662842184473864e-8,-0.0013410151654745213,3.577732086480887e-5,1.644054815603201e-8,-0.0013406846000409867,3.5413460407537786e-5,1.6202722853245097e-8,-0.0013401964609990825,3.505743910760731e-5,1.597215167212452e-8,-0.001339580425708274,3.479926151774641e-5,1.5808809507200667e-8,-0.0013389081886428587,3.4697739505285814e-5,1.5751417893888703e-8,-0.0013382653066040724,3.475913717423584e-5,1.5803205836748927e-8,-0.0013377198411129057,3.494136132320177e-5,1.593492656261746e-8,-0.0013373043650111932,3.517656334298736e-5,1.610030358752367e-8,-0.001337015439682562,3.5396327466275055e-5,1.6253166407767607e-8,-0.0013368239990238354,3.5548502293726705e-5,1.6358821610884963e-8,-0.0013366882809558854,3.560374914900627e-5,1.639832805964985e-8,-0.001336564467218173,3.55549452941308e-5,1.636783817572624e-8,-0.001336413776905145,3.541320348266067e-5,1.627564290331889e-8,-0.0013362066349266496,3.520293709170862e-5,1.6138666700184393e-8,-0.0013359249232274644,3.4956909941254224e-5,1.5979096337218204e-8,-0.001335562924155841,3.4711420854670354e-5,1.582122151313896e-8,-0.0013351271377057652,3.4501629448674695e-5,1.568840971408109e-8,-0.0013346349529169633,3.435711455278746e-5,1.5600199028356044e-8,-0.0013341121333342526,3.429797828590833e-5,1.5569686455152157e-8,-0.0013335892705868344,3.433199575848479e-5,1.5601580165570786e-8,-0.0013330975858291425,3.4453164621146024e-5,1.5691228226897585e-8,-0.0013326644706178011,3.464175000353744e-5,1.5824749599259128e-8,-0.0013323090899715643,3.4865868704546576e-5,1.5980301002253026e-8,-0.001332038338966892,3.508467362609938e-5,1.6130447896255385e-8,-0.0013318434113794785,3.525330077002587e-5,1.6245627748951825e-8,-0.0013316975322695253,3.5330051294305984e-5,1.629891139049964e-8,-0.001331556286785722,3.528619312938393e-5,1.6272293810409786e-8,-0.0013313628892067757,3.5117465072944155e-5,1.6163989779264318e-8,-0.0013310606240185723,3.485372509921916e-5,1.5994525193249938e-8,-0.001330612092239529,3.4560074860567006e-5,1.5807325007709106e-8,-0.0013300188819388664,3.432251695865668e-5,1.5659203035008636e-8,-0.0013293294672254824,3.4218415257834896e-5,1.5600856484188996e-8,-0.0013286258106659328,3.4284781738908746e-5,1.565595284409048e-8,-0.0013279927272366466,3.45034557497139e-5,1.5811466092247673e-8,-0.001327487245815521,3.481218305757908e-5,1.6025241776050835e-8,-0.0013271243297834456,3.5132573390047304e-5,1.6244759544611692e-8,-0.0013268819281744182,3.539726971412401e-5,1.6425301589944376e-8,-0.0013267165573191055,3.556482846968116e-5,1.6539830337867083e-8,-0.0013265791200544272,3.5621827657685704e-5,1.65802341767557e-8,-0.0013264257556151145,3.5577571686315266e-5,1.6553560503722946e-8,-0.0013262233226004878,3.5456646993180176e-5,1.6476832678516347e-8,-0.0013259512363842734,3.529220284957108e-5,1.637245418374682e-8,-0.001325601512184336,3.512067149730725e-5,1.626470172512635e-8,-0.0013251780734556981,3.497753493359976e-5,1.6177001160356565e-8,-0.0013246955832461917,3.4893601735033355e-5,1.6129548566876927e-8,-0.0013241776457557696,3.48914999010468e-5,1.6137021291032074e-8,-0.001323654076904617,3.4982458503977466e-5,1.6206426975212878e-8,-0.001323157041794967,3.5163901163299414e-5,1.633548781930137e-8,-0.0013227162371304468,3.5418581049974166e-5,1.651211397605036e-8,-0.001322353687199993,3.571581068946272e-5,1.6715367990939248e-8,-0.0013220789387146789,3.601504810064792e-5,1.6918061706656873e-8,-0.0013218855424575772,3.627176280866538e-5,1.7090842854582353e-8,-0.0013217496703317407,3.644508967537851e-5,1.720733490398808e-8,-0.0013216315923340778,3.65064979819164e-5,1.7249749168249524e-8,-0.0013214807524120568,3.644842841848515e-5,1.7214291107647377e-8,-0.0013212451222116156,3.6291038759722376e-5,1.711523751546295e-8,-0.0013208846495029996,3.60839095678969e-5,1.6985751198887913e-8,-0.0013203863550454039,3.5898854230369885e-5,1.6873006904681262e-8,-0.0013197752519399667,3.581166273538234e-5,1.682623169287687e-8,-0.0013191132255276836,3.587626651540886e-5,1.6879911863534467e-8,-0.0013184815790603076,3.610241659999537e-5,1.7039381967031404e-8,-0.0013179528033887597,3.645020189165614e-5,1.7277474450637978e-8,-0.0013175658344386403,3.684610326885073e-5,1.7545256584706124e-8,-0.0013173174371027003,3.721139594219093e-5,1.7790800848516823e-8,-0.0013171711591591722,3.7487162393554715e-5,1.797564920289059e-8,-0.0013170751083556422,3.764583818573417e-5,1.8082333520008842e-8,-0.0013169783809209286,3.768958704883004e-5,1.8113134460390254e-8,-0.001316841058972772,3.764169488899078e-5,1.8084193168326844e-8,-0.001316637900558923,3.7536910324560003e-5,1.8018963620713753e-8,-0.0013163581227781179,3.74137736701684e-5,1.7943079177386814e-8,-0.0013160036253867771,3.730942928907114e-5,1.7880963442603383e-8,-0.0013155869869080489,3.725613444561233e-5,1.7853614375631473e-8,-0.0013151295414577234,3.7278505354125304e-5,1.787686235519351e-8,-0.0013146592408699255,3.7390914042800114e-5,1.7959684433815758e-8,-0.0013142077768859126,3.759497729467439e-5,1.8102557862085905e-8,-0.0013138065061219567,3.787768395385184e-5,1.829626511989185e-8,-0.0013134811566555547,3.821118959139425e-5,1.852186865762894e-8,-0.0013132460042088404,3.855535190871637e-5,1.8752556581883928e-8,-0.0013130988888896927,3.886358760935178e-5,1.895768052314085e-8,-0.0013130187880983333,3.9091668685304416e-5,1.9108648012779857e-8,-0.0013129673945528086,3.920788927157972e-5,1.9185567048502283e-8,-0.001312895240496861,3.920217618512819e-5,1.918302681873874e-8,-0.001312751730863596,3.9091588709663886e-5,1.911338071545348e-8,-0.0013124973851131767,3.892009752658912e-5,1.9006243630838438e-8,-0.0013121156803837925,3.875132474201483e-5,1.8903462645629538e-8,-0.0013116210944716046,3.865427657691962e-5,1.884969011796569e-8,-0.0013110596023093825,3.868436788208665e-5,1.8880112079492577e-8,-0.0013104989534392041,3.8865074759319735e-5,1.9008779400316116e-8,-0.0013100096397849926,3.917783531577995e-5,1.9222392671536106e-8,-0.001309642829716195,3.9566441267412706e-5,1.9483464693369486e-8,-0.0013094148936341004,3.995569860122959e-5,1.974262974906959e-8,-0.0013093055437344233,4.027611457180882e-5,1.9954738594955732e-8,-0.001309269039156997,4.048329051082387e-5,2.0091415425642147e-8,-0.0013092512762208149,4.0565121305456764e-5,2.0145608286767512e-8,-0.001309204630257768,4.053753924890765e-5,2.012862157893427e-8,-0.0013090962818779034,4.043433842048082e-5,2.0063277178960123e-8,-0.0013089102465701447,4.029664197237238e-5,1.997689758602726e-8,-0.0013086455823332675,4.0164989376255385e-5,1.9896096938048397e-8,-0.0013083132488531785,4.0074480065967925e-5,1.984365052124649e-8,-0.0013079330725531747,4.005204604799757e-5,1.9836785608003348e-8,-0.0013075312073712847,4.011466197911539e-5,1.9886069633644747e-8,-0.001307137746835643,4.026767679567208e-5,1.9994358344677895e-8,-0.0013067837953618638,4.0503094151805196e-5,2.01557240211866e-8,-0.001306497350497541,4.079836018355392e-5,2.0354765247593485e-8,-0.0013062978171497592,4.111688713507512e-5,2.0567103458832157e-8,-0.0013061898867567608,4.141184316071489e-5,2.076202115095573e-8,-0.0013061586859034154,4.163420723263055e-5,2.0907824211338083e-8,-0.001306168888940125,4.174442656977121e-5,2.097944515467198e-8,-0.0013061699709006594,4.1724685296821706e-5,2.0966324787464215e-8,-0.0013061076049721034,4.1587191985985025e-5,2.0877595932876798e-8,-0.0013059383156452651,4.137443165518275e-5,2.0741958445759947e-8,-0.0013056425938951044,4.115010375057371e-5,2.060146632532868e-8,-0.0013052319085176942,4.098302152604378e-5,2.0500810520890916e-8,-0.001304747148248314,4.092874780265062e-5,2.0475326047336553e-8,-0.0013042487662768554,4.101434730128175e-5,2.0541288681716853e-8,-0.0013038012226081626,4.1230688242288156e-5,2.0691321547541416e-8,-0.0013034559571685768,4.153480564579156e-5,2.0896370294196396e-8,-0.0013032379646765557,4.186207205593781e-5,2.111390047210881e-8,-0.0013031404096450596,4.214456168589532e-5,2.1299885763046148e-8,-0.0013031290193728036,4.232935992827865e-5,2.1420571741681682e-8,-0.0013031540596875038,4.23905340975399e-5,2.1460031357444974e-8,-0.0013031647722243158,4.233156537247573e-5,2.1421513055924925e-8,-0.0013031210288061141,4.217942322107834e-5,2.132339132411696e-8,-0.0013029993698451085,4.19743987627646e-5,2.1192421768565933e-8,-0.0013027936105723457,4.175999540557228e-5,2.1057114924379603e-8,-0.0013025120277159838,4.157542941681899e-5,2.094288448231488e-8,-0.0013021733414850117,4.145125605159004e-5,2.0869268627645957e-8,-0.001301802931785606,4.1407329810052036e-5,2.08486684580033e-8,-0.0013014297605223135,4.1451908374797514e-5,2.0885812894513818e-8,-0.001301083724057496,4.158098532303902e-5,2.097737756976615e-8,-0.0013007927456693646,4.177756479690925e-5,2.1111607157953057e-8,-0.0013005788777021498,4.201134797256275e-5,2.126826146359011e-8,-0.0013004531008736547,4.224008178027535e-5,2.1419659516259312e-8,-0.0013004095063849311,4.241435176037529e-5,2.1533904163364884e-8,-0.001300421059288809,4.248719684661846e-5,2.1581120022324038e-8,-0.0013004404355749176,4.2427837091928494e-5,2.154224223145945e-8,-0.0013004089398097013,4.223528221728633e-5,2.1417667998620045e-8,-0.001300273032166463,4.194483810430357e-5,2.1231287584532605e-8,-0.0013000028044365167,4.162178844603964e-5,2.1026176296912758e-8,-0.0012996038559836165,4.13426408192214e-5,2.0852193780685487e-8,-0.0012991166051237216,4.117141562699113e-5,2.075042537733095e-8,-0.0012986036072820868,4.11409724530234e-5,2.0741091404972655e-8,-0.00129813093698426,4.1245817779201306e-5,2.0819172199719124e-8,-0.0012977508063343123,4.144686388868798e-5,2.095795336418839e-8,-0.001297490230837804,4.168441992169005e-5,2.1117875653405696e-8,-0.0012973474395914163,4.1894427134593377e-5,2.1257279803455193e-8,-0.001297295439153459,4.2023506126082147e-5,2.1342116234441085e-8,-0.001297290782074011,4.2039616230905444e-5,2.135260920238544e-8,-0.0012972848326498105,4.193654440887813e-5,2.1285844007437435e-8,-0.0012972345579685953,4.173200901824314e-5,2.1154255926592056e-8,-0.0012971103085002236,4.146082617494708e-5,2.0981029477300475e-8,-0.0012968992859630204,4.116578087591e-5,2.0794135694006106e-8,-0.0012966049398672192,4.0888917956883526e-5,2.062073980233298e-8,-0.0012962436295018886,4.066503581169255e-5,2.048307865442981e-8,-0.0012958401889284622,4.051793533458231e-5,2.039611146731544e-8,-0.0012954236654983476,4.045897416475759e-5,2.036662737785466e-8,-0.001295023782419015,4.0486965044612695e-5,2.039320583348045e-8,-0.0012946679941183582,4.058855472756083e-5,2.04665171281949e-8,-0.001294378612670228,4.0738730472340536e-5,2.056977240662803e-8,-0.0012941693814056939,4.0901748941956324e-5,2.0679500965812705e-8,-0.0012940411451917645,4.1033526442706687e-5,2.0767257575044023e-8,-0.0012939771911233996,4.108715604463087e-5,2.0803239961642293e-8,-0.0012939403977219072,4.102298074380838e-5,2.0762689854466084e-8,-0.0012938758566673656,4.082263405184535e-5,2.0634736809638925e-8,-0.0012937224662835883,4.050242606522025e-5,2.04308134609819e-8,-0.0012934330065076513,4.0117530900919203e-5,2.0187204767311665e-8,-0.00129299496709262,3.974958987689844e-5,1.995693470396842e-8,-0.0012924399284722028,3.947942732467301e-5,1.97920270271869e-8,-0.0012918341252307118,3.935776650460108e-5,1.9724509449887175e-8,-0.0012912547182092019,3.938930857514804e-5,1.97562193674393e-8,-0.001290764690673244,3.9536318616132313E-05,1.9861433777957795e-8,-0.0012903973760540492,3.973598386964465e-5,1.999850762256767e-8,-0.001290153512484858,3.992107605315687e-5,2.0123564778314824e-8,-0.0012900074223779303,4.003630507822636e-5,2.0201177921784495e-8,-0.0012899173653183767,4.0047651738485965e-5,2.0210256251888748e-8,-0.001289836338458807,3.9945200597234635e-5,2.0145554957262593e-8,-0.0012897212998023743,3.9741174964429464E-05,2.0016045030261284e-8,-0.0012895399514628268,3.946480109359224e-5,1.984132894245313e-8,-0.001289274703109967,3.915530609271689e-5,1.9647018285539673e-8,-0.0012889236983102278,3.885435148165427e-5,1.9459904493796818e-8,-0.0012884992067051736,3.8599204907948656e-5,1.9303690980758627e-8,-0.0012880241094008248,3.841760919532316e-5,1.919581678542283e-8,-0.0012875274288492854,3.832480054634275e-5,1.9145604099175267e-8,-0.0012870398381923532,3.8322598965528926e-5,1.9153682307136752e-8,-0.001286589752637628,3.840001624621069e-5,1.921238243257403e-8,-0.001286200095515784,3.853470660398659e-5,1.9306731004946026e-8,-0.0012858854886256378,3.86948874374072e-5,1.9415831342562718e-8,-0.001285649499877651,3.8841815281819475e-5,1.9514646939711093e-8,-0.0012854817125208561,3.893347048250045e-5,1.9576511347082232e-8,-0.0012853550995704204,3.893063802338816e-5,1.957702413451274e-8,-0.0012852255062502298,3.880636244566652e-5,1.9499927026725242e-8,-0.0012850362965845573,3.855807120421911e-5,1.9344575221523857e-8,-0.0012847311762881526,3.821819412132976e-5,1.9132471126811794e-8,-0.0012842747415224602,3.785512960173213e-5,1.8907745295762985e-8,-0.0012836727720354248,3.755682902569352e-5,1.8726620068053298e-8,-0.0012829784848701268,3.739895052372073e-5,1.863702330001396e-8,-0.0012822761530718633,3.7413406126274804e-5,1.86584821716486e-8,-0.0012816490975353263,3.7576622715437714e-5,1.8774747376732938e-8,-0.0012811506382189232,3.782352818577273e-5,1.8943030423325083e-8,-0.001280792436308164,3.8075703038799706e-5,1.9112370169816575e-8,-0.0012805506354879592,3.8266803390174146e-5,1.924016463208864e-8,-0.001280380738437669,3.835616719714332e-5,1.9300925603521577e-8,-0.0012802324630361284,3.833113206068958e-5,1.9287565495948508e-8,-0.0012800605197691444,3.820264194508425e-5,1.920823586964087e-8,-0.0012798308757682997,3.799830026151315e-5,1.9081529959526996e-8,-0.001279523586304221,3.775524645033635e-5,1.8931707405877297e-8,-0.0012791333774328948,3.751366233471992e-5,1.8784512978711527e-8,-0.0012786686262423056,3.731102412992637e-5,1.866362274807214e-8,-0.001278148993439162,3.717726455085912e-5,1.858772206348688e-8,-0.001277601942460214,3.7131143654458575e-5,1.8568311190285357e-8,-0.001277058498171101,3.717813474632904e-5,1.860839408251708e-8,-0.0012765487555219646,3.7310038774287194e-5,1.8702216632045073e-8,-0.0012760977084929888,3.750624505138479e-5,1.8836075192321827e-8,-0.0012757217769639956,3.773626898786361e-5,1.8990020553034313e-8,-0.0012754261510291623,3.796321117292025e-5,1.9140234836138346e-8,-0.0012752029370164196,3.814797161205375e-5,1.92619071682081e-8,-0.0012750300928311285,3.825433491231409e-5,1.9332571089335484e-8,-0.0012748715426223701,3.825537269909844e-5,1.933609650898041e-8,-0.0012746797344262949,3.814138317428424e-5,1.926746861138821e-8,-0.0012744025805871105,3.7928235466975745e-5,1.9137729803848053e-8,-0.0012739963106319753,3.76626292022581e-5,1.897701998328715e-8,-0.0012734431088101711,3.741827327675125e-5,1.8832033009774208e-8,-0.0012727667106644165,3.7277449564075795e-5,1.875439150470419e-8,-0.0012720341118107905,3.730026444876515e-5,1.8781318347441222e-8,-0.0012713356167803904,3.749648014380484e-5,1.8917966913490027e-8,-0.0012707503868975216,3.7818967997163176e-5,1.913345694695096e-8,-0.0012703173742792029,3.818460780063819e-5,1.937431495323869e-8,-0.0012700276843224567,3.850870965846999e-5,1.958648929745315e-8,-0.0012698377681131297,3.873234768920965e-5,1.9732821725893906e-8,-0.0012696906468235986,3.883226562099348e-5,1.9799315570624595e-8,-0.0012695333572401244,3.881646913695297e-5,1.9792123553590806e-8,-0.0012693264687479164,3.8713735516634753e-5,1.9730552119127156e-8,-0.0012690470332673868,3.856312435152506e-5,1.9640099461015192e-8,-0.0012686878191508922,3.840594630060172e-5,1.9547213377593627E-08,-0.0012682550883168057,3.8280251328920796e-5,1.9475836828836382e-8,-0.0012677659821863632,3.8216972883763434e-5,1.9445125675948716e-8,-0.0012672456478990807,3.823702573972687e-5,1.9467782522189376e-8,-0.0012667239315270157,3.834915450270301e-5,1.954879813655444e-8,-0.0012662315252516165,3.8548712365379255e-5,1.9684700622829385e-8,-0.0012657956741872701,3.881779556352557e-5,1.9863631777743846E-08,-0.0012654358895180374,3.9127111421915734e-5,2.0066562567351532e-8,-0.0012651603219259492,3.943960149495701e-5,2.0269701099621573e-8,-0.0012649633922718845,3.97155188282893e-5,2.044787773900412e-8,-0.0012648251191054683,3.991847051986315e-5,2.0578512385264233e-8,-0.0012647124020133814,4.002181530954318e-5,2.0645672703362345e-8,-0.0012645824423290432,4.0014854271467307e-5,2.0643806946391964e-8,-0.001264388687972703,3.99081829052254e-5,2.0580779083148893e-8,-0.001264089784429187,3.973682895821391e-5,2.0479457047750557e-8,-0.0012636612589438738,3.955863316563664e-5,2.0376410433125773e-8,-0.001263107692385635,3.944474943991824e-5,2.031587286383709e-8,-0.0012624700916807313,3.9460627398303827e-5,2.0337965483915675e-8,-0.0012618210646095807,3.9641206055020366e-5,2.0463436185732815e-8,-0.0012612438544760331,3.997186027742948e-5,2.0682014530823786e-8,-0.0012608019231333165,4.03889145758586e-5,2.095293879084057e-8,-0.001260515403514942,4.080331509500292e-5,2.1219900523197546e-8,-0.0012603580066779792,4.1134769690694334e-5,2.143251915066937e-8,-0.0012602736669382706,4.133709908764442e-5,2.156229199212994e-8,-0.0012602001674625438,4.140455790552599e-5,2.1606510199617428e-8,-0.0012600871138250655,4.13627425982667e-5,2.1582334626039323e-8,-0.0012599037723692542,4.125395520943257e-5,2.1517286350261602e-8,-0.001259639059405887,4.112448324373034e-5,2.1440993984703374e-8,-0.0012592978126801822,4.1016374406620794e-5,2.1379934028673295e-8,-0.0012588963729254486,4.096310517242658e-5,2.1354792900167895e-8,-0.0012584587728795547,4.0987516848376617e-5,2.13793433801656e-8,-0.0012580135545439072,4.110070043061135e-5,2.145990419081642e-8,-0.001257590729174874,4.130124851631068e-5,2.1594960240885516e-8,-0.0012572184068382751,4.1574933436424366e-5,2.1774990856265992e-8,-0.0012569188758809874,4.1895365866185666e-5,2.198290829395347e-8,-0.0012567044061644376,4.2226400284913416e-5,2.2195638913385633e-8,-0.0012565736154616957,4.252676325544257e-5,2.2387154231576545e-8,-0.0012565095347204847,4.275674007069808e-5,2.2532803702984725e-8,-0.001256480413149145,4.2886024148070224e-5,2.261430451888185e-8,-0.0012564438185601924,4.290116127527485e-5,2.262433259898739e-8,-0.0012563537977570908,4.2810748157597085e-5,2.256953566001536e-8,-0.0012561701266762151,4.264685474788228e-5,2.2471059965738813e-8,-0.001255868216795208,4.246161786198218e-5,2.2362052663867524e-8,-0.00125544775922725,4.2318356345838705e-5,2.2281882031267264e-8,-0.0012549374800614776,4.22774052795677e-5,2.226731056823057e-8,-0.0012543928884045982,4.237873413357958e-5,2.2341924508824796e-8,-0.0012538846382849707,4.262624486160383e-5,2.2506767656905367e-8,-0.0012534783871114205,4.2981135163356555e-5,2.2736596297391955e-8,-0.0012532126561929605,4.3370682260662835e-5,2.2985558206766268e-8,-0.0012530852538086268,4.3711798272939364e-5,2.3201876301994538e-8,-0.0012530559769681426,4.393918260812166e-5,2.3345305957001018e-8,-0.0012530638749481211,4.4024288239515566e-5,2.3398863033464984e-8,-0.0012530490271740113,4.3977672971138264e-5,2.3370162208987406e-8,-0.0012529684380834512,4.383778762251783e-5,2.3284209882351702e-8,-0.0012528018888721966,4.365500575092296e-5,2.317318439808869e-8,-0.001252549834499636,4.34782797526141e-5,2.3067930135885604e-8,-0.0012522276998212633,4.334721846604825e-5,2.2992993745712078e-8,-0.0012518599576908918,4.3288848879161106e-5,2.2964722563118695e-8,-0.0012514754687159037,4.331706400168195e-5,2.299109201556656e-8,-0.0012511041057524219,4.343305080609753e-5,2.3072114029472213e-8,-0.0012507740089569535,4.362583037811218e-5,2.3200256491004583e-8,-0.001250508740600051,4.387284960062057e-5,2.336086149484763e-8,-0.0012503238892904954,4.414121645053139e-5,2.353297738143989e-8,-0.0012502232383400124,4.439057639247119e-5,2.3691245534858623e-8,-0.0012501953913701654,4.4578519987771495e-5,2.380937649691334e-8,-0.0012502124466062187,4.466862199857083e-5,2.386522426953918e-8,-0.0012502324655709908,4.463985453790723e-5,2.38466230351851e-8,-0.0012502066668911443,4.449465916127025e-5,2.3756267679178933e-8,-0.0012500904907569506,4.4262301368479445e-5,2.3613540810084584e-8,-0.0012498556988007213,4.3995081325114545e-5,2.3451824758728542e-8,-0.0012494996714732477,4.375734202677175e-5,2.3311357072906797e-8,-0.0012490486343557058,4.360978994232384e-5,2.3229326501100328e-8,-0.0012485532799728183,4.359328030608507e-5,2.3229896399582473e-8,-0.001248077323762565,4.3716595091107244e-5,2.331696995481848e-8,-0.0012476814413027032,4.395208150458591e-5,2.3471965518926978e-8,-0.0012474066926813987,4.424143994728845e-5,2.3657815110514976e-8,-0.001247262641945451,4.4511219507711075e-5,2.3828756487483382e-8,-0.0012472248755787513,4.469382181566311e-5,2.3943301525145774e-8,-0.0012472435198697964,4.474664503382738e-5,2.3975912178036033e-8,-0.001247259506344416,4.466205719091103e-5,2.3922954185837815e-8,-0.0012472217473297215,4.446513739596869e-5,2.3801066644975018e-8,-0.0012470987187946957,4.420202198632878e-5,2.3639715221988536e-8,-0.0012468817729012385,4.392519162060175e-5,2.3471897838937096e-8,-0.0012465817445801888,4.368137901444268e-5,2.3326586331146017e-8,-0.0012462224178688196,4.3504603084736476e-5,2.3224476425034505e-8,-0.0012458339394664786,4.3413868956406416e-5,2.317671064191687e-8,-0.0012454477067935401,4.341371210977519e-5,2.318536732956266e-8,-0.001245092875503066,4.349582099726864e-5,2.3244572533892913e-8,-0.001244793861427751,4.364070138997217e-5,2.334159650208275e-8,-0.0012445680145702208,4.381919330597018e-5,2.3457855646996076e-8,-0.0012444228840729505,4.399437802864513e-5,2.35701808197754e-8,-0.0012443530695937283,4.4124913953168016e-5,2.3652983748257247e-8,-0.0012443375127046577,4.4170905959475854e-5,2.36819578137255e-8,-0.001244339050323051,4.410267397222573e-5,2.3639490947179656e-8,-0.0012443085409083597,4.391102098493597e-5,2.352090842966235e-8,-0.0012441949428326805,4.361529559426061e-5,2.3339274923289387e-8,-0.0012439599109511782,4.3264248999509696e-5,2.3125688607710063e-8,-0.0012435919172900148,4.292632418466513e-5,2.2923014333021052e-8,-0.0012431132807987672,4.2670863701421686e-5,2.2774032688701237e-8,-0.0012425758812366372,4.2547004754978845e-5,2.2708303443627026e-8,-0.001242046681417017,4.256875652229016e-5,2.273310098467663e-8,-0.0012415887940260054,4.2711639999148036e-5,2.2831736522023835e-8,-0.0012412448848635037,4.292095325018456e-5,2.2969151481539737e-8,-0.0012410276081992223,4.312771971755229e-5,2.310214052847942e-8,-0.0012409187405165644,4.3266945611404475e-5,2.3190749585606232e-8,-0.001240876179833917,4.329319757536537e-5,2.3207763152117412e-8,-0.0012408462077011405,4.3189822733976015e-5,2.314410023143346e-8,-0.001240777320283415,4.297005585476495e-5,2.3009154427995445e-8,-0.0012406317702474867,4.267059575677806e-5,2.2826536022629307e-8,-0.0012403919863629748,4.234042689642282e-5,2.26269926746929e-8,-0.0012400610415698615,4.2028799199970334e-5,2.2440951581700866e-8,-0.0012396584394359302,4.1775753442481906e-5,2.229275950494211e-8,-0.001239213642370792,4.160681735016447e-5,2.2197568374873713e-8,-0.001238759622997134,4.153164993599383e-5,2.21606545642313e-8,-0.0012383277669794706,4.154532626799311e-5,2.217831390256571e-8,-0.0012379443945620973,4.163077699858882e-5,2.223941511624005e-8,-0.0012376284470835346,4.17613701854737e-5,2.2327028899360917e-8,-0.0012373896362990083,4.190335157601163e-5,2.2420000164546246e-8,-0.001237226498897373,4.201852746249583e-5,2.2494706995441768e-8,-0.0012371242703294284,4.2068080603654364e-5,2.2527507113518604e-8,-0.0012370533291036505,4.201858038815096e-5,2.249845761104157e-8,-0.001236970018387961,4.18506164139745e-5,2.239652980094868e-8,-0.0012368223070618539,4.1568658962976625e-5,2.2225481522563593e-8,-0.0012365619116138991,4.120801712255095e-5,2.2007914498811416e-8,-0.0012361611416612153,4.083280694899721e-5,2.1783828379414836e-8,-0.001235627714205694,4.052073423663693e-5,2.1601104914924004e-8,-0.0012350082702082678,4.0337708897671565e-5,2.149979267276202e-8,-0.0012343757042772982,4.031356310619789e-5,2.1497194944095898e-8,-0.0012338050721628741,4.043155020851939e-5,2.1581628688838263e-8,-0.001233349834870539,4.063630930677973e-5,2.1717708568439122e-8,-0.0012330286624901638,4.0854394434720134e-5,2.1859385815913868e-8,-0.001232825543872876,4.1016780529853954e-5,2.1964061307544442e-8,-0.0012326994687433222,4.1075328421856106e-5,2.20027389188401e-8,-0.001232597984556413,4.1010377237678075e-5,2.196447509602127e-8,-0.0012324701701386766,4.083038763729262e-5,2.1855784862297425e-8,-0.0012322765508626758,4.0566046838917725e-5,2.1696628675659008e-8,-0.0012319949600370919,4.026131873137667e-5,2.151464212796346e-8,-0.0012316222127142264,3.996359807215556e-5,2.1339009160521587e-8,-0.0012311720726316338,3.971485937041825e-5,2.1195127901571155e-8,-0.001230670573013148,3.954524762662862e-5,2.1100877649413684e-8,-0.0012301501032358588,3.946977464651513e-5,2.1064790494578928e-8,-0.0012296436170803153,3.9487963552311815e-5,2.108595595697376e-8,-0.0012291799191749856,3.958568949318732e-5,2.1155185653788322e-8,-0.0012287803742935324,3.973818698101526e-5,2.1256853700710867e-8,-0.001228456809047748,3.991337515449703e-5,2.1370956879184295e-8,-0.0012282101383242943,4.007518264093764e-5,2.1475236423481508e-8,-0.0012280293349605576,4.0187061533075706e-5,2.1547450730279715e-8,-0.0012278906587169442,4.0216265386799466e-5,2.1568075140606426e-8,-0.001227757733952711,4.0139660658889306e-5,2.152381649965794e-8,-0.001227584040852701,3.995131561109933e-5,2.141206714008766e-8,-0.0012273199557392438,3.9670437193476325e-5,2.1245481814044025e-8,-0.0012269256617048919,3.934568255249432e-5,2.1054357934419238e-8,-0.001226387988600605,3.9049849819512705e-5,2.088324803621528e-8,-0.0012257337792927004,3.886073981427376e-5,2.077925099285005e-8,-0.001225029176986983,3.8832259555441034e-5,2.0774438780732722e-8,-0.0012243597146831978,3.897014608672804e-5,2.087118383561181e-8,-0.001223799174185458,3.922790438935534e-5,2.1039910874573118e-8,-0.0012233842237546633,3.952612757691313e-5,2.123118242844517e-8,-0.001223107335217403,3.9782946538246464e-5,2.139456934167179e-8,-0.0012229273220081428,3.993907780657064e-5,2.1494114292522025e-8,-0.001222787747765819,3.996887325239496e-5,2.1515041468992588e-8,-0.0012226337779387417,3.987869845089384e-5,2.1462498186417195e-8,-0.0012224231672501788,3.9698352797038394e-5,2.135591073507243e-8,-0.001222131287192134,3.94706075535104e-5,2.1222223071618265e-8,-0.0012217517999359017,3.924165377627985e-5,2.1089871554669243e-8,-0.0012212945943425393,3.905340977839935e-5,2.0984126176207197e-8,-0.0012207820344604945,3.8937868022761935e-5,2.0923847255017387e-8,-0.0012202442110411317,3.891356765329418e-5,2.0919587003276005e-8,-0.0012197138193019857,3.898419985757117e-5,2.0972925719657997e-8,-0.0012192212575737466,3.913919956043711e-5,2.1076902982625034e-8,-0.0012187904880345962,3.9356035455342134e-5,2.1217396945348294e-8,-0.001218436045934365,3.960367962125383e-5,2.1375213106972125e-8,-0.00121816125440768,3.9846620466140236e-5,2.1528562534707792e-8,-0.0012179574526165029,4.004903399140244e-5,2.165570613461297e-8,-0.0012178040605647724,4.0179078031285165e-5,2.1737684879836926e-8,-0.001217669467291421,4.021348370120589e-5,2.1761144819940345e-8,-0.0012175131332450237,4.014272182328031e-5,2.1721351070588032e-8,-0.001217289990042325,3.997662689165655e-5,2.162532349147562e-8,-0.0012169585457825218,3.9749007528304005e-5,2.1494297600574853e-8,-0.0012164931847068905,3.9517836703297245e-5,2.136358703249228e-8,-0.0012158983378917096,3.9356329110915773e-5,2.1277115324960004e-8,-0.0012152176438466392,3.9332104759699913E-05,2.127493647531436e-8,-0.001214528479586985,3.947928991470707e-5,2.1376600643727462e-8,-0.0012139177363669367,3.9778311663362115e-5,2.1569180758206194e-8,-0.0012134484162272517,4.015900048914238e-5,2.180933946924029e-8,-0.0012131363021741985,4.052837642935356e-5,2.2040280902569133e-8,-0.0012129497831343294,4.080665261167639e-5,2.2213672818770073e-8,-0.0012128291159121656,4.095125233841926e-5,2.230428148992462e-8,-0.001212710628911282,4.096082546243361e-5,2.2312340353820234e-8,-0.0012125440419645064,4.0864936103992574e-5,2.2257017392004202e-8,-0.0012122998065612566,4.070927702557695e-5,2.2167052698862267e-8,-0.001211969092054254,4.054291261138361e-5,2.207270204179144e-8,-0.0012115601294701622,4.04096307802744e-5,2.2000393390250897e-8,-0.0012110935055385707,4.034290695442932e-5,2.1969806882960636e-8,-0.001210597514896922,4.0363263803066746e-5,2.1992540281281542e-8,-0.001210103734529621,4.047720018381726e-5,2.2071717239761007e-8,-0.0012096427900898502,4.0677387217859966e-5,2.22022573473533e-8,-0.0012092403935229314,4.094407090176532e-5,2.237175494917936e-8,-0.0012089138646246408,4.124773087837309e-5,2.2562054742508997e-8,-0.001208669509931094,4.155294488543246e-5,2.2751575294808985e-8,-0.0012085012343950414,4.1823087158483395e-5,2.2918206290301382e-8,-0.0012083905541689021,4.20253509279023e-5,2.304245225579731e-8,-0.0012083080279941285,4.213570362400274e-5,2.3110503419034456e-8,-0.0012082161114372763,4.2143459888724324e-5,2.3116949841108062e-8,-0.0012080735324706796,4.2055159230597596e-5,2.3066900585552403e-8,-0.001207841533426535,4.189723091537656e-5,2.297724001603263e-8,-0.0012074923383279116,4.171613868549196e-5,2.2876363669851336e-8,-0.001207019283053891,4.157362669411139e-5,2.2801120538061767e-8,-0.0012064459189305014,4.1534493783767346e-5,2.2789521758592166e-8,-0.0012058286024298984,4.164656524482071e-5,2.2869009240234377e-8,-0.0012052460554162017,4.19184087749905e-5,2.3043477200400544e-8,-0.0012047743940046401,4.2307229374438395e-5,2.3286316882609802e-8,-0.0012044572585227797,4.272895499439604e-5,2.3546579750409415e-8,-0.001204288381331058,4.308962693418823e-5,2.376779519103741e-8,-0.0012042176630236775,4.332107815521141e-5,2.390938507508682e-8,-0.0012041753802073372,4.340093341660907e-5,2.3958706867713977e-8,-0.00120409843142815,4.335014281596996e-5,2.3929491995290315e-8,-0.0012039461046134032,4.3216266495513626e-5,2.3851510393422998e-8,-0.0012037033879847602,4.305483536435831e-5,2.3758982441867673e-8,-0.001203376539335363,4.291599030590616e-5,2.368228317218689e-8,-0.00120298613557427,4.283755592078561e-5,2.364376268900528e-8,-0.00120256066507784,4.2842730196850536e-5,2.365655954004364e-8,-0.0012021315896690958,4.29401323049733e-5,2.3724918753893763e-8,-0.0012017295357681474,4.3124764351869256e-5,2.384500705422323e-8,-0.0012013810188355309,4.3379445958178134e-5,2.400589014719376e-8,-0.0012011053959982453,4.367684303151363e-5,2.4190760318183176e-8,-0.0012009120711434845,4.3982426851927915e-5,2.4378686124360526e-8,-0.001200798320179096,4.4258666524398955e-5,2.4547135559008024e-8,-0.0012007483813156155,4.447035815567847e-5,2.4675237441635286e-8,-0.0012007344048218429,4.45904789956841e-5,2.4747373111654414e-8,-0.0012007195396916456,4.4605667043112055E-05,2.475647427648304e-8,-0.0012006630679124704,4.4520319606676825e-5,2.4706349244549025e-8,-0.0012005271433299393,4.435834252862902e-5,2.4612444809990292e-8,-0.0012002844344340745,4.416178423355356e-5,2.450065938028214e-8,-0.0011999257549066937,4.39856842762662e-5,2.4403951995426074e-8,-0.0011994662184232547,4.3888471317910234e-5,2.435650342589999e-8,-0.001198947460842372,4.3917923813857226e-5,2.43855173915342e-8,-0.001198432684587654,4.409482178445086e-5,2.4501884310528832e-8,-0.0011979921332492878,4.43998509534339e-5,2.469284335350204e-8,-0.00119768078598594,4.4772044938470945e-5,2.492136091235081e-8,-0.0011975168459692923,4.512476493318901e-5,2.5135693210741254e-8,-0.00119747326559844,4.53756385533257e-5,2.528710231716238e-8,-0.0011974888649364393,4.547604253094459e-5,2.5347319618533324e-8,-0.0011974930862349044,4.542451975687877e-5,2.5316491092253453e-8,-0.0011974302262546881,4.525952548655604e-5,2.5218719541367353e-8,-0.0011972721728209824,4.5039793706352555e-5,2.509006550443868e-8,-0.0011970183063790395,4.48245155389913e-5,2.4966396418741908e-8,-0.001196687932279745,4.4660550904328974e-5,2.487559033145641e-8,-0.0011963111623788396,4.457738285834904e-5,2.4834604037411308e-8,-0.0011959215436754737,4.45871920184613e-5,2.4849769736576936e-8,-0.0011955511692190652,4.468712727908596e-5,2.4918432734679642e-8,-0.0011952275920148667,4.486193679281758e-5,2.5030717037665653e-8,-0.001194971551310585,4.508639373150898e-5,2.5171047327290172e-8,-0.001194794863314542,4.5327777567539424e-5,2.5319623085596163e-8,-0.001194698341899172,4.554901617532855e-5,2.5454274898017947e-8,-0.0011946701458042791,4.5713081220382614e-5,2.555310251854561e-8,-0.0011946854231435274,4.5788787339589856e-5,2.5597980508971714e-8,-0.0011947082714650892,4.575734391539159e-5,2.5578493326096783e-8,-0.0011946966519119835,4.561819225984636e-5,2.5495358009355167e-8,-0.0011946100335258174,4.539218001394653e-5,2.536213072497259e-8,-0.0011944184455051122,4.512031317912244e-5,2.5204163446924352e-8,-0.0011941107653257608,4.485734384224478e-5,2.5054453515492776e-8,-0.0011936999083235803,4.466088478508766e-5,2.4946937452023213e-8,-0.0011932230592092813,4.457796164782929e-5,2.4908499047797812e-8,-0.001192735881163747,4.463180004644925e-5,2.4951402925395812e-8,-0.0011923007264965835,4.481237616870531e-5,2.506816181625162e-8,-0.001191970530689217,4.507461064861558e-5,2.523093820360962e-8,-0.0011917724140860335,4.5347229185161454e-5,2.5397066980609755e-8,-0.0011916972032087528,4.5552150560644986e-5,2.552053976524705e-8,-0.0011917008223672682,4.5628853227269786e-5,2.55662585680403e-8,-0.001191718836140086,4.55536438037028e-5,2.5521241678494558e-8,-0.0011916882079971906,4.534483429463704e-5,2.5397506076360736e-8,-0.0011915661764232738,4.50523352358896e-5,2.52256885925892e-8,-0.0011913387387294007,4.47385355732246e-5,2.504346293478613e-8,-0.0011910180546011024,4.446011631860293e-5,2.4884567965759092e-8,-0.0011906333941084394,4.425692301702829e-5,2.4772196056940904e-8,-0.0011902211184680275,4.414860982271032e-5,2.4717178867113547e-8,-0.0011898169790774708,4.4136455261757274e-5,2.4719329452121577e-8,-0.0011894514485054754,4.420725000515381e-5,2.4769977404092045e-8,-0.0011891472970888017,4.43372203473938e-5,2.4854416724191735e-8,-0.0011889182539292847,4.449528806773453e-5,2.4953861754942293e-8,-0.0011887678749798924,4.464592966057503e-5,2.504712463555681e-8,-0.0011886883030289687,4.4752380198887884e-5,2.5112510632544797e-8,-0.0011886592771498138,4.478098874931083e-5,2.5130424449580425e-8,-0.0011886483992062577,4.4707117457076194e-5,2.5086889829383304e-8,-0.0011886140329250244,4.4522010180780784e-5,2.4977592415005244e-8,-0.0011885119078034235,4.4238713784012066e-5,2.4811273251672534e-8,-0.0011883051844906306,4.3894051675223444e-5,2.461069041472246e-8,-0.0011879756183442926,4.354386275480496e-5,2.4409531085824178e-8,-0.0011875317045031677,4.3250911754683235e-5,2.4244998266980886e-8,-0.001187009814984017,4.306830808202916e-5,2.4147865942933328e-8,-0.0011864667588603476,4.302388062774488e-5,2.4133330210664937e-8,-0.0011859656180111609,4.3111034611001064e-5,2.4195943412766552e-8,-0.0011855592107146609,4.328925296709795e-5,2.4310387221332328e-8,-0.0011852761111206852,4.349413359054941e-5,2.443782423047731e-8,-0.0011851131455521931,4.3654131747047644e-5,2.4535986395746288e-8,-0.0011850365116463047,4.370946428713365e-5,2.4570271546609728e-8,-0.0011849914632903148,4.362784368851426e-5,2.4522773768495008e-8,-0.001184917896100419,4.341215487751708e-5,2.43964861556252e-8,-0.0011847668283073867,4.3097519747167916e-5,2.4213256739576758e-8,-0.001184512183165127,4.273915270154866e-5,2.400637699709233e-8,-0.001184154359433377,4.239606712181469e-5,2.381082880477647e-8,-0.001183715829325232,4.211673537541401e-5,2.3654834718410355e-8,-0.001183232091457753,4.193072848064575e-5,2.355508585492585e-8,-0.001182742076052658,4.184692919527811e-5,2.351593181722576e-8,-0.001182280783554334,4.185637277082278e-5,2.3531280291149167e-8,-0.0011818749650736491,4.193705913158789e-5,2.3587563717348847e-8,-0.0011815412371566454,4.20587459208501e-5,2.3666591547139997e-8,-0.001181285518418681,4.218688550045602e-5,2.374784651401943e-8,-0.0011811028444095974,4.2285853886151184e-5,2.381037385561812e-8,-0.001180977123076948,4.232217251513254e-5,2.3834703066651765e-8,-0.0011808810539391222,4.2268560697046846e-5,2.3805269882627502e-8,-0.0011807771612472478,4.2109361969074505e-5,2.3713602572318883e-8,-0.0011806214602274067,4.1846957049957275e-5,2.356200196449372e-8,-0.0011803711677501327,4.150714518977967e-5,2.3366529209186637e-8,-0.0011799963986054275,4.113978509884284e-5,2.3157162420999488e-8,-0.0011794927933482826,4.08108363408142e-5,2.2972909369344754e-8,-0.0011788890049142986,4.058504354233647e-5,2.2851491515976213e-8,-0.0011782430294203484,4.050438512482597e-5,2.2816671906510717e-8,-0.0011776263052778516,4.0571991173592686e-5,2.2868981508891815e-8,-0.0011771016155169122,4.074982996867079e-5,2.2984703383283737e-8,-0.0011767044632477951,4.097122380197114e-5,2.3123630234264177e-8,-0.0011764349839248737,4.1161829736862925e-5,2.3241707139593455e-8,-0.0011762614801303043,4.1260299791107996e-5,2.330328303434297e-8,-0.0011761320404088328,4.1232336783918625e-5,2.328924297558214e-8,-0.0011759893133244327,4.1075838938516295e-5,2.3199711124094704e-8,-0.0011757842580515552,4.081779203779472e-5,2.3051819147004552e-8,-0.001175486057786376,4.050513963720658e-5,2.2873984543674025e-8,-0.0011750866908770193,4.0192525827399625e-5,2.2698514425147638e-8,-0.0011745998913217442,3.9930000443378806e-5,2.2554401861589946e-8,-0.0011740555181366963,3.975350915748105e-5,2.2461942074838184e-8,-0.0011734914447389271,3.967996159531561e-5,2.2430123462058758e-8,-0.001172945410878914,3.970705295686038e-5,2.245677720924922e-8,-0.0011724486794790487,3.981662159239835e-5,2.2530685939862905e-8,-0.0011720222605774908,3.997974255206267e-5,2.263458529327139e-8,-0.0011716754580197422,4.0161947727554296e-5,2.274816904236688e-8,-0.0011714059108263474,4.032766224367516e-5,2.285064391621753e-8,-0.0011712002787532773,4.044378850159482e-5,2.2922839703133115e-8,-0.001171035100466492,4.048293650443117e-5,2.2949153547451752e-8,-0.0011708778846540614,4.042697766162125e-5,2.2919658210313572e-8,-0.0011706891457959967,4.0271429475899425e-5,2.2832600750891778e-8,-0.001170426728995793,4.0030416719605716e-5,2.269711830719015e-8,-0.0011700538042031948,3.9740414742010276e-5,2.253517245414926e-8,-0.0011695506069301434,3.945916078722506e-5,2.2380689483545792e-8,-0.0011689268944945577,3.9255517922141815e-5,2.227353935744273e-8,-0.001168228173677312,3.918909798715985e-5,2.224769728531718e-8,-0.0011675279781217165,3.9285907063139966e-5,2.2317220439852915e-8,-0.0011669049542857158,3.952322670802093e-5,2.24676871654407e-8,-0.0011664145207980038,3.9834885125080155e-5,2.265953681114611e-8,-0.001166070295452867,4.013563731944959e-5,2.2842517129925196e-8,-0.0011658440641923867,4.035108613749354e-5,2.2973299450432576e-8,-0.0011656808972777184,4.043846993678506e-5,2.302764914878378e-8,-0.0011655191438936243,4.039246802510346e-5,2.300366653105076e-8,-0.0011653067613803536,4.023909875147127e-5,2.291788321046429e-8,-0.001165010689103841,4.002390781978695e-5,2.2797942341975254e-8,-0.0011646197556137458,3.979940906101893e-5,2.2674938420648966e-8,-0.0011641429633779334,3.961443280877213e-5,2.2577103601577477e-8,-0.0011636049134929856,3.950632417993853e-5,2.252541402741315e-8,-0.0011630396411959254,3.9496218494349576e-5,2.253115281543781e-8,-0.001162483900516477,3.95874667786907e-5,2.2595320378682432e-8,-0.0011619709327954436,3.976699600781008e-5,2.2709638135691125e-8,-0.0011615255979191684,4.000893838449559e-5,2.2858712233979922e-8,-0.0011611613858706039,4.0279582776409567e-5,2.3022849008527116e-8,-0.001160879376169587,4.054263299169933e-5,2.3181024514051384e-8,-0.0011606687592218374,4.076394687408465e-5,2.3313608208272293e-8,-0.0011605083240079387,4.09154288041749e-5,2.3404666156265128e-8,-0.00116036847554564,4.097823517679709e-5,2.34438834621506e-8,-0.0011602136824594566,4.0945659648512586e-5,2.3428227761797474e-8,-0.0011600057215318002,4.0826012397539306e-5,2.3363471925632195e-8,-0.0011597086232655231,4.0645264473458956e-5,2.326545539839303e-8,-0.0011592962457193116,4.0447999006798314e-5,2.3160337368834338e-8,-0.00115876229853727,4.0293821820255384e-5,2.3082332980724006e-8,-0.0011581301558147067,4.0245920350732926e-5,2.3067127381392428e-8,-0.0011574563121098651,4.035081622828792e-5,2.3140425634618856e-8,-0.0011568199270357543,4.061526212816023e-5,2.3304961265381497e-8,-0.0011562968471505665,4.099409631845051e-5,2.353376588241085e-8,-0.0011559290458727804,4.140161770840252e-5,2.3776854904296303e-8,-0.0011557078806939019,4.1744238983237644e-5,2.3980097768470524e-8,-0.0011555814912751524,4.195588110422897e-5,2.4105697188319998E-08,-0.001155479481195814,4.201658493401853e-5,2.4142985129680127e-8,-0.00115533863075793,4.194919447273282e-5,2.4106395513946268e-8,-0.0011551182129401877,4.1802901903976074e-5,2.4025610864818883e-8,-0.0011548035981328402,4.163510488935334e-5,2.3934641492285587e-8,-0.0011544024679921467,4.149790402491649e-5,2.3863731188845464e-8,-0.0011539381598193543,4.143037373269924e-5,2.3834886083816383e-8,-0.0011534428504190312,4.145529592249755e-5,2.3860242372633465e-8,-0.0011529515734318722,4.157867605802834e-5,2.3942156152824156e-8,-0.001152497126030711,4.17910018793201e-5,2.407424330087287e-8,-0.00115210581430915,4.2069853360416185e-5,2.4243037050196697e-8,-0.001151794185245135,4.238365328686831e-5,2.4430139497299415e-8,-0.0011515669930675036,4.269628302794372e-5,2.461478437537122e-8,-0.0011514166348674099,4.2972125399724006e-5,2.4776661433350763e-8,-0.0011513241096236361,4.318091082678523e-5,2.4898702175336794e-8,-0.0011512612721551612,4.330181717597658e-5,2.496949457208967e-8,-0.001151194039557355,4.332656629776271e-5,2.4985098203453446e-8,-0.0011510862887999457,4.326145348232724e-5,2.4950132422663092e-8,-0.0011509043845628019,4.312830423117919e-5,2.4878096818187747e-8,-0.0011506225888506414,4.296414251839801e-5,2.4790856099194497e-8,-0.0011502295873348479,4.281860836006933e-5,2.4716871495239724e-8,-0.0011497354598191344,4.27473669523015e-5,2.4687324428481763e-8,-0.0011491767132249047,4.27998987093043e-5,2.4729297172923822e-8,-0.0011486149745644995,4.300208635109734e-5,2.4856210146960896e-8,-0.0011481242788471762,4.333890754543513e-5,2.505836780419132e-8,-0.0011477663805973333,4.37484335258334e-5,2.529978271595454e-8,-0.0011475638693054652,4.413754488074797e-5,2.552713565537854e-8,-0.0011474880690233208,4.441675095791563e-5,2.5689536506059154e-8,-0.0011474716437174161,4.4535329714636256e-5,2.5758576446798924e-8,-0.0011474381423005444,4.4496153607781065e-5,2.573686319342581e-8,-0.0011473298248947472,4.434525522139947e-5,2.5651963688180006e-8,-0.0011471206519927625,4.4148021131686344e-5,2.5542431090685233e-8,-0.0011468143867924144,4.396712744434881e-5,2.5444745012451112e-8,-0.001146435178096694,4.384958556407789e-5,2.538566338712817e-8,-0.0011460173053052653,4.382244135856911e-5,2.537984964690841e-8,-0.0011455972066733823,4.389369052636168e-5,2.543072424927479e-8,-0.001145208205189756,4.4055310810386594e-5,2.553258147049571e-8,-0.0011448771116926027,4.4286732802865605e-5,2.5672846892049696e-8,-0.001144621838537778,4.455834866317327e-5,2.5834176207532318e-8,-0.0011444496596464482,4.483524010238264e-5,2.5996533958276677e-8,-0.0011443561757723407,4.508136367107901e-5,2.6139484084071172e-8,-0.001144325302176957,4.526422796836885e-5,2.624479996609313e-8,-0.0011443306796744088,4.5359678801102835e-5,2.629920696942144e-8,-0.001144338684074093,4.535607232962796e-5,2.6296805202445227e-8,-0.0011443128443530714,4.525711697688811e-5,2.6240674007741413e-8,-0.0011442192204715602,4.5082805045375516e-5,2.6143256225398415e-8,-0.0011440321422607781,4.4868033997148654e-5,2.6025290536327584e-8,-0.0011437397009143968,4.465876200865301e-5,2.5913293776335838e-8,-0.0011433483936894827,4.450556201387472e-5,2.5835666573269417e-8,-0.0011428859132346458,4.4454301330230345e-5,2.5817407374967364e-8,-0.0011424002463549068,4.4534205124580296e-5,2.587362598157788e-8,-0.0011419527122034946,4.474530750720313e-5,2.600289980431649e-8,-0.0011416033368196802,4.505002810376823e-5,2.618294554588382e-8,-0.001141390428908636,4.5375931822066494e-5,2.6372385764556846e-8,-0.0011413123883100827,4.5634818511907473e-5,2.6521473534591453e-8,-0.001141323589395823,4.5754058078499044e-5,2.6589641295518906e-8,-0.0011413505127724332,4.570482861131677e-5,2.65614039044391e-8,-0.0011413207093381398,4.5510745451041515e-5,2.6451239643199213e-8,-0.001141188094617734,4.523323032317512e-5,2.6295158823665544e-8,-0.0011409425267060696,4.494512245552072e-5,2.613539055975473e-8,-0.0011406039242835295,4.470782444666231e-5,2.6007055239340012e-8,-0.001140209199720666,4.455976514490526e-5,2.5931497221064563e-8,-0.0011397998215520568,4.451513360626569e-5,2.591575701768682e-8,-0.001139413450043509,4.456814837601221e-5,2.595536246540539e-8,-0.0011390795966643849,4.469876670368622e-5,2.60379203690528e-8,-0.0011388178217883774,4.487777100093782e-5,2.614620234117578e-8,-0.001138637029323737,4.507087406977781e-5,2.6260499784491232e-8,-0.0011385351171898522,4.524231213375679e-5,2.636058011508952e-8,-0.001138498908997064,4.5358536475447353e-5,2.6427687830903223e-8,-0.001138504742717813,4.539239795883406e-5,2.6446876610957435e-8,-0.0011385203577618363,4.5327686077719404e-5,2.6409596426616204e-8,-0.001138508626476679,4.5163215308385346e-5,2.6316020938140107e-8,-0.001138433164520453,4.491524922861346e-5,2.617635271007851e-8,-0.0011382651611644248,4.461705208805853e-5,2.60103768433134e-8,-0.0011379901212315725,4.431475914112068e-5,2.5844832363761734e-8,-0.0011376128472153897,4.405962607495448e-5,2.5708742448517676e-8,-0.0011371591432191399,4.38977377850055e-5,2.5627459120037902e-8,-0.0011366732292220137,4.385892899825392e-5,2.561652405049774e-8,-0.0011362103950232623,4.394710877414942e-5,2.5676581411835278e-8,-0.0011358251542952108,4.413475261191414e-5,2.5790765942044402e-8,-0.0011355565320898134,4.436471443508226e-5,2.5926126309661128e-8,-0.0011354142388612493,4.456177182242592e-5,2.6040272006294392e-8,-0.0011353715564004837,4.4653360616528623e-5,2.6092925147649926e-8,-0.0011353705510015804,4.459362909579968e-5,2.605922322764486e-8,-0.0011353404038372476,4.4380227560943225e-5,2.5938971302698022e-8,-0.0011352217466509087,4.405454262243014e-5,2.5756616732937143e-8,-0.0011349852948189293,4.368490247039827e-5,2.5551578991552723e-8,-0.0011346366674042077,4.334216194977203e-5,2.5364227495662016e-8,-0.001134208126523297,4.307971922662928e-5,2.5224447033233243e-8,-0.0011337443916172296,4.292448780803408e-5,2.5146609857361533e-8,-0.0011332897864486306,4.287791196077834e-5,2.5130427988720302e-8,-0.0011328801743606684,4.292232941936807e-5,2.5164886702881576e-8,-0.0011325395437544183,4.302832693352377e-5,2.5232645329543546e-8,-0.0011322795036267984,4.316082969546979e-5,2.5313558114926845e-8,-0.0011320999644248192,4.328354167402069e-5,2.538712994851353e-8,-0.0011319900022255828,4.336233306022805e-5,2.5434328063291953e-8,-0.0011319286947636842,4.336840808418778e-5,2.5439298179225213e-8,-0.0011318863330729578,4.328188187579225e-5,2.5391365668682646e-8,-0.001131826798984989,4.309582777844892e-5,2.5287327028303578e-8,-0.0011317119237820342,4.282000536402383e-5,2.513352362103692e-8,-0.0011315081184450266,4.248267021715128e-5,2.4946745756693704e-8,-0.0011311944679122136,4.212855215251888e-5,2.47528810798855e-8,-0.001130770145740669,4.181171313272162e-5,2.458263730132284e-8,-0.0011302581872849279,4.158375073838242e-5,2.446470685820663e-8,-0.0011297031604086858,4.1480108144529596e-5,2.4418045723061402e-8,-0.001129162188693781,4.15087736209508e-5,2.4445738038119535e-8,-0.001128691235841923,4.164541695493883e-5,2.453267453652789e-8,-0.0011283303644603515,4.1837167858544846e-5,2.464812593336712e-8,-0.0011280922029762194,4.201470996660632e-5,2.4752841228200912e-8,-0.0011279572033331556,4.2109977185660934e-5,2.480903447905591e-8,-0.0011278777807429035,4.2074869072542864e-5,2.4790706388729773e-8,-0.0011277911058960631,4.189530837193729e-5,2.4691226160505966e-8,-0.0011276372138476932,4.15954194176583e-5,2.4525357679971217e-8,-0.0011273763094417542,4.1229584247699144e-5,2.4324526909304625e-8,-0.0011269987883137111,4.0865150594873515e-5,2.4126913313744505e-8,-0.0011265246487921932,4.056282496645149e-5,2.396636013648397e-8,-0.0011259939870450367,4.0362229990203176e-5,2.3864352719984643e-8,-0.0011254538280006646,4.027651035222083e-5,2.3827236887481313e-8,-0.0011249466443459084,4.029509964658356e-5,2.3848081936514294e-8,-0.0011245033782163948,4.0390924133027086e-5,2.3910968573532058e-8,-0.0011241409403492657,4.052829514471608e-5,2.3995517170635476e-8,-0.00112386263638038,4.066934213518109e-5,2.4080458369857855e-8,-0.001123659844043524,4.077852227744454e-5,2.4146059818045725e-8,-0.0011235138537491161,4.082575535334954e-5,2.417579891950277e-8,-0.0011233975399612892,4.078906093563617e-5,2.4157813543967808e-8,-0.0011232772130354719,4.065741806846923e-5,2.4086515680471002e-8,-0.0011231154772805123,4.043402590037051e-5,2.3964410167377178e-8,-0.0011228760409062776,4.0139252991621545e-5,2.380366568263808e-8,-0.0011225309508780508,3.9811507466245704e-5,2.362643573893063e-8,-0.0011220694021852218,3.9503593998477884e-5,2.3462607402847364e-8,-0.0011215052868612503,3.927276808058977e-5,2.334405693151438e-8,-0.0011208791815421717,3.916532907922445e-5,2.32959719470691e-8,-0.0011202512996662164,3.9200465609938846e-5,2.332793726446843e-8,-0.001119685750452599,3.936055511280073e-5,2.3428801926640012e-8,-0.0011192313624241938,3.959351310628623e-5,2.3568365483427852e-8,-0.0011189067970222813,3.982728786145331e-5,2.370580293829856e-8,-0.0011186957125675833,3.9990849821071303e-5,2.380156013682102e-8,-0.0011185529359586416,4.003380335406222e-5,2.382827657042045e-8,-0.0011184183604654927,3.9938559297950844e-5,2.3777363910180102e-8,-0.0011182335261142832,3.972257873820071e-5,2.365991178424167e-8,-0.0011179561348970367,3.943138742499119e-5,2.3502406776038373e-8,-0.0011175690250342211,3.9125231705559594e-5,2.333898219278873e-8,-0.0011170818909624026,3.8863484851492184e-5,2.3202592856615218e-8,-0.0011165261146400343,3.869113689297805e-5,2.3117576365828163e-8,-0.0011159450191786187,3.863070018781825e-5,2.309541688994295e-8,-0.001115382950846316,3.8680782729081375e-5,2.3134291481037248e-8,-0.0011148763323054643,3.88202433349568e-5,2.3221657136516122e-8,-0.0011144484116093652,3.9015366788503146e-5,2.333836405534532e-8,-0.0011141077300649053,3.922741200952648e-5,2.3462821981382622e-8,-0.0011138492060015412,3.941880989590515e-5,2.357433208540127e-8,-0.0011136564631223104,3.955748183796071e-5,2.3655382121537695e-8,-0.001113504398766395,3.961966181875024e-5,2.3693174947865333e-8,-0.0011133616119702572,3.9591985478981636e-5,2.3680806672121074e-8,-0.0011131929173312004,3.9473502927766754e-5,2.3618399758240768e-8,-0.001112962646214551,3.927781992830418e-5,2.3514237054040706e-8,-0.0011126396430199091,3.903476453581059e-5,2.338553477815076e-8,-0.0011122044622860591,3.878987372235069e-5,2.325794563447264e-8,-0.0011116579050496058,3.859916050478475e-5,2.3162471082326266e-8,-0.0011110277638066819,3.8517161490373446e-5,2.3128770665243614e-8,-0.0011103686318442126,3.857932217863279e-5,2.317550345585091e-8,-0.0011097504345893342,3.878498007287958e-5,2.3301147042226735e-8,-0.0011092368658773112,3.909083067031221e-5,2.348067606937274e-8,-0.001108862561025627,3.9421677057301995e-5,2.3671766690779e-8,-0.0011086207894536008,3.969541345367182e-5,2.3828789988108746e-8,-0.001108467784835197,3.9850203582443234e-5,2.3917930158623212e-8,-0.0011083400223898265,3.986149013467848e-5,2.3926558339224554e-8,-0.0011081749835332257,3.9744019406875444e-5,2.3864144977322292e-8,-0.0011079272311021648,3.954206227866765e-5,2.3756473773474773e-8,-0.0011075764036130426,3.9314276041815806e-5,2.3636846724881514e-8,-0.0011071276513506274,3.911872082508301e-5,2.353751460723729e-8,-0.001106606712234522,3.9001210256697606e-5,2.3483218868648787e-8,-0.0011060519911277476,3.8988244203939216e-5,2.3487531140898155e-8,-0.001105505670300844,3.908468395961993e-5,2.3551953376769463e-8,-0.001105005565791467,3.927568764132802e-5,2.3667339954019526e-8,-0.0011045790708096976,3.9531788880221474e-5,2.3816896490402398e-8,-0.0011042398847317478,3.9815546406795756e-5,2.397985579796228e-8,-0.0011039874767033147,4.008822786866677e-5,2.413504494817365e-8,-0.0011038086569949937,4.031539899273079e-5,2.4263827315283715e-8,-0.0011036803427045844,4.047087645509333e-5,2.4352204679952328e-8,-0.0011035726966564098,4.053916604625667e-5,2.4392162684179795e-8,-0.0011034522434320714,4.051692930416066e-5,2.438250815301555e-8,-0.0011032850399023103,4.041397991610771e-5,2.4329393420554233e-8,-0.0011030403485004744,4.0253960514007384e-5,2.424655679752155e-8,-0.001102695483905325,4.0074227905403326e-5,2.415503580398189e-8,-0.001102242193580227,3.992352368685253e-5,2.4081660659305638e-8,-0.0011016936673696796,3.985525563697915e-5,2.4055253488353385e-8,-0.0011010891641663526,3.991473667135059e-5,2.409971221190807e-8,-0.0011004912378463276,4.012168328025906e-5,2.422468321626409e-8,-0.0010999711538006204,4.045477360482803e-5,2.4417430252093232e-8,-0.0010995842055226655,4.084938248726866e-5,2.4641830821643385e-8,-0.0010993460929871167,4.121581701041971e-5,2.484844677700392e-8,-0.0010992250658169746,4.1472215284716905e-5,2.4992557013455944e-8,-0.0010991556460179283,4.1574464276116506e-5,2.505058969589844e-8,-0.0010990652089385281,4.1527398961356164e-5,2.5026265284520233e-8,-0.001098898156768374,4.1375312448001e-5,2.4945200752454744e-8,-0.0010986280334354423,4.118167475058328e-5,2.484337320183111e-8,-0.0010982574815838655,4.100937470290851e-5,2.4755843824772127e-8,-0.0010978110406426043,4.090738485072404e-5,2.4709226856153248e-8,-0.0010973257121964122,4.0904499228446404e-5,2.471836767874099e-8,-0.0010968421791160742,4.10083665738254e-5,2.4786177550209052e-8,-0.0010963977347210852,4.120779805968306e-5,2.4905329142025246e-8,-0.0010960210677344888,4.147702335351955e-5,2.506090255556026e-8,-0.0010957289251758702,4.178110279291195e-5,2.5233456325869303e-8,-0.001095524697387541,4.2081778366454555e-5,2.540215364575196e-8,-0.0010953988246681838,4.2343079153780506e-5,2.5547670181248777e-8,-0.0010953307583887954,4.253610901231246e-5,2.5654681311269465e-8,-0.0010952920447938042,4.264254236325311e-5,2.571372890267199e-8,-0.0010952499739452775,4.2656633559821643e-5,2.5722338660353446e-8,-0.0010951713587064734,4.2585944785351156e-5,2.5685421940828945e-8,-0.0010950263137780906,4.245110365085979e-5,2.5615053368196092e-8,-0.001094792159453469,4.2284683294743016e-5,2.5529653777638224e-8,-0.0010944577225138132,4.212890345796607e-5,2.5452477208888395e-8,-0.0010940280855575993,4.2031223829935575e-5,2.5409021613321293e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_5.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_5.json new file mode 100644 index 000000000..3a712547f --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_5.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":5000,"numberOfSamples":1000,"samples":[-0.001093528836966317,4.203642676149489e-5,2.5422725793163846e-8,-0.0010930072646208094,4.217440867148639e-5,2.5508574660559997e-8,-0.0010925265640548522,4.2445448281040656e-5,2.566549440168746e-8,-0.0010921498584701538,4.280927315836898e-5,2.5870776828536737e-8,-0.0010919163003251823,4.318794211770871e-5,2.6081780444674054e-8,-0.001091820523294629,4.348883154959585e-5,2.624831762871915e-8,-0.00109181029138295,4.364045659227296e-5,2.6331989440280285e-8,-0.0010918072934319603,4.362110831307491e-5,2.6321766949888615e-8,-0.0010917391971531742,4.346321105608486e-5,2.6236404835428295e-8,-0.0010915640090047574,4.323393624900339e-5,2.611370862534541e-8,-0.0010912766199280236,4.3007345034387695e-5,2.599493426705449e-8,-0.0010909009016498547,4.284299979150903e-5,2.5912727223068096e-8,-0.001090476431342811,4.277625215835485e-5,2.5885719367964947e-8,-0.0010900465218413144,4.2817753215300766e-5,2.5918503099339365e-8,-0.0010896499951765957,4.2957752709860237e-5,2.6004412180594708e-8,-0.0010893164869373976,4.3171842376795946e-5,2.612906955898042e-8,-0.0010890641035068592,4.34265580743787e-5,2.6273675178051805e-8,-0.0010888984776027527,4.3684563677071033e-5,2.6417842719480934e-8,-0.0010888129019089097,4.3909513777838174e-5,2.65421057988998e-8,-0.0010887895341848287,4.407054827337014e-5,2.663018859077577e-8,-0.0010888016920848876,4.4146217427231046e-5,2.667102788931276e-8,-0.001088817192482838,4.4127450376416946e-5,2.6660363442769395e-8,-0.0010888024752733671,4.401909753500576e-5,2.6601590837686793e-8,-0.0010887270459753056,4.383981898364833e-5,2.65056658451493e-8,-0.0010885677996571497,4.362036647066958e-5,2.639002532249307e-8,-0.0010883129235325867,4.3400346577718806e-5,2.627658759927833e-8,-0.0010879651578661836,4.322346930498476e-5,2.6188934255361087e-8,-0.001087544097987234,4.313109216854214e-5,2.6148709458164907e-8,-0.001087086674855694,4.315374123594729e-5,2.617116796712862e-8,-0.001086644066498112,4.330094126455337e-5,2.6260046435218025e-8,-0.0010862728381159504,4.3551620609182124e-5,2.640284239026193e-8,-0.00108601928226965,4.38502022017017e-5,2.656903579292576e-8,-0.0010859001135970722,4.411523709589743e-5,2.6714781887700585e-8,-0.0010858889754997796,4.426383145393484e-5,2.6795876138844725e-8,-0.0010859203351680025,4.424423453619814e-5,2.6785128110422738e-8,-0.001085913618912209,4.4058578601592776e-5,2.668460538734044e-8,-0.001085805393800295,4.376072785978275e-5,2.6524487039470494e-8,-0.0010855708545136362,4.343117507166159e-5,2.6349304657863846e-8,-0.0010852250584937636,4.314592290426317e-5,2.620071963961655e-8,-0.0010848090868554553,4.295570916633156e-5,2.6105975798650347e-8,-0.001084372654611788,4.2880291469861494e-5,2.6074830737518084e-8,-0.0010839610398885847,4.291308032542563e-5,2.6102403255115617e-8,-0.0010836081790852113,4.302959653013973e-5,2.6174200961517643e-8,-0.0010833344520610171,4.3195574161869046e-5,2.6270850944433867e-8,-0.001083146945167361,4.3373198164366636e-5,2.637160337223827e-8,-0.0010830405767407777,4.352569954505452e-5,2.645674242392391e-8,-0.0010829995124754573,4.3621083270509026e-5,2.6509425138913995e-8,-0.001082998991414148,4.363548696163819e-5,2.6517334874121295e-8,-0.0010830078695757855,4.3556232067080865e-5,2.6474252100274967e-8,-0.0010829921546684827,4.338421730365343e-5,2.638134536379059e-8,-0.0010829195457739626,4.313495597945831e-5,2.6247737743075178e-8,-0.0010827645199852117,4.2837568459182473e-5,2.6089894868217516e-8,-0.0010825131481838203,4.2531405839397756e-5,2.5929625306960433e-8,-0.0010821667257754604,4.2260415291339646e-5,2.5790800121408916e-8,-0.001081743391863589,4.2065789758412284e-5,2.5695202717475755e-8,-0.0010812771260442285,4.197779093233889e-5,2.5658116797976546e-8,-0.00108081368235774,4.2007788209395396e-5,2.5684279138019833e-8,-0.0010804030553122393,4.214188129809646e-5,2.5764875776401685e-8,-0.0010800884167244415,4.2338329128859495e-5,2.5876603076949472e-8,-0.001079892778156456,4.2531881372048156e-5,2.598424858567189e-8,-0.001079807154698478,4.264767562282009e-5,2.6048107274120274e-8,-0.0010797867060579334,4.262394191909685e-5,2.6035904077434437e-8,-0.001079760973783162,4.243610779021697e-5,2.593546226975552e-8,-0.0010796577282035234,4.210950720238184e-5,2.5761387251077892e-8,-0.00107942993302375,4.171117273294466e-5,2.555057096694696e-8,-0.001079071274203828,4.132383281774707e-5,2.5348037433669575e-8,-0.001078613065447523,4.101676275871758e-5,2.5191031444188244e-8,-0.0010781076445001167,4.082789625905243e-5,2.509930154443339e-8,-0.0010776094725232313,4.076147500814069e-5,2.507401361434535e-8,-0.0010771620659250866,4.079616385676292e-5,2.5102488709573008e-8,-0.001076792527426751,4.089624684549766e-5,2.5164595184415124e-8,-0.001076511483357941,4.102115014348993e-5,2.523807558214155e-8,-0.001076315486299618,4.1131846253385905e-5,2.530198861820359e-8,-0.00107618985214185,4.1194730844247526e-5,2.533864785318205e-8,-0.0010761111699562399,4.118418519494565e-5,2.5334821170315685e-8,-0.0010760496321073894,4.1084740905426734e-5,2.5282775112651636e-8,-0.0010759717151872302,4.089317638698599e-5,2.5181368331821842e-8,-0.0010758437806077928,4.062025720268964e-5,2.5037000465379675e-8,-0.001075636874965737,4.029124488214523e-5,2.4863872287821255e-8,-0.001075332344175619,3.994403311673042e-5,2.4682887122784044e-8,-0.0010749270772761371,3.962409533524119e-5,2.4518755050929554e-8,-0.0010744366625150808,3.937631781230898e-5,2.439541151761965e-8,-0.0010738948032005251,3.92350369958662e-5,2.433057466908826e-8,-0.0010733481764564313,3.9214698025557454e-5,2.433083409288902e-8,-0.0010728472503692334,3.930384295442124e-5,2.4388737863373705e-8,-0.0010724347731497891,3.94645175457536e-5,2.44828950313044e-8,-0.0010721343835682733,3.9638151634969455e-5,2.458148402653822e-8,-0.001071942205574794,3.9757775235519326e-5,2.4648932372444277e-8,-0.001071824440490328,3.976485588304506e-5,2.4654800605721794e-8,-0.0010717234455627444,3.962693202706781e-5,2.4582909766611626e-8,-0.0010715727554048086,3.935008138551149e-5,2.4437676459267312e-8,-0.0010713175244551965,3.8979848282591754e-5,2.4244352737564492e-8,-0.0010709326265880106,3.858785169979547e-5,2.4041693976913273e-8,-0.0010704300073954966,3.8248525783302696e-5,2.386941805332488e-8,-0.0010698520086136918,3.801636200014798e-5,2.375603419291011e-8,-0.0010692550526086402,3.791333074165718e-5,2.371227592816189e-8,-0.0010686922574283954,3.792939556885814e-5,2.3731673323543086e-8,-0.0010682017404291997,3.80320722103819e-5,2.379598347049132e-8,-0.0010678024504110503,3.8178531959137147e-5,2.3881867002065674e-8,-0.001067495548138812,3.832556322890049e-5,2.3966240581430207e-8,-0.001067268273277274,3.843582509864842e-5,2.4029501058277472e-8,-0.0010670980487706369,3.848102746680633e-5,2.4057051807740725e-8,-0.0010669558863532884,3.844342728250387e-5,2.4039967070581163e-8,-0.001066809160826231,3.8316803241082525e-5,2.3975457859135465e-8,-0.0010666243579828204,3.810746586828673e-5,2.386741669396789e-8,-0.0010663705574710293,3.7835149903862285e-5,2.3726898442079206e-8,-0.0010660241691441985,3.753288897009294e-5,2.3571997852970833e-8,-0.0010655747063436035,3.724442359481839e-5,2.3426335194630528e-8,-0.0010650302250668731,3.701779702157739e-5,2.331547794071486e-8,-0.0010644199291991467,3.68949742785659e-5,2.3261297539301097e-8,-0.001063791223981958,3.6899545236002384e-5,2.327544760228617e-8,-0.0010632000453968727,3.7026820203446666e-5,2.335429289972638e-8,-0.0010626963599818942,3.7241111127013385e-5,2.3477789197827204e-8,-0.0010623095681190381,3.748268981872828e-5,2.3613519575245354e-8,-0.0010620391726174265,3.768289862153553e-5,2.3724946388273585e-8,-0.0010618540779868658,3.7782581455481364e-5,2.3781234371721873e-8,-0.0010617006609737272,3.7748061352030124e-5,2.3765573920194672e-8,-0.0010615170480434892,3.758012724746697e-5,2.367965267011593e-8,-0.0010612495768359004,3.731371428715724e-5,2.3543130785882002e-8,-0.0010608669746345562,3.700835235428079e-5,2.3388256328231037e-8,-0.001060368182069979,3.6731912216637085e-5,2.325105313533104e-8,-0.0010597813426304625,3.654245594481344e-5,2.316169727120985e-8,-0.0010591544075762823,3.647402066316346e-5,2.313718174627855e-8,-0.0010585410167500333,3.653074230958909e-5,2.317853751683003e-8,-0.001057986920975386,3.669012758790272e-5,2.327290785733631e-8,-0.0010575211579176061,3.691257472653399e-5,2.339881300069309e-8,-0.001057153350837812,3.715260399430297e-5,2.3532138314401993e-8,-0.0010568758374386459,3.736812754225494e-5,2.365093104713143e-8,-0.0010566681914793606,3.752620921432137e-5,2.3738273286109503e-8,-0.0010565020401735535,3.760563844652094e-5,2.378349597906288e-8,-0.0010563451015339039,3.759754719033252e-5,2.3782437194464704e-8,-0.0010561643423562313,3.750528822528541e-5,2.3737377447389552e-8,-0.001055928777775758,3.734426906295574e-5,2.365696343832137e-8,-0.0010556126783150875,3.714173971895337e-5,2.3556054900511646e-8,-0.0010551998123746519,3.693577609363618e-5,2.3455071168099988e-8,-0.0010546886977346502,3.677200754758798e-5,2.3378106802298378e-8,-0.001054097575413405,3.66964742503015e-5,2.33490503669857e-8,-0.001053466266416154,3.674410830929957e-5,2.338552532428398e-8,-0.0010528513171096396,3.6925144473778674e-5,2.3491902560416617e-8,-0.0010523125721679219,3.721530665965493e-5,2.365441113669717e-8,-0.0010518941136466624,3.7556866487537555e-5,2.384196911473466e-8,-0.001051607652331739,3.787365765176419e-5,2.4014260649323585e-8,-0.0010514271013640408,3.809514403546298e-5,2.4134458275138142e-8,-0.001051297410707953,3.8178799703989044e-5,2.4180962088243847e-8,-0.001051153003686843,3.812136015142763e-5,2.415318391268279e-8,-0.00105093733776516,3.795628189484318e-5,2.4069945427589834e-8,-0.001050616809646753,3.7741095264425834e-5,2.396246019827039e-8,-0.0010501863481547247,3.754067586859115e-5,2.3865199592522806e-8,-0.0010496673073456411,3.7411575394765774e-5,2.380750812194908e-8,-0.0010490998191358019,3.739064048823195e-5,2.380774834712807e-8,-0.0010485322021737509,3.748944550858809e-5,2.38707245777141e-8,-0.0010480100257824426,3.769477583367159e-5,2.398835336975793e-8,-0.0010475672083879396,3.797425178348991e-5,2.4142928600404912e-8,-0.0010472208647171518,3.8285082197056416e-5,2.4311824887822292e-8,-0.0010469704046910332,3.858335909600687e-5,2.4472287017073512e-8,-0.0010468001087383734,3.883168894481607e-5,2.4605240478689e-8,-0.0010466836675630368,3.900401645641016e-5,2.469763622155349e-8,-0.0010465891449321784,3.9087623690885925e-5,2.4743396088065535e-8,-0.00104648333056439,3.908308679776768e-5,2.4743374271449885e-8,-0.0010463351903678341,3.900321589613522e-5,2.4704818833201865e-8,-0.0010461187174899236,3.887169112109677e-5,2.4640634398441143e-8,-0.0010458157657489216,3.872153411276594e-5,2.456847676636226e-8,-0.0010454194198092652,3.8592904649491364e-5,2.4509434847279802e-8,-0.0010449379598351336,3.85290470767447e-5,2.4485769249212857e-8,-0.0010443983417922637,3.8568960460999586e-5,2.4517067123617403e-8,-0.0010438466104127784,3.8736263817727636e-5,2.4614598497805885e-8,-0.0010433416549984493,3.902636136480175e-5,2.477493404220497e-8,-0.0010429399987465788,3.9398027050649106e-5,2.4975871277955936e-8,-0.0010426746362297934,3.9777843434769186e-5,2.5178904654138547e-8,-0.0010425380922074639,4.0081503788804406e-5,2.5340291710930592e-8,-0.0010424814444555638,4.0244644241275436e-5,2.5427023133151833e-8,-0.0010424322947735387,4.024690202392131e-5,2.5429321392407133e-8,-0.0010423219582340482,4.01162830340403e-5,2.5362869290134385e-8,-0.0010421073140257824,3.9914219183457514e-5,2.526080398688154e-8,-0.0010417790504298643,3.9712303792083824e-5,2.5161204349048078e-8,-0.001041357514815806,3.957206053756882e-5,2.509620077309175e-8,-0.0010408820867983744,3.953305791576254e-5,2.5085701841939114e-8,-0.0010403994183290342,3.960922925354849e-5,2.5135719972456448e-8,-0.001039953473752625,3.979097235888994e-5,2.5239903766051643e-8,-0.0010395783534878653,4.005056096735985e-5,2.538278306056733e-8,-0.0010392939602767437,4.034918264408066e-5,2.5543680164653243e-8,-0.001039104389012981,4.0644480901831106e-5,2.5700644896490313e-8,-0.0010389988421567525,4.089757785496551e-5,2.5833941072896978e-8,-0.0010389545970551956,4.107865514075927e-5,2.5928726316951552e-8,-0.0010389412824983889,4.11705030871186e-5,2.5976731161695342e-8,-0.001038925600905446,4.116986580467381e-5,2.5976894786312716e-8,-0.0010388757116827172,4.108687415422475e-5,2.5935077860987764e-8,-0.0010387648487817887,4.094320887370908e-5,2.586310945168862e-8,-0.0010385741873378635,4.0769583233729096e-5,2.5777407288912374e-8,-0.0010382952268426782,4.0602784133407614e-5,2.569728649515853e-8,-0.0010379320091739295,4.04820837611387e-5,2.564292327050562e-8,-0.0010375031926033312,4.0444330838904017e-5,2.56327270085341e-8,-0.0010370431136598767,4.0516825192555824e-5,2.5679750881275533e-8,-0.0010365998252919112,4.07078727032145e-5,2.5787103029239512e-8,-0.0010362274507746704,4.0997023108730364e-5,2.59432896351184e-8,-0.0010359711779905647,4.133023718538513e-5,2.6120005918730713e-8,-0.0010358476721283505,4.1627586877103866e-5,2.6276137158887212e-8,-0.0010358308191826967,4.180745449119192e-5,2.6370052259346927e-8,-0.0010358552027499252,4.18193769451226e-5,2.6376375102413223e-8,-0.0010358403135057738,4.166678727036104e-5,2.6297719124715485e-8,-0.0010357228189093813,4.140456572009227e-5,2.6163449539399887e-8,-0.0010354780401623975,4.111391003936417e-5,2.6016503918615263e-8,-0.0010351214402610947,4.0871490524131414e-5,2.5897043112633257e-8,-0.0010346952781462417,4.0728626709958974e-5,2.5831362930703574e-8,-0.0010342513894169626,4.070496768499591e-5,2.582864079884688e-8,-0.0010338376130666347,4.0792468598692156e-5,2.588333975697396e-8,-0.001033489928572441,4.09637112677769e-5,2.5979990127741127e-8,-0.0010332292836012598,4.118057987218832e-5,2.6098059615421084e-8,-0.0010330613284611158,4.140165888760393e-5,2.6215931638488723e-8,-0.0010329777530100068,4.158819846524718e-5,2.631390656871405e-8,-0.0010329586810779521,4.170886241656704e-5,2.6376437158564403e-8,-0.001032975936317296,4.1743274993385874e-5,2.6393736765147437e-8,-0.0010329969885598913,4.168421213030391e-5,2.636277559384442e-8,-0.0010329892783965391,4.153821954893292e-5,2.62875676595281e-8,-0.0010329244588995863,4.132454750884092e-5,2.6178635261370543e-8,-0.001032782060381272,4.10726094101633e-5,2.6051674387741775e-8,-0.0010325522769319654,4.0818357819433007e-5,2.5925576579428118e-8,-0.0010322377709549141,4.0599882712942876e-5,2.5819988038191913e-8,-0.0010318544785740738,4.045240035953763e-5,2.575258468299546e-8,-0.001031431325710975,4.0402610592020545e-5,2.5736166079833738e-8,-0.0010310082903914864,4.04622844238969e-5,2.577556155474702e-8,-0.0010306315696239265,4.062155526853457e-5,2.586455506912295e-8,-0.0010303445107737654,4.084394736602622e-5,2.5983723580936618e-8,-0.00103017415051348,4.106712011714914e-5,2.6101034286724267e-8,-0.00103011645990442,4.121429379152592e-5,2.617762452180817e-8,-0.0010301283373702107,4.1218183604357294e-5,2.617978519094077e-8,-0.0010301360479824519,4.1049891214193474e-5,2.6093535091742128e-8,-0.0010300617418679534,4.073592787552085e-5,2.5933314593629573e-8,-0.0010298552834028627,4.0349707833675383e-5,2.5737635695545288e-8,-0.0010295123624857808,3.9981058901976845e-5,2.555325702866578e-8,-0.0010290699371210256,3.970266737753418e-5,2.541762182017323e-8,-0.0010285862799355606,3.95510226577242e-5,2.5348871652570656e-8,-0.001028119665030133,3.952567217658717e-5,2.5345604153804084e-8,-0.0010277146398166707,3.9599592103778894e-5,2.5392608827923747e-8,-0.0010273969445857086,3.9732019239784237e-5,2.54679029136312e-8,-0.0010271741439923543,3.987889635605635e-5,2.554837330653049e-8,-0.0010270387420002831,3.999979218338487e-5,2.5613362144150908e-8,-0.0010269717730998133,4.006209216467498e-5,2.564665439659544e-8,-0.0010269462335600545,4.004361181148552e-5,2.563758062373979e-8,-0.001026930475247916,3.993429582593155e-5,2.5581696150718296e-8,-0.0010268917955752411,3.9737131056284514e-5,2.54811632465487e-8,-0.0010268003254188763,3.946803547779058e-5,2.5344696049297998e-8,-0.001026633045285693,3.9154302349015926e-5,2.51867793373167e-8,-0.001026377413673644,3.883136780108241e-5,2.502596843310329e-8,-0.0010260339595217747,3.8538067531633994e-5,2.4882331374804033e-8,-0.00102561729797183,3.8310807330376756e-5,2.477430480252826e-8,-0.0010251551932449294,3.8177261675103885e-5,2.471538175976041e-8,-0.001024685487708184,3.8150384280356484e-5,2.4711128828705612e-8,-0.0010242508292970316,3.822352571453758e-5,2.475696413222644e-8,-0.0010238910923221203,3.836763523516221e-5,2.4837113045173785e-8,-0.0010236336767047106,3.853222377882937e-5,2.492543131105467e-8,-0.0010234830537858264,3.865239008611646e-5,2.49891058187856e-8,-0.0010234129983969168,3.8663590948988006e-5,2.4996031285257513e-8,-0.0010233670245726736,3.852273512816904e-5,2.492524814844594e-8,-0.001023271959887443,3.822833359285693e-5,2.4776942964655382e-8,-0.0010230632432314934,3.782769524653137e-5,2.4575998844550145e-8,-0.0010227107525744934,3.740279961889332e-5,2.436473371991324e-8,-0.0010222302402959167,3.703969137491942e-5,2.418716232193019e-8,-0.0010216740030515826,3.6798124988745376e-5,2.4073362152007457e-8,-0.001021108290579188,3.669683896443461e-5,2.4031974626159863e-8,-0.0010205912572348655,3.6717350983459955e-5,2.4052398420585333e-8,-0.0010201604372997207,3.681830406381751e-5,2.411249122180296e-8,-0.0010198303307530497,3.6950727918991715e-5,2.418666800590093e-8,-0.0010195960756659162,3.706898533184759e-5,2.4251597017513103e-8,-0.001019439056359185,3.713670445797552e-5,2.4289132019925126e-8,-0.001019332059571601,3.7129221763336125e-5,2.428734485125245e-8,-0.0010192433493335681,3.70343141516297e-5,2.4240686043212892e-8,-0.0010191400194511332,3.685229866278754e-5,2.4149908608415946e-8,-0.0010189911883879065,3.659580376531763e-5,2.402192783224623e-8,-0.0010187714343872375,3.628895436908966e-5,2.3869435845986977e-8,-0.0010184645132939021,3.596533710163379e-5,2.3709873676371996e-8,-0.001018066855839815,3.566412672527142e-5,2.3563393719128077e-8,-0.0010175898667280023,3.542425031334137e-5,2.3449761052332165e-8,-0.0010170599390659412,3.5277162817117435e-5,2.3384558945173422e-8,-0.001016515394012989,3.523949770501541e-5,2.3375440811865953e-8,-0.0010160002224420199,3.530738001007149e-5,2.3419397704779323e-8,-0.0010155553831384591,3.545419198619564e-5,2.3501928264935122e-8,-0.001015209142874551,3.563302488615149e-5,2.3598624983890202e-8,-0.0010149684067089226,3.5784346527384886e-5,2.3679292211144022e-8,-0.0010148133891465872,3.584860072421633e-5,2.3714344288769612e-8,-0.0010146982630651578,3.5782055660811007E-05,2.3682629377636572e-8,-0.0010145599654888093,3.557207326886522e-5,2.3578848270284908e-8,-0.0010143351722388912,3.5245823371830506e-5,2.3417678410022003e-8,-0.0010139811800521554,3.486632047924191e-5,2.3231576085062046e-8,-0.001013492050599654,3.4513974439642034e-5,2.3061330561170134e-8,-0.0010129013184621315,3.4259974954934804e-5,2.2942555475658693e-8,-0.0010122691652813616,3.4143842428325755e-5,2.289440024171102e-8,-0.001011660964001645,3.416527319904436e-5,2.291564249859294e-8,-0.0010111280235503381,3.429134318278579e-5,2.2988645742694414e-8,-0.0010106976785511353,3.447205752042876e-5,2.3087503664077148e-8,-0.0010103730798261847,3.465571175252602e-5,2.3185940039964153e-8,-0.0010101387428839818,3.479919616418346e-5,2.3262469964226124e-8,-0.0010099675794849883,3.487271276682596e-5,2.3302608900919384e-8,-0.0010098269209837737,3.4860699206272e-5,2.3299134968487392e-8,-0.0010096829020666328,3.476102080226269e-5,2.3251535621906485e-8,-0.0010095036482449427,3.4583741581220033e-5,2.316533851284319e-8,-0.00100926202814437,3.434990375649573e-5,2.3051517011118484e-8,-0.0010089385902406682,3.409004467856952e-5,2.2925769286763956e-8,-0.0010085248696185096,3.384168830235557e-5,2.2807227493595864e-8,-0.0010080265806791115,3.3644931550302674e-5,2.2716140262856692e-8,-0.0010074654828322916,3.353571640167953e-5,2.26703687608163e-8,-0.0010068782778092742,3.353743271134205e-5,2.268110345686206e-8,-0.0010063112194841138,3.36528689313314e-5,2.274888894220196e-8,-0.0010058104572475534,3.3859569732431347e-5,2.286150383963712e-8,-0.0010054101212326877,3.411145176628525e-5,2.2995062591133473e-8,-0.0010051217418514823,3.434769733360527e-5,2.3118734876600543e-8,-0.0010049287823506632,3.450726125747007e-5,2.3202145373587556e-8,-0.0010047886815621875,3.454511779650876e-5,2.3223469127649264e-8,-0.001004642523791172,3.444551550645358e-5,2.317587375654054e-8,-0.0010044301777682276,3.4228082912857005e-5,2.307029016040388e-8,-0.0010041070053985303,3.394428660482434e-5,2.293333606477324e-8,-0.0010036572007801948,3.366424530591849e-5,2.280046957873214e-8,-0.0010030989670374397,3.3457142010512746e-5,2.2706067870780697e-8,-0.001002478977520436,3.3371580578821594e-5,2.2673661179006083e-8,-0.0010018578283530568,3.342312200493025e-5,2.2709939398912565e-8,-0.0010012922882052613,3.359334378293894e-5,2.2804621910948108e-8,-0.0010008212275209021,3.3839363188058443e-5,2.2935524319804295e-8,-0.0010004594328713067,3.410840614322706e-5,2.3076001992787873e-8,-0.0010001992187818722,3.4351274842747164e-5,2.320166356575127e-8,-0.0010000167281470184,3.453101661995363e-5,2.3294552412610813e-8,-9.998793317252265e-4,3.462633409658824e-5,2.3344654270450874e-8,-9.997518470452732e-4,3.4631318428131296e-5,2.3349607127017085e-8,-9.996009199043014e-4,3.455348552109253e-5,2.3313647478180466e-8,-9.9939795849614e-4,3.44114906802232e-5,2.3246470434010358e-8,-9.99121407187035e-4,3.4233040893128126e-5,2.3162210737379513e-8,-9.987590833800812e-4,3.405276743515656e-5,2.3078368950141786e-8,-9.983108679056524e-4,3.390926822320403e-5,2.3014265042933495e-8,-9.97791306534957e-4,3.384032770146051e-5,2.2988554306834156e-8,-9.972307991430098e-4,3.3875718713881964e-5,2.3015580148524872e-8,-9.966733564831009e-4,3.4028221102158114e-5,2.310094837163757e-8,-9.961691020362934e-4,3.428546408696686e-5,2.3237638825588425e-8,-9.957615865134595e-4,3.46069401339788e-5,2.3404762682669036e-8,-9.954733186501152e-4,3.493021100327155e-5,2.357086532821176e-8,-9.952956330342465e-4,3.5186762200118035e-5,2.370192787102682e-8,-9.95188477807128e-4,3.532262383638006e-5,2.377162507367407e-8,-9.950913872963697e-4,3.5315508210565336e-5,2.376975873492727e-8,-9.94941500795456e-4,3.518154860532421e-5,2.3705430116577784e-8,-9.946916452042978e-4,3.496972133573339e-5,2.3603993034892922e-8,-9.943224955306555e-4,3.4747072949003844e-5,2.3499389344168517e-8,-9.938459958236127e-4,3.458033160070616e-5,2.3424766870853507e-8,-9.933002965673123e-4,3.451936283405707e-5,2.3404222600228282e-8,-9.92738532106868e-4,3.4586492210376424e-5,2.34477123751599e-8,-9.922149570488884e-4,3.47737697346077e-5,2.35500702634693e-8,-9.917723365169562e-4,3.504802300243e-5,2.369389615669735e-8,-9.91433801696836e-4,3.536137626092322e-5,2.385500900287136e-8,-9.912006576782077e-4,3.566352992413874e-5,2.4008564476421496e-8,-9.910555099664157e-4,3.591217265700787e-5,2.4134077453991628e-8,-9.909685467225334e-4,3.607935109184319e-5,2.4218367354514807e-8,-9.90904493799253e-4,3.615353059249766e-5,2.4256393376223053e-8,-9.90828480212809e-4,3.613845925610944e-5,2.4250587005171246e-8,-9.90710154736621e-4,3.605041340979941e-5,2.420946428455628e-8,-9.905262925749175e-4,3.5915102415850375e-5,2.4146106990416895e-8,-9.902625674466235e-4,3.576480559520487e-5,2.407673810359449e-8,-9.899151595612757e-4,3.563558997580312e-5,2.4019285840091026e-8,-9.894925239248037e-4,3.556393259086711e-5,2.399161892926978e-8,-9.890169789091286e-4,3.558183032668142e-5,2.400906596769323e-8,-9.885248529442735e-4,3.570977187754583e-5,2.4080982598891237e-8,-9.880631022206629e-4,3.594816942793109e-5,2.4206693186517794e-8,-9.876803749587692e-4,3.6270078383065484e-5,2.4372152484305683e-8,-9.874125517596248e-4,3.662032117452578e-5,2.4549731590826265e-8,-9.872671120179847e-4,3.6926008414473374e-5,2.470348797116585e-8,-9.872146960178598e-4,3.7118461255131244e-5,2.4799926090503432e-8,-9.871951531337715e-4,3.715829143129886e-5,2.482028574407889e-8,-9.871375620403313e-4,3.705077677427379e-5,2.476806781996489e-8,-9.869847448893906e-4,3.684329236067619e-5,2.466765451933042e-8,-9.867105450566658e-4,3.660725536650436e-5,2.4555140657066402e-8,-9.86323904247596e-4,3.641469724773145e-5,2.4466432455541804e-8,-9.858615016007492e-4,3.631928880259697e-5,2.442766534764061e-8,-9.85374633250025e-4,3.634645237112784e-5,2.4450388419430107e-8,-9.849156337300748e-4,3.649235218034662e-5,2.453139904021426e-8,-9.845270231932197e-4,3.672923823051199e-5,2.465582036281864e-8,-9.842346708626541e-4,3.7014300862134964e-5,2.4801822245291615e-8,-9.840451716688692e-4,3.729969081586018e-5,2.4945700886248175e-8,-9.839470708571595e-4,3.754181375466232e-5,2.5066377411016933e-8,-9.839150653915634e-4,3.770836043790428e-5,2.514864253568232e-8,-9.83915845150665e-4,3.778218739727299e-5,2.5184832131647895e-8,-9.839141440703577e-4,3.776204586365129e-5,2.5175023720621267e-8,-9.838778946578378e-4,3.7660825559131726e-5,2.5126110722890017e-8,-9.837819111355383e-4,3.750231363693385e-5,2.5050212268447694e-8,-9.83610120160167e-4,3.731747931219535e-5,2.4962853060990782e-8,-9.833567922937184e-4,3.714089212336408e-5,2.4881163070795294e-8,-9.830272886633775e-4,3.700727412351498e-5,2.4822096717103307e-8,-9.826385911278707e-4,3.69477424015823e-5,2.4800505830703303e-8,-9.82219396284537e-4,3.698509836147771e-5,2.4826830050034716e-8,-9.818087670899545e-4,3.712771767756578e-5,2.4904243886600084e-8,-9.814515702841564e-4,3.7362648046258683e-5,2.5025539421476875e-8,-9.811889802018954e-4,3.7650571338024e-5,2.5170939795615703e-8,-9.810442154511204e-4,3.792755371116602e-5,2.5309102919604293e-8,-9.810080333830023e-4,3.811864493199592e-5,2.5403711739960307e-8,-9.81033207624282e-4,3.8163102204115404e-5,2.5425633123846726e-8,-9.810462359989666e-4,3.804100654306584e-5,2.5365828059548833e-8,-9.809743731534347e-4,3.778505688611488e-5,2.524112956896296e-8,-9.807739041156364e-4,3.746843502401319e-5,2.508825210734586e-8,-9.804438663459916e-4,3.717577379911337e-5,2.4949313572355698e-8,-9.800204118408863e-4,3.697428727925494e-5,2.485733884169189e-8,-9.795593431768212e-4,3.6897909348930136e-5,2.4828320900585492e-8,-9.791176972697106e-4,3.694613487266822e-5,2.4860822858248447e-8,-9.78740821256568e-4,3.709208601691692e-5,2.4940346749398108e-8,-9.784561041063255e-4,3.7293678129001164e-5,2.5045249521682385e-8,-9.782718489133458e-4,3.7504071244625615e-5,2.5152145120602866e-8,-9.781792758595254e-4,3.7679941882763186e-5,2.5239992535436655e-8,-9.781562333794412e-4,3.778745647138105e-5,2.5292850462091087e-8,-9.781718882523143e-4,3.780606999115621e-5,2.530147602469855e-8,-9.781918620216884e-4,3.773013883351006e-5,2.5263886480747403e-8,-9.781832167389938e-4,3.7568458080856365e-5,2.518501010675023e-8,-9.78118742072559e-4,3.7342042791065954e-5,2.507558218052921e-8,-9.779801236071979e-4,3.708061130398327e-5,2.4950452157285786e-8,-9.777597868775496e-4,3.681839353569755e-5,2.4826535622686178e-8,-9.774615375963498e-4,3.6589861622145944e-5,2.47206704952449e-8,-9.771002958644923e-4,3.642562803302159e-5,2.464752335844287e-8,-9.767011177636903e-4,3.6348412775412787e-5,2.461757103592887e-8,-9.762974059618317e-4,3.636884684333104e-5,2.463512177599872e-8,-9.759277035517238e-4,3.648101405343806e-5,2.4696356361916733e-8,-9.75629951246629e-4,3.665840901177218e-5,2.4787660934629145e-8,-9.754322748465593e-4,3.685252659570957e-5,2.4885193908702775e-8,-9.75340987613693e-4,3.699788916582287e-5,2.495739454375517e-8,-9.753299684090048e-4,3.702722840929396e-5,2.4972198717358794e-8,-9.753395265608093e-4,3.689599167738356e-5,2.490869287630752e-8,-9.752920720559031e-4,3.6606102877796636e-5,2.4768523544825133e-8,-9.751219280535475e-4,3.62127126348543e-5,2.457919604533296e-8,-9.748035378869218e-4,3.580501071706199e-5,2.4384716721739845e-8,-9.743604317943561e-4,3.5470563709328834E-05,2.4228018734390125e-8,-9.738510761405169e-4,3.526450154078282e-5,2.4135686744524703e-8,-9.733435765106256e-4,3.519840608946445e-5,2.411249078547065e-8,-9.728943634004211e-4,3.5247780682422384e-5,2.4145284649450995e-8,-9.725377477092212e-4,3.536768335651393e-5,2.4211049479849402e-8,-9.722848444423038e-4,3.550754893515966e-5,2.428448154165182e-8,-9.72127563371285e-4,3.562150854076412e-5,2.4343174928178926e-8,-9.720441769973178e-4,3.567417242302132e-5,2.437035998268252e-8,-9.720046367152485e-4,3.56432887461309e-5,2.4355963585866076e-8,-9.719752390974952e-4,3.552063301357858e-5,2.4296779131561367e-8,-9.719228596586245e-4,3.531171554305102e-5,2.4196141313711178e-8,-9.718188423673552e-4,3.503437202507118e-5,2.406317927089353e-8,-9.716423998941957e-4,3.471621408885309e-5,2.3911605715671775e-8,-9.713832408989576e-4,3.439096166140005e-5,2.3757978780585042e-8,-9.710430366130846e-4,3.409389102193965e-5,2.361948593481193e-8,-9.70635446133547e-4,3.3856923351839665e-5,2.3511491505683215e-8,-9.701846919981149e-4,3.370390574741038e-5,2.3445165212560717e-8,-9.697228228770885e-4,3.364647614797688e-5,2.342546325722505e-8,-9.692857745624962e-4,3.368081166293388e-5,2.3449670440655165e-8,-9.689081926968012e-4,3.378557365972413e-5,2.3506650641077334e-8,-9.686168099705691e-4,3.392170644199995e-5,2.357703705485365e-8,-9.684224658620934e-4,3.4035563171401795e-5,2.3634937383161203e-8,-9.68312113340623e-4,3.406746818840269e-5,2.3652061632635778e-8,-9.682443258694862e-4,3.396706662113197e-5,2.3604922859051918e-8,-9.681538286062369e-4,3.371329935534211e-5,2.348419799835916e-8,-9.679692761326831e-4,3.333058404686902e-5,2.330235800983941e-8,-9.676407409410866e-4,3.2888734991917684e-5,2.3093584924486144e-8,-9.671629996624705e-4,3.2480309923178234e-5,2.2902797651000153e-8,-9.665791080763037e-4,3.2184835146996645e-5,2.276825671546724e-8,-9.659613244934983e-4,3.204046428493923e-5,2.270778086296016e-8,-9.653822640887052e-4,3.203767611505963e-5,2.2715798323767404e-8,-9.648929276683705e-4,3.213287335072607e-5,2.2770213229558723e-8,-9.645149837962753e-4,3.226903530996189e-5,2.2842729866168465e-8,-9.642442355567376e-4,3.239247708087407e-5,2.2907171397624284e-8,-9.640587530216115e-4,3.24620993246358e-5,2.2943963859402317e-8,-9.639270001539048e-4,3.245248074250296e-5,2.2941464499432092e-8,-9.638140578411377e-4,3.235353569481727e-5,2.2895550510650823e-8,-9.6368595444148e-4,3.2168912493880215e-5,2.28086319018673e-8,-9.635128997527551e-4,3.191410788621952e-5,2.2688634455621677e-8,-9.632720633656184e-4,3.161432337084309e-5,2.2547969983926774e-8,-9.629500908473864e-4,3.1301728190777524e-5,2.2402276055104036e-8,-9.625451789726969e-4,3.101176374193039e-5,2.226867575507521e-8,-9.620681774777247e-4,3.077836455776551e-5,2.216345368450055e-8,-9.615420329416084e-4,3.0628500411465295e-5,2.209935540113096e-8,-9.609991467969121e-4,3.057690888665009e-5,2.2082994490797295e-8,-9.604766797714861e-4,3.062205911343596e-5,2.2112942498469528e-8,-9.600102747775835e-4,3.074434601472043e-5,2.2179018433807102e-8,-9.596270214263777e-4,3.090724439259373e-5,2.2263089974248304e-8,-9.593386562986945e-4,3.1061771792007744e-5,2.2341454918293274e-8,-9.591361349101454e-4,3.1154428547892235e-5,2.2388764734143828e-8,-9.589871735461636e-4,3.113854434292479e-5,2.2383389507898628e-8,-9.588390052667267e-4,3.0987899671081076e-5,2.23137088373979e-8,-9.586285812047179e-4,3.0709291166627064e-5,2.2183841699676357e-8,-9.583004549904042e-4,3.034807980718291e-5,2.20160808943815e-8,-9.578277490469907e-4,2.9980170319710332e-5,2.1846942684937246e-8,-9.572262091683876e-4,2.968886340238766e-5,2.1716059377740093e-8,-9.565515092747311e-4,2.953507814969651e-5,2.1651963566920276e-8,-9.558790138711099e-4,2.9536365304518656e-5,2.166217296734255e-8,-9.552767930981623e-4,2.9665583334704913e-5,2.173278583758932e-8,-9.547860467171304e-4,2.9867061406297094e-5,2.1836474927304304e-8,-9.544158266696612e-4,3.0078540975903094e-5,2.1943173400982044e-8,-9.541492278461368e-4,3.024805141205629e-5,2.20281932369835e-8,-9.539540335951516e-4,3.034185193150517e-5,2.2075920768301698e-8,-9.537924048895253e-4,3.0345247140230987e-5,2.208000983233228e-8,-9.536275311546465e-4,3.025982229495277e-5,2.204185499562896e-8,-9.534275077413425e-4,3.0099841725022342e-5,2.1968736705240954e-8,-9.531675967845711e-4,2.9889041402266785e-5,2.187225621318765e-8,-9.528318988517542e-4,2.9657867759765324e-5,2.1767059789256722e-8,-9.524149404686213e-4,2.9440645440285744e-5,2.1669541941369942e-8,-9.519231274636026e-4,2.9272003957849185e-5,2.1596154336982085e-8,-9.513754532627277e-4,2.9182105324352853e-5,2.156109047838405e-8,-9.508024505321581e-4,2.9190878090889825e-5,2.1573483188737836e-8,-9.502424663511357e-4,2.9302351813132366e-5,2.1634700321363326e-8,-9.49735030418587e-4,2.9500882232911995e-5,2.1736638845838566e-8,-9.493122042363756e-4,2.975120128025421e-5,2.1861931766478845e-8,-9.489899450602254e-4,3.0003488125871785e-5,2.19865714491652e-8,-9.487620601966599e-4,3.020311750055373e-5,2.2084695992892515e-8,-9.485988957950232e-4,3.030316317880326e-5,2.2134553407674564e-8,-9.484518091654521e-4,3.0276810472256283e-5,2.2124270364054122e-8,-9.482632222856166e-4,3.0126538386465414e-5,2.205597301242971e-8,-9.479807554179524e-4,2.9887047408005317e-5,2.194689841841948e-8,-9.475724436270446e-4,2.961960692398054e-5,2.1826477535904775e-8,-9.470384606933393e-4,2.9397309036501518e-5,2.1729216202936675e-8,-9.464140919087501e-4,2.9284117233135745e-5,2.168479093152599e-8,-9.457607135250013e-4,2.931474722874649e-5,2.1708699518209903e-8,-9.451468703045619e-4,2.948415363474355e-5,2.179756824154432e-8,-9.446272642077682e-4,2.975166154093429e-5,2.19313942223417e-8,-9.442287741878977e-4,3.005706659105484e-5,2.2081348790756766e-8,-9.439480612138644e-4,3.0340177706433605e-5,2.2219059244211306e-8,-9.437587330039747e-4,3.05555047742844e-5,2.232346391891961e-8,-9.436224123828684e-4,3.0678595514250895e-5,2.2383640253534496e-8,-9.434987028230832e-4,3.0705355294702186e-5,2.2398300631400305e-8,-9.433518093842979e-4,3.0647746413302585e-5,2.2373619930447855e-8,-9.431539596951896e-4,3.052879162175852e-5,2.2320812424416252e-8,-9.42886827941632e-4,3.0378337056025078e-5,2.2254139731918605e-8,-9.425421763466582e-4,3.0229750427711546e-5,2.2189391361884014e-8,-9.421224563862095e-4,3.011700715597695e-5,2.2142531937943215e-8,-9.416414774327706e-4,3.0071346469157127e-5,2.212810620989906e-8,-9.411245660268458e-4,3.0116816661240038e-5,2.215710354642401e-8,-9.406070615964384e-4,3.026467552618603e-5,2.2234316233793085e-8,-9.40129838692488e-4,3.050774422637882e-5,2.2355753528190237e-8,-9.397312194328286e-4,3.0817081031483444e-5,2.2507225708871276e-8,-9.394363651629871e-4,3.1143952690525606e-5,2.266544635054926e-8,-9.39247469629382e-4,3.14289902634384e-5,2.2802467253505157e-8,-9.391392811567771e-4,3.161734154321736e-5,2.28928419535772e-8,-9.390631834203985e-4,3.1675072753920046e-5,2.292128485717643e-8,-9.389595011470184e-4,3.160054917881444e-5,2.2887892684632222e-8,-9.38774017044829e-4,3.142629938669554e-5,2.2808821851867562E-08,-9.384731170441491e-4,3.121073248180759e-5,2.2712144428496986e-8,-9.380529653295315e-4,3.102263562512172e-5,2.2630329259409035e-8,-9.37540421932073e-4,3.0923179639618185e-5,2.2591680785415607e-8,-9.369857583175107e-4,3.095034383443137e-5,2.261312414301245e-8,-9.364492385837592e-4,3.1109898640259824e-5,2.269626110812058e-8,-9.359853619300495e-4,3.137546064701527e-5,2.2827755619925506e-8,-9.356295240548179e-4,3.16974681512932e-5,2.2983821119346855e-8,-9.353911527823038e-4,3.2017802198202046e-5,2.313717510433112e-8,-9.35254811672147e-4,3.228479107023496e-5,2.326399499414142e-8,-9.351875597689146e-4,3.2463820357644084e-5,2.3348709349042408e-8,-9.351488611202442e-4,3.2541398176328435e-5,2.338570291153537e-8,-9.350994833205346e-4,3.25234996917194e-5,2.3378386345866902e-8,-9.350074661012362e-4,3.2430678404906835e-5,2.333682380228043e-8,-9.348510276335349e-4,3.229243028857118e-5,2.3275080016553152e-8,-9.346193314669444e-4,3.214231620297721e-5,2.3208959235950077e-8,-9.34312262797197e-4,3.2014221186669155e-5,2.3154273367792384e-8,-9.339400414025882e-4,3.193933185076618e-5,2.3125418905859264e-8,-9.33522913696338e-4,3.194305448645945e-5,2.3133910756853474e-8,-9.330904862493931e-4,3.204115275895757e-5,2.3186578394138074e-8,-9.326796244283101e-4,3.223492294630654e-5,2.3283386135426127e-8,-9.323295184334296e-4,3.250635238251842e-5,2.3415326287966734e-8,-9.320730236673442e-4,3.281574833663746e-5,2.356349553000111e-8,-9.319252711366798e-4,3.310543782936856e-5,2.3700943505328696e-8,-9.318736216132645e-4,3.331219177128394e-5,2.3798471243414568e-8,-9.318752640651988e-4,3.338676318697942e-5,2.3833655432768257e-8,-9.31866963948998e-4,3.331301147491189e-5,2.3799668733206908e-8,-9.317849968972861e-4,3.311655040946259e-5,2.3709231637614105e-8,-9.315865645433877e-4,3.2857438239323513e-5,2.3591073380549135e-8,-9.312628626536916e-4,3.2610345594110236e-5,2.3480457903216238e-8,-9.308393005661033e-4,3.24417200448329e-5,2.3408301483171562e-8,-9.303651936824847e-4,3.239281090859414e-5,2.339318150193606e-8,-9.298986864069065e-4,3.24725338782039e-5,2.343818307136948e-8,-9.29492219127464e-4,3.265959531263871e-5,2.3532245846076462e-8,-9.291818021359038e-4,3.2911055999915944e-5,2.3654527540462002e-8,-9.289814804693926e-4,3.317408157338681e-5,2.3780107907133812e-8,-9.28883102878134e-4,3.339795710135585e-5,2.3885603751994195e-8,-9.288606081706539e-4,3.3543937048918637e-5,2.3953598676844333e-8,-9.288772589118661e-4,3.3591181371482934e-5,2.3975172255395918e-8,-9.288937419745458e-4,3.353814016920971e-5,2.395033272948154e-8,-9.288751893623011e-4,3.340004673214571e-5,2.3886721538417358e-8,-9.287959268978146e-4,3.320403594462646e-5,2.3797303763589087e-8,-9.286417064222096e-4,3.298355112980294e-5,2.369778683496962e-8,-9.284099392258089e-4,3.277328729013441e-5,2.3604298515993387e-8,-9.281087947963245e-4,3.260518664063019e-5,2.3531530406527254e-8,-9.277558922978596e-4,3.25053020042501e-5,2.3491259018736307e-8,-9.27376881127838e-4,3.2490978444289704E-05,2.349102519309791e-8,-9.270036743482587e-4,3.2567791005183e-5,2.3532761106056747e-8,-9.266715169341242e-4,3.2726055504754945e-5,2.361130945511728e-8,-9.264137151151058e-4,3.293770276831043e-5,2.3713172494102367e-8,-9.262532777753961e-4,3.315574465668824e-5,2.3816439311101114e-8,-9.261924253535585e-4,3.331972423030237e-5,2.389335984974595e-8,-9.262040127993932e-4,3.336992217268715e-5,2.3916815814377182e-8,-9.262317722939682e-4,3.326872605091641e-5,2.3870037451283865e-8,-9.26204733848964e-4,3.3020183443077696e-5,2.3755545743126395e-8,-9.260627882338456e-4,3.267485106444268e-5,2.3597373291928313e-8,-9.257806549268176e-4,3.2313603001887904e-5,2.343349628055146e-8,-9.253766285983505e-4,3.201794497161325e-5,2.3301884783205278e-8,-9.249026226141552e-4,3.1842977355389055e-5,2.3227766419155888e-8,-9.244236141866019e-4,3.1804942562237756e-5,2.321783898637054e-8,-9.239978305283136e-4,3.188429203691447e-5,2.3261932645223352e-8,-9.236643245273065e-4,3.203781785436325e-5,2.3339012154274225e-8,-9.234386977616611e-4,3.221281488408803e-5,2.3424069805742805e-8,-9.233147289125141e-4,3.235906739356297e-5,2.3493825767808208e-8,-9.232692914346888e-4,3.243722377144107e-5,2.3530540271546322e-8,-9.232686902572398e-4,3.242362191865267e-5,2.3524031114582375e-8,-9.232753070314963e-4,3.231198064538372e-5,2.347219924760264e-8,-9.232537561991422e-4,3.211234823824068e-5,2.3380345332508162e-8,-9.231758558037119e-4,3.1847866001873865e-5,2.3259584838009844e-8,-9.230239270817444e-4,3.155012781518374e-5,2.3124710835478002e-8,-9.227922362546493e-4,3.1253999746506684e-5,2.299185234886264e-8,-9.224867387452752e-4,3.0992724464646724e-5,2.2876250708263638e-8,-9.221236055597706e-4,3.079385597163362e-5,2.27903811393233e-8,-9.217270560533948e-4,3.067609570471294e-5,2.2742468990955336e-8,-9.213267796337176e-4,3.064680318714811e-5,2.2735346156833847e-8,-9.20954912564315e-4,3.0699934328855683e-5,2.2765581416612138e-8,-9.206421478418023e-4,3.08143607477365e-5,2.2822873109824424e-8,-9.204122660196305e-4,3.095320827010874e-5,2.2889943688910157e-8,-9.202747886912586e-4,3.106597764009101e-5,2.2943650815208422e-8,-9.20216936947342e-4,3.1095988189358365e-5,2.2958395502173376e-8,-9.201985234595585e-4,3.099497926622176e-5,2.2912665548665453e-8,-9.201557642877907e-4,3.074296687634402e-5,2.2797948208220792e-8,-9.200186966514138e-4,3.0364621739963786e-5,2.2626137511840795e-8,-9.197385636888824e-4,2.9929213138156976e-5,2.242949417390068e-8,-9.193108394574188e-4,2.9527970187913423e-5,2.225019669376877e-8,-9.187785340875029e-4,2.9238845703639758e-5,2.2123997801802605e-8,-9.182134225021054e-4,2.9098989670442113e-5,2.2067447146301895e-8,-9.176879830111815e-4,2.9098589555165532e-5,2.2075132170368005e-8,-9.17253784391652e-4,2.9193712335522423e-5,2.212586268610836e-8,-9.169332050515159e-4,2.932621852597383e-5,2.2192168520093514e-8,-9.167219505579218e-4,2.944065181810668e-5,2.224829932694638e-8,-9.165966656263807e-4,2.949439756587482e-5,2.2274934020959177e-8,-9.165233093736817e-4,2.9461840863147958e-5,2.226094758259148e-8,-9.164642868928159e-4,2.9334685108527463e-5,2.220331133229603e-8,-9.163839913645998e-4,2.9120232422900573e-5,2.2106066579955823e-8,-9.162530317647461e-4,2.883851348103519e-5,2.1978863978225656e-8,-9.160513185398048e-4,2.8518597058158136e-5,2.1835244906513958e-8,-9.15769988624412e-4,2.8194298243653313e-5,2.1690730238489156e-8,-9.154120664548803e-4,2.7899535170271005e-5,2.1560765750180442e-8,-9.149917488095805e-4,2.7663738874698725e-5,2.1458654195702416e-8,-9.145323801553542e-4,2.7507851429598272e-5,2.1393709233720136e-8,-9.140634112563936e-4,2.744128142921948e-5,2.136983448703116e-8,-9.136166435043148e-4,2.745994641856036e-5,2.1384644526880326e-8,-9.13221944692427e-4,2.754549808736449e-5,2.1429208794373388e-8,-9.129024910120398e-4,2.7665888640565562e-5,2.148847949703196e-8,-9.126694819496386e-4,2.7777706431344518e-5,2.154253176218981e-8,-9.125166098566058e-4,2.7831321553144563e-5,2.156899691685832e-8,-9.124157000485842e-4,2.7780165658292776e-5,2.1547232079309533e-8,-9.123165267733067e-4,2.759442992476146e-5,2.1464373542698462e-8,-9.121548623777333e-4,2.7276427140508372e-5,2.1322119221499095e-8,-9.118711019526034e-4,2.6870144591949852e-5,2.114094313683426e-8,-9.114350063079968e-4,2.6455006129514234e-5,2.0957209029743784e-8,-9.108634742462995e-4,2.6120092101343845e-5,2.081139801841706e-8,-9.102178200814272e-4,2.5929424367736944e-5,2.0732255869559906e-8,-9.095797117160946e-4,2.5898353086471822e-5,2.0726067368364644e-8,-9.090202329768966e-4,2.5993933266429337e-5,2.077699539719869e-8,-9.085793014011967e-4,2.615479802733407e-5,2.0856387709915296e-8,-9.082619863653898e-4,2.6315579246745158e-5,2.09341239475786e-8,-9.080467696016204e-4,2.6424152758084614e-5,2.098656643738969e-8,-9.078974977973308e-4,2.6448875948786817e-5,2.0999792057647626e-8,-9.077736775849799e-4,2.6378608518081082e-5,2.0969414117202983e-8,-9.076374388060467e-4,2.621931034153885e-5,2.089880711320176e-8,-9.074576563940846e-4,2.598981028468818e-5,2.0797007293920687e-8,-9.072123555606045e-4,2.5717763310892864e-5,2.067680801973962e-8,-9.068901702931364e-4,2.543581375595846e-5,2.055305287961445e-8,-9.064910919600087e-4,2.51777245706118e-5,2.044096225969404e-8,-9.060264239903059e-4,2.497429600456872e-5,2.0354350101638346e-8,-9.055176396903595e-4,2.4849147035049042e-5,2.0303725663131417e-8,-9.049938331462582e-4,2.48148520431951e-5,2.0294513960783498e-8,-9.044877759473634e-4,2.487013629166907e-5,2.0325761996341625e-8,-9.040309431041147e-4,2.4998716181532725e-5,2.0389648367651206e-8,-9.036480496186143e-4,2.5170219741609872e-5,2.0472012539751645e-8,-9.033517513971097e-4,2.534346091236584e-5,2.0553994872596846e-8,-9.031382345469437e-4,2.5472113323665762e-5,2.0614734900078757e-8,-9.029845516590252e-4,2.5512741628428336e-5,2.0635033273204925e-8,-9.028490149929373e-4,2.5434954827073677e-5,2.0601836238167363e-8,-9.026764902106563e-4,2.5232408447057923e-5,2.0513003051675774e-8,-9.02410173775587e-4,2.4931333305205534e-5,2.03809375747986e-8,-9.020092509206674e-4,2.459113424824214e-5,2.0232703367730958e-8,-9.014671775780341e-4,2.4291763948560345e-5,2.0104263036672917e-8,-9.008206650653747e-4,2.4108119510329703e-5,2.0028949316011377e-8,-9.001407652157997e-4,2.40815816794724e-5,2.002473027343289e-8,-8.995076036470077e-4,2.4204454860463047e-5,2.0087372224985797e-8,-8.989819618378563e-4,2.442640209534498e-5,2.0193550978397385e-8,-8.985886426926948e-4,2.4677367529835956e-5,2.0311351442965695e-8,-8.983168875609791e-4,2.489249041554455e-5,2.0411570672683616e-8,-8.981321994515865e-4,2.5027742305275945e-5,2.0474734817052442e-8,-8.979905680705888e-4,2.506411353886881e-5,2.0492861273368607e-8,-8.978493659111419e-4,2.50042478933684e-5,2.0467761838839778e-8,-8.976735626310779e-4,2.486629512223054e-5,2.040810250953443e-8,-8.974383807300419e-4,2.46779904367794e-5,2.0326637181998767e-8,-8.971300793370073e-4,2.447195277178342e-5,2.0238087853917463e-8,-8.967460299014721e-4,2.4281946492655756e-5,2.0157529321890946e-8,-8.962944874862408e-4,2.41394984040332e-5,2.009894778188007e-8,-8.957939342688571e-4,2.4070383811391924e-5,2.0073707412014148e-8,-8.952715333108823e-4,2.4090842783267837e-5,2.0088849549234874e-8,-8.94760107898572e-4,2.420397021695154e-5,2.014545178891125e-8,-8.942933680114259e-4,2.4397265038716906e-5,2.0237535845060154e-8,-8.938997498069575e-4,2.4642474151023778e-5,2.0352064205131918e-8,-8.935958998883974e-4,2.4898610660257977E-05,2.047041270308535e-8,-8.933813137979958e-4,2.5118392150347438e-5,2.057138082449648e-8,-8.932357382837027e-4,2.525738915614616e-5,2.0635360425476936e-8,-8.931205738507962e-4,2.5284299096435977e-5,2.0648906749984923e-8,-8.929848689198422e-4,2.5190265415252555e-5,2.0608774843090036e-8,-8.927757350545704e-4,2.4994824362930195e-5,2.052437537467493e-8,-8.924519189134882e-4,2.4745797708676503e-5,2.0417514294488545e-8,-8.919975931406865e-4,2.4510848006438183e-5,2.031846414448125e-8,-8.914314961573257e-4,2.436039906856739e-5,2.0258291785338553e-8,-8.908058509117407e-4,2.4345690900774747e-5,2.0259156353576073e-8,-8.901923458736179e-4,2.4480408023514104e-5,2.032632704668696e-8,-8.896591855754514e-4,2.473538117757218e-5,2.0446077286436584e-8,-8.892494467896753e-4,2.505003874490458e-5,2.0590986107984132e-8,-8.889707658958967e-4,2.5354671159387962e-5,2.0729934824061592e-8,-8.887992171195747e-4,2.5592069573353648e-5,2.0837712880844427e-8,-8.886922966930062e-4,2.572983863637043e-5,2.0900398514110002e-8,-8.886031916452067e-4,2.576187327548421e-5,2.0915874009217856e-8,-8.884910916697882e-4,2.5702806387382103e-5,2.0891201501616617e-8,-8.883263469942507e-4,2.5580247122862124e-5,2.0839048300129043e-8,-8.880918126579759e-4,2.5427917810549098e-5,2.0774582188619598e-8,-8.877822930623571e-4,2.528066113611859e-5,2.071327182632323e-8,-8.874034503409459e-4,2.51709375729389e-5,2.0669390176493168e-8,-8.869707261418254e-4,2.5125989723721748e-5,2.0654810035291582e-8,-8.865081500699982e-4,2.5164954314173364e-5,2.067774642510077e-8,-8.86046435520712e-4,2.5295625909005256e-5,2.074132329135633e-8,-8.856195799846079e-4,2.5511276908268373e-5,2.0842176511925037e-8,-8.852594627043434e-4,2.578871501824554e-5,2.0969645761179816e-8,-8.849887434082308e-4,2.6089236359805585e-5,2.1106290594163275e-8,-8.848135668142814e-4,2.6363915683878577e-5,2.12303363316089e-8,-8.847186517320325e-4,2.6563437790964064e-5,2.132009779085571e-8,-8.846674515235134e-4,2.6650601378864086e-5,2.1359523275735847e-8,-8.846087189309281e-4,2.66117823350549e-5,2.1343206192558952e-8,-8.844884826177575e-4,2.6463259603390726e-5,2.1279054822091283e-8,-8.84264302201615e-4,2.6249677950410016e-5,2.1187425909026206e-8,-8.839176546726403e-4,2.6034332006823362e-5,2.109662263366006e-8,-8.83460649868888e-4,2.588342561020468e-5,2.1035784916221402e-8,-8.82934630955511e-4,2.584833167410523e-5,2.102703848956324e-8,-8.824002202963414e-4,2.595091364572211e-5,2.1079174189276926e-8,-8.81920975885244e-4,2.61768927835987e-5,2.1185003004173495e-8,-8.815456299885851e-4,2.648030419312936e-5,2.132360042425762e-8,-8.812952960849518e-4,2.6797977084991984e-5,2.146685384949102e-8,-8.811602994497689e-4,2.7068443874576867e-5,2.1587808754275467e-8,-8.811068251980501e-4,2.7247856141716944e-5,2.1667584069800153e-8,-8.81089260979772e-4,2.7317788146902162e-5,2.169866440830599e-8,-8.810626671495409e-4,2.7284359038585255e-5,2.168436095027221e-8,-8.809914703339173e-4,2.7171697969967655e-5,2.1635803660338795e-8,-8.80853375306616e-4,2.7013728986054004e-5,2.1568241334736312e-8,-8.806396376131523e-4,2.6847076911299085e-5,2.14978976330453e-8,-8.803534902028214e-4,2.670608170906783e-5,2.1439805851815076e-8,-8.800081064751453e-4,2.661959400830792e-5,2.140644761622855e-8,-8.796247407013677e-4,2.6608697363742646e-5,2.1406789555317838e-8,-8.792309875330124e-4,2.668453948521081e-5,2.1445354689839482e-8,-8.788585456571649e-4,2.684586308158884e-5,2.152116684744657e-8,-8.78539601693883e-4,2.7076554888474195e-5,2.162673250547703e-8,-8.783011687268403e-4,2.7344451028370228e-5,2.1747606543339466e-8,-8.781575952511767e-4,2.760340690883203e-5,2.1863392752506867e-8,-8.781030584565838e-4,2.780060405021578e-5,2.1951002414711444e-8,-8.781075985026394e-4,2.7889387640801088e-5,2.1990279643567898e-8,-8.781205807905475e-4,2.7844561840664714e-5,2.197066505165757e-8,-8.780829418086908e-4,2.767387999018061e-5,2.1896173090185512e-8,-8.779448870805086e-4,2.74194206923248e-5,2.178590013371832e-8,-8.776820355245091e-4,2.7146767973214645e-5,2.166911671129024e-8,-8.773032995196551e-4,2.692589193920319e-5,2.157667830482182e-8,-8.768478522267831e-4,2.6811226903755186e-5,2.153215088316852e-8,-8.763733034865937e-4,2.6827771709541934e-5,2.1545755773169187e-8,-8.759398672705631e-4,2.6966612293309254e-5,2.1612637371882027e-8,-8.75595423955086e-4,2.718972268856917e-5,2.171528609991872e-8,-8.753651397527334e-4,2.744156484383133e-5,2.182888124213572e-8,-8.75247681912975e-4,2.766380317219204e-5,2.1927841507686533e-8,-8.752182834583848e-4,2.7809084316441637e-5,2.1991802394858896e-8,-8.752370705991506e-4,2.78503969031841e-5,2.2009553750829985e-8,-8.752596751637627e-4,2.7784140827711733e-5,2.1980196488628183e-8,-8.752468743315799e-4,2.7627256123099378e-5,2.1911727125109708e-8,-8.751709906385506e-4,2.741056684869909e-5,2.181802519722558e-8,-8.750184292407893e-4,2.717106230583093e-5,2.1715442258405405e-8,-8.747891179445456e-4,2.6945211256019782e-5,2.161989799005169e-8,-8.744942264117304e-4,2.6764246324536103e-5,2.1544865267399724e-8,-8.741534012510591e-4,2.6651298588158375e-5,2.1500162537119337e-8,-8.73792188217311e-4,2.6619664630001775e-5,2.1491228293641114e-8,-8.734396730616577e-4,2.6671435073366737e-5,2.1518551762450664e-8,-8.731258580016011e-4,2.679606382670435e-5,2.1577100432093963e-8,-8.7287798682881e-4,2.696908317973565e-5,2.165584590639723e-8,-8.727151324958717e-4,2.7152056798777518e-5,2.1737843898724333e-8,-8.726411876491597e-4,2.7295776371153268e-5,2.180169400597056e-8,-8.72638123277193e-4,2.7348884643569248e-5,2.1825288578833227e-8,-8.726635290724197e-4,2.7272385770363037e-5,2.1792059497611342e-8,-8.726572026318421e-4,2.7056308642078688e-5,2.16981558387545e-8,-8.725583379939474e-4,2.673014546177635e-5,2.1556946339519295e-8,-8.723277672615219e-4,2.6358529275551267e-5,2.1397083391496553e-8,-8.719640776249092e-4,2.6020955368897574e-5,2.1253534423843147e-8,-8.715045501738401e-4,2.5784651947306544e-5,2.1155571953329428e-8,-8.71011034255676e-4,2.5683903518439307e-5,2.1117663450457478e-8,-8.705491307552995e-4,2.5713812934991007e-5,2.113685431521052e-8,-8.701702166525884e-4,2.5837496324388218e-5,2.119617587482424e-8,-8.699014006819977e-4,2.6000426627921144e-5,2.1271201276789622e-8,-8.697436570127698e-4,2.6145631661998167e-5,2.1336868320268546e-8,-8.696759171271625e-4,2.6225891752515828E-05,2.137282593288771e-8,-8.696624900426764e-4,2.621144415050257e-5,2.136666972028361e-8,-8.696616766384265e-4,2.609309797451578e-5,2.1315093592520665e-8,-8.696339802855976e-4,2.58812240139253e-5,2.1223246173929514e-8,-8.695486258957221e-4,2.560145694153938e-5,2.1102720086846007e-8,-8.693875014404906e-4,2.5288439658636282e-5,2.096877998090809e-8,-8.691463110554454e-4,2.4979158898865863e-5,2.083749001199522e-8,-8.688333814216199e-4,2.4707133641329762e-5,2.0723252879501703e-8,-8.684669509396333e-4,2.449818770419122e-5,2.0637035505226535e-8,-8.680718625220174e-4,2.4367943926356345e-5,2.0585317375536392e-8,-8.676763190924599e-4,2.432063005736646e-5,2.0569587886541e-8,-8.673088635246923e-4,2.4348592526606557e-5,2.0586157121313442e-8,-8.669953180759233e-4,2.4432155464044134e-5,2.0626149014017224e-8,-8.667551694766482e-4,2.4539935083866278e-5,2.0675728630559995e-8,-8.665969051568935e-4,2.4630410220170644e-5,2.0716875446414914e-8,-8.665124727648299e-4,2.4656354944466406e-5,2.0729342915038327e-8,-8.664725697134575e-4,2.4573949994687252e-5,2.0694555012387574e-8,-8.664264664054185e-4,2.43569138231536e-5,2.0601608133330403e-8,-8.663110139622543e-4,2.401199304406164e-5,2.0453867175701917e-8,-8.660704693962533e-4,2.3586965902470763e-5,2.0272378725582345e-8,-8.656806366986982e-4,2.316147155005631e-5,2.0091868871878088e-8,-8.651633988921566e-4,2.281978312873848e-5,1.9948869925345905e-8,-8.645805810525198e-4,2.2618527290404762e-5,1.9867633866200034e-8,-8.640097643843145e-4,2.256770525095591e-5,1.9851904328723277e-8,-8.635166675543678e-4,2.2633614094821955e-5,1.9886336038762515e-8,-8.63137948012429e-4,2.2757311910044172e-5,1.9944743482180508e-8,-8.628781813717942e-4,2.2875933655872637e-5,1.9999555353413913e-8,-8.62716501594731e-4,2.2938215554097242e-5,2.0028639520069148e-8,-8.626167844185233e-4,2.291219190087368e-5,2.0018587878018706e-8,-8.625373867297079e-4,2.2786717609544522e-5,1.9965210231098124e-8,-8.624388179572647e-4,2.256927580919071e-5,1.987237287145151e-8,-8.62289189850553e-4,2.2281913356921493e-5,1.975006320331657e-8,-8.620677332013985e-4,2.195621272300181e-5,1.9612130462789248e-8,-8.617664966194991e-4,2.16277997444501e-5,1.9473928068892485e-8,-8.613902656342819e-4,2.1330954467429593e-5,1.935006757875441e-8,-8.609548908336364e-4,2.109389378252815e-5,1.9252475069560743e-8,-8.60484364617139e-4,2.0935189055747062e-5,1.9188905233103563e-8,-8.600071436128826e-4,2.086164348674763e-5,1.91620410767755e-8,-8.595522857630777e-4,2.086763182325774e-5,1.916920143547591e-8,-8.591457649603986e-4,2.0935595960451394e-5,1.9202563113239573e-8,-8.588070106868445e-4,2.103741778004402e-5,1.9249802291736785e-8,-8.585455278490724e-4,2.1136657572340328e-5,1.9295144248855717e-8,-8.583574459539792e-4,2.119206027325631e-5,1.9320951414396224e-8,-8.582223041875423e-4,2.1163256231024873e-5,1.9310193204886934e-8,-8.581015046639913e-4,2.1019633830437e-5,1.9250187621650533e-8,-8.579412331421961e-4,2.0752106826417253e-5,1.913751847356446e-8,-8.576831677947019e-4,2.0384459053393114e-5,1.898276909784322e-8,-8.572838524692297e-4,1.997686961930766e-5,1.8811952221028124e-8,-8.567366035007616e-4,1.9613260947646273e-5,1.8661045623987466e-8,-8.560824766647061e-4,1.9371935268362093e-5,1.8563376708157653e-8,-8.553990379155328e-4,1.9293084341216936e-5,1.8535706064271064e-8,-8.547703530167884e-4,1.936321412352537e-5,1.8571651992880513e-8,-8.542559556665059e-4,1.952555465174852e-5,1.864632532315067e-8,-8.538756727449201e-4,1.970687106733324e-5,1.8727989569739696e-8,-8.536133022643489e-4,1.9843141688829028e-5,1.8789169711081318e-8,-8.534305325201742e-4,1.989357508587466e-5,1.8812667709058706e-8,-8.532814843157356e-4,1.984307509264013e-5,1.879252452479186e-8,-8.531232008002682e-4,1.969807749884717e-5,1.8732068113313398e-8,-8.529215833508998e-4,1.9480194465247334e-5,1.864101205609392e-8,-8.526540395091069e-4,1.9220106769211913e-5,1.8532719999846374e-8,-8.523103008730304e-4,1.8952387630912345e-5,1.8421969114052342e-8,-8.518922166171214e-4,1.8711017815063302e-5,1.83230973754797e-8,-8.514126718644334e-4,1.8525339647629737e-5,1.8248378472723516e-8,-8.508935758492765e-4,1.8416482805648164e-5,1.820658103690855e-8,-8.503628746581636e-4,1.839451037204468e-5,1.8201787199229734e-8,-8.498506739728784e-4,1.8456726342008194e-5,1.823266217066025e-8,-8.493848597949864e-4,1.858755364818312e-5,1.8292382925859e-8,-8.489867877928165e-4,1.8760075533750793e-5,1.8369304773500778e-8,-8.486675197616957e-4,1.8939094885436825e-5,1.8448317961918758e-8,-8.484249414374999e-4,1.908551666785093e-5,1.8512794690847823e-8,-8.482420318448436e-4,1.9161892414962764e-5,1.854700959220887e-8,-8.480866947760388e-4,1.9139120485201888e-5,1.853898427741999e-8,-8.47914089849887e-4,1.9004229019293404e-5,1.8483705191242097e-8,-8.476729841454053e-4,1.8768219337488148e-5,1.8386304668266145e-8,-8.473174336537129e-4,1.847105600233066e-5,1.8264025543393118e-8,-8.46823043761053e-4,1.8178888378359918e-5,1.814493877116609e-8,-8.462024594710862e-4,1.7968779622830955e-5,1.8061442704564362e-8,-8.455100213327113e-4,1.790201857047041e-5,1.8039011781499097e-8,-8.44827387250912e-4,1.7997506299222376e-5,1.8085063263440332e-8,-8.442336473553949e-4,1.82219741246474e-5,1.8184995677384506e-8,-8.437761660142642e-4,1.8504766407932626e-5,1.8308588065556925e-8,-8.434584576481965e-4,1.8767662195956877e-5,1.842267679658266e-8,-8.4324815382798e-4,1.895151458304113e-5,1.8502419193258396e-8,-8.430953104809079e-4,1.9028223922689918e-5,1.853631028756183e-8,-8.429494942284543e-4,1.8998849917980934e-5,1.852528741826402e-8,-8.427701821877676e-4,1.8884905878580218e-5,1.8478909462789927E-08,-8.425307640973115e-4,1.8718917804788393e-5,1.8411232187863652e-8,-8.4221863676526e-4,1.853706175763964e-5,1.8337626368837928e-8,-8.418337179676496e-4,1.837420046907955e-5,1.827269721178165e-8,-8.413866423383756e-4,1.8260484347668602e-5,1.822893007494307e-8,-8.408968704231464e-4,1.8218648925198794e-5,1.821564458019552e-8,-8.403904546985228e-4,1.8261602613572497e-5,1.8238040596675744e-8,-8.398971047784783e-4,1.8390365569227584e-5,1.8296347683661744e-8,-8.394462933471349e-4,1.859286581010708e-5,1.8385307406524103e-8,-8.390625554693548e-4,1.8844349042141637e-5,1.849434016111365e-8,-8.387606740926772e-4,1.9109956838288736e-5,1.86086555425353e-8,-8.38541735765671e-4,1.934955354341349e-5,1.871133966197072e-8,-8.383910411803681e-4,1.9524369896896514e-5,1.8786212347626552e-8,-8.382786396254357e-4,1.9604517498810704e-5,1.882101552190826e-8,-8.381628606157513e-4,1.957613104080785e-5,1.8810378176449664e-8,-8.379968680478822e-4,1.9446885164135782e-5,1.8758024552986323e-8,-8.377380159940519e-4,1.924845999124919e-5,1.8677651607636933e-8,-8.373591718549969e-4,1.9034058927322546e-5,1.8591733411884385e-8,-8.368597531357094e-4,1.886904423475679e-5,1.8527502435010273e-8,-8.362722099438048e-4,1.881422597460021e-5,1.8509963766801086e-8,-8.356585036787218e-4,1.890516421021724e-5,1.8553367099453363e-8,-8.350935969910999e-4,1.913599743885326e-5,1.865465529485676e-8,-8.346403242080155e-4,1.945802313397077e-5,1.8793064946602195e-8,-8.34327545916489e-4,1.979670869488179e-5,1.893732043323308e-8,-8.341432058884843e-4,2.0079064624085877e-5,1.905704488089487e-8,-8.340443957116498e-4,2.0256813697895776e-5,1.9132370964305275e-8,-8.339762461212966e-4,2.0315496394862994e-5,1.915767659009268e-8,-8.338890176634837e-4,2.0269954024688864e-5,1.9139616310843984e-8,-8.337477088005211e-4,2.015310994528189e-5,1.9092327487425826e-8,-8.335344195487556e-4,2.0004740360878148e-5,1.9032641784256222e-8,-8.332464619472108e-4,1.9863456916696745e-5,1.897669433393755e-8,-8.328930721117551e-4,1.9762094713418337e-5,1.8938027533986976e-8,-8.32492297882966e-4,1.9725314418621403e-5,1.8926665101186917e-8,-8.32068415293489e-4,1.97681582273195e-5,1.8948588036477114e-8,-8.316495311428089e-4,1.9894810847537727e-5,1.900526818571205e-8,-8.312647852018803e-4,2.0097427747145573e-5,1.909320121864192e-8,-8.309406311115315e-4,2.0355522535096095e-5,1.9203660731413604e-8,-8.306961138447342e-4,2.0636898921431595e-5,1.9323105247655924e-8,-8.305378232200559e-4,2.0901137965268803e-5,1.9434664802670044e-8,-8.304559556956476e-4,2.1106081507306507e-5,1.9520878928693548e-8,-8.304232734093543e-4,2.121667553013109e-5,1.9567400873830927e-8,-8.303983658234531e-4,2.121422167099143e-5,1.9566836162855173e-8,-8.303333870477527e-4,2.1103220227911646e-5,1.952153119702011e-8,-8.301848490250651e-4,2.0913258553630374e-5,1.9444248405592745e-8,-8.299248979192241e-4,2.069466744819484e-5,1.935621254368111e-8,-8.295501421522738e-4,2.0508232040964325e-5,1.928269583340997e-8,-8.290853574454966e-4,2.0410715377186484e-5,1.9246942812164235e-8,-8.285801055587781e-4,2.0439332177392955e-5,1.9263794111536346e-8,-8.2809766077195e-4,2.059951905236773e-5,1.9334808940806114e-8,-8.276980402284858e-4,2.086083916102179e-5,1.944680759157122e-8,-8.274201421640853e-4,2.1164367562493242e-5,1.957510063623294e-8,-8.272700826664273e-4,2.1440488239337026e-5,1.9690891838981256e-8,-8.272211164209307e-4,2.163042771909038e-5,1.9770119508971764e-8,-8.272248984694739e-4,2.1702369405362463e-5,1.980002378644996e-8,-8.27228099796603e-4,2.1656229173428763e-5,1.9781034701150995e-8,-8.271868289199328e-4,2.151765544352276e-5,1.9724204114230814e-8,-8.270743741962598e-4,2.1326531390819485e-5,1.9646358599563786e-8,-8.26882219952542e-4,2.1125677324855516e-5,1.9565355735798533e-8,-8.266169368517766e-4,2.095292185174144e-5,1.94967870339568e-8,-8.262957480189584e-4,2.0836914464318622e-5,1.9452286083130493e-8,-8.25942474644233e-4,2.0795532754586838e-5,1.9438941053262905e-8,-8.255843718992038e-4,2.083550384946244e-5,1.9459206265133282e-8,-8.252495647333255e-4,2.095228065573517e-5,1.9510899184512012e-8,-8.249644062349847e-4,2.112985311313308e-5,1.958715392852858e-8,-8.247500865889223e-4,2.1340896571258705e-5,1.96765117319045e-8,-8.24618243855376e-4,2.1548299489712724e-5,1.9763583444848516e-8,-8.245661579256653e-4,2.1709369314150928e-5,1.983081139445514e-8,-8.245731982415894e-4,2.1783542272099323e-5,1.9861656355918796e-8,-8.246010337711906e-4,2.174293624505869e-5,1.9844932417100713e-8,-8.24599762693081e-4,2.1582829143363222e-5,1.9779092489063103e-8,-8.245199320168276e-4,2.1327443144663598e-5,1.9674559193285197e-8,-8.243271463267552e-4,2.1027056964939968e-5,1.9552443886955017e-8,-8.240137478913354e-4,2.0745880537874062E-05,1.9439417625111437e-8,-8.236027048837928e-4,2.054443207807126e-5,1.9360323569771445e-8,-8.231420981185931e-4,2.046260583006955e-5,1.9331166390175837e-8,-8.226923062309316e-4,2.050897293837082e-5,1.9354816716611825e-8,-8.223101620532402e-4,2.065914064149752e-5,1.9420558033546697e-8,-8.220346412416486e-4,2.0863033376546166e-5,1.9507310836051278e-8,-8.218778118280972e-4,2.1058697312165184e-5,1.958944171580837e-8,-8.218233231961076e-4,2.1188662210092975e-5,1.964349015093813e-8,-8.218326197553458e-4,2.1214125651217814e-5,1.9653903415513317e-8,-8.21856605729153e-4,2.112285109501725e-5,1.9616154125454246e-8,-8.218486723198633e-4,2.092896166987658e-5,1.9536534435121197e-8,-8.21774900682099e-4,2.0665900016862456e-5,1.9429164058162805e-8,-8.216189955439171e-4,2.0376078120981753e-5,1.9311669317101807e-8,-8.213819939742871e-4,2.010103213726683e-5,1.9201115798957357e-8,-8.210785719648872e-4,1.987447711399243e-5,1.911118281263017e-8,-8.20732153301422e-4,1.9718757169934105e-5,1.905076891931154e-8,-8.203703758138432e-4,1.964388881521585e-5,1.9023668998090353e-8,-8.200215277640999e-4,1.9647991667492965e-5,1.9028805308153496e-8,-8.197118007420141e-4,1.971813517172542e-5,1.906061049159396e-8,-8.194627667111748e-4,1.983118207998987e-5,1.910940136475893e-8,-8.192884188063901e-4,1.99548908795387e-5,1.9161861647232118e-8,-8.191914615513263e-4,2.005020377589606e-5,1.920200887423933e-8,-8.191593400069361e-4,2.0076033762683125e-5,1.92131658914827e-8,-8.191616964490206e-4,1.999753215727303e-5,1.918132541360626e-8,-8.191520734989105e-4,1.9797250015148836e-5,1.909967483876304e-8,-8.190765586708921e-4,1.948575838000759e-5,1.8972896885336155e-8,-8.188893026085382e-4,1.9105659284594878e-5,1.881876618035338e-8,-8.185698549347501e-4,1.8723588649551148e-5,1.8664805935860888e-8,-8.181336800547649e-4,1.8410527065246534e-5,1.8540121068539456e-8,-8.176292682317155e-4,1.8218322499468568e-5,1.8465698823274743e-8,-8.171225750854558e-4,1.816336880244077e-5,1.844774602721915e-8,-8.166763753560664e-4,1.8224017124166648e-5,1.8476781130729858e-8,-8.163333375780404e-4,1.8350561857245017e-5,1.853193523194076e-8,-8.16107745214289e-4,1.8481632209535812e-5,1.8587831243527868e-8,-8.159860616604793e-4,1.8560533642340127e-5,1.8621333711184525e-8,-8.159338548044192e-4,1.8547406867931718e-5,1.8616474714546974e-8,-8.159059685028022e-4,1.8425544094309115e-5,1.856691337547998e-8,-8.158571772717478e-4,1.8201877478809365e-5,1.8475986230218312e-8,-8.157511568267292e-4,1.790263037304738e-5,1.8354797984609146e-8,-8.155662647845826e-4,1.756578402681822e-5,1.8219061692464088e-8,-8.152974777324008e-4,1.7232463817564305e-5,1.80855624276064e-8,-8.149548380423059e-4,1.6939285910434784e-5,1.79690735294896e-8,-8.14559552341495e-4,1.6713010048744217e-5,1.7880250136234366e-8,-8.141391520903434e-4,1.6567887899189816e-5,1.7824625038532265e-8,-8.13722894907782e-4,1.65052911686815e-5,1.7802510165505718e-8,-8.133380240113629e-4,1.6514764792978118e-5,1.7809448528021547e-8,-8.130068823177181e-4,1.6575692411162992e-5,1.7836899066496914e-8,-8.127444898746023e-4,1.6659173301351172e-5,1.787301036505299e-8,-8.12556110967037e-4,1.6730231029844328e-5,1.79035428156178e-8,-8.1243455505061e-4,1.6751012160459823e-5,1.7913194389418595e-8,-8.123576337801389e-4,1.6686038010803166e-5,1.7887740556088877e-8,-8.122873281432063e-4,1.6510317217035855e-5,1.7817300812807638e-8,-8.12173296759821e-4,1.6219656866485414e-5,1.7700472205744483e-8,-8.119633169768517e-4,1.5839706948872637e-5,1.754794502201198e-8,-8.116204935794114e-4,1.5427302108426434e-5,1.7382995748216617e-8,-8.111412381260521e-4,1.5058049525129414e-5,1.723638629723847e-8,-8.105632272728717e-4,1.4801145884299286e-5,1.713607209252042e-8,-8.099554919138893e-4,1.4692744717581516e-5,1.7096374287795603e-8,-8.093939263332287e-4,1.4722847634811913e-5,1.7112747706322244e-8,-8.089353936498745e-4,1.484233801753127e-5,1.7164799969601408e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_6.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_6.json new file mode 100644 index 000000000..36daa4505 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_6.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":6000,"numberOfSamples":1000,"samples":[-8.086030009769924e-4,1.4983810405869992e-5,1.7224897231104907e-8,-8.083859978917138e-4,1.5083891420443416e-5,1.7267300877946733e-8,-8.082495498012613e-4,1.5098334698112563e-5,1.727428602498279e-8,-8.08147627922185e-4,1.5007880436382382e-5,1.72384405012867e-8,-8.080344588306433e-4,1.4817024022017442e-5,1.716203842239244e-8,-8.078727223656254e-4,1.4548770451198794e-5,1.705477562558989e-8,-8.076383715174149e-4,1.4237727414253643e-5,1.6930867623711068e-8,-8.07322519250199e-4,1.3922902257012772e-5,1.6806096847405343e-8,-8.069308512481781e-4,1.3641062334595963e-5,1.6695163186853533e-8,-8.064810674365431e-4,1.3421371907981373e-5,1.6609600165603765e-8,-8.059989962711845e-4,1.3281793410593358e-5,1.65564122262766e-8,-8.055140919096513e-4,1.3227437282497666e-5,1.6537470119423336e-8,-8.050550211507427e-4,1.3250758311506548e-5,1.654960752689265e-8,-8.046459011976815e-4,1.3333167640947059e-5,1.658525704041747e-8,-8.04303377210941e-4,1.3447472960351647e-5,1.6633415280209964e-8,-8.040343930544604e-4,1.3560785131852206e-5,1.6680814883554258e-8,-8.038344371049681e-4,1.3637887698738715e-5,1.6713305884428016e-8,-8.036861808400415e-4,1.3645376246194308e-5,1.6717552173535383e-8,-8.035588881624019e-4,1.355715046434086e-5,1.668324932697258e-8,-8.034098545481887e-4,1.3361633179672876e-5,1.660599824235996e-8,-8.031899161995416e-4,1.3069806636622722e-5,1.6490473396248044e-8,-8.028548171317579e-4,1.2720836118968e-5,1.635260915989386e-8,-8.023817298130074e-4,1.2379672673151174e-5,1.6218567533971117e-8,-8.017848916609258e-4,1.21214866090865e-5,1.6118432225501397e-8,-8.011195394685814e-4,1.2004672862047483e-5,1.6075358566152277e-8,-8.004664161243661e-4,1.2045064498369676e-5,1.6095295025865495e-8,-7.999018683719954e-4,1.2207888551202842e-5,1.6163899894807838e-8,-7.994702224832471e-4,1.242340488168506e-5,1.625294935668257e-8,-7.991732540075557e-4,1.2615665237930678e-5,1.6331930886767175e-8,-7.989782632286061e-4,1.2727385321542004e-5,1.6378010390939176e-8,-7.988353176257354e-4,1.2731278778766297e-5,1.6380533700705246e-8,-7.98693545654588e-4,1.262891363153558e-5,1.6340492793338305e-8,-7.985117563218257e-4,1.2443008649451221e-5,1.6267331548458157e-8,-7.982633092416262e-4,1.2208291416633506e-5,1.617517573988445e-8,-7.97937024226046e-4,1.1963551111059878e-5,1.6079587401967125e-8,-7.975359220318068e-4,1.1745517867734186e-5,1.5995123017000115e-8,-7.970748169146011e-4,1.1584298423249006e-5,1.5933578635139873e-8,-7.96577147084504e-4,1.1500116000004205e-5,1.59027823489698e-8,-7.960712612774264e-4,1.1501312858278244e-5,1.5905873133149612e-8,-7.955863788122124e-4,1.1583659586297626e-5,1.5941057128577827e-8,-7.951485028139105e-4,1.1731083070377464e-5,1.6001886167851592e-8,-7.947767272267163e-4,1.191780985300591e-5,1.607808021319529e-8,-7.944803671342594e-4,1.2111620389700717e-5,1.615680382240154e-8,-7.942570988685387e-4,1.2277833661532118e-5,1.622426162217438e-8,-7.940921495251726e-4,1.2383811890041994e-5,1.6267523534675877e-8,-7.939586304605242e-4,1.2403888228974189e-5,1.627651653757225e-8,-7.938193280601158e-4,1.2324675476991541e-5,1.6246136706354253e-8,-7.936307142675456e-4,1.2150538325271284e-5,1.6178380649204796e-8,-7.933502814410618e-4,1.1908091876990174e-5,1.608405253597014e-8,-7.929477558193591e-4,1.164701184564693e-5,1.5982993948326116e-8,-7.924185834346178e-4,1.1433225812865484e-5,1.5901308272972388e-8,-7.91794201526995e-4,1.1331683271163489e-5,1.5864503448445484e-8,-7.911404620961953e-4,1.1381697803054312e-5,1.5887775959579784e-8,-7.905387505296019e-4,1.1576581858174432e-5,1.5968081661271605e-8,-7.900557579253249e-4,1.1862063556780149e-5,1.6083659449037498e-8,-7.897185238722374e-4,1.2157584885353175e-5,1.6202533533502623e-8,-7.895090488599649e-4,1.238821600505574e-5,1.629512295943271e-8,-7.893784662655317e-4,1.2508703453700893e-5,1.6343711956180873e-8,-7.892687928634058e-4,1.2510154891614356e-5,1.6345059350363414e-8,-7.891303130012338e-4,1.2412762325594466e-5,1.630746636423513e-8,-7.889301607306106e-4,1.22532563576661e-5,1.6245726990312346e-8,-7.886537075923972e-4,1.207350096757021e-5,1.6176528951831164e-8,-7.883021088407754e-4,1.1912612868365128e-5,1.611529698390703e-8,-7.878886554381245e-4,1.1802366938175958e-5,1.6074404646753326e-8,-7.874351827903575e-4,1.1764678405500699e-5,1.606225725212218e-8,-7.869686785579548e-4,1.1810193745663737e-5,1.6082821884922013e-8,-7.865178808041266e-4,1.1937644143326378e-5,1.613543027797478e-8,-7.861097334099989e-4,1.2134002375285157e-5,1.621485643068633e-8,-7.857657050956631e-4,1.2375715139896458e-5,1.631178566628287e-8,-7.854982761710509e-4,1.2631342722271491e-5,1.6413830995212057e-8,-7.853082129742637e-4,1.2865627763957707e-5,1.650712800670973e-8,-7.851832404152557e-4,1.3044611801087987e-5,1.6578365268496393e-8,-7.850984979333072e-4,1.3141234772513003e-5,1.661701655440917e-8,-7.850189859904393e-4,1.314074642924285e-5,1.6617484545055545e-8,-7.849040783473408e-4,1.3045167089176555e-5,1.658083277620777e-8,-7.847140887854131e-4,1.2875989940709468e-5,1.6515781106734278e-8,-7.84418739673568e-4,1.2674020385660439e-5,1.643854403323704e-8,-7.840067264380274e-4,1.2494690124657561e-5,1.637089555624342e-8,-7.834940629310338e-4,1.2397202649814611e-5,1.633586078646625e-8,-7.829269123445694e-4,1.242762480633356e-5,1.6351121218225165e-8,-7.823738580167101e-4,1.2600199243328678e-5,1.6421819173272966e-8,-7.819059640317111e-4,1.2886068491034284e-5,1.6536310251172648e-8,-7.815711190078477e-4,1.3218908359013295e-5,1.6668481029581357e-8,-7.813760467322517e-4,1.3518369457025356e-5,1.678692018769316e-8,-7.812866097556989e-4,1.3719738169680302e-5,1.6866455278038853e-8,-7.81245043675736e-4,1.3793772038801468e-5,1.689586528796916e-8,-7.811924892995569e-4,1.3748855436262393e-5,1.6878708749903426e-8,-7.810853126995724e-4,1.3619700644445478e-5,1.6828864667497608e-8,-7.809012145161698e-4,1.3452099763330615e-5,1.6764485192192976e-8,-7.806376216935296e-4,1.3290653946538645e-5,1.6703112676782687e-8,-7.803066615377375e-4,1.31716120529323e-5,1.6658847878700447e-8,-7.799298430182615e-4,1.311988593603372e-5,1.6641219568441624e-8,-7.795337437080761e-4,1.3148379669826384e-5,1.665500141543589e-8,-7.791466519745774e-4,1.3258192670318894e-5,1.6700371540229692e-8,-7.787956166079658e-4,1.3439123013885566e-5,1.6773161126941902e-8,-7.785034521569552e-4,1.3670540636302536e-5,1.6865211246133127e-8,-7.782855194761558e-4,1.3923070098588027e-5,1.6965022456657025e-8,-7.781465158733033e-4,1.4161671472159447e-5,1.705894395665733e-8,-7.780780274644127e-4,1.4350439747166847e-5,1.713304166764391e-8,-7.780578724819625e-4,1.4458808126371696e-5,1.717552433911576e-8,-7.780520945693767e-4,1.4468165316748068e-5,1.7179332308174036e-8,-7.780199264883032e-4,1.4377381074197417e-5,1.7144283672725583e-8,-7.779212697790456e-4,1.42055818063788e-5,1.707811591367681e-8,-7.777254715128031e-4,1.399092160934568e-5,1.6995928407681764e-8,-7.774196852037493e-4,1.37848241088391e-5,1.691784077706239e-8,-7.770148281025337e-4,1.3641905255902624e-5,1.68649932739021e-8,-7.7654695118254e-4,1.3606723344494496e-5,1.6854386908037733e-8,-7.760719733956719e-4,1.3699981752654324e-5,1.6893614104122298e-8,-7.756528920660803e-4,1.3908611710779359e-5,1.6977171984468366e-8,-7.753414973715193e-4,1.4185135339496087e-5,1.708636928482128e-8,-7.751607783545031e-4,1.4459758828692502e-5,1.7194078255654558e-8,-7.750965022472446e-4,1.4662655192892729e-5,1.7273331572288793e-8,-7.751031768498831e-4,1.4747011345581016e-5,1.730618293517172e-8,-7.751215862559233e-4,1.4701900854900151e-5,1.7288656969080978e-8,-7.750986283316115e-4,1.45502732264208e-5,1.7229950783472687e-8,-7.750005720993924e-4,1.4336090541435382e-5,1.714739884303355e-8,-7.748166257563864e-4,1.4108830030091316e-5,1.7060381671628664e-8,-7.74555246270904e-4,1.3911680743308552e-5,1.6985680755460048e-8,-7.742375216046733e-4,1.3775437312394145e-5,1.6935101840957774e-8,-7.738908672395347e-4,1.3716934985120997e-5,1.691492118059338e-8,-7.735443296708602e-4,1.373987657547806e-5,1.6926288994825302e-8,-7.732253688257358e-4,1.3836379992091725e-5,1.6965903557041073e-8,-7.729574201870145e-4,1.398850143961783e-5,1.702664562074045e-8,-7.727575479089458e-4,1.41697546103367e-5,1.7098179346093112e-8,-7.726338127068317e-4,1.4347167415583573e-5,1.7167741915981117e-8,-7.72582526013079e-4,1.4484672906976143e-5,1.7221441721592798e-8,-7.725862452751478e-4,1.4548420666369706e-5,1.724630156120042e-8,-7.726138958417847e-4,1.4513823225779425e-5,1.723297684502607e-8,-7.726244080267737e-4,1.4372974279860863e-5,1.717861929269323e-8,-7.725743889406402e-4,1.4139927504773041e-5,1.708890500581759e-8,-7.724286327675101e-4,1.3851021527237483e-5,1.6978122122320604e-8,-7.721705055599232e-4,1.3558663671444288e-5,1.6866694872960056e-8,-7.718085762849863e-4,1.3319387181004731e-5,1.6776479385700888e-8,-7.713767987397502e-4,1.3179295367351444e-5,1.6725086614472134e-8,-7.709275714331829e-4,1.3161122848693512e-5,1.6720920077215314e-8,-7.705191844169844e-4,1.3256827859980563e-5,1.6760442718757147e-8,-7.702008063045723e-4,1.3428227793557443e-5,1.6828582942267516e-8,-7.699990644679152e-4,1.361618554202354e-5,1.6902388068197547e-8,-7.699104039245936e-4,1.3756467861176603e-5,1.6957151603506948e-8,-7.699023224946573e-4,1.3797806695198463e-5,1.697331252819716e-8,-7.69923693570122e-4,1.3715970518988264e-5,1.6941802014512077e-8,-7.699204730517889e-4,1.3518607018056203e-5,1.686585566047806e-8,-7.698506029324883e-4,1.3239647040700348e-5,1.675881321149357e-8,-7.696928309426752e-4,1.292679553392078e-5,1.663924458294889e-8,-7.694477547487295e-4,1.2627916951666916e-5,1.6525649634657365e-8,-7.691330174202381e-4,1.2380977939982187e-5,1.6432564147368763e-8,-7.687761526504343e-4,1.2209237379755138e-5,1.6368739832210366e-8,-7.684079653894965e-4,1.2120781661778011e-5,1.633703602331063e-8,-7.680577369530784e-4,1.2110432408898472e-5,1.6335228492463344e-8,-7.677501944254693e-4,1.21623329271923e-5,1.6357054465017322e-8,-7.675035516029946e-4,1.2252353588631538e-5,1.6393155437041988e-8,-7.673278510063229e-4,1.2350244031443248e-5,1.6431898304259127e-8,-7.672231013092557e-4,1.2422047112441263e-5,1.6460286860244704e-8,-7.671772688900853e-4,1.243363156115782e-5,1.6465302548663993e-8,-7.671649640707796e-4,1.2356108383738767e-5,1.6435971563363704e-8,-7.671484101972802e-4,1.2173134658280302e-5,1.6366160768870968e-8,-7.670825263514741e-4,1.188858814480631e-5,1.6257519307403445e-8,-7.669249561884815e-4,1.153125860759139e-5,1.6121270567197454e-8,-7.666492306156377e-4,1.115245465159126e-5,1.5977261511360678e-8,-7.662560978121537e-4,1.0814456656206232e-5,1.5849466079461248e-8,-7.657770512027595e-4,1.05724402594284e-5,1.5758977593618244e-8,-7.65267023298901e-4,1.0456872508954073e-5,1.571723833544501e-8,-7.647885985095952e-4,1.0463873633946137e-5,1.5722417018223885e-8,-7.643941100002343e-4,1.0557097979145212e-5,1.5760262592280024e-8,-7.641121194876584e-4,1.0679365871370066e-5,1.580868049828012e-8,-7.639418824019487e-4,1.0769014504534602e-5,1.5844044262621295e-8,-7.63856040874777e-4,1.0775642632836637e-5,1.5847200884499e-8,-7.638095816807227e-4,1.067134664327151e-5,1.5807708446849496e-8,-7.637520719001363e-4,1.0455341968064698e-5,1.5725533933861105e-8,-7.636398633410946e-4,1.015159717703648e-5,1.5610082730947348e-8,-7.634452271731003e-4,9.80080001717917e-6,1.547706895850993e-8,-7.63160419406769e-4,9.449412193445568e-6,1.5344290126782374e-8,-7.627963935193374e-4,9.13916163473737e-6,1.522760366709052e-8,-7.623775983584871e-4,8.899634906261868e-6,1.5138131787055436e-8,-7.619351862275943e-4,8.745021320744058e-6,1.5081084100568852e-8,-7.615007251523846e-4,8.674467790722235e-6,1.5055961298020598E-08,-7.611015754607918e-4,8.674636046522299e-6,1.5057573206547553e-8,-7.607580727699104e-4,8.723012138457471e-6,1.507730793528806e-8,-7.604819845856674e-4,8.79104729455283e-6,1.5104310215033872e-8,-7.602755220059144e-4,8.84693302571431e-6,1.512651308174354e-8,-7.60130395955743e-4,8.858401879917029e-6,1.5131688225382546e-8,-7.600268787531797e-4,8.796280560370882e-6,1.5108794499177295e-8,-7.599335469922736e-4,8.639531259323042e-6,1.5049899963453894e-8,-0.000759809210702789,8.381910431287344e-6,1.495271925500096e-8,-7.596089689111743e-4,8.038852722231386e-6,1.4823230368913413e-8,-7.592954714676379e-4,7.651012523481406e-6,1.4677004696445236e-8,-7.588534536653339e-4,7.279557888325591e-6,1.4537373653592984e-8,-7.583012167940397e-4,6.990438849818558e-6,1.4429384557414762e-8,-7.576907836367265e-4,6.831496399448591e-6,1.4371061617021388e-8,-7.570930731261787e-4,6.813281142864784e-6,1.4366159181078007e-8,-7.56573893838745e-4,6.904553518906711e-6,1.440256548875904e-8,-7.561728030269616e-4,7.044803405478948e-6,1.445716559337654e-8,-7.55894167206311e-4,7.166043359666975e-6,1.450415417168199e-8,-7.55711412564325e-4,7.212993883249746e-6,1.4522671727194704e-8,-7.555791656848098e-4,7.1549930276133835e-6,1.4501273602714309e-8,-7.554470640511585e-4,6.988776194001312e-6,1.443893097512812e-8,-7.552712370159999e-4,6.734529749762169e-6,1.4343479112262025e-8,-7.550218631592772e-4,6.428246653777687e-6,1.422866437274883e-8,-7.546866678361489e-4,6.112788824185316e-6,1.4110719482184918e-8,-7.542707923333388e-4,5.8292867079302145e-6,1.400510243390426e-8,-7.537936783321645e-4,5.610111184424559e-6,1.392387568318107e-8,-7.532839358400108e-4,5.474383321977379e-6,1.3874075234006555e-8,-7.527734587962739e-4,5.42640635004478e-6,1.3857186797906472e-8,-7.522919859404003e-4,5.45669894844625e-6,1.386957766596827e-8,-7.518629339501932e-4,5.544851652733658e-6,1.3903575419281547e-8,-7.515008253699221e-4,5.66324214311497e-6,1.3948838400251825e-8,-7.51210094786353e-4,5.780767390543559e-6,1.3993723032625362e-8,-7.509847483529711e-4,5.866229168685598e-6,1.4026532943938554e-8,-7.508084438557491e-4,5.891537175053618e-6,1.4036723339664531e-8,-7.506548991499108e-4,5.835186884660035e-6,1.4016225902040902e-8,-7.504890649576297e-4,5.6865153995048614e-6,1.3961069522205696e-8,-7.502702069824309e-4,5.450810519333698e-6,1.3873309470797243e-8,-7.499584705215199e-4,5.154093641144201e-6,1.376281194863296e-8,-7.495258303846799e-4,4.844492327076601e-6,1.3647730610076522e-8,-7.489697010459084e-4,4.585680212391129e-6,1.3551982235163058e-8,-7.483229773845283e-4,4.439424944083938e-6,1.3498642646116442e-8,-7.47651384167147e-4,4.441135789993236e-6,1.3500781498633393e-8,-7.47033630108719e-4,4.5810783550153105e-6,1.3554518828823992e-8,-7.465319640685318e-4,4.8048662841334895e-6,1.3639340521473976e-8,-7.461696806020518e-4,5.035072310667735e-6,1.3726250888424918e-8,-7.45927649234082e-4,5.200984456189078e-6,1.3788876550238137e-8,-7.457581262680648e-4,5.260058265685222e-6,1.3811432021938078e-8,-7.456046602651826e-4,5.203880705388684e-6,1.3790914319102578e-8,-7.454181631269655e-4,5.052110434397819e-6,1.373481274651468e-8,-7.451656280700271e-4,4.841472760620587e-6,1.3656958068869079e-8,-7.448325507537849e-4,4.61494382342504e-6,1.357343640410499e-8,-7.444214445461733e-4,4.413322175715639e-6,1.3499417669267064e-8,-7.439484346229335e-4,4.2694368736615086e-6,1.3447009746671435e-8,-7.434389857049532e-4,4.204518303627032e-6,1.3423957631836567e-8,-7.429232000552066e-4,4.22642353337615e-6,1.3433047936838739e-8,-7.424310713391792e-4,4.3296407656193255e-6,1.3472159698785832e-8,-7.419881612882491e-4,4.496920195240808e-6,1.3534885426142835e-8,-7.416121363128246e-4,4.702242436589464e-6,1.3611614172495427e-8,-7.413105280088105e-4,4.9146848337064315e-6,1.369092983616905e-8,-7.410798564648585e-4,5.102579289552534e-6,1.3761123342581654e-8,-7.409059284613239e-4,5.2374620959614515e-6,1.3811649751762265e-8,-7.40765021747722e-4,5.2976581500819286e-6,1.3834473325427858e-8,-7.406258251361314e-4,5.271569720175211e-6,1.3825313013330133e-8,-7.404522940607082e-4,5.16079816624066e-6,1.3784817350730312e-8,-7.402080188256512e-4,4.982998369865964e-6,1.3719616164717567e-8,-7.398629579022926e-4,4.773502162654375e-6,1.3642888630399176e-8,-7.394027814983437e-4,4.583451075155526e-6,1.3573616754794363e-8,-7.388391120671625e-4,4.471358391383276e-6,1.3533406453527241e-8,-7.382156353710173e-4,4.486293417993243e-6,1.3540246689754017e-8,-7.376025584177996e-4,4.646263952038066e-6,1.360057244394542e-8,-7.370753966750942e-4,4.923220958661702e-6,1.3703844593894654e-8,-7.366853493943496e-4,5.247831278658755e-6,1.3824412277992002e-8,-7.364384127765779e-4,5.535851078356583e-6,1.3931243008841947e-8,-7.362964904189415e-4,5.721421847439438e-6,1.400013251189647e-8,-7.361977969831083e-4,5.777834083495166e-6,1.4021317172913075e-8,-7.360817614101209e-4,5.717840477241389e-6,1.3999596259483795e-8,-7.359055977095308e-4,5.580085272187351e-6,1.3949330970951832e-8,-7.356494891230436e-4,5.412741838724204e-6,1.3888375540751401e-8,-7.353140711726487e-4,5.2611317114854454e-6,1.3833462198014537e-8,-7.349148352444343e-4,5.160747629068616e-6,1.3797605620566516e-8,-7.34476381499244e-4,5.134402307300587e-6,1.378907362699951e-8,-7.340275945238301e-4,5.1916865952263e-6,1.3811240956866352e-8,-7.335976379390709e-4,5.3295409738639065e-6,1.386285790594125e-8,-7.332124264851362e-4,5.533583318487555e-6,1.393857552488052e-8,-7.328914883847182e-4,5.780224195792896e-6,1.4029729175094004e-8,-7.326453464977734e-4,6.039657534633526e-6,1.412541622107681e-8,-7.324737353478441e-4,6.279722160979335e-6,1.4213885118568412e-8,-7.323650721376349e-4,6.470322863277057e-6,1.4284138014656952e-8,-7.322974036581984e-4,6.587844288483066e-6,1.4327549734585913e-8,-7.322407659586676e-4,6.619032470350085e-6,1.4339305787613665e-8,-7.321607813179032e-4,6.563928060747684e-6,1.4319492082724502e-8,-7.320233046863541e-4,6.4374966021072834e-6,1.4273690279829042e-8,-7.317999978283977e-4,6.269641412024475e-6,1.4212954276300681e-8,-7.314747508146167e-4,6.103003158628865e-6,1.415295567438129e-8,-7.310503956340962e-4,5.987372946262786e-6,1.4111888222525968e-8,-7.30553886574779e-4,5.969501086118192e-6,1.4106716472582734e-8,-7.300364338939657e-4,6.078516230287104e-6,1.4147877299553037e-8,-7.295642924788504e-4,6.3107236580662384e-6,1.4233817360402606e-8,-7.29198788762624e-4,6.622175486804494e-6,1.4348383535941494e-8,-7.289720333664855e-4,6.9380135239147e-6,1.4464270004578152e-8,-7.288720132220635e-4,7.178968146684719e-6,1.4552629285696456e-8,-7.288478475491566e-4,7.292033122646066e-6,1.4594189017363577e-8,-7.288324425920637e-4,7.267653302542506e-6,1.4585519239748402e-8,-7.287681356467766e-4,7.1358561174840265e-6,1.4537665753835853e-8,-7.286220514824529e-4,6.9483598487620115e-6,1.4469630977301123e-8,-7.28388085845522e-4,6.7592678922152605e-6,1.4401275496516345e-8,-7.280804913481166e-4,6.612273121504457e-6,1.4348581630811597e-8,-7.277252407959589e-4,6.5354231757555416e-6,1.4321716844225746e-8,-7.273527660572583e-4,6.540950211029966e-6,1.4324997142073501e-8,-7.269930114233965e-4,6.6273182842564705e-6,1.4357691570767854e-8,-7.26672240266485e-4,6.781718300136292e-6,1.4414990002890305e-8,-7.264107154812758e-4,6.982473886382033e-6,1.4488915944389668e-8,-7.262207318281119e-4,7.201524453767113e-6,1.4569238469116222e-8,-7.261048945983162e-4,7.407366857871365e-6,1.464452799757507e-8,-7.260549073749619e-4,7.568797659062485e-6,1.4703494431167381e-8,-7.26051465526772e-4,7.659436861891897e-6,1.4736614332348274e-8,-7.260658689683676e-4,7.662469338693832e-6,1.4737849783051846e-8,-7.260636091525101e-4,7.574690894230019e-6,1.4706123818166879e-8,-7.260097162467727e-4,7.408843381596091e-6,1.4646170303919831e-8,-7.258751869359084e-4,7.193327753172565e-6,1.4568414770672015e-8,-7.256434329193616e-4,6.968816351578809e-6,1.4487705994885722e-8,-7.253155606930208e-4,6.781829885047062e-6,1.4420936000282275e-8,-7.249132562182546e-4,6.6756763505280914e-6,1.4383719471977372e-8,-7.244778292372096e-4,6.679612946037396e-6,1.438647617104953e-8,-7.240638597492315e-4,6.798235959896041e-6,1.443065370266917e-8,-7.237266826504071e-4,7.004766318589259e-6,1.4506391489857573e-8,-7.235054613225411e-4,7.243025516191428e-6,1.4593301323513466e-8,-7.2340765660686e-4,7.441405783647142e-6,1.4665511557876749e-8,-7.234034010785615e-4,7.53631382926181e-6,1.4700082991218885e-8,-7.234351925205399e-4,7.495034347391305e-6,1.468523799630331e-8,-7.234393429224217e-4,7.325932982914151e-6,1.462407472647779e-8,-7.233679091640017e-4,7.071240070168453e-6,1.4531993918580552e-8,-7.2320061796834e-4,6.7884821942071435e-6,1.4429962503804012e-8,-7.229442000740695e-4,6.531515408382787e-6,1.4337580335722595e-8,-7.226237824510028e-4,6.338676971745417e-6,1.4268730878278133e-8,-7.222726609371696e-4,6.229186086844068e-6,1.4230270463511608e-8,-7.219243370456767e-4,6.204979076589403e-6,1.4222735101428858e-8,-7.216077209136364e-4,6.254637305234233e-6,1.424182454315981e-8,-7.213447052154808e-4,6.357313551246988e-6,1.427987548429127e-8,-7.211489353260135e-4,6.485977719230195e-6,1.432706196354135e-8,-7.210249390732579e-4,6.610178726644471e-6,1.4372391800318248e-8,-7.209673047686168e-4,6.69888928465445e-6,1.440471413451235e-8,-7.209601280974389e-4,6.7240278150433335e-6,1.4413965009805703e-8,-7.20977427897608e-4,6.664882671759e-6,1.4392744472576701e-8,-7.209854343714221e-4,6.51295128433434e-6,1.4338056762127022e-8,-7.209473640933031e-4,6.27595967171071e-6,1.4252764848687728e-8,-7.20830498270342e-4,5.979351536502665e-6,1.4146129546232638e-8,-7.206142541252474e-4,5.663667819126294e-6,1.4032848951131945e-8,-7.202969652261338e-4,5.377288241995543e-6,1.3930404038766788e-8,-7.198989165010806e-4,5.1656853148451214e-6,1.3855144520274798e-8,-7.194600346572165e-4,5.059761967389392e-6,1.381807600558674e-8,-7.190320840484526e-4,5.066413372274996e-6,1.3821501796020195e-8,-7.186667008859963e-4,5.164217116728777e-6,1.3857550892980985e-8,-7.184018625214499e-4,5.306290101127747e-6,1.3909277458429183e-8,-7.182503872805278e-4,5.430848543585556e-6,1.3954476928807232e-8,-7.181945402363831e-4,5.477745639924967e-6,1.3971593615188382e-8,-7.181899363308149e-4,5.406401461740874e-6,1.3946114620028615e-8,-7.181787956068019e-4,5.208432912413644e-6,1.3875092760960466e-8,-7.181080232052682e-4,4.909307597908525e-6,1.3767756999698908e-8,-7.179446434546303e-4,4.558250395919083e-6,1.3641890350548404e-8,-7.176825410055812e-4,4.2115104900122955e-6,1.3517783575060329e-8,-7.173394303115774e-4,3.9166207270580965e-6,1.3412530864261023e-8,-7.169476918402883e-4,3.7030604472824477e-6,1.3336657086835069e-8,-7.165441754546074e-4,3.5802790936875876e-6,1.3293434686648582e-8,-7.161624370313028e-4,3.540740334466443e-6,1.3280030267105057e-8,-7.158283342384227e-4,3.5648889198243974e-6,1.3289336702046267e-8,-7.155582446948228e-4,3.6259309695520506e-6,1.3311712356351884e-8,-7.153587035969551e-4,3.6936410852722728e-6,1.3336343509346127e-8,-7.152264834437153e-4,3.7373251672731826e-6,1.3352284086218272e-8,-7.151486443905965e-4,3.7285507918335262e-6,1.3349406474614047e-8,-7.151027106872547e-4,3.6443643170977546e-6,1.3319531867733131e-8,-7.150577088567976e-4,3.471371309569102e-6,1.3257885044742072e-8,-7.149771233861474e-4,3.2102934517910352e-6,1.3164734543938834e-8,-7.148246566289133e-4,2.879607352494538e-6,1.304671174381637e-8,-7.145727155168279e-4,2.5159715205526265e-6,1.2916970172838227e-8,-7.14211741474117e-4,2.1691340011926946e-6,1.2793345447593278e-8,-7.13756704294834e-4,1.8907340958244058e-6,1.2694309938959155e-8,-7.13246867286023e-4,1.7195895090076379e-6,1.263368292154631e-8,-7.127372110269032e-4,1.6687917986243744e-6,1.2616035558109819e-8,-7.122837106314069e-4,1.7200599947476228e-6,1.2634736954970411e-8,-7.11927625851379e-4,1.8279231828251246e-6,1.2673513419775649e-8,-7.116842639270483e-4,1.9322272870562014e-6,1.2710931582090524e-8,-7.115395372739504e-4,1.9745795969288553e-6,1.2726232447310445e-8,-7.114547557725002e-4,1.9136654302389338e-6,1.270474472926178e-8,-7.113777961538001e-4,1.735292690655213e-6,1.2641441637291946e-8,-7.112572859060644e-4,1.4546876493828617e-6,1.2541763992937194e-8,-7.110556761496227e-4,1.1107338000528394e-6,1.2419577806846834e-8,-7.107574398631749e-4,7.542984399074633e-7,1.2293006190122626e-8,-7.103703854584871e-4,4.3467766591549663e-7,1.2179579666103922e-8,-7.099206413352514e-4,1.8848792044254664e-7,1.209227121863942e-8,-7.094440058956009e-4,3.38112439872334e-8,1.2037433652280913e-8,-7.089770272256449e-4,-3.005946575574514e-8,1.2014751159396523e-8,-7.085502677011695e-4,-1.8942666134325098e-8,1.2018584823579895e-8,-7.081845728037587e-4,4.1504324056836106e-8,1.2039859175127503e-8,-7.078898530136206e-4,1.2085396250360532e-7,1.2067846450829226e-8,-7.07665357590904e-4,1.8796389173417595e-7,1.2091574008084617e-8,-7.075005062641622e-4,2.1404627281451953e-7,1.2100880394544461e-8,-7.073757642706145e-4,1.7527949313218791e-7,1.2087321949694448e-8,-7.072636271028598e-4,5.563556618695607e-8,1.2045175593473184e-8,-7.07130371455471e-4,-1.496666377152965e-7,1.1972682276401499e-8,-7.069396260706627e-4,-4.3038263800395507e-7,1.1873415802529695e-8,-7.06658736467273e-4,-7.585342773530107e-7,1.1757266370952408e-8,-7.062679103912365e-4,-1.0893111587869973e-6,1.164011958067034e-8,-7.057699493448573e-4,-1.3683565279279107e-6,1.1541242460665835e-8,-7.051958014848092e-4,-1.546143275736306e-6,1.1478149826314971e-8,-7.046006461074884e-4,-1.5955509000684547e-6,1.1460378253613378e-8,-7.040489785775769e-4,-1.5244730508863847e-6,1.1485082661954835e-8,-7.035938487042454e-4,-1.3758182686775965e-6,1.1537113738876136e-8,-7.032597812034259e-4,-1.2137575651664247e-6,1.1593901613711014e-8,-7.030369079407669e-4,-1.1027795845962554e-6,1.1632801609042198e-8,-7.028872532957906e-4,-1.0889580682558247e-6,1.1637630789638363e-8,-7.027584678100196e-4,-1.1897271998792792e-6,1.1602238033439061e-8,-7.025988796732991e-4,-1.3932883666335377e-6,1.1530725736851102e-8,-7.02369467900341e-4,-1.6652872066721532e-6,1.1435125811886794e-8,-7.020507465969052e-4,-1.959328698109832e-6,1.1331711320640786e-8,-7.016442939978633e-4,-2.2282184952551496e-6,1.1237034626369414e-8,-7.011697035243303e-4,-2.4335618600813347e-6,1.1164544945400339e-8,-7.006583801112918e-4,-2.5521150452073807e-6,1.1122365961218336e-8,-7.001460060304543e-4,-2.5781375982917395e-6,1.1112496075816941e-8,-6.996655112290227e-4,-2.5220161431554106e-6,1.1131319063948755e-8,-6.992418776281199e-4,-2.4062965783673872e-6,1.1171004748331547e-8,-6.988893060139256e-4,-2.260591788360715e-6,1.1221277939326513e-8,-6.986105278643894e-4,-2.1166353920163535e-6,1.1271116834225942e-8,-6.983975667488254e-4,-2.0042272969958953e-6,1.1310137596645092e-8,-6.982331775114807e-4,-1.948167868728002e-6,1.1329646935505253e-8,-6.980924984224593e-4,-1.9658036073505293e-6,1.1323502940205919e-8,-6.979449169280985e-4,-2.064692866216944e-6,1.128895545665963e-8,-6.977566158534427e-4,-2.240091878769088e-6,1.1227562045779688e-8,-6.974946560896657e-4,-2.4725062008836e-6,1.1146078731656455e-8,-6.971334322778307e-4,-2.7265579611108132e-6,1.1056870056968845e-8,-6.966634001809645e-4,-2.9535495920723803e-6,1.0976992639682918e-8,-6.960998225694706e-4,-3.1003923112501523e-6,1.0925024976391107e-8,-6.954864809875409e-4,-3.125514095301827e-6,1.0915470365326537e-8,-6.94888405730523e-4,-3.0171655312078273e-6,1.0952385872816837e-8,-6.943721615170897e-4,-2.8040956720319907e-6,1.1025740558355747e-8,-6.939812476892919e-4,-2.5493950355256136e-6,1.111363121856989e-8,-6.937199582600355e-4,-2.328052856844355e-6,1.119007794880418e-8,-6.935545525919977e-4,-2.199995786806156e-6,1.123431816683279e-8,-6.93429179173718e-4,-2.1924546956316556e-6,1.1236874298485071e-8,-6.932862200777068e-4,-2.2974342328778687e-6,1.1200440938200634e-8,-6.930818299262455e-4,-2.4806963116481874e-6,1.1136809772812793e-8,-6.927932877982263e-4,-2.69515791678022e-6,1.1062250907052743e-8,-6.924193527516066e-4,-2.8932872464684024e-6,1.0993214408490107e-8,-6.919763333906085e-4,-3.036081365862266e-6,1.0943205101581768e-8,-6.91492215226939e-4,-3.098326934476717e-6,1.0920952638432522e-8,-6.910002904512773e-4,-3.070683044984637e-6,1.0929697707612377e-8,-6.905331356871504e-4,-2.959140124946023e-6,1.0967394783237994e-8,-6.90117596465121e-4,-2.7823877442401985e-6,1.1027633804261848e-8,-6.897712626577218e-4,-2.567793687719598e-6,1.1101026790081565e-8,-6.895006358475275e-4,-2.3467550008997916e-6,1.1176795508382824e-8,-6.89300944615274e-4,-2.150115599113473e-6,1.1244329229978124e-8,-6.891573100006782e-4,-2.00424231133623e-6,1.1294520632905088e-8,-6.890467540316551e-4,-1.9280356409594636e-6,1.1320793607430406e-8,-6.889406381638624e-4,-1.930734024848246e-6,1.1319874885504703e-8,-6.888074504279619e-4,-2.0102414136189414e-6,1.1292397488351405e-8,-6.886161724085662e-4,-2.1518695593095066e-6,1.1243363432643985e-8,-6.883407101463712e-4,-2.327739840236361e-6,1.1182368829498123e-8,-6.879658514959947e-4,-2.497813089077346e-6,1.1123245267791766e-8,-6.874944007746656e-4,-2.6143891697839814e-6,1.108247815801189e-8,-6.869533275424424e-4,-2.6320148015926607e-6,1.1075749525894508e-8,-6.863944546199724e-4,-2.522826202578732e-6,1.1112635168862053e-8,-6.858844538666012e-4,-2.2926275030821306e-6,1.1191109583836215e-8,-6.854832279089802e-4,-1.9877298379677976e-6,1.1295269233710088e-8,-6.852191743942243e-4,-1.6834486218362717e-6,1.1399318636952878e-8,-6.850762207670568e-4,-1.4561494259965552e-6,1.1477115718733162e-8,-6.850017506227822e-4,-1.353885669014518e-6,1.1512169978020316e-8,-6.849299395502611e-4,-1.382232489232581e-6,1.1502489363880025e-8,-6.848057305429362e-4,-1.5099055715152289e-6,1.1458706325152704e-8,-6.845983153559325e-4,-1.6859188037799119e-6,1.1398245647313847e-8,-6.843027428170722e-4,-1.8571846721204412e-6,1.1339299333489303e-8,-6.839342878524915e-4,-1.9804742909492373e-6,1.1296704524613013e-8,-6.83520537940993e-4,-2.0280142608472192e-6,1.1280001238857747e-8,-6.830941226507634e-4,-1.9884992920636643e-6,1.1293074773063915e-8,-6.826870433621648e-4,-1.8656132505174621e-6,1.13346680053564e-8,-6.823264387413217e-4,-1.6753696630438363e-6,1.1399305110651174e-8,-6.82031487121087e-4,-1.4427423697938251e-6,1.1478456664893744e-8,-6.818114056550049e-4,-1.1978017957364357e-6,1.1561864398442774e-8,-6.816645845240956e-4,-9.716026242010502e-7,1.1638940368353777e-8,-6.81578901101889e-4,-7.920793248862827e-7,1.1700156773758746e-8,-6.815332503350359e-4,-6.803319074311323e-7,1.173830361103633e-8,-6.815001275355418e-4,-6.477490111422285e-7,1.1749467706559448e-8,-6.814489184104265e-4,-6.941843501332436e-7,1.1733661035226025e-8,-6.813496403718091e-4,-8.071935459534741e-7,1.1695093476635976e-8,-6.81177053403738e-4,-9.623862476189849e-7,1.164206416834527e-8,-6.809151476327394e-4,-1.1251098518570805e-6,1.158639073471916e-8,-6.80561933977751e-4,-1.254012468855875e-6,1.154218474453644e-8,-6.801338767888566e-4,-1.307464024167702e-6,1.1523643336190613e-8,-6.79668066854345e-4,-1.2535982747354408e-6,1.1541612761355467e-8,-6.792188902309273e-4,-1.0830088825351644e-6,1.1599275967291585e-8,-6.78845970446115e-4,-8.196398734036575e-7,1.1688487599342648e-8,-6.785938804680131e-4,-5.21865523976247e-7,1.1789443842818592e-8,-6.784716853381285e-4,-2.670917135713526e-7,1.1875898145539714e-8,-6.784454801674145e-4,-1.229862560247459e-7,1.1924869708763637e-8,-6.78451422731065e-4,-1.2039502744957288e-7,1.1925808501975738e-8,-6.784224136183189e-4,-2.4413852327126643e-7,1.188376744728601e-8,-6.783122474568518e-4,-4.450160638167141e-7,1.1815400961230667e-8,-6.781056774875232e-4,-6.622121589485789e-7,1.1741382274874111e-8,-6.778146379208505e-4,-8.426921141446391e-7,1.1679787181502826e-8,-6.774678679897052e-4,-9.513665380458594e-7,1.1642596348323024e-8,-6.771004646386013e-4,-9.730261227384026e-7,1.163500954750871e-8,-6.767463032638174e-4,-9.096388229470013e-7,1.165635793010542e-8,-6.764335621130428e-4,-7.761178639860844e-7,1.170155308564171e-8,-6.761823408651586e-4,-5.962181208590508e-7,1.1762500661860506e-8,-6.76003339470729e-4,-3.9886548663780184e-7,1.1829366116277767e-8,-6.758971746004418e-4,-2.1465214616865e-7,1.189177429067364e-8,-6.75854349008327e-4,-7.229850977163453e-8,1.1940006997847552e-8,-6.758560464209218e-4,4.947983413017979e-9,1.1966210837941946e-8,-6.75876029123182e-4,2.7488136745964224e-9,1.196554475242547e-8,-6.758837935815457e-4,-8.161918553295126e-8,1.1937085753012027e-8,-6.758487615666738e-4,-2.3790708629766936e-7,1.1884286585775744e-8,-6.757450114730958e-4,-4.432901815565406e-7,1.1814847546413683e-8,-6.75555981832124e-4,-6.647221873892998e-7,1.1739927591423942e-8,-6.752785440219556e-4,-8.632714013106472e-7,1.1672680443195546e-8,-6.749257989924772e-4,-1.0003070529774613e-6,1.1626159710092367e-8,-6.745277736728225e-4,-1.04533785405786e-6,1.1610666373841045e-8,-6.74128768082691e-4,-9.849061499935828e-7,1.1630749295767326e-8,-6.737798662443241e-4,-8.306924641557072e-7,1.1682486866486084e-8,-6.735259935027122e-4,-6.231378273326227e-7,1.1752281613645974e-8,-6.733897881249691e-4,-4.257941722485988e-7,1.1818755484053001e-8,-6.733589931298577e-4,-3.0779861157673254e-7,1.185861347121806e-8,-6.733862647382449e-4,-3.189045445843042e-7,1.1855019353474524e-8,-6.734052719418553e-4,-4.6933352922082787e-7,1.1804407956455615e-8,-6.73356095178138e-4,-7.26669545411652e-7,1.1717608951207223e-8,-6.732058920007578e-4,-1.03135768079192e-6,1.1614681309859787e-8,-6.729549688437168e-4,-1.3203085634674708e-6,1.1516948301661333e-8,-6.726292231984343e-4,-1.5456410863813466e-6,1.1440629950089799e-8,-6.722669138054278e-4,-1.6825813512472906e-6,1.1394139323916218e-8,-6.719069745690607e-4,-1.728292691642922e-6,1.1378462534167964e-8,-6.715817867987357e-4,-1.6963310651301452e-6,1.1389032635968985e-8,-6.713140269531039e-4,-1.6104898771342205e-6,1.1417818254359392e-8,-6.711159576172181e-4,-1.4997911391117643e-6,1.1455027849828653e-8,-6.7098967808978e-4,-1.3947627025395655e-6,1.1490377166722129e-8,-6.709276170943395e-4,-1.3244157649111584e-6,1.1514110299334853e-8,-6.709132260466664e-4,-1.3133527174552276e-6,1.1517964713543777e-8,-6.709221924822578e-4,-1.3787160274900425e-6,1.1496180968261428e-8,-6.709246793383498e-4,-1.5271024239717297e-6,1.144652479963841e-8,-6.708890101922466e-4,-1.7521057789037506e-6,1.1371108056069637e-8,-6.707867329827515e-4,-2.03349427394575e-6,1.1276673671676083e-8,-6.705983390374779e-4,-2.3389296906621046e-6,1.1174033427878806e-8,-6.703183942720542e-4,-2.6286525837106187e-6,1.1076507144233978e-8,-6.699586275639561e-4,-2.862764821608109e-6,1.0997482902064068e-8,-6.695477636789244e-4,-3.009877260332382e-6,1.0947514998244096e-8,-6.691275106414471e-4,-3.0553669347500317e-6,1.093155672567259e-8,-6.687448110835039e-4,-3.0073333148598256e-6,1.0946969098039167e-8,-6.684411914721439e-4,-2.8982694801256994e-6,1.09829603567278e-8,-6.682410506419115e-4,-2.7805932569171573e-6,1.1022061743662119e-8,-6.681420923177971e-4,-2.7151112480580224e-6,1.1043947687668447e-8,-6.681122430425281e-4,-2.7538322953627776e-6,1.103115103055556e-8,-6.680967532338296e-4,-2.922229780866871e-6,1.0975005824736362e-8,-6.680351768836946e-4,-3.208938989025025e-6,1.0879155445024393e-8,-6.678818198079746e-4,-3.569206800689314e-6,1.07584697087957e-8,-6.676199799142348e-4,-3.941264216912157e-6,1.0633592515886972e-8,-6.672637124200508e-4,-4.26723863883779e-6,1.0523919613312888e-8,-6.668484745365341e-4,-4.508722102625259e-6,1.0442353880863865e-8,-6.664173881818245e-4,-4.652194081672177e-6,1.0393476953270497e-8,-6.660096559372878e-4,-4.705856726945458e-6,1.0374609216835914e-8,-6.6565400917304e-4,-4.692450116383464e-6,1.0378215067070535e-8,-6.65366691378365e-4,-4.641992506869934e-6,1.0394325668100645e-8,-6.651520724436302e-4,-4.586289293999795e-6,1.0412367136578511e-8,-6.650041770194664e-4,-4.555288303349263e-6,1.0422370733593156e-8,-6.649082145975189e-4,-4.574557922642622e-6,1.0415807035090087e-8,-6.648419516531094e-4,-4.663098319825658e-6,1.0386306849815094e-8,-6.647772977923628e-4,-4.830967209773467e-6,1.0330446811403125e-8,-6.64682793482468e-4,-5.0767082913095886e-6,1.0248610310513204e-8,-6.645276535009935e-4,-5.385272368662441e-6,1.014569716509483e-8,-6.642874935506787e-4,-5.727739295789978e-6,1.0031241672519338e-8,-6.639508926581502e-4,-6.064303841982294e-6,9.918438764338643e-9,-6.635248175263377e-4,-6.351327713612035e-6,9.821803180388749e-9,-6.630363208422775e-4,-6.551644593751551e-6,9.753736842483382e-9,-6.625286011154107e-4,-6.6453412099685115e-6,9.720943269391243e-9,-6.620515220562129e-4,-6.637210765563028e-6,9.721958663164957e-9,-6.616490030515382e-4,-6.557815458928014e-6,9.746799934408593e-9,-6.613470434299081e-4,-6.457206611119339e-6,9.779019488102298e-9,-6.611460182660693e-4,-6.3927400851426745e-6,9.799687434697574e-9,-6.610196289517972e-4,-6.414181155194645e-6,9.79227361540468e-9,-6.609211623926225e-4,-6.550090663171576e-6,9.747151909141079e-9,-6.607958578615187e-4,-6.799453044112043e-6,9.664428684028409e-9,-6.605961968829965e-4,-7.131600161094896e-6,9.554052462247139e-9,-6.602952658559864e-4,-7.495192731900008e-6,9.432897717263338e-9,-6.59893337291204e-4,-7.833471097170003e-6,9.319721647992294e-9,-6.594154199307799e-4,-8.10003951822256e-6,9.229912967892944e-9,-6.589015974741606e-4,-8.26940720505979e-6,9.171982193286219e-9,-6.583948475325114e-4,-8.339570999084169e-6,9.146702941363071e-9,-6.579310057521284e-4,-8.32782653290947e-6,9.1484953460235e-9,-6.575332522116057e-4,-8.26326332931551e-6,9.167892353553748e-9,-6.572109057110091e-4,-8.179301464685762e-6,9.193979644439203e-9,-6.569608894446945e-4,-8.108097437895046e-6,9.21621770862212e-9,-6.56770170806039e-4,-8.077049399664383e-6,9.225578151807406e-9,-6.566181353193237e-4,-8.106736580969876e-6,9.2152178288862e-9,-6.56478602741209e-4,-8.209430423295186e-6,9.18097422655523e-9,-6.563217982510564e-4,-8.387533414582957e-6,9.121895607077113e-9,-6.561169927829369e-4,-8.631800308226666e-6,9.04085550962115e-9,-6.558365936151278e-4,-8.91992576094595e-6,8.945052981019506e-9,-6.55462020900297e-4,-9.216878126763627e-6,8.845932484547084e-9,-6.549905970801155e-4,-9.47883318251498e-6,8.757896962005024e-9,-6.544410174747893e-4,-9.66200422791736e-6,8.695387849400742e-9,-6.538536905887626e-4,-9.73541782277881e-6,8.668667779698704e-9,-6.532830284212719e-4,-9.693338183562016e-6,8.679746644976681e-9,-6.527824423394355e-4,-9.561069012846983e-6,8.72050444633388e-9,-6.523874598641779e-4,-9.389804754378765e-6,8.77438033627454e-9,-6.521043283306284e-4,-9.24162630277522e-6,8.821227300503736e-9,-6.519088365606864e-4,-9.170835057503315e-6,8.843328210896267e-9,-6.517549256998489e-4,-9.20896440435165e-6,8.83024338053133e-9,-6.515887679402991e-4,-9.35797527614904e-6,8.781065819974303e-9,-6.513631828401716e-4,-9.592194273994584e-6,8.703882366870197e-9,-6.510485784423071e-4,-9.866901365965093e-6,8.613066195460134e-9,-6.506383852720353e-4,-1.0130449155765347e-5,8.525370284901691e-9,-6.501484713535216e-4,-1.0336665778532513e-5,8.455876704000505e-9,-6.496113485493177e-4,-1.0454609877589606e-5,8.414782975243667e-9,-6.490671674646127e-4,-1.0473577830441985e-5,8.405737418544261e-9,-6.485542315122563e-4,-1.0402716045749107e-5,8.42594207718587e-9,-6.48101570190052e-4,-1.0266290315339773e-5,8.467673384414735e-9,-6.477249772667448e-4,-1.0096801161149698e-5,8.520499798179897e-9,-6.474264817325805e-4,-9.928189624151298e-6,8.573469231980985e-9,-6.471962142913522e-4,-9.790591753984345e-6,8.616798727509629e-9,-6.470153398393853e-4,-9.707072173579713e-6,8.642931881769316e-9,-6.4685902944632e-4,-9.691946903899617e-6,8.647090904414083e-9,-6.466990567131604e-4,-9.749935634588221e-6,8.627569008879582e-9,-6.465061945891082e-4,-9.875497327061216e-6,8.585973740369635e-9,-6.462529770962636e-4,-1.005213254042066e-5,8.527489357020453e-9,-6.459175297868126e-4,-1.0252057697941712e-5,8.46101921967877e-9,-6.454888874271263e-4,-1.0437434177263124e-5,8.398808897746156e-9,-6.449732096697071e-4,-1.0564966265109888e-5,8.354946495019238e-9,-6.4439852831923e-4,-1.0595381812212404e-5,8.34225639995346e-9,-6.438138844513587e-4,-1.0507072144502154e-5,8.367854756241516e-9,-6.432790367365826e-4,-1.0308974899831868e-5,8.428993979308454e-9,-6.428454586197086e-4,-1.0044472629606271e-5,8.511840347096126e-9,-6.425364546618369e-4,-9.780404242463435e-6,8.595019151624936e-9,-6.423374992473061e-4,-9.584105091257316e-6,8.656940621566346e-9,-6.422025862017104e-4,-9.499924509528801e-6,8.683268961814048e-9,-6.420723318815535e-4,-9.536788226021915e-6,8.6709032555823e-9,-6.418937058551346e-4,-9.670339340684684e-6,8.62736165406817e-9,-6.416333150807353e-4,-9.854985606826542e-6,8.567021549391805e-9,-6.412819489618678e-4,-1.0038675384978085e-5,8.506456394204669e-9,-6.40852233208935e-4,-1.0175358821881159e-5,8.460459308358457e-9,-6.403723843214741e-4,-1.0233119886925515e-5,8.439407583253215e-9,-6.398785177155639e-4,-1.0197922583846564e-5,8.44800812947473e-9,-6.394070755339369e-4,-1.0073651943128085e-5,8.485229457435074e-9,-6.389883923031362e-4,-9.879211991447938e-6,8.545190825663756e-9,-6.386421940044092e-4,-9.643564938301254e-6,8.61872891621823e-9,-6.383754932638375e-4,-9.399866438278023e-6,8.695270282083074e-9,-6.381828126059341e-4,-9.179868626602678e-6,8.764629424150486e-9,-6.380482197594612e-4,-9.009455497870036e-6,8.818449463555083e-9,-6.379484020972791e-4,-8.905757191846968e-6,8.851137444227476e-9,-6.378559844764216e-4,-8.875794396678722e-6,8.860308373744816e-9,-6.37742611576723e-4,-8.916182840260416e-6,8.846890961194638e-9,-6.375817826161573e-4,-9.013389503892508e-6,8.815063136955268e-9,-6.373517365413405e-4,-9.144324590548281e-6,8.772088767448038e-9,-6.37038822435467e-4,-9.277480646007872e-6,8.727983133697308e-9,-6.366416476230471e-4,-9.375433709051482e-6,8.69473010267958e-9,-6.361755073060954e-4,-9.400076070259292e-6,8.68460137525384e-9,-6.356751215483993e-4,-9.321725715954837e-6,8.70721463674457e-9,-6.351921226563311e-4,-9.131431137281154e-6,8.765577089452952e-9,-6.34783668220924e-4,-8.851983055038034e-6,8.852573074499977e-9,-6.34492590110691e-4,-8.53933103808297e-6,8.950528563696693e-9,-6.343273922649219e-4,-8.26772377613986e-6,9.035920785086607e-9,-6.342551582389573e-4,-8.102013804904856e-6,9.088118007656425e-9,-6.342142013915741e-4,-8.071933386762328e-6,9.097504097485443e-9,-6.341394360266019e-4,-8.163387841999844e-6,9.06827899549311e-9,-6.339853162802021e-4,-8.329403778276332e-6,9.01508325066568e-9,-6.337359214736137e-4,-8.510810762680521e-6,8.956528860220945e-9,-6.334023030696212e-4,-8.65473815155575e-6,8.909374863487501e-9,-6.330132471509208e-4,-8.725202991217194e-6,8.885158614041552e-9,-6.326051717095914e-4,-8.706169178413972e-6,8.889176992237429e-9,-6.32214019748295e-4,-8.599843727994052e-6,8.920959050065301e-9,-6.318697327111989e-4,-8.422780448879686e-6,8.975440229886825e-9,-6.315928418750007e-4,-8.20125617049522e-6,9.044392176943476e-9,-6.313926873838825e-4,-7.966459175451952e-6,9.117945199759327e-9,-6.31267082506243e-4,-7.749777386235528e-6,9.186104282521891e-9,-6.312033160743475e-4,-7.5785372180136775e-6,9.240130028371382e-9,-6.311803126735913e-4,-7.472534294452365e-6,9.273661681811642e-9,-6.311716770969148e-4,-7.441681249593242e-6,9.283469414099118e-9,-6.311491861629334e-4,-7.484987837433047e-6,9.269772409499044e-9,-6.310862639818491e-4,-7.590780571477355e-6,9.236162458649285e-9,-6.309612058273856e-4,-7.737892241529536e-6,9.189230845951367e-9,-6.307601275839634e-4,-7.897660405035442e-6,9.137956611667645e-9,-6.304796987183105e-4,-8.036756534142556e-6,9.09284140190737e-9,-6.301296693209371e-4,-8.121168651637492e-6,9.064674114885852e-9,-6.297347052073675e-4,-8.122014010732786e-6,9.062695008476826e-9,-6.293340333682221e-4,-8.02357893613418e-6,9.092032490280441e-9,-6.289764922907992e-4,-7.832498886235678e-6,9.150771158405365e-9,-6.287088356458074e-4,-7.584313389584958e-6,9.227855564074418e-9,-6.285582300395714e-4,-7.340955663643736e-6,9.303857526237659e-9,-6.285162181702288e-4,-7.173981894358338e-6,9.35622506385365e-9,-6.28535844534191e-4,-7.137050918742098e-6,9.367918818323381e-9,-6.285482266619833e-4,-7.242236086511384e-6,9.334891322630107e-9,-6.284908233474023e-4,-7.4556587282647425e-6,9.267547066221383e-9,-6.28330425274692e-4,-7.714648020679488e-6,9.185435045716488e-9,-6.28069302206002e-4,-7.95377724697567e-6,9.109102634548203e-9,-6.277362671666278e-4,-8.124785819023314e-6,9.053825972438715e-9,-6.273721375619873e-4,-8.204270724462586e-6,9.02715680817319e-9,-6.27017398081553e-4,-8.191793049541557e-6,9.029461806338658e-9,-6.267047725449272e-4,-8.103665827061228e-6,9.055810702686439e-9,-6.26456043916988e-4,-7.966249400547607e-6,9.098033223137005e-9,-6.26281416479543e-4,-7.810389877515416e-6,9.146451274581206e-9,-6.261800463441795e-4,-7.667092566462788e-6,9.191260130576387e-9,-6.261411718711373e-4,-7.564004290537873e-6,9.223675064183579e-9,-6.261457836463466e-4,-7.522438367703082e-6,9.23690378724907e-9,-6.261689058554466e-4,-7.554911651594159e-6,9.226935824039986e-9,-6.26182575765119e-4,-7.663394769762143e-6,9.193084339014298e-9,-6.261594321595429e-4,-7.83867655737204e-6,9.138166390547462e-9,-6.26076519398364e-4,-8.061135092227624e-6,9.068247870454783e-9,-6.259188201018052e-4,-8.302926480673475e-6,8.991964522431026e-9,-6.256821123187454e-4,-8.531474630101965e-6,8.919455933728389e-9,-6.253747887567023e-4,-8.714062415411706e-6,8.860964423618094e-9,-6.250183114255093e-4,-8.823240323023451e-6,8.825167866103795e-9,-6.246458882436894e-4,-8.842823215536685e-6,8.817300503612222e-9,-6.242985755887415e-4,-8.774026346559433e-6,8.837199099376945e-9,-6.240177934968095e-4,-8.640273119230142e-6,8.87774343727035e-9,-6.238340168367981e-4,-8.487734929015043e-6,8.924628410892147e-9,-6.237537835039231e-4,-8.37786762163323e-6,8.958649435262117e-9,-6.237508622334895e-4,-8.370050553809897e-6,8.961109428361436e-9,-6.237694285501078e-4,-8.498608243715725e-6,8.921029687418638e-9,-6.237425116459058e-4,-8.75592709653261e-6,8.840509552635665e-9,-6.236182223750581e-4,-9.0935440897417e-6,8.734482255018053e-9,-6.233789176946422e-4,-9.44210315649724e-6,8.62453087546554e-9,-6.230431618178639e-4,-9.738006393072087e-6,8.530559779025655e-9,-6.226528415322329e-4,-9.942072412796151e-6,8.464944949980187e-9,-6.222558156538971e-4,-1.0044216892862036e-5,8.431044644216811e-9,-6.218928123420268e-4,-1.0057759649626142e-5,8.424931676993069e-9,-6.215911924046659e-4,-1.0010051523072495e-5,8.438260126232764e-9,-6.213639804945358e-4,-9.934048776771606e-6,8.460847692598394e-9,-6.212115296909202e-4,-9.862436775050359e-6,8.482499035264433e-9,-6.211238864357817e-4,-9.823973462843352e-6,8.494171700339035e-9,-6.210830596535341e-4,-9.841115150435778e-6,8.488757155704299e-9,-6.210651942122257e-4,-9.928215073960674e-6,8.461672312188594e-9,-6.210429443543682e-4,-1.0090001829574346e-5,8.411340895070526e-9,-6.209883936927952e-4,-1.032045635967511e-5,8.339532086435201e-9,-6.208766895726924e-4,-1.0602611237518307e-5,8.251410557946112e-9,-6.206901011511374e-4,-1.0909904384581257e-5,8.155117882712867e-9,-6.204217801816662e-4,-1.1209428967393452e-5,8.060785794006027e-9,-6.200783346355796e-4,-1.1467000570356854e-5,7.978999665257574e-9,-6.196803527606607e-4,-1.1653487857353938e-5,7.918867885019981e-9,-6.192602675084233e-4,-1.1751341629004252e-5,7.886009589301413e-9,-6.18857430993645e-4,-1.1760013081941588e-5,7.880853644284182e-9,-6.185107199373036e-4,-1.1698990162283051e-5,7.897639687734814e-9,-6.182494033759342e-4,-1.1607106693188978e-5,7.924550386176266e-9,-6.180837782626559e-4,-1.1536704553317361e-5,7.945441153139379e-9,-6.17998354061986e-4,-1.1541930108901036e-5,7.943422534415343e-9,-6.179514865732182e-4,-1.1662608663681637e-5,7.905878369024749e-9,-6.178847530264709e-4,-1.1908666705688085e-5,7.829382187794986e-9,-6.177413716940561e-4,-1.225291771545529e-5,7.722050838337925e-9,-6.174866683392963e-4,-1.2638281908291842e-5,7.601388082277714e-9,-6.171202061499132e-4,-1.2997807711744528e-5,7.488094639614473e-9,-6.166733164451345e-4,-1.3277552122048224e-5,7.398956214429256e-9,-6.161948260617495e-4,-1.3451111439177265e-5,7.342324255674225e-9,-6.157338992816079e-4,-1.3521276834735159e-5,7.317585667968248e-9,-6.153277910312762e-4,-1.351221220619276e-5,7.3175400954822244e-9,-6.149969832299286e-4,-1.345864223227892e-5,7.331678474457581e-9,-6.147459001310118e-4,-1.3396792379450818e-5,7.3489284361196675e-9,-6.14566195981989e-4,-1.335865891362545e-5,7.3594093806847335e-9,-6.144404163975216e-4,-1.3369061432935648e-5,7.3553652588823905e-9,-6.143451013492217e-4,-1.3444276092296466e-5,7.331624223806665e-9,-6.142533201726146e-4,-1.3591271145411236e-5,7.285864502738724e-9,-6.141370824533147e-4,-1.3807054893883965e-5,7.2188286363125555e-9,-6.139701752177742e-4,-1.4078197634895255e-5,7.134475176715785e-9,-6.137317622253945e-4,-1.4381127354302392e-5,7.03989660873347e-9,-6.13410548401449e-4,-1.4684067691371548e-5,6.944744457685035e-9,-6.130086364730966e-4,-1.4951295234998012e-5,6.8599511266353936e-9,-6.125436581487522e-4,-1.5149749237378634e-5,6.795727421966501e-9,-6.120476639627279e-4,-1.5256983677622905e-5,6.759136642679807e-9,-6.115619176413706e-4,-1.5268340231572266e-5,6.751886205597447e-9,-6.111281095430912e-4,-1.520077746265615e-5,6.769114447606619e-9,-6.107779587857513e-4,-1.5091461683002552e-5,6.799746818271109e-9,-6.10524015294988e-4,-1.4990666324170982e-5,6.828571027830531e-9,-6.103544553284269e-4,-1.4950126437351983e-5,6.839718154874809e-9,-6.10233932630094e-4,-1.5009403395997819e-5,6.820816675408024e-9,-6.101112797303565e-4,-1.5183860384006196e-5,6.7667449207401965e-9,-6.099330136988942e-4,-1.5458296216177136e-5,6.6817180549403645e-9,-6.096591780398321e-4,-1.5789545255279567e-5,6.578625916310926e-9,-6.092759401267423e-4,-1.611861496564348e-5,6.475384794437283e-9,-6.087995316766636e-4,-1.638857118742033e-5,6.389456320634693e-9,-6.082696917744599e-4,-1.656102986792536e-5,6.332762451172584e-9,-6.07735931357823e-4,-1.6624724248411486e-5,6.309028251969762e-9,-6.07243028636269e-4,-1.659408062376702e-5,6.314176973263146e-9,-6.068212130456064e-4,-1.6500688633924005e-5,6.3388763395423195e-9,-6.064828882107512e-4,-1.6382732655089433e-5,6.3716957047222936e-9,-6.062244250029457e-4,-1.6276375396916556e-5,6.401688363734559e-9,-6.060303124501623e-4,-1.6210566121514825e-5,6.41997117246288e-9,-6.058775295989655e-4,-1.6204774019256874e-5,6.420448907864246e-9,-6.057391575612956e-4,-1.6268443228459086e-5,6.400024095330046e-9,-6.055871563899351e-4,-1.640110876257458e-5,6.358597590462493e-9,-6.053947651586242e-4,-1.6592563064539658e-5,6.299040120511544e-9,-6.051391799853258e-4,-1.6823062293831563e-5,6.2271479239230684e-9,-6.04804958969757e-4,-1.7064185629920318e-5,6.15140407656365e-9,-6.043880305658054e-4,-1.7281339145854306e-5,6.082244629251485e-9,-6.038993664978827e-4,-1.743882255386278e-5,6.03054138334135e-9,-6.033664982363028e-4,-1.7507647128342022e-5,6.005236775662678e-9,-6.028306776843586e-4,-1.747471621344875e-5,6.0105545030052955e-9,-6.02338498179153e-4,-1.7350074414647643e-5,6.043785475000533e-9,-6.019293636463869e-4,-1.7168208077473955e-5,6.094852354472843e-9,-6.016229799273229e-4,-1.6981102965108023e-5,6.148328418570691e-9,-6.014120043088848e-4,-1.6844415703121967e-5,6.1875079574704055e-9,-6.012631542790681e-4,-1.6801491798937394e-5,6.199152357907398e-9,-6.011264926259588e-4,-1.687094638850435e-5,6.177250027198649e-9,-6.009494858060641e-4,-1.7041783355707502e-5,6.124605564008008e-9,-6.006912495843881e-4,-1.7277030403387907e-5,6.051910031149934e-9,-6.003329547922971e-4,-1.7524265175610315e-5,5.974701125327572e-9,-5.998817609412311e-4,-1.7729749635034893e-5,5.909152133979997e-9,-5.993674834698096e-4,-1.7852060415235455e-5,5.8679359897686786e-9,-5.98833377167506e-4,-1.7871308208750187e-5,5.857377281089162e-9,-5.983242961249349e-4,-1.7791603804934904e-5,5.876628602108236e-9,-5.978761089750183e-4,-1.763692721889734e-5,5.9188348328191164e-9,-5.97509246371083e-4,-1.744281060909608e-5,5.973566370425565e-9,-5.972272340443155e-4,-1.724717783696112e-5,6.029530158965291e-9,-5.970191412732754e-4,-1.708303930127975e-5,6.076760853223087e-9,-5.968639601907031e-4,-1.6974182393121108e-5,6.107949062772968e-9,-5.967351618909186e-4,-1.6933562355692315e-5,6.1189757620988596e-9,-5.966044914543551e-4,-1.6963408114122988e-5,6.108924653343465e-9,-5.964448552706594e-4,-1.7056054741231575e-5,6.079858424794432e-9,-5.962326779452772e-4,-1.719488339402509e-5,6.036551327657856e-9,-5.959503269411983e-4,-1.7355296242159556e-5,5.9862122504836265e-9,-5.955890709894159e-4,-1.7506243438176608e-5,5.9380510048463094e-9,-5.951525234145372e-4,-1.7613258416163484e-5,5.902393637339857e-9,-5.946596553230791e-4,-1.764400034962936e-5,5.889033529766786e-9,-5.941454005656148e-4,-1.757658081028564e-5,5.9047300999132285e-9,-5.936562505153676e-4,-1.740909145309199e-5,5.9503386560754e-9,-5.932393300043767e-4,-1.7166185049999746e-5,6.018820818675055e-9,-5.929270253618056e-4,-1.6897363809678338e-5,6.095715953083003e-9,-5.927235829331455e-4,-1.6664334583585255e-5,6.162832492505709e-9,-5.926012168281408e-4,-1.6521086061127168e-5,6.204080876826821e-9,-5.925088318791681e-4,-1.6495650783895652e-5,6.2108462578212325e-9,-5.923893296595289e-4,-1.6581983910685432e-5,6.18445634623603e-9,-5.921973240230338e-4,-1.6744373968298434e-5,6.135018198325406e-9,-5.919105305805832e-4,-1.6930486544110382e-5,6.077709827522491e-9,-5.915325837551485e-4,-1.708674963487434e-5,6.028320742756395e-9,-5.910887401414671e-4,-1.7171114333858196e-5,5.999481940305171e-9,-5.906173977802621e-4,-1.7160751663905477e-5,5.998318193545036e-9,-5.901602907269286e-4,-1.7054266849847147e-5,6.025679671747184e-9,-5.897536026274595e-4,-1.6869186278252847e-5,6.076768658723353e-9,-5.894215706944987e-4,-1.6636088071657184e-5,6.142787676934763e-9,-5.891734417193177e-4,-1.639112845867565e-5,6.21311247089221e-9,-5.890037891503861e-4,-1.616881901687457e-5,6.277444531418832e-9,-5.888953870874903e-4,-1.599649526801642e-5,6.32750261058349e-9,-5.888234156540204e-4,-1.5891120266408232e-5,6.358035497480615e-9,-5.887598278097893e-4,-1.585830828911002e-5,6.36716114540014e-9,-5.886770911880141e-4,-1.5892951435849457e-5,6.356201350362242e-9,-5.88551067772663e-4,-1.598065881617845e-5,6.329251478975357e-9,-5.883632730491481e-4,-1.609944079656462e-5,6.292675486505938e-9,-5.881029486085081e-4,-1.622153632414498e-5,6.254574948934901e-9,-5.877692932525501e-4,-1.6315735016464423e-5,6.224131558643309e-9,-5.873738337045345e-4,-1.6350916709415508e-5,6.2105932820424296e-9,-5.869421485315761e-4,-1.630165097021894e-5,6.221632150191717e-9,-5.865131121598357e-4,-1.6156063475258574e-5,6.261002414793579e-9,-5.861331744440621e-4,-1.592434760802166e-5,6.325989749491587e-9,-5.858441940187316e-4,-1.5643598634390996e-5,6.405942312898085e-9,-5.856671951075539e-4,-1.5373106219251778e-5,6.483607719282582e-9,-5.855897763285556e-4,-1.517729276675414e-5,6.540086767802591e-9,-5.855664407766135e-4,-1.5101743305100796e-5,6.561819413722951e-9,-5.855345304499817e-4,-1.5154956209859986e-5,6.545946710766161e-9,-5.854378007236991e-4,-1.5306366023333386e-5,6.500984799091855e-9,-5.852448952227367e-4,-1.550045098503084e-5,6.442830961710452e-9,-5.849551516575722e-4,-1.567734639813534e-5,6.388848412759949e-9,-5.845930082893017e-4,-1.5789777542943528e-5,6.352965558410412e-9,-5.841969678310368e-4,-1.5811729052473348e-5,6.343113417189745e-9,-5.838084552194186e-4,-1.5739511632880423e-5,6.360814546463471e-9,-5.834633032295308e-4,-1.5588003820527e-5,6.402145833924053e-9,-5.831864760835484e-4,-1.538472081382847e-5,6.4593502606737386e-9,-5.829896181558738e-4,-1.5163375096637597e-5,6.5226561160815544e-9,-5.828708999533577e-4,-1.4957769589611858e-5,6.582074977801076e-9,-5.828167555766546e-4,-1.479662672105976e-5,6.628984531476504e-9,-5.828049993600993e-4,-1.46998740108272e-5,6.657304486326205e-9,-5.828086784632086e-4,-1.4676619073704028e-5,6.664156600488167e-9,-5.828000486403008e-4,-1.472477456925716e-5,6.649997471487258e-9,-5.827541399829672e-4,-1.4832100153552331e-5,6.618295601842242e-9,-5.826515746817173e-4,-1.4978198357449995e-5,6.574915976578972e-9,-5.824806499688132e-4,-1.5136975222470618e-5,6.5273858129103555e-9,-0.00058223891266244855,-1.5279382997478107e-5,6.484113573877451e-9,-5.819343932522649e-4,-1.537659130322262e-5,6.453510098108357e-9,-5.815864337643335e-4,-1.540395190071223e-5,6.442875322162274e-9,-5.812255138914551e-4,-1.5346207013270155e-5,6.456887019322757e-9,-5.808906783087563e-4,-1.5203879326331496e-5,6.495696015125998e-9,-5.806227398257667e-4,-1.4999252917115385e-5,6.553106536171523e-9,-5.804523980144355e-4,-1.4778150938693694E-05,6.6159779015583296e-9,-5.803857787226134e-4,-1.460244790593015e-5,6.666344613112382e-9,-5.803949019080188e-4,-1.453107430828226e-5,6.68691651811743e-9,-5.804222577193308e-4,-1.4595598468279076e-5,6.6681996557004115e-9,-5.804015691477434e-4,-1.4784365571006996e-5,6.613182223466211e-9,-5.802844416075218e-4,-1.504659664064087e-5,6.536251455252701e-9,-5.800572407115345e-4,-1.5314205201811868e-5,6.456956105272316e-9,-5.79740462121484e-4,-1.5527257460748158e-5,6.392682319350163e-9,-5.793754455308698e-4,-1.564997575685766e-5,6.354031421288331e-9,-5.79008526869674e-4,-1.5673984575231003E-05,6.3438332685434564e-9,-5.786793595545836e-4,-1.561305703577987e-5,6.358555023821292e-9,-5.78414926698478e-4,-1.5494822966848187e-5,6.390561211013941e-9,-5.782279782895778e-4,-1.535291284406682e-5,6.430282529202295e-9,-5.781179986625985e-4,-1.5220866757312826e-5,6.467953037038186e-9,-5.780733038593612e-4,-1.5127728821522725e-5,6.494942808591026e-9,-5.780737214613339e-4,-1.5094878202343984e-5,6.5047765753731806e-9,-5.780937304323509e-4,-1.5133945325895573e-5,6.493829724860568e-9,-5.781059012122124e-4,-1.5245845768728994e-5,6.461654192249107e-9,-5.780844231366714e-4,-1.5420967008494582E-05,6.410916404303534e-9,-5.780084375089962e-4,-1.5640566187065733e-5,6.346952753693187e-9,-5.778647777628711e-4,-1.5879285361295647e-5,6.277008199105833e-9,-5.776498175490725e-4,-1.6108436934896513e-5,6.209288793870668e-9,-5.773703656839252e-4,-1.6299721111280603e-5,6.151931069035016e-9,-5.770436111533959e-4,-1.6429208290678547e-5,6.111913238799296e-9,-5.766960225533119e-4,-1.6481506020845262e-5,6.093889659946264e-9,-5.763608734161528e-4,-1.6454038016908552e-5,6.098936037071565e-9,-5.760736744361726e-4,-1.6361021724264736e-5,6.123317511020036e-9,-5.758647102549619e-4,-1.6235696451862072e-5,6.157725998483951e-9,-5.757488547335339e-4,-1.612803540234014e-5,6.1878352067051535e-9,-5.757153315080947e-4,-1.609480237938911e-5,6.197125012537102e-9,-5.757234435926061e-4,-1.6181340271018654e-5,6.17217305833007e-9,-5.757111211388329e-4,-1.6400971995423106e-5,6.108703432860775e-9,-5.756170143529824e-4,-1.6724228696811727e-5,6.014819069588441e-9,-5.754058752564376e-4,-1.7087730422599016e-5,5.908527015219574e-9,-5.750819117894468e-4,-1.7419566737748216e-5,5.810457691770534e-9,-5.746829127406637e-4,-1.7665934924859706e-5,5.736209930949652e-9,-5.742617293776332e-4,-1.7804887133825812e-5,5.692403621165638e-9,-5.738676244788915e-4,-1.7844643668928444e-5,5.677123312045796e-9,-5.735352118200017e-4,-1.781324586487339e-5,5.682774688163753e-9,-5.732813705044003e-4,-1.774712544477777e-5,5.699224028512855e-9,-5.731070706253558e-4,-1.7682465513048927e-5,5.716183635261324e-9,-5.730010810481334e-4,-1.7650014543434743e-5,5.7246996299768535e-9,-5.729437243720952e-4,-1.7672436560521165e-5,5.717992329661441e-9,-5.729101327422091e-4,-1.77629912703616e-5,5.691943387538161e-9,-5.728732254490138e-4,-1.7924881686606425e-5,5.645364913125561e-9,-5.728066872098459e-4,-1.8151183111504288e-5,5.580046983978404e-9,-5.726880446715707e-4,-1.8425518479711568e-5,5.500544376149344e-9,-5.725017360320156e-4,-1.8723776519021976e-5,5.4136497171616706e-9,-5.722417478110209e-4,-1.901709758465021e-5,5.327525281669176e-9,-5.719132058612187e-4,-1.9275973453983113e-5,5.250556794951275e-9,-5.715324599224961e-4,-1.9474966424702655e-5,5.190061549896955e-9,-5.711254487065863e-4,-1.9597425970417595e-5,5.150993130292952e-9,-5.707243215314012e-4,-1.963951786184574e-5,5.134796911166756e-9,-5.703624645452386e-4,-1.961289496480425e-5,5.138582384870229e-9,-5.700681701023597e-4,-1.9545349551733103e-5,5.154808129149603e-9,-5.698573617980196e-4,-1.947850234148492e-5,5.171796776237571e-9,-5.697265168248463e-4,-1.946126166119291e-5,5.175504776714801e-9,-5.696483046445741e-4,-1.9538307489946467e-5,5.152814866181088e-9,-5.695737447050487e-4,-1.9735023712205888e-5,5.095954657144991e-9,-5.694440581573207e-4,-2.0044122435153433e-5,5.006492424902162e-9,-5.692107976121244e-4,-2.0422259733411498e-5,4.896447185420986e-9,-5.688556702159739e-4,-2.080239735784011e-5,4.784807248298537e-9,-5.683984430252771e-4,-2.1118146298752406e-5,4.69055903235853e-9,-5.678877874524411e-4,-2.1327200844530532e-5,4.6259837892894646e-9,-5.673813072802742e-4,-2.1421699487486857e-5,4.593705379214873e-9,-5.669266461901139e-4,-2.1423333992840117e-5,4.588040913127525e-9,-5.665515251973581e-4,-2.1370168449335505e-5,4.598631280140418e-9,-5.66262954244887e-4,-2.1303510202976556e-5,4.614029495947506e-9,-5.660516519242294e-4,-2.1259150169743164e-5,4.624106881604416e-9,-5.658977760906469e-4,-2.1263246516499423e-5,4.621241923637268e-9,-5.657758344743934e-4,-2.1331262909287216e-5,4.600715978969188e-9,-5.656582879656547e-4,-2.146824690958318e-5,4.560744399958647e-9,-5.655182799852074e-4,-2.166944979816653e-5,4.502372881234427e-9,-5.653320939464026e-4,-2.19210611198664e-5,4.429288721729575e-9,-5.650817267772786e-4,-2.2201302733604196e-5,4.347494108741701e-9,-5.647576281566446e-4,-2.248238891148829e-5,4.2647329227178e-9,-5.64361175875774e-4,-2.273385814627313e-5,4.1895539317782425e-9,-5.639060211063388e-4,-2.2927360460003696e-5,4.129994037758887e-9,-5.634173669126164e-4,-2.3042324624474837e-5,4.092025805841426e-9,-5.629285951340259e-4,-2.3071330028784256e-5,4.078067292741761e-9,-5.624753358397186e-4,-2.3023652525244365e-5,4.085953126634584e-9,-5.620879235594856e-4,-2.2925599059856908e-5,4.1087412604200885e-9,-5.617838311213657e-4,-2.2816948292584702e-5,4.13556726191145e-9,-5.615618506350042e-4,-2.274366245931516e-5,4.1535543827756625e-9,-5.613996862607292e-4,-2.2747751693369897e-5,4.150602400752755e-9,-5.61256426475516e-4,-2.2855979724977274e-5,4.1186293748158945e-9,-5.61080812039059e-4,-2.307016575944345e-5,4.056477812301431e-9,-5.608247544560862e-4,-2.3362823347901296e-5,3.971353014138016e-9,-5.6045888275338e-4,-2.3681771753724775e-5,3.877666551810311e-9,-5.599840255643514e-4,-2.3964648029816697e-5,3.7929726560466655e-9,-5.594323224548366e-4,-2.4158896301923775e-5,3.732284697554104e-9,-5.588562140180068e-4,-2.4238382403495358e-5,3.7033386543166194e-9,-5.583104935056323e-4,-2.4208922097151482e-5,3.7049913841555217e-9,-5.578362118896362e-4,-2.4101634993633252e-5,3.729013562684922e-9,-5.574526700823866e-4,-2.395959922159319e-5,3.763717738012945e-9,-5.571580150477938e-4,-2.3824918225424018e-5,3.7974724057465164e-9,-5.56934945270612e-4,-2.3730431642789787e-5,3.820986693463586e-9,-5.567575402096818e-4,-2.369650431855389e-5,3.828264474037562e-9,-5.565968561839238e-4,-2.3731175634325677e-5,3.81667238499676e-9,-5.564247258473144e-4,-2.383170766272784e-5,3.786608603817477e-9,-5.562162343773809e-4,-2.3986308687498875e-5,3.741076017959136e-9,-5.559516320965893e-4,-2.41756410521933e-5,3.6852669334650524e-9,-5.556182989939095e-4,-2.4374329729557413e-5,3.626126257835752e-9,-5.552129829469255e-4,-2.455308708972398e-5,3.5717509128408136e-9,-5.547439478003086e-4,-2.4682169708976556e-5,3.5304410056635687e-9,-5.542320441001034e-4,-2.4736519034990855e-5,3.509299202176376e-9,-5.537093394875636e-4,-2.470209240070845e-5,3.5124945121858324e-9,-5.532141884717492e-4,-2.4581739735308707e-5,3.539625413001244e-9,-5.527827987017785e-4,-2.4398065123244182e-5,3.584874043486559e-9,-5.524392207026548e-4,-2.419093064879187e-5,3.6375935558350362E-09,-5.521871673866484e-4,-2.400904254983496e-5,3.6845003460724823e-9,-5.52006996859421e-4,-2.3897600320895216e-5,3.7129769442225496e-9,-5.518594417411545e-4,-2.3885806156130697e-5,3.714505319352247e-9,-5.516952472542898e-4,-2.3978206075858976e-5,3.6871706513466653e-9,-5.514680023266997e-4,-2.415252676916681e-5,3.636467576060659e-9,-5.511466570996784e-4,-2.436472997812125e-5,3.5741160763841065e-9,-5.507243054631822e-4,-2.456016575596165e-5,3.5151030037156743e-9,-5.502204943898792e-4,-2.4688078368491355e-5,3.4736716022299434e-9,-5.49675845316952e-4,-2.4715297420699776e-5,3.4594450841273604e-9,-5.491403496431156e-4,-2.4634524609268043e-5,3.475010754579904e-9,-5.486594079579832e-4,-2.4464309834586896e-5,3.5158016687115214e-9,-5.482626949453814e-4,-2.424130364105868e-5,3.572121989232335e-9,-5.479593003710058e-4,-2.400859263852101e-5,3.6322781071167195e-9,-5.477393924139225e-4,-2.380483572567349e-5,3.685543859039702e-9,-5.475800136344878e-4,-2.365734300350956e-5,3.7241138416981567e-9,-5.47451900115605e-4,-2.3579686113701558e-5,3.743864278401933e-9,-5.473251545092862e-4,-2.3572576485177517e-5,3.744220422532077e-9,-5.471730460260657e-4,-2.3626248739021626e-5,3.727569108803425e-9,-5.469742478632765e-4,-2.3723043848052887e-5,3.6985616396725427e-9,-5.467142469598954e-4,-2.3839630731377964e-5,3.6634824609621807e-9,-5.463866264206015e-4,-2.3948973655604125e-5,3.6296880385067596e-9,-5.4599456793534e-4,-2.4022629138410048e-5,3.604980769764583e-9,-5.455523444943196e-4,-2.4034135649642785e-5,3.5967054365603564e-9,-5.450858818683846e-4,-2.396401744104895e-5,3.6104037986387385e-9,-5.446308564687652e-4,-2.380610222496027e-5,3.648086038965713e-9,-5.442267710418497e-4,-2.3573376044700058e-5,3.7065940327411654e-9,-5.43906780201333e-4,-2.3300037015731352e-5,3.776970362392915e-9,-5.436858585814063e-4,-2.303631065445945e-5,3.8457757017923984e-9,-5.43552613478327e-4,-2.28353475000358e-5,3.898554409891338e-9,-5.434699258623914e-4,-2.2736277504907688e-5,3.924381501274142e-9,-5.433855832143338e-4,-2.275078970747129e-5,3.919540539705527e-9,-5.43248646299094e-4,-2.285936214945721e-5,3.888688548443496e-9,-5.430245801652687e-4,-2.3018194797770242e-5,3.8431759853901846e-9,-5.427037893107168e-4,-2.3172944399802506e-5,3.7974973736510936e-9,-5.423020260258028e-4,-2.3273629234107787e-5,3.765329016282113e-9,-5.418542195221602e-4,-2.328631805513169e-5,3.756319626683319e-9,-5.414045400541133e-4,-2.3199382210688513e-5,3.774257587440266e-9,-5.409955890221134e-4,-2.302384304625818e-5,3.8167930066406206e-9,-5.406592269132189e-4,-2.2788582348018324e-5,3.876564618794517e-9,-5.404109156371855e-4,-2.253214165155441e-5,3.943315026925249e-9,-5.402484736817223e-4,-2.2293496058127136e-5,4.00637464546443e-9,-5.401548723226671e-4,-2.210423231623976e-5,4.056855142789439e-9]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_7.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_7.json new file mode 100644 index 000000000..f56819cf3 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_7.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":7000,"numberOfSamples":1000,"samples":[-5.401035826582183e-4,-2.1983771746004456e-5,4.089071108861903e-9,-5.400645679375473e-4,-2.1937995914044596e-5,4.1010390739496695e-9,-5.400093979365809e-4,-2.1960549237341188e-5,4.094200825458988e-9,-5.399147607226752e-4,-2.203560775605646e-5,4.072680770337793e-9,-5.397644338651072e-4,-2.2140989396072942e-5,4.0424039620270295e-9,-5.395502643031555e-4,-2.2250959079911428e-5,4.010291455194114e-9,-5.392727708698771e-4,-2.233868896010399e-5,3.983582390762636e-9,-5.389417235021638e-4,-2.2378792834005243e-5,3.969178139964558e-9,-5.385766058145648e-4,-2.235055698671764e-5,3.972815745495291e-9,-5.382062428829531e-4,-2.2242365349685453e-5,3.9978965146973945e-9,-5.378662132655593e-4,-2.205712418011711e-5,4.043993326717811e-9,-5.375924932704364e-4,-2.181705877637256e-5,4.105479870305896e-9,-5.374109340395555e-4,-2.1564488189815053e-5,4.171221914461289e-9,-5.373252109046606e-4,-2.13546121672999e-5,4.226432351021938e-9,-5.373095626709229e-4,-2.123923851906108e-5,4.256999417283581e-9,-5.373130817418842e-4,-2.1246850964482913e-5,4.25485673473855e-9,-5.372765380678705e-4,-2.136960735856047e-5,4.221561718856039e-9,-5.371540300970259e-4,-2.156549994879516e-5,4.167859343731849e-9,-5.36928145915775e-4,-2.177449463181616e-5,4.109507993256763e-9,-5.36612298142394e-4,-2.193926959851254e-5,4.061836554881471e-9,-5.362421974391817e-4,-2.202084762893932e-5,4.035594559950374e-9,-5.358628658080441e-4,-2.200502185841941e-5,4.035163172736923e-9,-5.355167351147426e-4,-2.1900830823744038e-5,4.058798324504693e-9,-5.35235449411885e-4,-2.173439788390032e-5,4.100071676730384e-9,-5.350357193602122e-4,-2.15410881740401e-5,4.14980207032798e-9,-5.349185757880749e-4,-2.135782693181579e-5,4.198050291539687e-9,-5.348712290073628e-4,-2.121657442592248e-5,4.2359280087428855e-9,-5.348708000481933e-4,-2.1139615342117445e-5,4.257004944159546e-9,-5.348890826615417e-4,-2.113709309176623e-5,4.258128208977309e-9,-5.348974104172614e-4,-2.1206799246401138e-5,4.239584522007182e-9,-5.348708384321045e-4,-2.1335822917691524e-5,4.204678615706449e-9,-5.347911231697716e-4,-2.1503424398811796e-5,4.158913513206647e-9,-5.346483663470459e-4,-2.1684383203511062e-5,4.109023325019758e-9,-5.344415971986584e-4,-2.185222293312799e-5,4.062070768370815e-9,-5.341787121227865e-4,-2.198213649495927e-5,4.024683100836483e-9,-5.338760303296781e-4,-2.2053786749643512e-5,4.002365575691231e-9,-5.335574557412858e-4,-2.2054309116071213e-5,3.998758028608726e-9,-5.332528017860458e-4,-2.198181627770456e-5,4.014702338546216e-9,-5.32994271803446e-4,-2.1849184863030615e-5,4.047158626760407e-9,-5.328099775273082e-4,-2.1686695872980368E-05,4.088373074123842e-9,-5.327143982259301e-4,-2.1540670747909262e-5,4.1261167888255816e-9,-5.326982547305342e-4,-2.146472539588816e-5,4.145954976805639e-9,-5.327237676269208e-4,-2.150269819024173e-5,4.135827219007261e-9,-5.32732172820136e-4,-2.166880035547954e-5,4.091442962833996e-9,-5.32664363807273e-4,-2.193675634261866e-5,4.019307535221708e-9,-5.324850262715923e-4,-2.2247356034033065e-5,3.93482109123221e-9,-5.321959712692641e-4,-2.253169043764306e-5,3.856170494966331e-9,-5.318318024819819e-4,-2.2736299986202895e-5,3.797697407775919e-9,-5.314434001136979e-4,-2.283727543038531e-5,3.7661716224598815e-9,-5.310801862783224e-4,-2.2840328090950416e-5,3.760701663621395e-9,-5.307784695622606e-4,-2.277209911293882e-5,3.774865010501329e-9,-5.305570300482153e-4,-2.2669296597542187e-5,3.799377675031908e-9,-5.304177923198672e-4,-2.2569563199808032e-5,3.824373068544768e-9,-5.303490345079164e-4,-2.2505211219014473e-5,3.841055895162692e-9,-5.303294436667859e-4,-2.2499458669989806e-5,3.842819986704146e-9,-5.303323047521583e-4,-2.2564506861846283e-5,3.825934653411622e-9,-5.303295770130921e-4,-2.2701095439328812e-5,3.78981094362531e-9,-5.302956400451363e-4,-2.2899349303107257e-5,3.736840685640963e-9,-5.30210473665667e-4,-2.314073527658426e-5,3.6718507329490764e-9,-5.300620142371433e-4,-2.340093393614476e-5,3.601265981895817e-9,-5.298474349228372e-4,-2.3653284469214588e-5,3.532132956929273e-9,-5.29573308984056e-4,-2.3872320401723e-5,3.4711768964710575e-9,-5.292548431176042e-4,-2.403707365259649e-5,3.4239812057610383e-9,-5.289143407918906e-4,-2.4134058857944783e-5,3.3942741989696835e-9,-5.285789266630395e-4,-2.4159906281443744e-5,3.3832709646259577e-9,-5.282773952237134e-4,-2.4123609199085298e-5,3.389033411558258e-9,-5.280357364388392e-4,-2.404808982327215e-5,3.4059246595776906e-9,-5.278708810726782e-4,-2.3969949940549298e-5,3.4245089739342943e-9,-5.277831391864141e-4,-2.3935357712190903e-5,3.4325187746853774e-9,-5.277497546540487e-4,-2.3990053843999665e-5,3.417490568679712e-9,-5.277243373408124e-4,-2.416362760309801e-5,3.371043381811958e-9,-5.276472969010053e-4,-2.4453303594010498e-5,3.2933522318209953e-9,-5.274672038760931e-4,-2.4817592116745615e-5,3.1949762152372857e-9,-5.271634422555336e-4,-2.5188059386224728e-5,3.0937979755767632e-9,-5.267559068389037e-4,-2.549567899523349e-5,3.008057415556971e-9,-5.262952781608044e-4,-2.569664316277229e-5,2.9495561606916857e-9,-5.258412694183832e-4,-2.5783493066863733e-5,2.9207489680924703e-9,-5.254425066389419e-4,-2.5779503885456728e-5,2.9161612247094987e-9,-5.251263833011977e-4,-2.5724489785007588e-5,2.925940256027055e-9,-5.248986095698239e-4,-2.566102959629115e-5,2.9392604634341714e-9,-5.247480432907525e-4,-2.5625368004893986e-5,2.946595015690205e-9,-5.246528338231885e-4,-2.5643091786020372e-5,2.940887498147975e-9,-5.245858121778989e-4,-2.572797628618578e-5,2.918009092055048e-9,-5.245186697908287e-4,-2.5882406676612352e-5,2.8768303754599108e-9,-5.244252403009383e-4,-2.6098529986454154e-5,2.8190430572214277e-9,-5.242842104460674e-4,-2.6359918036558112e-5,2.748752781998075e-9,-5.240813809095547e-4,-2.664376012583758e-5,2.6718566779627634e-9,-5.23811405473642e-4,-2.6923697743507696e-5,2.5952305181850944e-9,-5.234786998958045e-4,-2.7173303690041893e-5,2.5257824612885647e-9,-5.230971720563157e-4,-2.7369871435687406e-5,2.4694878843742183e-9,-5.226886747385083e-4,-2.749801736194075e-5,2.4305157487672832e-9,-5.222802740203602e-4,-2.7552679878417226e-5,2.410501767346455e-9,-5.219004721067165e-4,-2.7541114744677728e-5,2.4080150610133087e-9,-5.215746064004773e-4,-2.748348611429587e-5,2.4182963593044943e-9,-5.213196916609409e-4,-2.741169261001642e-5,2.433387542607336e-9,-5.211390633776294e-4,-2.7365830864708946e-5,2.442883976030173e-9,-5.210177939670833e-4,-2.7387386588784694e-5,2.4356382416405185e-9,-5.2092103264559e-4,-2.7508753633437043e-5,2.4025749182162106e-9,-5.207983793056417e-4,-2.7740648686792387e-5,2.3401865242185253e-9,-5.205966266482828e-4,-2.806223642295004e-5,2.253350576167634e-9,-5.202789824851698e-4,-2.8421269302758358e-5,2.1554312055901617e-9,-5.198423209709797e-4,-2.8748981292602243e-5,2.064380772209385e-9,-5.193213569961983e-4,-2.8985277857182498e-5,1.996093068377223e-9,-5.187754286828383e-4,-2.9100856801229018e-5,1.95860814721846e-9,-5.182654734879904e-4,-2.910408008464851e-5,1.950328402209735e-9,-5.17834468885133e-4,-2.903146570281326e-5,1.9624204795998646e-9,-5.174994717055985e-4,-2.8930642345991606e-5,1.9830589980046977e-9,-5.172543344144145e-4,-2.8845521813800735e-5,2.0010793286060667e-9,-5.170775031307184e-4,-2.8808046397317225e-5,2.0080420772500573e-9,-5.169400421587481e-4,-2.883586587420426e-5,1.998918998843043e-9,-5.168116638617822e-4,-2.8933416322078027e-5,1.9719933681402133e-9,-5.166645952694134e-4,-2.9094191480639365e-5,1.928446821526537e-9,-5.16476024252827e-4,-2.930309443473024e-5,1.8718459878098334e-9,-5.162298604848831e-4,-2.9538674218475745e-5,1.8075644448687839e-9,-5.15918183163581e-4,-2.9775463189840496e-5,1.7421226458261029e-9,-5.155423951219354e-4,-2.9986754143992856e-5,1.682415416929058e-9,-5.151137407302886e-4,-3.0148054298078004e-5,1.6348102041026057e-9,-5.14652612618079e-4,-3.024103796625174e-5,1.6041685250154395e-9,-5.141862173715009e-4,-3.025736743569097e-5,1.5929194416540232e-9,-5.137445594032925e-4,-3.0201544061071227e-5,1.6003442662174793e-9,-5.133551073665073e-4,-3.0091913298744713e-5,1.6222546448333353e-9,-5.130369284461957e-4,-2.9959105712960137e-5,1.651244127376648e-9,-5.127954099507898e-4,-2.9841663506552026e-5,1.6776263789056898e-9,-5.126187743607301e-4,-2.977911818282605e-5,1.6910763709352394e-9,-5.124775920139699e-4,-2.980317215645477e-5,1.6828919402962205e-9,-5.123285291058596e-4,-2.992827896807966e-5,1.6485704768880652e-9,-5.121232184702717e-4,-3.0144080674584436e-5,1.5900146804836555e-9,-5.118216874803194e-4,-3.041333535976552e-5,1.5163090868023582e-9,-5.114069216089788e-4,-3.06788578426189e-5,1.4420450362417905e-9,-5.108941341159282e-4,-3.087997193374652e-5,1.383045829244638e-9,-5.103283884814538e-4,-3.097314754523197e-5,1.350950290890561e-9,-5.097696659935665e-4,-3.0946985077149386e-5,1.3492802047218747e-9,-5.092722871601308e-4,-3.0823751756630565e-5,1.3729826486285837e-9,-5.088689790088103e-4,-3.064783528784369e-5,1.4112787115572115e-9,-5.085657929059659e-4,-3.046880866802487e-5,1.4518356546063253e-9,-5.08346811352875e-4,-3.032757248561428e-5,1.4841879987672864e-9,-5.081833205273989e-4,-3.024951848205968e-5,1.5014927928567059e-9,-5.080425577921641e-4,-3.024389232124672e-5,1.5008319918093534e-9,-5.078937898414977e-4,-3.0306504584070308e-5,1.4827093655212703e-9,-5.077117106050379e-4,-3.042331137863873e-5,1.4502784815439696e-9,-5.074781087294359e-4,-3.0573627604291196e-5,1.4085697181512755e-9,-5.071827632231985e-4,-3.0732762305829554e-5,1.363783212066794e-9,-5.068241386956512e-4,-3.087440447664662e-5,1.322616276444108e-9,-5.064099743494193e-4,-3.097328317084115e-5,1.2915471371343079e-9,-5.059573813360568e-4,-3.100850766576199e-5,1.2759963019804067e-9,-5.054917280931815e-4,-3.09675266499804e-5,1.2793674539120017e-9,-5.050436028710859e-4,-3.085000943630236e-5,1.3021016279347987e-9,-5.046435847782699e-4,-3.067039629349787e-5,1.3410151010863194e-9,-5.043154041700915e-4,-3.0457621016956392e-5,1.3892739397176436e-9,-5.040690924503929e-4,-3.025093383015183e-5,1.4372920683562972e-9,-5.038963498673596e-4,-3.0091976510982597e-5,1.4745708467378526e-9,-5.037701041335682e-4,-3.001474285367648e-5,1.4921523724764496e-9,-5.036491510419384e-4,-3.0036038672483e-5,1.4850891219563646e-9,-5.034873278369172e-4,-3.0149240525066758e-5,1.4542250103523055e-9,-5.032453132593057e-4,-3.032361586041559e-5,1.4066373962624775e-9,-5.029021178492986e-4,-3.0510322165871625e-5,1.3543382658568904e-9,-5.024627404979756e-4,-3.06545113386691e-5,1.3112907864465489e-9,-5.01958677253733e-4,-3.0710749963624354e-5,1.2894420761309303e-9,-5.014397693770699e-4,-3.065674386674007e-5,1.2951067361437504e-9,-5.009594637119274e-4,-3.0499774007028698e-5,1.327181960804589e-9,-5.005591265624038e-4,-3.027289359707675e-5,1.3779593095465411e-9,-5.002577464773517e-4,-3.002286754188913e-5,1.4360302437884732e-9,-5.000502980916162e-4,-2.9795642680252517e-5,1.4898545010720947e-9,-4.999135018056022e-4,-2.96252177016554e-5,1.530564984614016e-9,-4.998148703059288e-4,-2.9528734833433275e-5,1.5533180663703762e-9,-4.997210391324866e-4,-2.9507108813167577e-5,1.557313949211449e-9,-4.996033580441727e-4,-2.95486805281199e-5,1.5450349761472517e-9,-4.994407134467235e-4,-2.963354086042027e-5,1.5212284427432084e-9,-4.99220513807549e-4,-2.9737275227078863e-5,1.4919412361183264e-9,-4.989388300780407e-4,-2.9833867578447486e-5,1.4637165471569636e-9,-4.986003615032496e-4,-2.989808300652266e-5,1.442933990607473e-9,-4.982184149831263e-4,-2.9907927865987277e-5,1.4351810441446417e-9,-4.978145252172193e-4,-2.9847712851288548e-5,1.4445248582206659e-9,-4.974169169914042e-4,-2.971176155615385e-5,1.4726359068551763e-9,-4.970569165391165e-4,-2.9508056286774713e-5,1.517893845763169e-9,-4.967628303390822e-4,-2.926026998042455e-5,1.574829976621728e-9,-4.96551978398408e-4,-2.900608455871382e-5,1.634431128285346e-9,-4.96423302209712e-4,-2.879027553840682e-5,1.6857146709917446e-9,-4.963541060645736e-4,-2.865323310167557e-5,1.7184681499924557e-9,-4.963036761354488e-4,-2.861842652841363e-5,1.7263462753477494e-9,-4.962236841992082e-4,-2.8683800491744274e-5,1.7091218148852898e-9,-4.960720233794146e-4,-2.8820919804120417e-5,1.673117417745899e-9,-4.958250916601518e-4,-2.898244031513813e-5,1.6295915726764063e-9,-4.954843911405692e-4,-2.911516518981793e-5,1.591663143962164e-9,-4.950757567029083e-4,-2.9174289607850693e-5,1.5708062654753593e-9,-4.946419883627445e-4,-2.9134683182893188e-5,1.5739443674704452e-9,-4.942313197632331e-4,-2.899634780038582e-5,1.601897900139963e-9,-4.938850760519116e-4,-2.8782878175581034e-5,1.6495407345080696e-9,-4.936280480341194e-4,-2.8533738897703263e-5,1.707525662802973e-9,-4.934641902772148e-4,-2.8293088750190768e-5,1.7649546067683797e-9,-4.933783032088761e-4,-2.80988640410467e-5,1.8121051613246878e-9,-4.933422254005704e-4,-2.7975289802310766e-5,1.8424210940995162e-9,-4.933227875226166e-4,-2.793022331205908e-5,1.853363241919422e-9,-4.932888738289174e-4,-2.7956735636432285e-5,1.8461872237371115e-9,-4.932160962554518e-4,-2.8037116641906087e-5,1.8250326211687373e-9,-4.930889594766327e-4,-2.8147435486230603e-5,1.7957702854856959e-9,-4.929012427190119e-4,-2.8261502965497104e-5,1.7649326447086253e-9,-4.926554961798312e-4,-2.835390391705434e-5,1.7388763334173934e-9,-4.923623095573031e-4,-2.8402349479687208e-5,1.7231683216680764e-9,-4.920395867133475e-4,-2.8389889647024718e-5,1.722073563894763e-9,-4.917115540492151e-4,-2.8307497965287012e-5,1.7379836944677346e-9,-4.914067695061618e-4,-2.815714883271202e-5,1.7707008124423624e-9,-4.911541935152892e-4,-2.7954758530073625e-5,1.8166878141640076e-9,-4.9097673506944e-4,-2.773135265619518e-5,1.868683014872907e-9,-4.908829819257416e-4,-2.753002578310636e-5,1.9163130986412e-9,-4.908600342594571e-4,-2.7396792960745575e-5,1.9482274136412787e-9,-4.908721173909682e-4,-2.736633164669827e-5,1.9555585722015448e-9,-4.908685218729858e-4,-2.7447945016454782e-5,1.935427847646306e-9,-4.907995565142859e-4,-2.7619289411182313e-5,1.8926347984558103e-9,-4.906336832509187e-4,-2.7832348344015255e-5,1.8383867655335314e-9,-4.903676923646972e-4,-2.802925951189207e-5,1.7865984348223615e-9,-4.900260027571856e-4,-2.81603898676814e-5,1.7495716625922467e-9,-4.89651135545775e-4,-2.8197278587712897e-5,1.7348223698973235e-9,-4.892906052692192e-4,-2.8137212384925217e-5,1.7438257478064728e-9,-4.889850187707911e-4,-2.800028120231637e-5,1.7725003438639047e-9,-4.887600631930353e-4,-2.782169608840279e-5,1.8128296668897378e-9,-4.886231415493295e-4,-2.764229676123075e-5,1.8550063239660704e-9,-4.885642484701803e-4,-2.7499550273375093e-5,1.8896080581632753e-9,-4.88560103003217e-4,-2.7420633789239168e-5,1.9094190965771907e-9,-4.885802098906471e-4,-2.741859369588705e-5,1.9105887095828677e-9,-4.885932963466409e-4,-2.749186494528233e-5,1.892958847920264e-9,-4.885727070221833e-4,-2.7626586385723848e-5,1.8596151082628022e-9,-4.884999125827284e-4,-2.780056601507957e-5,1.815912403162441e-9,-4.883659918181414e-4,-2.7987688626019622e-5,1.7683031663824352e-9,-4.881714965792303e-4,-2.8161857991136438e-5,1.7232621331153711e-9,-4.879253817230721e-4,-2.8300053385778088e-5,1.6864793191295907e-9,-4.876435954604153e-4,-2.838460913858599e-5,1.6623231380987314e-9,-4.87347570898538e-4,-2.8405127125376862e-5,1.6534487206287574e-9,-4.870624676766653e-4,-2.8360400428380635e-5,1.660397458157364e-9,-4.8681464921107224e-4,-2.8260451760282097e-5,1.6810999234867354e-9,-4.8662762504571956e-4,-2.8128194590838857e-5,1.710378936760407e-9,-4.865159493111669e-4,-2.7999259061439134e-5,1.7398402884595435e-9,-4.864778001628795e-4,-2.7917688216241995e-5,1.758782346831438e-9,-4.864891773662556e-4,-2.7925623648319725e-5,1.7566564873211407e-9,-4.8650469881442816e-4,-2.8048055389582203e-5,1.7268436941845679e-9,-4.8646900022718986e-4,-2.8278862045047066e-5,1.6701987909042514e-9,-4.863366661408441e-4,-2.8577505119019685e-5,1.596014686119699e-9,-4.8609095859314307e-4,-2.888149066944309e-5,1.5191180487893385e-9,-4.8575031131327785e-4,-2.9129303897496962e-5,1.4543917377772392e-9,-4.853594628443761e-4,-2.928127077721007e-5,1.4117786999065398e-9,-4.8497195747729835e-4,-2.932864068445588e-5,1.394071849831376e-9,-4.846337505125269e-4,-2.92901557766113e-5,1.397598481510503e-9,-4.8437354423659196e-4,-2.9201624636557654e-5,1.4144787727407432e-9,-4.842002284292061e-4,-2.9104393029698005e-5,1.4351477859261177e-9,-4.841052181270292e-4,-2.903609161431683e-5,1.4504558263885193e-9,-4.84067228217977e-4,-2.9024670479161186e-5,1.4531643834621424e-9,-4.840577748119623e-4,-2.90853939257728e-5,1.438879930124667e-9,-4.8404655015113853e-4,-2.9220176531956694e-5,1.4064663055144139e-9,-4.840061936266715e-4,-2.9418854952069273e-5,1.3579222509944927e-9,-4.839159970403585e-4,-2.9661986241126522e-5,1.2977592972372048e-9,-4.8376421255598803e-4,-2.99245694584744e-5,1.2320364517035848e-9,-4.8354887698368103e-4,-3.0180063885511402e-5,1.1672683012708056e-9,-4.832772700501507e-4,-3.0404142004948953e-5,1.1094257627540442e-9,-4.829643557323166e-4,-3.0577722626730395e-5,1.06319106972272e-9,-4.826306810340864e-4,-3.068915192762852e-5,1.0314937573263063e-9,-4.823000236618913e-4,-3.073572511170575e-5,1.0152261736262526e-9,-4.819967854440488e-4,-3.07247596187981e-5,1.0130129991719876e-9,-4.8174290438235536e-4,-3.067424662353938e-5,1.0209817846856487e-9,-4.8155387647187757e-4,-3.061273027346073e-5,1.032629336411569e-9,-4.814336608023644e-4,-3.057734555154527e-5,1.0391143981355627e-9,-4.813692597631775e-4,-3.060832201910778e-5,1.0304832601707698e-9,-4.813275459614071e-4,-3.073869463472397e-5,9.981998565152625e-10,-4.812585659790297e-4,-3.09804507134622e-5,9.386721541243323e-10,-4.811087866201458e-4,-3.1312961751180574e-5,8.56262021686922e-10,-4.8084200197442165e-4,-3.168291882514008e-5,7.634346976835111e-10,-4.804573453938174e-4,-3.202098523525012e-5,6.767668830172286e-10,-4.799919742448245e-4,-3.226863232885468e-5,6.104833504614054e-10,-4.7950561722214457e-4,-3.239963129412474e-5,5.713324640502453e-10,-4.7905711130771735e-4,-3.2424683834516966e-5,5.57489239643948e-10,-4.7868648919253005e-4,-3.2380572165611614e-5,5.61014998658449e-10,-4.78408756745913e-4,-3.231372536823076e-5,5.715060758294507e-10,-0.00047821695541208484,-3.226672810540936e-5,5.790543339561175e-10,-4.780892929635116e-4,-3.2270696159169436e-5,5.759797425532569e-10,-4.7799654019284706e-4,-3.2342694027153804e-5,5.575709307492149e-10,-4.7790798337904856e-4,-3.2486240286347094e-5,5.222191413059654e-10,-4.7779572256916394e-4,-3.269322339193252e-5,4.712137846897875e-10,-4.776377532430203e-4,-3.294643314889626e-5,4.0828191455557877e-10,-4.7742011900052996e-4,-3.322255415686779e-5,3.3887550315425643e-10,-4.7713813362436103e-4,-3.3495522236272236e-5,2.692723543611399e-10,-4.767966058786844e-4,-3.374005506219493e-5,2.0561845121165476e-10,-4.764089810761079e-4,-3.3935100660724256e-5,1.5304719488686107e-10,-4.759953978571277e-4,-3.4066794130658526e-5,1.150012473363178e-10,-4.75579914293648e-4,-3.4130529894258694e-5,9.281539758685568e-11,-4.7518726401693057e-4,-3.4132012358599385e-5,8.552166664277137e-11,-4.7483937947707337e-4,-3.4087283256587925e-5,8.9808001360197e-11,-4.745518134530909e-4,-3.402168289331611e-5,1.0012352749726892e-10,-4.743301302744044e-4,-3.396758918434555e-5,1.0901384685598315e-10,-4.7416643965561046e-4,-3.3960444197777966e-5,1.0790405985855532e-10,-4.740368979791793e-4,-3.4032281179469596e-5,8.86169595898152e-11,-4.739021227586955e-4,-3.420250408423377e-5,4.5725881072999446e-11,-4.7371326042227083e-4,-3.446757033559661e-5,-2.0710561717845824e-11,-4.734254927457585e-4,-3.479429725681101e-5,-1.0330249928567228e-10,-4.7301639236006836e-4,-3.5123672220509924e-5,-1.881476569178234e-10,-4.725000431178112e-4,-3.5388839961071916e-5,-2.591876480176443e-10,-4.7192604541348076e-4,-3.554105374407855e-5,-3.044707002743182e-10,-4.7136099969806975e-4,-3.556883779945993e-5,-3.206993534357789e-10,-4.7086294225468346e-4,-3.549888047725581e-5,-3.1342792392102554e-10,-4.7046352272326177e-4,-3.538050951555742e-5,-2.935213287305637e-10,-4.7016473226171217e-4,-3.5265590743997314e-5,-2.726806915020762e-10,-4.699464136836216e-4,-3.5194260656001715e-5,-2.6030955535709985e-10,-4.697770469616606e-4,-3.518932915329649e-5,-2.622205939252974e-10,-4.696228012465099e-4,-3.5256920462369833e-5,-2.8060094716625834e-10,-4.6945333703288087e-4,-3.538992906669341e-5,-3.145484253008059e-10,-4.69244867902677e-4,-3.5571919634512485e-5,-3.607624652693146e-10,-4.6898164086817774e-4,-3.5780529452895425e-5,-4.1425452821863957e-10,-4.686566863176195e-4,-3.5990449974228233e-5,-4.690962154934373e-10,-4.6827208786035787e-4,-3.617631589754077e-5,-5.192139267408718e-10,-4.678386863652773e-4,-3.631568320727738e-5,-5.591870571551936e-10,-4.6737497335989225e-4,-3.6392083291211825e-5,-5.849904896303589e-10,-4.6690488301707415e-4,-3.639782201853782e-5,-5.94602599597509e-10,-4.6645445102384944e-4,-3.633592139146378e-5,-5.883906819014525e-10,-4.660476945176547e-4,-3.6220661871468307e-5,-5.692228942796334e-10,-4.657022695838701e-4,-3.6076407131886816e-5,-5.422815071321678e-10,-4.6542554666657507e-4,-3.5934607127357874e-5,-5.145430862929582e-10,-4.6521176990474016e-4,-3.582914597600692e-5,-4.93889587145379e-10,-4.650408921003716e-4,-3.579037660247443e-5,-4.878228226654467e-10,-4.6487973809540686e-4,-3.583822677071e-5,-5.017887049330647e-10,-4.646864289969452e-4,-3.5975183793548686e-5,-5.37296846788472e-10,-4.64418929535433e-4,-3.618107017587765e-5,-5.903807450996709e-10,-4.640473748557744e-4,-3.641280549063968e-5,-6.513004445318026e-10,-4.6356706963375163e-4,-3.6612571972860786e-5,-7.064066461510136e-10,-4.6300573393137634e-4,-3.672503075757567e-5,-7.42296675743031e-10,-4.624182914159778e-4,-3.671797163766815e-5,-7.508047679955584e-10,-4.6186855565977626e-4,-3.659550128472903e-5,-7.321670756526646e-10,-4.614064225580401e-4,-3.6395389241618036e-5,-6.944563282812404e-10,-4.610528332327597e-4,-3.6172385710832e-5,-6.498299076742612e-10,-4.607987283925611e-4,-3.597801715887471e-5,-6.100320374056605e-10,-4.6061468507508637e-4,-3.5846959612404006e-5,-5.833503649471653e-10,-4.6046349004600013e-4,-3.579313229929127e-5,-5.736387227312834e-10,-4.6030994274539054e-4,-3.5812705095171745e-5,-5.807834219497946e-10,-4.601262422144594e-4,-3.588972134772124e-5,-6.017486078129592e-10,-4.5989390505752053e-4,-3.600142119002202e-5,-6.316505581854882e-10,-4.596038614192552e-4,-3.61222398339944e-5,-6.646706362294414e-10,-4.592559568531993e-4,-3.6226694452753686e-5,-6.948193567656552e-10,-4.5885834703375316e-4,-3.629175808199892e-5,-7.166060109300918e-10,-4.584267277797475e-4,-3.629920933167143e-5,-7.25651034334448e-10,-4.5798303120869814e-4,-3.623817319516776e-5,-7.192617233124736e-10,-4.575530806030977e-4,-3.610762730040304e-5,-6.969458465337379e-10,-4.571628892970559e-4,-3.591815255208761e-5,-6.607620683323364e-10,-4.56833823604343e-4,-3.569198142091502e-5,-6.153534493322551e-10,-4.5657747279228704e-4,-3.54605678450924e-5,-5.675121322431022e-10,-4.5639155317605325e-4,-3.525945503013983e-5,-5.251872676244543e-10,-4.562582877399368e-4,-3.5121101489857186e-5,-4.960025021303906e-10,-4.561462404911574e-4,-3.5067166813251846e-5,-4.855281510313871e-10,-4.560157354184803e-4,-3.510209657136758e-5,-4.956760285975314e-10,-4.558271844438492e-4,-3.520973052125918e-5,-5.23642942124648e-10,-4.555509722539143e-4,-3.5354377231198915e-5,-5.618485388203806e-10,-4.551767900011865e-4,-3.5487271728465515e-5,-5.99216862288837e-10,-4.547194931700101e-4,-3.555821241925147e-5,-6.238372524193589e-10,-4.5421824807652514e-4,-3.553016757808225e-5,-6.264728450339745e-10,-4.537270827198009e-4,-3.539206308847836e-5,-6.037125880351339e-10,-4.532987076358123e-4,-3.5163679660655164e-5,-5.592847955933052e-10,-4.5296792741134556e-4,-3.488912728160238e-5,-5.027086388929701e-10,-4.527422313081323e-4,-3.462138798450755e-5,-4.458766460131134e-10,-4.5260323410913533e-4,-3.4405453702598874e-5,-3.9926413768010085e-10,-4.5251644486876176e-4,-3.426740951649623e-5,-3.6938487658784766e-10,-4.5244332300902997e-4,-3.421213627964388e-5,-3.5808595438001316e-10,-4.523505626185003e-4,-3.4227480505678286e-5,-3.632636675315268e-10,-4.5221482312207624e-4,-3.4290899461766846e-5,-3.8020116677613763e-10,-4.5202375557595886e-4,-3.437554371425792e-5,-4.029081427514244e-10,-4.5177505774483904e-4,-3.445460262322402e-5,-4.251869797649234e-10,-4.514749547370295e-4,-3.4504079311446706e-5,-4.4139362238526164e-10,-4.5113679020358777e-4,-3.450468018923218e-5,-4.469651496899405e-10,-4.507797731939009e-4,-3.444350711070474e-5,-4.388225099902334e-10,-4.504274678763231e-4,-3.431595710739258e-5,-4.1574789980056126e-10,-4.501053968208255e-4,-3.412772239306382e-5,-3.7876689398194317e-10,-4.49837245052929e-4,-3.3896171321560205e-5,-3.3143923698792594e-10,-4.4963967883302245e-4,-3.364990241377015e-5,-2.7982500286964254e-10,-4.495167350280108e-4,-3.342519780636138e-5,-2.3182893325347959e-10,-4.494557916595384e-4,-3.32588698365336e-5,-1.9575098987866422e-10,-4.494275238613324e-4,-3.317868246084438e-5,-1.7822526619476317e-10,-4.493912544321645e-4,-3.319433112785999e-5,-1.8215182067943742e-10,-4.4930491559363935e-4,-3.329257874488547e-5,-2.0541584757431906e-10,-4.491366544886963e-4,-3.343893518934762e-5,-2.409915239755049e-10,-4.4887423428689434e-4,-3.358582747083409e-5,-2.785249749837473e-10,-4.4852918924545023e-4,-3.3684857564196356e-5,-3.069592004180854e-10,-4.481345025764483e-4,-3.3699547562141865E-05,-3.174400965017838e-10,-4.477364173205387e-4,-3.36150453685436e-5,-3.056899582009406e-10,-4.473824653024104e-4,-3.3442075559446554e-5,-2.731645840371916e-10,-4.471089794236686e-4,-3.3213746559910004e-5,-2.2659609678642381e-10,-4.4693193476726584e-4,-3.2975892326254515e-5,-1.7600234698550785e-10,-4.4684415933761597e-4,-3.2774072581832724e-5,-1.318180279743324e-10,-4.468195596048631e-4,-3.264180812728822e-5,-1.0215906621877542e-10,-4.468221350963377e-4,-3.259390394722096e-5,-9.111564082088563e-11,-4.468159270102211e-4,-3.262613831507543e-5,-9.843768488394674e-11,-4.4677253154619184e-4,-3.271981887431175e-5,-1.2037327381122013e-10,-4.466747593938944e-4,-3.2848326037323585e-5,-1.5107991793165482e-10,-4.465169535590928e-4,-3.298315215165685e-5,-1.8405170853296948e-10,-4.4630337571044507e-4,-3.309824656748056e-5,-2.1323351666357844e-10,-4.4604597579605345e-4,-3.317263929462189e-5,-2.337308573244723e-10,-4.45762317539977e-4,-3.3191928530204014e-5,-2.421841171496663e-10,-4.454738218877487e-4,-3.314935956184844e-5,-2.369644191333686e-10,-4.4520398080873634e-4,-3.304699535971351e-5,-2.1835135532547503e-10,-4.449759188950929e-4,-3.289697404544757e-5,-1.887628854791514e-10,-4.448087241116615e-4,-3.2722220146874976e-5,-1.529489231537002e-10,-4.4471242614531716e-4,-3.2555363695373645e-5,-1.1787226547448037e-10,-4.446825403539786e-4,-3.2434324371631275e-5,-9.188130706746193e-11,-4.4469655992664646e-4,-3.2393735943472714e-5,-8.291075104452407e-11,-4.4471563063769776e-4,-3.245364245052461e-5,-9.596818943647909e-11,-4.446933654754844e-4,-3.2609831845342675e-5,-1.3086158754423952e-10,-4.445900359888028e-4,-3.2831347836709934e-5,-1.814400172328324e-10,-4.4438642125605143e-4,-3.306811219248421e-5,-2.370680722983898e-10,-4.4409080264432883e-4,-3.326622792760892e-5,-2.858581212801058e-10,-4.437360837083105e-4,-3.33843518504114e-5,-3.1823887552277983e-10,-4.433690949210459e-4,-3.340463330407339e-5,-3.294487374573945e-10,-4.430370755530498e-4,-3.3335321031998855e-5,-3.203184353265311e-10,-4.427759960089928e-4,-3.320596713714179e-5,-2.9650278742528307e-10,-4.4260339341241914e-4,-3.305809413124731e-5,-2.666935334285821e-10,-4.425164934095727e-4,-3.293443729480453e-5,-2.403889490512539e-10,-4.424951037855245e-4,-3.286939195932481e-5,-2.2573681301802528e-10,-4.4250792553513906e-4,-3.2882577323854434e-5,-2.2789539745179735e-10,-4.425203905633074e-4,-3.297653466831185e-5,-2.4823497974085815e-10,-4.425019734590562e-4,-3.313848660280707e-5,-2.8448803781729026e-10,-4.424313311491289e-4,-3.334499881923905e-5,-3.3168004394333305e-10,-4.422985572981347e-4,-3.3567784931305844e-5,-3.834657566606249e-10,-4.4210484891880924e-4,-3.377905354369237e-5,-4.3346022827032136e-10,-4.4186050614891556e-4,-3.3955460677570604e-5,-4.762630706971752e-10,-0.00044158229376506733,-3.408047587119074e-5,-5.080560853142402e-10,-4.4129088951131405e-4,-3.4145537682724034e-5,-5.268328707022444e-10,-4.4100864451780675e-4,-3.415060214756904e-5,-5.324321778308508e-10,-4.4075744431709034e-4,-3.4104538515809105e-5,-5.265509515466792e-10,-4.405562048159596e-4,-3.402543308853396e-5,-5.128193797311413e-10,-4.4041749799388676e-4,-3.394031824044413e-5,-4.968520411437988e-10,-4.4034317371603764e-4,-3.388321666420194e-5,-4.859836819661576e-10,-4.4031985380117906e-4,-3.389003663385937e-5,-4.882781596747447e-10,-4.4031667309458187e-4,-3.398947734201114e-5,-5.105417250572887e-10,-4.40288726603928e-4,-3.419139460117802e-5,-5.556392875995702e-10,-4.4018852720764694e-4,-3.447763007612022e-5,-6.202734840122589e-10,-4.3998312776834925e-4,-3.4802253044518366e-5,-6.948530997978604e-10,-4.396688525708522e-4,-3.510470657110431e-5,-7.662719727894685e-10,-4.3927463938373874e-4,-3.533108692677226e-5,-8.225278615720626e-10,-4.388514849831018e-4,-3.545261924397217e-5,-8.567545923869293e-10,-4.384542114569926e-4,-3.5472467064472854e-5,-8.687704570663886e-10,-4.381250309194333e-4,-3.542007387575285e-5,-8.640367362840351e-10,-4.3788477725332484e-4,-3.533865244353876e-5,-8.512299465652137e-10,-4.377321566231613e-4,-3.52722511840646e-5,-8.396926899517458e-10,-4.3764830456916964e-4,-3.525614476523123e-5,-8.374333127536711e-10,-4.376036478383992e-4,-3.531151963905395e-5,-8.498330044244647e-10,-4.3756499698159503e-4,-3.544392307484552e-5,-8.790159276265403e-10,-4.3750174764789934e-4,-3.56445680225368e-5,-9.238259471745557e-10,-4.3739057794072914e-4,-3.5893675770702265e-5,-9.803621067461992e-10,-4.372182577922428e-4,-3.6165025749781834e-5,-1.042950971201023e-9,-4.369824734841252e-4,-3.6430802734025703e-5,-1.1053246753441703e-9,-4.36690901264442e-4,-3.6665949804834746e-5,-1.1617407465670032e-9,-4.3635900542241446e-4,-3.685147801086402e-5,-1.2078249534317108e-9,-4.360071976804138e-4,-3.697647114841903e-5,-1.2410262063482944e-9,-4.356579555231565e-4,-3.7038915732516285e-5,-1.260728985867218e-9,-4.353331667358742e-4,-3.704575670653252e-5,-1.2681800873321904e-9,-4.350516275750907e-4,-3.701249208677096e-5,-1.2663789075441324e-9,-4.348264748497907e-4,-3.696235632581322e-5,-1.2599873663792249e-9,-4.3466228069439307e-4,-3.692480626009468e-5,-1.2551736513394884e-9,-4.3455177288540366e-4,-3.6932510170417106e-5,-1.25912798564809e-9,-4.3447301468774706e-4,-3.701572674939781e-5,-1.278902275184977e-9,-4.3438916026796164e-4,-3.71935894381788e-5,-1.3194060826546412e-9,-4.3425376802956616e-4,-3.74638561498117e-5,-1.3809346111075104e-9,-4.340236163024067e-4,-3.779593543622154e-5,-1.4574024307369292e-9,-4.3367640876553675e-4,-3.8134118564692025e-5,-1.5369256916288049e-9,-4.332244241737091e-4,-3.8414502041651824e-5,-1.6055222702572017e-9,-4.3271386018431076e-4,-3.858948430017033e-5,-1.652481129483999e-9,-4.3220787923143326e-4,-3.864607462666557e-5,-1.6743270763616353e-9,-4.317629656468537e-4,-3.860761863456337e-5,-1.6752156913577408e-9,-4.3141176547786695e-4,-3.8520414864384305e-5,-1.6642240440609935e-9,-4.3115868222643985e-4,-3.8435327419660585e-5,-1.651702421749401e-9,-4.3098557996193025e-4,-3.8393580822086956e-5,-1.6464759363415677e-9,-4.3086147835504085e-4,-3.841992287116871e-5,-1.65440671246263e-9,-4.307516674336233e-4,-3.8521823132790755e-5,-1.6780078303099869e-9,-4.306243804306794e-4,-3.8692067403099935e-5,-1.716664885505569e-9,-4.3045497513185133e-4,-3.891267180424769e-5,-1.7671843133691706e-9,-4.302282105989142e-4,-3.9159095494623204e-5,-1.824566327370246e-9,-4.299390751286171e-4,-3.940438880534627e-5,-1.8829431790449586e-9,-4.295924025130069e-4,-3.9623034498814555e-5,-1.936562263178734e-9,-4.292014630930585e-4,-3.9794261037469396e-5,-1.9806593157273097e-9,-4.287856876623859e-4,-3.9904630596068394e-5,-2.0120950226613972e-9,-4.28367754503315e-4,-3.994964610903417e-5,-2.0296763544745215e-9,-4.279704452993792e-4,-3.9934237516808346e-5,-2.0341813886434956e-9,-4.276136265667553e-4,-3.987227137249826e-5,-2.0282039753249915e-9,-4.273114688402678e-4,-3.978527077197651e-5,-2.0159259234067885e-9,-4.2706992488113834e-4,-3.9700366198973295e-5,-2.002829069662559e-9,-4.268845197863682e-4,-3.964737840173896e-5,-1.9952647642030475e-9,-4.267386265969893e-4,-3.965471131576109e-5,-1.999700373052887e-9,-4.266029510717304e-4,-3.9743544324180614e-5,-2.0214358793739664e-9,-4.26437834568534e-4,-3.992039295746758e-5,-2.0627867533072652e-9,-4.2620038657907274e-4,-4.016980373449743e-5,-2.1212012265236316e-9,-4.2585728334790284e-4,-4.0451299582123726e-5,-2.1883606719571155e-9,-4.25400265363133e-4,-4.070596598753596e-5,-2.25155109322746e-9,-4.248561337280175e-4,-4.0874859811857436e-5,-2.2977411834001216e-9,-4.242820619720334e-4,-4.092274432793028e-5,-2.3187965446079723e-9,-4.237451316903482e-4,-4.085341822572131e-5,-2.3147791360394584e-9,-4.2329694415442286e-4,-4.070654441064251e-5,-2.2932869092235596e-9,-4.229578411734412e-4,-4.0538947222353454e-5,-2.2656447239000503e-9,-4.2271688421275413e-4,-4.040304127911455e-5,-2.2426165588610284e-9,-4.225427433080427e-4,-4.0333144803596924e-5,-2.231704275563879e-9,-4.223968689264773e-4,-4.0342043136537935e-5,-2.2363639652971267e-9,-4.222434398179648e-4,-4.042433106460874e-5,-2.256430112670042e-9,-4.220548334090586e-4,-4.056222883882198e-5,-2.2890006714688703e-9,-4.218136677594013e-4,-4.073117018433807e-5,-2.3293788637137593e-9,-4.21512946299068e-4,-4.0904258616967875e-5,-2.3719643641673716e-9,-4.2115531676598317e-4,-4.105575217512033e-5,-2.4111025484600863e-9,-4.207517952197999e-4,-4.1163907229954436e-5,-2.441863734119646e-9,-4.203200113401336e-4,-4.121333480514526e-5,-2.460678044086568e-9,-4.198819221794372e-4,-4.119688223171917e-5,-2.4657691210332674e-9,-4.194609188969578e-4,-4.111682572964086e-5,-2.4573520283086842e-9,-4.1907848888926417e-4,-4.0985005162454883e-5,-2.4375869987131062e-9,-4.1875086145044143e-4,-4.082171835588424e-5,-2.4103369791762464e-9,-4.1848604840921634e-4,-4.065342570658751e-5,-2.3807851127628465e-9,-4.182816061708275e-4,-4.050935427302264e-5,-2.3549026071762925e-9,-4.1812347686722286e-4,-4.041715861848515e-5,-2.3387103150409148e-9,-4.1798629068454416e-4,-4.039789505126642e-5,-2.337275945283984e-9,-4.178356307985684e-4,-4.046059638808345e-5,-2.353438615303446e-9,-4.1763304542852736e-4,-4.0597133531294696e-5,-2.3864309135234715e-9,-4.17344485054109e-4,-4.07791348421971e-5,-2.4308988000567276e-9,-4.1695157842682465e-4,-4.095991780817399e-5,-2.477108670627579e-9,-4.16462448119742e-4,-4.108433698392642e-5,-2.5130503328766345e-9,-4.15915771968092e-4,-4.1106404871525956e-5,-2.528346010590168e-9,-4.153721159190534e-4,-4.100833523430551e-5,-2.5184530965389194e-9,-4.1489323356661917e-4,-4.0810007275967356e-5,-2.4867440031700544e-9,-4.1451934265011636e-4,-4.056149998336314e-5,-2.443004015897615e-9,-4.14257057163492e-4,-4.032253315069391e-5,-2.399280027476654e-9,-4.140829643037679e-4,-4.014115402159914e-5,-2.365624213252662e-9,-4.139573594589503e-4,-4.004203540654317e-5,-2.347719850083814e-9,-4.1383883902764264e-4,-4.0026135838993726e-5,-2.346648557292666e-9,-4.1369395521428763e-4,-4.007714518494776e-5,-2.359918634965156e-9,-4.1350116283010187e-4,-4.0169438678037385e-5,-2.3828275358386247e-9,-4.132509204849382e-4,-4.02745458009851e-5,-2.409672202656709e-9,-4.12944098431814e-4,-4.036544899383293e-5,-2.434693727626981e-9,-4.1259003312596384e-4,-4.0419283786942026e-5,-2.4528076757501718e-9,-4.1220463180241106e-4,-4.041920894315126e-5,-2.460165886913844e-9,-4.118084241146482e-4,-4.035589750016881e-5,-2.4545551866637317e-9,-4.114243079808707e-4,-4.0228769440772255e-5,-2.4356339267987566e-9,-4.1107472547243434e-4,-4.004674770704506e-5,-2.4050065497151834e-9,-4.107782411517076e-4,-3.982801465533893e-5,-2.3661110631512318e-9,-4.1054594259781567e-4,-3.959827057314572e-5,-2.3238887851075064e-9,-4.10378395758591e-4,-3.938732383127705e-5,-2.2842171118400988e-9,-4.1026395191599125e-4,-3.922422342717951e-5,-2.2530908614786637e-9,-4.101791123460307e-4,-3.9131562701737556e-5,-2.23557803383868e-9,-4.100913745510124e-4,-3.911997116984464e-5,-2.2346619299068557e-9,-4.099645570075549e-4,-3.9183950507037974e-5,-2.250178149363926e-9,-4.097661972198411e-4,-3.930021397784681e-5,-2.278150153434694e-9,-4.0947612025577423e-4,-3.9429780090729804e-5,-2.310922006873919e-9,-4.090943862753506e-4,-3.952493336780649e-5,-2.338459230035468e-9,-4.086456517799025e-4,-3.954111611657848e-5,-2.3508883014153373e-9,-4.081763984351799e-4,-3.945141594102922e-5,-2.34172318966217e-9,-4.0774310491620253e-4,-3.9258165010706924e-5,-2.3105104000586573e-9,-4.0739410414728915e-4,-3.899487440782558e-5,-2.2634068239480487e-9,-4.071530517716821e-4,-3.8715380711305496e-5,-2.2110648360130516e-9,-4.07012517735472e-4,-3.8474663908117465e-5,-2.1647814676881445e-9,-4.0694031503661626e-4,-3.83111097332982e-5,-2.132885090794267e-9,-4.0689355328915437e-4,-3.823811500140989e-5,-2.118905391336737e-9,-4.0683245131795863e-4,-3.824611552137267e-5,-2.121744169365106e-9,-4.0672875066320724e-4,-3.83106584547127e-5,-2.137053712749919e-9,-4.065681541205749e-4,-3.8401284561318635e-5,-2.1588842425524963e-9,-4.063489170280104e-4,-3.848820200325258e-5,-2.181051087605659e-9,-4.0607899542711783e-4,-3.854620981262006e-5,-2.198080022710527e-9,-4.0577321760118843e-4,-3.855665233157998e-5,-2.2057933114142437e-9,-4.054509336224549e-4,-3.850839314776131e-5,-2.2016348705458945e-9,-4.051339790749997e-4,-3.839848304650612e-5,-2.1848218714545927e-9,-4.0484452728607707e-4,-3.8232763492249975e-5,-2.1563917184551757e-9,-4.046024009615301e-4,-3.8026166396044666e-5,-2.1191704389762e-9,-4.0442170184689123e-4,-3.780206287518215e-5,-2.0776109012345515e-9,-4.043071522932379e-4,-3.7589916539575194e-5,-2.037394588277785e-9,-4.0425112417486777e-4,-3.7420805564781884e-5,-2.0046841607319565e-9,-4.0423270413599097e-4,-3.732108474951415e-5,-1.9850017433876396e-9,-4.042199941499895e-4,-3.7305461211264305e-5,-1.9818909364028005e-9,-4.041759729458141e-4,-3.7371576180890595e-5,-1.995722476799383e-9,-4.040669367934563e-4,-3.749819781395151e-5,-2.023080949156707e-9,-4.038714430168704e-4,-3.764824543910441e-5,-2.0570719150784504e-9,-4.0358723837979936e-4,-3.777652245214125e-5,-2.088652532821821e-9,-4.0323392522940814e-4,-3.784066890271968e-5,-2.108786263221883e-9,-4.028499668827034e-4,-3.7812733764463005e-5,-2.110917795052249e-9,-4.024839213955273e-4,-3.768809159565209e-5,-2.0930452841422504e-9,-4.0218154105103323e-4,-3.748838143603014e-5,-2.0586134771402745e-9,-4.0197245691300375e-4,-3.7256296497542606e-5,-2.0156987881971886e-9,-4.0186148165965595e-4,-3.7042976733979594e-5,-1.974586200188155e-9,-4.018283808339541e-4,-3.6892494178303976e-5,-1.944623987475064e-9,-4.0183608868270894e-4,-3.6829760565161567e-5,-1.9316327261505804e-9,-4.0184323029191903e-4,-3.685629057238657e-5,-1.9367984159228025e-9,-4.0181540972463755e-4,-3.6953941902521246e-5,-1.9571606390107712e-9,-4.0173160962337696e-4,-3.7093205760581396e-5,-1.9871078224997477e-9,-4.015852743493223e-4,-3.724183204408453e-5,-2.0200937211791826e-9,-4.013819118193629e-4,-3.737112093517171e-5,-2.0500268935527753e-9,-4.0113546642722405e-4,-3.745934046666174e-5,-2.072145790532876e-9,-4.008649162475529e-4,-3.749303145455463e-5,-2.0834320591036338e-9,-4.005915876567197e-4,-3.746722429672266e-5,-2.0827005722215756e-9,-4.00337051736825e-4,-3.7385338843855984e-5,-2.0705219071079996e-9,-4.0012112723467486e-4,-3.725911600757237e-5,-2.0491068141487655e-9,-3.9995945006566694e-4,-3.710838880148392e-5,-2.02219878218256e-9,-3.9986036290861937e-4,-3.696000071532959e-5,-1.9948926212214277e-9,-3.9982147601925637e-4,-3.684496081292581e-5,-1.9731958999948373e-9,-3.998270224104261e-4,-3.6793151712941985e-5,-1.9631309255681626e-9,-3.9984782850540707e-4,-3.6825820017548094e-5,-1.9693326621769157e-9,-3.9984567314217234e-4,-3.6947721487253395e-5,-1.9934475370821446e-9,-3.997823060669654e-4,-3.714229558595796e-5,-2.0329994613703186e-9,-3.996308094008664e-4,-3.7373115060623765e-5,-2.0814266273117242e-9,-3.99384988712439e-4,-3.759249203934011e-5,-2.1295566994293455e-9,-3.9906271036433164e-4,-3.775472405457742e-5,-2.1681019565900638e-9,-3.987016202917927e-4,-3.7829193936713294e-5,-2.190272534708571e-9,-3.9834887836798216e-4,-3.780875269054671e-5,-2.193608295241445e-9,-3.980485538263064e-4,-3.7711034648837475e-5,-2.1805271009791155e-9,-3.978305141809676e-4,-3.75729460791574e-5,-2.157555028882998e-9,-3.9770366530245046e-4,-3.744037328616604e-5,-2.1335311050243456e-9,-3.9765504299890545e-4,-3.735613027207092e-5,-2.1172878104897155e-9,-3.976546923721489e-4,-3.7349520461290274e-5,-2.1154458093897077e-9,-3.976645841027215e-4,-3.7430385886824955e-5,-2.1309453027747796e-9,-3.9764857481630915e-4,-3.7588969553787584e-5,-2.16269710822895e-9,-3.975803240688057e-4,-3.78008285196242e-5,-2.206328545718188e-9,-3.9744725472712117e-4,-3.8034406317778884e-5,-2.2556260006985536e-9,-3.972504331599879e-4,-3.825848207709496e-5,-2.304116143937135e-9,-3.970016678082849e-4,-3.8447576129588216e-5,-2.346328968114079e-9,-3.967195597523896e-4,-3.85847761019194e-5,-2.378535140950185e-9,-3.9642580202908984e-4,-3.8662499543895226e-5,-2.3989805580658325e-9,-3.9614227617272086e-4,-3.8682093918056946e-5,-2.407778956750608e-9,-3.9588887819566896e-4,-3.865305185717903e-5,-2.406662527805749e-9,-3.9568165300506234e-4,-3.8592229765188354e-5,-2.3987512411946675e-9,-3.9553072846361295e-4,-3.852295871827556e-5,-2.3883867003944353e-9,-3.9543774790634314e-4,-3.847345808670505e-5,-2.3809297326839213e-9,-3.9539305003282924e-4,-3.847364136251777e-5,-2.382287114028292e-9,-3.9537371824626544e-4,-3.854948972135635e-5,-2.397910865159832e-9,-3.9534454501332527e-4,-3.8715107497318946e-5,-2.4312142198376576e-9,-3.952641095528031e-4,-3.896460770802551e-5,-2.4818178598376683e-9,-3.9509636929992376e-4,-3.9268210077471814e-5,-2.5445577437541576e-9,-3.9482433024793544e-4,-3.957704143478872e-5,-2.6102337078048142e-9,-3.944590437311957e-4,-3.983728465279895e-5,-2.66827632892777e-9,-3.9403811672779804e-4,-4.000826568398732e-5,-2.7102607573795425e-9,-3.936136334447647e-4,-4.007582516475161e-5,-2.732568246881595e-9,-3.932354489171214e-4,-4.005509986930359e-5,-2.7370829288428234e-9,-3.9293735005261444e-4,-3.9983124149450465e-5,-2.730028550413103e-9,-3.927304162113228e-4,-3.990616554842289e-5,-2.7198283129693987e-9,-3.926037104670152e-4,-3.986712394333029e-5,-2.7148744382944538e-9,-3.925300340245018e-4,-3.989630581245046e-5,-2.721726552456415e-9,-3.924740322961887e-4,-4.000673567964125e-5,-2.7439566656949624e-9,-3.9240044960224226e-4,-4.0193797020507027e-5,-2.781711773518208e-9,-3.9228100027058804e-4,-4.043835453992976e-5,-2.8319939335662753e-9,-3.920988397429943e-4,-4.071220949346134e-5,-2.8895632795737313e-9,-3.918501286346216e-4,-4.098447018044798e-5,-2.9482215655903276e-9,-3.915428759247042e-4,-4.1227354423628e-5,-3.002126932202798e-9,-3.911938860598323e-4,-4.142035578932055e-5,-3.0468184632871506e-9,-3.908248865257149e-4,-4.1552391217979064e-5,-3.079773043002786e-9,-3.904587877773441e-4,-4.162213920665322e-5,-3.100490246668063e-9,-3.901166540589265e-4,-4.163716629526032e-5,-3.1102498369570066e-9,-3.898154596295406e-4,-4.1612528206521545e-5,-3.1117545046976984e-9,-3.895663343014008e-4,-4.15692477287104e-5,-3.108816873159751e-9,-3.893729274795302e-4,-4.1532643167673676e-5,-3.106122424164249e-9,-3.8922964958095066e-4,-4.1530120920376783e-5,-3.108959796232942e-9,-3.8911993547672825e-4,-4.158773400879558e-5,-3.1226873440949273e-9,-3.890154780111431e-4,-4.172477613316137e-5,-3.1516937951170783e-9,-3.8887832398421657e-4,-4.1946490302301866e-5,-3.1978260954989524e-9,-3.8866798799491536e-4,-4.2236923527193535e-5,-3.2587392014650204e-9,-3.883541075724722e-4,-4.255643026767475e-5,-3.3271796700881e-9,-3.879309179981178e-4,-4.2848970224092304e-5,-3.3923178303223024e-9,-3.874252936797595e-4,-4.3060086306725585e-5,-3.4432808142227515e-9,-3.8689085406422015e-4,-4.315822428367038e-5,-3.473343383367832e-9,-3.863889877673784e-4,-4.3147231358598694e-5,-3.4823712443678767e-9,-3.859670303418556e-4,-4.306282988945449e-5,-3.476235200012914e-9,-3.856450179732965e-4,-4.29567332020061e-5,-3.4640108169692097e-9,-3.8541502948697586e-4,-4.287851646215824e-5,-3.4548315486565543e-9,-3.852493149355605e-4,-4.2863147399264384e-5,-3.4556957290431317e-9,-3.851111325842977e-4,-4.2926194690833945e-5,-3.4704676625369628e-9,-3.849641750666217e-4,-4.306488479653104e-5,-3.4997555963823663e-9,-3.8477904449105344e-4,-4.326230537360815e-5,-3.541315667419064e-9,-3.845368505256895e-4,-4.349269606106779e-5,-3.5907716079917845e-9,-3.842305470775176e-4,-4.372677264988809e-5,-3.6425556238611925e-9,-3.838644713396162e-4,-4.393662457551494e-5,-3.690971057311515e-9,-3.834524001017426e-4,-4.4099766813166904e-5,-3.731195660582228e-9,-3.8301455462920074e-4,-4.4201952462350065e-5,-3.760022682061001e-9,-3.8257407697839317e-4,-4.42385677285092e-5,-3.776219192075404e-9,-3.821534971407641e-4,-4.42146190699868e-5,-3.78049345493217e-9,-3.8177167811354886e-4,-4.414353188785048e-5,-3.775176115440497e-9,-3.814415037458072e-4,-4.404520966037506e-5,-3.763795599090132e-9,-3.811682438952999e-4,-4.3943745048884684e-5,-3.750686091708826e-9,-3.8094841874788385e-4,-4.3864881721126706e-5,-3.740645067077998e-9,-3.807690606418496e-4,-4.383310219135978e-5,-3.738542478624394e-9,-3.8060747113549404e-4,-4.3868015094879415e-5,-3.7487069852998005e-9,-3.8043212896826716e-4,-4.397964230952124e-5,-3.77392849591353e-9,-3.8020614214202126e-4,-4.416283549922484e-5,-3.814126337469046e-9,-3.7989477348660916e-4,-4.43925934432593e-5,-3.8651369785543476e-9,-3.7947723172862823e-4,-4.462397219530305e-5,-3.918497560033356e-9,-3.789593875598948e-4,-4.4800964639163135e-5,-3.96317158934382e-9,-3.783796554624242e-4,-4.487522211492297e-5,-3.989310173516736e-9,-3.7780028171270733e-4,-4.482731494297352e-5,-3.992457390009027e-9,-3.772848187336151e-4,-4.4677289049787794e-5,-3.975587279866091e-9,-3.768738589342568e-4,-4.4476302813578715e-5,-3.947557776892742e-9,-3.765731596693725e-4,-4.4284647088400656e-5,-3.919157973229763e-9,-3.763583684669076e-4,-4.415011216339383e-5,-3.8993178944763496e-9,-3.7618935482083637e-4,-4.409689236608701e-5,-3.893153730927883e-9,-3.760245905568384e-4,-4.412564418670974e-5,-3.901816527226052e-9,-3.758305281239963e-4,-4.4219737409461237e-5,-3.923290331122069e-9,-3.755856622553639e-4,-4.435289044370741e-5,-3.953443754350989e-9,-3.752809867131644e-4,-4.449563849145108e-5,-3.987032034029203e-9,-3.749186681115099e-4,-4.462002058569582e-5,-4.018598786101294e-9,-3.745100126286204e-4,-4.4702883418774216e-5,-4.043293546650498e-9,-3.740730272909859e-4,-4.472824114947566e-5,-4.057558558959361e-9,-3.736296275242296e-4,-4.4688796131403827e-5,-4.059581153155581e-9,-3.732025909944763e-4,-4.4586579231906474e-5,-4.049448013925343e-9,-3.7281240901532864e-4,-4.4432606619089756e-5,-4.029008414573869e-9,-3.724743361521061e-4,-4.4245446122239154e-5,-4.001513612609417e-9,-3.7219604683176886e-4,-4.404881315412431e-5,-3.971147889469539e-9,-3.719761559946201e-4,-4.386851506422404e-5,-3.942550572712875e-9,-3.718036869016746e-4,-4.3729011292962504e-5,-3.920339561133363e-9,-3.716585476438696e-4,-4.364979112255484e-5,-3.908574248164302e-9,-3.715130942800803e-4,-4.364173138022532e-5,-3.910078188684471e-9,-3.713350457921283e-4,-4.370352841575415e-5,-3.925586069346227e-9,-3.7109238380513845e-4,-4.3818651024463044e-5,-3.9528488394828995e-9,-3.707607845405598e-4,-4.395425389302266e-5,-3.986112633364346e-9,-3.7033298488081413e-4,-4.406449097933762e-5,-4.01659369367896e-9,-3.698271408886742e-4,-4.4100617660546984e-5,-4.034478858226037e-9,-3.6928850300559833e-4,-4.402761136944001e-5,-4.032309510928544e-9,-3.6877886950402043e-4,-4.3841161627626426e-5,-4.008397336623387e-9,-3.68354844176475e-4,-4.3574127073054776e-5,-3.9681227490621515e-9,-3.680456442399449e-4,-4.328536888044946e-5,-3.921896540270247e-9,-3.678438514995482e-4,-4.303605390842075e-5,-3.88088052714649e-9,-3.6771344272492777e-4,-4.286765668321312e-5,-3.853066475373028e-9,-3.6760744211130974e-4,-4.279271827029995e-5,-3.841571155142976e-9,-3.6748400287878505e-4,-4.279868404809011e-5,-3.845110101089603e-9,-3.6731503805980255e-4,-4.2858040425471004e-5,-3.859505188909107e-9,-3.670878782353395e-4,-4.293828963274571e-5,-3.879232548481663e-9,-3.668030259099282e-4,-4.300887457302174e-5,-3.8986149146387406e-9,-3.664707239972699e-4,-4.304497730933188e-5,-3.912649349560868e-9,-3.6610775839668016e-4,-4.302929792015812e-5,-3.917575783781463e-9,-3.657347454762509e-4,-4.295287241734541e-5,-3.911245377621743e-9,-3.653736412651876e-4,-4.2815417391808795e-5,-3.893281236926014e-9,-3.650452228879931e-4,-4.2625259277326516e-5,-3.865029786249455e-9,-3.6476641984123815e-4,-4.239866016669585e-5,-3.8293301914713776e-9,-3.645476115673927e-4,-4.215819173345968e-5,-3.790137077788593e-9,-3.643903517009124e-4,-4.192994909126311e-5,-3.752032661708107e-9,-3.642861036996599e-4,-4.173977362622034e-5,-3.71966635491313e-9,-3.642164327955368e-4,-4.160892942215545e-5,-3.697132215015159e-9,-3.641549093482707e-4,-4.1549858066543754e-5,-3.6872863278909777e-9,-3.6407072313266787e-4,-4.1562773802817286e-5,-3.6910546876715064e-9,-3.639337297548633e-4,-4.1633785245227165e-5,-3.706842402789998e-9,-3.637205402382895e-4,-4.17351263688552e-5,-3.730239026226662e-9,-3.634210733541716e-4,-4.182826882524199e-5,-3.7543125950062615e-9,-3.6304426985984744e-4,-4.187077889867399e-5,-3.770791848359487e-9,-3.626205679360432e-4,-4.1827023967553126e-5,-3.772195287003563e-9,-3.621980590998262e-4,-4.168082324199709e-5,-3.754465893092228e-9,-3.6183040236259707e-4,-4.144515737090433e-5,-3.719051514202747e-9,-3.615588707716338e-4,-4.1162290906568653e-5,-3.6731031521314867e-9,-3.61396538504054e-4,-4.089083947416614e-5,-3.627175685529882e-9,-3.6132387086853867e-4,-4.0684523717909506e-5,-3.5913642442355727e-9,-3.612984871112935e-4,-4.057381858184938e-5,-3.57191628278744e-9,-3.6127263538453984e-4,-4.0559572504084276e-5,-3.5699106570700582e-9,-3.6120844626298833e-4,-4.061897653845609e-5,-3.5820719173724824e-9,-3.610852118619653e-4,-4.0717434213808e-5,-3.6026558942381903e-9,-3.608991626924136e-4,-4.0819528038116416e-5,-3.625305177385425e-9,-3.6065929725962267e-4,-4.0895889554540754e-5,-3.644354040211268e-9,-3.6038248887045136e-4,-4.092611299111932e-5,-3.6555594903413846e-9,-3.6008948797461456e-4,-4.089924983103489e-5,-3.6564197922185135e-9,-3.598020583044798e-4,-4.0813324951301555e-5,-3.6462285238279096e-9,-3.5954081132138837e-4,-4.06746448702424e-5,-3.625955167087689e-9,-3.593232203764928e-4,-4.049706401005377e-5,-3.5980159849031315e-9,-3.591614767911618e-4,-4.030096233320472e-5,-3.5659792059672047e-9,-3.5906017581369425e-4,-4.011143008152642e-5,-3.5342021902016163e-9,-3.590142746293756e-4,-3.9955202075565014e-5,-3.5073577657903728e-9,-3.5900813493897933e-4,-3.9856294031816824e-5,-3.4898049410216977e-9,-3.590165228657977e-4,-3.9830885148132995e-5,-3.484809323888809e-9,-3.5900811619758537e-4,-3.988259608517585e-5,-3.4937187933879266e-9,-3.589513508368191e-4,-3.9999692692636196e-5,-3.515316951993148e-9,-3.588215300116031e-4,-4.015553409221791e-5,-3.5456245459726613e-9,-3.586074994236263e-4,-4.031277515563591e-5,-3.578347724118303e-9,-3.5831611404968134e-4,-4.0430887172238557e-5,-3.6060328154525907e-9,-3.5797300106842354e-4,-4.0475752013014714e-5,-3.621798180660383e-9,-3.5761860209188446e-4,-4.0429328523306393E-05,-3.6212892232579545e-9,-3.572993273213688e-4,-4.029669010026284e-5,-3.604282007806e-9,-3.5705516107877836e-4,-4.01074134564653e-5,-3.575261109336151e-9,-3.56907171864305e-4,-3.990910227757714e-5,-3.542466178765705e-9,-3.5685000952815797e-4,-3.975360446642084e-5,-3.51546370509442e-9,-3.568535768631939e-4,-3.968060851260814e-5,-3.502095452651505e-9,-3.568738387353768e-4,-3.9705767185260144e-5,-3.506123139270059e-9,-3.568676969066613e-4,-3.981847075560239e-5,-3.526548679024781e-9,-3.568050583051709e-4,-3.9988930782059254e-5,-3.558632436406407e-9,-3.56673931076042e-4,-4.017965642244248e-5,-3.595815124716367e-9,-3.564788653472729e-4,-4.035578451744323e-5,-3.631596410599711e-9,-3.562358193015023e-4,-4.049130472750036e-5,-3.6608170038248088e-9,-3.5596655047241536e-4,-4.057119598922274e-5,-3.6802591959901357e-9,-3.556941971200325e-4,-4.059099060777297e-5,-3.688733399766354e-9,-3.554403466676326e-4,-4.055530827745248e-5,-3.6868596918516015e-9,-3.552231502274103e-4,-4.047630480756108e-5,-3.6767210257453985e-9,-3.550558309426621e-4,-4.0372330118324426e-5,-3.6615103358701634e-9,-3.549450842029947e-4,-4.0266541812810685e-5,-3.6452166207126978e-9,-3.5488926874896996e-4,-4.018488717008979e-5,-3.6323023478007748e-9,-3.5487679855453013e-4,-4.0152863925988295e-5,-3.6272565039705226e-9,-3.5488564634128154e-4,-4.019082120417089e-5,-3.6339063053833576e-9,-3.548851821818268e-4,-4.030831790087331e-5,-3.6544836887830023e-9,-3.548412788564619e-4,-4.049915486044093e-5,-3.6886696467672877e-9,-3.547243771613122e-4,-4.073952000048624e-5,-3.733057102710848e-9,-3.5451840841679887e-4,-4.0991294984085655e-5,-3.781467494098887e-9,-3.5422725173712733e-4,-4.121070540757682e-5,-3.826258266543762e-9,-3.538757710829669e-4,-4.136004087638724e-5,-3.8603033376723175e-9,-3.53504443877645e-4,-4.1418554823238366e-5,-3.879000807542093e-9,-3.5315908496719346e-4,-4.1388813578662445e-5,-3.881636157749867e-9,-3.528788443462086e-4,-4.1296476166252965e-5,-3.871679975513234e-9,-3.5268596813342254e-4,-4.118364620333568e-5,-3.855939529728651e-9,-3.525801622010045e-4,-4.109766926615156e-5,-3.84277572321506e-9,-3.5253922633776333e-4,-4.107846753507557e-5,-3.839853266345332e-9,-3.5252589900936437e-4,-4.1148172477191464e-5,-3.852089139473279e-9,-3.5249873593641004e-4,-4.130635182893659e-5,-3.880468677924388e-9,-3.524232758040045e-4,-4.153215835850133e-5,-3.922098707575269e-9,-3.5227977421103506e-4,-4.179200475176239e-5,-3.971370515911904e-9,-3.5206553777650213e-4,-4.2049383308559924e-5,-4.02168889154195e-9,-3.517923456022032e-4,-4.22732706596802e-5,-4.067108127961648e-9,-3.5148116482799436e-4,-4.2443054420599876e-5,-4.103423630040207e-9,-3.5115656427665365e-4,-4.254990072284108e-5,-4.128602719456839e-9,-3.508422977149487e-4,-4.259571927212223e-5,-4.1426852963775e-9,-3.505584283820493e-4,-4.2591075740938084e-5,-4.1473814440995675e-9,-3.503196597354921e-4,-4.2553010117369735e-5,-4.145588069811775e-9,-3.5013425081355416e-4,-4.250315194947812e-5,-4.140977734111264e-9,-3.5000296732766683e-4,-4.246594915992028e-5,-4.1376949637137355e-9,-3.4991789475969336e-4,-4.2466442610266224e-5,-4.140069290235601e-9,-3.4986146693382345e-4,-4.252696515740907e-5,-4.152177172551735e-9,-3.498066307483597e-4,-4.266243723623054e-5,-4.177099698568324e-9,-3.497195305195477e-4,-4.287472041112924e-5,-4.215884841538455e-9,-3.495659175480646e-4,-4.31478811621325e-5,-4.266536865943841e-9,-3.4932096349046604e-4,-4.3447520413318964e-5,-4.323660910585198e-9,-3.4897946134101256e-4,-4.372699512012349e-5,-4.379354851830018e-9,-3.4856132871286715e-4,-4.394038767390347e-5,-4.425380590164783e-9,-3.481082489458901e-4,-4.4057719624662955e-5,-4.455829749739181e-9,-3.4767160295073125e-4,-4.407548988414973e-5,-4.469069235668393e-9,-3.4729671592580966e-4,-4.401761276765464e-5,-4.468122927844235e-9,-3.470101043459885e-4,-4.392694681445468e-5,-4.459514042827404e-9,-3.4681399513372885e-4,-4.3851866775344917e-5,-4.4512484058967996e-9,-3.466884675872167e-4,-4.383320048423082e-5,-4.450711814114548e-9,-3.465989335162038e-4,-4.3895141685846634e-5,-4.463003731704032e-9,-3.4650592936654275e-4,-4.404155435899953e-5,-4.4899789588464385e-9,-3.4637451628011674e-4,-4.425746261242522e-5,-4.53010146035591e-9,-3.46181278482088e-4,-4.451449326164072e-5,-4.579071229769213e-9,-3.459177599712526e-4,-4.477844122387709e-5,-4.631023039653653e-9,-3.4559013570456575e-4,-4.501691233562397e-5,-4.679952084717743e-9,-3.452158716119919e-4,-4.520525913805162e-5,-4.720973867124305e-9,-3.4481879495999203e-4,-4.532981541959789e-5,-4.7511223937350465e-9,-3.4442408015957925e-4,-4.538843813449534e-5,-4.769589480143558e-9,-3.440542089166945e-4,-4.5389084894805184e-5,-4.7774936884748956e-9,-3.437263070319252e-4,-4.534740102436488e-5,-4.77738576894948e-9,-3.4345067735983324e-4,-4.5284143124787143e-5,-4.772713716467364e-9,-3.4323003778487113e-4,-4.5222842054429787e-5,-4.76739691027074e-9,-3.4305901194424496e-4,-4.518761784714889e-5,-4.765524511352927e-9,-3.429236989818069e-4,-4.52007347246193e-5,-4.771068404277782e-9,-3.428015696217947e-4,-4.5279382227483e-5,-4.787430575127021e-9,-3.426625060919474e-4,-4.543136538951815e-5,-4.8166784633623644E-09,-3.424723163020663e-4,-4.565015092623224e-5,-4.858517932523486e-9,-3.4219991287895055e-4,-4.591113849483137e-5,-4.9093917591879784e-9,-3.418278103507178e-4,-4.6172490727433865e-5,-4.962406765475092e-9,-3.413624942079579e-4,-4.6383736833411844e-5,-5.008742784565768e-9,-3.408383536332906e-4,-4.650185695871724e-5,-5.040476506469633e-9,-3.4030994982600497e-4,-4.650853684917004e-5,-5.053640312983224e-9,-3.398339484712107e-4,-4.641889431496161e-5,-5.0498114969366615e-9,-3.394494690556336e-4,-4.627597601679743e-5,-5.03533340901495e-9,-3.3916682212753793e-4,-4.6134299214963423e-5,-5.018789578479401e-9,-3.389684970747851e-4,-4.60416761329767e-5,-5.0082068715226695e-9,-3.388189563580666e-4,-4.602714616208865e-5,-5.009119290870518e-9,-3.386770001401216e-4,-4.609734320211425e-5,-5.023773996416256e-9,-3.385060967047203e-4,-4.623938128036451e-5,-5.051224680335727e-9,-3.382808819877009e-4,-4.642712042057251e-5,-5.0879722483668916e-9,-3.3798991630609986e-4,-4.662831095629719e-5,-5.128915587919849e-9,-3.3763548039858775e-4,-4.6811176467318076e-5,-5.16845422831316e-9,-3.3723121913479214e-4,-4.694969103565298e-5,-5.201576989894772e-9,-3.367983998553216e-4,-4.7027084779648636e-5,-5.224733145745607e-9,-3.3636159656376993e-4,-4.703738149569362e-5,-5.236319126134027e-9,-3.359445418555763e-4,-4.698513068870385e-5,-5.236724866703748e-9,-3.3556670577894265e-4,-4.688372871358966e-5,-5.228009274195705e-9,-3.3524095168534554e-4,-4.675286146676685e-5,-5.213367901026198e-9,-3.3497229454820115e-4,-4.661567260074138e-5,-5.196589566113095e-9,-3.3475746495397114e-4,-4.6496053972731513e-5,-5.181629379466889e-9,-3.3458496403935856e-4,-4.6416067332450106e-5,-5.172290074158099e-9,-3.3443550989848553e-4,-4.639329367171046e-5,-5.171902756508261e-9,-3.3428303229029717e-4,-4.64378573046309e-5,-5.182859497219969e-9,-3.3409679136510515e-4,-4.654895942300463e-5,-5.205901867299847e-9,-3.3384565314112754e-4,-4.671137333713532e-5,-5.2392644177281354e-9,-3.3350538321036714e-4,-4.689360879171389e-5,-5.278078891925973e-9,-3.330683964243518e-4,-4.705068211910057e-5,-5.314688239576653e-9,-3.3255256023083976e-4,-4.713428191609814e-5,-5.340419822664278e-9,-3.320027438393118e-4,-4.71097541805525e-5,-5.3486420687704235e-9,-3.314797357602177e-4,-4.6972927801329136e-5,-5.337761831657595e-9,-3.3103860655846234e-4,-4.67558263411006e-5,-5.312260680512601e-9,-3.307076685003807e-4,-4.651535747158061e-5,-5.28090259224886e-9,-3.30480214378984e-4,-4.6310845214460665e-5,-5.2532057684234896e-9,-3.303220348953695e-4,-4.618357322333606e-5,-5.236272390095169e-9,-3.301874844254908e-4,-4.61477186883596e-5,-5.233313814606197e-9,-3.3003452239918076e-4,-4.619282888887948e-5,-5.243799607308075e-9,-3.2983367667361197e-4,-4.6292393090905275e-5,-5.264447531098321e-9,-3.2957087722242947e-4,-4.6413211027825386e-5,-5.2904004316313725e-9,-3.2924630863698787e-4,-4.652281087401979e-5,-5.316302669134748e-9,-3.288714144932077e-4,-4.659436358753661e-5,-5.337217434375077e-9,-3.284653025069503e-4,-4.6609576179093505e-5,-5.349376028202255e-9,-3.2805103471112654e-4,-4.656006986482792e-5,-5.35069069746132e-9,-3.2765205016821133e-4,-4.6447489372098676E-05,-5.340948027169847e-9,-3.2728894386480116e-4,-4.628254233746377e-5,-5.321669265696422e-9,-3.2697676918230653e-4,-4.608314579988514e-5,-5.295709141439522e-9,-3.2672307735294367e-4,-4.5871826451843845e-5,-5.266715731905392e-9,-3.265269163253492e-4,-4.567268490866273e-5,-5.238595811180517e-9,-3.263787833299249e-4,-4.5508326939279494e-5,-5.2150856928611045e-9,-3.262613612892449e-4,-4.5396953226487785e-5,-5.199410066665686e-9,-3.26150973687626e-4,-4.5349627530952965e-5,-5.193932690177878e-9,-3.2601983786595027e-4,-4.5367769831319596e-5,-5.1997081785981995e-9,-3.2583937029624085e-4,-4.544098475670977e-5,-5.215918457321146e-9,-3.2558503734766617e-4,-4.554569690961154e-5,-5.2393381578890325e-9,-3.252430307869566e-4,-4.5645933134909383e-5,-5.264196058241929e-9,-3.248178384294444e-4,-4.56983335628188e-5,-5.282923877448141e-9,-3.2433764411315686e-4,-4.566298738150629e-5,-5.288101154267343e-9,-3.238524934028116e-4,-4.55187894312056e-5,-5.275271384380036e-9,-3.2342122598822694e-4,-4.527677794176033e-5,-5.245365700942163e-9,-3.230898582700321e-4,-4.498163827286755e-5,-5.205044425823437e-9,-3.228725935037573e-4,-4.469651453348592e-5,-5.164266989512154e-9,-3.2274750094473347e-4,-4.4478159074842894e-5,-5.13235180184745e-9,-3.226689152698676e-4,-4.435700005748701e-5,-5.114830829337623e-9,-3.225871774071815e-4,-4.433186738587753e-5,-5.112508862693316e-9,-3.2246425807672813e-4,-4.437776497525427e-5,-5.1224162241922625e-9,-3.2228031504722966e-4,-4.445858657848031e-5,-5.139485592758135e-9,-3.2203286741891803e-4,-4.4538062588412724E-05,-5.1580709737048375e-9,-3.217324318411406e-4,-4.4586481028774453E-05,-5.173027330322962e-9,-3.213975733128406e-4,-4.458364652752997e-5,-5.180397855754135e-9,-3.210507152123642e-4,-4.451955192695055e-5,-5.177821168001773e-9,-3.20714821071863e-4,-4.43939735421001e-5,-5.164703758157465e-9,-3.2041064399458284e-4,-4.421548906702248e-5,-5.1421458139077516e-9,-3.2015437220027257e-4,-4.400000934734236e-5,-5.112638550353013e-9,-3.199556359923085e-4,-4.3768795235697604e-5,-5.079609309330488e-9,-3.1981598750983545e-4,-4.354585021416585e-5,-5.046904699548832e-9,-3.197281840014739e-4,-4.3354726543107915e-5,-5.018289250760496e-9,-3.196765829420705e-4,-4.321510531744181e-5,-4.997015044656991e-9,-3.1963870183165634e-4,-4.313959806056474e-5,-4.985452141399794e-9,-3.195878597550035e-4,-4.313112514042971e-5,-4.984725308729074e-9,-3.1949679113388595e-4,-4.318123126172128e-5,-4.994338339842217e-9,-3.1934206103072054e-4,-4.326970683766678e-5,-5.0118522340722995e-9,-3.191090769027233e-4,-4.336592775766331e-5,-5.032784985900198e-9,-3.1879727330728615e-4,-4.3432619842126424e-5,-5.0510003085641095e-9,-3.184242585414621e-4,-4.3432905625344e-5,-5.059844813029959e-9,-3.180265341602522e-4,-4.3340679734383175e-5,-5.054050804727019e-9,-3.1765375634226675e-4,-4.315212077889462e-5,-5.031931810784182e-9,-3.173550483018549e-4,-4.289299386726835e-5,-4.996837554368338e-9,-3.1716080997909414e-4,-4.261505262909454e-5,-4.9567039021442e-9,-3.170692069796597e-4,-4.237923706416617e-5,-4.921374850462595e-9,-3.170465026363197e-4,-4.223264659485568e-5,-4.898891858407981e-9,-3.170418960140496e-4,-4.21921256965402e-5,-4.892790866082162e-9,-3.1700761388347835e-4,-4.224278875220216e-5,-4.901672313350512e-9,-3.169131831034806e-4,-4.234911923149743e-5,-4.920678900423363e-9,-3.16749371627084e-4,-4.246978287171236e-5,-4.943593716023741e-9,-3.165243898644444e-4,-4.2568904032282556e-5,-4.964541739482594e-9,-3.1625720934575716e-4,-4.262161789567898e-5,-4.9789925323940574e-9,-3.159714090148497e-4,-4.2615163483100204e-5,-4.984192983307216e-9,-3.1569080936814757e-4,-4.254769010175503e-5,-4.979239205595006e-9,-3.154366980394452e-4,-4.242640923152246e-5,-4.964927408765917e-9,-3.1522594108550356e-4,-4.226576420878259e-5,-4.9434488536958256e-9,-3.150694594909588e-4,-4.2085617046374826e-5,-4.9179780034059015e-9,-3.1497088780468846e-4,-4.190919872197873e-5,-4.892216555795521e-9,-3.1492551795328115e-4,-4.1760510317359374e-5,-4.869937621819285e-9,-3.1491993926755705e-4,-4.166103135750512e-5,-4.85453930904946e-9,-3.1493292291119807e-4,-4.162602317937051e-5,-4.8486082924002386e-9,-3.149378852148921e-4,-4.166109759027768e-5,-4.853496717228234e-9,-3.149068763252208e-4,-4.1759869297922245e-5,-4.8689420569251265e-9,-3.1481563886056355e-4,-4.1903492821241635e-5,-4.892817724760096e-9,-3.146489018901334e-4,-4.206263788736928e-5,-4.921152563389806e-9,-3.1440486675449474e-4,-4.220199291018188e-5,-4.948556753677259e-9,-3.1409782736031844e-4,-4.2286972882281444e-5,-4.969141215356648e-9,-3.1375783301927705e-4,-4.229193221838251e-5,-4.9779020409811375e-9,-3.1342629281164673e-4,-4.2208473219180394e-5,-4.972322659694826e-9,-3.131469410284784e-4,-4.205134100763301e-5,-4.953675901336095e-9,-3.129532228356514e-4,-4.185850783786602e-5,-4.927339367737182e-9,-3.128559402293983e-4,-4.168268583803075e-5,-4.901590331357037e-9,-3.128372712174129e-4,-4.157504774094596e-5,-4.884996661975068e-9,-3.1285591758021213e-4,-4.1567376446027606e-5,-4.883435028626847e-9,-3.1286216261514294e-4,-4.166161325502891e-5,-4.898203035129861e-9,-3.128152510161355e-4,-4.1832011412133305e-5,-4.926093299613993e-9,-3.1269456478840265e-4,-4.2037319835952676e-5,-4.96108661782143e-9,-3.1250114325379443e-4,-4.2235381879465134e-5,-4.996540702951394e-9,-3.1225205877241923e-4,-4.239361488219513e-5,-5.026892948270938e-9,-3.119724750885652e-4,-4.249330688871886e-5,-5.048533140222312e-9,-3.116889276893549e-4,-4.252921835778996e-5,-5.059987008882629e-9,-3.1142503078342897e-4,-4.25069961860904e-5,-5.0616921955618265e-9,-3.111992283429283e-4,-4.244023805497469e-5,-5.055583300773006e-9,-3.1102368764590496e-4,-4.234797844643438e-5,-5.044617784933671e-9,-3.1090358734081304e-4,-4.22526006575234e-5,-5.032321067688745e-9,-3.108364399804756e-4,-4.217778740604939e-5,-5.022387283844178e-9,-3.108115257297438e-4,-4.214600986581236e-5,-5.018313830814128e-9,-3.1080993296466673e-4,-4.2175257475328325e-5,-5.023008475613783e-9,-3.1080593916080375e-4,-4.227521362395652e-5,-5.038322479284464e-9,-3.1077034837130563e-4,-4.244369565068855e-5,-5.06453984568056e-9,-3.1067585579162317e-4,-4.266468404943358e-5,-5.099969884051941e-9,-3.105035849258535e-4,-4.290936505875487e-5,-5.140877929168914e-9,-3.1024899896644803e-4,-4.314094465863473e-5,-5.181956628701638e-9,-3.0992505626402714e-4,-4.332264950955875e-5,-5.217361941575282e-9,-3.095610883380589e-4,-4.342700451466909e-5,-5.2421145403966415e-9,-3.091971222357173e-4,-4.3443817524911114e-5,-5.253502474396329e-9,-3.088746927985775e-4,-4.338445254519018e-5,-5.252067765269822e-9,-3.086262289687441e-4,-4.328075377912741e-5,-5.241813665026146e-9,-3.084657459880443e-4,-4.317815751980895e-5,-5.229427402694319e-9,-3.083838136062314e-4,-4.312402180818095e-5,-5.222569664693657e-9,-3.083492587428513e-4,-4.315408297432371e-5,-5.227650075739371e-9,-3.083181203766566e-4,-4.328165458806027e-5,-5.247856867561176e-9,-3.082471429138195e-4,-4.349411061585933e-5,-5.2822613795529054e-9,-3.081064848257633e-4,-4.375827146070421e-5,-5.3263709887758225e-9,-3.0788661043989416e-4,-4.403198008161343e-5,-5.373792020884821e-9,-3.0759759139367557e-4,-4.4276497491867025e-5,-5.418190385136207e-9,-3.072628362842785e-4,-4.4465056129220834e-5,-5.454790327401472e-9,-3.0691106900856074e-4,-4.458588788817899e-5,-5.481074258715986e-9,-3.0656967318466223e-4,-4.4640878311394534e-5,-5.496772186340735e-9,-3.0626062010192915e-4,-4.464213768265969e-5,-5.5034243148592386e-9,-3.0599865177202766e-4,-4.460833959835805e-5,-5.503787246380918e-9,-3.057908013060658e-4,-4.4561687503291136e-5,-5.501265100167681e-9,-3.0563641143263365e-4,-4.4525580714277986e-5,-5.4994619326435316e-9,-3.0552715792361276e-4,-4.4522582031122806e-5,-5.501861033144501e-9,-3.0544706109613843e-4,-4.457210286773981e-5,-5.511548919490009e-9,-0.00030537297561927964,-4.4687381552856436e-5,-5.5308628299553145e-9]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_8.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_8.json new file mode 100644 index 000000000..2eec9421f --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_8.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":8000,"numberOfSamples":1000,"samples":[-3.0527640252829807e-4,-4.487182696660493e-5,-5.56088448082571e-9,-3.051274863200565e-4,-4.511556230951057e-5,-5.6008437940501195e-9,-3.049014822200931e-4,-4.5393887171247894e-5,-5.647698563779582e-9,-3.045865825423837e-4,-4.566978863347711e-5,-5.696284894052496e-9,-3.041902526794886e-4,-4.590165294193654e-5,-5.7403050551512475e-9,-3.0374053440293064e-4,-4.605480630272924e-5,-5.774008768966934e-9,-3.032803042778928e-4,-4.6112832816305496e-5,-5.793973590280497e-9,-3.028557483245855e-4,-4.608383761616052e-5,-5.800251345674449e-9,-3.025032355259023e-4,-4.599882516164128e-5,-5.796427523208801e-9,-3.022393949447573e-4,-4.5902896545994185e-5,-5.788631331365615e-9,-3.020574267495867e-4,-4.5842714571687194e-5,-5.7838921806700334e-9,-3.019300694661608e-4,-4.585434504667538e-5,-5.7883384069394884e-9,-3.0181769376023336e-4,-4.595468543172006e-5,-5.805682519418446e-9,-3.0167899235319e-4,-4.613834629665025e-5,-5.83635658405951e-9,-3.014813398322303e-4,-4.638044052124705e-5,-5.877534282545917e-9,-3.0120806044062887e-4,-4.664417952898078e-5,-5.924029708374941e-9,-3.008608032921932e-4,-4.689076983299546e-5,-5.969769115749644e-9,-3.004568895018775e-4,-4.70885065576558e-5,-6.009334760264992e-9,-3.000232042040917e-4,-4.7218579979817117e-5,-6.039104695872155e-9,-2.995891071912802e-4,-4.72766796425179e-5,-6.057736521969508e-9,-2.9918053358217385e-4,-4.7271135672653113e-5,-6.066024169441235e-9,-2.9881634126882297e-4,-4.721922325858296e-5,-6.066350982343671e-9,-2.9850682571005375e-4,-4.714317647578276e-5,-6.0620073426491385e-9,-2.982536857147729e-4,-4.706682514849363e-5,-6.056588919504954e-9,-2.9805063249734796e-4,-4.7013055973122464e-5,-6.053577596287479e-9,-2.978841024009395e-4,-4.700177778028711e-5,-6.0560846647952315e-9,-2.97733963612634e-4,-4.7047861809806975e-5,-6.066639640409404e-9,-2.975745746966664e-4,-4.715862391952254e-5,-6.086875521052076e-9,-2.9737697702912646e-4,-4.733079302488828e-5,-6.117026762619431e-9,-2.9711318240313096e-4,-4.754766231303244e-5,-6.1553289826818086e-9,-2.967630328757633e-4,-4.777820603997843e-5,-6.1976547684464505e-9,-2.963225516133362e-4,-4.7980702799556336e-5,-6.237878353608434e-9,-2.9581034269964766e-4,-4.8112531767448336e-5,-6.26929277722192e-9,-2.952671701271256e-4,-4.8144449769795835e-5,-6.286810452998715e-9,-2.9474584957997816e-4,-4.807330163392616e-5,-6.28897999422168e-9,-2.942942146728656e-4,-4.7925741507049555e-5,-6.278697823265868e-9,-2.939390776646052e-4,-4.774982986598883e-5,-6.2621933111198565e-9,-2.9367888471910724e-4,-4.759858957460034e-5,-6.246887112949443e-9,-2.9348722961036977e-4,-4.751366495959348e-5,-6.239195834786848e-9,-2.933236015115482e-4,-4.7515401306169104e-5,-6.243051945843658e-9,-2.9314581436119905e-4,-4.760093779409941e-5,-6.2593279168203955e-9,-2.9292007500896937e-4,-4.774844549298213e-5,-6.286013467788338e-9,-2.926269983387905e-4,-4.792463505513392e-5,-6.318926256564662e-9,-2.9226350769051096e-4,-4.80930810595307e-5,-6.352759512595941e-9,-2.918412941194005e-4,-4.822168516898902e-5,-6.382264012712696e-9,-2.9138274761924426e-4,-4.8288192173938596e-5,-6.4033284884177525e-9,-2.9091546827443674e-4,-4.828307144331461e-5,-6.4137142155758484e-9,-2.904666459630382e-4,-4.820960531850297e-5,-6.413290100567614e-9,-2.9005845372039675e-4,-4.808169188193544e-5,-6.403779607548024e-9,-2.897051121066428e-4,-4.7920298339887756e-5,-6.388175539851937e-9,-2.894117280467004e-4,-4.77495594070045e-5,-6.3700487926475646e-9,-2.891745460224369e-4,-4.7593309240161246e-5,-6.352958916462981e-9,-2.889819981834109e-4,-4.7472392700331755e-5,-6.340071065896678e-9,-2.8881605249833365e-4,-4.740260960082055e-5,-6.333942633116508e-9,-2.886536932128631e-4,-4.739292957383811e-5,-6.336355114475078e-9,-2.884687014832789e-4,-4.7443667570689896e-5,-6.348050662755428e-9,-2.8823427250380447e-4,-4.754452904089668e-5,-6.368308311532382e-9,-2.879272735231633e-4,-4.767303651414079e-5,-6.394467888137689e-9,-2.875345818250315e-4,-4.7794856179294424e-5,-6.4217381728864196e-9,-2.8706055734247936e-4,-4.786832012302628e-5,-6.443756519509059e-9,-2.865324198422822e-4,-4.785486234755549e-5,-6.4542037210419195e-9,-2.859983895327293e-4,-4.773390713864742e-5,-6.449179015088165e-9,-2.8551497623516194e-4,-4.7515537099475336e-5,-6.429222290163076e-9,-2.8512656698742036e-4,-4.724172825041583e-5,-6.399602792241161e-9,-2.8484791237568235e-4,-4.697228518879425e-5,-6.368414825098121e-9,-2.846599731981497e-4,-4.676227057336778e-5,-6.343524830079535e-9,-2.845204990113826e-4,-4.664360730421715e-5,-6.330077698450703e-9,-2.8438137789211793e-4,-4.661903031892221e-5,-6.32954910609419e-9,-2.842033332610527e-4,-4.666740117899054e-5,-6.340163616828402e-9,-2.8396352830062366e-4,-4.6754274987887116e-5,-6.357961127061933e-9,-2.836566692220362e-4,-4.684229725179311e-5,-6.377959739889069e-9,-2.8329216427076527e-4,-4.689886773239183e-5,-6.395189096969708e-9,-2.828896488527907e-4,-4.6900720390375284e-5,-6.405540596281919e-9,-2.824742018907562e-4,-4.6836037546351875e-5,-6.4064023526000905e-9,-2.8207178859335354e-4,-4.670471097933904e-5,-6.397002591025266e-9,-2.817052464373959e-4,-4.6517083949337426e-5,-6.378389721142845e-9,-2.8139115347079264e-4,-4.629149712487325e-5,-6.3530658178796655e-9,-2.811378256204399e-4,-4.605106192105769e-5,-6.324396845660935e-9,-2.8094456582733565e-4,-4.582011369839805e-5,-6.295969795469077e-9,-2.8080213121061873e-4,-4.562084808863251e-5,-6.271061910825657e-9,-2.806941282722342e-4,-4.547056083835451e-5,-6.252305778500468e-9,-2.805989529923734e-4,-4.537959014034061e-5,-6.241511789741509e-9,-2.80492067241958e-4,-4.5349843601162954e-5,-6.239532828776588e-9,-2.803485913613245e-4,-4.5373805665704785e-5,-6.246068068716576e-9,-2.8014639891832464e-4,-4.543399639996473e-5,-6.259380228216586e-9,-2.7987013346108646e-4,-4.550321157816095e-5,-6.276047783203556e-9,-2.795162996405821e-4,-4.5546626057891795e-5,-6.291045688354151e-9,-2.790984739623287e-4,-4.5527321372703615e-5,-6.298505516465384e-9,-2.7865004000894166e-4,-4.541620148794469e-5,-6.2933199008508685e-9,-2.7822043288384707e-4,-4.520484869900707e-5,-6.273276588202333e-9,-2.7786184532760936e-4,-4.4915535087074116e-5,-6.240723143326448e-9,-2.776091852793529e-4,-4.459975553570474e-5,-6.202458787212566e-9,-2.774638632702066e-4,-4.432123225548417e-5,-6.167368360824802e-9,-2.7739275622409024e-4,-4.41307893297388e-5,-6.142942429461774e-9,-2.7734363791847937e-4,-4.404793703195258e-5,-6.132712569902154e-9,-2.772666481119829e-4,-4.405873879426259e-5,-6.135803693451539e-9,-2.7712954630060494e-4,-4.41272344392883e-5,-6.148198003690473e-9,-2.769220926915838e-4,-4.421078330515423e-5,-6.164515668643785e-9,-2.7665243775120893e-4,-4.4271847046803456e-5,-6.179465722684056e-9,-2.7634044414996943e-4,-4.42840858576599e-5,-6.188763867311319e-9,-2.760112787880964e-4,-4.4233969441495255e-5,-6.1896325079837635e-9,-2.7569053678467995e-4,-4.4119908832911274e-5,-6.1810143630256235e-9,-2.7540081443001705e-4,-4.395037973603709e-5,-6.1635500652351195e-9,-2.7515925763830574e-4,-4.374163186724933e-5,-6.13931893200916e-9,-2.7497583229343773e-4,-4.351509382685275e-5,-6.1113765985356755e-9,-2.7485228599034487e-4,-4.3294504323835476e-5,-6.083191373407955e-9,-2.747818899337699e-4,-4.3102814240736015e-5,-6.0580978536060394e-9,-2.7475014030275356e-4,-4.2959058861573174e-5,-6.038863549547172e-9,-2.747364727847155e-4,-4.287561578709453e-5,-6.027414092691353e-9,-2.7471679197166814e-4,-4.2856211898555225e-5,-6.024680664675889e-9,-2.74666552518033e-4,-4.2894856634732136e-5,-6.0304870842090665e-9,-2.745641634544586e-4,-4.297583426922976e-5,-6.043429961128174e-9,-2.7439449831047824e-4,-4.307484329777695e-5,-6.060781782144661e-9,-2.7415239183585174e-4,-4.316139154284506e-5,-6.078538519547611e-9,-2.738458939963984e-4,-4.320289628151456e-5,-6.0918223659286445e-9,-2.7349833665268886e-4,-4.317111271140737e-5,-6.095829254040278e-9,-2.731473286401864e-4,-4.305077016877184e-5,-6.087300751131777e-9,-2.728384066406977e-4,-4.284850797286421e-5,-6.0661306830069746e-9,-2.726122464122091e-4,-4.2597682445614436e-5,-6.036317211131248e-9,-2.724883882208636e-4,-4.2353186226421395e-5,-6.005346149629137e-9,-2.724538993112942e-4,-4.21739660621937e-5,-5.981721324392774e-9,-2.7246601864680027e-4,-4.209994110375406e-5,-5.971667694606237e-9,-2.724694960632973e-4,-4.2136627145050584e-5,-5.976871636177898e-9,-2.724184831524113e-4,-4.225643997788255e-5,-5.9944559253544774e-9,-2.7229051896981396e-4,-4.241362759713718e-5,-6.018773549341146e-9,-2.720878961454436e-4,-4.2562043557314734e-5,-6.043635716054438e-9,-2.718303929497391e-4,-4.266714123706157e-5,-6.063913242192316e-9,-2.715458512132313e-4,-4.271024379125761e-5,-6.076285881259704e-9,-2.712626659453091e-4,-4.268748746246162e-5,-6.07938776767281e-9,-2.710052329722968e-4,-4.260653559518088e-5,-6.073631332430156e-9,-2.707916949070718e-4,-4.248307887576607e-5,-6.060863861100873e-9,-2.7063291676093104e-4,-4.233782096456377e-5,-6.043919283576518e-9,-2.70531999054325e-4,-4.2193858972839276e-5,-6.026112658845783e-9,-2.7048412159524855e-4,-4.207417276834723e-5,-6.010749252660998e-9,-2.704768085276078e-4,-4.199898085891688e-5,-6.0007083249929064e-9,-2.7049091718653486e-4,-4.198292846456885e-5,-5.998122765150181e-9,-2.705026716692996e-4,-4.203245930769175e-5,-6.0041500657964715e-9,-2.704867786001442e-4,-4.2143960157053555e-5,-6.018813110137525e-9,-2.7042033326989443e-4,-4.2303217237346e-5,-6.0408918160634616e-9,-2.702869966792254e-4,-4.248659500899885e-5,-6.067897441023674e-9,-2.7008072908028737e-4,-4.26641123975258e-5,-6.096212887106141e-9,-2.698083301299173e-4,-4.2804202514864496e-5,-6.121495193355481e-9,-2.6949017078992116e-4,-4.287971029548579e-5,-6.139410707238995e-9,-2.6915846953213103e-4,-4.287457712691834e-5,-6.146692366322419e-9,-2.688523188530164e-4,-4.2790136468926805e-5,-6.142330933965789e-9,-2.6860905054935876e-4,-4.2648942394378234e-5,-6.128480097984698e-9,-2.684529386021688e-4,-4.249325511328419e-5,-6.110525799006696e-9,-2.683846561272461e-4,-4.237577162193681e-5,-6.0958916495610374e-9,-2.6837713845480256e-4,-4.2343242447415576e-5,-6.091676533973367e-9,-2.6838259865424467e-4,-4.241897119821026e-5,-6.1020278393601044e-9,-2.6834954243159544e-4,-4.259356052706968e-5,-6.126618946744287e-9,-2.682414538672124e-4,-4.282968580925502e-5,-6.161071746178656e-9,-2.680473788683876e-4,-4.307777590451198e-5,-6.198928228542621e-9,-2.6778068952418554e-4,-4.329323584064263e-5,-6.233932842908828e-9,-2.6746984498891765e-4,-4.3447294758245534e-5,-6.261585257801009e-9,-2.6714767994234935e-4,-4.3529579126087075e-5,-6.279696539448954e-9,-2.6684354540698494e-4,-4.3545106782298875e-5,-6.288235271926127e-9,-2.6657927046700944e-4,-4.3509317188260445e-5,-6.288838671033637e-9,-2.6636794026195363e-4,-4.3443465401146905e-5,-6.284232359286678e-9,-2.662140688653375e-4,-4.33711394559145e-5,-6.277670357631493e-9,-2.661141777281877e-4,-4.331570058397092e-5,-6.272450417208355e-9,-2.660574130223562e-4,-4.329813146063895e-5,-6.271533343649169e-9,-2.6602631028516745e-4,-4.3334832510506525e-5,-6.277259574999488e-9,-2.6599810856047266e-4,-4.3435186752350394e-5,-6.291119283070944e-9,-2.6594709819864e-4,-4.35991710667151e-5,-6.313534449691571e-9,-2.6584826187483416e-4,-4.3815728146144786e-5,-6.3436577175095264e-9,-2.6568197080015167e-4,-4.406282185693006e-5,-6.379260979809167e-9,-2.654388737832523e-4,-4.4309976961368614e-5,-6.416844899921613e-9,-2.651235904796523e-4,-4.452352360454744e-5,-6.45208973946681e-9,-2.6475574490715504e-4,-4.467379291793127e-5,-6.480660100582804e-9,-2.643674413816663e-4,-4.474263772198858e-5,-6.499235785255884e-9,-2.639972203386808e-4,-4.472932230357101e-5,-6.506524425656316e-9,-2.636814333534693e-4,-4.4652981742684745e-5,-6.50394943475184e-9,-2.6344474410546685e-4,-4.455031096217054e-5,-6.4957052750673075e-9,-2.6329215242018296e-4,-4.446797824163044e-5,-6.487971527226249e-9,-2.6320539661309406e-4,-4.445066132419316e-5,-6.487318143828218e-9,-2.63146231141766e-4,-4.452761326611089e-5,-6.498693327228091e-9,-2.630670795117471e-4,-4.4702593314460794e-5,-6.523735117410233e-9,-2.629259962418986e-4,-4.495205403355389e-5,-6.560195481816707e-9,-2.626998326199566e-4,-4.523322969000845e-5,-6.6028055138425835e-9,-2.6238984542081514e-4,-4.5498615964264204e-5,-6.645151128486782e-9,-2.620181139265042e-4,-4.57101034480172e-5,-6.681643636040315e-9,-2.6161796896905014e-4,-4.584720776675456e-5,-6.7088001834994565e-9,-2.6122365300701173e-4,-4.590801043953323e-5,-6.725594759670876e-9,-2.608629732320002e-4,-4.590508421570969e-5,-6.733110680725014e-9,-2.605538971319134e-4,-4.585973386898697e-5,-6.733869753505527e-9,-2.6030410219870376e-4,-4.5796853823059685e-5,-6.731122265893311e-9,-2.601120119629486e-4,-4.574121346938611e-5,-6.728248726724007e-9,-2.5996821459528486e-4,-4.571499884470834e-5,-6.728333811525041e-9,-2.5985675252670267e-4,-4.573601546615178e-5,-6.733900781581118e-9,-2.597563470776258e-4,-4.581593891770877e-5,-6.7467347208660815e-9,-2.596420276961034e-4,-4.5958327928148174e-5,-6.76770494879153e-9,-2.594877524327709e-4,-4.6156630892450285e-5,-6.796534200413236e-9,-2.5927042693107434e-4,-4.6392942692009576e-5,-6.8315565589601714e-9,-2.589751849875842e-4,-4.663871238482509e-5,-6.86962752289666e-9,-2.586008062635789e-4,-4.685864046342157e-5,-6.906416881867135e-9,-2.5816311466290005e-4,-4.7018104873896896e-5,-6.937219567577798e-9,-2.5769402554871504e-4,-4.70926588010539e-5,-6.9581636155644655e-9,-2.5723517884218273e-4,-4.707644773329669e-5,-6.967428938305518e-9,-2.568273908815006e-4,-4.6986025040791123e-5,-6.966001210496018e-9,-2.564992393431867e-4,-4.685748280218821e-5,-6.957630999254399e-9,-2.5625871902160277e-4,-4.6737400412949545e-5,-6.947966529409689e-9,-2.5609074998136574e-4,-4.667043573132832e-5,-6.943105351110571e-9,-2.5596122517727485e-4,-4.6687347367702306e-5,-6.947967062704738e-9,-2.5582634783583117e-4,-4.6796866950713174e-5,-6.964938644351132e-9,-2.5564461158371896e-4,-4.698373076282578e-5,-6.993209196686726e-9,-2.553879109156633e-4,-4.7213518226825917E-05,-7.029044733220987e-9,-2.5504832832596024e-4,-4.744277599023395e-5,-7.066933407213379e-9,-2.5463858429774843e-4,-4.7630969964505535e-5,-7.1011838454172516e-9,-2.541865650862485e-4,-4.775023325017012e-5,-7.127396703046114e-9,-2.537265402404863e-4,-4.7790107831489385e-5,-7.143345909601783e-9,-2.532904918374822e-4,-4.775683549761495e-5,-7.1491178104008635e-9,-2.529021042786563e-4,-4.766889086299671e-5,-7.146663004807935e-9,-2.525741732148423e-4,-4.7551249353078e-5,-7.139062192878236e-9,-2.5230871169483677e-4,-4.743029000875771e-5,-7.129782907503167e-9,-2.5209851175530824e-4,-4.733012368995658e-5,-7.12209759254885e-9,-2.519291245187472e-4,-4.7270279788107355e-5,-7.1187265860613594e-9,-2.517806968882801e-4,-4.726422556842384e-5,-7.12166746585097e-9,-2.5162963986732293e-4,-4.731809415808857e-5,-7.132097650423624e-9,-2.514505510713131e-4,-4.742927313984141e-5,-7.1502341423829864e-9,-2.512190030433243e-4,-4.758501628393123e-5,-7.175103678264232e-9,-2.5091568236328035e-4,-4.7761815907209246e-5,-7.204305121348925e-9,-2.5053181294401e-4,-4.7926849500478765e-5,-7.233991717484305e-9,-2.500746237911642e-4,-4.804301276238442e-5,-7.259360514494356e-9,-2.495701519604955e-4,-4.8078046570921506e-5,-7.275783141609628e-9,-2.490601882212913e-4,-4.8015746621047336e-5,-7.280321967292176e-9,-2.4859206990471175e-4,-4.786450499113676e-5,-7.272987851368456e-9,-2.4820404096295365e-4,-4.7657974491023386e-5,-7.2570490683069305e-9,-2.479123719305355e-4,-4.744593983612639e-5,-7.238137844085153e-9,-2.477062542180496e-4,-4.7278801363755583e-5,-7.2225323219480234e-9,-2.475523859045091e-4,-4.719243023421515e-5,-7.2153509223338515e-9,-2.4740634073176207e-4,-4.7199163254914456e-5,-7.21928276128765e-9,-2.472256149075255e-4,-4.728689651818537e-5,-7.234113502680999e-9,-2.469800996566623e-4,-4.742481447800407e-5,-7.2570090226968695e-9,-2.4665781472638505e-4,-4.757279635380423e-5,-7.283374548153914e-9,-2.462655369996502e-4,-4.769151536169288e-5,-7.308038135183422e-9,-2.458251322065457e-4,-4.775085456159175e-5,-7.326465854721028e-9,-2.4536711100036463e-4,-4.77350886691006e-5,-7.3357152755733405e-9,-2.4492329122390537e-4,-4.764420066221715e-5,-7.334911212083219e-9,-2.4452039783219196e-4,-4.749169496663902e-5,-7.3251748443696005e-9,-2.441758732145271e-4,-4.7300134577938174e-5,-7.309112821670338e-9,-2.4389627170717684e-4,-4.7095968591426874e-5,-7.2900891206745445e-9,-2.4367780651202367e-4,-4.6904922721911e-5,-7.2715143086660904e-9,-2.4350820404063506e-4,-4.674862028056588e-5,-7.2563236900772534e-9,-2.4336901910568495e-4,-4.6642494199979074e-5,-7.246701350541432e-9,-2.4323787902715116e-4,-4.6594604978692496e-5,-7.243991435989502e-9,-2.4309057272598025e-4,-4.6604855006113405e-5,-7.248666445835073e-9,-2.4290326713360635e-4,-4.666429753503088e-5,-7.260234391154556e-9,-2.4265533867043101e-4,-4.67546250155109e-5,-7.2770527231963495e-9,-2.4233328045250883e-4,-4.684845105661854e-5,-7.29615811529741e-9,-2.4193563237893614e-4,-4.6911622727816726e-5,-7.313363425619466e-9,-2.4147769061437337e-4,-4.690904210391057e-5,-7.323911274472526e-9,-2.409931846698145e-4,-4.68145030450435e-5,-7.3237831866979765e-9,-2.405293638181594e-4,-4.6622304985804496e-5,-7.311327256640174e-9,-2.4013397134164407e-4,-4.6354911420302454e-5,-7.288398575368516e-9,-2.3983792521253927e-4,-4.606009583001144e-5,-7.260171753226957e-9,-2.396424964711392e-4,-4.579591722183568e-5,-7.233460507133913e-9,-2.3951876787466002e-4,-4.561007369104896e-5,-7.21434469153871e-9,-2.394196251219914e-4,-4.552433842374012e-5,-7.206304347525716e-9,-2.3929702425245816e-4,-4.553082614515197e-5,-7.209572961363757e-9,-2.3911604156302504e-4,-4.559902693265397e-5,-7.221607636814043e-9,-2.3886148969033618e-4,-4.56878141259867e-5,-7.238141334743658e-9,-2.385376124584638e-4,-4.57569458542221e-5,-7.25434375948497e-9,-2.381635151221613e-4,-4.5775227331894453e-5,-7.265844606590987e-9,-2.3776689984276165e-4,-4.57248113055291e-5,-7.26951760352044e-9,-2.3737775512568452e-4,-4.560224089873021e-5,-7.26396202658587e-9,-2.3702288262502963e-4,-4.541701560695537e-5,-7.249620171308552e-9,-2.3672182048234104e-4,-4.518837706556744e-5,-7.228512886555455e-9,-2.3648451210419064e-4,-4.494110071809932e-5,-7.203679129923876e-9,-2.3631073766417756e-4,-4.470112417759971e-5,-7.1784915077864556e-9,-2.3619104748406788e-4,-4.449166637344944e-5,-7.156032804897266e-9,-2.361087730659606e-4,-4.433028327220373e-5,-7.138674148007875e-9,-2.3604256281260482e-4,-4.422705852302139e-5,-7.1278965459513375e-9,-2.3596896071219697e-4,-4.41837594790764e-5,-7.124282211477298e-9,-2.358648734407393e-4,-4.419359846967748e-5,-7.127541904743606e-9,-2.3571005457793368e-4,-4.424139308519803e-5,-7.136477505700135e-9,-2.3548986076137152e-4,-4.4304182265018096e-5,-7.148875985336727e-9,-2.3519855436410849e-4,-4.435271161882365e-5,-7.16145714276836e-9,-2.348430390860336e-4,-4.4354724701945077e-5,-7.170110582162483e-9,-2.3444587375598763e-4,-4.428117792866847e-5,-7.170657306550671e-9,-2.3404509111068765e-4,-4.411557127942225e-5,-7.1601656476032516e-9,-2.3368771973065835e-4,-4.386412570504797e-5,-7.138447255205115e-9,-2.334157329157928e-4,-4.356117057573164e-5,-7.108920211252188e-9,-2.3324859251575434e-4,-4.326304457334257e-5,-7.077986722810363e-9,-2.3317225159038513e-4,-4.3029164658112595e-5,-7.0528241170588876e-9,-2.3314325821755143e-4,-4.289880884221161e-5,-7.038651316312173e-9,-2.3310674475310233e-4,-4.287707539508815e-5,-7.037006731343113e-9,-2.330173793949718e-4,-4.2937138101060195e-5,-7.045793591462278e-9,-2.3285221519255721e-4,-4.303448249497462e-5,-7.060613085178226e-9,-2.3261221161084732e-4,-4.312326355963217e-5,-7.076380098752534e-9,-2.3231616237874106e-4,-4.3167782922615494e-5,-7.0885642907420745e-9,-2.3199226213489643e-4,-4.3147504709399666e-5,-7.093925360427784e-9,-2.3167066135599025e-4,-4.305722178644823e-5,-7.090854405127532e-9,-2.3137815592412457e-4,-4.290464072813479e-5,-7.079431225173229e-9,-2.3113482317374794e-4,-4.2706990561187926e-5,-7.061239222047379e-9,-2.3095210624270325e-4,-4.248733394858226e-5,-7.0389514644621475e-9,-2.3083209319112942e-4,-4.22708356697799e-5,-7.0157556508521975e-9,-2.3076787058155768e-4,-4.208124244565444e-5,-6.994754152444318e-9,-2.3074481404720975e-4,-4.193779429781794e-5,-6.978475418029599e-9,-2.3074269629111773e-4,-4.185278131262165e-5,-6.9685812919441475e-9,-2.3073838954341724e-4,-4.183002690679065e-5,-6.9657828504140465e-9,-2.307087773182823e-4,-4.1864416184094224e-5,-6.969890191920407e-9,-2.3063358371772487e-4,-4.19423194920427e-5,-6.979881232260712e-9,-2.304980447362638e-4,-4.204276810737836e-5,-6.993919691136392e-9,-2.3029541532778425e-4,-4.2139396145542684e-5,-7.00935383163725e-9,-2.3002929420596648e-4,-4.220331442258605e-5,-7.022821179996584e-9,-2.297155277725766e-4,-4.220735882242904e-5,-7.0306406913778314e-9,-2.2938274641947577e-4,-4.2132214476566026e-5,-7.029632424365228e-9,-2.2906972807424893e-4,-4.197407643695822e-5,-7.018296801761733e-9,-2.2881761972917472e-4,-4.175160042946605e-5,-6.997961873684011e-9,-2.286567093282979e-4,-4.15075256296687e-5,-6.9732029722847966e-9,-2.2859182172845228e-4,-4.129977684881916e-5,-6.9508561159118375e-9,-2.2859518852719337e-4,-4.118158264999498e-5,-6.937623078004585e-9,-2.2861445669427582e-4,-4.1179317366699686e-5,-6.937368890191579e-9,-2.2859373178187907e-4,-4.128165726085842e-5,-6.949709434593278e-9,-2.2849535207625107e-4,-4.144683429672747e-5,-6.970641653126126e-9,-2.283102601143957e-4,-4.162180946726997e-5,-6.994513297007544e-9,-2.280546314648973e-4,-4.1760936140705576e-5,-7.015996457807604e-9,-2.2775905137933017e-4,-4.1836162324814815e-5,-7.0312662464705675e-9,-2.2745750303615093e-4,-4.183854159207291e-5,-7.038384862713035e-9,-2.2717978153226345e-4,-4.1774688473891304e-5,-7.037214328561364e-9,-2.269476550317656e-4,-4.166168283592476e-5,-7.029107904443636e-9,-2.2677360769187676e-4,-4.152239765949198e-5,-7.016489998134974e-9,-2.2666086428735168e-4,-4.13817553708349e-5,-7.002360297324509e-9,-2.2660400530891817e-4,-4.126365474609324e-5,-6.989766583218536e-9,-2.2659004542151717e-4,-4.1188304668478054e-5,-6.981333927974789e-9,-2.266000219235072e-4,-4.116989011754661e-5,-6.978931288333946e-9,-2.266111881676761e-4,-4.12146495166316e-5,-6.9835033237536505e-9,-2.2659985001449061e-4,-4.131967774449151e-5,-6.9950455254666655e-9,-2.2654460748588225e-4,-4.147283960401956e-5,-7.012666563520272e-9,-2.264295628693442e-4,-4.165394006870694e-5,-7.034672741319516e-9,-2.2624709886908756e-4,-4.183709352380845e-5,-7.058654437906543e-9,-2.259998866238783e-4,-4.1994173550205136e-5,-7.081632424729571e-9,-2.2570180047419192e-4,-4.20991362790095e-5,-7.100361989265034e-9,-2.2537742095192945e-4,-4.213298776272619e-5,-7.111886301353217e-9,-2.2505959382885995e-4,-4.208912506154797e-5,-7.114348718520941e-9,-2.2478421898691062e-4,-4.197821401236689e-5,-7.107904138739319e-9,-2.2458174592226204e-4,-4.1830607186345735e-5,-7.0953504217620375e-9,-2.244663606137209e-4,-4.169327376221295e-5,-7.081979987657558e-9,-2.2442665203386655e-4,-4.1618683723854355e-5,-7.074284006802257e-9,-2.2442408061700852e-4,-4.1646821969372816e-5,-7.077692877238242e-9,-2.2440397415766895e-4,-4.178786877968106e-5,-7.0943342038050634e-9,-2.2431615173148974e-4,-4.201628734466668e-5,-7.122132208245681e-9,-2.2413418489370047e-4,-4.2281316841771065e-5,-7.155838491573877e-9,-2.238625036955378e-4,-4.252762716447894e-5,-7.189267752364687e-9,-2.2352958981585374e-4,-4.271389191467571e-5,-7.217364886846549e-9,-2.231742512295794e-4,-4.2821232086966055e-5,-7.2372470959088515e-9,-2.2283320562756947e-4,-4.285179730744506e-5,-7.2482661351785805e-9,-2.2253387205703278e-4,-4.282232746248896e-5,-7.2515555960049095e-9,-2.2229206566917885e-4,-4.275713751688142e-5,-7.2494356512215224e-9,-2.2211260756237194e-4,-4.2682685880708425e-5,-7.244838453971768e-9,-2.2199099538278396e-4,-4.262399641811782e-5,-7.240796077498677e-9,-2.2191514949620428e-4,-4.260230497054901e-5,-7.240011891369483e-9,-2.2186707232957353e-4,-4.26332616889838e-5,-7.244543832697758e-9,-2.2182464125580366e-4,-4.2725338241283515e-5,-7.255615619695993e-9,-2.217638453501513e-4,-4.287842690194515e-5,-7.273534478793906e-9,-2.2166170729793913e-4,-4.308298693357485e-5,-7.2976765517466445e-9,-2.2149980429336165e-4,-4.332033803452491e-5,-7.326522432477613e-9,-2.2126785688274673e-4,-4.3564584276414805e-5,-7.357751075488498e-9,-2.20966584781167e-4,-4.3786290015324124e-5,-7.388436436288333e-9,-2.2060898292754956e-4,-4.395759483340187e-5,-7.415404439706891e-9,-2.202193504707468e-4,-4.405796910551689e-5,-7.435775583366592e-9,-2.1982983813928416e-4,-4.407947682940211e-5,-7.4476444040565705e-9,-2.1947474914701923e-4,-4.403040203489803e-5,-7.450766846569757e-9,-2.1918316392070605e-4,-4.393615767618415e-5,-7.447040423172644e-9,-2.1897091886597989e-4,-4.3836355658260945e-5,-7.440501159279104e-9,-2.188338255077648e-4,-4.3777167322247025e-5,-7.4366017543605706e-9,-2.187450180632313e-4,-4.379926707359548e-5,-7.440747299185002e-9,-2.1865951766138927e-4,-4.3924079338995526e-5,-7.456451577868975e-9,-2.1852701523895825e-4,-4.414394644131482e-5,-7.48388495394003e-9,-2.1830915181893224e-4,-4.442241000664643e-5,-7.51964660486929e-9,-2.1799327092026865e-4,-4.47064341649404e-5,-7.558021886353412e-9,-2.1759542948186208e-4,-4.4945093539923776e-5,-7.593080121112747e-9,-2.1715190572061313e-4,-4.510525927973701e-5,-7.62051102463403e-9,-2.1670511352975532e-4,-4.5177775919498044e-5,-7.63846614779529e-9,-2.1629130702600425e-4,-4.5174263035486545e-5,-7.647414111500688e-9,-2.1593400226015044e-4,-4.511913434864514e-5,-7.649461867526958e-9,-2.1564283671687278e-4,-4.504151932089862e-5,-7.647573809127245e-9,-2.1541555700511315e-4,-4.496945565191675e-5,-7.644907915657562e-9,-2.152409460728591e-4,-4.4926547873120016E-05,-7.644326527091175e-9,-2.1510150205944102e-4,-4.493027145003056e-5,-7.648080390942638e-9,-2.1497560662559327e-4,-4.499101379307958e-5,-7.65764086825275e-9,-2.1483945926710325e-4,-4.511125926355644e-5,-7.673632641449619e-9,-2.1466926637521481e-4,-4.528477274004901e-5,-7.695803268049495e-9,-2.144441173207301e-4,-4.549613641988964e-5,-7.722992976764426e-9,-2.1414962209211983e-4,-4.572138551931352e-5,-7.753133503949428e-9,-2.137817825713578e-4,-4.5930557875204e-5,-7.783365806364265e-9,-2.1334992695909555e-4,-4.609259275443571e-5,-7.810385927253544e-9,-2.1287718132165904e-4,-4.6182138061975344e-5,-7.831058043246478e-9,-2.123972901802133e-4,-4.618667111745394e-5,-7.843194529569795e-9,-2.1194776550871445e-4,-4.611156504767954e-5,-7.846275859882824e-9,-2.1156084382754122e-4,-4.598097245517623e-5,-7.841849026160612e-9,-2.1125475027746477e-4,-4.5833615902049135e-5,-7.833415837621815e-9,-2.1102786191385352e-4,-4.57141563789811e-5,-7.825754714870187e-9,-2.1085766176323766e-4,-4.5662121102797614e-5,-7.823773717687805e-9,-2.1070526783781765e-4,-4.570112440445812e-5,-7.831148800367581e-9,-2.1052503260910168e-4,-4.5831388471697066e-5,-7.84914193292144e-9,-2.1027715631769618e-4,-4.602835716858338e-5,-7.876058836978009e-9,-2.0993957436240816e-4,-4.6248926026246374e-5,-7.90766713758257e-9,-2.095146194759454e-4,-4.644402823389973e-5,-7.938509723459188e-9,-2.0902749841148404e-4,-4.6573103373786205e-5,-7.963593692431587e-9,-2.085173003005473e-4,-4.6614726939852604e-5,-7.979751223426029e-9,-2.080247685004384e-4,-4.656971988276465e-5,-7.986202202748241e-9,-2.0758195037667867e-4,-4.645702153575651e-5,-7.984303236040702e-9,-2.0720680107128868e-4,-4.630568678322192e-5,-7.976805592462343e-9,-2.069027746736158e-4,-4.6146864470554793E-05,-7.967006829227965e-9,-2.0666149949068237e-4,-4.6008053738656595e-5,-7.958051544835984e-9,-2.0646643337144435e-4,-4.591001322147901e-5,-7.952478950941206e-9,-2.0629619473845173e-4,-4.586558575032321e-5,-7.952010523962518e-9,-2.0612715730170046e-4,-4.587946155808738e-5,-7.957511462395227e-9,-2.0593551752786214e-4,-4.594814009737746e-5,-7.969025447952002e-9,-2.0569936999224403e-4,-4.6059814191126656e-5,-7.985789917193825e-9,-2.054013396767555e-4,-4.619444426954505e-5,-8.006201300389058e-9,-2.0503200586908336e-4,-4.632476440606799e-5,-8.027795774410303e-9,-2.0459370977526643e-4,-4.6419232557928356e-5,-8.04739911864323e-9,-2.0410341514187733e-4,-4.644771828424737e-5,-8.061606874456355e-9,-2.0359249297940358e-4,-4.6389591386022976e-5,-8.06761967917358e-9,-2.0310152417526018e-4,-4.6241943470151586e-5,-8.064208675557398e-9,-2.026701314330422e-4,-4.602412220191169e-5,-8.05238930586289e-9,-2.0232482212882342e-4,-4.5775201703916056e-5,-8.035415203185357e-9,-2.0206981769589567e-4,-4.5543952383211005e-5,-8.017995799141722e-9,-2.0188503857131567e-4,-4.5374719563007136e-5,-8.005002937932091e-9,-2.0173208974531864e-4,-4.5294685661682146e-5,-8.000132839061242e-9,-2.0156558865288865e-4,-4.530694102432007e-5,-8.004940251523124e-9,-2.0134563404935994e-4,-4.5390862347908655e-5,-8.018476540387911e-9,-2.010477628284383e-4,-4.5508700213428396e-5,-8.037583629336856e-9,-2.0066816008643582e-4,-4.56159424839469e-5,-8.05775420557668e-9,-2.002233040454102e-4,-4.5672547498502866e-5,-8.074324603901956e-9,-1.9974456130923202e-4,-4.5652156194690424e-5,-8.083656540042794e-9,-1.992695170896543e-4,-4.554701856445397e-5,-8.083957366931921e-9,-1.9883270591920156e-4,-4.5367698049175715e-5,-8.075522287619769e-9,-1.9845841745310465e-4,-4.513832170771045e-5,-8.060398815725766e-9,-1.981572124953109e-4,-4.488951139782889e-5,-8.041672208553757e-9,-1.9792619199168255e-4,-4.46514605035761e-5,-8.022654713173082e-9,-1.97751818665741e-4,-4.444885607769098e-5,-8.006221420156825e-9,-1.9761372928278598e-4,-4.429815409582809e-5,-7.994418534127477e-9,-1.9748834183331958e-4,-4.4206787770554826e-5,-7.988349103172298e-9,-1.9735172150645567e-4,-4.417347840913245e-5,-7.988243219864344e-9,-1.9718177685405577e-4,-4.4188897515318655e-5,-7.993577576316224e-9,-1.969602185929472e-4,-4.423633228093872e-5,-8.003137811219496e-9,-1.96674791367231e-4,-4.429249144944042e-5,-8.01500158984719e-9,-1.9632209229852586e-4,-4.43290434847933e-5,-8.026530943997656e-9,-1.9591072087203853e-4,-4.4315855466975366e-5,-8.03455558004738e-9,-1.9546352222861362e-4,-4.422685189198833e-5,-8.035926730100295e-9,-1.9501665604001342e-4,-4.404835137258371e-5,-8.028456381532183e-9,-1.9461311284592976e-4,-4.3787482447394696e-5,-8.011956426634773e-9,-1.9429036612252486e-4,-4.3475903590539156e-5,-7.988819905738023e-9,-1.9406609579109184e-4,-4.31641133352837e-5,-7.963631507898714e-9,-1.939293801808378e-4,-4.290607476846081e-5,-7.941776010191559e-9,-1.9384326424020214e-4,-4.274050836180446e-5,-7.927647618378034e-9,-1.9375801371840964e-4,-4.267820492195053e-5,-7.923311832665135e-9,-1.9362806935360174e-4,-4.270088509049269e-5,-7.928124868965717e-9,-1.934249241067107e-4,-4.277008015595093e-5,-7.93923136862352e-9,-1.931422172148227e-4,-4.284026359050476e-5,-7.952533831849908e-9,-1.9279378906395382e-4,-4.287086605432226e-5,-7.963753390058145e-9,-1.9240746774724533e-4,-4.283438753175265e-5,-7.96935681810304e-9,-1.9201729184363728e-4,-4.272004332166115e-5,-7.967224995384466e-9,-1.9165604145344355e-4,-4.253352928312996e-5,-7.956980058119363e-9,-1.9134921912310286e-4,-4.229384282667856e-5,-7.939923003820991e-9,-1.9111121492372828e-4,-4.202818834980984e-5,-7.91860535841166e-9,-1.9094402083634387e-4,-4.176615800307559e-5,-7.896162848299419e-9,-1.9083831639714896e-4,-4.1534410208336746e-5,-7.87561120850624e-9,-1.9077625422079947e-4,-4.1352743879738196e-5,-7.859295143438076e-9,-1.9073505303328413e-4,-4.123196142628293e-5,-7.848605195695082e-9,-1.9069054410135802e-4,-4.1173414159399545e-5,-7.843964753064974e-9,-1.906201224278099e-4,-4.116971136664543e-5,-7.844982280018888e-9,-1.905050256123524e-4,-4.1205978856558556e-5,-7.850625899117948e-9,-1.9033218543530693e-4,-4.126132493487268e-5,-7.859318656901609e-9,-1.9009597946679268e-4,-4.131052250053904e-5,-7.868951080561997e-9,-1.8980014139863044e-4,-4.1326260782891054e-5,-7.876912836277283e-9,-1.8945967012305145e-4,-4.128269700216912e-5,-7.880323549005257e-9,-1.8910169760086778e-4,-4.116102678475968e-5,-7.876614821307504e-9,-0.00018876338867391296,-4.0956863108143176e-5,-7.864445949430287e-9,-1.884847853602136e-4,-4.0687258733253435e-5,-7.844654109638144e-9,-1.8829616966925856e-4,-4.039278804799636e-5,-7.820672655457958e-9,-1.88203845813791e-4,-4.012954778719805e-5,-7.797856014628003e-9,-1.8818277508791647e-4,-3.995054240701812e-5,-7.781684520999545e-9,-1.881832875362198e-4,-3.988448188439229e-5,-7.77566376533795e-9,-1.8815018874959586e-4,-3.992443525486756e-5,-7.780096416824334e-9,-1.880434791354815e-4,-4.003285000490112e-5,-7.792321866458137e-9,-1.8784973035415947e-4,-4.015822215563545e-5,-7.808013539986401e-9,-1.8758115050261835e-4,-4.025292234742e-5,-7.822655543413694e-9,-1.872668184883031e-4,-4.02846843903453e-5,-7.832609350063291e-9,-1.869421745375567e-4,-4.024036343886389e-5,-7.835668960723405e-9,-1.866405011096358e-4,-4.012421563344865e-5,-7.831233109466725e-9,-1.8638746606769327e-4,-3.9953517066443375e-5,-7.820209997762073e-9,-1.8619833336478678e-4,-3.9753447846682424E-05,-7.804705559277455e-9,-1.8607713456172942e-4,-3.955211791223761e-5,-7.787528077260694e-9,-1.8601733956143633e-4,-3.937609305312275e-5,-7.771594675631029e-9,-1.8600372362801028e-4,-3.924671808006975e-5,-7.759377516311174e-9,-1.860151033940145e-4,-3.9177490549839045e-5,-7.752521038826082e-9,-1.86027579535179e-4,-3.917265795237302e-5,-7.751697825195558e-9,-1.8601784500762417e-4,-3.922712275877602e-5,-7.756683939980297e-9,-1.859660991240961e-4,-3.932748873083235e-5,-7.76655338904938e-9,-1.858583415306685e-4,-3.945386020008228e-5,-7.779863803220138e-9,-1.856880765199331e-4,-3.9582104032858643e-5,-7.794764745634513e-9,-1.8545751111847034e-4,-3.968648336286518e-5,-7.80905273811186e-9,-1.8517832726768282e-4,-3.974272194646584e-5,-7.820277095975539e-9,-1.8487191715710737e-4,-3.973182286832981e-5,-7.826043324454552e-9,-1.84568326062585e-4,-3.964498003485806e-5,-7.824607063924266e-9,-1.8430252736954805e-4,-3.948909619720772e-5,-7.81567723225054e-9,-1.841068015813026e-4,-3.9290916557531185e-5,-7.801120265142914e-9,-1.8399941650295114e-4,-3.9096168023688346e-5,-7.785080204503404e-9,-1.8397315757144196e-4,-3.8959732030985414e-5,-7.773061430941858e-9,-1.8399121969710352e-4,-3.892667494260442e-5,-7.769999153806498e-9,-1.8399720413110593e-4,-3.9012062532908605e-5,-7.778165646339316e-9,-1.8393709799280938e-4,-3.919247414624714e-5,-7.796192327999907e-9,-1.837809253347292e-4,-3.94159913142451e-5,-7.81983562463752e-9,-1.835314504140859e-4,-3.9624174692404916e-5,-7.843866044999501e-9,-1.832175926465497e-4,-3.9772376929694886e-5,-7.863852973816922e-9,-0.00018288007799367867,-3.983939802399363e-5,-7.877101234873762e-9,-1.825581525567214e-4,-3.9826609012344015e-5,-7.88278698428171e-9,-1.8228153953364634e-4,-3.975151493070294e-5,-7.881673076367993e-9,-1.8206747389102235e-4,-3.96403257759107e-5,-7.87567869457065e-9,-1.8192093438847728e-4,-3.952183195728649e-5,-7.867403264403688e-9,-1.818363144226791e-4,-3.94230088792691e-5,-7.859627774104685e-9,-1.8179960057993597e-4,-3.9365938879669173e-5,-7.854836651382487e-9,-1.817908037429815e-4,-3.9365650403408574e-5,-7.85483970570868e-9,-1.817866154295425e-4,-3.9428705477013426e-5,-7.860566324909944e-9,-1.81763290141203e-4,-3.955254076382139e-5,-7.872043997922005e-9,-1.8169966125836646e-4,-3.9725745338659054e-5,-7.888521312020506e-9,-1.8157997375724025e-4,-3.992943179925509e-5,-7.908654800013727e-9,-1.8139615201193202e-4,-4.01395859443014e-5,-7.930677800847704e-9,-1.8114926843234067e-4,-4.0330149429537525e-5,-7.952524911278175e-9,-1.808500494869329e-4,-4.047662276442048e-5,-7.971962158343955e-9,-1.8051827933978514e-4,-4.055992560857808e-5,-7.986810256067089e-9,-1.8018101316444614e-4,-4.0570277674346596e-5,-7.995336625795394e-9,-1.7986930754112723e-4,-4.0510916503467394e-5,-7.996822725172099e-9,-1.796128754203871e-4,-4.0400967753350356e-5,-7.992167447243349e-9,-1.7943243126465743e-4,-4.027577035424067e-5,-7.984224841668468e-9,-1.793308527151646e-4,-4.0182267013651894e-5,-7.97751603843064e-9,-1.7928650189256697e-4,-4.016762654034507e-5,-7.977085620844553e-9,-1.7925412028238575e-4,-4.026237728195528e-5,-7.986681974367066e-9,-1.791774416147169e-4,-4.046502137035069e-5,-8.007050548514257e-9,-1.79010578141659e-4,-4.07384889308924e-5,-8.03541534862946e-9,-1.7873692411944845e-4,-4.102346717380981e-5,-8.066621496285543e-9,-1.783741420058078e-4,-4.1261830836882335e-5,-8.095249938080533e-9,-1.7796361074475225e-4,-4.1416463164230464e-5,-8.117421582789139e-9,-1.7755290410782594e-4,-4.1478368578888085e-5,-8.131520449449486e-9,-1.7718135033389617e-4,-4.146198733197798e-5,-8.13797055610707e-9,-1.768730990346715e-4,-4.139529321745453e-5,-8.138602365296292e-9,-1.766365818208645e-4,-4.131042648440153e-5,-8.135996394797593e-9,-1.7646729539195152e-4,-4.123728457209718e-5,-8.132931548149722e-9,-1.7635140912427015e-4,-4.119998363428822e-5,-8.131940782911007e-9,-1.7626901592075078e-4,-4.1215139264067615e-5,-8.13497319552361e-9,-1.7619688175239353e-4,-4.129104627639256e-5,-8.143187102834443e-9,-1.7611095329391106e-4,-4.142731358893801e-5,-8.156888519239014e-9,-1.7598889716912629e-4,-4.1614887437690714e-5,-8.17558928584182e-9,-1.7581281192462515e-4,-4.183670829192403e-5,-8.198133122013413e-9,-1.7557194116890116e-4,-4.206939570725801e-5,-8.222846596370708e-9,-1.7526489185315834e-4,-4.2286145337228534e-5,-8.247693685378518e-9,-1.749007892130791e-4,-4.246067239676419e-5,-8.27045287578726e-9,-1.7449889291473196e-4,-4.257177890837406e-5,-8.288966601271894e-9,-1.7408636134491067e-4,-4.260785569445014e-5,-8.301502622549816e-9,-1.7369417612683185e-4,-4.257044116629862e-5,-8.307207425135431e-9,-1.733515749373912e-4,-4.247603925671317e-5,-8.306560538240727e-9,-1.7307951561946385e-4,-4.235546258407321e-5,-8.301660768772593e-9,-1.7288404300892215e-4,-4.224980670333177e-5,-8.296116391034056e-9,-1.7275126742316764e-4,-4.220232082429011e-5,-8.29435675977847e-9,-1.7264662508130276e-4,-4.2246603872407674e-5,-8.300377709365537e-9,-1.7252121501086634e-4,-4.239390927424923e-5,-8.316260399484159e-9,-1.723259194563172e-4,-4.262512746453453e-5,-8.341125038747223e-9,-1.7202921853819408e-4,-4.289359303196469e-5,-8.371205255110296e-9,-1.7163005621497463e-4,-4.314027956941037e-5,-8.401196120311941e-9,-1.7115808212438073e-4,-4.3314891182245837e-5,-8.426208336859534e-9,-1.706611339045414e-4,-4.3391899781138715e-5,-8.4432830383759e-9,-1.701876762651756e-4,-4.3374419715413495e-5,-8.4518562411058e-9,-1.6977323193821857e-4,-4.328714577136297e-5,-8.4533209117178e-9,-1.6943492968409378e-4,-4.316484300779904e-5,-8.450215049832509e-9,-1.691728141266524e-4,-4.304229490465962e-5,-8.445454567334958e-9,-1.689743734967421e-4,-4.294814563749508e-5,-8.441762371783732e-9,-1.6881942342299218e-4,-4.2902261156559144e-5,-8.441296223429344e-9,-1.6868404487941965e-4,-4.291519214458628e-5,-8.445444774098598e-9,-1.6854347563705814e-4,-4.2988495594045744e-5,-8.454766529152133e-9,-1.6837439851704656e-4,-4.3115257163194266e-5,-8.469036389597806e-9,-1.681571293442517e-4,-4.3280710287122344e-5,-8.487346444855007e-9,-1.6787800682957013e-4,-4.3463272785180736e-5,-8.508217625345404e-9,-1.675319055511752e-4,-4.363653952219832e-5,-8.529718093993882e-9,-1.6712433065999726e-4,-4.3772654109465174e-5,-8.549625270960761e-9,-1.6667221550076703e-4,-4.3847053130506195e-5,-8.565688893545171e-9,-1.6620251090174813e-4,-4.384394863589244e-5,-8.576022891083493e-9,-1.6574805161057994e-4,-4.3761243185843136e-5,-8.57958137502147e-9,-1.653410166729793e-4,-4.361321227414499e-5,-8.57659196538238e-9,-1.6500526069332353e-4,-4.3429595920686075e-5,-8.568780938240553e-9,-1.6474941938175833e-4,-4.325061380526027e-5,-8.559242374508827e-9,-1.6456278474184848e-4,-4.311845658282386e-5,-8.551872091484495e-9,-1.6441558827007797e-4,-4.306679435913246e-5,-8.55041163875152e-9,-1.6426459590353389e-4,-4.31107428021797e-5,-8.55731514316368e-9,-1.6406370565747632e-4,-4.324040567689213e-5,-8.572814975918328e-9,-1.6377738091422734e-4,-4.3421136814201817e-5,-8.594619277300757e-9,-1.6339259528422065e-4,-4.360218549923664e-5,-8.618509053213847e-9,-1.6292403742707357e-4,-4.3731933663244515e-5,-8.639692356752142e-9,-1.6240945516230828e-4,-4.3773994492029846e-5,-8.654343911008955e-9,-1.618968607756375e-4,-4.371721460881521e-5,-8.660647603934844e-9,-1.614295836691662e-4,-4.357579691594396e-5,-8.658990171403235e-9,-1.6103554540079272e-4,-4.338116258064244e-5,-8.65143750147207e-9,-1.6072371734170566e-4,-4.317072694826411e-5,-8.640899300411265e-9,-1.60486597377181e-4,-4.2978486922922624e-5,-8.630346264051817e-9,-1.6030553083480994e-4,-4.28295955015562e-5,-8.622255741822829e-9,-1.6015613527411944e-4,-4.2738546072660895e-5,-8.618310231123223e-9,-1.6001252941236853e-4,-4.270953342717434e-5,-8.619310983523769e-9,-1.5985023392522713e-4,-4.27376696865566e-5,-8.62524258194941e-9,-1.5964820616548375e-4,-4.281026269130828e-5,-8.635407427994393e-9,-1.5939063606626693e-4,-4.290797545834162e-5,-8.648555381100611e-9,-1.5906893911632526e-4,-4.300622619989431e-5,-8.662980381924239e-9,-1.586839320425307e-4,-4.307745905419132e-5,-8.6766176574788e-9,-1.5824763893893554e-4,-4.309485149551601e-5,-8.687224944489166e-9,-1.577836553301402e-4,-4.303761508032331e-5,-8.692728743322592e-9,-1.5732473003351639e-4,-4.2897150815443866e-5,-8.691735505534104e-9,-1.5690673041701025e-4,-4.2682099455994495e-5,-8.684069583127032e-9,-1.5655967783061677e-4,-4.241963218334136e-5,-8.671100768675983e-9,-1.5629842252569848e-4,-4.215106331379977e-5,-8.65564776892293e-9,-1.5611654367897435e-4,-4.1922027222526855e-5,-8.641393519477788e-9,-1.5598634365727104e-4,-4.1769990723229766e-5,-8.631943434242865e-9,-1.558655337576891e-4,-4.171332468953909e-5,-8.62980875112357e-9,-1.55708599326998e-4,-4.1745676230751626e-5,-8.635639653747643e-9,-1.5547926756793228e-4,-4.183738871643539e-5,-8.64796410233513e-9,-1.5516040876164026e-4,-4.194344529267842e-5,-8.663544317198107e-9,-1.5475857077794318e-4,-4.2015642345345564e-5,-8.678275332417251e-9,-1.5430178219828054e-4,-4.2015487508945786e-5,-8.688346657903147e-9,-1.538312653883322e-4,-4.1923888974596855e-5,-8.691272266061803e-9,-1.5338985144061818e-4,-4.174464729428951e-5,-8.686443715723425e-9,-1.5301108912570144e-4,-4.150107912857046e-5,-8.675074640975934e-9,-1.5271247020407983e-4,-4.1227745509928506e-5,-8.659650972450587e-9,-1.5249412865362623e-4,-4.096082102643691e-5,-8.643154944543995e-9,-1.5234202142190386e-4,-4.0730361657362306e-5,-8.628341074666747e-9,-1.522332666590427e-4,-4.0556036818412694e-5,-8.617240877586801e-9,-1.5214146355814283e-4,-4.044607832465574e-5,-8.610948820189256e-9,-1.5204082770238207e-4,-4.0398276306418136e-5,-8.609649713449356e-9,-1.5190894966737008e-4,-4.040182404940597e-5,-8.612791693953891e-9,-1.5172855998777816e-4,-4.04392073340307e-5,-8.619289651721801e-9,-1.5148890221367985e-4,-4.048788673301634e-5,-8.627671304566296e-9,-1.511871960678653e-4,-4.052207249406931e-5,-8.636154913727928e-9,-1.5083025434630082e-4,-4.051521495503619e-5,-8.642725787473477e-9,-1.5043574158394175e-4,-4.044383852156764e-5,-8.645327734018624e-9,-1.500319353466808e-4,-4.029297377626192e-5,-8.642261093560134e-9,-1.496544166579292e-4,-4.006242686937451e-5,-8.632759521112276e-9,-1.4933857066749907e-4,-3.9771500609913104e-5,-8.61753525645397e-9,-1.4910878327908136e-4,-3.9458613965874134e-5,-8.598961074703302e-9,-1.4896817540041468e-4,-3.9173255620837376e-5,-8.580634729706417e-9,-1.4889434793359147e-4,-3.896143953895252e-5,-8.566369717397555e-9,-1.488446779231985e-4,-3.885027635490195e-5,-8.558992598500318e-9,-1.4876971971684565e-4,-3.883878985692342e-5,-8.559461170923111e-9,-1.4862882605840358e-4,-3.889897430693147e-5,-8.566637964807312e-9,-1.484015496846831e-4,-3.8985699273179814e-5,-8.577719545041904e-9,-1.4809146958670756e-4,-3.9050500471712874e-5,-8.589075917670951e-9,-1.4772283139077166e-4,-3.90541832810773e-5,-8.597200861671296e-9,-1.4733252302452735e-4,-3.8975093804996464e-5,-8.599531021666814e-9,-1.46960319709348e-4,-3.8811988524448995e-5,-8.594969943036304e-9,-1.4663989849332713e-4,-3.8581911562734315e-5,-8.58402541962936e-9,-1.4639243737691714e-4,-3.831439622032589e-5,-8.568556760394407e-9,-1.4622381432699978e-4,-3.8043832331238845e-5,-8.551221326080342e-9,-1.4612546696149864e-4,-3.780203085357788e-5,-8.534793996272362e-9,-1.4607800835754142e-4,-3.761267871861787e-5,-8.521560570514165e-9,-1.46056126596556e-4,-3.748848840769632e-5,-8.512936995642796e-9,-1.4603336462438332e-4,-3.743087337648366e-5,-8.509368863912567e-9,-1.4598588657925202e-4,-3.743138625583485e-5,-8.510465027645555e-9,-1.4589496353338089e-4,-3.747399290628529e-5,-8.515247763091069e-9,-1.4574843347403674e-4,-3.753744263121957e-5,-8.522385868843517e-9,-1.4554162934537264e-4,-3.759745129656199e-5,-8.530332304446479e-9,-1.4527818133022795e-4,-3.7628889350479104e-5,-8.537375532161534e-9,-1.4497079464529807e-4,-3.76084521534279e-5,-8.541699439939246e-9,-1.446416124057033e-4,-3.751836753687077e-5,-8.541581339326527e-9,-1.4432111704455668e-4,-3.7351398285757994e-5,-8.535812444372269e-9,-1.4404404714688575e-4,-3.711638518574359e-5,-8.524282605408122e-9,-1.438412079624837e-4,-3.684187866182322e-5,-8.508477097627533e-9,-1.4372811461076546e-4,-3.657397293866363e-5,-8.491503673689153e-9,-1.436949746655447e-4,-3.636532952138359e-5,-8.477371791217123e-9,-1.437049148338037e-4,-3.625715011489158e-5,-8.469647157873269e-9,-1.4370460041685984e-4,-3.626225419817731e-5,-8.470096677118393e-9,-1.436435657655829e-4,-3.6359182629031623e-5,-8.478059693349249e-9,-1.4349217679652826e-4,-3.650097828056397e-5,-8.49083875172551e-9,-1.4324944734727836e-4,-3.663301747612782e-5,-8.50476357027434e-9,-1.4293924274250757e-4,-3.6710244446883646e-5,-8.516318183217591e-9,-1.42599606440927e-4,-3.670734481993864e-5,-8.522934387042323e-9,-1.4227107692698355e-4,-3.66208983276144e-5,-8.523380609554418e-9,-1.4198762087161575e-4,-3.646586091026803e-5,-8.517827359725516e-9,-1.4177127123896665e-4,-3.626931158012475e-5,-8.507668428407443e-9,-1.4163010445375599e-4,-3.606360234221836e-5,-8.495144285064709e-9,-1.4155881398565556e-4,-3.588006957388633e-5,-8.482821921176052e-9,-1.4154122929864088e-4,-3.574396664003745e-5,-8.473039059830415e-9,-1.4155410250967632e-4,-3.5671120527783085e-5,-8.467454781925923e-9,-1.4157137341078065e-4,-3.5666522461359366e-5,-8.46681890030178e-9,-1.4156819516112225e-4,-3.572468450852716e-5,-8.4709875707388e-9,-1.4152418460917606e-4,-3.58313730753767e-5,-8.47912807725831e-9,-1.4142558873947818e-4,-3.59661705458511e-5,-8.489992557926502e-9,-1.412664184643966e-4,-3.6105261696455e-5,-8.502137383045136e-9,-1.4104888166358994e-4,-3.6224110895191465e-5,-8.514032189748423e-9,-1.4078340386514088e-4,-3.630008132933925e-5,-8.524097794432883e-9,-1.4048831120426743e-4,-3.6315244359799485e-5,-8.530777751256682e-9,-1.4018893987105985e-4,-3.6259700669489686e-5,-8.532761075544734e-9,-1.399154045802046e-4,-3.613554770648095e-5,-8.529406358796928e-9,-1.396978493880879e-4,-3.5960758369385744e-5,-8.5212719609298e-9,-1.395584274220083e-4,-3.5770777754258144e-5,-8.510484614118273e-9,-1.395010799090941e-4,-3.5614419533547606e-5,-8.500584815712752e-9,-1.3950347955379841e-4,-3.554134224026499e-5,-8.495600252331792e-9,-1.395181326667312e-4,-3.5583057711782186e-5,-8.49852886633527e-9,-1.3948692048425989e-4,-3.573661667274257e-5,-8.509976577861838e-9,-1.3936409233349114e-4,-3.596248146847602e-5,-8.52783178092342e-9,-1.3913464178440764e-4,-3.6200002121230084e-5,-8.548219699136488e-9,-1.3881747770678196e-4,-3.6391341144876804e-5,-8.567072309384218e-9,-1.384540237025143e-4,-3.650005380239695e-5,-8.581375137160207e-9,-1.380914704582618e-4,-3.6517145395985524e-5,-8.589669620504838e-9,-1.3776939627770373e-4,-3.645667302158028e-5,-8.591982763540148e-9,-1.375129529417687e-4,-3.634680402050186e-5,-8.589508759325445e-9,-1.373315794560991e-4,-3.622095854655851e-5,-8.584220023840957e-9,-1.3722091216789167e-4,-3.61110737959683e-5,-8.578448656336925e-9,-1.3716598999432205e-4,-3.6043161150447865e-5,-8.574449379800085e-9,-1.37144819913883e-4,-3.6034601772228566e-5,-8.573995788120039e-9,-1.3713202193536196e-4,-3.60927847497726e-5,-8.578098184526851e-9,-1.3710237308793484e-4,-3.621495858814332e-5,-8.586914569799196e-9,-1.3703402980724396e-4,-3.6389181641333254e-5,-8.5998516774355e-9,-1.36911205202354e-4,-3.65962542961265e-5,-8.615789199981454e-9,-1.3672602214730465e-4,-3.68124573584491e-5,-8.633327431858329e-9,-1.36479349089764e-4,-3.701271677512592e-5,-8.650970819822634e-9,-1.3618068653054776e-4,-3.717379627140313e-5,-8.667222550115315e-9,-1.358472662707308e-4,-3.7277344343605105e-5,-8.680647089426607e-9,-1.3550242612119607e-4,-3.731274903926245e-5,-8.68999424871703e-9,-1.3517320152061808e-4,-3.727978006702851e-5,-8.694459140313209e-9,-1.3488680793789882e-4,-3.719092897384664e-5,-8.694073713436727e-9,-1.3466544021457864e-4,-3.707279073129639e-5,-8.69010051987593e-9,-1.3451925275556113e-4,-3.696481485133304e-5,-8.685177236944263e-9,-1.344388658671642e-4,-3.69131046298267e-5,-8.682934876706395e-9,-1.3439108416693466e-4,-3.695778715724225e-5,-8.68695839392729e-9,-1.3432331140892352e-4,-3.7116200157038535e-5,-8.699334814541392e-9,-1.3417981211901297e-4,-3.737010340084863e-5,-8.71951455375979e-9,-1.339246580951755e-4,-3.7667420214442775e-5,-8.744316749020727e-9,-1.3355816900488716e-4,-3.7941435370631326e-5,-8.769244026211392e-9,-1.3311593340372153e-4,-3.813725721253883e-5,-8.79029609068621e-9,-1.3265197371800877e-4,-3.8229929052285945e-5,-8.80518898519348e-9,-1.3221793913426716e-4,-3.822643977336777e-5,-8.813555366407018e-9,-1.318492290963614e-4,-3.8155740932226004e-5,-8.816480101901048e-9,-1.3156091565529496e-4,-3.8055615871408505e-5,-8.815891247203971e-9,-1.3135036452187486e-4,-3.796239043644523e-5,-8.814051427765528e-9,-1.31202438800492e-4,-3.7905049072083586e-5,-8.813160873514698e-9,-1.3109463784149872e-4,-3.79028210263575e-5,-8.81503385420893e-9,-1.3100122611687848e-4,-3.796469387651649e-5,-8.820852830416448e-9,-1.3089648863076503e-4,-3.80897908046812e-5,-8.83104051118581e-9,-1.3075748536931842e-4,-3.826825886682798e-5,-8.84527997381368e-9,-1.3056648321026467e-4,-3.848267424904795e-5,-8.862659526172724e-9,-1.3031305885508222e-4,-3.871009371470224e-5,-8.881878607082005e-9,-1.2999564462678402e-4,-3.8924886973358905e-5,-8.90144922639146e-9,-1.296221126551315e-4,-3.9102224081252054e-5,-8.919852317394064e-9,-1.292091137554164e-4,-3.9221787764163894e-5,-8.935653170963314e-9,-1.287801342980387e-4,-3.9271231345139034e-5,-8.947626178113364e-9,-1.2836237102655372e-4,-3.924893370147562e-5,-8.954946573809908e-9,-1.2798264289840097e-4,-3.916561004732102e-5,-8.957459750970044e-9,-1.2766262594780724e-4,-3.9044431207776e-5,-8.955969094344736e-9,-1.2741366297480022e-4,-3.891923161696911e-5,-8.952404162384802e-9,-1.2723168997357461e-4,-3.883000967390067e-5,-8.949679509496966e-9,-1.27093748029005e-4,-3.881487829910734e-5,-8.951097831921052e-9,-1.2695870357679422e-4,-3.8898685950468335e-5,-8.959323326278861e-9,-1.267751555869125e-4,-3.908106724078372e-5,-8.975233990146882e-9,-1.2649729890266872e-4,-3.933002315131596e-5,-8.997238422616873e-9,-1.2610380646318407e-4,-3.958793924368254e-5,-9.021623338742478e-9,-1.2560933231630603e-4,-3.979117636916569e-5,-9.043949542052622e-9,-1.250601064281325e-4,-3.989428803618717e-5,-9.060747657363913e-9,-1.2451535807132656e-4,-3.988519479442612e-5,-9.070550347589108e-9,-1.2402584828578883e-4,-3.978414776435241e-5,-9.073886011159246e-9,-1.236205981940215e-4,-3.963065544738354e-5,-9.07260038223968e-9,-1.2330492479386814e-4,-3.946804731107443e-5,-9.06907791995821e-9,-1.2306592379153069e-4,-3.9332584341514184e-5,-9.065663183276685e-9,-1.228800828847495e-4,-3.9248605036294036e-5,-9.064298093394783e-9,-1.2271974809462355e-4,-3.9227959023930204e-5,-9.066308761174449e-9,-1.2255751932836511e-4,-3.9271422800291845e-5,-9.07230522767062e-9,-1.2236902385258616e-4,-3.937056825807537e-5,-9.082190481665708e-9,-1.2213485314795255e-4,-3.950953825587356e-5,-9.0952670217167e-9,-1.2184219766310128e-4,-3.966680598205627e-5,-9.110401741288104e-9,-1.2148636162885278e-4,-3.981726696521993e-5,-9.12619905571748e-9,-1.2107197250418744e-4,-3.9935062083796264e-5,-9.141156188037495e-9,-1.2061333772280514e-4,-3.9997258003077964e-5,-9.153805898123638e-9,-1.2013331124746263e-4,-3.998800386203117e-5,-9.162873756252375e-9,-1.1966030668005657e-4,-3.990236796499482e-5,-9.167476141008514e-9,-1.1922355711720542e-4,-3.9748848224879454e-5,-9.16735668291749e-9,-1.1884727409519039e-4,-3.9549573910041856e-5,-9.163106709226148e-9,-1.1854484500946807e-4,-3.9337626281964046e-5,-9.156273357353645e-9,-1.1831435745928925e-4,-3.9151554868869843e-5,-9.149247534449742e-9,-1.1813661119487769e-4,-3.9027669333984225e-5,-9.144851147026704e-9,-1.1797667960421902e-4,-3.899110483450793e-5,-9.145628060950681e-9,-1.1778991790734548e-4,-3.904737063700308e-5,-9.15299150810211e-9,-1.175325624741728e-4,-3.9177091689939015e-5,-9.166537396277783e-9,-1.1717523308225653e-4,-3.933731131848976e-5,-9.183898816605155e-9,-1.1671489921126038e-4,-3.947171279421601e-5,-9.20137620436505e-9,-1.1617906373001206e-4,-3.952820645458404e-5,-9.215188158288917e-9,-1.1561807446250038e-4,-3.947694802803824e-5,-9.222771080593783e-9,-1.1508795403832579e-4,-3.931977427169145e-5,-9.223487247363517e-9,-1.1463218392673738e-4,-3.9086539305895255e-5,-9.21849929028679e-9,-1.142709592978943e-4,-3.8821745934336895e-5,-9.210076040428456e-9,-1.1400074179654687e-4,-3.856946273893001e-5,-9.20078618611514e-9,-1.1380094799943816e-4,-3.836294492571193e-5,-9.192886631995141e-9,-1.1364261812623197e-4,-3.822069459714716e-5,-9.1879765359956e-9,-1.1349551541127026e-4,-3.814719957123449e-5,-9.186871306246775e-9,-1.1333258761490281e-4,-3.8135736535814055e-5,-9.189633338269424e-9,-1.1313230069867286e-4,-3.817141008984336e-5,-9.195706259883106e-9,-1.1287982382393343e-4,-3.823369291997683e-5,-9.204097657482591e-9,-1.1256786310513337e-4,-3.829851605574717e-5,-9.213553802888529e-9,-1.1219751803139118e-4,-3.8340376762559447e-5,-9.22269414066259e-9,-1.1177904223869293e-4,-3.833503671167999e-5,-9.230116686601745e-9,-1.1133191698447232e-4,-3.826315103578705e-5,-9.234523255112086e-9,-1.1088335748373442e-4,-3.811461096830071e-5,-9.234910233392347e-9,-1.1046449079987319e-4,-3.789262697562118e-5,-9.230826308386785e-9,-1.1010413601670693e-4,-3.7615910350771354e-5,-9.222627139411862e-9,-1.0982130517158393e-4,-3.731722308065027e-5,-9.21160402770721e-9,-1.0961868889767661e-4,-3.703748088216355e-5,-9.199872312326249e-9,-1.0947969429209346e-4,-3.681630820680492e-5,-9.189976537874282e-9,-1.0937067838856088e-4,-3.668157414423921e-5,-9.184272074658242e-9,-1.0924829447019257e-4,-3.664109554625678e-5,-9.18424056176897e-9,-1.0907020550257687e-4,-3.667913877536005e-5,-9.189954915184103e-9,-1.0880642515705916e-4,-3.6759033088402764e-5,-9.199907267392656e-9,-1.0844824947981108e-4,-3.683171835853091e-5,-9.211326762762983e-9,-1.0801195079731945e-4,-3.684853152381634e-5,-9.220949393187014e-9,-1.0753533107081977e-4,-3.6774884340293415e-5,-9.225997564122934e-9,-1.0706735543311275e-4,-3.6600269285523224e-5,-9.22499909034669e-9,-1.0665405844386353e-4,-3.634060345263345e-5,-9.218128116932532e-9,-1.0632599695639417e-4,-3.6031911809698865e-5,-9.206981038369621e-9,-1.0609189824736788e-4,-3.5718319405997615e-5,-9.19395506438557e-9,-1.0593992002165717e-4,-3.543962353913638e-5,-9.181522987160879e-9,-1.0584432970216088e-4,-3.5222894444418944e-5,-9.171654265312317e-9,-1.0577377509585269e-4,-3.5079615353876484e-5,-9.165501882736301e-9,-1.0569811427307857e-4,-3.500714701067259e-5,-9.163352800650679e-9,-1.0559264518508524e-4,-3.499226206662488e-5,-9.164771801813917e-9,-1.0544004786505433e-4,-3.5014920510423576e-5,-9.16883982493074e-9,-1.0523095671395252e-4,-3.5051391464275926e-5,-9.174389778026609e-9,-1.0496405295401565e-4,-3.507665669286638e-5,-9.180172150801203e-9,-1.0464618835727268e-4,-3.506655725701059e-5,-9.184939032839345e-9,-1.0429252092118758e-4,-3.500030193581135e-5,-9.187495988674884e-9,-1.039261276946598e-4,-3.48637823947789e-5,-9.186800523449334e-9,-1.0357615793353864e-4,-3.46536541858101e-5,-9.182170455832e-9,-1.0327350441689744e-4,-3.4381246691956354e-5,-9.173580720955574e-9,-1.0304364939716516e-4,-3.4074253186413085e-5,-9.161923230549191e-9,-1.0289802766204464e-4,-3.3773697803369534e-5,-9.149039646343281e-9,-1.0282725778280255e-4,-3.3524929232600696e-5,-9.137394421723031e-9,-1.0280029662432293e-4,-3.336441855594974e-5,-9.129418606410994e-9,-1.0277162008556858e-4,-3.3307298589755e-5,-9.126750143428798e-9,-1.0269452672034878e-4,-3.334132380659976e-5,-9.129679824022376e-9,-1.0253530901109662e-4,-3.3430128766657056e-5,-9.137028969170211e-9,-1.0228281327026914e-4,-3.352418168582912e-5,-9.146483951023313e-9,-1.0195058478501845e-4,-3.357486167811767e-5,-9.155243273725392e-9,-1.0157200536431759e-4,-3.354696552794696e-5,-9.160762004820197e-9,-1.0119077576295845e-4,-3.3426523116505044e-5,-9.161389983981338e-9,-1.0084972538708518e-4,-3.322258471680729e-5,-9.1567428994038e-9,-1.0058085340582454e-4,-3.296319855077416e-5,-9.1477233287177e-9,-1.0039895151362752e-4,-3.268715204906611e-5,-9.13620386476633e-9,-1.0030009479870362e-4,-3.243403248359135e-5,-9.124482475916777e-9,-1.0026481761500761e-4,-3.2235448634192776e-5,-9.114685797381227e-9,-1.002643617789796e-4,-3.210959204158094e-5,-9.108299298278605e-9,-1.0026767382911762e-4,-3.205986487873324e-5,-9.105941746310106e-9,-1.0024717983614368e-4,-3.207681406252085e-5,-9.107401083971613e-9,-1.0018239318013028e-4,-3.214184576455504e-5,-9.111860642617299e-9,-1.0006142614792553e-4,-3.223125875718116e-5,-9.118191582072067e-9,-9.988108258667136e-5,-3.2319691729833556e-5,-9.1251948611398e-9,-9.964632646321523e-5,-3.238278403756544e-5,-9.131729422340635e-9,-9.936964829441685e-5,-3.239938756272473e-5,-9.136742201877834e-9,-9.907040628933112e-5,-3.2353857807257145e-5,-9.139278262243717e-9,-9.877374852922494e-5,-3.22388541842853e-5,-9.138569270716463e-9,-9.850827687016545e-5,-3.2058685656720396e-5,-9.13425646517205e-9,-9.830143939364078e-5,-3.1832365719454527e-5,-9.126703455871307e-9,-9.817223068137955e-5,-3.159432274657247e-5,-9.117234559865558e-9,-9.812252419680496e-5,-3.138997708142053e-5,-9.108071823699427e-9,-9.813089016549055e-5,-3.126452109365012e-5,-9.10182146027846e-9,-9.815412222958905e-5,-3.124710157480261e-5,-9.100604093125194e-9,-9.813914491830552e-5,-3.1337456387429606e-5,-9.105211374499513e-9,-9.804153498796248e-5,-3.150322611607172e-5,-9.11475449547984e-9,-9.784154686536156e-5,-3.1690737195221436e-5,-9.127000792101932e-9,-9.754967528636868e-5,-3.1843765894223964e-5,-9.139172281973027e-9,-9.720055366819144e-5,-3.192085559051927e-5,-9.148776150107598e-9,-9.684015327249356e-5,-3.1904655488520306e-5,-9.154172659673398e-9,-9.651257696551535e-5,-3.180236177111936e-5,-9.154822358487452e-9,-9.62504127431069e-5,-3.163996841124646e-5,-9.151274976782774e-9,-9.60698168291565e-5,-3.145374077091899e-5,-9.144961054288212e-9,-9.596984265486474e-5,-3.128151423757891e-5,-9.137828523893096e-9,-9.593497386265119e-5,-3.115537334164327e-5,-9.131885483864583e-9,-9.593976606922285e-5,-3.109656681303233e-5,-9.128751308860314e-9,-9.595447136657913e-5,-3.111310201829616e-5,-9.129337933414458e-9,-9.595049936624177e-5,-3.119999178987712e-5,-9.133745810921736e-9,-9.590477548725535e-5,-3.134160856925637e-5,-9.141380171958168e-9,-9.580246226255177e-5,-3.151529116825042e-5,-9.151211708597388e-9,-9.563797539391283e-5,-3.16952830703858e-5,-9.162060481302314e-9,-9.541467373049275e-5,-3.185625961327806e-5,-9.172796825714589e-9,-9.514380915860319e-5,-3.197615493895167e-5,-9.182419310694514e-9,-9.48431552537596e-5,-3.2038443093745316e-5,-9.190051974883061e-9,-9.453543133902659e-5,-3.2034182987011704e-5,-9.194952520053085e-9,-9.424633486772374e-5,-3.1964113362905855e-5,-9.19662086089252e-9,-9.400158823504068e-5,-3.18408340759899e-5,-9.195038235111904e-9,-9.382220633420554e-5,-3.169033305608827e-5,-9.19095818861579e-9,-9.371778135278529e-5,-3.155104568024974e-5,-9.186065400464665e-9,-9.367914980804929e-5,-3.1468046822899884e-5,-9.182785199579648e-9,-9.367412170350315e-5,-3.1480918711509026e-5,-9.183626205872267e-9,-9.365156347345576e-5,-3.160755715402989e-5,-9.19020294586336e-9,-9.355668865963729e-5,-3.183175941432533e-5,-9.202419571888166e-9,-9.335267713728581e-5,-3.210430056471749e-5,-9.218371347956345e-9,-9.303667906521569e-5,-3.236020861117679e-5,-9.235103819495216e-9,-9.264032211325917e-5,-3.2543385860012626e-5,-9.249755228307922e-9,-9.221548591093086e-5,-3.262483810785695e-5,-9.26041652356236e-9,-9.181507378196565e-5,-3.260698117914955e-5,-9.266413523353581e-9,-9.147845491400025e-5,-3.251632942914815e-5,-9.268166415699002e-9,-9.122520847559706e-5,-3.239154168921172e-5,-9.266889513425695e-9,-9.105564635912965e-5,-3.227244723700269e-5,-9.2642646836748e-9,-9.095498913811478e-5,-3.219240887699171e-5,-9.262101784399266e-9,-9.08987318910297e-5,-3.217406213098664e-5,-9.261994204243429e-9,-9.085793054099272e-5,-3.222762121230062e-5,-9.265019829464496e-9,-9.080392835417925e-5,-3.2351052738033134e-5,-9.271567916967034e-9,-9.071228168806134e-5,-3.253168391369461e-5,-9.28134185774094e-9,-9.056569168800201e-5,-3.2748874236925676e-5,-9.293522462109239e-9,-9.035578936575062e-5,-3.297739074658915e-5,-9.307015941925984e-9,-9.008365802729651e-5,-3.319108369388331e-5,-9.32068773621464e-9,-8.975916266917992e-5,-3.336636099032471e-5,-9.33350717957054e-9,-8.939940883763627e-5,-3.348509546284864e-5,-9.344592008056796e-9,-8.902663953210632e-5,-3.353691102753202e-5,-9.353211946825554e-9,-8.866569313938621e-5,-3.352090126483869e-5,-9.35883336145802e-9,-8.834103551839693e-5,-3.3446806313605515e-5,-9.361261938630803e-9,-8.807317448099914e-5,-3.333560303798455e-5,-9.360872293875294e-9,-8.787408489854848e-5,-3.321895898344246e-5,-9.35881896249169e-9,-8.774178162211213e-5,-3.313618048205553e-5,-9.357051719661311e-9,-8.765551941425548e-5,-3.312704407820512e-5,-9.357971217288903e-9,-8.75747733839315e-5,-3.3219976944643985e-5,-9.363691049098633e-9,-8.74461410016907e-5,-3.341812218722618e-5,-9.375114762347986e-9,-8.7220065678816e-5,-3.3690479945789706e-5,-9.391311854138805e-9,-8.687212463896635e-5,-3.397702246395055e-5,-9.409699673510456e-9,-8.641654285989432e-5,-3.420979174434094e-5,-9.427069578077248e-9,-8.590181922728967e-5,-3.433967242416912e-5,-9.440848661633535e-9,-8.539061620032401e-5,-3.435314501297649e-5,-9.44984340985916e-9,-8.493672097339013e-5,-3.4271269582614564e-5,-9.454233252297501e-9,-8.45709727893319e-5,-3.413584988272384e-5,-9.45513539359531e-9,-8.429907159057472e-5,-3.399315338192215e-5,-9.454135610822126e-9,-8.410710066635141e-5,-3.388222278476255e-5,-9.452932691116559e-9,-8.39694300761685e-5,-3.382927951155617e-5,-9.453065287658341e-9,-8.385576288840835e-5,-3.384661045247159e-5,-9.455682021020762e-9,-8.373632656338405e-5,-3.39337961074905e-5,-9.461372860972362e-9,-8.358545827544782e-5,-3.407987563331084e-5,-9.470111676055729e-9,-8.338408132706894e-5,-3.426590539557689e-5,-9.481331913003121e-9,-8.312136430352067e-5,-3.446778153328366e-5,-9.494105686910258e-9,-8.279564587432089e-5,-3.465932720987703e-5,-9.507355644814983e-9,-8.241450667287213e-5,-3.481564090403858e-5,-9.520030613693909e-9,-8.19937854235765e-5,-3.491646452503521e-5,-9.531207314372736e-9,-8.155553782746594e-5,-3.494912799250977e-5,-9.540129776878508e-9,-8.112514759519504e-5,-3.491073158250606e-5,-9.546243568285508e-9,-8.072780222779476e-5,-3.480934834136822e-5,-9.549283156140592e-9,-8.038456389393579e-5,-3.466401475530754e-5,-9.549426224657887e-9,-8.010831362600719e-5,-3.450333338545574e-5,-9.54746360191402e-9,-7.989980971585162e-5,-3.4362440274271346e-5,-9.544875278633311e-9,-7.974437782718713e-5,-3.427773727254322e-5,-9.543676237437192e-9,-7.961061805952735e-5,-3.427884237468908e-5,-9.545950110564333e-9,-7.945341861300056e-5,-3.437837958684637e-5,-9.553132576768602e-9,-7.922353858236074e-5,-3.456254513569184e-5,-9.56529984876067e-9,-7.888371631202135e-5,-3.478810345141471e-5,-9.580865713138687e-9,-7.842594949679023e-5,-3.499174125974583e-5,-9.597013547859506e-9,-7.787972052612896e-5,-3.5111823238104886e-5,-9.61077091176288e-9,-7.730339317992335e-5,-3.5112654366270275e-5,-9.620133730535203e-9,-7.676190727235558e-5,-3.4997103078953485e-5,-9.624598331243174e-9,-7.630368913524509e-5,-3.480106932702219e-5,-9.62496228087358e-9,-7.594864786183333e-5,-3.457584341541249e-5,-9.622755990773589e-9,-7.568955618661085e-5,-3.4369955647098174e-5,-9.619710536672963e-9,-7.550120699012476e-5,-3.4218070735318946e-5,-9.617407235355379e-9,-7.53506844299028e-5,-3.4137703834965904e-5,-9.617061902570326e-9,-7.520512620818642e-5,-3.4130887726558557e-5,-9.619389347609227e-9,-7.503635353608889e-5,-3.4187713250424024e-5,-9.624544759331411e-9,-7.482323554456231e-5,-3.4289930549698735e-5,-9.63216195796353e-9,-7.455284746952063e-5,-3.441408243113663e-5,-9.641484197830746e-9,-7.422104933606681e-5,-3.4534311144901265e-5,-9.651545196785234e-9,-7.383266982034839e-5,-3.4625139821498456e-5,-9.661340808730684e-9,-7.340115252227199e-5,-3.466447763315732e-5,-9.669951148188559e-9,-7.29472860281118e-5,-3.4636811794840895e-5,-9.676610258024069e-9,-7.249670181575391e-5,-3.453612755069931e-5,-9.680751536488109e-9,-7.207617225320659e-5,-3.436789907206864e-5,-9.682071150846721e-9,-7.170907254595313e-5,-3.414954611457939e-5,-9.680633872207702e-9,-7.141062395474628e-5,-3.39088790257861e-5,-9.676997430229804e-9,-7.118375946617258e-5,-3.3680346460547944e-5,-9.672282908069223e-9,-7.101650731517465e-5,-3.349931488623629e-5,-9.668098481187566e-9,-7.088172523947388e-5,-3.33948756399492e-5,-9.666247026220778e-9,-7.074007291564022e-5,-3.3381977619494795e-5,-9.668224096412342e-9,-7.054706001923604e-5,-3.345448175111133e-5,-9.674640120668145e-9,-7.026421186175586e-5,-3.358188659485631e-5,-9.68481262676929e-9,-6.987236648803186e-5,-3.371310919852034e-5,-9.69679586348801e-9,-6.938216497629712e-5,-3.3789366876241454e-5,-9.707962916374584e-9,-6.883511643281062e-5,-3.376368965928737e-5,-9.715940864866819e-9,-6.829161852117123e-5,-3.3618736578177726e-5,-9.719434092883315e-9,-6.781005922500603e-5,-3.337302815858778e-5,-9.718519685799377e-9,-6.742756648217968e-5,-3.307197650765509e-5,-9.714369050431293e-9,-6.715167109481134e-5,-3.276964162612763e-5,-9.70868572509175e-9,-6.696431540140377e-5,-3.251149483555875e-5,-9.703181489926008e-9,-6.683272014943683e-5,-3.23249804831107e-5,-9.699229967536756e-9,-6.672046595425307e-5,-3.221830593712131e-5,-9.69768646622021e-9,-6.659514882482948e-5,-3.218413792480631e-5,-9.69883261424372e-9,-6.643222102070501e-5,-3.2204715407059465e-5,-9.702422223220024e-9,-6.621623206383647e-5,-3.225639014403438e-5,-9.707811412099236e-9,-6.594084229704343e-5,-3.231307689206832e-5,-9.714134303646899e-9,-6.560847130759857e-5,-3.234892257240772e-5,-9.720473000120565e-9,-6.522984548096849e-5,-3.2340745725612146e-5,-9.725978398839142e-9,-6.482324202400488e-5,-3.227068092840828e-5,-9.72993539962299e-9,-6.441292964570893e-5,-3.212909927557402e-5,-9.731798587080863e-9,-6.402628163536215e-5,-3.1917364877182857e-5,-9.731239839313383e-9,-6.368937200887575e-5,-3.164953586182567e-5,-9.728232443086724e-9,-6.342148728367543e-5,-3.135192586641782e-5,-9.723155862069091e-9,-6.3229704409613e-5,-3.105968506127635e-5,-9.716864968224381e-9,-6.310518395759158e-5,-3.081035792541784e-5,-9.710646408580894e-9,-6.302274843342547e-5,-3.0635492967811876e-5,-9.706009068758345e-9,-6.294459210654977e-5,-3.055226083848084e-5,-9.704313675315504e-9,-6.282790628516361e-5,-3.0557342633427204e-5,-9.706329094269245e-9,-6.263513206345579e-5,-3.062513212686725e-5,-9.711875217337033e-9]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_9.json b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_9.json new file mode 100644 index 000000000..76c3a68e8 --- /dev/null +++ b/libs/cesium/1.111/Assets/IAU2006_XYS/IAU2006_XYS_9.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":9000,"numberOfSamples":1000,"samples":[-6.23446137633139e-5,-3.071164556992463e-5,-9.719731332151204e-9,-6.19586809157847e-5,-3.076438157665265e-5,-9.727914890125598e-9,-6.150587794551883e-5,-3.073654937098242e-5,-9.734280833128142e-9,-6.1034943329782044e-5,-3.060168191808949e-5,-9.737216476929997e-9,-6.0601038606681665e-5,-3.036287029042388e-5,-9.736134809126074e-9,-6.024888746053323e-5,-3.0051869736974383e-5,-9.731565682588457e-9,-5.999994090928063e-5,-2.971789522758825e-5,-9.724862066857019e-9,-5.9848834314815545e-5,-2.9411354882677176e-5,-9.71770907732456e-9,-5.976923198886019e-5,-2.916989718887004e-5,-9.711648469978378e-9,-5.972462316432335e-5,-2.9011586735457638e-5,-9.707751149758674e-9,-5.967870819510338e-5,-2.8935387308633597e-5,-9.70647628370283e-9,-5.9602228253192676e-5,-2.89259970676844e-5,-9.707695687073557e-9,-5.947591112549622e-5,-2.8959747148304846e-5,-9.710838540242717e-9,-5.929077173354268e-5,-2.9009608654381066e-5,-9.715094525623705e-9,-5.904719567985657e-5,-2.9048773862964067e-5,-9.71960852884578e-9,-5.8753773367436014e-5,-2.9053136374370507e-5,-9.72361187781754e-9,-5.842624685184096e-5,-2.9003338061866847e-5,-9.726475623750488e-9,-5.8086360356536405e-5,-2.8886966009567993e-5,-9.727714468149827e-9,-5.776002754298137e-5,-2.870105742876016e-5,-9.726995392498005e-9,-5.74741651198525e-5,-2.845449366073143e-5,-9.72419549652686e-9,-5.725183467800746e-5,-2.8169256139263426e-5,-9.71951151762819e-9,-5.7106100541113594e-5,-2.7879041181757347e-5,-9.713564114276547e-9,-5.7034227249689176e-5,-2.7623923778951554e-5,-9.707405962417725e-9,-5.7014849044397024e-5,-2.744114170465607e-5,-9.702361282140308e-9,-5.701050918052841e-5,-2.735425399096375e-5,-9.699698830847758e-9,-5.697609718243167e-5,-2.7364576162975244e-5,-9.700232368303819e-9,-5.6871038817050416e-5,-2.7448633497066595e-5,-9.704002376450864e-9,-5.667116781282969e-5,-2.7563221973356075e-5,-9.710182005555758e-9,-5.637617678776307e-5,-2.765667320675218e-5,-9.717264987992663e-9,-5.601027591624169e-5,-2.7682736375781414e-5,-9.723480590272698e-9,-5.561600483675091e-5,-2.7612936285683867e-5,-9.727297528384073e-9,-5.524303937361784e-5,-2.7443956618506687e-5,-9.727850312943274e-9,-5.493513840003189e-5,-2.7197955922928915e-5,-9.725154651913568e-9,-5.471906725691787e-5,-2.6915691607899557e-5,-9.72005407261872e-9,-5.4598911019501836e-5,-2.6644703453075705e-5,-9.713934027115233e-9,-5.455730383150816e-5,-2.64266189741069e-5,-9.708311206523093e-9,-5.4562420129529145e-5,-2.6287768574123053e-5,-9.704433569738843e-9,-5.457752704343605e-5,-2.623553492658023e-5,-9.703008653848694e-9,-5.456957532646678e-5,-2.6260220049275858e-5,-9.704121931504624e-9,-5.451464446828428e-5,-2.6340246599419492e-5,-9.707335422027123e-9,-5.439995050230707e-5,-2.6448131932234545e-5,-9.711898924726039e-9,-5.422339633670513e-5,-2.6555532499365036e-5,-9.716981565914689e-9,-5.399194066121386e-5,-2.663678226094542e-5,-9.721842938139277e-9,-5.37197431734721e-5,-2.667116151947731e-5,-9.725902670942154e-9,-5.342650643560834e-5,-2.6644534881516494e-5,-9.728727486336505e-9,-5.313587618209729e-5,-2.655097739679037e-5,-9.729995225631237e-9,-5.287334596399925e-5,-2.639462790136861e-5,-9.72950469114869e-9,-5.266297173036476e-5,-2.619143036945524e-5,-9.727266597271218e-9,-5.252243553464907e-5,-2.596971389861331e-5,-9.723645863256587e-9,-5.245681707745194e-5,-2.5767877042401753e-5,-9.719459836489783e-9,-5.245295661436816e-5,-2.562748717562385e-5,-9.715914975816248e-9,-5.247784135201871e-5,-2.558182145120203e-5,-9.714321344765071e-9,-5.248433005910525e-5,-2.5643167778965002e-5,-9.71565414605581e-9,-5.242443255043768e-5,-2.5794981125069657e-5,-9.720157774265109e-9,-5.2265507859568556e-5,-2.599424952537427e-5,-9.727205074415084e-9,-5.200192042456586e-5,-2.6184413784918434e-5,-9.735490249337039e-9,-5.165673914621095e-5,-2.6313264574752945e-5,-9.743443035999223e-9,-5.127351919687404e-5,-2.6348054742647138e-5,-9.749667801257827e-9,-5.0902725125982576e-5,-2.6282713166082426e-5,-9.75326720347049e-9,-5.0588284184408174e-5,-2.6136491038281e-5,-9.754009356253531e-9,-5.0357993370069754e-5,-2.5946393683606597e-5,-9.752342082004198e-9,-5.0219232993974796e-5,-2.5756667981670227e-5,-9.749262933352734e-9,-5.015982106504244e-5,-2.5608303159542794e-5,-9.746061951023208e-9,-5.0152906269271166e-5,-2.5530759317958693e-5,-9.743991748123502e-9,-5.016424167598713e-5,-2.5537314473559887e-5,-9.743957229389409e-9,-5.015987799753719e-5,-2.5624510658344092e-5,-9.746324283706057e-9,-5.011244865581866e-5,-2.5775123374663638e-5,-9.750904754883811e-9,-5.000492623338741e-5,-2.596321755352963e-5,-9.757101352467545e-9,-4.9831698223674514e-5,-2.6159651038122543e-5,-9.764134932390347e-9,-4.959756293540752e-5,-2.6336794409959954e-5,-9.77125471218565e-9,-4.9315586018946434e-5,-2.6471880876366733e-5,-9.777857341227311e-9,-4.900467765247903e-5,-2.6549048296052148e-5,-9.78350042703132e-9,-4.868733505302663e-5,-2.6560573645593127e-5,-9.787854781108205e-9,-4.8387507995782974e-5,-2.6507830841147043e-5,-9.790671063781774e-9,-4.812820015775109e-5,-2.640221991296037e-5,-9.791823659827242e-9,-4.792822925558667e-5,-2.626586053182433e-5,-9.791440657019166e-9,-4.7797688235235664e-5,-2.6131146731513124e-5,-9.790058210807481e-9,-4.7732434736905576e-5,-2.603750245204811e-5,-9.788680030956192e-9,-4.770949127982192e-5,-2.602362103765612e-5,-9.788622629016349e-9,-4.768699088683465e-5,-2.6115132800391774e-5,-9.791115783371455e-9,-4.7612514838547504e-5,-2.6311416798164514e-5,-9.796791594098938e-9,-4.744004786748611e-5,-2.6579162837951064e-5,-9.805340798551625e-9,-4.714894275327642e-5,-2.68596183979786e-5,-9.81558384504337e-9,-4.675409408145582e-5,-2.7088789244523173e-5,-9.82593563524379e-9,-4.63007016373858e-5,-2.7220538865820394e-5,-9.834966162719081e-9,-4.584698755933853e-5,-2.7240537539346205e-5,-9.841756608580806e-9,-4.544489497457328e-5,-2.716612358051693e-5,-9.845989371386469e-9,-4.512720869220526e-5,-2.7035870592725035e-5,-9.847894204339548e-9,-4.490350340869352e-5,-2.6895966227287968e-5,-9.848150476851382e-9,-4.4762813526265216e-5,-2.6788619054627426e-5,-9.847749002642056e-9,-4.467974944751262e-5,-2.6744535726717833e-5,-9.847788854326644e-9,-4.4621551529998665e-5,-2.67793858092927e-5,-9.849227199555758e-9,-4.4554711427458415e-5,-2.6893402551401513e-5,-9.852654250504786e-9,-4.445048423814215e-5,-2.7073346152810357e-5,-9.858177344922723e-9,-4.428881976659844e-5,-2.7296183901073322e-5,-9.865455416384905e-9,-4.406041691263042e-5,-2.753370714423536e-5,-9.873857188997167e-9,-4.376691930956634e-5,-2.7757247847319554e-5,-9.882664459772306e-9,-4.3419538053046194e-5,-2.7941805347373132e-5,-9.891234414250543e-9,-4.303660454191013e-5,-2.8069095603610774e-5,-9.899069051818642e-9,-4.264069174434751e-5,-2.8129368229640377e-5,-9.90579879900749e-9,-4.2255769073996823e-5,-2.8122238695490774e-5,-9.911139409555858e-9,-4.1904486407320275e-5,-2.8056896725693683e-5,-9.914892497705433e-9,-4.160543814119917e-5,-2.7951878164291356e-5,-9.9170275201943e-9,-4.137010911506443e-5,-2.783431847991674e-5,-9.917825281106567e-9,-4.119921521788755e-5,-2.7738086497587085e-5,-9.917998408072091e-9,-4.107878264055179e-5,-2.769954625238172e-5,-9.91867215364473e-9,-4.097763615938715e-5,-2.7749689768273665e-5,-9.921139370467895e-9,-4.0849404904229084e-5,-2.7902797854934692e-5,-9.926407792259145e-9,-4.0642441010064514e-5,-2.8145057541786642e-5,-9.934713814169385e-9,-4.031787237599612e-5,-2.8430538779043658e-5,-9.945298702787681e-9,-3.9868810330146976e-5,-2.8691908882654146e-5,-9.9566665170196e-9,-3.932833565054289e-5,-2.8864961803409028e-5,-9.967212572062042e-9,-3.875854394725441e-5,-2.891437192128338e-5,-9.975808367109482e-9,-3.822616913640833e-5,-2.8845330760606945e-5,-9.98201180056612e-9,-3.777943806979286e-5,-2.869613572190929e-5,-9.98594693625295e-9,-3.743725664498184e-5,-2.8519754654329504e-5,-9.98810862349428e-9,-3.719134397363045e-5,-2.8366020937962917e-5,-9.989234069973608e-9,-3.701525587842487e-5,-2.8270836040562245e-5,-9.99020103086058e-9,-3.6874340673262915e-5,-2.8252557552493445E-05,-9.991881928374356e-9,-3.6733633947777075e-5,-2.831302992680173e-5,-9.994958846882884e-9,-3.656313374093195e-5,-2.844073037686516e-5,-9.999766501751608e-9,-3.634100881655143e-5,-2.8614561011922926e-5,-1.000623541918002e-8,-3.605533964519792e-5,-2.8807801587885512e-5,-1.0013957531492734e-8,-3.570465334841229e-5,-2.8992079074828512e-5,-1.0022338457116705e-8,-3.529734816247884e-5,-2.914116709250595e-5,-1.0030762046344616e-8,-3.485006993645185e-5,-2.92343805861204e-5,-1.0038702615702036e-8,-3.4385142229079815e-5,-2.9259238226273796e-5,-1.0045757091094494e-8,-3.3927359255493513e-5,-2.9213049460563632e-5,-1.0051621058011619e-8,-3.350058407226353e-5,-2.9103332940466208e-5,-1.0056066702504657e-8,-3.3124457063630464e-5,-2.8947189972084985e-5,-1.0058976990550987e-8,-3.2811366323358286e-5,-2.8769735723801098e-5,-1.0060445345746964e-8,-3.256375787328263e-5,-2.8601623226662544e-5,-1.0060897143616392e-8,-3.2371816097269846e-5,-2.8475488693954947e-5,-1.0061145174295647e-8,-3.221189052935458e-5,-2.842075314931494e-5,-1.0062287880142022e-8,-3.204694100578321e-5,-2.8456309260332803e-5,-1.0065415316236122e-8,-3.183109485034811e-5,-2.8581804503757855e-5,-1.007118993199182e-8,-3.152026648812525e-5,-2.877048997646703e-5,-1.0079484318373714e-8,-3.108835216793204e-5,-2.8969238348406404e-5,-1.0089312218910324e-8,-3.0542974461299724e-5,-2.911131486583659e-5,-1.0099182540644034e-8,-2.992994780628945e-5,-2.9140766616140142e-5,-1.0107715115987456e-8,-2.9319253695152042e-5,-2.9036541761832005e-5,-1.0114124886146775e-8,-2.877809393386789e-5,-2.8820960229194144e-5,-1.0118307228329601e-8,-2.8346852894650365e-5,-2.8547443251060635e-5,-1.0120625267983092e-8,-2.803055359693186e-5,-2.8277133796314353e-5,-1.0121677071264258e-8,-2.7805852942645365e-5,-2.8058810315545394e-5,-1.0122171969069935e-8,-2.7634885870697304e-5,-2.7919586021142028e-5,-1.0122851241518537e-8,-2.7477784344898564e-5,-2.7865136011979794e-5,-1.0124374041290903e-8,-2.73005681768325e-5,-2.788470342701019e-5,-1.0127178785398857e-8,-2.707876938176712e-5,-2.7957027015369363e-5,-1.0131386580299943e-8,-2.6798428484780897e-5,-2.8055381987984983e-5,-1.0136799525049531e-8,-2.6455880523470634e-5,-2.8151496961065997e-5,-1.0142993650083491e-8,-2.6056989964450905e-5,-2.8218751221123247e-5,-1.0149458252670142e-8,-2.5615936366383297e-5,-2.82350089513246e-5,-1.0155717100330529e-8,-2.5153423477268736e-5,-2.8185218808561722e-5,-1.0161389371918144e-8,-2.469410784372093e-5,-2.80636100261117e-5,-1.0166188348621973e-8,-2.426321414819864e-5,-2.787501653366006e-5,-1.0169893731105325e-8,-2.3882668480529245e-5,-2.763487038497263e-5,-1.01723489245492e-8,-2.3567286234310905e-5,-2.7367666919278267e-5,-1.017351616196784e-8,-2.332156842397692e-5,-2.7103905438103306e-5,-1.017357593949472e-8,-2.3137641969046203e-5,-2.6875705732266855e-5,-1.0173013410180529e-8,-2.299476051584912e-5,-2.6711500845227497E-05,-1.017261329344951e-8,-2.2860705750699917e-5,-2.663018704620786e-5,-1.0173308322342749e-8,-2.2695665047880168e-5,-2.663518611623227e-5,-1.017589092482202e-8,-2.2459337873909423e-5,-2.6709603552242226e-5,-1.0180685150351775e-8,-2.212140867809451e-5,-2.6814846177850375e-5,-1.0187337375833014e-8,-2.1673671732367735e-5,-2.6895869468464378e-5,-1.0194873028803975e-8,-2.1139047774474032e-5,-2.68952440266726e-5,-1.0202044877588625e-8,-2.0570501852735378e-5,-2.6773653165214853e-5,-1.0207808391111026e-8,-2.0035779945461135e-5,-2.6527596262472074e-5,-1.0211650200164242e-8,-1.95929968856085e-5,-2.6192859779762135e-5,-1.0213616507492086e-8,-1.9270119523824262e-5,-2.5830075681245798e-5,-1.021413380368983e-8,-1.905933904298975e-5,-2.5500927912146165e-5,-1.021381348729072e-8,-1.892657043021345e-5,-2.5248592103061754e-5,-1.0213321886218076e-8,-1.8827443033921196e-5,-2.5090146839981592e-5,-1.0213277816654462e-8,-1.8720869387209668e-5,-2.5019585350191788e-5,-1.0214142627298827e-8,-1.8576464284264876e-5,-2.5015668692887527e-5,-1.0216127260583814e-8,-1.8376611843414558e-5,-2.504980617624261e-5,-1.0219166169699748e-8,-1.8115567499788158e-5,-2.5091878000311348e-5,-1.022297593256864e-8,-1.77975879404375e-5,-2.511396168920078e-5,-1.0227169183059294e-8,-1.743505293856026e-5,-2.5092754555130803e-5,-1.0231368833090536e-8,-1.7046707371919865e-5,-2.5011456803880348e-5,-1.0235274298180084e-8,-1.6655740859370975e-5,-2.4861532084328557e-5,-1.023866489114029e-8,-1.6287282974612118e-5,-2.464432330060455e-5,-1.0241365206381334e-8,-1.596501252310151e-5,-2.4372025169081737e-5,-1.024321801882643e-8,-1.570702113141324e-5,-2.406725812436014e-5,-1.0244103967347291e-8,-1.552160951313559e-5,-2.376063009939192e-5,-1.0244017040254267e-8,-1.5404061827608693e-5,-2.3486101581026236e-5,-1.0243161489551215e-8,-1.5335535519959935e-5,-2.327460877469775e-5,-1.0242006517918706e-8,-1.5284891552236783e-5,-2.314712391361825e-5,-1.0241237021644048e-8,-1.5213603604440276e-5,-2.3108728191468194e-5,-1.0241580512137116e-8,-1.5083201808082548e-5,-2.3145172717351075e-5,-1.0243555303704379e-8,-1.4864218209902013e-5,-2.32231622645874e-5,-1.0247243960115732e-8,-1.4545036900022462e-5,-2.3295366098052616e-5,-1.0252208937023976e-8,-1.4138251105215157e-5,-2.3310524416851092e-5,-1.0257614027791928e-8,-1.368146422366092e-5,-2.322748601135849e-5,-1.0262512342819018e-8,-1.322989051622768e-5,-2.3029486169829173e-5,-1.0266164007946504e-8,-1.2840855736179594e-5,-2.2732545405069593e-5,-1.0268236392507776e-8,-1.2555169579427251e-5,-2.238231187733215e-5,-1.0268825150242116e-8,-1.2383914527037539e-5,-2.2038912589209548e-5,-1.0268347802691693e-8,-1.2307249887307113e-5,-2.1756613087809175e-5,-1.0267393640885903e-8,-1.2284812012886326e-5,-2.156813016555327e-5,-1.0266572608916944e-8,-1.2270971936084373e-5,-2.1479552451146128e-5,-1.0266376938115249e-8,-1.2227457536302338e-5,-2.1474911265539056e-5,-1.0267077590847187e-8,-1.2129749205895953e-5,-2.1525263563921737e-5,-1.0268689111523196e-8,-1.1967892292312714e-5,-2.1597450054922837e-5,-1.0271017429226725e-8,-1.174422548889918e-5,-2.166023896731968e-5,-1.0273764819876203e-8,-1.1470257655664928e-5,-2.1687790859828148e-5,-1.0276640831595281e-8,-1.1163872918540682e-5,-2.16613873970703e-5,-1.0279429528370393e-8,-1.0847087574647729e-5,-2.1570437594962387e-5,-1.0281991235380007e-8,-1.0544002989509588e-5,-2.141339145539365e-5,-1.0284216045362617e-8,-1.0278390240021108e-5,-2.1198652865103365e-5,-1.0285974464584003e-8,-1.0070447996162899e-5,-2.0945037086426453e-5,-1.028711043152021e-8,-9.932690801530476e-6,-2.068088652200719e-5,-1.028749799157689e-8,-9.86563644678306e-6,-2.0440844298465255e-5,-1.0287141168707594e-8,-9.854764583517574e-6,-2.0259766952748523e-5,-1.028626273479879e-8,-9.870619619233569e-6,-2.01644508838674e-5,-1.0285319481300823e-8,-9.8733786193769e-6,-2.0165339281957866e-5,-1.0284908068411034e-8,-9.821625784056985e-6,-2.0251252759600633e-5,-1.0285579389915266e-8,-9.683168074476673e-6,-2.0389683901633625e-5,-1.0287635145367275e-8,-9.444561568473699e-6,-2.053338593781372e-5,-1.0290997813059452e-8,-9.116224347150207e-6,-2.063177957102368e-5,-1.0295216467786993e-8,-8.731339354531077e-6,-2.0644132770129046e-5,-1.0299605534523448e-8,-8.338457137712565e-6,-2.055092931652111e-5,-1.030345694288755e-8,-7.98933323349338e-6,-2.0360097137701205e-5,-1.0306242488373733e-8,-7.72506620945875e-6,-2.0105711184980106e-5,-1.0307743277604975e-8,-7.564775484823967e-6,-1.983876173135379e-5,-1.0308080804889762e-8,-7.500921681843046e-6,-1.9612526930376168e-5,-1.0307656350511951e-8,-7.503139782780013e-6,-1.946768074753192e-5,-1.0307019062928134e-8,-7.528820005869814e-6,-1.9422601531502887e-5,-1.0306699910081859e-8,-7.535794278292598e-6,-1.947177763761887e-5,-1.0307063665786794e-8,-7.492269894596984e-6,-1.959128917115925e-5,-1.0308233957531626e-8,-7.381486721375345e-6,-1.974765598713154e-5,-1.0310113143840973e-8,-7.201498312177095e-6,-1.990624677978869e-5,-1.031247670749912e-8,-6.962107167616799e-6,-2.0037161470478344e-5,-1.031508699283958e-8,-6.680993863389137e-6,-2.011834907841151e-5,-1.0317770097194946e-8,-6.380273436048308e-6,-2.0136768138740442e-5,-1.032042648831648e-8,-6.0838277247680745e-6,-2.0088636779103125e-5,-1.0322983928965702e-8,-5.815108860030673e-6,-1.9979521669310532e-5,-1.0325335032912242e-8,-5.594817165694961e-6,-1.9824453315227466e-5,-1.0327309582072665e-8,-5.437930590768389e-6,-1.9647685779100526e-5,-1.0328712972235372e-8,-5.349939383493514e-6,-1.948122710398913e-5,-1.0329423078834094e-8,-5.3228826376455855e-6,-1.936095973346019e-5,-1.0329498903693821e-8,-5.332864110333339e-6,-1.9319532507723174e-5,-1.0329235310495402e-8,-5.341522628441661e-6,-1.9376734531154476e-5,-1.0329117209882681e-8,-5.303353476159965e-6,-1.953039383977173e-5,-1.0329676054612896e-8,-5.17823507516099e-6,-1.9752454282041895e-5,-1.0331308373795825e-8,-4.945019491343102e-6,-1.9993909540435985e-5,-1.0334140752283602e-8,-4.610138350751177e-6,-2.019829297048899e-5,-1.0337995748268947e-8,-4.206914461260477e-6,-2.0318725218684748e-5,-1.0342450652703292e-8,-3.7858145479968068e-6,-2.033162353691172e-5,-1.0346947057188743e-8,-3.3999204340748854e-6,-2.0242322080569558e-5,-1.0350921705190584e-8,-3.090978422107698e-6,-2.0081863583639396e-5,-1.035394277316305e-8,-2.879939472361453e-6,-1.9897267305424163e-5,-1.0355827001534681e-8,-2.7637461044958318e-6,-1.9738805558921248e-5,-1.035669501194934e-8,-2.7182918430026305e-6,-1.9647845328083208e-5,-1.0356930437472887e-8,-2.706078182001334e-6,-1.964815539595743e-5,-1.0357046501868146e-8,-2.6861280184476436e-6,-1.9742416449230415e-5,-1.035751449251452e-8,-2.623356484294166e-6,-1.9914165200530054e-5,-1.0358627867133187e-8,-2.495051690997066e-6,-2.0133848461016657e-5,-1.0360457505484327e-8,-2.2933525948354025e-6,-2.0366613404506264e-5,-1.0362901596694904e-8,-2.024101506874866e-6,-2.057945330065126e-5,-1.036578541391425e-8,-1.703438490176005e-6,-2.0746243231691587e-5,-1.0368950180661795e-8,-1.353670649395772e-6,-2.085034603832491e-5,-1.0372285844231933e-8,-9.995092065925437e-7,-2.0885306200609506e-5,-1.0375703780683756e-8,-6.650892091385618e-7,-2.085449651147433e-5,-1.0379079635308058e-8,-3.715968940342627e-7,-2.0770428531116953e-5,-1.0382217349452199e-8,-1.3503446063713592e-7,-2.065397945826239e-5,-1.0384871607393536e-8,3.635039213145238e-8,-2.053328258334241e-5,-1.0386834569506982e-8,1.451554926153161e-7,-2.0441523455916053e-5,-1.038805057918194e-8,2.0789280435282035e-7,-2.041250688557186e-5,-1.0388697272151172e-8,2.56355366977416e-7,-2.047315309918241e-5,-1.0389176849844525e-8,3.3464806040304173e-7,-2.0633626967615144e-5,-1.039000389350313e-8,4.896682666698106e-7,-2.0878520990299207e-5,-1.0391635630909641e-8,7.558554175414243e-7,-2.1164864508976094e-5,-1.0394332164603972e-8,1.1400137473200676e-6,-2.143168146622313e-5,-1.039811235383832e-8,1.6149011662753742e-6,-2.161972150492724e-5,-1.040278944838272e-8,2.1267889603254867e-6,-2.169252145724684e-5,-1.0408016370122865e-8,2.613791080986166e-6,-2.1648099623553002e-5,-1.0413314414030032e-8,3.0255611796536674e-6,-2.1516600834236966e-5,-1.0418136661790554e-8,3.335896657502066e-6,-2.1347475609993867e-5,-1.0422008383847894e-8,3.5455028334495375e-6,-2.1193595706788387e-5,-1.0424695027343131e-8,3.6771057866818085e-6,-2.1098205117584193e-5,-1.0426297045670991e-8,3.766730983759074e-6,-2.1087212163472165e-5,-1.0427207186394536e-8,3.8543118584060025e-6,-2.116678673670468e-5,-1.0427955059979016e-8,3.97556153049034e-6,-2.1325112935168602e-5,-1.0429021553114722e-8,4.156112148298531e-6,-2.1536968915716497e-5,-1.043071137120023e-8,4.4083884967787636e-6,-2.1769858276116903e-5,-1.0433124870667529e-8,4.731238299426264e-6,-2.199039967092715e-5,-1.0436213182297564e-8,5.111871251593329e-6,-2.216982148981789e-5,-1.0439862617282118e-8,5.5293180610449155e-6,-2.228781360239789e-5,-1.0443951826756803e-8,5.958483105439134e-6,-2.2334471279948907e-5,-1.0448355486385057e-8,6.3739591557127685e-6,-2.2310548005592115e-5,-1.0452908274701619e-8,6.753167656295747e-6,-2.2226596306971968e-5,-1.0457371227043073e-8,7.0788641774440105e-6,-2.2101555638768476e-5,-1.0461442256004719e-8,7.341270437022586e-6,-2.19610250197676e-5,-1.0464828194753588e-8,7.540107011405848e-6,-2.18351220744106e-5,-1.0467357564690674e-8,7.686656069240698e-6,-2.1755428418429816e-5,-1.0469080980364281e-8,7.805377469636384e-6,-2.175014455624397e-5,-1.047029980195859e-8,7.933563002743403e-6,-2.1836872868918745e-5,-1.0471493607166954e-8,8.116719413656968e-6,-2.2013889674084526e-5,-1.0473170238320335e-8,8.397782946960609e-6,-2.2253242470900754e-5,-1.0475713376965965e-8,8.801167458084262e-6,-2.2501424654771112e-5,-1.0479313312473675e-8,9.31809147430383e-6,-2.2692544610459407e-5,-1.0483994091602052e-8,9.903277804372193e-6,-2.2771894060168208e-5,-1.0489651043077342e-8,1.0488693236733184e-5,-2.2718401944810526e-5,-1.0496011071352977e-8,1.1008517592282977e-5,-2.2552507598399298e-5,-1.0502567400688094e-8,1.14214527653244e-5,-2.2325484053898436e-5,-1.0508639692043991e-8,1.1719729539192924e-5,-2.2098427892878435e-5,-1.051360321451119e-8,1.192434757606461e-5,-2.192293983959106e-5,-1.0517149141774825e-8,1.2073148493867486e-5,-2.1830348879371115e-5,-1.0519399549919799e-8,1.2208507379845121e-5,-2.1829582167914723e-5,-1.0520823108331641e-8,1.2368142087573956e-5,-2.1910517424363665e-5,-1.0522026852220468e-8,1.2579647860001937e-5,-2.204963465047748e-5,-1.0523548294514526e-8,1.2858046046948135e-5,-2.2216044306126058e-5,-1.052573427092128e-8,1.3205504635807662e-5,-2.2377097194277054e-5,-1.0528728383253077e-8,1.3612660353343853e-5,-2.2503232700248113e-5,-1.0532528837699294e-8,1.4061128311368573e-5,-2.257179941745656e-5,-1.053705767622001e-8,1.4526835423976653e-5,-2.2569659248670465e-5,-1.0542194374134102e-8,1.4983796312142356e-5,-2.2494425657141477e-5,-1.0547763574333112e-8,1.5407831934948618e-5,-2.2354282969079747e-5,-1.0553504640982075e-8,1.5779770461427512e-5,-2.2166624359187616e-5,-1.0559067684047334e-8,1.608797482690634e-5,-2.195590135189993e-5,-1.0564065337397685e-8,1.6330245854374478e-5,-2.1750905552668204e-5,-1.0568177866410433e-8,1.6515130621988764e-5,-2.1581513602797013e-5,-1.0571271898841906e-8,1.6662595891771928e-5,-2.1474755707688038e-5,-1.0573475716392125e-8,1.680367989659793e-5,-2.144982680559584e-5,-1.0575164031555221e-8,1.6977991855744892e-5,-2.15119081550659e-5,-1.0576851619497795e-8,1.7227451460833117e-5,-2.164590037929872e-5,-1.0579043607594197e-8,1.758528349482335e-5,-2.1813063305720084e-5,-1.0582122319913347e-8,1.8061786594786307e-5,-2.1955189701945334e-5,-1.058632473338257e-8,1.8632948981106676e-5,-2.200995658499017e-5,-1.0591773118012249e-8,1.9241195983456193e-5,-2.193466323120593e-5,-1.0598445172373046e-8,1.981317133003406e-5,-2.1726452282952587e-5,-1.0606040069575834e-8,2.0287448616256157e-5,-2.1425281858291863e-5,-1.061388459734303e-8,2.0636332778655594e-5,-2.109672690297479e-5,-1.0621077002227759e-8,2.087033260256244e-5,-2.0805852875933422e-5,-1.0626847060734854e-8,2.1026869693195923e-5,-2.0597119217422514e-5,-1.0630882019558624e-8,2.115329294074093e-5,-2.0487273010198692e-5,-1.0633405474768798e-8,2.129300028400665e-5,-2.0468775249628576e-5,-1.0635008899056331e-8,2.1477766769687902e-5,-2.0517857674518222e-5,-1.0636384654839218e-8,2.172530639983127e-5,-2.0602735888928814e-5,-1.0638109815842078e-8,2.203989369531137e-5,-2.0690072956350867e-5,-1.0640550610319622e-8,2.2414327228279076e-5,-2.0749586688981025e-5,-1.0643876480653403e-8,2.2832428864176618e-5,-2.075731437602081e-5,-1.0648123545462657e-8,2.327186373709147e-5,-2.06979052512023e-5,-1.065324691100052e-8,2.370725263408254e-5,-2.056607264478361e-5,-1.065912813728469e-8,2.4113571523498897e-5,-2.0367140342581537e-5,-1.0665546197757955e-8,2.4469666599175597e-5,-2.011644324456059e-5,-1.067215081453571e-8,2.4761457155718238e-5,-1.9837455761494462e-5,-1.0678483547801098e-8,2.4984396740016067e-5,-1.9558825643028435e-5,-1.0684064625935296e-8,2.5144939672969598e-5,-1.9310587473940774e-5,-1.0688525639022025e-8,2.5260818881569855e-5,-1.9119802585786575e-5,-1.06917361236997e-8,2.535994562171527e-5,-1.9005914717674657e-5,-1.069386581323808e-8,2.5477696466233576e-5,-1.897609088271257e-5,-1.0695349149176802e-8,2.5652094341733997e-5,-1.902096367210599e-5,-1.0696767956414568e-8,2.5916298087693046e-5,-1.9111975005796678e-5,-1.0698709732170148e-8,2.628859728374691e-5,-1.9202643001807574e-5,-1.0701666562329869e-8,2.6762094197675117e-5,-1.9236556751696734e-5,-1.0705996336353121e-8,2.729911355674748e-5,-1.9163344524585584e-5,-1.0711891767678148e-8,2.783684602254258e-5,-1.895885387153898e-5,-1.0719277613221644e-8,2.8306670586864564e-5,-1.8639334239086277e-5,-1.072766183557865e-8,2.8659855505782475e-5,-1.8258763113995928e-5,-1.073612159190717e-8,2.8885279659063856e-5,-1.7888184927921706e-5,-1.0743575505291491e-8,2.9009231738796605e-5,-1.7588764782654586e-5,-1.0749225136080199e-8,2.908000233439939e-5,-1.7393518711195572e-5,-1.0752864147570606e-8,2.914855079008243e-5,-1.7304111401313012e-5,-1.0754868997586099e-8,2.9254770735155143e-5,-1.7298721919266967e-5,-1.0755947029287413e-8,2.9421960148790195e-5,-1.73433769434448e-5,-1.0756840443938963e-8,2.9657262395368594e-5,-1.7401543433202763e-5,-1.075813349050785e-8,2.9954830790562838e-5,-1.7440335048629465e-5,-1.0760197584755174e-8,3.0299471035757358e-5,-1.7433879737981824e-5,-1.0763229561035464e-8,3.066988743140981e-5,-1.7365039408173015e-5,-1.0767308977273792e-8,3.104156445903691e-5,-1.7226340848682806e-5,-1.0772421289059723e-8,3.138958150404849e-5,-1.7020431608455362e-5,-1.0778433463519163e-8,3.169160978062888e-5,-1.67599800034654e-5,-1.0785050830896731e-8,3.193113385062856e-5,-1.6466649719056538e-5,-1.0791801522036606e-8,3.2100549457274216e-5,-1.6168735086317945e-5,-1.0798090040294278e-8,3.2203473041458363e-5,-1.5897357896149383e-5,-1.080332573716205e-8,3.225558795119785e-5,-1.568153341658853e-5,-1.0807089151843031e-8,3.2283527758016355e-5,-1.5542734995758057e-5,-1.0809272801144117e-8,3.232156973954858e-5,-1.548986537631878e-5,-1.0810136690642487e-8,3.24062788787755e-5,-1.551564386066977e-5,-1.0810253821627843E-08,3.256954672694955e-5,-1.5595319915829232e-5,-1.0810370807169095e-8,3.2830743045217534e-5,-1.5688646392023816e-5,-1.0811243374832355e-8,3.318930936264058e-5,-1.5746136030541182e-5,-1.0813499406816032e-8,3.362016828548337e-5,-1.572010074949781e-5,-1.0817540474292183e-8,3.4075238666891787e-5,-1.5579179787124913e-5,-1.0823450353064908e-8,3.449382518613816e-5,-1.532196370613026e-5,-1.0830892582439516e-8,3.482107455406541e-5,-1.498254328611866e-5,-1.0839063244369992e-8,3.502767239053273e-5,-1.4622079522363778e-5,-1.0846829814097262e-8,3.5120439857015004e-5,-1.4307820231652071e-5,-1.085309302508078e-8,3.51375862864246e-5,-1.4089687106817873e-5,-1.085719959088525e-8,3.513199200269295e-5,-1.3986345854532377e-5,-1.085914650566585e-8,3.51525500412995e-5,-1.3985560988209588e-5,-1.085947705163363e-8,3.523209339490654e-5,-1.4054646803086456e-5,-1.0858988747294016e-8,3.5384088933798624e-5,-1.4153334684894148e-5,-1.0858452300955869e-8,3.560538153213612e-5,-1.4243709791482467e-5,-1.0858457682387729e-8,3.5881218350812025e-5,-1.4295764431560704e-5,-1.0859389106431877e-8,3.619005612992247e-5,-1.4289538747822578e-5,-1.0861464399875234e-8,3.650727263331189e-5,-1.4215445163763979e-5,-1.0864770150441248e-8,3.680795793798622e-5,-1.4073968871802461e-5,-1.0869255064842456e-8,3.7069338849790505e-5,-1.3875233842953704e-5,-1.0874690311021376e-8,3.7273324238066565e-5,-1.3638322204225281e-5,-1.0880636211450608e-8,3.740935211446729e-5,-1.338984019635138e-5,-1.0886460859978193e-8,3.747723555199965e-5,-1.3161108246832657e-5,-1.0891439508632244e-8,3.748918890039127e-5,-1.2983612439641286e-5,-1.0894923864558378e-8,3.746992648426565e-5,-1.2882969889767162e-5,-1.0896531846094513e-8,3.745388166964016e-5,-1.2872486930655807e-5,-1.089628939077259e-8,3.7479301400060466e-5,-1.2948111531254483e-5,-1.089466332568615e-8,3.758006931596514e-5,-1.3086710784613064e-5,-1.0892467653005773e-8,3.7777099336497654e-5,-1.3248905734680901e-5,-1.0890674230236611e-8,3.807156828641263e-5,-1.3386503835473725e-5,-1.0890190192257392e-8,3.844207700891592e-5,-1.3453370708504295e-5,-1.0891659080748418e-8,3.8847217212184006e-5,-1.341755372714709e-5,-1.0895313751720727e-8,3.9234030267991595e-5,-1.3271607631699584e-5,-1.090089279363746e-8,3.955132226947631e-5,-1.3037539781839813e-5,-1.0907643242370493e-8,3.976462669241938e-5,-1.2763223288738137e-5,-1.0914452499003047e-8,3.9867493531828635e-5,-1.250952451713426e-5,-1.0920130006578416e-8,3.988372523989806e-5,-1.2331758085782543e-5,-1.0923768775661982e-8,3.9858740281902724e-5,-1.226291312067013e-5,-1.0925025267279314e-8,3.98438771345933e-5,-1.2305852412647015e-5,-1.0924174807119913e-8,3.988096864166715e-5,-1.2436775734862486e-5,-1.092193559817097e-8,3.9993234799773925e-5,-1.2616327199137168e-5,-1.0919186656117713e-8,4.0184029323987886e-5,-1.2802124998079611e-5,-1.0916728214422174e-8,4.0441034122307655e-5,-1.295806215039957e-5,-1.0915158387722742e-8,4.07423430323965e-5,-1.3059008181614689e-5,-1.0914851840032176e-8,4.106194258997215e-5,-1.309190696252388e-5,-1.0915982377055156e-8,4.137369026554492e-5,-1.305496471159586e-5,-1.0918538217819229e-8,4.165397699143815e-5,-1.295627528662622e-5,-1.0922312589289403e-8,4.188372567499801e-5,-1.281253335343146e-5,-1.0926886273075621e-8,4.205038798547874e-5,-1.2647779157268254e-5,-1.0931637253225023e-8,4.2150263329725885e-5,-1.2491600175957169e-5,-1.0935808929506866e-8,4.219089514943613e-5,-1.2376014975777942e-5,-1.0938645719799141e-8,4.219264556971658e-5,-1.2330443038611213e-5,-1.0939574041035733e-8,4.2187994684927e-5,-1.2374868917154073e-5,-1.0938381011529256e-8,4.221708942536862e-5,-1.251262722220375e-5,-1.0935330563847715e-8,4.2319148750577894e-5,-1.272563608677644e-5,-1.0931164753811414e-8,4.252146931834362e-5,-1.2975210570017808e-5,-1.0926967333923104e-8,4.282981205890698e-5,-1.3209939979367455e-5,-1.0923913734952636e-8,4.3224317253663856e-5,-1.3379021269503886e-5,-1.092296888156952e-8,4.3663191015489984e-5,-1.3446687017306154e-5,-1.0924616375420668e-8,4.40932553261884e-5,-1.3402692615521834e-5,-1.0928699864093918e-8,4.446391154055205e-5,-1.3265486287865059e-5,-1.0934436131087437e-8,4.4740262897078254e-5,-1.3077370375528966e-5,-1.0940609312170373e-8,4.491180449520049e-5,-1.2893262674070154e-5,-1.0945898968800855e-8,4.49944176700801e-5,-1.2766207079580588e-5,-1.0949239480507803e-8,4.502512200115446e-5,-1.273370298418019e-5,-1.0950092267772875e-8,4.505116850684658e-5,-1.2808910095088956e-5,-1.0948539845884595e-8,4.511705275984765e-5,-1.2979305349759284e-5,-1.0945188231944347e-8,4.5253768849291526e-5,-1.3212635289537497e-5,-1.0940942427650663e-8,4.547343858202198e-5,-1.3467274984818715e-5,-1.093675586758881e-8,4.576991139681106e-5,-1.370288962080165e-5,-1.0933437996680767e-8,4.6123562686564354e-5,-1.3888173614010929e-5,-1.0931552459312198e-8,4.6507586318521756e-5,-1.4004532581867268e-5,-1.0931388495325245e-8,4.689364295154041e-5,-1.404638935558007e-5,-1.0932970781736282e-8,4.725592017948633e-5,-1.401955872819049e-5,-1.0936077710211673e-8,4.7573669880768315e-5,-1.3939013934426217e-5,-1.0940262282537435e-8,4.783282623871706e-5,-1.3826794886489019e-5,-1.0944887017204275e-8,4.8027394648472436e-5,-1.3710116999369636e-5,-1.0949190756732851e-8,4.816102679731794e-5,-1.361918978051325e-5,-1.095239527820225e-8,4.824866180786038e-5,-1.3583965343721564e-5,-1.0953844774146032e-8,4.8317389669767263E-05,-1.3629077500997938e-5,-1.0953156144793383e-8,4.8404937665998705e-5,-1.3766894228811147e-5,-1.0950352515756894e-8,4.85539270343216e-5,-1.3990186698127629e-5,-1.094594628661613e-8,4.880120852726276e-5,-1.4267952993854126e-5,-1.0940929580088114e-8,4.9164604434804093e-5,-1.4548760923785778e-5,-1.0936627198037842e-8,4.963284107903462e-5,-1.4773613411439147e-5,-1.0934389782899522e-8,5.016508945338154e-5,-1.4894876338232566e-5,-1.0935178671721424e-8,5.070227547728938e-5,-1.4892932210451892e-5,-1.0939190020118924e-8,5.118560276541905e-5,-1.4782534477633037e-5,-1.0945713139716886e-8,5.157392379064546e-5,-1.4606625431828425e-5,-1.095332893238933e-8,5.185338963389235e-5,-1.4421810233716862e-5,-1.0960371481365232e-8,5.203770610741841e-5,-1.4282157086463557e-5,-1.0965440644733544e-8,5.216122418436789e-5,-1.422646572966351e-5,-1.0967760623641757e-8,5.226841451573015e-5,-1.4271353392898255e-5,-1.0967288706004566e-8,5.2402901302713924e-5,-1.4410350265664105e-5,-1.0964601820102489e-8,5.2598368352539667e-5,-1.4617978010402564e-5,-1.0960658830434025e-8,5.2872840342696726e-5,-1.4857176091440661e-5,-1.0956540629101209e-8,5.322704970841118e-5,-1.5088075305254894e-5,-1.0953236332976238e-8,5.364663492512684e-5,-1.5275993367745722e-5,-1.0951500603035131e-8,5.410696514106418e-5,-1.539698624027727e-5,-1.095178087382418e-8,5.457893133346143e-5,-1.5440298921740233e-5,-1.0954194761142424e-8,5.50342383558213e-5,-1.540806131983914e-5,-1.0958542424790509e-8,5.544932692850507e-5,-1.5313173657149106e-5,-1.096434545062792e-8,5.580777697902618e-5,-1.5176465955951547e-5,-1.0970910845978872e-8,5.610161114139606e-5,-1.502389729946295e-5,-1.0977420875607443e-8,5.633207828382777e-5,-1.4883981469539802e-5,-1.0983045974823884e-8,5.651030827952544e-5,-1.4785143953867945e-5,-1.0987069782932988e-8,5.6657843445042456E-05,-1.475241870537396e-5,-1.098900869828785e-8,5.68064043339674e-5,-1.480281230944594e-5,-1.0988713689162896e-8,5.6995445257911e-5,-1.493919710310919e-5,-1.0986451645489575e-8,5.726569833881333e-5,-1.5144085304198487e-5,-1.0982961665724738e-8,5.7647873217573626e-5,-1.537676462498628e-5,-1.097945336000276e-8,5.8148783022304093e-5,-1.5578618482013747e-5,-1.0977468969124607e-8,5.8741629395056166e-5,-1.5689303712884644e-5,-1.0978518978595156e-8,5.936880170599819e-5,-1.5669452550320848e-5,-1.0983516728908241e-8,5.995982222233368e-5,-1.5518212400740367e-5,-1.0992265385709335e-8,6.045655109961612e-5,-1.5274524989521094e-5,-1.100336461316192e-8,6.083213388443301e-5,-1.500128721893175e-5,-1.1014687824535179e-8,6.109517706905173e-5,-1.476232162248893e-5,-1.1024177858417426e-8,6.128078642644321e-5,-1.4603933293794295e-5,-1.1030515003487311e-8,6.14360565632286e-5,-1.4546623392676997e-5,-1.1033379525122147e-8,6.160676979381152e-5,-1.4585862441534919e-5,-1.1033325129027129e-8,6.182836446050053e-5,-1.4698115916188576e-5,-1.103144492460905e-8,6.212137962144658e-5,-1.4848716247797194e-5,-1.1029016395917635e-8,6.249043218855688e-5,-1.499957486442772e-5,-1.1027231651313366e-8,6.292575713367833e-5,-1.5115848315998846e-5,-1.1027035010884309e-8,6.340659244996193e-5,-1.5171078050374148e-5,-1.1029042575856415e-8,6.39057084276371e-5,-1.5150397168465046e-5,-1.1033511588368882e-8,6.439430170432664e-5,-1.5051632264841132e-5,-1.1040338007405747e-8,6.484651366485014e-5,-1.4884453987230887e-5,-1.1049078955669309e-8,6.524295871579131e-5,-1.4668006957840344e-5,-1.1059009733669053e-8,6.557293822920603e-5,-1.4427696477046931e-5,-1.106922243082436e-8,6.583546021894932e-5,-1.4191801641639522e-5,-1.1078757988711264e-8,6.603942429151922e-5,-1.3988227254888844e-5,-1.1086754263160646e-8,6.620324712438544e-5,-1.3841351539194972e-5,-1.1092584244638724e-8,6.635399675116738e-5,-1.376871069724712e-5,-1.1095960923446284e-8,6.652567539394843e-5,-1.377713360613599e-5,-1.1097002545640146e-8,6.675562941069513e-5,-1.3858317394900903e-5,-1.109626926494747e-8,6.707780774668518e-5,-1.3985038180359028e-5,-1.1094780789983727e-8,6.751241829499467e-5,-1.4110813964274978e-5,-1.1093985695546706e-8,6.805398404589733e-5,-1.4176969697956724e-5,-1.1095592658974113e-8,6.866384590550756e-5,-1.4129570457204582e-5,-1.1101140430408416e-8,6.927548828970987e-5,-1.3942193950697216e-5,-1.1111323602410547e-8,6.981586375490909e-5,-1.3632135932979031e-5,-1.1125409233657399e-8,7.023376113526364e-5,-1.3257268294156674e-5,-1.1141255562749935e-8,7.051856313032443e-5,-1.2893039413830864e-5,-1.1156102060587921e-8,7.06990864524921e-5,-1.2603544775620664e-5,-1.1167680283957444e-8,7.082667807448929e-5,-1.2422764469719474e-5,-1.1174960488599823e-8,7.095499623308146e-5,-1.2351727669469376e-5,-1.1178226969257668e-8,7.112590319904138e-5,-1.2366745927631601e-5,-1.1178667858819269e-8,7.136360199813396e-5,-1.2431038164156497e-5,-1.117783577309838e-8,7.167471562637514e-5,-1.2504825814492575e-5,-1.1177222677717251e-8,7.20513073116622e-5,-1.2552337068439892e-5,-1.1178022183958767e-8,7.247483939519828e-5,-1.2546082636510993e-5,-1.1181041603564716e-8,7.292025057925622e-5,-1.2469246626440453e-5,-1.1186692155499417e-8,7.335996924164086e-5,-1.2316707228409032e-5,-1.1195001134773114e-8,7.376777185043507e-5,-1.2094851223874839e-5,-1.1205627668886617e-8,7.41223204444516e-5,-1.1820215935622424e-5,-1.1217891224875756e-8,7.441008632046292e-5,-1.1516986111407657e-5,-1.1230839822596301e-8,7.462727595584035e-5,-1.121357421653002e-5,-1.1243374292470443e-8,7.478054238337684e-5,-1.0938760084437633e-5,-1.1254418929902535e-8,7.48865297826223e-5,-1.0717820966566956e-5,-1.1263107130437595e-8,7.497036903850236e-5,-1.0568904309436396e-5,-1.1268942299422062e-8,7.506321783824891e-5,-1.0499811842188604e-5,-1.1271900341615984e-8,7.519881869817697e-5,-1.0505257389349248e-5,-1.1272463646632064e-8,7.540869080999105e-5,-1.056479190521469e-5,-1.1271600290428743e-8,7.571546174872404e-5,-1.0642370424357846e-5,-1.1270700670162078e-8,7.61246291272292e-5,-1.0689513165947758e-5,-1.1271446895380041e-8,7.661678435223831e-5,-1.0654320433158899e-5,-1.1275546237460665e-8,7.71448147730922e-5,-1.0497201563490087e-5,-1.1284249952033519e-8,7.764205458950148e-5,-1.0209521680141907e-5,-1.1297711821998253e-8,7.804347387462571e-5,-9.824875614952504e-6,-1.1314530735816466e-8,7.831185681715099e-5,-9.411967862924406e-6,-1.133196933848187e-8,7.84533388443129e-5,-9.048847109690942e-6,-1.134696307423481e-8,7.851205357156255e-5,-8.792740654590127e-6,-1.1357361358067248e-8,7.854866512846068e-5,-8.662856311024963e-6,-1.1362623719687482e-8,7.861729582289454e-5,-8.642245361453145e-6,-1.1363680031735883e-8,7.875197622822127e-5,-8.691794929389404e-6,-1.1362277223349593e-8,7.896418283479847e-5,-8.765841602924702e-6,-1.1360297098831838e-8,7.924709191886245e-5,-8.823284793479496e-6,-1.1359315593534433e-8,7.95818503140842e-5,-8.833269852576455e-6,-1.1360426738010168e-8,7.994322616848324e-5,-8.777041367256928e-6,-1.1364233495034238e-8,8.030394161526125e-5,-8.647855079034407e-6,-1.1370898907447606e-8,8.063800618353983e-5,-8.450099063104403e-6,-1.13801913797548e-8,8.092351739561471e-5,-8.197986994855086e-6,-1.139151507594174e-8,8.114517708580553e-5,-7.913748681025796e-6,-1.1403947928868321e-8,8.129649091610874e-5,-7.625053643838189e-6,-1.1416325803923466e-8,8.13812925714093e-5,-7.361498470228608e-6,-1.1427396960663914e-8,8.141408671042445e-5,-7.150374877007221e-6,-1.143603391639288e-8,8.141887617018724e-5,-7.012246466696308e-6,-1.1441458496670813e-8,8.142639354204631e-5,-6.9569547070524565e-6,-1.1443423882852663e-8,8.146989071188947e-5,-6.980733178277085e-6,-1.1442305223764873e-8,8.157988588747373e-5,-7.0650386142183395e-6,-1.1439079612900346e-8,8.177834068751832e-5,-7.177494714956207e-6,-1.1435206339439226e-8,8.207274310460953e-5,-7.275416748518267e-6,-1.1432431508335396e-8,8.24510452990543e-5,-7.312655501458012e-6,-1.1432513684254343e-8,8.287939415777408e-5,-7.250137973215447e-6,-1.14368513607406e-8,8.330545375814392e-5,-7.068926237825051e-6,-1.1446018896562171e-8,8.366980628525399e-5,-6.781801504635946e-6,-1.1459328098698728e-8,8.392475651610919e-5,-6.436424280153653e-6,-1.147469615909485e-8,8.405365240588183e-5,-6.103856380286995e-6,-1.1489120917511639e-8,8.407948845031888e-5,-5.853970011362507e-6,-1.1499731792143241e-8,8.405583920133282e-5,-5.729599983451548e-6,-1.1504887252346792e-8,8.404479026302159e-5,-5.733734864168806e-6,-1.1504668019600196e-8,8.409487550610288e-5,-5.8348805222652595e-6,-1.1500567610929476e-8,8.422953279231353e-5,-5.983832090974439e-6,-1.1494726575699467e-8,8.44475135877195e-5,-6.130958240035688e-6,-1.1489203384318796e-8,8.473016954110671e-5,-6.237308506807428e-6,-1.1485549198160168e-8,8.504997460131159e-5,-6.278822698858891e-6,-1.1484684339034437e-8,8.537722202659041e-5,-6.24604350020151e-6,-1.1486947837148801e-8,8.56843216611937e-5,-6.141962433049987e-6,-1.149219497561945e-8,8.594839135529726e-5,-5.979584647913548e-6,-1.1499878642207251e-8,8.615303700245352e-5,-5.7797022876110846e-6,-1.1509108282661373e-8,8.628989016331793e-5,-5.568700527437504e-6,-1.1518717192858226e-8,8.636003840534361e-5,-5.3759285752394796e-6,-1.1527377565087991e-8,8.637502793286532e-5,-5.230188533993722e-6,-1.1533784620290696e-8,8.635675385529202e-5,-5.155286769746592e-6,-1.1536897415011626e-8,8.63355224875678e-5,-5.165182714998419e-6,-1.1536184302568082e-8,8.634591892159362e-5,-5.259775561616308e-6,-1.1531803962477889e-8,8.642073115040163e-5,-5.4226586174864975e-6,-1.152465872996433e-8,8.65839351077441e-5,-5.622046886179956e-6,-1.1516287597576716e-8,8.684430755827092e-5,-5.8153923203604484e-6,-1.1508609070013934e-8,8.719130249188195e-5,-5.95728092691672e-6,-1.1503558232602766e-8,8.759455242721197e-5,-6.009491974966764e-6,-1.150267039330855e-8,8.800800850055604e-5,-5.95147211987009e-6,-1.1506668360848453e-8,8.837913286366379e-5,-5.7886627769627485e-6,-1.1515138637633855e-8,8.866225574551908e-5,-5.555373933240397e-6,-1.1526431984484355e-8,8.883301404506053e-5,-5.309063543337344e-6,-1.1537937388838975e-8,8.889840023466499e-5,-5.115164449411993e-6,-1.1546777723907165e-8,8.889656623832367e-5,-5.026383401286591e-6,-1.1550737585091733e-8,8.888441107440784e-5,-5.065123260574208e-6,-1.154900893343037e-8,8.891787950494431e-5,-5.21765631045529e-6,-1.1542374452129857e-8,8.903443511633252e-5,-5.442337151279303e-6,-1.1532775965427147e-8,8.924516874443352e-5,-5.686194762207577e-6,-1.1522563607641413e-8,8.953744138069596e-5,-5.90108623252899e-6,-1.1513813593362013e-8,8.988360538093972e-5,-6.053558073616242e-6,-1.1507938669655695e-8,9.025045498071756e-5,-6.127657333921901e-6,-1.1505594789433005e-8,9.06062942791196e-5,-6.123105910016481e-6,-1.1506768232466762e-8,9.092503624012695e-5,-6.051676523403866e-6,-1.1510921388865986e-8,9.118813404710323e-5,-5.933591903961702e-6,-1.1517128603869335e-8,9.138545565664259e-5,-5.794575433039127e-6,-1.1524189430321015e-8,9.151591271894805e-5,-5.66334449111308e-6,-1.1530742462923101e-8,9.158811085003475e-5,-5.568946066028995e-6,-1.1535410442970295e-8,9.162072310193748e-5,-5.537335450390624e-6,-1.1536995250412474e-8,9.164182458652515e-5,-5.58694690455087e-6,-1.1534711584048976e-8,9.168620213239225e-5,-5.723696108466005e-6,-1.152841879943091e-8,9.178992959661302e-5,-5.936777568263604e-6,-1.1518779345972147e-8,9.198249027190544e-5,-6.197337314678204e-6,-1.1507263760530225e-8,9.227820821065515e-5,-6.461935833751877e-6,-1.1495944136778205e-8,9.266993147833276e-5,-6.6812950165578724e-6,-1.1487076652143873e-8,9.31278874804674e-5,-6.8125918600802576e-6,-1.1482550916430714e-8,9.360510332344588e-5,-6.831677883244499e-6,-1.1483350519634967e-8,9.404841563306238e-5,-6.741163582188049e-6,-1.1489195433374426e-8,9.441208477567966e-5,-6.57151688468949e-6,-1.1498505989231926e-8,9.467017588287623e-5,-6.374429642810231e-6,-1.1508741618074349e-8,9.482411049793587e-5,-6.20983930092064e-6,-1.1517053215341923e-8,9.490280063124226e-5,-6.12986333255191e-6,-1.1521069363394867e-8,9.49546446025167e-5,-6.164351503798526e-6,-1.1519561592846616e-8,9.503343971679581e-5,-6.312991752990002e-6,-1.1512751366586703e-8,9.518296893644879e-5,-6.546957614728857e-6,-1.1502154648514587e-8,9.54258618892581e-5,-6.819249442704191e-6,-1.1490053068776307e-8,9.576033063758811e-5,-7.079181183195936e-6,-1.147882172959562e-8,9.616458460450145e-5,-7.285251177458946e-6,-1.1470361003639736e-8,9.660557779129375e-5,-7.412533789784719e-6,-1.1465779950685564e-8,9.70480253349657e-5,-7.454061673847203e-6,-1.1465342600263835e-8,9.746107955264904e-5,-7.418094434670623e-6,-1.1468592015480105e-8,9.782204348641294e-5,-7.323724614127018e-6,-1.1474549309030842e-8,9.811778004559563e-5,-7.196576837891347e-6,-1.1481914889362466e-8,9.834488254743438e-5,-7.065336659585935e-6,-1.1489242896633806e-8,9.85094970832235e-5,-6.958985648334306e-6,-1.1495095179541215e-8,9.862717385640469e-5,-6.90413645241066e-6,-1.1498196338733799e-8,9.8722513616579e-5,-6.921815594705209e-6,-1.1497607920369037e-8,9.882784972662761e-5,-7.023345607949021e-6,-1.1492923262731212e-8,9.897986411696639e-5,-7.205665995436498e-6,-1.148446098537155e-8,9.921318771121227e-5,-7.447586546246423e-6,-1.1473395307025696e-8,9.955120060763667e-5,-7.709619295232465e-6,-1.146172404791077e-8,9.999642762624879e-5,-7.940035443749168e-6,-1.1451968869426325e-8,1.0052494732063333e-4,-8.087647613726074e-6,-1.1446579632065744e-8,1.0108913471724907e-4,-8.117933472199266e-6,-1.1447169892722494e-8,1.016297505105532e-4,-8.025879558080473e-6,-1.1453875399227287e-8,1.0209339869072522e-4,-7.839290063002508e-6,-1.1465163461608666e-8,1.0244827762320929e-4,-7.610760831100816e-6,-1.1478236898852096e-8,1.0269227243374284e-4,-7.4019405703705335e-6,-1.1489879553959839e-8,1.0285149371859283e-4,-7.266368505272329e-6,-1.1497391887392736e-8,1.0297118136782965e-4,-7.236336161787715e-6,-1.1499280042755185e-8,1.0310270675950262e-4,-7.316726316035047e-6,-1.1495523318503002e-8,1.0329056362595021e-4,-7.486349598341804e-6,-1.148742159707798e-8,1.0356255453322497e-4,-7.705430672579288e-6,-1.1477144225777614e-8,1.0392519544575366e-4,-7.926623660176716e-6,-1.1467147125266295e-8,1.0436481553339658e-4,-8.106347722194308e-6,-1.1459615835618466e-8,1.048532139215313e-4,-8.213492770649762e-6,-1.1456056721422704e-8,1.0535556460250918e-4,-8.23373787288498e-6,-1.1457100913129077e-8,1.0583805546501133e-4,-8.169439622731186e-6,-1.1462518463608636e-8,1.0627352735391126e-4,-8.036400609196678e-6,-1.1471385560392026e-8,1.066445607363988e-4,-7.859266130393587e-6,-1.1482325768957206e-8,1.0694441306334356e-4,-7.666977342055716e-6,-1.1493758257334187e-8,1.0717666268625118e-4,-7.489017281889044e-6,-1.1504111986789331e-8,1.0735435490295485e-4,-7.35244966639261e-6,-1.1511999323604564e-8,1.0749903983642938e-4,-7.2792806829164845e-6,-1.1516363131548234e-8,1.0763957831135115e-4,-7.283580274524651e-6,-1.151661702847303e-8,1.0781007680501017e-4,-7.368012685883945e-6,-1.1512793302970118e-8,1.0804590054700001e-4,-7.520061810504988e-6,-1.1505692043057436e-8,1.0837680611466255e-4,-7.709425069854278e-6,-1.1496977420176755e-8,1.0881740161785823e-4,-7.889347522041987e-6,-1.1489103221812277e-8,1.0935759791410143e-4,-8.004876957400208e-6,-1.1484917776821892e-8,1.099584343313986e-4,-8.008601428695032e-6,-1.1486882532745956e-8,1.1055881062444225e-4,-7.879155597116695e-6,-1.1496092004950944e-8,1.1109371258594231e-4,-7.633039843956237e-6,-1.1511581608136922E-08,1.1151663459051103e-4,-7.321605202687162e-6,-1.1530431309502565e-8,1.1181492903404441e-4,-7.013454241810893e-6,-1.1548741122352925e-8,1.1201106022014476e-4,-6.771340174468865e-6,-1.1562985724005811e-8,1.1215140197415839e-4,-6.634405209780007e-6,-1.1571068149846324e-8,1.1228984212495073e-4,-6.611278102413541e-6,-1.1572697123814852e-8,1.1247315925664164e-4,-6.6831267112462406e-6,-1.1569144942454731e-8,1.127316993096942e-4,-6.812598750203812e-6,-1.156266778319374e-8,1.1307579932787652e-4,-6.954602663343077e-6,-1.1555859496188551e-8,1.1349688400417341e-4,-7.066217820959545e-6,-1.1551101049908461e-8,1.139717903089487e-4,-7.114299397794903e-6,-1.1550167056351804e-8,1.1446891416054345e-4,-7.080077937874377e-6,-1.1554002562827165e-8,1.149548174283551e-4,-6.960537575809596e-6,-1.1562667346861427e-8,1.1540007923220339e-4,-6.766933444370123e-6,-1.1575426285469924e-8,1.1578354861211906e-4,-6.521295786051894e-6,-1.1590947546989276e-8,1.1609463410885247e-4,-6.2519478086589645e-6,-1.160756007562344e-8,1.1633376296363593e-4,-5.989012039941205e-6,-1.1623518348194946e-8,1.1651156393922294e-4,-5.760573051355079e-6,-1.1637234212047214e-8,1.1664740182339614e-4,-5.589622358594828e-6,-1.1647459659802337e-8,1.1676759334021895e-4,-5.4915067272458905e-6,-1.1653428976732367e-8,1.1690326783015823e-4,-5.471531648050538e-6,-1.1654974611229112e-8,1.1708746557034123e-4,-5.5225030012895636e-6,-1.1652632718742514e-8,1.1735068033667883e-4,-5.622479874781477e-6,-1.1647735276380047e-8,1.1771412944112854e-4,-5.734062550996382e-6,-1.1642435438662262e-8,1.1818113725851937e-4,-5.8076621481172495e-6,-1.163954187668793e-8,1.1872926880585935e-4,-5.791344442245663e-6,-1.1642004245374285e-8,1.1930855430309953e-4,-5.647553044674574e-6,-1.1651984086518556e-8,1.1985155215788543e-4,-5.371443175151925e-6,-1.1669760410394222e-8,1.2029547121095116e-4,-4.99995084485974e-6,-1.1693115291372944e-8,1.2060678781026997e-4,-4.6024408688642385e-6,-1.1717833613867049e-8,1.2079400904598451e-4,-4.255199093046226e-6,-1.173926368756903e-8,1.2090126966665237e-4,-4.0137842781003e-6,-1.1754062382778059e-8,1.2098843584166365e-4,-3.897678566972292e-6,-1.176115704922468e-8,1.2111008984554611e-4,-3.891400665164609e-6,-1.1761637208694449e-8,1.213022496940009e-4,-3.95630760713687e-6,-1.1757971241563372e-8,1.2157839399120963e-4,-4.044896229076136e-6,-1.1753097167220337e-8,1.2193195516922581e-4,-4.112420305157807e-6,-1.1749718015863004e-8,1.2234182152848596e-4,-4.124267718560327e-6,-1.174987984666976e-8,1.227785275255919e-4,-4.059624660286843e-6,-1.1754780294877045e-8,1.2321007408265877e-4,-3.9124489345179326e-6,-1.1764728817057517e-8,1.2360698042256985e-4,-3.6904598768444323e-6,-1.1779212189448352e-8,1.2394631226203136e-4,-3.4126109266878824e-6,-1.1797041115608418e-8,1.242144823774108e-4,-3.1055077065965403e-6,-1.1816559520484416e-8,1.2440867826661164e-4,-2.799226073876711e-6,-1.1835897138338729e-8,1.2453685337986063e-4,-2.523031477587932e-6,-1.1853238148010125e-8,1.2461646512564885e-4,-2.301547896694e-6,-1.186706784611472e-8,1.2467235994619418e-4,-2.1516861724259745e-6,-1.1876371614580685e-8,1.2473410454800834e-4,-2.0803083645591164e-6,-1.1880779589050701e-8,1.2483283115915695e-4,-2.0825349597226646e-6,-1.1880660082478308e-8,1.2499748069359724e-4,-2.14069314709482e-6,-1.1877165836353078e-8,1.2525010295091812e-4,-2.2241823656063393e-6,-1.1872226457607199e-8,1.2559995192754653e-4,-2.2912602137460035e-6,-1.1868437590207958e-8,1.2603705811992328e-4,-2.2945068883105327e-6,-1.1868742828901586e-8,1.2652772420829495e-4,-2.191539426597471e-6,-1.1875794007561012e-8,1.2701630641300356e-4,-1.9604423994929207e-6,-1.1890987874401511e-8,1.2743771444703272e-4,-1.6147035257241735e-6,-1.1913481241468902e-8,1.2774003479321577e-4,-1.2075860053489198e-6,-1.1939854087612531e-8,1.2790733523272295e-4,-8.17705683285339e-7,-1.1965019553764724e-8,1.279679628288094e-4,-5.194673008425952e-7,-1.1984174542305361e-8,1.279816584662349e-4,-3.5470155045429583e-7,-1.1994671485721905e-8,1.280138942373341e-4,-3.2155917529888203e-7,-1.1996712018024326e-8,1.2811314916667707e-4,-3.832848611376374e-7,-1.1992721904466058e-8,1.2830082617175774e-4,-4.869902782138533e-7,-1.198611016092719e-8,1.2857305116365837e-4,-5.810461096132203e-7,-1.1980164163535222E-08,1.289084172136336e-4,-6.257202090277428e-7,-1.197740043466469e-8,1.2927653296285668e-4,-5.972525154990381e-7,-1.1979329944634138e-8,1.2964491995966202e-4,-4.877474608997493e-7,-1.1986472365228349e-8,1.2998387075651414e-4,-3.031311612369654e-7,-1.1998477370081351e-8,1.3026979244258862e-4,-6.038288953220458e-8,-1.2014282732417834e-8,1.3048752957989842e-4,2.1562191863560383e-7,-1.2032296857404085e-8,1.3063183983413705e-4,4.956069602951913e-7,-1.2050612633462722e-8,1.3070798712429174e-4,7.49696777087375e-7,-1.2067254493324593e-8,1.3073127127371782e-4,9.513984761652111e-7,-1.2080450782354818e-8,1.3072533232997706e-4,1.0813761032640532e-6,-1.2088898078971734e-8,1.3071932425519906e-4,1.1305045965556356e-6,-1.2091976791290884e-8,1.3074424349902703e-4,1.1018477731859764e-6,-1.2089887050399828e-8,1.3082870101893535e-4,1.0113362985932872e-6,-1.2083690937629776e-8,1.3099441618179766e-4,8.869501908669666e-7,-1.2075251931326807e-8,1.3125168068481923e-4,7.662116754938402e-7,-1.2067066918911372e-8,1.3159510738595574e-4,6.915586905267705e-7,-1.2061965515433264e-8,1.3200056820097142e-4,7.028841658829567e-7,-1.2062624571151364e-8,1.3242528918228636e-4,8.270198550287169e-7,-1.2070869118686841e-8,1.3281385380364976e-4,1.0657937989025924e-6,-1.2086852795495238e-8,1.3311208615874337e-4,1.3873940278361398e-6,-1.2108442324416934e-8,1.3328674475046086e-4,1.728378788589479e-6,-1.2131335420364398e-8,1.333423026531807e-4,2.011359960326922e-6,-1.2150284217646462e-8,1.333230859574093e-4,2.173641367897251e-6,-1.2161076558038903e-8,1.3329628509418603e-4,2.1916886718834704e-6,-1.2162183678561086e-8,1.3332488742110422e-4,2.0869799011873835e-6,-1.2155091872515184e-8,1.3344631607287334e-4,1.9118834458728775e-6,-1.214330168860428e-8,1.3366614959370036e-4,1.7270017762180142e-6,-1.213081977253317e-8,1.339647660819936e-4,1.5827822630531564e-6,-1.2120978054806648e-8,1.3430900171919165e-4,1.5107505188582636e-6,-1.2115885232530696e-8,1.346625507586368e-4,1.5227555156633589e-6,-1.2116379839448163e-8,1.3499278908367805e-4,1.6143357752029857e-6,-1.2122232655650623e-8,1.352743630890875e-4,1.7691319425712106e-6,-1.2132411706736463e-8,1.3549082147805045e-4,1.9628976716705375e-6,-1.214532559179744e-8,1.3563536205606977e-4,2.1669414090184472e-6,-1.2159041601093816e-8,1.3571114539193986e-4,2.3513531864422336e-6,-1.2171504657912729e-8,1.3573115122892719e-4,2.488365757099318e-6,-1.218077928907646e-8,1.3571726302195615e-4,2.555989521491244e-6,-1.2185316078541546e-8,1.3569814446294577e-4,2.5416602671032738e-6,-1.2184217684665625e-8,1.3570568585111713e-4,2.4452206623935392e-6,-1.2177449976565543e-8,1.3577024230789847e-4,2.280427964073108e-6,-1.216594442676682e-8,1.3591527737192273e-4,2.0743135607314645e-6,-1.2151550454018783e-8,1.361522991152803e-4,1.8640121265254014e-6,-1.213681987513195e-8,1.3647708727637718e-4,1.6911483786144465e-6,-1.2124630980449703e-8,1.3686810998498884e-4,1.5943000966245994e-6,-1.211767957644585e-8,1.3728794824521178e-4,1.6002951590033876e-6,-1.2117875538135754e-8,1.376885995265603e-4,1.715563961241601e-6,-1.2125719871977474e-8,1.380212492054774e-4,1.9198116421548985e-6,-1.2139827416802713e-8,1.3824979653251647e-4,2.16545754172393e-6,-1.2156862702966804e-8,1.3836476748777283e-4,2.3863798766054845e-6,-1.2172165361997345e-8,1.3839118089512586e-4,2.516681597723158e-6,-1.2181109204786456e-8,1.383836958661086e-4,2.5139173425388923e-6,-1.2180756018019766e-8,1.3840809682379775e-4,2.3754960365028225e-6,-1.2170971847677191e-8,1.3851731397930713e-4,2.1385549249810985e-6,-1.2154358737266609e-8,1.387345180742526e-4,1.8635150257748393e-6,-1.2135089041809021e-8,0.00013905061657867654,1.6115027181214983e-6,-1.21173713319074e-8,1.3943376606727773e-4,1.4271981388203693e-6,-1.2104305360794658e-8,1.3984300364040437e-4,1.3321511005655048e-6,-1.2097427842395805e-8,1.4023941764179271e-4,1.3266107575433846e-6,-1.2096814698533307e-8,1.4059252722173118e-4,1.3952876797859035e-6,-1.2101447432625885e-8,1.4088264636512158e-4,1.5134604515907064e-6,-1.2109616882522158e-8,1.4110100645417162e-4,1.651840139911393e-6,-1.211925900245617e-8,1.4124909369002032e-4,1.780117071596497e-6,-1.212821380203447e-8,1.41337902381737e-4,1.8698047521882043e-6,-1.2134441476175163e-8,1.413871243968482e-4,1.897057213198281e-6,-1.2136236886680415e-8,1.4142383018431504e-4,1.845841427761066e-6,-1.2132461012287831e-8,1.4147997719204125e-4,1.7113175489430788e-6,-1.2122777537746821e-8,1.4158823504138685e-4,1.502646517645388e-6,-1.2107840476713205e-8,1.4177619737628733e-4,1.2439767012537168e-6,-1.2089354094720186e-8,1.420599003828967e-4,9.723315462248096e-7,-1.206992596215161e-8,1.4243837480090518e-4,7.317359454874271e-7,-1.205266945550483e-8,1.428912639706557e-4,5.641719353741576e-7,-1.2040586686537376e-8,1.4338097885540922e-4,4.993306811954009e-7,-1.2035847099509482e-8,1.4385960277296563e-4,5.458783176763343e-7,-1.2039139663143369e-8,1.4427940471458366e-4,6.868122641353136e-7,-1.2049291370737595e-8,1.4460478846783334e-4,8.807411239238364e-7,-1.2063317321420302e-8,1.4482281559751307e-4,1.069839105541091e-6,-1.2076991054963683e-8,0.00014494904837242869,1.1937309248725323e-6,-1.2085887289049307e-8,1.4502568900064648e-4,1.2064426101944527e-6,-1.208665562177113e-8,1.4511070047506638e-4,1.0911379333922037e-6,-1.2078100163221958e-8,1.4526028585175462e-4,8.663198283372468e-7,-1.2061600256805915e-8,1.4551122674497707e-4,5.797058648325919e-7,-1.204063541031233e-8,1.45870714182893e-4,2.919007977922922e-7,-1.2019605889673682e-8,1.4631756661427476e-4,5.7383281304037876e-8,-1.2002481688680475e-8,1.4681257082234934e-4,-8.908235910099019e-8,-1.199182771411262e-8,1.4731178048653533e-4,-1.3681974382092278e-7,-1.1988462719314775e-8,1.4777718123388823e-4,-9.589928020150776e-8,-1.1991666707489123e-8,1.4818241807458256e-4,9.827970495226143e-9,-1.1999669866292774e-8,1.4851424057603252e-4,1.4975826284681487e-7,-1.2010174857616424e-8,1.4877150780700368e-4,2.9190903564939884e-7,-1.2020776035974408e-8,1.4896338718739874e-4,4.064988238931833e-7,-1.2029249027716422e-8,1.491076446423247e-4,4.6841038637613003e-7,-1.2033745868534184e-8,1.4922916257107874e-4,4.5938546572257956e-7,-1.2032953779941988e-8,1.493582247095228e-4,3.705242197180493e-7,-1.2026262139108474e-8,1.4952777954767635e-4,2.051005400277564e-7,-1.2013946805018194e-8,1.4976894050346446e-4,-1.904479417246828e-8,-1.19973299130609e-8,1.5010454947427974e-4,-2.6906541765304796e-7,-1.1978814248321542e-8,1.5054183504320976e-4,-5.005400438808663e-7,-1.1961656886072548e-8,1.510667193509588e-4,-6.659267765992611e-7,-1.1949384554955782e-8,1.5164312623254563e-4,-7.269820831206918e-7,-1.1944897119523432e-8,1.5221953156980696e-4,-6.673181911368249e-7,-1.1949511382214759e-8,1.5274192731700445e-4,-4.998737686083151e-7,-1.1962335916114308e-8,1.5316902981055573e-4,-2.655106490847173e-7,-1.198030645635063e-8,1.5348421088217352e-4,-2.266891378647792e-8,-1.1998944827432675e-8,1.537000877768807e-4,1.6834438575237464e-7,-1.2013585861232607e-8,1.538547110431581e-4,2.613132906223005e-7,-1.2020649305678164e-8,1.5400096519828458e-4,2.3581112219275996e-7,-1.2018566303697278e-8,1.5419235863208593e-4,1.0173672189554832e-7,-1.2008120314198619e-8,1.5446908544374386e-4,-1.043344103221339e-7,-1.1992147545698048e-8,1.548482390991489e-4,-3.2985719788034745e-7,-1.1974709621771796e-8,1.5532098094650596e-4,-5.207662508907146e-7,-1.1959996690102956e-8,1.5585716932915963e-4,-6.350241871756243e-7,-1.1951293605787887e-8,1.5641522266013897e-4,-6.511187991959759e-7,-1.1950307300835039e-8,1.569532769257661e-4,-5.697016549164902e-7,-1.1957005001839564e-8,1.5743798528095797e-4,-4.09469379855435e-7,-1.1969906863521253e-8,1.5784917981561064e-4,-2.0015710169451744e-7,-1.1986632887038163e-8,1.5818066995231428e-4,2.4528128874972442e-8,-1.2004482272335572e-8,1.584385964221662e-4,2.3238212408654543e-7,-1.2020894960770384e-8,1.5863886107822444e-4,3.9624199560292434e-7,-1.2033748244121223e-8,1.588046247824748e-4,4.961257588820515e-7,-1.2041519855910776e-8,1.5896414577085214e-4,5.208075434900433e-7,-1.2043387212766305e-8,1.5914861628490783e-4,4.6946391491526275e-7,-1.2039325589190074e-8,1.5938926955830503e-4,3.53541008361074e-7,-1.2030232908600866e-8,1.5971294009466412e-4,1.982741610365036e-7,-1.2018050074089633e-8,1.601357000258253e-4,4.2346553631336995e-8,-1.2005764507559371e-8,1.6065547610377416e-4,-6.653262914643824e-8,-1.199711354071502e-8,1.6124655500583345e-4,-8.178371801242496e-8,-1.1995829366236498e-8,1.618604147678731e-4,2.7237558855628032e-8,-1.200446695222325e-8,1.624361983654284e-4,2.6113543526894443e-7,-1.2023214939678597e-8,1.6291924082183584e-4,5.850389636777833e-7,-1.2049358081100115e-8,1.6328002909722807e-4,9.37029053897171e-7,-1.2077889657121621e-8,1.6352419934365228e-4,1.2479123374621913e-6,-1.2103126439366304e-8,1.6368904604779273e-4,1.4631281062483648e-6,-1.2120552485357369e-8,1.6382956183236765e-4,1.557395384432055e-6,-1.2128060940280816e-8,1.6400122926582002e-4,1.5381144862877748e-6,-1.2126239058948575e-8,1.6424588726093894e-4,1.439208355081074e-6,-1.2117853915445577e-8,1.6458370748174056e-4,1.3096328102448778e-6,-1.2106913755361764e-8,1.6501154402339606e-4,1.200644338827852e-6,-1.2097641160415495e-8,1.6550648589063686e-4,1.1547586852730628e-6,-1.2093577694547275e-8,1.6603290776267415e-4,1.198176070928625e-6,-1.209694831318382e-8,1.665511035023388e-4,1.3375614745420673e-6,-1.2108362039271342e-8,1.6702550418416318e-4,1.5612138983333382e-6,-1.2126873437650308e-8,1.674307780932752e-4,1.8436692523999273e-6,-1.2150349328123835e-8,1.677549195800197e-4,2.152050182706575e-6,-1.2176009110305286e-8,1.6799940801179606e-4,2.4524165413076667e-6,-1.2200981766056503e-8,1.6817724583540448e-4,2.7148658232038214e-6,-1.2222754118217347e-8,1.683099873280913e-4,2.9168866968960664e-6,-1.2239454785978735e-8,1.6842467146592558e-4,3.0452180407235236e-6,-1.224999322944638e-8,1.6855102695086848e-4,3.0968539557096263e-6,-1.2254119042353992e-8,1.6871880126855085e-4,3.079744230574199e-6,-1.2252464324778996e-8,1.6895472067160068e-4,3.0133940896606534e-6,-1.2246598903420829e-8,1.6927840464195295e-4,2.9289893043908684e-6,-1.2239070910506032e-8,1.6969685867088022e-4,2.8677904600524987e-6,-1.2233319274918822e-8,1.7019831718506845e-4,2.875824828445984e-6,-1.2233272151029017e-8,1.7074810284391787e-4,2.993272269193482e-6,-1.224246480019927e-8,1.7129098425295404e-4,3.2394101336393448e-6,-1.2262719249205929e-8,1.7176398102373194e-4,3.5987654038797006e-6,-1.2292867630372567e-8,1.7211809981800891e-4,4.018086806079489e-6,-1.2328398800877828e-8,1.723391427347796e-4,4.420818917734477e-6,-1.2362681188303285e-8,1.7245473153053103e-4,4.734662467285292e-6,-1.2389396409868513e-8,1.7252252726735316e-4,4.917578549027333e-6,-1.2404843785782865e-8,1.726071540897258e-4,4.968749604148368e-6,-1.2408893192054333e-8,1.727589046978858e-4,4.9221724964740185e-6,-1.2404411962237101e-8,1.7300260344177033e-4,4.83048076677902e-6,-1.2395876284086118e-8,1.7333699122422784e-4,4.748210739532242e-6,-1.2387966354953343e-8,1.7374060169450008e-4,4.719717242328655e-6,-1.2384556320964524e-8,1.7417998643729247e-4,4.77276442662093e-6,-1.2388155529251713e-8,1.7461775716833916e-4,4.916710446013261e-6,-1.2399710045232228e-8,1.7501937203030822e-4,5.1438468128633355e-6,-1.24186647572412e-8,1.7535828951289732e-4,5.432860035887848e-6,-1.2443225854658522e-8,1.756192629618798e-4,5.753664444472852e-6,-1.247077258016822e-8,1.7579965373443565e-4,6.07283129609336e-6,-1.249834752183416e-8,1.7590884946030766e-4,6.358829228718526e-6,-1.2523139875377372e-8,1.759661130968674e-4,6.586381943570775e-6,-1.2542883039875933e-8,1.759974500115724e-4,6.739459298134962e-6,-1.2556116611078232e-8,1.760321637278397e-4,6.812845618154416e-6,-1.2562313354106072e-8,1.7609950601134763e-4,6.812603660833107e-6,-1.2561914546371991e-8,1.7622548831381987e-4,6.755770295736606e-6,-1.2556315384687489e-8,1.7642970412317874e-4,6.669448359319251e-6,-1.2547819558221092e-8,1.7672181959903853e-4,6.589129298634931e-6,-1.2539538164845853e-8,1.7709754531837021e-4,6.555409184978373e-6,-1.253513882005936e-8,1.7753484841258758e-4,6.6077367992058346e-6,-1.2538298544744623e-8,1.7799261074736457e-4,6.774298835042637e-6,-1.2551762208519981e-8,1.7841520147040621e-4,7.059131678797954e-6,-1.2576102085454612e-8,1.7874610453487877e-4,7.431432411420299e-6,-1.2608660039097732e-8,1.7894917443968755e-4,7.825953175386766e-6,-1.264353962001558e-8,1.7902774380033063e-4,8.161207083206408e-6,-1.2673296174765145e-8,1.790278108183074e-4,8.37057801926549e-6,-1.2691829535203863e-8,1.7902000252517539e-4,8.429111940731165e-6,-1.2696822098010562e-8,1.7907052731275117e-4,8.359865779353108e-6,-1.2690259514578959e-8,1.792184376056174e-4,8.218710920752939e-6,-1.2677033409507345e-8,1.7946899122588982e-4,8.070217272528202e-6,-1.2662824877992331e-8,1.798005516314884e-4,7.968098174834111e-6,-1.2652431102927129e-8,1.8017678902342154e-4,7.945639373964074e-6,-1.2648941656457344e-8,1.8055783018827178e-4,8.014489469180937e-6,-1.2653594995131369e-8,1.809079743025977e-4,8.167991049630246e-6,-1.2666002492302427e-8,1.8120015594670137e-4,8.386055770599257e-6,-1.2684515636010646e-8,1.81418169137406e-4,8.640136272423779e-6,-1.2706635648062213e-8,1.8155745362714864e-4,8.897929471115659e-6,-1.2729437938407207e-8,1.816247890930127e-4,9.127778918254038e-6,-1.2749994232411722e-8,1.8163698371062952e-4,9.302709168045539e-6,-1.2765766433492419e-8,1.8161856182727902e-4,9.403888438419948e-6,-1.2774938041748913e-8,1.815985642893323e-4,9.423138551089404e-6,-1.2776645313126941e-8,1.8160681506560852e-4,9.36415692920561e-6,-1.2771087603012172e-8,1.8167007529985502e-4,9.242389932513445e-6,-1.2759527269267482e-8,1.8180839374719023e-4,9.083630182385395e-6,-1.2744194260900506e-8,1.8203189191582484e-4,8.921407254932055e-6,-1.272809684680252e-8,1.8233811686921964e-4,8.793234923543979e-6,-1.271472568547752e-8,1.8271007573164471e-4,8.735513832696627e-6,-1.2707603433132443e-8,1.831156226205783e-4,8.776587215035303e-6,-1.2709611967731912e-8,1.835098044135818e-4,8.927979072561361e-6,-1.2722097762312471e-8,1.8384221630675696e-4,9.175500192615347e-6,-1.27439367278731e-8,1.840705475552472e-4,9.474371020128938e-6,-1.2771002906062082e-8,1.841780628060236e-4,9.754616948466088e-6,-1.279667951127827e-8,1.8418683651227492e-4,9.940934290960093e-6,-1.281380356682737e-8,1.8415563603335129e-4,9.98187460304554e-6,-1.281747050358581e-8,1.8415861263877017e-4,9.872544364405676e-6,-1.2807136409084753e-8,1.842552921475183e-4,9.65575714304891e-6,-1.278665574601449e-8,1.8446960989311107e-4,9.401323160175794e-6,-1.2762350921109002e-8,1.847878917819339e-4,9.177921705907351e-6,-1.274048999348862e-8,1.851716145817177e-4,9.033077144764868e-6,-1.2725517880425859e-8,1.8557404333119885e-4,8.98674862545095e-6,-1.2719465951244568e-8,1.8595285565285299e-4,9.03489153155634e-6,-1.2722206457539776e-8,1.8627673471227903e-4,9.156961441484826e-6,-1.2732052732514901e-8,1.8652737698281774e-4,9.323291635298407e-6,-1.2746379558568107e-8,1.8669908398996258e-4,9.500851281252383e-6,-1.276214259667023e-8,1.867974540649122e-4,9.657494220093313e-6,-1.2776296198795173e-8,1.868377674238962e-4,9.765290802188679e-6,-1.2786140679959678e-8,1.8684306967336814e-4,9.803397871508996e-6,-1.2789619363565743e-8,1.868417147083351e-4,9.760610094037025e-6,-1.2785567727151342e-8,1.8686412458466885e-4,9.637324414561794e-6,-1.2773894189412115e-8,1.8693880886411663e-4,9.44635537749392e-6,-1.2755655110877828e-8,1.8708806034181723e-4,9.212124471751703e-6,-1.2732996276901077e-8,1.873239407935784e-4,8.968006164774606e-6,-1.2708946706398693e-8,1.8764524855502274e-4,8.751851247504868e-6,-1.2687053344743047e-8,1.8803613506589658e-4,8.600047003777075e-6,-1.267086308882513e-8,1.884668350213392e-4,8.540750156571121e-6,-1.266327943929974e-8,1.8889688401037388e-4,8.586957156317759e-6,-1.2665841049346619e-8,1.892813662336039e-4,8.7303677532984365E-06,-1.2678028004774141e-8,1.8958055151708885e-4,8.937957777496288e-6,-1.269682650981506e-8,1.8977205698003573e-4,9.154221964303619e-6,-1.2716894887330907e-8,1.8986226816951858e-4,9.312023948278568e-6,-1.2731645634466873e-8,1.8989097282145473e-4,9.3523306591095e-6,-1.2735235873700964e-8,1.899229344963519e-4,9.246977657328054e-6,-1.2724818924541804e-8,1.9002600500419477e-4,9.012639158824845e-6,-1.2701873808086355e-8,1.90245267253111e-4,8.705899735453676e-6,-1.267169944090641e-8,1.9058743747324758e-4,8.400731767561984e-6,-1.2641284800066107e-8,1.9102317062649488e-4,8.161375525659737e-6,-1.261678823134974e-8,1.915028135995743e-4,8.024638131175617e-6,-1.2601877107848063e-8]} \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/Images/bing_maps_credit.png b/libs/cesium/1.111/Assets/Images/bing_maps_credit.png new file mode 100644 index 000000000..15109db3c Binary files /dev/null and b/libs/cesium/1.111/Assets/Images/bing_maps_credit.png differ diff --git a/libs/cesium/1.111/Assets/Images/cesium_credit.png b/libs/cesium/1.111/Assets/Images/cesium_credit.png new file mode 100644 index 000000000..4d1722b6b Binary files /dev/null and b/libs/cesium/1.111/Assets/Images/cesium_credit.png differ diff --git a/libs/cesium/1.111/Assets/Images/google_earth_credit.png b/libs/cesium/1.111/Assets/Images/google_earth_credit.png new file mode 100644 index 000000000..a7622d822 Binary files /dev/null and b/libs/cesium/1.111/Assets/Images/google_earth_credit.png differ diff --git a/libs/cesium/1.111/Assets/Images/ion-credit.png b/libs/cesium/1.111/Assets/Images/ion-credit.png new file mode 100644 index 000000000..71b7bdf1c Binary files /dev/null and b/libs/cesium/1.111/Assets/Images/ion-credit.png differ diff --git a/libs/cesium/1.111/Assets/Textures/LensFlare/DirtMask.jpg b/libs/cesium/1.111/Assets/Textures/LensFlare/DirtMask.jpg new file mode 100644 index 000000000..53299020e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/LensFlare/DirtMask.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/LensFlare/StarBurst.jpg b/libs/cesium/1.111/Assets/Textures/LensFlare/StarBurst.jpg new file mode 100644 index 000000000..b54ac0910 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/LensFlare/StarBurst.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/0/0/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/0/0/0.jpg new file mode 100644 index 000000000..0cad64662 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/0/0/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/0/1/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/0/1/0.jpg new file mode 100644 index 000000000..7e63bd63e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/0/1/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/0/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/0/0.jpg new file mode 100644 index 000000000..e65f1c78b Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/0/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/0/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/0/1.jpg new file mode 100644 index 000000000..605f63f13 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/0/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/1/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/1/0.jpg new file mode 100644 index 000000000..319458e12 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/1/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/1/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/1/1.jpg new file mode 100644 index 000000000..a6a3859d6 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/1/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/2/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/2/0.jpg new file mode 100644 index 000000000..6913a2b08 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/2/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/2/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/2/1.jpg new file mode 100644 index 000000000..df89ed220 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/2/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/3/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/3/0.jpg new file mode 100644 index 000000000..8f27415e2 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/3/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/3/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/3/1.jpg new file mode 100644 index 000000000..ce2b06ecb Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/1/3/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/0.jpg new file mode 100644 index 000000000..e3c031201 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/1.jpg new file mode 100644 index 000000000..f3ec32150 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/2.jpg new file mode 100644 index 000000000..b59816c01 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/3.jpg new file mode 100644 index 000000000..795f21227 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/0/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/0.jpg new file mode 100644 index 000000000..822b06514 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/1.jpg new file mode 100644 index 000000000..4dd18ea4e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/2.jpg new file mode 100644 index 000000000..4540c7c94 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/3.jpg new file mode 100644 index 000000000..32c6e5ae2 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/1/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/0.jpg new file mode 100644 index 000000000..7c3909481 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/1.jpg new file mode 100644 index 000000000..3e7abe713 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/2.jpg new file mode 100644 index 000000000..0e0f1e9b1 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/3.jpg new file mode 100644 index 000000000..732c32f95 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/2/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/0.jpg new file mode 100644 index 000000000..576ec70e7 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/1.jpg new file mode 100644 index 000000000..6347041f9 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/2.jpg new file mode 100644 index 000000000..300aa5803 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/3.jpg new file mode 100644 index 000000000..cd70fcad1 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/3/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/0.jpg new file mode 100644 index 000000000..eabb83c79 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/1.jpg new file mode 100644 index 000000000..54e6b0076 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/2.jpg new file mode 100644 index 000000000..311241c8d Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/3.jpg new file mode 100644 index 000000000..5ba398c58 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/4/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/0.jpg new file mode 100644 index 000000000..e03c0c077 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/1.jpg new file mode 100644 index 000000000..01a1caf81 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/2.jpg new file mode 100644 index 000000000..372e3ef5b Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/3.jpg new file mode 100644 index 000000000..fbcfa628f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/5/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/0.jpg new file mode 100644 index 000000000..334ab2581 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/1.jpg new file mode 100644 index 000000000..ebbc3a099 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/2.jpg new file mode 100644 index 000000000..c3a8e97c8 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/3.jpg new file mode 100644 index 000000000..8f730f364 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/6/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/0.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/0.jpg new file mode 100644 index 000000000..75235d6f8 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/0.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/1.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/1.jpg new file mode 100644 index 000000000..036d682ec Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/1.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/2.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/2.jpg new file mode 100644 index 000000000..dfd214467 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/2.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/3.jpg b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/3.jpg new file mode 100644 index 000000000..82c2a34aa Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/2/7/3.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/NaturalEarthII/tilemapresource.xml b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/tilemapresource.xml new file mode 100644 index 000000000..d7734cce0 --- /dev/null +++ b/libs/cesium/1.111/Assets/Textures/NaturalEarthII/tilemapresource.xml @@ -0,0 +1,14 @@ + + + NE2_HR_LC_SR_W_DR_recolored.tif + + EPSG:4326 + + + + + + + + + diff --git a/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg new file mode 100644 index 000000000..67192282d Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_my.jpg b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_my.jpg new file mode 100644 index 000000000..3dfe883b3 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_my.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg new file mode 100644 index 000000000..7ef2363f2 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_px.jpg b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_px.jpg new file mode 100644 index 000000000..f5d0d8b1e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_px.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_py.jpg b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_py.jpg new file mode 100644 index 000000000..a8421113e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_py.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg new file mode 100644 index 000000000..5efcc76e2 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/airfield.png b/libs/cesium/1.111/Assets/Textures/maki/airfield.png new file mode 100644 index 000000000..b77468424 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/airfield.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/airport.png b/libs/cesium/1.111/Assets/Textures/maki/airport.png new file mode 100644 index 000000000..44a8413a7 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/airport.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/alcohol-shop.png b/libs/cesium/1.111/Assets/Textures/maki/alcohol-shop.png new file mode 100644 index 000000000..b75a5d9ea Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/alcohol-shop.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/america-football.png b/libs/cesium/1.111/Assets/Textures/maki/america-football.png new file mode 100644 index 000000000..5a2c6ba6f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/america-football.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/art-gallery.png b/libs/cesium/1.111/Assets/Textures/maki/art-gallery.png new file mode 100644 index 000000000..a663512ef Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/art-gallery.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/bakery.png b/libs/cesium/1.111/Assets/Textures/maki/bakery.png new file mode 100644 index 000000000..9735d5e53 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/bakery.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/bank.png b/libs/cesium/1.111/Assets/Textures/maki/bank.png new file mode 100644 index 000000000..a67cee06e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/bank.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/bar.png b/libs/cesium/1.111/Assets/Textures/maki/bar.png new file mode 100644 index 000000000..8c2812fba Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/bar.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/baseball.png b/libs/cesium/1.111/Assets/Textures/maki/baseball.png new file mode 100644 index 000000000..23f344bbf Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/baseball.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/basketball.png b/libs/cesium/1.111/Assets/Textures/maki/basketball.png new file mode 100644 index 000000000..7ed3bfce3 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/basketball.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/beer.png b/libs/cesium/1.111/Assets/Textures/maki/beer.png new file mode 100644 index 000000000..a15cf9911 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/beer.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/bicycle.png b/libs/cesium/1.111/Assets/Textures/maki/bicycle.png new file mode 100644 index 000000000..fb871be48 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/bicycle.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/building.png b/libs/cesium/1.111/Assets/Textures/maki/building.png new file mode 100644 index 000000000..885f1128a Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/building.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/bus.png b/libs/cesium/1.111/Assets/Textures/maki/bus.png new file mode 100644 index 000000000..783050234 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/bus.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/cafe.png b/libs/cesium/1.111/Assets/Textures/maki/cafe.png new file mode 100644 index 000000000..2050cba3c Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/cafe.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/camera.png b/libs/cesium/1.111/Assets/Textures/maki/camera.png new file mode 100644 index 000000000..ec54e12a2 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/camera.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/campsite.png b/libs/cesium/1.111/Assets/Textures/maki/campsite.png new file mode 100644 index 000000000..36e0a92de Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/campsite.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/car.png b/libs/cesium/1.111/Assets/Textures/maki/car.png new file mode 100644 index 000000000..2075afa58 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/car.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/cemetery.png b/libs/cesium/1.111/Assets/Textures/maki/cemetery.png new file mode 100644 index 000000000..df244fda0 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/cemetery.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/cesium.png b/libs/cesium/1.111/Assets/Textures/maki/cesium.png new file mode 100644 index 000000000..ce2755ded Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/cesium.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/chemist.png b/libs/cesium/1.111/Assets/Textures/maki/chemist.png new file mode 100644 index 000000000..eb1ea3574 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/chemist.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/cinema.png b/libs/cesium/1.111/Assets/Textures/maki/cinema.png new file mode 100644 index 000000000..56b692561 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/cinema.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/circle-stroked.png b/libs/cesium/1.111/Assets/Textures/maki/circle-stroked.png new file mode 100644 index 000000000..88689e47f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/circle-stroked.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/circle.png b/libs/cesium/1.111/Assets/Textures/maki/circle.png new file mode 100644 index 000000000..fbbd5822f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/circle.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/city.png b/libs/cesium/1.111/Assets/Textures/maki/city.png new file mode 100644 index 000000000..37d8fad88 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/city.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/clothing-store.png b/libs/cesium/1.111/Assets/Textures/maki/clothing-store.png new file mode 100644 index 000000000..ff5f8a2b1 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/clothing-store.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/college.png b/libs/cesium/1.111/Assets/Textures/maki/college.png new file mode 100644 index 000000000..102638704 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/college.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/commercial.png b/libs/cesium/1.111/Assets/Textures/maki/commercial.png new file mode 100644 index 000000000..fdf3b63c3 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/commercial.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/cricket.png b/libs/cesium/1.111/Assets/Textures/maki/cricket.png new file mode 100644 index 000000000..6642a3af2 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/cricket.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/cross.png b/libs/cesium/1.111/Assets/Textures/maki/cross.png new file mode 100644 index 000000000..8945b3b4f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/cross.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/dam.png b/libs/cesium/1.111/Assets/Textures/maki/dam.png new file mode 100644 index 000000000..aed88a88f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/dam.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/danger.png b/libs/cesium/1.111/Assets/Textures/maki/danger.png new file mode 100644 index 000000000..9479572c3 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/danger.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/disability.png b/libs/cesium/1.111/Assets/Textures/maki/disability.png new file mode 100644 index 000000000..1cc355097 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/disability.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/dog-park.png b/libs/cesium/1.111/Assets/Textures/maki/dog-park.png new file mode 100644 index 000000000..3483e35b9 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/dog-park.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/embassy.png b/libs/cesium/1.111/Assets/Textures/maki/embassy.png new file mode 100644 index 000000000..46b7e1e1c Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/embassy.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/emergency-telephone.png b/libs/cesium/1.111/Assets/Textures/maki/emergency-telephone.png new file mode 100644 index 000000000..fac623968 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/emergency-telephone.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/entrance.png b/libs/cesium/1.111/Assets/Textures/maki/entrance.png new file mode 100644 index 000000000..b0ba8c5d6 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/entrance.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/farm.png b/libs/cesium/1.111/Assets/Textures/maki/farm.png new file mode 100644 index 000000000..7b03e825f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/farm.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/fast-food.png b/libs/cesium/1.111/Assets/Textures/maki/fast-food.png new file mode 100644 index 000000000..9488c263f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/fast-food.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/ferry.png b/libs/cesium/1.111/Assets/Textures/maki/ferry.png new file mode 100644 index 000000000..58c2f27a8 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/ferry.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/fire-station.png b/libs/cesium/1.111/Assets/Textures/maki/fire-station.png new file mode 100644 index 000000000..427512f1d Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/fire-station.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/fuel.png b/libs/cesium/1.111/Assets/Textures/maki/fuel.png new file mode 100644 index 000000000..dc6059b90 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/fuel.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/garden.png b/libs/cesium/1.111/Assets/Textures/maki/garden.png new file mode 100644 index 000000000..265edb8d6 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/garden.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/gift.png b/libs/cesium/1.111/Assets/Textures/maki/gift.png new file mode 100644 index 000000000..866263e16 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/gift.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/golf.png b/libs/cesium/1.111/Assets/Textures/maki/golf.png new file mode 100644 index 000000000..2169d9158 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/golf.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/grocery.png b/libs/cesium/1.111/Assets/Textures/maki/grocery.png new file mode 100644 index 000000000..05b09d4af Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/grocery.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/hairdresser.png b/libs/cesium/1.111/Assets/Textures/maki/hairdresser.png new file mode 100644 index 000000000..68fbe1e85 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/hairdresser.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/harbor.png b/libs/cesium/1.111/Assets/Textures/maki/harbor.png new file mode 100644 index 000000000..2814f3cd5 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/harbor.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/heart.png b/libs/cesium/1.111/Assets/Textures/maki/heart.png new file mode 100644 index 000000000..82e98082c Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/heart.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/heliport.png b/libs/cesium/1.111/Assets/Textures/maki/heliport.png new file mode 100644 index 000000000..953828d9e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/heliport.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/hospital.png b/libs/cesium/1.111/Assets/Textures/maki/hospital.png new file mode 100644 index 000000000..faf294e87 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/hospital.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/ice-cream.png b/libs/cesium/1.111/Assets/Textures/maki/ice-cream.png new file mode 100644 index 000000000..323c96494 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/ice-cream.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/industrial.png b/libs/cesium/1.111/Assets/Textures/maki/industrial.png new file mode 100644 index 000000000..9b3b525db Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/industrial.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/land-use.png b/libs/cesium/1.111/Assets/Textures/maki/land-use.png new file mode 100644 index 000000000..f86b21bcd Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/land-use.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/laundry.png b/libs/cesium/1.111/Assets/Textures/maki/laundry.png new file mode 100644 index 000000000..53fd20de4 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/laundry.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/library.png b/libs/cesium/1.111/Assets/Textures/maki/library.png new file mode 100644 index 000000000..8564e84a3 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/library.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/lighthouse.png b/libs/cesium/1.111/Assets/Textures/maki/lighthouse.png new file mode 100644 index 000000000..a78e21a5b Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/lighthouse.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/lodging.png b/libs/cesium/1.111/Assets/Textures/maki/lodging.png new file mode 100644 index 000000000..4e41ea6f6 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/lodging.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/logging.png b/libs/cesium/1.111/Assets/Textures/maki/logging.png new file mode 100644 index 000000000..4aeef0b7a Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/logging.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/london-underground.png b/libs/cesium/1.111/Assets/Textures/maki/london-underground.png new file mode 100644 index 000000000..94972f7dd Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/london-underground.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/marker-stroked.png b/libs/cesium/1.111/Assets/Textures/maki/marker-stroked.png new file mode 100644 index 000000000..f00d11239 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/marker-stroked.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/marker.png b/libs/cesium/1.111/Assets/Textures/maki/marker.png new file mode 100644 index 000000000..825eeca69 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/marker.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/minefield.png b/libs/cesium/1.111/Assets/Textures/maki/minefield.png new file mode 100644 index 000000000..60e174abb Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/minefield.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/mobilephone.png b/libs/cesium/1.111/Assets/Textures/maki/mobilephone.png new file mode 100644 index 000000000..a40ef9c1f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/mobilephone.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/monument.png b/libs/cesium/1.111/Assets/Textures/maki/monument.png new file mode 100644 index 000000000..5b8b7debd Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/monument.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/museum.png b/libs/cesium/1.111/Assets/Textures/maki/museum.png new file mode 100644 index 000000000..23c179003 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/museum.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/music.png b/libs/cesium/1.111/Assets/Textures/maki/music.png new file mode 100644 index 000000000..dbef56f22 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/music.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/oil-well.png b/libs/cesium/1.111/Assets/Textures/maki/oil-well.png new file mode 100644 index 000000000..a421f5aae Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/oil-well.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/park.png b/libs/cesium/1.111/Assets/Textures/maki/park.png new file mode 100644 index 000000000..741110e37 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/park.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/park2.png b/libs/cesium/1.111/Assets/Textures/maki/park2.png new file mode 100644 index 000000000..5f60dcc4d Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/park2.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/parking-garage.png b/libs/cesium/1.111/Assets/Textures/maki/parking-garage.png new file mode 100644 index 000000000..b91a811a8 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/parking-garage.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/parking.png b/libs/cesium/1.111/Assets/Textures/maki/parking.png new file mode 100644 index 000000000..6a843d93e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/parking.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/pharmacy.png b/libs/cesium/1.111/Assets/Textures/maki/pharmacy.png new file mode 100644 index 000000000..d82e4716f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/pharmacy.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/pitch.png b/libs/cesium/1.111/Assets/Textures/maki/pitch.png new file mode 100644 index 000000000..a8205e802 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/pitch.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/place-of-worship.png b/libs/cesium/1.111/Assets/Textures/maki/place-of-worship.png new file mode 100644 index 000000000..29f7c3172 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/place-of-worship.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/playground.png b/libs/cesium/1.111/Assets/Textures/maki/playground.png new file mode 100644 index 000000000..5270d3c42 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/playground.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/police.png b/libs/cesium/1.111/Assets/Textures/maki/police.png new file mode 100644 index 000000000..9787a05e9 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/police.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/polling-place.png b/libs/cesium/1.111/Assets/Textures/maki/polling-place.png new file mode 100644 index 000000000..b2d02a904 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/polling-place.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/post.png b/libs/cesium/1.111/Assets/Textures/maki/post.png new file mode 100644 index 000000000..ee7aaca7d Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/post.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/prison.png b/libs/cesium/1.111/Assets/Textures/maki/prison.png new file mode 100644 index 000000000..355cba44a Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/prison.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/rail-above.png b/libs/cesium/1.111/Assets/Textures/maki/rail-above.png new file mode 100644 index 000000000..e48d7eac7 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/rail-above.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/rail-light.png b/libs/cesium/1.111/Assets/Textures/maki/rail-light.png new file mode 100644 index 000000000..895565e00 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/rail-light.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/rail-metro.png b/libs/cesium/1.111/Assets/Textures/maki/rail-metro.png new file mode 100644 index 000000000..86078c91f Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/rail-metro.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/rail-underground.png b/libs/cesium/1.111/Assets/Textures/maki/rail-underground.png new file mode 100644 index 000000000..42cfeb7e1 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/rail-underground.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/rail.png b/libs/cesium/1.111/Assets/Textures/maki/rail.png new file mode 100644 index 000000000..8af055dde Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/rail.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/religious-christian.png b/libs/cesium/1.111/Assets/Textures/maki/religious-christian.png new file mode 100644 index 000000000..201bc81ca Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/religious-christian.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/religious-jewish.png b/libs/cesium/1.111/Assets/Textures/maki/religious-jewish.png new file mode 100644 index 000000000..e3c75f6b3 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/religious-jewish.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/religious-muslim.png b/libs/cesium/1.111/Assets/Textures/maki/religious-muslim.png new file mode 100644 index 000000000..25cbf08aa Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/religious-muslim.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/restaurant.png b/libs/cesium/1.111/Assets/Textures/maki/restaurant.png new file mode 100644 index 000000000..816282a6e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/restaurant.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/roadblock.png b/libs/cesium/1.111/Assets/Textures/maki/roadblock.png new file mode 100644 index 000000000..539f0ed84 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/roadblock.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/rocket.png b/libs/cesium/1.111/Assets/Textures/maki/rocket.png new file mode 100644 index 000000000..e6ed71877 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/rocket.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/school.png b/libs/cesium/1.111/Assets/Textures/maki/school.png new file mode 100644 index 000000000..fb20bf4e2 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/school.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/scooter.png b/libs/cesium/1.111/Assets/Textures/maki/scooter.png new file mode 100644 index 000000000..41f741649 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/scooter.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/shop.png b/libs/cesium/1.111/Assets/Textures/maki/shop.png new file mode 100644 index 000000000..11a6b755a Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/shop.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/skiing.png b/libs/cesium/1.111/Assets/Textures/maki/skiing.png new file mode 100644 index 000000000..4fc11e2e5 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/skiing.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/slaughterhouse.png b/libs/cesium/1.111/Assets/Textures/maki/slaughterhouse.png new file mode 100644 index 000000000..9b094cabd Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/slaughterhouse.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/soccer.png b/libs/cesium/1.111/Assets/Textures/maki/soccer.png new file mode 100644 index 000000000..2385daf91 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/soccer.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/square-stroked.png b/libs/cesium/1.111/Assets/Textures/maki/square-stroked.png new file mode 100644 index 000000000..fce75b0d8 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/square-stroked.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/square.png b/libs/cesium/1.111/Assets/Textures/maki/square.png new file mode 100644 index 000000000..babc9c531 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/square.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/star-stroked.png b/libs/cesium/1.111/Assets/Textures/maki/star-stroked.png new file mode 100644 index 000000000..242e42e20 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/star-stroked.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/star.png b/libs/cesium/1.111/Assets/Textures/maki/star.png new file mode 100644 index 000000000..447dd384a Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/star.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/suitcase.png b/libs/cesium/1.111/Assets/Textures/maki/suitcase.png new file mode 100644 index 000000000..a94f562e7 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/suitcase.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/swimming.png b/libs/cesium/1.111/Assets/Textures/maki/swimming.png new file mode 100644 index 000000000..b9fbdcc5d Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/swimming.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/telephone.png b/libs/cesium/1.111/Assets/Textures/maki/telephone.png new file mode 100644 index 000000000..6d57dc61a Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/telephone.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/tennis.png b/libs/cesium/1.111/Assets/Textures/maki/tennis.png new file mode 100644 index 000000000..6cb632054 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/tennis.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/theatre.png b/libs/cesium/1.111/Assets/Textures/maki/theatre.png new file mode 100644 index 000000000..772c96e4e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/theatre.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/toilets.png b/libs/cesium/1.111/Assets/Textures/maki/toilets.png new file mode 100644 index 000000000..e87cf19c0 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/toilets.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/town-hall.png b/libs/cesium/1.111/Assets/Textures/maki/town-hall.png new file mode 100644 index 000000000..1af5c7ce4 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/town-hall.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/town.png b/libs/cesium/1.111/Assets/Textures/maki/town.png new file mode 100644 index 000000000..416616951 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/town.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/triangle-stroked.png b/libs/cesium/1.111/Assets/Textures/maki/triangle-stroked.png new file mode 100644 index 000000000..131c7d94c Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/triangle-stroked.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/triangle.png b/libs/cesium/1.111/Assets/Textures/maki/triangle.png new file mode 100644 index 000000000..d9c47f421 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/triangle.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/village.png b/libs/cesium/1.111/Assets/Textures/maki/village.png new file mode 100644 index 000000000..2650af502 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/village.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/warehouse.png b/libs/cesium/1.111/Assets/Textures/maki/warehouse.png new file mode 100644 index 000000000..910f1e4c9 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/warehouse.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/waste-basket.png b/libs/cesium/1.111/Assets/Textures/maki/waste-basket.png new file mode 100644 index 000000000..a71f9e4d7 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/waste-basket.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/water.png b/libs/cesium/1.111/Assets/Textures/maki/water.png new file mode 100644 index 000000000..159a557de Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/water.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/wetland.png b/libs/cesium/1.111/Assets/Textures/maki/wetland.png new file mode 100644 index 000000000..1e8dec832 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/wetland.png differ diff --git a/libs/cesium/1.111/Assets/Textures/maki/zoo.png b/libs/cesium/1.111/Assets/Textures/maki/zoo.png new file mode 100644 index 000000000..480229993 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/maki/zoo.png differ diff --git a/libs/cesium/1.111/Assets/Textures/moonSmall.jpg b/libs/cesium/1.111/Assets/Textures/moonSmall.jpg new file mode 100644 index 000000000..47f52522e Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/moonSmall.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/pin.svg b/libs/cesium/1.111/Assets/Textures/pin.svg new file mode 100644 index 000000000..7892c3682 --- /dev/null +++ b/libs/cesium/1.111/Assets/Textures/pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/libs/cesium/1.111/Assets/Textures/waterNormals.jpg b/libs/cesium/1.111/Assets/Textures/waterNormals.jpg new file mode 100644 index 000000000..eb1baa2d6 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/waterNormals.jpg differ diff --git a/libs/cesium/1.111/Assets/Textures/waterNormalsSmall.jpg b/libs/cesium/1.111/Assets/Textures/waterNormalsSmall.jpg new file mode 100644 index 000000000..57b19d8f4 Binary files /dev/null and b/libs/cesium/1.111/Assets/Textures/waterNormalsSmall.jpg differ diff --git a/libs/cesium/1.111/Assets/approximateTerrainHeights.json b/libs/cesium/1.111/Assets/approximateTerrainHeights.json new file mode 100644 index 000000000..92e52a3b7 --- /dev/null +++ b/libs/cesium/1.111/Assets/approximateTerrainHeights.json @@ -0,0 +1 @@ +{"6-0-0":[10.66,26.9],"6-0-1":[6.74,20.61],"6-0-2":[4.04,14.2],"6-0-3":[2.99,8.89],"6-0-4":[0.89,6.8],"6-0-5":[0.83,4.22],"6-0-6":[1.01,996.64],"6-0-7":[1.65,1473.8],"6-0-8":[4.23,1405.42],"6-0-9":[3.78,9.42],"6-0-10":[0.33,10.41],"6-0-11":[0.37,9.42],"6-0-12":[-1.21,10.72],"6-0-13":[-24.75,1797.13],"6-0-14":[-25.53,3.24],"6-0-15":[-12.72,0.06],"6-0-16":[-21.01,-5.62],"6-0-17":[-25.65,-10.79],"6-0-18":[-25.81,-11.56],"6-0-19":[-23.99,-9.29],"6-0-20":[-21.03,-8.01],"6-0-21":[-17.26,28.36],"6-0-22":[-10.44,-0.18],"6-0-23":[-6.09,1.27],"6-0-24":[0.2,8.96],"6-0-25":[4.5,13.87],"6-0-26":[6.42,18.94],"6-0-27":[9.26,23.03],"6-0-28":[10.92,27.13],"6-0-29":[12.68,32.43],"6-0-30":[15.67,36.44],"6-0-31":[17.17,41.7],"6-0-32":[18.65,43.91],"6-0-33":[19.85,48.69],"6-0-34":[21.11,56.5],"6-0-35":[26.26,79],"6-0-36":[33,95.12],"6-0-37":[17.36,1242.86],"6-0-38":[17.56,1197.83],"6-0-39":[46.88,149.88],"6-0-40":[49.39,105.09],"6-0-41":[41.61,101.97],"6-0-42":[20.68,550.11],"6-0-43":[17.2,92.57],"6-0-44":[16.92,77.99],"6-0-45":[18.56,46.63],"6-0-46":[12.38,43.07],"6-0-47":[3.4,29.35],"6-0-48":[-19.81,6.49],"6-0-49":[-39.19,-4.52],"6-0-50":[-57.57,-19.1],"6-0-51":[-76.36,-29.46],"6-0-52":[-88.35,-37.9],"6-0-53":[-97.62,-44.45],"6-0-54":[-101.65,-48.19],"6-0-55":[-119.7,-51.12],"6-0-56":[-126.97,-57.56],"6-0-57":[-126.3,-60.82],"6-0-58":[-126.26,-59.93],"6-0-59":[-119.1,-54.84],"6-0-60":[-110.88,-48.64],"6-0-61":[-96.62,258.8],"6-0-62":[-90.74,2997.38],"6-0-63":[-31.67,3098.17],"6-1-0":[10.71,26.95],"6-1-1":[7.14,20.8],"5-0-0":[6.74,26.95],"6-1-2":[3.89,15.04],"6-1-3":[3.37,8.36],"5-0-1":[2.99,15.04],"6-1-4":[-0.61,6.83],"6-1-5":[-0.55,4.83],"5-0-2":[-0.61,6.83],"6-1-6":[-0.38,343.9],"6-1-7":[0.43,308.3],"5-0-3":[-0.38,1473.8],"6-1-8":[1.88,906.96],"6-1-9":[4.01,286.65],"5-0-4":[1.88,1405.42],"6-1-10":[3.66,14],"6-1-11":[1.5,14.18],"5-0-5":[0.33,14.18],"6-1-12":[2.47,10.46],"6-1-13":[-22.06,1734.24],"5-0-6":[-24.75,1797.13],"6-1-14":[-20.71,6.52],"6-1-15":[-11.23,1.31],"5-0-7":[-25.53,6.52],"6-1-16":[-20.51,-4.75],"6-1-17":[-25.7,-10],"5-0-8":[-25.7,-4.75],"6-1-18":[-26.19,-12.15],"6-1-19":[-25.87,-9.22],"5-0-9":[-26.19,-9.22],"6-1-20":[-22.92,-7.87],"6-1-21":[-16.03,0.26],"5-0-10":[-22.92,28.36],"6-1-22":[-9.59,9.27],"6-1-23":[-2.9,6.54],"5-0-11":[-10.44,9.27],"6-1-24":[0.86,11.17],"6-1-25":[4.31,18.66],"5-0-12":[0.2,18.66],"6-1-26":[6.61,18.19],"6-1-27":[8.7,22.85],"5-0-13":[6.42,23.03],"6-1-28":[9.96,23.64],"6-1-29":[9.97,31.23],"5-0-14":[9.96,32.43],"6-1-30":[13.01,34.4],"6-1-31":[16.28,38.74],"5-0-15":[13.01,41.7],"6-1-32":[16.81,39.97],"6-1-33":[17.68,44.11],"5-0-16":[16.81,48.69],"6-1-34":[18.54,49.53],"6-1-35":[22.64,65.95],"5-0-17":[18.54,79],"6-1-36":[28.21,188.59],"6-1-37":[34.36,262.29],"5-0-18":[17.36,1242.86],"6-1-38":[45.21,1074.21],"6-1-39":[25.48,561.48],"5-0-19":[17.56,1197.83],"6-1-40":[23.5,105.17],"6-1-41":[23.63,99.7],"5-0-20":[23.5,105.17],"6-1-42":[19.32,82.54],"6-1-43":[18.61,61.85],"5-0-21":[17.2,550.11],"6-1-44":[20.07,55.81],"6-1-45":[18.77,46.46],"5-0-22":[16.92,77.99],"6-1-46":[8.68,36.12],"6-1-47":[-36.78,306.25],"5-0-23":[-36.78,306.25],"6-1-48":[-22.66,5.19],"6-1-49":[-42.82,-11.13],"5-0-24":[-42.82,6.49],"6-1-50":[-57.85,-19.1],"6-1-51":[-75.69,-29.65],"5-0-25":[-76.36,-19.1],"6-1-52":[-86.83,-37.51],"6-1-53":[-96.13,-43.07],"5-0-26":[-97.62,-37.51],"6-1-54":[-101.17,-47.18],"6-1-55":[-120.92,-50.74],"5-0-27":[-120.92,-47.18],"6-1-56":[-127.84,-59.08],"6-1-57":[-130.41,-62.14],"5-0-28":[-130.41,-57.56],"6-1-58":[-130.18,-59.59],"6-1-59":[-119.25,-55.12],"5-0-29":[-130.18,-54.84],"6-1-60":[-110.99,-49.4],"6-1-61":[-97.87,-11.15],"5-0-30":[-110.99,258.8],"6-1-62":[-91.52,3443.81],"6-1-63":[-29.54,3102.34],"5-0-31":[-91.52,3443.81],"6-2-0":[10.72,26.98],"6-2-1":[7.83,20.82],"6-2-2":[3.58,15.73],"6-2-3":[2.54,7.2],"6-2-4":[-0.61,5.79],"6-2-5":[-0.51,5.62],"6-2-6":[-0.51,2.52],"6-2-7":[0.49,3.57],"6-2-8":[1.45,1107.58],"6-2-9":[4.33,935.49],"6-2-10":[6.38,447.82],"6-2-11":[2.78,22.33],"6-2-12":[4.36,15.33],"6-2-13":[-21.97,1546.34],"6-2-14":[-15.6,10.11],"6-2-15":[-8.94,3.51],"6-2-16":[-19.28,-3.75],"6-2-17":[-25.1,-8.48],"6-2-18":[-26.22,-11.53],"6-2-19":[-26.62,-11.45],"6-2-20":[-24.22,-7.64],"6-2-21":[-15.31,-2.94],"6-2-22":[-9.58,22.84],"6-2-23":[0.06,13.16],"6-2-24":[3.65,16.58],"6-2-25":[5.95,18.75],"6-2-26":[7.56,18.27],"6-2-27":[8.72,22.69],"6-2-28":[9.83,22.16],"6-2-29":[9.86,26.06],"6-2-30":[12.2,32.28],"6-2-31":[13.89,34.73],"6-2-32":[14.45,36.73],"6-2-33":[14.44,38.35],"6-2-34":[17.75,45.33],"6-2-35":[20.66,56.51],"6-2-36":[14.56,1897.33],"6-2-37":[21.73,602.11],"6-2-38":[6.52,258.3],"6-2-39":[23.9,87.93],"6-2-40":[24.73,68.5],"6-2-41":[28.76,71.42],"6-2-42":[24.12,69.11],"6-2-43":[21.79,60.23],"6-2-44":[16.26,53.69],"6-2-45":[9.6,38.48],"6-2-46":[4.35,25.76],"6-2-47":[-8.34,16.06],"6-2-48":[-23.66,-1.78],"6-2-49":[-43.1,-12.47],"6-2-50":[-57.44,-20.26],"6-2-51":[-75.02,-28.99],"6-2-52":[-85.43,-36.15],"6-2-53":[-94.37,-42.32],"6-2-54":[-100.35,-45.74],"6-2-55":[-118.16,-50.3],"6-2-56":[-127.84,-57.37],"6-2-57":[-132.46,-63.72],"6-2-58":[-131.21,-59.33],"6-2-59":[-117.94,-55.1],"6-2-60":[-110.83,-49.58],"6-2-61":[-98.68,-43.95],"6-2-62":[-90.63,3904.3],"6-2-63":[-29.54,3104.92],"6-3-0":[10.72,27.03],"6-3-1":[7.91,20.82],"5-1-0":[7.83,27.03],"6-3-2":[3.44,16.58],"6-3-3":[2.11,6.48],"5-1-1":[2.11,16.58],"4-0-0":[2.11,27.03],"6-3-4":[-0.03,6.76],"6-3-5":[-0.56,6.63],"5-1-2":[-0.61,6.76],"6-3-6":[-1.04,3.03],"6-3-7":[0.58,2.79],"5-1-3":[-1.04,3.57],"4-0-1":[-1.04,1473.8],"6-3-8":[1.26,912.84],"6-3-9":[4.33,618.8],"5-1-4":[1.26,1107.58],"6-3-10":[6.38,21.82],"6-3-11":[-9.62,311.37],"5-1-5":[-9.62,447.82],"4-0-2":[-9.62,1405.42],"6-3-12":[5.53,24.46],"6-3-13":[-16.08,1745.85],"5-1-6":[-21.97,1745.85],"6-3-14":[-2.94,13.6],"6-3-15":[-7.31,5.28],"5-1-7":[-15.6,13.6],"4-0-3":[-25.53,1797.13],"6-3-16":[-15.66,-3.16],"6-3-17":[-22.96,-8.29],"5-1-8":[-25.1,-3.16],"6-3-18":[-26.21,-10.93],"6-3-19":[-27.23,-12.17],"5-1-9":[-27.23,-10.93],"4-0-4":[-27.23,-3.16],"6-3-20":[-24.81,-7.64],"6-3-21":[-14.34,0.47],"5-1-10":[-24.81,0.47],"6-3-22":[-3.34,23.06],"6-3-23":[2.58,22.37],"5-1-11":[-9.58,23.06],"4-0-5":[-24.81,28.36],"6-3-24":[6.28,19.36],"6-3-25":[8.08,21.32],"5-1-12":[3.65,21.32],"6-3-26":[1.66,34.68],"6-3-27":[8.88,23.51],"5-1-13":[1.66,34.68],"4-0-6":[0.2,34.68],"6-3-28":[10.27,25.7],"6-3-29":[10.85,24.86],"5-1-14":[9.83,26.06],"6-3-30":[11.93,28.27],"6-3-31":[13.63,30.64],"5-1-15":[11.93,34.73],"4-0-7":[9.83,41.7],"6-3-32":[14.74,33.87],"6-3-33":[11.58,35.79],"5-1-16":[11.58,38.35],"6-3-34":[16.56,41.34],"6-3-35":[18.05,51.07],"5-1-17":[16.56,56.51],"4-0-8":[11.58,79],"6-3-36":[19.63,771.39],"6-3-37":[21.73,997.06],"5-1-18":[14.56,1897.33],"6-3-38":[22.85,125.79],"6-3-39":[22.68,58.96],"5-1-19":[6.52,258.3],"4-0-9":[6.52,1897.33],"6-3-40":[21.12,59.21],"6-3-41":[21.12,57.29],"5-1-20":[21.12,71.42],"6-3-42":[19,55.57],"6-3-43":[19,45.14],"5-1-21":[19,69.11],"4-0-10":[17.2,550.11],"6-3-44":[12.68,42.37],"6-3-45":[7.26,30.69],"5-1-22":[7.26,53.69],"6-3-46":[1.07,18.1],"6-3-47":[-14.03,6.67],"5-1-23":[-14.03,25.76],"4-0-11":[-36.78,306.25],"6-3-48":[-25.52,-4.53],"6-3-49":[-40.76,-13.01],"5-1-24":[-43.1,-1.78],"6-3-50":[-55.85,-20.05],"6-3-51":[-71.88,-27.95],"5-1-25":[-75.02,-20.05],"4-0-12":[-76.36,6.49],"6-3-52":[-83.23,-35.08],"6-3-53":[-91.13,-41.07],"5-1-26":[-94.37,-35.08],"6-3-54":[-99.02,-44.5],"6-3-55":[-114.54,-49.53],"5-1-27":[-118.16,-44.5],"4-0-13":[-120.92,-35.08],"6-3-56":[-126.73,-56.74],"6-3-57":[-132.79,-63.72],"5-1-28":[-132.79,-56.74],"6-3-58":[-132.21,-59.46],"6-3-59":[-117.45,-55.06],"5-1-29":[-132.21,-55.06],"4-0-14":[-132.79,-54.84],"6-3-60":[-110.9,-50.05],"6-3-61":[-98.89,-43.58],"5-1-30":[-110.9,-43.58],"6-3-62":[-87.67,3970.41],"6-3-63":[-29.54,3106.07],"5-1-31":[-90.63,3970.41],"4-0-15":[-110.99,3970.41],"6-4-0":[10.72,27.07],"6-4-1":[8.58,20.88],"6-4-2":[3.21,17.11],"6-4-3":[2.1,7.09],"6-4-4":[1.19,8.01],"6-4-5":[-0.22,6.22],"6-4-6":[-1.08,2.41],"6-4-7":[0.39,611.05],"6-4-8":[1.07,1101.35],"6-4-9":[4.69,428.48],"6-4-10":[9.22,653.36],"6-4-11":[10.76,27.57],"6-4-12":[-14.99,1825.97],"6-4-13":[-15.6,2084.32],"6-4-14":[3.47,18.16],"6-4-15":[-5.56,6.15],"6-4-16":[-15.54,-2.51],"6-4-17":[-23.21,-7.81],"6-4-18":[-26.71,-10.93],"6-4-19":[-28,-11.62],"6-4-20":[-24.27,-7.94],"6-4-21":[-14.62,0.97],"6-4-22":[-0.2,17.55],"6-4-23":[2.53,28.15],"6-4-24":[7.62,19.59],"6-4-25":[8.14,21.94],"6-4-26":[9.01,22.24],"6-4-27":[10.38,25.71],"6-4-28":[11.65,27.19],"6-4-29":[12.01,27.84],"6-4-30":[12.52,28.27],"6-4-31":[13.6,29.58],"6-4-32":[14.29,32.89],"6-4-33":[15.45,34.86],"6-4-34":[16.24,35.6],"6-4-35":[15.79,39.9],"6-4-36":[15.18,43.72],"6-4-37":[15.33,45.71],"6-4-38":[15.37,48.56],"6-4-39":[15.29,45.88],"6-4-40":[15.09,44.41],"6-4-41":[14.97,42.29],"6-4-42":[13.73,42.26],"6-4-43":[12.06,37.32],"6-4-44":[10.39,32.28],"6-4-45":[5.84,25.33],"6-4-46":[-0.37,17.65],"6-4-47":[-16.61,1.08],"6-4-48":[-26.32,-7.42],"6-4-49":[-40.76,-13.57],"6-4-50":[-53.73,-20.05],"6-4-51":[-70.17,-26.95],"6-4-52":[-80.79,-33.29],"6-4-53":[-89,-39.39],"6-4-54":[-97.35,-43.1],"6-4-55":[-113.49,-49.01],"6-4-56":[-126.75,-56.1],"6-4-57":[-131.59,-62.78],"6-4-58":[-131.91,-58.9],"6-4-59":[-117.3,-55.06],"6-4-60":[-111.07,-49.97],"6-4-61":[-98.75,-43.61],"6-4-62":[-87.85,3807.76],"6-4-63":[-29.54,3106.13],"6-5-0":[10.78,27.12],"6-5-1":[8.58,21.1],"5-2-0":[8.58,27.12],"6-5-2":[3.17,17.66],"6-5-3":[0.92,7.26],"5-2-1":[0.92,17.66],"6-5-4":[-0.48,8],"6-5-5":[-2.17,1.64],"5-2-2":[-2.17,8.01],"6-5-6":[-0.74,0.57],"6-5-7":[-0.44,977.81],"5-2-3":[-1.08,977.81],"6-5-8":[1.07,1285.63],"6-5-9":[5.92,689.98],"5-2-4":[1.07,1285.63],"6-5-10":[9.22,574.41],"6-5-11":[12.46,29.76],"5-2-5":[9.22,653.36],"6-5-12":[-36.25,2863.96],"6-5-13":[-3.12,25.08],"5-2-6":[-36.25,2863.96],"6-5-14":[3.54,19.59],"6-5-15":[-6.33,5.94],"5-2-7":[-6.33,19.59],"6-5-16":[-17.4,-2.51],"6-5-17":[-24.54,-7.99],"5-2-8":[-24.54,-2.51],"6-5-18":[-27.22,-11.55],"6-5-19":[-27.57,-11.81],"5-2-9":[-28,-10.93],"6-5-20":[-24.98,-7.94],"6-5-21":[-15.88,-0.19],"5-2-10":[-24.98,0.97],"6-5-22":[-3.57,8.23],"6-5-23":[3.2,68.18],"5-2-11":[-3.57,68.18],"6-5-24":[7.47,18.67],"6-5-25":[7.19,18.1],"5-2-12":[7.19,21.94],"6-5-26":[7.38,20.47],"6-5-27":[8.56,27.76],"5-2-13":[7.38,27.76],"6-5-28":[11.8,30.78],"6-5-29":[12.82,30.66],"5-2-14":[11.65,30.78],"6-5-30":[13.61,32.3],"6-5-31":[13.86,32.65],"5-2-15":[12.52,32.65],"6-5-32":[14.35,32.3],"6-5-33":[15.09,34.31],"5-2-16":[14.29,34.86],"6-5-34":[14.43,33.96],"6-5-35":[14.39,37.54],"5-2-17":[14.39,39.9],"6-5-36":[12.64,37.44],"6-5-37":[11.66,31.1],"5-2-18":[11.66,45.71],"6-5-38":[11.75,38.62],"6-5-39":[12.15,31.7],"5-2-19":[11.75,48.56],"6-5-40":[10.41,30.13],"6-5-41":[10.41,29.27],"5-2-20":[10.41,44.41],"6-5-42":[10.26,28.59],"6-5-43":[8.59,25.16],"5-2-21":[8.59,42.26],"6-5-44":[6.7,23.39],"6-5-45":[4.27,19.09],"5-2-22":[4.27,32.28],"6-5-46":[-1.36,10.74],"6-5-47":[-17.27,-0.35],"5-2-23":[-17.27,17.65],"6-5-48":[-26.4,-8.28],"6-5-49":[-40.48,-13.41],"5-2-24":[-40.76,-7.42],"6-5-50":[-51.99,-19.83],"6-5-51":[-66.22,-25.93],"5-2-25":[-70.17,-19.83],"6-5-52":[-77.24,-31.84],"6-5-53":[-85.9,-37.71],"5-2-26":[-89,-31.84],"6-5-54":[-96.28,-42.09],"6-5-55":[-112.03,-48.58],"5-2-27":[-113.49,-42.09],"6-5-56":[-123.43,-55.02],"6-5-57":[-130.93,-62.4],"5-2-28":[-131.59,-55.02],"6-5-58":[-131.32,-59.02],"6-5-59":[-121.42,-54.72],"5-2-29":[-131.91,-54.72],"6-5-60":[-111.23,146.66],"6-5-61":[-98.4,-43.74],"5-2-30":[-111.23,146.66],"6-5-62":[-87.94,3579.75],"6-5-63":[-29.55,3100.28],"5-2-31":[-87.94,3807.76],"6-6-0":[10.89,27.18],"6-6-1":[8.99,21.34],"6-6-2":[3.2,17.98],"6-6-3":[0.5,6.62],"6-6-4":[-2.95,6.62],"6-6-5":[-3.68,0.42],"6-6-6":[-2.02,37.03],"6-6-7":[-1.02,1376.89],"6-6-8":[3.71,982.62],"6-6-9":[7.43,985.82],"6-6-10":[11.94,1234.98],"6-6-11":[13.11,705.14],"6-6-12":[-89.41,2536.32],"6-6-13":[3.4,22.83],"6-6-14":[2.65,19.52],"6-6-15":[-7.99,5.64],"6-6-16":[-18.67,-3.61],"6-6-17":[-26.52,-9.15],"6-6-18":[-29.62,-12.33],"6-6-19":[-29.54,-12.54],"6-6-20":[-27.32,-8.27],"6-6-21":[-18.45,-1.95],"6-6-22":[-6.48,7.14],"6-6-23":[3.01,190.01],"6-6-24":[6.51,138.47],"6-6-25":[5.69,15.96],"6-6-26":[5.4,16.51],"6-6-27":[6.05,22.74],"6-6-28":[9.02,28.21],"6-6-29":[-17.46,51.55],"6-6-30":[13.15,50.16],"6-6-31":[15.34,33.27],"6-6-32":[14.32,31.91],"6-6-33":[13.67,32.66],"6-6-34":[12.2,30.79],"6-6-35":[8.78,41.94],"6-6-36":[9.46,29.88],"6-6-37":[9.15,25.29],"6-6-38":[9.38,32.55],"6-6-39":[9.54,25.04],"6-6-40":[7.99,24.13],"6-6-41":[6.63,21.25],"6-6-42":[6.03,21.21],"6-6-43":[5.82,20.07],"6-6-44":[4.24,16.55],"6-6-45":[2.14,12.64],"6-6-46":[-4.05,7.66],"6-6-47":[-16.62,-0.23],"6-6-48":[-26.47,-8.01],"6-6-49":[-39.59,-13.39],"6-6-50":[-50.27,-19.08],"6-6-51":[-63.69,-24.71],"6-6-52":[-73.99,-30.15],"6-6-53":[-84.19,-35.56],"6-6-54":[-95.47,-40.93],"6-6-55":[-110.06,-48.04],"6-6-56":[-123.5,-54.77],"6-6-57":[-129.75,-61.69],"6-6-58":[-129.75,-62.06],"6-6-59":[-121.74,-53.84],"6-6-60":[-109.45,382.35],"6-6-61":[-98.13,-36.44],"6-6-62":[-87.49,3110.85],"6-6-63":[-29.55,3090.17],"6-7-0":[11.05,27.23],"6-7-1":[8.99,21.62],"5-3-0":[8.99,27.23],"6-7-2":[3.11,18.02],"6-7-3":[-1.88,4.75],"5-3-1":[-1.88,18.02],"4-1-0":[-1.88,27.23],"6-7-4":[-2.23,3.16],"6-7-5":[-10.48,-0.69],"5-3-2":[-10.48,6.62],"6-7-6":[-6.6,40.51],"6-7-7":[4.26,1489.28],"5-3-3":[-6.6,1489.28],"4-1-1":[-10.48,1489.28],"3-0-0":[-10.48,1489.28],"6-7-8":[5.88,1063.92],"6-7-9":[20.7,1104.57],"5-3-4":[3.71,1104.57],"6-7-10":[14.91,1599.96],"6-7-11":[-8.97,1740.57],"5-3-5":[-8.97,1740.57],"4-1-2":[-8.97,1740.57],"6-7-12":[-61.85,2512.65],"6-7-13":[5.57,22.76],"5-3-6":[-89.41,2536.32],"6-7-14":[0.64,18.21],"6-7-15":[-12.27,3.05],"5-3-7":[-12.27,19.52],"4-1-3":[-89.41,2863.96],"3-0-1":[-89.41,2863.96],"6-7-16":[-22.25,-4.09],"6-7-17":[-29.14,-10.07],"5-3-8":[-29.14,-3.61],"6-7-18":[-31.98,-13.47],"6-7-19":[-31.86,-13.83],"5-3-9":[-31.98,-12.33],"4-1-4":[-31.98,-2.51],"6-7-20":[-30.11,-10],"6-7-21":[-23.56,-3.54],"5-3-10":[-30.11,-1.95],"6-7-22":[-13.91,4.69],"6-7-23":[0.99,14.6],"5-3-11":[-13.91,190.01],"4-1-5":[-30.11,190.01],"3-0-2":[-31.98,190.01],"6-7-24":[3.42,1613.09],"6-7-25":[5.02,15.52],"5-3-12":[3.42,1613.09],"6-7-26":[3.25,11],"6-7-27":[3.44,17.46],"5-3-13":[3.25,22.74],"4-1-6":[3.25,1613.09],"6-7-28":[7.09,27.01],"6-7-29":[10.93,32.99],"5-3-14":[-17.46,51.55],"6-7-30":[11.96,44.95],"6-7-31":[15.14,36.64],"5-3-15":[11.96,50.16],"4-1-7":[-17.46,51.55],"3-0-3":[-17.46,1613.09],"6-7-32":[14.44,33.46],"6-7-33":[12.08,29.13],"5-3-16":[12.08,33.46],"6-7-34":[9.43,27.02],"6-7-35":[7.86,36.94],"5-3-17":[7.86,41.94],"4-1-8":[7.86,41.94],"6-7-36":[7.22,22.36],"6-7-37":[6.79,18.93],"5-3-18":[6.79,29.88],"6-7-38":[1.56,124.3],"6-7-39":[2.32,568.37],"5-3-19":[1.56,568.37],"4-1-9":[1.56,568.37],"3-0-4":[1.56,1897.33],"6-7-40":[4.25,19.09],"6-7-41":[3.01,14.77],"5-3-20":[3.01,24.13],"6-7-42":[2.34,12.33],"6-7-43":[2.29,11.63],"5-3-21":[2.29,21.21],"4-1-10":[2.29,44.41],"6-7-44":[1.26,10.73],"6-7-45":[0.76,8.15],"5-3-22":[0.76,16.55],"6-7-46":[-6.78,4.11],"6-7-47":[-16.16,-2.7],"5-3-23":[-16.62,7.66],"4-1-11":[-17.27,32.28],"3-0-5":[-36.78,550.11],"6-7-48":[-26.58,-6.48],"6-7-49":[-40.15,-13.72],"5-3-24":[-40.15,-6.48],"6-7-50":[-47.56,-19.18],"6-7-51":[-60.03,-23.45],"5-3-25":[-63.69,-19.08],"4-1-12":[-70.17,-6.48],"6-7-52":[-69.12,-28.3],"6-7-53":[-81.45,-33.85],"5-3-26":[-84.19,-28.3],"6-7-54":[-93.97,-39.48],"6-7-55":[-109.85,-47.07],"5-3-27":[-110.06,-39.48],"4-1-13":[-113.49,-28.3],"3-0-6":[-120.92,6.49],"6-7-56":[-122.72,-54.61],"6-7-57":[-128.44,-60.84],"5-3-28":[-129.75,-54.61],"6-7-58":[-128.99,-62.74],"6-7-59":[-122.71,340.29],"5-3-29":[-129.75,340.29],"4-1-14":[-131.91,340.29],"6-7-60":[-107.62,329.56],"6-7-61":[-97.3,5.39],"5-3-30":[-109.45,382.35],"6-7-62":[-86.37,3872.33],"6-7-63":[-29.55,3078.77],"5-3-31":[-87.49,3872.33],"4-1-15":[-111.23,3872.33],"3-0-7":[-132.79,3970.41],"6-8-0":[11.25,27.28],"6-8-1":[8.74,21.81],"6-8-2":[2.69,17.9],"6-8-3":[-2.96,4.36],"6-8-4":[-4.02,0.26],"6-8-5":[-11.5,-1.15],"6-8-6":[-10.53,46.22],"6-8-7":[12.55,2230.09],"6-8-8":[36.02,2322.75],"6-8-9":[40.43,1231.31],"6-8-10":[15.75,1286.11],"6-8-11":[-30.38,2365.52],"6-8-12":[7.93,340.69],"6-8-13":[5.51,23.37],"6-8-14":[-1.67,15.39],"6-8-15":[-16.52,0.65],"6-8-16":[-24.69,-6.49],"6-8-17":[-32.29,-11.47],"6-8-18":[-35.39,-14.68],"6-8-19":[-34.56,-15.15],"6-8-20":[-31.71,-12.28],"6-8-21":[-26.05,-7.16],"6-8-22":[-18.78,1],"6-8-23":[-3.52,7.31],"6-8-24":[-3.45,4224.76],"6-8-25":[1,4199.19],"6-8-26":[0.32,10.2],"6-8-27":[0.52,13.28],"6-8-28":[4.26,20.81],"6-8-29":[8.36,29.82],"6-8-30":[12.88,34],"6-8-31":[-1.72,39.3],"6-8-32":[14.17,33.54],"6-8-33":[6.64,33.65],"6-8-34":[6.42,29.43],"6-8-35":[5.61,18.21],"6-8-36":[5.17,15.57],"6-8-37":[5.39,18.43],"6-8-38":[3.83,14.4],"6-8-39":[3.25,45.92],"6-8-40":[1.53,11.5],"6-8-41":[0.06,8],"6-8-42":[-0.02,5.43],"6-8-43":[0.21,5.22],"6-8-44":[-2.28,4.54],"6-8-45":[-2.62,2.59],"6-8-46":[-8.98,1.16],"6-8-47":[-17.03,-3.98],"6-8-48":[-25.84,-6.48],"6-8-49":[-38.78,-13.07],"6-8-50":[-45.69,-18.94],"6-8-51":[-56.6,-22.56],"6-8-52":[-66.31,-26.79],"6-8-53":[-78.98,-32.27],"6-8-54":[-91.83,-38.18],"6-8-55":[-109.23,-46.25],"6-8-56":[-120.92,-53.72],"6-8-57":[-127.6,-60.42],"6-8-58":[-128.14,-62.51],"6-8-59":[-122.71,772.25],"6-8-60":[-106.38,254.93],"6-8-61":[-97.02,77.33],"6-8-62":[-84.41,3797.09],"6-8-63":[-29.55,3066.33],"6-9-0":[11.45,27.35],"6-9-1":[8.74,22.1],"5-4-0":[8.74,27.35],"6-9-2":[2.31,17.45],"6-9-3":[-4.87,3.84],"5-4-1":[-4.87,17.9],"6-9-4":[-6.12,-0.5],"6-9-5":[-15.2,-2.83],"5-4-2":[-15.2,0.26],"6-9-6":[-15.2,52.5],"6-9-7":[4.19,2249.45],"5-4-3":[-15.2,2249.45],"6-9-8":[56.64,1957.92],"6-9-9":[69.73,3549.52],"5-4-4":[36.02,3549.52],"6-9-10":[-8.73,3498.22],"6-9-11":[-44.9,2301.61],"5-4-5":[-44.9,3498.22],"6-9-12":[6.61,28.12],"6-9-13":[5.07,22.28],"5-4-6":[5.07,340.69],"6-9-14":[-6.22,10.49],"6-9-15":[-22.36,-1.66],"5-4-7":[-22.36,15.39],"6-9-16":[-30.48,-8.53],"6-9-17":[-38.55,-13.07],"5-4-8":[-38.55,-6.49],"6-9-18":[-40.53,-16.27],"6-9-19":[-40.96,-16.03],"5-4-9":[-40.96,-14.68],"6-9-20":[-37.32,-13.34],"6-9-21":[-28.36,-9.72],"5-4-10":[-37.32,-7.16],"6-9-22":[-23.57,-3.51],"6-9-23":[-16.83,1.38],"5-4-11":[-23.57,7.31],"6-9-24":[-11.52,8.24],"6-9-25":[-7.91,8.27],"5-4-12":[-11.52,4224.76],"6-9-26":[-7.04,2.76],"6-9-27":[-5.19,7.73],"5-4-13":[-7.04,13.28],"6-9-28":[1.39,14.78],"6-9-29":[5.73,25.09],"5-4-14":[1.39,29.82],"6-9-30":[10.36,28.45],"6-9-31":[12.39,30.86],"5-4-15":[-1.72,39.3],"6-9-32":[13.54,31.34],"6-9-33":[10.49,28.46],"5-4-16":[6.64,33.65],"6-9-34":[7.62,22.63],"6-9-35":[4.58,15.89],"5-4-17":[4.58,29.43],"6-9-36":[2.95,11.11],"6-9-37":[-14.06,364.92],"5-4-18":[-14.06,364.92],"6-9-38":[1.83,11.45],"6-9-39":[-0.79,7.86],"5-4-19":[-0.79,45.92],"6-9-40":[-2.81,87.14],"6-9-41":[-2.9,2.06],"5-4-20":[-2.9,87.14],"6-9-42":[-3.32,0.4],"6-9-43":[-4.29,0.66],"5-4-21":[-4.29,5.43],"6-9-44":[-7.14,0.22],"6-9-45":[-8.9,-1.28],"5-4-22":[-8.9,4.54],"6-9-46":[-12.57,-1.34],"6-9-47":[-20.7,-5.15],"5-4-23":[-20.7,1.16],"6-9-48":[-26.09,-8.73],"6-9-49":[-37.6,-13.13],"5-4-24":[-38.78,-6.48],"6-9-50":[-45.9,-17.8],"6-9-51":[-53.38,-22.53],"5-4-25":[-56.6,-17.8],"6-9-52":[-62.81,-25.9],"6-9-53":[-76.09,-30.77],"5-4-26":[-78.98,-25.9],"6-9-54":[-90.63,-37.36],"6-9-55":[-107.41,-45.63],"5-4-27":[-109.23,-37.36],"6-9-56":[-119.96,-53.04],"6-9-57":[-125.63,-58.67],"5-4-28":[-127.6,-53.04],"6-9-58":[-126.31,-58.13],"6-9-59":[-119.94,1007.23],"5-4-29":[-128.14,1007.23],"6-9-60":[-106.59,462.57],"6-9-61":[-96,462.57],"5-4-30":[-106.59,462.57],"6-9-62":[-84.94,2783.57],"6-9-63":[-29.55,3039.73],"5-4-31":[-84.94,3797.09],"6-10-0":[11.66,27.39],"6-10-1":[8.8,22.47],"6-10-2":[2.11,17.55],"6-10-3":[-5.07,2.92],"6-10-4":[-6.14,-2.32],"6-10-5":[-16.63,-2.83],"6-10-6":[-16.98,31.96],"6-10-7":[-2.48,2250.87],"6-10-8":[75.19,1714.22],"6-10-9":[30.42,6207.28],"6-10-10":[-317.19,2318.12],"6-10-11":[5.09,380.19],"6-10-12":[6.09,24.81],"6-10-13":[0.81,18.21],"6-10-14":[-11.19,6.41],"6-10-15":[-27.78,-4.11],"6-10-16":[-35.96,-11.54],"6-10-17":[-43.9,-15.64],"6-10-18":[-45.01,-19.38],"6-10-19":[-44.42,-18.81],"6-10-20":[-43.08,-14.67],"6-10-21":[-34.29,-11.93],"6-10-22":[-28.41,-8.91],"6-10-23":[-23.59,-5.93],"6-10-24":[-20.03,-3.95],"6-10-25":[-15.21,-3.18],"6-10-26":[-11.97,-2.83],"6-10-27":[-7.59,2.35],"6-10-28":[-2.35,10.55],"6-10-29":[2.75,19.96],"6-10-30":[6.93,24.2],"6-10-31":[9.9,28.1],"6-10-32":[11.26,27.88],"6-10-33":[8.09,27.31],"6-10-34":[4.97,20.7],"6-10-35":[0.28,29.22],"6-10-36":[0.02,34.33],"6-10-37":[-7.05,982.44],"6-10-38":[-47,1738.21],"6-10-39":[-8.61,368.88],"6-10-40":[-9.1,399.3],"6-10-41":[-6.13,-0.9],"6-10-42":[-5.03,-1.07],"6-10-43":[-7.02,-1.37],"6-10-44":[-10.1,-2.29],"6-10-45":[-14.95,-3.92],"6-10-46":[-16.66,-4.4],"6-10-47":[-23.64,-6.94],"6-10-48":[-27.68,-10.44],"6-10-49":[-35.5,-13.58],"6-10-50":[-42.84,-16.97],"6-10-51":[-51.64,-20.99],"6-10-52":[-60.08,-24.38],"6-10-53":[-74.73,-29.94],"6-10-54":[-88.65,-36.56],"6-10-55":[-106.09,-44.4],"6-10-56":[-116.67,-51.74],"6-10-57":[-123.8,-57.34],"6-10-58":[-124.5,-55.65],"6-10-59":[-112.82,883.88],"6-10-60":[-105.11,570.37],"6-10-61":[-5.84,549.47],"6-10-62":[-84.94,2425.34],"6-10-63":[-29.55,3008.67],"6-11-0":[11.74,27.45],"6-11-1":[8.8,23.16],"5-5-0":[8.8,27.45],"6-11-2":[1.89,18.15],"6-11-3":[-6.35,2.66],"5-5-1":[-6.35,18.15],"4-2-0":[-6.35,27.45],"6-11-4":[-8.07,-2.32],"6-11-5":[-16.52,-3.47],"5-5-2":[-16.63,-2.32],"6-11-6":[-17.37,5.59],"6-11-7":[-2.46,2337.17],"5-5-3":[-17.37,2337.17],"4-2-1":[-17.37,2337.17],"6-11-8":[96.66,1624.53],"6-11-9":[111.02,4180.16],"5-5-4":[30.42,6207.28],"6-11-10":[-100.65,4014.2],"6-11-11":[5.56,27.09],"5-5-5":[-317.19,4014.2],"4-2-2":[-317.19,6207.28],"6-11-12":[4.91,20.02],"6-11-13":[-4.06,12.89],"5-5-6":[-4.06,24.81],"6-11-14":[-18.2,1.04],"6-11-15":[-33.3,-7.02],"5-5-7":[-33.3,6.41],"4-2-3":[-33.3,340.69],"6-11-16":[-42.2,-14.25],"6-11-17":[-50.16,-18.62],"5-5-8":[-50.16,-11.54],"6-11-18":[-52.64,-21.88],"6-11-19":[-51.01,-21.95],"5-5-9":[-52.64,-18.81],"4-2-4":[-52.64,-6.49],"6-11-20":[-49.53,-17.94],"6-11-21":[-42.64,-14.48],"5-5-10":[-49.53,-11.93],"6-11-22":[-34.91,-12.52],"6-11-23":[-31.5,-10.6],"5-5-11":[-34.91,-5.93],"4-2-5":[-49.53,7.31],"6-11-24":[-29.55,-8.2],"6-11-25":[-23.86,-6.38],"5-5-12":[-29.55,-3.18],"6-11-26":[-19.87,-4.46],"6-11-27":[-13.37,-1.47],"5-5-13":[-19.87,2.35],"4-2-6":[-29.55,4224.76],"6-11-28":[-8.39,3.39],"6-11-29":[-0.38,13.1],"5-5-14":[-8.39,19.96],"6-11-30":[3.79,18.24],"6-11-31":[7.04,23.18],"5-5-15":[3.79,28.1],"4-2-7":[-8.39,39.3],"6-11-32":[8.41,23.23],"6-11-33":[6.61,21.8],"5-5-16":[6.61,27.88],"6-11-34":[1.94,15.53],"6-11-35":[-0.83,8.74],"5-5-17":[-0.83,29.22],"4-2-8":[-0.83,33.65],"6-11-36":[-5.27,4.25],"6-11-37":[-19.17,108.86],"5-5-18":[-19.17,982.44],"6-11-38":[-10.07,418.12],"6-11-39":[-13.37,-1.41],"5-5-19":[-47,1738.21],"4-2-9":[-47,1738.21],"6-11-40":[-14.02,394.12],"6-11-41":[-9.37,-2.74],"5-5-20":[-14.02,399.3],"6-11-42":[-11.22,-2.09],"6-11-43":[-11.68,-2.6],"5-5-21":[-11.68,-1.07],"4-2-10":[-14.02,399.3],"6-11-44":[-14.51,-3.6],"6-11-45":[-18.66,-5.6],"5-5-22":[-18.66,-2.29],"6-11-46":[-22.45,-7.76],"6-11-47":[-26.05,-8.93],"5-5-23":[-26.05,-4.4],"4-2-11":[-26.05,4.54],"6-11-48":[-29.53,-11.9],"6-11-49":[-34.85,-13.59],"5-5-24":[-35.5,-10.44],"6-11-50":[-40.97,-16.5],"6-11-51":[-48.53,-20.15],"5-5-25":[-51.64,-16.5],"4-2-12":[-56.6,-6.48],"6-11-52":[-58.21,-23.76],"6-11-53":[-72.99,-29.48],"5-5-26":[-74.73,-23.76],"6-11-54":[-86.21,-36.12],"6-11-55":[-103.18,-43.08],"5-5-27":[-106.09,-36.12],"4-2-13":[-109.23,-23.76],"6-11-56":[-113.79,-50.3],"6-11-57":[-120.63,-55.96],"5-5-28":[-123.8,-50.3],"6-11-58":[-122.11,-30.17],"6-11-59":[-109.73,896.34],"5-5-29":[-124.5,896.34],"4-2-14":[-128.14,1007.23],"6-11-60":[-50.89,667.99],"6-11-61":[119.31,564.8],"5-5-30":[-105.11,667.99],"6-11-62":[-24.93,3379.23],"6-11-63":[-29.55,2977.45],"5-5-31":[-84.94,3379.23],"4-2-15":[-106.59,3797.09],"6-12-0":[11.81,27.54],"6-12-1":[9.27,23.85],"6-12-2":[1.81,18.51],"6-12-3":[-7.36,2.56],"6-12-4":[-10.2,-3.36],"6-12-5":[-14.2,-3.64],"6-12-6":[-17.25,-1.46],"6-12-7":[-2.4,2626.58],"6-12-8":[127.44,1971.14],"6-12-9":[267.44,4964.36],"6-12-10":[-3.84,5003.13],"6-12-11":[5.53,17.77],"6-12-12":[1.22,17.44],"6-12-13":[-9.28,8.08],"6-12-14":[-24.33,-2.54],"6-12-15":[-38.37,-10.05],"6-12-16":[-46.59,-16.83],"6-12-17":[-57.08,-21.69],"6-12-18":[-58.76,-25],"6-12-19":[-58.51,-24.8],"6-12-20":[-55.3,-22.36],"6-12-21":[-47.72,-17.53],"6-12-22":[-42.01,-15.94],"6-12-23":[-37.95,-14.94],"6-12-24":[-36.96,-12.18],"6-12-25":[-32.38,-10.05],"6-12-26":[-27.79,-7.26],"6-12-27":[-19.35,-4.41],"6-12-28":[-13.92,-0.37],"6-12-29":[-6.27,6.6],"6-12-30":[-0.21,13.43],"6-12-31":[3.37,18.86],"6-12-32":[5.2,19.08],"6-12-33":[3.85,16.44],"6-12-34":[1,12.4],"6-12-35":[-5.91,3.06],"6-12-36":[-9.39,-0.47],"6-12-37":[-17.5,26.39],"6-12-38":[-14.85,15.85],"6-12-39":[-17.05,13.14],"6-12-40":[-17.31,-5.04],"6-12-41":[-154.99,367.1],"6-12-42":[-15.2,-4.66],"6-12-43":[-16.85,-5.49],"6-12-44":[-17.72,-5.68],"6-12-45":[-20.88,-7.48],"6-12-46":[-23.23,-9.37],"6-12-47":[-28.2,-11.32],"6-12-48":[-31.15,-13.01],"6-12-49":[-35.22,-15.16],"6-12-50":[-39.72,-16.79],"6-12-51":[-47.41,-19.15],"6-12-52":[-57.34,-23.29],"6-12-53":[-72.24,-28.77],"6-12-54":[-84.64,-35.59],"6-12-55":[-100.6,-41.81],"6-12-56":[-110.81,-48.6],"6-12-57":[-116.73,-54.27],"6-12-58":[-118.77,732.21],"6-12-59":[-106.63,1118.71],"6-12-60":[70.79,697.82],"6-12-61":[154.07,547.44],"6-12-62":[132.66,3177.52],"6-12-63":[-29.55,2958.4],"6-13-0":[11.89,27.69],"6-13-1":[9.27,24.72],"5-6-0":[9.27,27.69],"6-13-2":[1.77,18.69],"6-13-3":[-8.12,2.29],"5-6-1":[-8.12,18.69],"6-13-4":[-12.79,-3.7],"6-13-5":[-16.12,-5.11],"5-6-2":[-16.12,-3.36],"6-13-6":[-16.46,-1.51],"6-13-7":[-4.5,2443.65],"5-6-3":[-17.25,2626.58],"6-13-8":[159.96,1955.52],"6-13-9":[264.67,3305.19],"5-6-4":[127.44,4964.36],"6-13-10":[-0.63,5501.18],"6-13-11":[3.4,16.19],"5-6-5":[-3.84,5501.18],"6-13-12":[-4.33,12.53],"6-13-13":[-18.11,1.23],"5-6-6":[-18.11,17.44],"6-13-14":[-32.01,-5.03],"6-13-15":[-45.8,-13.68],"5-6-7":[-45.8,-2.54],"6-13-16":[-52.61,-19.6],"6-13-17":[-65.07,-24.29],"5-6-8":[-65.07,-16.83],"6-13-18":[-66.2,-29.09],"6-13-19":[-65.62,-28.05],"5-6-9":[-66.2,-24.8],"6-13-20":[-61.26,-25.11],"6-13-21":[-55.52,-21.57],"5-6-10":[-61.26,-17.53],"6-13-22":[-51.8,-19.25],"6-13-23":[-47.07,-19.08],"5-6-11":[-51.8,-14.94],"6-13-24":[-46.24,-17.09],"6-13-25":[-43.41,-14.52],"5-6-12":[-46.24,-10.05],"6-13-26":[-38.71,-10.51],"6-13-27":[-27.96,-7.34],"5-6-13":[-38.71,-4.41],"6-13-28":[-23.22,-4.17],"6-13-29":[-16.97,-0.2],"5-6-14":[-23.22,6.6],"6-13-30":[-9.11,5.15],"6-13-31":[-0.62,10.05],"5-6-15":[-9.11,18.86],"6-13-32":[1.62,10.97],"6-13-33":[1.64,9.15],"5-6-16":[1.62,19.08],"6-13-34":[-12.01,574],"6-13-35":[-8.4,3.2],"5-6-17":[-12.01,574],"6-13-36":[-12.41,-2.96],"6-13-37":[-12.61,18.94],"5-6-18":[-17.5,26.39],"6-13-38":[-17.05,15.14],"6-13-39":[-23.08,21.33],"5-6-19":[-23.08,21.33],"6-13-40":[-20.89,-7.97],"6-13-41":[-20.89,-4.36],"5-6-20":[-154.99,367.1],"6-13-42":[-17.41,-4.92],"6-13-43":[-19.71,-8.03],"5-6-21":[-19.71,-4.66],"6-13-44":[-19.71,-8.36],"6-13-45":[-23.09,-9.22],"5-6-22":[-23.09,-5.68],"6-13-46":[-26.22,-10.62],"6-13-47":[-29.93,-11.92],"5-6-23":[-29.93,-9.37],"6-13-48":[-33.2,-14.27],"6-13-49":[-36.69,-15.88],"5-6-24":[-36.69,-13.01],"6-13-50":[-37.72,-16.79],"6-13-51":[-46.58,-18.04],"5-6-25":[-47.41,-16.79],"6-13-52":[-56.13,-21.69],"6-13-53":[-71.1,-28.36],"5-6-26":[-72.24,-21.69],"6-13-54":[-82.17,-35.16],"6-13-55":[-96.84,-41.49],"5-6-27":[-100.6,-35.16],"6-13-56":[-107.17,-47.12],"6-13-57":[-113.4,-52.39],"5-6-28":[-116.73,-47.12],"6-13-58":[-113.8,799.79],"6-13-59":[542.77,1415.24],"5-6-29":[-118.77,1415.24],"6-13-60":[220.94,696.8],"6-13-61":[196.25,578.81],"5-6-30":[70.79,697.82],"6-13-62":[157.82,2807.42],"6-13-63":[-29.55,2933.27],"5-6-31":[-29.55,3177.52],"6-14-0":[11.98,27.81],"6-14-1":[9.31,25.28],"6-14-2":[1.78,18.69],"6-14-3":[-8.42,2.84],"6-14-4":[-14.71,-4.24],"6-14-5":[-17.71,-6.65],"6-14-6":[-16.95,-3.21],"6-14-7":[-6.95,1629.08],"6-14-8":[241.64,2195.84],"6-14-9":[291.07,2352.25],"6-14-10":[-17.81,5990.12],"6-14-11":[-1.23,1250.79],"6-14-12":[-8.91,5.47],"6-14-13":[-24.35,-2.9],"6-14-14":[-37.36,-9.51],"6-14-15":[-50.8,-17],"6-14-16":[-57.16,-23.13],"6-14-17":[-69.06,-26.79],"6-14-18":[-71.13,-32.26],"6-14-19":[-70.57,-30.63],"6-14-20":[-66.49,-28.02],"6-14-21":[-61.06,-25.99],"6-14-22":[-58.98,-23.49],"6-14-23":[-55.47,-22.95],"6-14-24":[-54.23,-21.9],"6-14-25":[-50.55,-19.65],"6-14-26":[-46.21,-14.46],"6-14-27":[-36.47,-11.82],"6-14-28":[-32.84,-8.88],"6-14-29":[-24.98,-4.86],"6-14-30":[-17.66,-0.54],"6-14-31":[-8.29,3.14],"6-14-32":[-4.33,4.38],"6-14-33":[-3.04,4.04],"6-14-34":[-30.12,444.87],"6-14-35":[-45.64,1253.85],"6-14-36":[-15.82,-4.2],"6-14-37":[-18.57,11.81],"6-14-38":[-20.38,12.56],"6-14-39":[-34.53,29.28],"6-14-40":[-23.61,-9.96],"6-14-41":[-23.65,-8.25],"6-14-42":[-22.26,-7.63],"6-14-43":[-21.36,-8.79],"6-14-44":[-21.36,-9.44],"6-14-45":[-23.95,-9.8],"6-14-46":[-26.93,-11.59],"6-14-47":[-30.83,-13.34],"6-14-48":[-34.25,-14.96],"6-14-49":[-36.46,-16.64],"6-14-50":[-38.97,-17.15],"6-14-51":[-43.17,-17.84],"6-14-52":[-55.2,-20.47],"6-14-53":[-70.32,-27.45],"6-14-54":[-81.47,-34.2],"6-14-55":[-94.24,-40.37],"6-14-56":[-103.99,-46.19],"6-14-57":[-110.48,-50.32],"6-14-58":[-111.11,1501.65],"6-14-59":[649.8,1730.64],"6-14-60":[290.61,752.21],"6-14-61":[298.29,587.99],"6-14-62":[230.04,3232.04],"6-14-63":[-29.54,2914.46],"6-15-0":[12.07,27.95],"6-15-1":[9.31,25.8],"5-7-0":[9.31,27.95],"6-15-2":[2,18.62],"6-15-3":[-9.36,3.57],"5-7-1":[-9.36,18.69],"4-3-0":[-9.36,27.95],"6-15-4":[-15.66,-4.24],"6-15-5":[-19.9,-7.76],"5-7-2":[-19.9,-4.24],"6-15-6":[-18.71,-3.02],"6-15-7":[-10.73,1677.33],"5-7-3":[-18.71,1677.33],"4-3-1":[-19.9,2626.58],"3-1-0":[-19.9,2626.58],"6-15-8":[6.28,2201.64],"6-15-9":[372.06,2244.89],"5-7-4":[6.28,2352.25],"6-15-10":[-3.5,3286.53],"6-15-11":[-24.01,4338.49],"5-7-5":[-24.01,5990.12],"4-3-2":[-24.01,5990.12],"6-15-12":[-16,0.26],"6-15-13":[-30.5,-5.77],"5-7-6":[-30.5,5.47],"6-15-14":[-41.91,-12.56],"6-15-15":[-54.89,-19.83],"5-7-7":[-54.89,-9.51],"4-3-3":[-54.89,17.44],"3-1-1":[-317.19,6207.28],"2-0-0":[-317.19,6207.28],"6-15-16":[-61.53,-25.72],"6-15-17":[-71.96,-29.35],"5-7-8":[-71.96,-23.13],"6-15-18":[-74.97,-34.5],"6-15-19":[-75.35,-33.7],"5-7-9":[-75.35,-30.63],"4-3-4":[-75.35,-16.83],"6-15-20":[-73.32,-31.19],"6-15-21":[-69.11,-29.89],"5-7-10":[-73.32,-25.99],"6-15-22":[-67.31,-28.48],"6-15-23":[-66.05,-27.68],"5-7-11":[-67.31,-22.95],"4-3-5":[-73.32,-14.94],"3-1-2":[-75.35,7.31],"6-15-24":[-64.91,-26.11],"6-15-25":[-62.05,-23.7],"5-7-12":[-64.91,-19.65],"6-15-26":[-58.25,-19.12],"6-15-27":[-49.51,-17.07],"5-7-13":[-58.25,-11.82],"4-3-6":[-64.91,-4.41],"6-15-28":[-44.78,-13.51],"6-15-29":[-35.93,-9.36],"5-7-14":[-44.78,-4.86],"6-15-30":[-28.32,-5.14],"6-15-31":[-19.14,-2.71],"5-7-15":[-28.32,3.14],"4-3-7":[-44.78,18.86],"3-1-3":[-64.91,4224.76],"2-0-1":[-75.35,4224.76],"6-15-32":[-13.73,-1.71],"6-15-33":[-10.63,-1.49],"5-7-16":[-13.73,4.38],"6-15-34":[-10.78,-2.12],"6-15-35":[-13.93,-2.93],"5-7-17":[-45.64,1253.85],"4-3-8":[-45.64,1253.85],"6-15-36":[-18.78,-4.46],"6-15-37":[-22.12,-7.9],"5-7-18":[-22.12,11.81],"6-15-38":[-22.48,7.98],"6-15-39":[-23.83,16.82],"5-7-19":[-34.53,29.28],"4-3-9":[-34.53,29.28],"3-1-4":[-47,1738.21],"6-15-40":[-25.6,210.54],"6-15-41":[-26.63,-11.38],"5-7-20":[-26.63,210.54],"6-15-42":[-26.15,-10.1],"6-15-43":[-23.47,-10.22],"5-7-21":[-26.15,-7.63],"4-3-10":[-154.99,367.1],"6-15-44":[-23.37,-10.28],"6-15-45":[-24.8,-10.38],"5-7-22":[-24.8,-9.44],"6-15-46":[-27.57,-12.05],"6-15-47":[-31.68,-13.68],"5-7-23":[-31.68,-11.59],"4-3-11":[-31.68,-5.68],"3-1-5":[-154.99,399.3],"2-0-2":[-154.99,1897.33],"6-15-48":[-33.83,-15.28],"6-15-49":[-36.24,-16.57],"5-7-24":[-36.46,-14.96],"6-15-50":[-40.85,-17.93],"6-15-51":[-40.81,-17.17],"5-7-25":[-43.17,-17.15],"4-3-12":[-47.41,-13.01],"6-15-52":[-53.46,-20.29],"6-15-53":[-68.22,-26.61],"5-7-26":[-70.32,-20.29],"6-15-54":[-79.48,-33.55],"6-15-55":[-91.99,-40.09],"5-7-27":[-94.24,-33.55],"4-3-13":[-100.6,-20.29],"3-1-6":[-109.23,-6.48],"6-15-56":[-99.15,-44.2],"6-15-57":[-105.53,-47.94],"5-7-28":[-110.48,-44.2],"6-15-58":[-105.53,1582.81],"6-15-59":[752.2,3280.76],"5-7-29":[-111.11,3280.76],"4-3-14":[-118.77,3280.76],"6-15-60":[370.12,1055.95],"6-15-61":[342.75,583.66],"5-7-30":[290.61,1055.95],"6-15-62":[359.13,3299.77],"6-15-63":[-29.54,2899.4],"5-7-31":[-29.54,3299.77],"4-3-15":[-29.55,3299.77],"3-1-7":[-128.14,3797.09],"2-0-3":[-132.79,3970.41],"6-16-0":[12.18,28.06],"6-16-1":[9.42,26.44],"6-16-2":[2.35,18.81],"6-16-3":[-9.47,3.62],"6-16-4":[-15.5,-4.65],"6-16-5":[-19.9,-6.14],"6-16-6":[-18.71,-2.92],"6-16-7":[-13.51,358.63],"6-16-8":[4.93,2700.74],"6-16-9":[524.03,2379.96],"6-16-10":[138.16,2349.52],"6-16-11":[-19.04,3089.83],"6-16-12":[-32.37,1191.79],"6-16-13":[-32.78,1099.24],"6-16-14":[-42.73,-15.25],"6-16-15":[-55.78,-21.82],"6-16-16":[-62.13,-27.45],"6-16-17":[-73.82,-31.05],"6-16-18":[-77.86,-35.86],"6-16-19":[-79.19,-36.66],"6-16-20":[-78.8,-34.53],"6-16-21":[-75.08,-33.65],"6-16-22":[-74.19,-33.08],"6-16-23":[-73.6,-32.44],"6-16-24":[-71.56,-31.17],"6-16-25":[-70.97,-29.12],"6-16-26":[-66.99,-25.12],"6-16-27":[-59.8,-22.61],"6-16-28":[-53.63,-18.47],"6-16-29":[-44.99,-14.42],"6-16-30":[-35.2,-9.88],"6-16-31":[-25.62,-7.01],"6-16-32":[-19.94,-5.38],"6-16-33":[-16.2,-5.07],"6-16-34":[-15.92,-4.9],"6-16-35":[-16.42,-5.38],"6-16-36":[-19.23,-6.96],"6-16-37":[-22.12,-9.38],"6-16-38":[-22.83,-10.64],"6-16-39":[-23.64,-10.88],"6-16-40":[-25.6,395.5],"6-16-41":[-27.18,-12.58],"6-16-42":[-27.19,-11.89],"6-16-43":[-25.25,-11.48],"6-16-44":[-23.89,-10.73],"6-16-45":[-25.51,-11.64],"6-16-46":[-27.55,-12.42],"6-16-47":[-30.38,-13.83],"6-16-48":[-32.72,-14.63],"6-16-49":[-36.23,-15.29],"6-16-50":[-40.57,-17.57],"6-16-51":[-40.62,-17.17],"6-16-52":[-52.6,-20.03],"6-16-53":[-67.1,-26.24],"6-16-54":[-78.95,-32.27],"6-16-55":[-88.41,-38.74],"6-16-56":[-94.87,-42.36],"6-16-57":[-102.31,-45.37],"6-16-58":[-102.31,2780.28],"6-16-59":[1055.94,3057.06],"6-16-60":[561.63,1251.61],"6-16-61":[360.22,729.54],"6-16-62":[569.39,3324.73],"6-16-63":[-29.54,2887.59],"6-17-0":[12.28,28.2],"6-17-1":[9.42,27.09],"5-8-0":[9.42,28.2],"6-17-2":[2.44,19.47],"6-17-3":[-9.26,3.4],"5-8-1":[-9.47,19.47],"6-17-4":[-12.46,-4.27],"6-17-5":[-17.6,-3.54],"5-8-2":[-19.9,-3.54],"6-17-6":[-16.97,-3.57],"6-17-7":[-17.03,450.81],"5-8-3":[-18.71,450.81],"6-17-8":[-1,2409.04],"6-17-9":[729.41,2941.77],"5-8-4":[-1,2941.77],"6-17-10":[639.5,2300.19],"6-17-11":[-7.73,3041.41],"5-8-5":[-19.04,3089.83],"6-17-12":[-40.41,2709.89],"6-17-13":[-36.12,1110.77],"5-8-6":[-40.41,2709.89],"6-17-14":[-44.38,-16.38],"6-17-15":[-55.37,-22.03],"5-8-7":[-55.78,-15.25],"6-17-16":[-62.03,-26.24],"6-17-17":[-74.43,-30.62],"5-8-8":[-74.43,-26.24],"6-17-18":[-79.53,-36.84],"6-17-19":[-81.78,-38.94],"5-8-9":[-81.78,-35.86],"6-17-20":[-81.39,-38.14],"6-17-21":[-82.89,-37.3],"5-8-10":[-82.89,-33.65],"6-17-22":[-83.1,-37.32],"6-17-23":[-82.35,-36.18],"5-8-11":[-83.1,-32.44],"6-17-24":[-81.19,-36.06],"6-17-25":[-80.32,-33.99],"5-8-12":[-81.19,-29.12],"6-17-26":[-77.62,-31.19],"6-17-27":[-70.94,-27.45],"5-8-13":[-77.62,-22.61],"6-17-28":[-64.31,-23.68],"6-17-29":[-54,-18.06],"5-8-14":[-64.31,-14.42],"6-17-30":[-43.73,-13.82],"6-17-31":[-34.31,-10.34],"5-8-15":[-43.73,-7.01],"6-17-32":[-28.04,-8.32],"6-17-33":[-22.53,-7.81],"5-8-16":[-28.04,-5.07],"6-17-34":[-20.71,-7.81],"6-17-35":[-20.22,-8],"5-8-17":[-20.71,-4.9],"6-17-36":[-18.91,-8.25],"6-17-37":[-21.69,-9.44],"5-8-18":[-22.12,-6.96],"6-17-38":[-22.79,-10.07],"6-17-39":[-23.64,-11.06],"5-8-19":[-23.64,-10.07],"6-17-40":[-25.6,315.4],"6-17-41":[-27.15,-11.32],"5-8-20":[-27.18,395.5],"6-17-42":[-27.2,-12.55],"6-17-43":[-25.3,-11.22],"5-8-21":[-27.2,-11.22],"6-17-44":[-23.39,-10.83],"6-17-45":[-25.69,-11.63],"5-8-22":[-25.69,-10.73],"6-17-46":[-27.32,-12.29],"6-17-47":[-29.02,-13.43],"5-8-23":[-30.38,-12.29],"6-17-48":[-30.31,-14],"6-17-49":[-34.83,-14.43],"5-8-24":[-36.23,-14],"6-17-50":[-36.28,-15.71],"6-17-51":[-39.91,-16.54],"5-8-25":[-40.62,-15.71],"6-17-52":[-49.95,-19.22],"6-17-53":[-64.39,-24.43],"5-8-26":[-67.1,-19.22],"6-17-54":[-75.83,-31.35],"6-17-55":[-84.15,-37.16],"5-8-27":[-88.41,-31.35],"6-17-56":[-89.73,-39.94],"6-17-57":[-97.13,-43.44],"5-8-28":[-102.31,-39.94],"6-17-58":[-96.35,2730.02],"6-17-59":[1251.6,2341.32],"5-8-29":[-102.31,3057.06],"6-17-60":[646.73,1350.33],"6-17-61":[434.89,803.49],"5-8-30":[360.22,1350.33],"6-17-62":[729.53,3573.17],"6-17-63":[-29.54,2879.05],"5-8-31":[-29.54,3573.17],"6-18-0":[12.4,28.31],"6-18-1":[10.07,27.6],"6-18-2":[2.4,20.08],"6-18-3":[-8.33,2.75],"6-18-4":[-10.4,-2.36],"6-18-5":[-18.83,-3.43],"6-18-6":[-22.53,142.08],"6-18-7":[-18.17,429.97],"6-18-8":[-0.16,2151.79],"6-18-9":[348.42,2614.23],"6-18-10":[9.51,2710.75],"6-18-11":[294.75,2698.9],"6-18-12":[-24.66,2746.59],"6-18-13":[-259.61,2747.57],"6-18-14":[-46.28,1843.49],"6-18-15":[-53.35,-22.18],"6-18-16":[-60.66,-26.44],"6-18-17":[-73.74,-29.66],"6-18-18":[-79.72,-35.92],"6-18-19":[-82.56,-39.87],"6-18-20":[-83.14,-40.29],"6-18-21":[-87.25,-40.68],"6-18-22":[-88.44,-41.38],"6-18-23":[-87.74,-40.45],"6-18-24":[-87.08,-40.24],"6-18-25":[-86.36,-38.8],"6-18-26":[-83.25,-35.89],"6-18-27":[-78.02,-32.16],"6-18-28":[-71.88,-27.65],"6-18-29":[-60.18,-22.1],"6-18-30":[-49.79,-17.75],"6-18-31":[-40.43,-14.23],"6-18-32":[-34.17,-11.43],"6-18-33":[-27.72,-10.12],"6-18-34":[-24.22,-9.98],"6-18-35":[-22.71,-9.16],"6-18-36":[-19.05,-9.09],"6-18-37":[-20.03,-8.96],"6-18-38":[-21.83,-9.07],"6-18-39":[-23.26,-10.05],"6-18-40":[-22.96,30.18],"6-18-41":[-25.64,-10.66],"6-18-42":[-26.07,-11.58],"6-18-43":[-24.63,-10.9],"6-18-44":[-23.29,-10.9],"6-18-45":[-24.95,-11.37],"6-18-46":[-26.58,-12.17],"6-18-47":[-27.96,-12.57],"6-18-48":[-28.66,-12.73],"6-18-49":[-31.29,-12.64],"6-18-50":[-33.1,-13.52],"6-18-51":[-38.3,-14.77],"6-18-52":[-46.75,-18.61],"6-18-53":[-62.71,-23.22],"6-18-54":[-73.11,-30.4],"6-18-55":[-79.89,-35.13],"6-18-56":[-85.72,-38.01],"6-18-57":[-91.81,-40.53],"6-18-58":[-89.38,2750.5],"6-18-59":[1350.32,2817.84],"6-18-60":[749.4,1490.05],"6-18-61":[552.13,901.46],"6-18-62":[803.48,3682.63],"6-18-63":[-29.54,2878.07],"6-19-0":[12.49,28.44],"6-19-1":[10.07,28.63],"5-9-0":[10.07,28.63],"6-19-2":[2.33,20.54],"6-19-3":[-8.14,2.42],"5-9-1":[-8.33,20.54],"4-4-0":[-9.47,28.63],"6-19-4":[-13.58,-2.05],"6-19-5":[-21.21,283.5],"5-9-2":[-21.21,283.5],"6-19-6":[-26.63,317.55],"6-19-7":[-24.44,581.34],"5-9-3":[-26.63,581.34],"4-4-1":[-26.63,581.34],"6-19-8":[-7.43,973.14],"6-19-9":[6.63,2480.85],"5-9-4":[-7.43,2614.23],"6-19-10":[-1.43,2228.73],"6-19-11":[399.03,2929.86],"5-9-5":[-1.43,2929.86],"4-4-2":[-19.04,3089.83],"6-19-12":[587.41,2399.44],"6-19-13":[-30.31,3974.94],"5-9-6":[-259.61,3974.94],"6-19-14":[-46.53,2829.29],"6-19-15":[-55.15,2131.34],"5-9-7":[-55.15,2829.29],"4-4-3":[-259.61,3974.94],"6-19-16":[-60.39,1592.47],"6-19-17":[-71.31,1595.59],"5-9-8":[-73.74,1595.59],"6-19-18":[-78.96,251.63],"6-19-19":[-83.12,-38.05],"5-9-9":[-83.12,251.63],"4-4-4":[-83.12,1595.59],"6-19-20":[-84.9,-41.29],"6-19-21":[-89.63,-42.03],"5-9-10":[-89.63,-40.29],"6-19-22":[-92.74,-43.78],"6-19-23":[-93.19,-43.92],"5-9-11":[-93.19,-40.45],"4-4-5":[-93.19,-32.44],"6-19-24":[-93.06,-43.61],"6-19-25":[-92.29,-42.14],"5-9-12":[-93.06,-38.8],"6-19-26":[-89.24,-39.76],"6-19-27":[-85.23,-36.36],"5-9-13":[-89.24,-32.16],"4-4-6":[-93.06,-22.61],"6-19-28":[-78.96,-31.27],"6-19-29":[-67.42,-25.3],"5-9-14":[-78.96,-22.1],"6-19-30":[-57.07,-21.14],"6-19-31":[-48.07,-17.54],"5-9-15":[-57.07,-14.23],"4-4-7":[-78.96,-7.01],"6-19-32":[-41.41,-14.6],"6-19-33":[-33.3,-12.43],"5-9-16":[-41.41,-10.12],"6-19-34":[-28.55,-11.75],"6-19-35":[-23.48,-9.55],"5-9-17":[-28.55,-9.16],"4-4-8":[-41.41,-4.9],"6-19-36":[-19.4,-8.58],"6-19-37":[-18.07,-7.73],"5-9-18":[-20.03,-7.73],"6-19-38":[-19.41,-7.69],"6-19-39":[-21.4,-8.18],"5-9-19":[-23.26,-7.69],"4-4-9":[-23.64,-6.96],"6-19-40":[-21.19,0.38],"6-19-41":[-23.26,-9.49],"5-9-20":[-25.64,30.18],"6-19-42":[-23.81,-10.86],"6-19-43":[-23.19,-10.71],"5-9-21":[-26.07,-10.71],"4-4-10":[-27.2,395.5],"6-19-44":[-23.63,-10.75],"6-19-45":[-24.65,-11.33],"5-9-22":[-24.95,-10.75],"6-19-46":[-24.92,-11.97],"6-19-47":[-25.67,-11.81],"5-9-23":[-27.96,-11.81],"4-4-11":[-30.38,-10.73],"6-19-48":[-25.62,-11.54],"6-19-49":[-26.6,-11.36],"5-9-24":[-31.29,-11.36],"6-19-50":[-29.05,-11.87],"6-19-51":[-37.03,-13.23],"5-9-25":[-38.3,-11.87],"4-4-12":[-40.62,-11.36],"6-19-52":[-44.46,-17.75],"6-19-53":[-60.61,-22.7],"5-9-26":[-62.71,-17.75],"6-19-54":[-69.03,-29.59],"6-19-55":[-75.62,-33.5],"5-9-27":[-79.89,-29.59],"4-4-13":[-88.41,-17.75],"6-19-56":[-80.8,-36.68],"6-19-57":[-87.74,-39.43],"5-9-28":[-91.81,-36.68],"6-19-58":[-80.06,2986.57],"6-19-59":[1490.04,3530.83],"5-9-29":[-89.38,3530.83],"4-4-14":[-102.31,3530.83],"6-19-60":[865.9,1514.1],"6-19-61":[606.22,956.54],"5-9-30":[552.13,1514.1],"6-19-62":[901.45,3114.64],"6-19-63":[-29.54,2878.57],"5-9-31":[-29.54,3682.63],"4-4-15":[-29.54,3682.63],"6-20-0":[12.6,28.55],"6-20-1":[10.43,29.48],"6-20-2":[2.27,20.82],"6-20-3":[-7.48,2.38],"6-20-4":[-13.58,105.36],"6-20-5":[-22.77,360.51],"6-20-6":[-29.85,693.54],"6-20-7":[-27.48,842.66],"6-20-8":[101.52,662.44],"6-20-9":[38.73,1501.83],"6-20-10":[-7.86,1335.36],"6-20-11":[265.12,2410.7],"6-20-12":[394.15,2580.47],"6-20-13":[176.29,3118.01],"6-20-14":[-26.42,3265.41],"6-20-15":[-24.65,4373.52],"6-20-16":[-14.17,3180.62],"6-20-17":[-27.55,4292.74],"6-20-18":[-76.12,2093.71],"6-20-19":[-82.77,1757.21],"6-20-20":[-84.77,-39.45],"6-20-21":[-90.02,-41.79],"6-20-22":[-93.63,-44.7],"6-20-23":[-95.18,-46.27],"6-20-24":[-95.41,-46.25],"6-20-25":[-94.65,-44.61],"6-20-26":[-91.54,-43],"6-20-27":[-87.87,-39.48],"6-20-28":[-81.88,-34.42],"6-20-29":[-70.45,-28.53],"6-20-30":[-61.33,-24.48],"6-20-31":[-52.2,-20.85],"6-20-32":[-45.21,-17.01],"6-20-33":[-35.82,-14.29],"6-20-34":[-30,-12.23],"6-20-35":[-24.98,-9.38],"6-20-36":[-19.21,-7.52],"6-20-37":[-16.88,-6.21],"6-20-38":[-16.13,-6.04],"6-20-39":[-17.89,-6.16],"6-20-40":[-18.62,-6.82],"6-20-41":[-21.61,-7.83],"6-20-42":[-22.22,-9.86],"6-20-43":[-23.83,-10.66],"6-20-44":[-24.73,-11.26],"6-20-45":[-25.79,-11.42],"6-20-46":[-25.8,-11.97],"6-20-47":[-24.13,-11.21],"6-20-48":[-23.48,-10.65],"6-20-49":[-23.65,-10.31],"6-20-50":[-26.04,-10.7],"6-20-51":[-35.46,-11.92],"6-20-52":[-44.23,-15.93],"6-20-53":[-59.19,-21.91],"6-20-54":[-66.26,-28.4],"6-20-55":[-73.37,-32.29],"6-20-56":[-79.03,-35.55],"6-20-57":[-84.12,-37.56],"6-20-58":[-79.02,1956.61],"6-20-59":[1514.09,2297.87],"6-20-60":[953.69,1535.12],"6-20-61":[812.01,1063],"6-20-62":[956.53,2865.19],"6-20-63":[-29.59,2878.57],"6-21-0":[12.69,28.95],"6-21-1":[10.43,30.37],"5-10-0":[10.43,30.37],"6-21-2":[2.27,21.72],"6-21-3":[-4.05,2.72],"5-10-1":[-7.48,21.72],"6-21-4":[-14.88,306.82],"6-21-5":[-25.82,454.87],"5-10-2":[-25.82,454.87],"6-21-6":[-33.35,413.74],"6-21-7":[-35.21,781.37],"5-10-3":[-35.21,842.66],"6-21-8":[126.37,696.58],"6-21-9":[137.72,880.39],"5-10-4":[38.73,1501.83],"6-21-10":[-10.46,833.93],"6-21-11":[299.05,1099.39],"5-10-5":[-10.46,2410.7],"6-21-12":[314.78,3253.8],"6-21-13":[300.79,3939.1],"5-10-6":[176.29,3939.1],"6-21-14":[196.37,2946.16],"6-21-15":[15.24,2851.96],"5-10-7":[-26.42,4373.52],"6-21-16":[351.22,2953.97],"6-21-17":[661.98,3100.13],"5-10-8":[-27.55,4292.74],"6-21-18":[-17.49,4387.58],"6-21-19":[-41.7,4242],"5-10-9":[-82.77,4387.58],"6-21-20":[-83.6,610.58],"6-21-21":[-89.13,1248.21],"5-10-10":[-90.02,1248.21],"6-21-22":[-93.13,-43.26],"6-21-23":[-95.04,-45.42],"5-10-11":[-95.18,-43.26],"6-21-24":[-95.32,-46.3],"6-21-25":[-94.74,-45.23],"5-10-12":[-95.41,-44.61],"6-21-26":[-91.98,-43.77],"6-21-27":[-87.81,-40.96],"5-10-13":[-91.98,-39.48],"6-21-28":[-82.67,-36.11],"6-21-29":[-71.2,-30.73],"5-10-14":[-82.67,-28.53],"6-21-30":[-63.31,-26.83],"6-21-31":[-54.81,-22.8],"5-10-15":[-63.31,-20.85],"6-21-32":[-47.82,-18.67],"6-21-33":[-38.41,-15.13],"5-10-16":[-47.82,-14.29],"6-21-34":[-32.21,-12.89],"6-21-35":[-25.63,-9.33],"5-10-17":[-32.21,-9.33],"6-21-36":[-19.3,-6.07],"6-21-37":[-14.54,-4.67],"5-10-18":[-19.3,-4.67],"6-21-38":[-12.06,-4.21],"6-21-39":[-13.18,-4.21],"5-10-19":[-17.89,-4.21],"6-21-40":[-15.05,-5.08],"6-21-41":[-19.58,-6.52],"5-10-20":[-21.61,-5.08],"6-21-42":[-21.17,-9.26],"6-21-43":[-22.89,-10.44],"5-10-21":[-23.83,-9.26],"6-21-44":[-24.5,-11.31],"6-21-45":[-26.05,-12.01],"5-10-22":[-26.05,-11.26],"6-21-46":[-26.03,-11.96],"6-21-47":[-24,-10.76],"5-10-23":[-26.03,-10.76],"6-21-48":[-22.24,-10.03],"6-21-49":[-21.6,-9.78],"5-10-24":[-23.65,-9.78],"6-21-50":[-23.2,-10.14],"6-21-51":[-31.43,-11.33],"5-10-25":[-35.46,-10.14],"6-21-52":[-42.02,-14.72],"6-21-53":[-56.28,-21.16],"5-10-26":[-59.19,-14.72],"6-21-54":[-63.59,-26.87],"6-21-55":[-71.43,-31.11],"5-10-27":[-73.37,-26.87],"6-21-56":[-74.31,-34.39],"6-21-57":[-79.17,-34.74],"5-10-28":[-84.12,-34.39],"6-21-58":[-75.47,1699.95],"6-21-59":[1495.5,2538.05],"5-10-29":[-79.02,2538.05],"6-21-60":[1062.99,1626.41],"6-21-61":[869.71,1241.73],"5-10-30":[812.01,1626.41],"6-21-62":[1025.91,2638.67],"6-21-63":[-29.63,2874.63],"5-10-31":[-29.63,2878.57],"6-22-0":[12.8,29.12],"6-22-1":[11.43,30.77],"6-22-2":[2.33,22.89],"6-22-3":[-2.3,5.53],"6-22-4":[-15.36,459.75],"6-22-5":[-28.86,707.55],"6-22-6":[-33.69,562.23],"6-22-7":[-36.83,561.11],"6-22-8":[106.74,731.19],"6-22-9":[124.49,633.28],"6-22-10":[-20.19,980.63],"6-22-11":[221.72,953.84],"6-22-12":[291.67,1945.45],"6-22-13":[407.7,3751.07],"6-22-14":[373.13,3467.23],"6-22-15":[143.66,2981.68],"6-22-16":[498.91,2953.81],"6-22-17":[1005.33,3455.03],"6-22-18":[-109.13,3616.13],"6-22-19":[-115.5,3677.07],"6-22-20":[-106.82,3055.54],"6-22-21":[-87.07,2579.5],"6-22-22":[-90.86,227.36],"6-22-23":[-93.31,-36.74],"6-22-24":[-93.47,-43.31],"6-22-25":[-92.56,-42.61],"6-22-26":[-90.46,-41.08],"6-22-27":[-87.11,-38.63],"6-22-28":[-81.94,-34.92],"6-22-29":[-71.11,-31.11],"6-22-30":[-63.37,-27.03],"6-22-31":[-54.82,-23.61],"6-22-32":[-48,-19.66],"6-22-33":[-38.67,-15.78],"6-22-34":[-32.33,-12.28],"6-22-35":[-25.13,-8],"6-22-36":[-18.53,-4.62],"6-22-37":[-11.89,-3.04],"6-22-38":[-9.24,-2.78],"6-22-39":[-10.03,-2.97],"6-22-40":[-12.55,-3.88],"6-22-41":[-18.46,-5.52],"6-22-42":[-20.42,-8.14],"6-22-43":[-22.66,-9.88],"6-22-44":[-24.44,-11.12],"6-22-45":[-25.51,-11.47],"6-22-46":[-25.48,-11.33],"6-22-47":[-23.5,-10.26],"6-22-48":[-21.38,-9.66],"6-22-49":[-20.27,-9.52],"6-22-50":[-22.59,-10.1],"6-22-51":[-29.7,-11.32],"6-22-52":[-41.54,-14.53],"6-22-53":[-53.67,-21.14],"6-22-54":[-61.27,-25.86],"6-22-55":[-68.78,-29.95],"6-22-56":[-72.33,-32.84],"6-22-57":[-76.5,-32.9],"6-22-58":[-76.53,3383.56],"6-22-59":[1286.48,3626.49],"6-22-60":[1241.72,1694.94],"6-22-61":[987.52,1432.98],"6-22-62":[1168.67,2576.08],"6-22-63":[-29.54,2863.29],"6-23-0":[12.92,29.14],"6-23-1":[11.53,30.89],"5-11-0":[11.43,30.89],"6-23-2":[2.57,24.53],"6-23-3":[-2.86,9.47],"5-11-1":[-2.86,24.53],"4-5-0":[-7.48,30.89],"6-23-4":[-17.92,409.2],"6-23-5":[-35.37,754.53],"5-11-2":[-35.37,754.53],"6-23-6":[-35.77,628.59],"6-23-7":[-51.79,437.77],"5-11-3":[-51.79,628.59],"4-5-1":[-51.79,842.66],"3-2-0":[-51.79,842.66],"6-23-8":[212,620.34],"6-23-9":[126.79,595],"5-11-4":[106.74,731.19],"6-23-10":[-25.96,952.89],"6-23-11":[181.68,969.04],"5-11-5":[-25.96,980.63],"4-5-2":[-25.96,2410.7],"6-23-12":[362.56,1217.71],"6-23-13":[599.34,3152.73],"5-11-6":[291.67,3751.07],"6-23-14":[584.02,3396.83],"6-23-15":[496.5,3385.15],"5-11-7":[143.66,3467.23],"4-5-3":[-26.42,4373.52],"3-2-1":[-259.61,4373.52],"6-23-16":[739.26,3846.98],"6-23-17":[1261.06,3659.45],"5-11-8":[498.91,3846.98],"6-23-18":[342.66,3960.27],"6-23-19":[53.25,2781.72],"5-11-9":[-115.5,3960.27],"4-5-4":[-115.5,4387.58],"6-23-20":[-43.42,2074.25],"6-23-21":[-53.91,2324.4],"5-11-10":[-106.82,3055.54],"6-23-22":[-86.07,1902.28],"6-23-23":[-86.2,-37.16],"5-11-11":[-93.31,1902.28],"4-5-5":[-106.82,3055.54],"3-2-2":[-115.5,4387.58],"6-23-24":[-86.54,-38.53],"6-23-25":[-85.65,238.06],"5-11-12":[-93.47,238.06],"6-23-26":[-84.32,-36.65],"6-23-27":[-80.64,-34.81],"5-11-13":[-90.46,-34.81],"4-5-6":[-95.41,238.06],"6-23-28":[-76.59,-32.08],"6-23-29":[-68.37,-29.04],"5-11-14":[-81.94,-29.04],"6-23-30":[-61.8,-25.29],"6-23-31":[-52.78,-21.98],"5-11-15":[-63.37,-21.98],"4-5-7":[-82.67,-20.85],"3-2-3":[-95.41,238.06],"6-23-32":[-46.8,-18.42],"6-23-33":[-38.04,-15],"5-11-16":[-48,-15],"6-23-34":[-31.41,-10.65],"6-23-35":[-23.03,-6.84],"5-11-17":[-32.33,-6.84],"4-5-8":[-48,-6.84],"6-23-36":[-15.57,-3.94],"6-23-37":[-8.42,-2.35],"5-11-18":[-18.53,-2.35],"6-23-38":[-5.83,-1.99],"6-23-39":[-7.6,-2.19],"5-11-19":[-10.03,-1.99],"4-5-9":[-19.3,-1.99],"3-2-4":[-48,-1.99],"6-23-40":[-10.38,-3.43],"6-23-41":[-16.03,-5],"5-11-20":[-18.46,-3.43],"6-23-42":[-19.19,-6.88],"6-23-43":[-22.06,-9.07],"5-11-21":[-22.66,-6.88],"4-5-10":[-23.83,-3.43],"6-23-44":[-22.86,-10.1],"6-23-45":[-23.63,-10.53],"5-11-22":[-25.51,-10.1],"6-23-46":[-23.44,-10.4],"6-23-47":[-22.17,-9.8],"5-11-23":[-25.48,-9.8],"4-5-11":[-26.05,-9.8],"3-2-5":[-30.38,395.5],"6-23-48":[-20.39,-9.35],"6-23-49":[-21.17,-9.35],"5-11-24":[-21.38,-9.35],"6-23-50":[-23.21,-10.18],"6-23-51":[-30.13,-11.53],"5-11-25":[-30.13,-10.1],"4-5-12":[-35.46,-9.35],"6-23-52":[-43.45,-14.72],"6-23-53":[-51.53,-21.48],"5-11-26":[-53.67,-14.53],"6-23-54":[-58.95,-25.37],"6-23-55":[-65.3,-28.82],"5-11-27":[-68.78,-25.37],"4-5-13":[-73.37,-14.53],"3-2-6":[-88.41,-9.35],"6-23-56":[-69.37,-31.18],"6-23-57":[-72.56,-32.31],"5-11-28":[-76.5,-31.18],"6-23-58":[-73.42,2010.01],"6-23-59":[1105.43,2194.6],"5-11-29":[-76.53,3626.49],"4-5-14":[-84.12,3626.49],"6-23-60":[1418.33,1763.02],"6-23-61":[1252.11,1638.58],"5-11-30":[987.52,1763.02],"6-23-62":[1432.97,2755.16],"6-23-63":[-29.54,2834.96],"5-11-31":[-29.54,2863.29],"4-5-15":[-29.63,2878.57],"3-2-7":[-102.31,3682.63],"6-24-0":[13.08,29.1],"6-24-1":[12.77,30.89],"6-24-2":[3.36,25.8],"6-24-3":[-3.5,11.12],"6-24-4":[-19.26,404.18],"6-24-5":[-38.9,404.18],"6-24-6":[-40.02,637.43],"6-24-7":[-57.55,369.52],"6-24-8":[70.59,618.66],"6-24-9":[123.35,643.83],"6-24-10":[-27.38,442.7],"6-24-11":[174.59,841.05],"6-24-12":[373.57,849.8],"6-24-13":[495.56,1071.09],"6-24-14":[572.57,2114.96],"6-24-15":[720.4,3889.28],"6-24-16":[1325.33,4191.26],"6-24-17":[1258.65,4109.88],"6-24-18":[857.52,3690.6],"6-24-19":[364.31,3824.21],"6-24-20":[-26.57,3235.29],"6-24-21":[-39.57,2589.58],"6-24-22":[-71.54,1702.94],"6-24-23":[-79.57,2045.21],"6-24-24":[-78.3,-33.29],"6-24-25":[-77.08,268.06],"6-24-26":[-75.28,-31.52],"6-24-27":[-72.83,-29.62],"6-24-28":[-69.63,-28.02],"6-24-29":[-63.34,-25.65],"6-24-30":[-58.09,-23.11],"6-24-31":[-49.64,-20.2],"6-24-32":[-43.76,-17.27],"6-24-33":[-35.9,-13.42],"6-24-34":[-29.87,-9.91],"6-24-35":[-20.23,-6.43],"6-24-36":[-13.61,-3.86],"6-24-37":[-7.43,-2.32],"6-24-38":[-4.95,-1.94],"6-24-39":[-7.06,-2.13],"6-24-40":[-9.67,-3.32],"6-24-41":[-13.81,-4.7],"6-24-42":[-17.75,-6.09],"6-24-43":[-20.18,-8.32],"6-24-44":[-21.4,-9.34],"6-24-45":[-21.96,-9.83],"6-24-46":[-21.96,-10],"6-24-47":[-20.69,-9.66],"6-24-48":[-19.53,-9.43],"6-24-49":[-21.86,-9.46],"6-24-50":[-23.63,-10.52],"6-24-51":[-30.13,-11.8],"6-24-52":[-42.54,-14.64],"6-24-53":[-50.73,-20.34],"6-24-54":[-56.68,-24.59],"6-24-55":[-62.37,-27.15],"6-24-56":[-67.75,-29.51],"6-24-57":[-69.33,-30.92],"6-24-58":[-67.75,2438.84],"6-24-59":[821.95,3441.15],"6-24-60":[1593.3,1871.81],"6-24-61":[1391.7,1816.7],"6-24-62":[1638.57,2575.14],"6-24-63":[-29.54,2813.19],"6-25-0":[13.28,29.06],"6-25-1":[12.99,30.67],"5-12-0":[12.77,30.89],"6-25-2":[4.33,27.3],"6-25-3":[-3.6,11.88],"5-12-1":[-3.6,27.3],"6-25-4":[-18.48,293.97],"6-25-5":[-39.75,334.46],"5-12-2":[-39.75,404.18],"6-25-6":[-44.82,387.52],"6-25-7":[-63.28,308.5],"5-12-3":[-63.28,637.43],"6-25-8":[-63.06,598.61],"6-25-9":[119.88,600.19],"5-12-4":[-63.06,643.83],"6-25-10":[-28.15,610.76],"6-25-11":[175.34,613.75],"5-12-5":[-28.15,841.05],"6-25-12":[357,741.32],"6-25-13":[154.24,852.58],"5-12-6":[154.24,1071.09],"6-25-14":[529.75,2093.28],"6-25-15":[667.15,3842.68],"5-12-7":[529.75,3889.28],"6-25-16":[1046.96,4204.45],"6-25-17":[1396.76,3751.43],"5-12-8":[1046.96,4204.45],"6-25-18":[1174.25,4348.39],"6-25-19":[1345.74,3458.34],"5-12-9":[364.31,4348.39],"6-25-20":[852.06,3295.69],"6-25-21":[84.61,3091.23],"5-12-10":[-39.57,3295.69],"6-25-22":[-38.22,3268.31],"6-25-23":[-66.41,2081.23],"5-12-11":[-79.57,3268.31],"6-25-24":[-67.95,-28.52],"6-25-25":[-66.59,-26.44],"5-12-12":[-78.3,268.06],"6-25-26":[-65.05,-25.22],"6-25-27":[-63.06,-24.16],"5-12-13":[-75.28,-24.16],"6-25-28":[-59.26,-15.52],"6-25-29":[-54.35,-22.31],"5-12-14":[-69.63,-15.52],"6-25-30":[-50.44,-20.5],"6-25-31":[-45,-18.74],"5-12-15":[-58.09,-18.74],"6-25-32":[-39.97,-16.22],"6-25-33":[-33.52,-12.95],"5-12-16":[-43.76,-12.95],"6-25-34":[-26.73,-9.78],"6-25-35":[-19.19,-6.51],"5-12-17":[-29.87,-6.43],"6-25-36":[-14.52,-4.01],"6-25-37":[-8.87,-2.5],"5-12-18":[-14.52,-2.32],"6-25-38":[-6.34,-2.18],"6-25-39":[-6.84,-2.3],"5-12-19":[-7.06,-1.94],"6-25-40":[-9.41,-3.32],"6-25-41":[-32.1,501.96],"5-12-20":[-32.1,501.96],"6-25-42":[-16.08,-5.36],"6-25-43":[-18.48,-7.5],"5-12-21":[-20.18,-5.36],"6-25-44":[-19.58,-8.5],"6-25-45":[-20.51,-9.34],"5-12-22":[-21.96,-8.5],"6-25-46":[-20.66,-9.34],"6-25-47":[-19.83,-8.98],"5-12-23":[-21.96,-8.98],"6-25-48":[-19.6,-9.09],"6-25-49":[-22.09,-9.67],"5-12-24":[-22.09,-9.09],"6-25-50":[-24.31,-10.8],"6-25-51":[-29.53,-11.99],"5-12-25":[-30.13,-10.52],"6-25-52":[-38.65,-14.61],"6-25-53":[-48.88,-19.4],"5-12-26":[-50.73,-14.61],"6-25-54":[-53.27,-23.18],"6-25-55":[-58.77,-25.88],"5-12-27":[-62.37,-23.18],"6-25-56":[-65.35,-28.74],"6-25-57":[-65.63,-29.51],"5-12-28":[-69.33,-28.74],"6-25-58":[-63.65,821.96],"6-25-59":[726.87,1676.69],"5-12-29":[-67.75,3441.15],"6-25-60":[1630.88,1996.28],"6-25-61":[1569.89,1996.28],"5-12-30":[1391.7,1996.28],"6-25-62":[1816.69,2606.34],"6-25-63":[-29.54,2795.26],"5-12-31":[-29.54,2813.19],"6-26-0":[13.54,29.14],"6-26-1":[13.94,30.48],"6-26-2":[5.28,27.87],"6-26-3":[-3.32,281.71],"6-26-4":[-18.48,308.77],"6-26-5":[-40.42,381.74],"6-26-6":[-46.86,317.75],"6-26-7":[-64.69,215.89],"6-26-8":[-2.27,571.32],"6-26-9":[116.78,565.77],"6-26-10":[-32.41,599.94],"6-26-11":[208.28,611.84],"6-26-12":[299.93,731.39],"6-26-13":[318.89,749.4],"6-26-14":[470.62,993.24],"6-26-15":[555.47,1446.2],"6-26-16":[932.52,3114.6],"6-26-17":[1209.86,4338.56],"6-26-18":[1296.53,4383.25],"6-26-19":[1070.65,3998.98],"6-26-20":[855.68,3617.02],"6-26-21":[658.3,2970.04],"6-26-22":[417.64,3258.01],"6-26-23":[-28.6,3307.88],"6-26-24":[-62.73,2734.41],"6-26-25":[-59.49,2861.69],"6-26-26":[-52.9,-18.54],"6-26-27":[-50.46,-18.19],"6-26-28":[-48.34,-18.13],"6-26-29":[-46.35,-18.06],"6-26-30":[-44.41,-17.73],"6-26-31":[-40.44,-17.02],"6-26-32":[-37.32,-15.49],"6-26-33":[-31.86,-12.9],"6-26-34":[-26.47,-10],"6-26-35":[-21.25,-7.31],"6-26-36":[-17.78,-4.66],"6-26-37":[-11.76,-3.18],"6-26-38":[-7.87,-2.8],"6-26-39":[-6.79,-2.9],"6-26-40":[-7.79,-2.88],"6-26-41":[-10.71,8.49],"6-26-42":[-14.63,-4.56],"6-26-43":[-16.88,-6.59],"6-26-44":[-18.57,-7.39],"6-26-45":[-19.41,-7.99],"6-26-46":[-19.51,-8.34],"6-26-47":[-18.58,-8.35],"6-26-48":[-19.11,-8.37],"6-26-49":[-22.08,-9.26],"6-26-50":[-24.14,-10.47],"6-26-51":[-29.38,-11.82],"6-26-52":[-38.33,-14.03],"6-26-53":[-46.19,-17.49],"6-26-54":[-51.2,-21.67],"6-26-55":[-57.5,-24.38],"6-26-56":[-63.64,-27.72],"6-26-57":[-62.82,189.45],"6-26-58":[-60.91,881.64],"6-26-59":[740.64,1748.55],"6-26-60":[1676.68,2076.65],"6-26-61":[1756.34,2181.07],"6-26-62":[1948.76,2606.49],"6-26-63":[-29.54,2777.84],"6-27-0":[13.6,29.49],"6-27-1":[13.94,31.09],"5-13-0":[13.54,31.09],"6-27-2":[6.45,27.9],"6-27-3":[-0.42,320.5],"5-13-1":[-3.32,320.5],"4-6-0":[-3.6,320.5],"6-27-4":[-16.49,372.69],"6-27-5":[-40.21,294.13],"5-13-2":[-40.42,381.74],"6-27-6":[-53.85,132.2],"6-27-7":[-71.25,117.7],"5-13-3":[-71.25,317.75],"4-6-1":[-71.25,637.43],"6-27-8":[-10.85,325.53],"6-27-9":[25.92,428.65],"5-13-4":[-10.85,571.32],"6-27-10":[-36.63,567.14],"6-27-11":[275.4,510.84],"5-13-5":[-36.63,611.84],"4-6-2":[-63.06,841.05],"6-27-12":[177.93,779.83],"6-27-13":[230.46,797.9],"5-13-6":[177.93,797.9],"6-27-14":[353.23,843.62],"6-27-15":[486.44,1208.11],"5-13-7":[353.23,1446.2],"4-6-3":[154.24,3889.28],"6-27-16":[469.53,2194.75],"6-27-17":[827.22,1798.51],"5-13-8":[469.53,4338.56],"6-27-18":[821.28,2635.83],"6-27-19":[656.62,2159.53],"5-13-9":[656.62,4383.25],"4-6-4":[364.31,4383.25],"6-27-20":[633.52,1925.95],"6-27-21":[300.28,2697.84],"5-13-10":[300.28,3617.02],"6-27-22":[335.31,2999.92],"6-27-23":[921.89,3424.3],"5-13-11":[-28.6,3424.3],"4-6-5":[-79.57,3617.02],"6-27-24":[401.21,3479.94],"6-27-25":[-46.8,4234.29],"5-13-12":[-62.73,4234.29],"6-27-26":[-39.05,-13],"6-27-27":[-35.28,-12.54],"5-13-13":[-52.9,-12.54],"4-6-6":[-78.3,4234.29],"6-27-28":[-35.2,-12.85],"6-27-29":[-35.34,-13.41],"5-13-14":[-48.34,-12.85],"6-27-30":[-35.17,-14.09],"6-27-31":[-34.89,-14.93],"5-13-15":[-44.41,-14.09],"4-6-7":[-69.63,-12.85],"6-27-32":[-33.67,-14.66],"6-27-33":[-30.24,-13.29],"5-13-16":[-37.32,-12.9],"6-27-34":[-28.13,-11.02],"6-27-35":[-24.66,-9.21],"5-13-17":[-28.13,-7.31],"4-6-8":[-43.76,-6.43],"6-27-36":[-20.45,-6.32],"6-27-37":[-14.71,-4.11],"5-13-18":[-20.45,-3.18],"6-27-38":[-10.7,-3.46],"6-27-39":[-7.82,-2.95],"5-13-19":[-10.7,-2.8],"4-6-9":[-20.45,-1.94],"6-27-40":[-6.36,-2.12],"6-27-41":[-8.91,-2.07],"5-13-20":[-10.71,8.49],"6-27-42":[-12.62,-3.64],"6-27-43":[-14.88,-5.64],"5-13-21":[-16.88,-3.64],"4-6-10":[-32.1,501.96],"6-27-44":[-15.67,-6.12],"6-27-45":[-17.16,-6.68],"5-13-22":[-19.41,-6.12],"6-27-46":[-17.14,-7.46],"6-27-47":[-16.64,-6.9],"5-13-23":[-19.51,-6.9],"4-6-11":[-21.96,-6.12],"6-27-48":[-18.13,-7.16],"6-27-49":[-20.76,-8.23],"5-13-24":[-22.08,-7.16],"6-27-50":[-23.03,-9.75],"6-27-51":[-27.57,-10.56],"5-13-25":[-29.38,-9.75],"4-6-12":[-30.13,-7.16],"6-27-52":[-33.04,-12.47],"6-27-53":[-43.05,-16],"5-13-26":[-46.19,-12.47],"6-27-54":[-47.85,-20.49],"6-27-55":[-55.33,-23.04],"5-13-27":[-57.5,-20.49],"4-6-13":[-62.37,-12.47],"6-27-56":[-59.57,-26.31],"6-27-57":[-57.3,647.09],"5-13-28":[-63.64,647.09],"6-27-58":[-55.25,899.06],"6-27-59":[799.61,1803.34],"5-13-29":[-60.91,1803.34],"4-6-14":[-69.33,3441.15],"6-27-60":[1748.54,2159.56],"6-27-61":[1868.06,2197.16],"5-13-30":[1676.68,2197.16],"6-27-62":[2095.95,2581.41],"6-27-63":[-29.54,2769.5],"5-13-31":[-29.54,2777.84],"4-6-15":[-29.54,2813.19],"6-28-0":[13.6,29.98],"6-28-1":[13.97,31.76],"6-28-2":[7.61,27.9],"6-28-3":[-0.98,311.23],"6-28-4":[-14.04,373.55],"6-28-5":[-35.5,302.69],"6-28-6":[-52.23,269.04],"6-28-7":[-71.46,37.53],"6-28-8":[-13.78,273.39],"6-28-9":[-36.74,404.25],"6-28-10":[-38.45,438.24],"6-28-11":[60.84,436.49],"6-28-12":[151.71,375.47],"6-28-13":[182.44,807.5],"6-28-14":[219.33,785.89],"6-28-15":[355.34,755.87],"6-28-16":[348.26,1090.39],"6-28-17":[415.18,1115.44],"6-28-18":[336.8,1003.31],"6-28-19":[247.09,1013.68],"6-28-20":[245.51,909.81],"6-28-21":[22.35,784.58],"6-28-22":[2.36,3697.19],"6-28-23":[-6.03,3685.36],"6-28-24":[-7.33,3903.97],"6-28-25":[-32.6,5379.65],"6-28-26":[-33.85,1685.03],"6-28-27":[-25.73,-8.02],"6-28-28":[-27.14,-9.26],"6-28-29":[-28.13,-9.53],"6-28-30":[-29.73,-10.39],"6-28-31":[-30.49,-11.78],"6-28-32":[-30.3,-13.08],"6-28-33":[-29.11,-13.91],"6-28-34":[-28.13,-12.68],"6-28-35":[-25.46,-10.25],"6-28-36":[-21.32,-7.52],"6-28-37":[-14.78,-5.33],"6-28-38":[-12.03,-4.05],"6-28-39":[-8.07,-2.41],"6-28-40":[-6.04,-1.06],"6-28-41":[-7.12,-1.06],"6-28-42":[-10.83,-2.79],"6-28-43":[-12.78,-4.7],"6-28-44":[-13.74,-5.3],"6-28-45":[-14.99,-5.28],"6-28-46":[-15.4,-5.56],"6-28-47":[-15.79,-5.29],"6-28-48":[-15.93,-5.65],"6-28-49":[-19.25,-6.88],"6-28-50":[-20.66,-7.71],"6-28-51":[-24.63,-9.26],"6-28-52":[-31.19,-11.53],"6-28-53":[-40.85,-14.84],"6-28-54":[-45.75,-18.97],"6-28-55":[-52.39,-21.7],"6-28-56":[-55.08,-24.38],"6-28-57":[-50.79,721.39],"6-28-58":[-51.45,799.62],"6-28-59":[687.23,1812.13],"6-28-60":[1803.33,2299.62],"6-28-61":[1923.59,2175.98],"6-28-62":[1878.69,2429.87],"6-28-63":[-29.54,2761.57],"6-29-0":[13.6,30.78],"6-29-1":[13.97,32.5],"5-14-0":[13.6,32.5],"6-29-2":[8.58,28.94],"6-29-3":[-0.22,604.78],"5-14-1":[-0.98,604.78],"6-29-4":[-10.79,424.86],"6-29-5":[-29.34,367.02],"5-14-2":[-35.5,424.86],"6-29-6":[-48.96,423.04],"6-29-7":[-71.03,188.06],"5-14-3":[-71.46,423.04],"6-29-8":[-71.03,258.97],"6-29-9":[-40.7,265.48],"5-14-4":[-71.03,404.25],"6-29-10":[-45.67,362.54],"6-29-11":[35.43,333.9],"5-14-5":[-45.67,438.24],"6-29-12":[69.29,353.36],"6-29-13":[176.64,297.08],"5-14-6":[69.29,807.5],"6-29-14":[185.4,507.51],"6-29-15":[216.94,624.77],"5-14-7":[185.4,785.89],"6-29-16":[248.19,602.11],"6-29-17":[227.87,668.28],"5-14-8":[227.87,1115.44],"6-29-18":[151.81,558.27],"6-29-19":[87.66,500.16],"5-14-9":[87.66,1013.68],"6-29-20":[11.41,489.46],"6-29-21":[-74.48,534.68],"5-14-10":[-74.48,909.81],"6-29-22":[-59.51,197.1],"6-29-23":[-60.32,1437.08],"5-14-11":[-60.32,3697.19],"6-29-24":[-52.89,3376.08],"6-29-25":[-16.39,5601.19],"5-14-12":[-52.89,5601.19],"6-29-26":[-23.21,3710.87],"6-29-27":[-17.72,-5.43],"5-14-13":[-33.85,3710.87],"6-29-28":[-18.29,-5.37],"6-29-29":[-20.02,-5.8],"5-14-14":[-28.13,-5.37],"6-29-30":[-22.85,-7.34],"6-29-31":[-25.68,-8.54],"5-14-15":[-30.49,-7.34],"6-29-32":[-27.33,-11.17],"6-29-33":[-28.21,-12.92],"5-14-16":[-30.3,-11.17],"6-29-34":[-27.93,-12.74],"6-29-35":[-25.57,-10.37],"5-14-17":[-28.13,-10.25],"6-29-36":[-21.38,-7.55],"6-29-37":[-14.75,-5.87],"5-14-18":[-21.38,-5.33],"6-29-38":[-12.1,-3.7],"6-29-39":[-7.93,-1.6],"5-14-19":[-12.1,-1.6],"6-29-40":[-4.73,-0.26],"6-29-41":[-5.16,-0.14],"5-14-20":[-7.12,-0.14],"6-29-42":[-8.49,-1.41],"6-29-43":[-11.27,-3.5],"5-14-21":[-12.78,-1.41],"6-29-44":[-11.15,-3.82],"6-29-45":[-11.69,-3.55],"5-14-22":[-14.99,-3.55],"6-29-46":[-12.81,-3.56],"6-29-47":[-11.24,-3.95],"5-14-23":[-15.79,-3.56],"6-29-48":[-12.87,-3.81],"6-29-49":[-15.22,-6.07],"5-14-24":[-19.25,-3.81],"6-29-50":[-18.28,-7.31],"6-29-51":[-22.81,-8.44],"5-14-25":[-24.63,-7.31],"6-29-52":[-28.28,-10.9],"6-29-53":[-37.41,-12.86],"5-14-26":[-40.85,-10.9],"6-29-54":[-42.1,-16.84],"6-29-55":[-48.36,-19.69],"5-14-27":[-52.39,-16.84],"6-29-56":[-54.2,-22.1],"6-29-57":[-47.44,695.16],"5-14-28":[-55.08,721.39],"6-29-58":[-44.62,1067.53],"6-29-59":[697.67,1825.18],"5-14-29":[-51.45,1825.18],"6-29-60":[1812.12,2484.31],"6-29-61":[1887.54,2200.25],"5-14-30":[1803.33,2484.31],"6-29-62":[1867.75,2364.99],"6-29-63":[-29.54,2744.46],"5-14-31":[-29.54,2761.57],"6-30-0":[13.6,31.47],"6-30-1":[14.83,32.77],"6-30-2":[9.25,30.01],"6-30-3":[1.4,1609.72],"6-30-4":[-8.83,717.95],"6-30-5":[-23.57,477.26],"6-30-6":[-38.7,559.29],"6-30-7":[-70.31,433.78],"6-30-8":[-70.31,458.53],"6-30-9":[-96.36,174.74],"6-30-10":[-99.28,106.11],"6-30-11":[-98.53,228.76],"6-30-12":[-14.62,294.27],"6-30-13":[195.65,456.57],"6-30-14":[57.99,564.92],"6-30-15":[181.53,584.49],"6-30-16":[173.46,471.28],"6-30-17":[26.59,446.09],"6-30-18":[123.08,490.81],"6-30-19":[2.26,806.41],"6-30-20":[-9.4,204.36],"6-30-21":[-55.44,125.4],"6-30-22":[-65.74,-25.61],"6-30-23":[-65.69,-25.42],"6-30-24":[-54.87,-14.04],"6-30-25":[-36.51,2490.71],"6-30-26":[-21.02,2540.82],"6-30-27":[-19.24,-2.77],"6-30-28":[-11.27,-1.84],"6-30-29":[-14.57,-2.28],"6-30-30":[-17.25,-4.28],"6-30-31":[-22.13,-5.31],"6-30-32":[-25.32,-8.63],"6-30-33":[-27.51,-11.24],"6-30-34":[-27.51,-12.14],"6-30-35":[-24.98,-9.83],"6-30-36":[-20.94,-7.4],"6-30-37":[-14.81,-5.53],"6-30-38":[-11.87,-2.8],"6-30-39":[-6.86,-0.38],"6-30-40":[-3,1.26],"6-30-41":[-2.62,1.53],"6-30-42":[-6.47,0.16],"6-30-43":[-9.48,-1.41],"6-30-44":[-9.48,-2.83],"6-30-45":[-7.66,-2.16],"6-30-46":[-9.07,-1.93],"6-30-47":[-9.84,-2.8],"6-30-48":[-11.72,-2.88],"6-30-49":[-14.44,-4.07],"6-30-50":[-16.72,-6.13],"6-30-51":[-22.37,-7.94],"6-30-52":[-24.41,-9.85],"6-30-53":[-33.43,-11.71],"6-30-54":[-38.58,-14.81],"6-30-55":[-43.96,-16.85],"6-30-56":[-52.81,-19.97],"6-30-57":[-46.56,310.04],"6-30-58":[-43.55,1562.01],"6-30-59":[790.59,1824.22],"6-30-60":[1816.77,2275.03],"6-30-61":[1789.45,2180.52],"6-30-62":[1867.26,2328.81],"6-30-63":[-29.54,2744.46],"6-31-0":[13.6,32.23],"6-31-1":[15.06,32.84],"5-15-0":[13.6,32.84],"6-31-2":[10.78,881.84],"6-31-3":[4.92,2250.64],"5-15-1":[1.4,2250.64],"4-7-0":[-0.98,2250.64],"6-31-4":[-5.46,1374.08],"6-31-5":[-22.85,583.45],"5-15-2":[-23.57,1374.08],"6-31-6":[-45.86,413.34],"6-31-7":[-57.79,429.71],"5-15-3":[-70.31,559.29],"4-7-1":[-71.46,1374.08],"3-3-0":[-71.46,2250.64],"6-31-8":[-36.15,577.62],"6-31-9":[-96.7,282.12],"5-15-4":[-96.7,577.62],"6-31-10":[-99.12,-46.98],"6-31-11":[-98.49,190.58],"5-15-5":[-99.28,228.76],"4-7-2":[-99.28,577.62],"6-31-12":[-15.94,324],"6-31-13":[204.84,447.15],"5-15-6":[-15.94,456.57],"6-31-14":[150.72,671.12],"6-31-15":[147.71,604.9],"5-15-7":[57.99,671.12],"4-7-3":[-15.94,807.5],"3-3-1":[-99.28,3889.28],"2-1-0":[-259.61,4373.52],"6-31-16":[142.69,422.75],"6-31-17":[82.02,300.32],"5-15-8":[26.59,471.28],"6-31-18":[37.49,509.53],"6-31-19":[3.75,590.45],"5-15-9":[2.26,806.41],"4-7-4":[2.26,1115.44],"6-31-20":[-28.13,146.09],"6-31-21":[-51.46,78.7],"5-15-10":[-55.44,204.36],"6-31-22":[-60.53,-24.95],"6-31-23":[-60.55,-17],"5-15-11":[-65.74,-17],"4-7-5":[-74.48,3697.19],"3-3-2":[-79.57,4383.25],"6-31-24":[-51.3,129.8],"6-31-25":[-28.09,2495.76],"5-15-12":[-54.87,2495.76],"6-31-26":[-31.81,4217.93],"6-31-27":[-39.22,1667.28],"5-15-13":[-39.22,4217.93],"4-7-6":[-54.87,5601.19],"6-31-28":[-3.69,3.56],"6-31-29":[-7.94,1.79],"5-15-14":[-14.57,3.56],"6-31-30":[-10.64,-0.95],"6-31-31":[-23.38,1700.45],"5-15-15":[-23.38,1700.45],"4-7-7":[-30.49,1700.45],"3-3-3":[-78.3,5601.19],"2-1-1":[-115.5,5601.19],"1-0-0":[-317.19,6207.28],"6-31-32":[-321.59,1684.42],"6-31-33":[-25.17,-8.12],"5-15-16":[-321.59,1684.42],"6-31-34":[-25.23,-10.22],"6-31-35":[-23.47,-8.63],"5-15-17":[-27.51,-8.63],"4-7-8":[-321.59,1684.42],"6-31-36":[-19.5,-5.98],"6-31-37":[-14.17,-4.58],"5-15-18":[-20.94,-4.58],"6-31-38":[-10.89,-1.76],"6-31-39":[-4.99,1.04],"5-15-19":[-11.87,1.04],"4-7-9":[-21.38,1.04],"3-3-4":[-321.59,1684.42],"6-31-40":[-0.46,3.59],"6-31-41":[0.15,3.57],"5-15-20":[-3,3.59],"6-31-42":[-1.87,3.33],"6-31-43":[-5.77,-0.19],"5-15-21":[-9.48,3.33],"4-7-10":[-12.78,3.59],"6-31-44":[-6.17,-2.1],"6-31-45":[-5.45,-1.19],"5-15-22":[-9.48,-1.19],"6-31-46":[-4.53,-0.73],"6-31-47":[-5.48,-0.93],"5-15-23":[-9.84,-0.73],"4-7-11":[-15.79,-0.73],"3-3-5":[-32.1,501.96],"2-1-2":[-321.59,1684.42],"6-31-48":[-7.3,-1.03],"6-31-49":[-11.96,-1.38],"5-15-24":[-14.44,-1.03],"6-31-50":[-15.08,-4.16],"6-31-51":[-19.15,-5.73],"5-15-25":[-22.37,-4.16],"4-7-12":[-24.63,-1.03],"6-31-52":[-21.76,-8.28],"6-31-53":[-29.28,-9.98],"5-15-26":[-33.43,-8.28],"6-31-54":[-34.04,-12.93],"6-31-55":[-39.77,-14.37],"5-15-27":[-43.96,-12.93],"4-7-13":[-52.39,-8.28],"3-3-6":[-62.37,-1.03],"6-31-56":[-43.43,1365.62],"6-31-57":[-44.81,282.19],"5-15-28":[-52.81,1365.62],"6-31-58":[-39.76,1267.01],"6-31-59":[957.9,1887.87],"5-15-29":[-43.55,1887.87],"4-7-14":[-55.08,1887.87],"6-31-60":[1730.62,2175.26],"6-31-61":[1639.46,1987.13],"5-15-30":[1639.46,2275.03],"6-31-62":[1752.65,2714.87],"6-31-63":[-29.54,2744.46],"5-15-31":[-29.54,2744.46],"4-7-15":[-29.54,2761.57],"3-3-7":[-69.33,3441.15],"2-1-3":[-102.31,3682.63],"1-0-1":[-321.59,3970.41],"6-32-0":[13.6,32.71],"6-32-1":[15.63,32.84],"6-32-2":[12.53,1148.73],"6-32-3":[3.54,1723.08],"6-32-4":[-3.48,1337.96],"6-32-5":[-22.64,684.11],"6-32-6":[-45.53,367.14],"6-32-7":[-63.11,395.57],"6-32-8":[-72.93,546.23],"6-32-9":[-93.99,248.1],"6-32-10":[-96.39,-44.47],"6-32-11":[-97.86,87.35],"6-32-12":[-57.46,240.44],"6-32-13":[116.07,415.1],"6-32-14":[116.17,599.34],"6-32-15":[138.68,568.7],"6-32-16":[-2.59,551.43],"6-32-17":[75.12,291.63],"6-32-18":[-24.24,294.32],"6-32-19":[4.68,321.49],"6-32-20":[-31.39,211.56],"6-32-21":[-63.34,90.38],"6-32-22":[-63.11,-25.22],"6-32-23":[-57.23,-7.65],"6-32-24":[-31.37,200.24],"6-32-25":[-33.45,1010.31],"6-32-26":[-35.51,3009.32],"6-32-27":[-28.36,2376.93],"6-32-28":[-3.22,10.91],"6-32-29":[-1.77,10.51],"6-32-30":[-4.68,6.74],"6-32-31":[-7.35,73.07],"6-32-32":[-18.67,716.38],"6-32-33":[-20.88,-4.49],"6-32-34":[-21.38,-6.53],"6-32-35":[-20.18,-6.02],"6-32-36":[-17.05,-4.75],"6-32-37":[-11.75,-2.76],"6-32-38":[-9,-0.28],"6-32-39":[-2.87,3.56],"6-32-40":[0.59,5.45],"6-32-41":[1.56,6.31],"6-32-42":[-0.2,5.55],"6-32-43":[-3.93,1.13],"6-32-44":[-5.26,-0.57],"6-32-45":[-4.78,-0.14],"6-32-46":[-2.44,1.43],"6-32-47":[-2.43,2.72],"6-32-48":[-2.64,1.56],"6-32-49":[-7.99,-0.1],"6-32-50":[-11.84,-1.81],"6-32-51":[-16.4,-4.23],"6-32-52":[-18.97,-6.57],"6-32-53":[-25.69,-8.31],"6-32-54":[-28.75,-11.31],"6-32-55":[-35.05,-12.68],"6-32-56":[-41.26,-14.17],"6-32-57":[-36.6,248.01],"6-32-58":[-36.6,1290.61],"6-32-59":[1072.47,2685.38],"6-32-60":[1460.89,2381.84],"6-32-61":[1444.34,1985.53],"6-32-62":[1435.21,2244.93],"6-32-63":[-29.54,2744.46],"6-33-0":[13.6,33.18],"6-33-1":[15.63,33.39],"5-16-0":[13.6,33.39],"6-33-2":[13.83,1617.96],"6-33-3":[3.54,1701.03],"5-16-1":[3.54,1723.08],"6-33-4":[-1.3,1540.67],"6-33-5":[-21.29,1009.47],"5-16-2":[-22.64,1540.67],"6-33-6":[-36.75,819.86],"6-33-7":[-62.77,557.56],"5-16-3":[-63.11,819.86],"6-33-8":[-72.83,444.35],"6-33-9":[-88.51,366.68],"5-16-4":[-93.99,546.23],"6-33-10":[-95.62,-42.25],"6-33-11":[-97.09,-45.96],"5-16-5":[-97.86,87.35],"6-33-12":[-96.12,205.42],"6-33-13":[26.23,323.91],"5-16-6":[-96.12,415.1],"6-33-14":[40.15,604.67],"6-33-15":[99.8,613.05],"5-16-7":[40.15,613.05],"6-33-16":[103.99,486.54],"6-33-17":[42.02,356.67],"5-16-8":[-2.59,551.43],"6-33-18":[73.98,611.43],"6-33-19":[-2.39,1256.4],"5-16-9":[-24.24,1256.4],"6-33-20":[-18.21,703.65],"6-33-21":[-62.86,133.72],"5-16-10":[-63.34,703.65],"6-33-22":[-63.05,-24.55],"6-33-23":[-54.77,-15.6],"5-16-11":[-63.11,-7.65],"6-33-24":[-55.01,38.89],"6-33-25":[-31.18,-5.73],"5-16-12":[-55.01,1010.31],"6-33-26":[-16.7,2458.87],"6-33-27":[-29.38,2108.97],"5-16-13":[-35.51,3009.32],"6-33-28":[-12.99,2165.37],"6-33-29":[3.88,21.34],"5-16-14":[-12.99,2165.37],"6-33-30":[-9.95,580.04],"6-33-31":[-3.66,9.28],"5-16-15":[-9.95,580.04],"6-33-32":[-8.84,4.83],"6-33-33":[-12.48,2.13],"5-16-16":[-20.88,716.38],"6-33-34":[-13.36,-2.74],"6-33-35":[-13.27,-2.88],"5-16-17":[-21.38,-2.74],"6-33-36":[-11.47,-2.69],"6-33-37":[-8.95,-0.74],"5-16-18":[-17.05,-0.74],"6-33-38":[-5.14,2.74],"6-33-39":[-0.29,8.08],"5-16-19":[-9,8.08],"6-33-40":[1.94,9.43],"6-33-41":[2.8,10.75],"5-16-20":[0.59,10.75],"6-33-42":[0.89,8.51],"6-33-43":[-0.58,5.53],"5-16-21":[-3.93,8.51],"6-33-44":[-2.13,3.55],"6-33-45":[-1.46,3.29],"5-16-22":[-5.26,3.55],"6-33-46":[-0.15,6.87],"6-33-47":[1.07,7.73],"5-16-23":[-2.44,7.73],"6-33-48":[-0.11,7.04],"6-33-49":[-2.91,4.01],"5-16-24":[-7.99,7.04],"6-33-50":[-7.73,0.65],"6-33-51":[-12.58,-2.01],"5-16-25":[-16.4,0.65],"6-33-52":[-14.99,-3.66],"6-33-53":[-21.95,-5.75],"5-16-26":[-25.69,-3.66],"6-33-54":[-24.52,-9.25],"6-33-55":[-29.3,-10.49],"5-16-27":[-35.05,-9.25],"6-33-56":[-30.53,-11.38],"6-33-57":[-34.54,-11.65],"5-16-28":[-41.26,248.01],"6-33-58":[-34.69,1304.63],"6-33-59":[163.09,4721.94],"5-16-29":[-36.6,4721.94],"6-33-60":[441.12,2555.4],"6-33-61":[1232.67,1732.44],"5-16-30":[441.12,2555.4],"6-33-62":[1251.83,2245.57],"6-33-63":[-29.54,2744.47],"5-16-31":[-29.54,2744.47],"6-34-0":[13.6,33.57],"6-34-1":[16.2,34.27],"6-34-2":[15.09,1823.83],"6-34-3":[5.88,1627.27],"6-34-4":[0.78,1272.1],"6-34-5":[-16.01,1913.68],"6-34-6":[-22.87,1056.55],"6-34-7":[-53.19,570.75],"6-34-8":[-67.08,613.97],"6-34-9":[-84.49,433.17],"6-34-10":[-91.94,-38.64],"6-34-11":[-96.06,-44.35],"6-34-12":[-95.88,171.79],"6-34-13":[-46,145.12],"6-34-14":[-3.04,594.92],"6-34-15":[117.38,614.36],"6-34-16":[124.05,432.14],"6-34-17":[17.53,436.84],"6-34-18":[94.64,1652.42],"6-34-19":[35.46,2004.7],"6-34-20":[-31.34,358.2],"6-34-21":[-56.91,76.45],"6-34-22":[-52.24,86.32],"6-34-23":[-53.41,678.56],"6-34-24":[-46.91,565.42],"6-34-25":[-34.3,19.57],"6-34-26":[-32.9,735.54],"6-34-27":[-24.67,729.46],"6-34-28":[-18.58,3818.31],"6-34-29":[-17.79,1199.76],"6-34-30":[0.98,213.98],"6-34-31":[2.04,21.13],"6-34-32":[2.12,20.08],"6-34-33":[-5.46,10.12],"6-34-34":[-5.77,0.8],"6-34-35":[-6.05,2.96],"6-34-36":[-5.94,2.96],"6-34-37":[-5.13,6.17],"6-34-38":[-1.3,9.8],"6-34-39":[1.64,14.13],"6-34-40":[4.23,15.17],"6-34-41":[4.47,14.04],"6-34-42":[3.4,12.02],"6-34-43":[3.4,11.01],"6-34-44":[1.55,10.91],"6-34-45":[1.48,9.3],"6-34-46":[1.54,11.81],"6-34-47":[3.72,12.77],"6-34-48":[2.17,11.75],"6-34-49":[0.41,7.88],"6-34-50":[-3.25,5.77],"6-34-51":[-6.93,1.5],"6-34-52":[-11.33,-1.44],"6-34-53":[-18.26,-3.74],"6-34-54":[-20.79,-6.34],"6-34-55":[-25.29,-7.54],"6-34-56":[-27.01,-9.25],"6-34-57":[-33.98,-10.94],"6-34-58":[-34.8,1241.13],"6-34-59":[-52.36,1732.84],"6-34-60":[-52.36,2250.43],"6-34-61":[873,1480.75],"6-34-62":[1247.41,2251.13],"6-34-63":[-29.54,2745.47],"6-35-0":[13.6,34.16],"6-35-1":[16.51,35.76],"5-17-0":[13.6,35.76],"6-35-2":[16.38,1923.59],"6-35-3":[9.49,2313.91],"5-17-1":[5.88,2313.91],"4-8-0":[3.54,2313.91],"6-35-4":[3.3,2252.73],"6-35-5":[-8.04,1712.44],"5-17-2":[-16.01,2252.73],"6-35-6":[-16.63,1559.44],"6-35-7":[-53.78,272.32],"5-17-3":[-53.78,1559.44],"4-8-1":[-63.11,2252.73],"6-35-8":[-65.49,185.61],"6-35-9":[-76.1,184.52],"5-17-4":[-84.49,613.97],"6-35-10":[-88.72,293.27],"6-35-11":[-92.71,81.87],"5-17-5":[-96.06,293.27],"4-8-2":[-97.86,613.97],"6-35-12":[-92.66,123.7],"6-35-13":[-45.82,181.36],"5-17-6":[-95.88,181.36],"6-35-14":[-26.92,536.17],"6-35-15":[122.02,651.7],"5-17-7":[-26.92,651.7],"4-8-3":[-96.12,651.7],"6-35-16":[27.96,701.76],"6-35-17":[-8.6,951.43],"5-17-8":[-8.6,951.43],"6-35-18":[-44.79,1713.99],"6-35-19":[-37.13,1476.72],"5-17-9":[-44.79,2004.7],"4-8-4":[-44.79,2004.7],"6-35-20":[-74.33,139.84],"6-35-21":[-74.18,28.94],"5-17-10":[-74.33,358.2],"6-35-22":[-68.27,63.37],"6-35-23":[-53.75,293.76],"5-17-11":[-68.27,678.56],"4-8-5":[-74.33,703.65],"6-35-24":[-62.66,1104.62],"6-35-25":[-46.42,14.26],"5-17-12":[-62.66,1104.62],"6-35-26":[-24.54,8.26],"6-35-27":[-12.35,357.63],"5-17-13":[-32.9,735.54],"4-8-6":[-62.66,3009.32],"6-35-28":[-9.05,1960.73],"6-35-29":[-38,1563.96],"5-17-14":[-38,3818.31],"6-35-30":[10.56,29.2],"6-35-31":[-34,2816.32],"5-17-15":[-34,2816.32],"4-8-7":[-38,3818.31],"6-35-32":[-39.36,6286.78],"6-35-33":[-56.73,4458.62],"5-17-16":[-56.73,6286.78],"6-35-34":[-63.32,4118.74],"6-35-35":[-8.38,458.91],"5-17-17":[-63.32,4118.74],"4-8-8":[-63.32,6286.78],"6-35-36":[-1.45,18],"6-35-37":[2.19,21.77],"5-17-18":[-5.94,21.77],"6-35-38":[3.78,22.14],"6-35-39":[5.81,20.12],"5-17-19":[-1.3,22.14],"4-8-9":[-17.05,22.14],"6-35-40":[6.54,19.83],"6-35-41":[-22.92,470.08],"5-17-20":[-22.92,470.08],"6-35-42":[5.5,19.63],"6-35-43":[-88.44,1091.31],"5-17-21":[-88.44,1091.31],"4-8-10":[-88.44,1091.31],"6-35-44":[-23.76,1289.29],"6-35-45":[4.72,16.91],"5-17-22":[-23.76,1289.29],"6-35-46":[4.86,18.8],"6-35-47":[6.11,18.78],"5-17-23":[1.54,18.8],"4-8-11":[-23.76,1289.29],"6-35-48":[4.51,19.18],"6-35-49":[3.21,14.36],"5-17-24":[0.41,19.18],"6-35-50":[1.45,11.01],"6-35-51":[-2.17,8.59],"5-17-25":[-6.93,11.01],"4-8-12":[-16.4,19.18],"6-35-52":[-5.6,3.45],"6-35-53":[-12,-1.41],"5-17-26":[-18.26,3.45],"6-35-54":[-13.82,-3.08],"6-35-55":[-20.59,-4.15],"5-17-27":[-25.29,-3.08],"4-8-13":[-35.05,3.45],"6-35-56":[-21.6,-7],"6-35-57":[-30.21,327.46],"5-17-28":[-33.98,327.46],"6-35-58":[-30.73,1088.67],"6-35-59":[-49.4,1067.5],"5-17-29":[-52.36,1732.84],"4-8-14":[-52.36,4721.94],"6-35-60":[-49.4,1223.59],"6-35-61":[548.47,1388.03],"5-17-30":[-52.36,2250.43],"6-35-62":[1139.79,2260.72],"6-35-63":[-29.54,2745.47],"5-17-31":[-29.54,2745.47],"4-8-15":[-52.36,2745.47],"6-36-0":[13.6,34.61],"6-36-1":[16.93,36.8],"6-36-2":[17.48,2230.75],"6-36-3":[8.2,2258.08],"6-36-4":[6.48,1817.36],"6-36-5":[1.34,2118.71],"6-36-6":[-14.9,1862.67],"6-36-7":[-49.69,611.89],"6-36-8":[-62.21,282.83],"6-36-9":[-68.81,575.77],"6-36-10":[-79.91,428.02],"6-36-11":[-45.31,430.05],"6-36-12":[-47.68,408.97],"6-36-13":[-44.52,406.33],"6-36-14":[126.58,610.85],"6-36-15":[16.43,575.3],"6-36-16":[12.09,700.02],"6-36-17":[-45.25,927.51],"6-36-18":[-64.5,1201.61],"6-36-19":[-85.54,191.41],"6-36-20":[-89.06,-36.24],"6-36-21":[-93.16,-34.13],"6-36-22":[-90.89,29.15],"6-36-23":[-82.17,55.76],"6-36-24":[-67.36,1947.58],"6-36-25":[-49.86,2231.33],"6-36-26":[-37.01,0.98],"6-36-27":[-29.93,-2.92],"6-36-28":[-18.96,1449.86],"6-36-29":[-29.88,4212.67],"6-36-30":[-37.47,5414.88],"6-36-31":[-328.06,5809.48],"6-36-32":[167.64,5906.18],"6-36-33":[112.46,4149.93],"6-36-34":[77.11,5607.45],"6-36-35":[-116.39,6754.44],"6-36-36":[-49.49,5914.69],"6-36-37":[-7.04,824.13],"6-36-38":[10.05,32.11],"6-36-39":[9.18,30.01],"6-36-40":[9.06,28.91],"6-36-41":[9.77,29.26],"6-36-42":[8.85,27.55],"6-36-43":[7.85,26.75],"6-36-44":[8.15,25.78],"6-36-45":[8.09,22.48],"6-36-46":[8.44,23.14],"6-36-47":[9.17,22.91],"6-36-48":[7.17,22.45],"6-36-49":[4.69,22.45],"6-36-50":[4.05,19.43],"6-36-51":[1.95,10.14],"6-36-52":[-2.07,8.34],"6-36-53":[-5.89,2.43],"6-36-54":[-7.67,1],"6-36-55":[-16.43,-0.39],"6-36-56":[-17.96,4.83],"6-36-57":[-24.97,322.6],"6-36-58":[-25.5,1069.77],"6-36-59":[-46.79,1055.47],"6-36-60":[-49.8,832.48],"6-36-61":[240.99,1288.62],"6-36-62":[1054.14,2281.25],"6-36-63":[-29.54,2745.47],"6-37-0":[13.6,35.4],"6-37-1":[17.14,38.45],"5-18-0":[13.6,38.45],"6-37-2":[18.24,2437.47],"6-37-3":[7.27,2148.92],"5-18-1":[7.27,2437.47],"6-37-4":[7.89,1260.24],"6-37-5":[4.77,32.77],"5-18-2":[1.34,2118.71],"6-37-6":[-1.92,1808.19],"6-37-7":[-40.5,1101.49],"5-18-3":[-49.69,1862.67],"6-37-8":[-50.59,282.61],"6-37-9":[-60.82,642.27],"5-18-4":[-68.81,642.27],"6-37-10":[-29.59,648.16],"6-37-11":[-23.76,410.19],"5-18-5":[-79.91,648.16],"6-37-12":[-40.73,516.43],"6-37-13":[163.41,654.15],"5-18-6":[-47.68,654.15],"6-37-14":[225.34,700.01],"6-37-15":[-96.6,889.43],"5-18-7":[-96.6,889.43],"6-37-16":[-33.29,1597.57],"6-37-17":[-113.29,1241.62],"5-18-8":[-113.29,1597.57],"6-37-18":[-86.48,7.41],"6-37-19":[-97.81,-12.11],"5-18-9":[-97.81,1201.61],"6-37-20":[-102.6,-42.73],"6-37-21":[-100.62,-43.8],"5-18-10":[-102.6,-34.13],"6-37-22":[-95.92,-41.08],"6-37-23":[-92.86,26.27],"5-18-11":[-95.92,55.76],"6-37-24":[-83.2,1217.95],"6-37-25":[-62.64,2330.69],"5-18-12":[-83.2,2330.69],"6-37-26":[-56.44,-14.96],"6-37-27":[-48.4,871.95],"5-18-13":[-56.44,871.95],"6-37-28":[-49.02,5700.22],"6-37-29":[-23.52,3844.52],"5-18-14":[-49.02,5700.22],"6-37-30":[169,5315.89],"6-37-31":[170.25,3836.77],"5-18-15":[-328.06,5809.48],"6-37-32":[117.06,443.38],"6-37-33":[81.67,324.59],"5-18-16":[81.67,5906.18],"6-37-34":[90.99,2362.22],"6-37-35":[136.3,5683.59],"5-18-17":[-116.39,6754.44],"6-37-36":[213.99,5564.58],"6-37-37":[-123.53,5547.75],"5-18-18":[-123.53,5914.69],"6-37-38":[11.41,41.12],"6-37-39":[13.52,40.44],"5-18-19":[9.18,41.12],"6-37-40":[13.77,39.3],"6-37-41":[13.66,37.5],"5-18-20":[9.06,39.3],"6-37-42":[12.71,34.42],"6-37-43":[9.07,32.14],"5-18-21":[7.85,34.42],"6-37-44":[8.29,34.46],"6-37-45":[-18.71,1376.54],"5-18-22":[-18.71,1376.54],"6-37-46":[-29.59,1061.25],"6-37-47":[-7.31,1414.25],"5-18-23":[-29.59,1414.25],"6-37-48":[-36.85,4026.29],"6-37-49":[-269.44,3587.09],"5-18-24":[-269.44,4026.29],"6-37-50":[-96.77,2789.91],"6-37-51":[-222.29,1172.63],"5-18-25":[-222.29,2789.91],"6-37-52":[1.79,13.51],"6-37-53":[0.72,11.28],"5-18-26":[-5.89,13.51],"6-37-54":[-0.4,8.59],"6-37-55":[-7.66,4.36],"5-18-27":[-16.43,8.59],"6-37-56":[-8.53,510.52],"6-37-57":[-19.03,669.28],"5-18-28":[-24.97,669.28],"6-37-58":[-21.41,1660.76],"6-37-59":[-46.84,796.88],"5-18-29":[-46.84,1660.76],"6-37-60":[-52.31,243.32],"6-37-61":[219.34,1153.83],"5-18-30":[-52.31,1288.62],"6-37-62":[921.3,2321.18],"6-37-63":[-29.54,2745.47],"5-18-31":[-29.54,2745.47],"6-38-0":[13.6,36.29],"6-38-1":[17.42,39.8],"6-38-2":[18.96,2116.63],"6-38-3":[6.6,2052.81],"6-38-4":[10,1115.32],"6-38-5":[12.54,35.55],"6-38-6":[0.83,1713.29],"6-38-7":[-34.12,1625.19],"6-38-8":[-39.93,332.82],"6-38-9":[-52.52,633.8],"6-38-10":[-48.57,658.27],"6-38-11":[-23.61,464.64],"6-38-12":[271.57,704.35],"6-38-13":[334.3,1114.61],"6-38-14":[-30.94,1053.24],"6-38-15":[-69.08,1266.55],"6-38-16":[-76.04,1888.88],"6-38-17":[-77.04,507.57],"6-38-18":[-86.89,-36.02],"6-38-19":[-98.41,-42.87],"6-38-20":[-103.24,-47.88],"6-38-21":[-104.42,-47.93],"6-38-22":[-104.14,-46.84],"6-38-23":[-103.56,-41.22],"6-38-24":[-101.46,1152.74],"6-38-25":[-85.84,3067.99],"6-38-26":[-70.73,-20.78],"6-38-27":[-65.4,833.1],"6-38-28":[-114.23,4925.73],"6-38-29":[10.54,5356.84],"6-38-30":[61.91,3882.23],"6-38-31":[106.5,839.2],"6-38-32":[68.16,474.29],"6-38-33":[63.39,249.13],"6-38-34":[103.34,384.58],"6-38-35":[184.94,644.83],"6-38-36":[252.99,6360.34],"6-38-37":[-22.39,6449.41],"6-38-38":[-1.33,5847.77],"6-38-39":[12.47,42.32],"6-38-40":[-9.89,2677.33],"6-38-41":[-3.78,2243.25],"6-38-42":[5.25,5156.32],"6-38-43":[2.3,5062.63],"6-38-44":[-10.81,5023.3],"6-38-45":[10.45,4724.4],"6-38-46":[-49.62,3766.16],"6-38-47":[-60.04,2585.5],"6-38-48":[-22.3,3553.09],"6-38-49":[7.67,3257.62],"6-38-50":[-72.84,2695.15],"6-38-51":[-106.71,1949.61],"6-38-52":[4.99,21.78],"6-38-53":[5.46,21.13],"6-38-54":[2.62,15.36],"6-38-55":[0.1,12.23],"6-38-56":[-3.35,2784.58],"6-38-57":[-15.5,1731.59],"6-38-58":[-15.5,1790.22],"6-38-59":[-44.23,1401.52],"6-38-60":[-50.33,332.2],"6-38-61":[241.75,1029.44],"6-38-62":[742.55,2346.02],"6-38-63":[-29.54,2745.47],"6-39-0":[13.6,37.58],"6-39-1":[17.68,41.29],"5-19-0":[13.6,41.29],"6-39-2":[16.51,1723.34],"6-39-3":[6.84,1651.25],"5-19-1":[6.6,2116.63],"4-9-0":[6.6,2437.47],"6-39-4":[11.11,1535.69],"6-39-5":[13.7,38.14],"5-19-2":[10,1535.69],"6-39-6":[2.98,1492.45],"6-39-7":[-1.86,1664.51],"5-19-3":[-34.12,1713.29],"4-9-1":[-49.69,2118.71],"3-4-0":[-63.11,2437.47],"6-39-8":[-16.42,932.96],"6-39-9":[-42.68,781.05],"5-19-4":[-52.52,932.96],"6-39-10":[-44.28,360.51],"6-39-11":[-41.88,596.29],"5-19-5":[-48.57,658.27],"4-9-2":[-79.91,932.96],"6-39-12":[51.44,869.29],"6-39-13":[188,1077.82],"5-19-6":[51.44,1114.61],"6-39-14":[-31.13,916.29],"6-39-15":[-25.79,1579.36],"5-19-7":[-69.08,1579.36],"4-9-3":[-96.6,1579.36],"3-4-1":[-97.86,1579.36],"6-39-16":[-56.2,1114.21],"6-39-17":[-75.76,23.87],"5-19-8":[-77.04,1888.88],"6-39-18":[-85.75,-37.02],"6-39-19":[-95.04,-41.17],"5-19-9":[-98.41,-36.02],"4-9-4":[-113.29,1888.88],"6-39-20":[-101.46,-44.35],"6-39-21":[-103.88,-46.85],"5-19-10":[-104.42,-44.35],"6-39-22":[-105.29,-49.02],"6-39-23":[-104.93,-50.05],"5-19-11":[-105.29,-41.22],"4-9-5":[-105.29,55.76],"3-4-2":[-113.29,2004.7],"6-39-24":[-129.9,-42.27],"6-39-25":[-132.42,1440.94],"5-19-12":[-132.42,3067.99],"6-39-26":[-85.88,-29.52],"6-39-27":[-89.53,1217.96],"5-19-13":[-89.53,1217.96],"4-9-6":[-132.42,3067.99],"6-39-28":[-34.01,3550.67],"6-39-29":[-4.7,404.14],"5-19-14":[-114.23,5356.84],"6-39-30":[19.1,759.95],"6-39-31":[49.74,984.95],"5-19-15":[19.1,3882.23],"4-9-7":[-328.06,5809.48],"3-4-3":[-328.06,5809.48],"6-39-32":[-0.58,880.62],"6-39-33":[34.67,244.67],"5-19-16":[-0.58,880.62],"6-39-34":[68,300.39],"6-39-35":[108.3,433.23],"5-19-17":[68,644.83],"4-9-8":[-116.39,6754.44],"6-39-36":[155.88,5347.83],"6-39-37":[202.17,6455.95],"5-19-18":[-22.39,6455.95],"6-39-38":[2.92,6600.28],"6-39-39":[3.78,6222.25],"5-19-19":[-1.33,6600.28],"4-9-9":[-123.53,6600.28],"3-4-4":[-123.53,6754.44],"6-39-40":[25.81,6775.96],"6-39-41":[366.3,6919.9],"5-19-20":[-9.89,6919.9],"6-39-42":[645.96,6300.89],"6-39-43":[493.64,6969.13],"5-19-21":[2.3,6969.13],"4-9-10":[-9.89,6969.13],"6-39-44":[407.92,5888.33],"6-39-45":[231.75,3998.13],"5-19-22":[-10.81,5888.33],"6-39-46":[248.58,2022.28],"6-39-47":[173.83,1957.39],"5-19-23":[-60.04,3766.16],"4-9-11":[-60.04,5888.33],"3-4-5":[-88.44,6969.13],"6-39-48":[-0.14,1353.11],"6-39-49":[-111.83,1097.15],"5-19-24":[-111.83,3553.09],"6-39-50":[-1.5,605.9],"6-39-51":[-63.31,2581.84],"5-19-25":[-106.71,2695.15],"4-9-12":[-269.44,4026.29],"6-39-52":[7.24,30.32],"6-39-53":[8.16,28.42],"5-19-26":[4.99,30.32],"6-39-54":[5.99,24.52],"6-39-55":[4.94,1701.66],"5-19-27":[0.1,1701.66],"4-9-13":[-16.43,1701.66],"3-4-6":[-269.44,4026.29],"6-39-56":[2.04,2876.77],"6-39-57":[-5.16,2323.88],"5-19-28":[-15.5,2876.77],"6-39-58":[-5.16,2011.29],"6-39-59":[-38.71,1401.52],"5-19-29":[-44.23,2011.29],"4-9-14":[-46.84,2876.77],"6-39-60":[-48.69,398.96],"6-39-61":[152.3,947.43],"5-19-30":[-50.33,1029.44],"6-39-62":[609.13,2348.16],"6-39-63":[-29.54,2745.47],"5-19-31":[-29.54,2745.47],"4-9-15":[-52.31,2745.47],"3-4-7":[-52.36,4721.94],"6-40-0":[13.58,38.54],"6-40-1":[18.42,42.48],"6-40-2":[14.03,1837.18],"6-40-3":[9.2,1301.31],"6-40-4":[16.61,1474.89],"6-40-5":[15.16,294.75],"6-40-6":[5.31,35.39],"6-40-7":[0.08,1690.53],"6-40-8":[-12.78,2057.19],"6-40-9":[-31.21,1148.56],"6-40-10":[-39,1032.11],"6-40-11":[-38.87,935.94],"6-40-12":[283.81,898.04],"6-40-13":[24.76,1031.68],"6-40-14":[-26.02,1255.33],"6-40-15":[-50.51,787.13],"6-40-16":[-51.94,269.07],"6-40-17":[-74.05,-24.93],"6-40-18":[-82.04,-34.93],"6-40-19":[-88.7,-36.77],"6-40-20":[-92.93,48.35],"6-40-21":[-98.06,-42.9],"6-40-22":[-101.84,-47.14],"6-40-23":[-104.68,-50.45],"6-40-24":[-138.65,-50.2],"6-40-25":[-141.12,1288.29],"6-40-26":[-90.28,-35.91],"6-40-27":[-82.71,92.4],"6-40-28":[-60.97,2718.19],"6-40-29":[-37.5,2385.74],"6-40-30":[52.53,2826.62],"6-40-31":[41.04,2785.87],"6-40-32":[-10.01,1058.3],"6-40-33":[7.09,158.16],"6-40-34":[23.99,203.5],"6-40-35":[68.74,470.48],"6-40-36":[117.6,267.64],"6-40-37":[126.79,5469.94],"6-40-38":[191.91,5778.21],"6-40-39":[986.52,6050.05],"6-40-40":[396.34,6388.87],"6-40-41":[262.61,6039.42],"6-40-42":[156.73,4549.07],"6-40-43":[232.7,2816.12],"6-40-44":[196.61,812.73],"6-40-45":[94.32,598.59],"6-40-46":[-102.43,1675.56],"6-40-47":[0.8,1125.83],"6-40-48":[-8.45,672.86],"6-40-49":[1.67,282.56],"6-40-50":[9.92,25.99],"6-40-51":[-12.01,1141.97],"6-40-52":[12.59,33.62],"6-40-53":[14.04,33.98],"6-40-54":[10.79,32.1],"6-40-55":[7.94,2110.84],"6-40-56":[7.14,2245.41],"6-40-57":[1.76,2040.57],"6-40-58":[-14.94,2090.43],"6-40-59":[-38.71,870.91],"6-40-60":[-48.69,230.81],"6-40-61":[-53.09,864.87],"6-40-62":[549.51,2344.27],"6-40-63":[-29.59,2745.47],"6-41-0":[13.58,39.48],"6-41-1":[19.11,44.26],"5-20-0":[13.58,44.26],"6-41-2":[13.19,951.78],"6-41-3":[11.37,1019.58],"5-20-1":[9.2,1837.18],"6-41-4":[17.37,1639.31],"6-41-5":[16.47,47.31],"5-20-2":[15.16,1639.31],"6-41-6":[12.24,47.31],"6-41-7":[6.36,1076.43],"5-20-3":[0.08,1690.53],"6-41-8":[-2.21,1785.63],"6-41-9":[-5.15,768.08],"5-20-4":[-31.21,2057.19],"6-41-10":[-18.25,1491.48],"6-41-11":[-32.03,1587.28],"5-20-5":[-39,1587.28],"6-41-12":[-13.09,864.36],"6-41-13":[25.94,1005.83],"5-20-6":[-13.09,1031.68],"6-41-14":[-40.09,588],"6-41-15":[-62.23,347.02],"5-20-7":[-62.23,1255.33],"6-41-16":[-51.62,265.73],"6-41-17":[-68.99,-25.54],"5-20-8":[-74.05,269.07],"6-41-18":[-71.61,-29.96],"6-41-19":[-78.01,-32.58],"5-20-9":[-88.7,-29.96],"6-41-20":[-85.81,18.12],"6-41-21":[-94.07,-39.59],"5-20-10":[-98.06,48.35],"6-41-22":[-102.75,-46.49],"6-41-23":[-105.57,-50.83],"5-20-11":[-105.57,-46.49],"6-41-24":[-129.54,-50.47],"6-41-25":[-129.48,1103.9],"5-20-12":[-141.12,1288.29],"6-41-26":[-90.4,869.54],"6-41-27":[-83.95,203.34],"5-20-13":[-90.4,869.54],"6-41-28":[-92.41,2565.59],"6-41-29":[-92.52,2449.21],"5-20-14":[-92.52,2718.19],"6-41-30":[126.29,2659.72],"6-41-31":[-0.89,2129.57],"5-20-15":[-0.89,2826.62],"6-41-32":[-35.4,103.23],"6-41-33":[-58.32,106.3],"5-20-16":[-58.32,1058.3],"6-41-34":[-8.15,187.29],"6-41-35":[3.69,1127.71],"5-20-17":[-8.15,1127.71],"6-41-36":[121.95,684.67],"6-41-37":[141.32,910.63],"5-20-18":[117.6,5469.94],"6-41-38":[214.18,4327.46],"6-41-39":[236.72,4098.61],"5-20-19":[191.91,6050.05],"6-41-40":[173.14,2622.25],"6-41-41":[94.42,1259.46],"5-20-20":[94.42,6388.87],"6-41-42":[68.09,1956.16],"6-41-43":[84.73,1847.62],"5-20-21":[68.09,4549.07],"6-41-44":[37.81,370.32],"6-41-45":[-42.53,1242.87],"5-20-22":[-42.53,1242.87],"6-41-46":[-22.19,172.48],"6-41-47":[-31.67,129.69],"5-20-23":[-102.43,1675.56],"6-41-48":[11.07,24.28],"6-41-49":[10.94,26.76],"5-20-24":[-8.45,672.86],"6-41-50":[10.24,27.93],"6-41-51":[-32.01,987.97],"5-20-25":[-32.01,1141.97],"6-41-52":[13.89,37.69],"6-41-53":[15.64,37.01],"5-20-26":[12.59,37.69],"6-41-54":[14.31,2255.29],"6-41-55":[8.72,2099.32],"5-20-27":[7.94,2255.29],"6-41-56":[6.99,2890.49],"6-41-57":[-1.96,2528.76],"5-20-28":[-1.96,2890.49],"6-41-58":[-28.3,1987.4],"6-41-59":[-36.07,-12.83],"5-20-29":[-38.71,2090.43],"6-41-60":[-47.6,-17.93],"6-41-61":[-51.95,806.53],"5-20-30":[-53.09,864.87],"6-41-62":[471.29,2332.43],"6-41-63":[-29.59,2745.47],"5-20-31":[-29.59,2745.47],"6-42-0":[13.6,39.87],"6-42-1":[20.07,45.77],"6-42-2":[13.39,636.09],"6-42-3":[13.39,1412.39],"6-42-4":[19.15,1850.85],"6-42-5":[16.99,99.21],"6-42-6":[19.11,50.32],"6-42-7":[14.3,47.47],"6-42-8":[7.19,1284.77],"6-42-9":[7.19,31.28],"6-42-10":[-1.45,19.12],"6-42-11":[-15.72,1027.48],"6-42-12":[-15.45,846.11],"6-42-13":[-12.9,704.1],"6-42-14":[-35.16,560.68],"6-42-15":[-28.74,626.18],"6-42-16":[-51.65,12.82],"6-42-17":[-59.93,-22.72],"6-42-18":[-63.96,-25.31],"6-42-19":[-70.71,-27.67],"6-42-20":[-79.19,-32.63],"6-42-21":[-92.99,-37.86],"6-42-22":[-102.26,-44.04],"6-42-23":[-104.51,-48.01],"6-42-24":[-109.89,-46.13],"6-42-25":[-127.72,350.69],"6-42-26":[-127.8,1415.28],"6-42-27":[-108.65,1174.77],"6-42-28":[-95.38,906.03],"6-42-29":[-54.23,2236.77],"6-42-30":[-7.39,2551.06],"6-42-31":[-5.06,1982.48],"6-42-32":[-47.66,394.84],"6-42-33":[-73.31,139.4],"6-42-34":[-32.27,379.21],"6-42-35":[37.28,586.16],"6-42-36":[152.35,742.16],"6-42-37":[128.07,1176.05],"6-42-38":[126.79,1325.79],"6-42-39":[110.1,644.34],"6-42-40":[97.77,249.8],"6-42-41":[34.67,233.97],"6-42-42":[2.15,142.11],"6-42-43":[-47.95,159.46],"6-42-44":[8.07,171.01],"6-42-45":[-24.24,773.01],"6-42-46":[11.51,27.54],"6-42-47":[5.16,24.63],"6-42-48":[5.16,23.27],"6-42-49":[8.2,25.72],"6-42-50":[-14.47,710.18],"6-42-51":[7.63,36.26],"6-42-52":[18.27,39.83],"6-42-53":[15.15,41.77],"6-42-54":[17.24,2109.78],"6-42-55":[9.82,2069.8],"6-42-56":[4.32,269.27],"6-42-57":[-10.08,1250.11],"6-42-58":[-23.74,1211.47],"6-42-59":[-36.14,-12.1],"6-42-60":[-49.12,-17.94],"6-42-61":[-51.95,889.65],"6-42-62":[706.64,2326.44],"6-42-63":[-29.54,2745.48],"6-43-0":[13.6,39.93],"6-43-1":[20.42,46.12],"5-21-0":[13.6,46.12],"6-43-2":[15.74,633.11],"6-43-3":[17.13,1941.41],"5-21-1":[13.39,1941.41],"4-10-0":[9.2,1941.41],"6-43-4":[99.2,2238.22],"6-43-5":[18.2,1021.33],"5-21-2":[16.99,2238.22],"6-43-6":[19.11,56.07],"6-43-7":[20.15,55.35],"5-21-3":[14.3,56.07],"4-10-1":[0.08,2238.22],"6-43-8":[17.02,49.44],"6-43-9":[9.89,42.39],"5-21-4":[7.19,1284.77],"6-43-10":[5.25,33.28],"6-43-11":[0.68,23.83],"5-21-5":[-15.72,1027.48],"4-10-2":[-39,2057.19],"6-43-12":[-8.86,1193.16],"6-43-13":[-13.28,895.93],"5-21-6":[-15.45,1193.16],"6-43-14":[-20.12,804.73],"6-43-15":[-48.44,566.65],"5-21-7":[-48.44,804.73],"4-10-3":[-62.23,1255.33],"6-43-16":[-45.14,-4.42],"6-43-17":[-49.88,-13.27],"5-21-8":[-59.93,12.82],"6-43-18":[-53.59,-19.77],"6-43-19":[-63.3,-23.07],"5-21-9":[-70.71,-19.77],"4-10-4":[-88.7,269.07],"6-43-20":[-73.49,-28.47],"6-43-21":[-87.06,-33.6],"5-21-10":[-92.99,-28.47],"6-43-22":[-94.59,-38.95],"6-43-23":[-97.23,-43.01],"5-21-11":[-104.51,-38.95],"4-10-5":[-105.57,48.35],"6-43-24":[-97.15,-43.83],"6-43-25":[-102.43,-45.56],"5-21-12":[-127.72,350.69],"6-43-26":[-113.66,-45.85],"6-43-27":[-108.06,-44.72],"5-21-13":[-127.8,1415.28],"4-10-6":[-141.12,1415.28],"6-43-28":[-95.84,-31.87],"6-43-29":[-77.21,502.55],"5-21-14":[-95.84,2236.77],"6-43-30":[-149.21,1207.52],"6-43-31":[87.42,1109.8],"5-21-15":[-149.21,2551.06],"4-10-7":[-149.21,2826.62],"6-43-32":[-59.96,483.8],"6-43-33":[-57.01,412.4],"5-21-16":[-73.31,483.8],"6-43-34":[2.73,657.03],"6-43-35":[87.58,621.44],"5-21-17":[-32.27,657.03],"4-10-8":[-73.31,1127.71],"6-43-36":[215.28,689.04],"6-43-37":[74.01,949.21],"5-21-18":[74.01,1176.05],"6-43-38":[58.91,1245.78],"6-43-39":[66.15,856.34],"5-21-19":[58.91,1325.79],"4-10-9":[58.91,6050.05],"6-43-40":[22.81,738.99],"6-43-41":[-2.88,703.38],"5-21-20":[-2.88,738.99],"6-43-42":[24.1,362.62],"6-43-43":[-5.9,395.29],"5-21-21":[-47.95,395.29],"4-10-10":[-47.95,6388.87],"6-43-44":[-44.85,228.24],"6-43-45":[-41.29,445.18],"5-21-22":[-44.85,773.01],"6-43-46":[2.65,26.5],"6-43-47":[0.53,19.67],"5-21-23":[0.53,27.54],"4-10-11":[-102.43,1675.56],"6-43-48":[0.24,14.06],"6-43-49":[3.69,25.65],"5-21-24":[0.24,25.72],"6-43-50":[3.62,714.59],"6-43-51":[5.69,38.8],"5-21-25":[-14.47,714.59],"4-10-12":[-32.01,1141.97],"6-43-52":[18.27,41.03],"6-43-53":[15.15,44.21],"5-21-26":[15.15,44.21],"6-43-54":[19.28,1728.16],"6-43-55":[9.82,37.01],"5-21-27":[9.82,2109.78],"4-10-13":[7.94,2255.29],"6-43-56":[1.8,22.37],"6-43-57":[-9.86,6.91],"5-21-28":[-10.08,1250.11],"6-43-58":[-23.43,-4.86],"6-43-59":[-35.85,-11.97],"5-21-29":[-36.14,1211.47],"4-10-14":[-38.71,2890.49],"6-43-60":[-50.63,-17.94],"6-43-61":[-51.01,1371.37],"5-21-30":[-51.95,1371.37],"6-43-62":[889.64,2317.26],"6-43-63":[-29.54,2745.48],"5-21-31":[-29.54,2745.48],"4-10-15":[-53.09,2745.48],"6-44-0":[13.6,39.84],"6-44-1":[20.3,45.86],"6-44-2":[17.47,772.13],"6-44-3":[19.23,2089.38],"6-44-4":[1020.94,2319.04],"6-44-5":[23.12,1708.39],"6-44-6":[23.37,1880.96],"6-44-7":[23.02,1854.07],"6-44-8":[21.54,1029.06],"6-44-9":[17.35,54.28],"6-44-10":[12.02,44.62],"6-44-11":[7.84,35.64],"6-44-12":[1.92,148.72],"6-44-13":[-20.3,486.61],"6-44-14":[-16.93,577.05],"6-44-15":[-12.05,408.54],"6-44-16":[-25.93,8.57],"6-44-17":[-39.16,-6.77],"6-44-18":[-44.89,-11.09],"6-44-19":[-56.94,-15.52],"6-44-20":[-66.17,-21.28],"6-44-21":[-77.89,-27.12],"6-44-22":[-85.04,-32.05],"6-44-23":[-89.27,-36.06],"6-44-24":[-91.01,-38.75],"6-44-25":[-96.71,-40.68],"6-44-26":[-98.96,-43.31],"6-44-27":[-95.93,-44.41],"6-44-28":[-95.18,-38.68],"6-44-29":[-81.6,14.37],"6-44-30":[-61.24,1030.82],"6-44-31":[94.48,889.3],"6-44-32":[-68.02,823.15],"6-44-33":[-38.49,487.97],"6-44-34":[67.74,694.41],"6-44-35":[161.68,753.33],"6-44-36":[228.41,612.29],"6-44-37":[103.13,914.71],"6-44-38":[86.09,880.42],"6-44-39":[114.58,752.75],"6-44-40":[106.53,799.57],"6-44-41":[70.48,899.62],"6-44-42":[35.31,584.15],"6-44-43":[1.97,482.27],"6-44-44":[-15.03,526.4],"6-44-45":[1.5,25.03],"6-44-46":[-0.35,22.2],"6-44-47":[-1.19,4.24],"6-44-48":[-2.11,6.22],"6-44-49":[-0.03,20.82],"6-44-50":[4.52,23.4],"6-44-51":[4.37,37.14],"6-44-52":[17.75,41.14],"6-44-53":[20.43,1523.88],"6-44-54":[16.01,578.59],"6-44-55":[7.53,38.03],"6-44-56":[-1.38,22.22],"6-44-57":[-9.33,2.32],"6-44-58":[-22.52,-3.02],"6-44-59":[-35.85,-11.88],"6-44-60":[-51.01,204.79],"6-44-61":[-50.72,1540.95],"6-44-62":[1083.33,2298.91],"6-44-63":[-29.54,2745.48],"6-45-0":[13.6,39.31],"6-45-1":[20,45.87],"5-22-0":[13.6,45.87],"6-45-2":[18.2,829.3],"6-45-3":[45.54,2185.38],"5-22-1":[17.47,2185.38],"6-45-4":[1552.61,2333.41],"6-45-5":[1247.03,2344.97],"5-22-2":[23.12,2344.97],"6-45-6":[26.83,2399.4],"6-45-7":[22.92,1842.92],"5-22-3":[22.92,2399.4],"6-45-8":[27.1,2229.6],"6-45-9":[22.31,1280.25],"5-22-4":[17.35,2229.6],"6-45-10":[19.37,59.8],"6-45-11":[16.17,52.29],"5-22-5":[7.84,59.8],"6-45-12":[14.52,48.25],"6-45-13":[12.67,43.66],"5-22-6":[-20.3,486.61],"6-45-14":[-9.6,301],"6-45-15":[-18.2,337.49],"5-22-7":[-18.2,577.05],"6-45-16":[-9.43,30.39],"6-45-17":[-20.11,6.02],"5-22-8":[-39.16,30.39],"6-45-18":[-27.17,-1.97],"6-45-19":[-40.58,-6.64],"5-22-9":[-56.94,-1.97],"6-45-20":[-50.81,-12.66],"6-45-21":[-62.29,-18.14],"5-22-10":[-77.89,-12.66],"6-45-22":[-68.68,-23.39],"6-45-23":[-75.93,-27.38],"5-22-11":[-89.27,-23.39],"6-45-24":[-80.15,-31.4],"6-45-25":[-85.3,-34.94],"5-22-12":[-96.71,-31.4],"6-45-26":[-89.68,-37.87],"6-45-27":[-90.85,-41.31],"5-22-13":[-98.96,-37.87],"6-45-28":[-90.85,-40.13],"6-45-29":[-87.64,-32.13],"5-22-14":[-95.18,14.37],"6-45-30":[-71.92,795.54],"6-45-31":[-78.81,615.02],"5-22-15":[-78.81,1030.82],"6-45-32":[-60.65,667.42],"6-45-33":[-29.07,524.34],"5-22-16":[-68.02,823.15],"6-45-34":[114.46,806.95],"6-45-35":[140.16,772.15],"5-22-17":[67.74,806.95],"6-45-36":[148.33,508.2],"6-45-37":[188.03,1020.26],"5-22-18":[103.13,1020.26],"6-45-38":[279.54,1043.99],"6-45-39":[226.83,630.24],"5-22-19":[86.09,1043.99],"6-45-40":[218.51,1344.63],"6-45-41":[192.34,1399.29],"5-22-20":[70.48,1399.29],"6-45-42":[-18.16,1093.19],"6-45-43":[-20.19,529.24],"5-22-21":[-20.19,1093.19],"6-45-44":[-0.71,38.77],"6-45-45":[-4.23,9.67],"5-22-22":[-15.03,526.4],"6-45-46":[-4.6,2.28],"6-45-47":[-5.77,-0.34],"5-22-23":[-5.77,22.2],"6-45-48":[-6.99,-0.02],"6-45-49":[-2.71,15],"5-22-24":[-6.99,20.82],"6-45-50":[5.01,17.57],"6-45-51":[6.24,35.37],"5-22-25":[4.37,37.14],"6-45-52":[17.75,40.41],"6-45-53":[20.22,47.29],"5-22-26":[17.75,1523.88],"6-45-54":[13.66,45.08],"6-45-55":[7.53,29.37],"5-22-27":[7.53,578.59],"6-45-56":[-1.7,15.36],"6-45-57":[-5.7,-0.8],"5-22-28":[-9.33,22.22],"6-45-58":[-21.59,-2.49],"6-45-59":[-34.95,-11.26],"5-22-29":[-35.85,-2.49],"6-45-60":[-51.02,354.31],"6-45-61":[-49.77,1979.94],"5-22-30":[-51.02,1979.94],"6-45-62":[1259.39,2275.47],"6-45-63":[-29.54,2745.48],"5-22-31":[-29.54,2745.48],"6-46-0":[13.6,38.72],"6-46-1":[19.71,46.42],"6-46-2":[19.83,660.34],"6-46-3":[405.24,2285.51],"6-46-4":[1894.84,2457.14],"6-46-5":[1860.54,2475.02],"6-46-6":[29.19,2542.84],"6-46-7":[26.42,1831.68],"6-46-8":[29.81,2027.72],"6-46-9":[29.48,2175.1],"6-46-10":[26.25,1494.43],"6-46-11":[24.84,68.28],"6-46-12":[21.59,63.25],"6-46-13":[21.59,55.81],"6-46-14":[17.39,52.22],"6-46-15":[15.17,53.92],"6-46-16":[5.41,41.06],"6-46-17":[-3.66,21.16],"6-46-18":[-11.78,10.12],"6-46-19":[-24.71,1.96],"6-46-20":[-35.15,-2.52],"6-46-21":[-46.25,-7.81],"6-46-22":[-53.6,-12.92],"6-46-23":[-62.78,-17.62],"6-46-24":[-68.86,-22.4],"6-46-25":[-75.75,-26.93],"6-46-26":[-82.25,-30.53],"6-46-27":[-86.6,-34.57],"6-46-28":[-87.21,-38.79],"6-46-29":[-85.59,-35.95],"6-46-30":[-76.08,-28.51],"6-46-31":[-60.98,35.72],"6-46-32":[-80.07,69.74],"6-46-33":[-95.49,521.39],"6-46-34":[51.02,882.74],"6-46-35":[105.36,737.91],"6-46-36":[127.52,1154.07],"6-46-37":[227.19,1475.44],"6-46-38":[312.64,1034.42],"6-46-39":[301.73,1075.16],"6-46-40":[-51.68,1855.39],"6-46-41":[-37.26,1825.17],"6-46-42":[-24.64,1827.75],"6-46-43":[-6.23,13.98],"6-46-44":[-9.69,10.93],"6-46-45":[-8.47,-0.7],"6-46-46":[-8.58,-1.87],"6-46-47":[-7.32,-2.14],"6-46-48":[-8.38,-2.22],"6-46-49":[-4.74,9.5],"6-46-50":[1.02,14.82],"6-46-51":[8.24,36.85],"6-46-52":[18.32,40.45],"6-46-53":[18.15,42.54],"6-46-54":[13.5,40.62],"6-46-55":[8,27.69],"6-46-56":[-0.82,15.99],"6-46-57":[-4.02,0.15],"6-46-58":[-20.54,-1.51],"6-46-59":[-34.25,437.71],"6-46-60":[-50.27,631.96],"6-46-61":[-48.16,1965.25],"6-46-62":[1373.28,2268.09],"6-46-63":[-29.54,2745.48],"6-47-0":[13.6,37.99],"6-47-1":[19.55,47.53],"5-23-0":[13.6,47.53],"6-47-2":[20.29,700.91],"6-47-3":[443.21,2373.94],"5-23-1":[19.83,2373.94],"4-11-0":[13.6,2373.94],"6-47-4":[2285.5,2625.24],"6-47-5":[2286.78,2882.05],"5-23-2":[1860.54,2882.05],"6-47-6":[1707.24,2840.8],"6-47-7":[1101.27,2476.32],"5-23-3":[26.42,2840.8],"4-11-1":[22.92,2882.05],"3-5-0":[0.08,2882.05],"6-47-8":[1301.32,2769.8],"6-47-9":[1356.57,2769.95],"5-23-4":[29.48,2769.95],"6-47-10":[33.06,2452.69],"6-47-11":[31.62,81.26],"5-23-5":[24.84,2452.69],"4-11-2":[7.84,2769.95],"6-47-12":[29.54,78.26],"6-47-13":[24.7,72.82],"5-23-6":[21.59,78.26],"6-47-14":[23.65,69.47],"6-47-15":[21.38,70.1],"5-23-7":[15.17,70.1],"4-11-3":[-20.3,577.05],"3-5-1":[-62.23,2769.95],"2-2-0":[-97.86,2882.05],"6-47-16":[13.6,55.71],"6-47-17":[5.96,40.64],"5-23-8":[-3.66,55.71],"6-47-18":[1.95,29.54],"6-47-19":[-2.64,22.06],"5-23-9":[-24.71,29.54],"4-11-4":[-56.94,55.71],"6-47-20":[-11.83,15.19],"6-47-21":[-23.15,4.78],"5-23-10":[-46.25,15.19],"6-47-22":[-31.32,-2.17],"6-47-23":[-42.51,-7.52],"5-23-11":[-62.78,-2.17],"4-11-5":[-89.27,15.19],"3-5-2":[-105.57,269.07],"6-47-24":[-50.68,-13.69],"6-47-25":[-59.08,-19.14],"5-23-12":[-75.75,-13.69],"6-47-26":[-65.46,-24.58],"6-47-27":[-76.9,-25.66],"5-23-13":[-86.6,-24.58],"4-11-6":[-98.96,-13.69],"6-47-28":[-76.9,-30.33],"6-47-29":[-77.77,-32.04],"5-23-14":[-87.21,-30.33],"6-47-30":[-72.57,-28.65],"6-47-31":[-64.4,-23.15],"5-23-15":[-76.08,35.72],"4-11-7":[-95.18,1030.82],"3-5-3":[-149.21,2826.62],"2-2-1":[-328.06,5809.48],"6-47-32":[-64.98,198.92],"6-47-33":[-52.12,442.32],"5-23-16":[-95.49,521.39],"6-47-34":[64.01,663.07],"6-47-35":[165.38,868.81],"5-23-17":[51.02,882.74],"4-11-8":[-95.49,882.74],"6-47-36":[242.55,1657.87],"6-47-37":[397.4,1576.13],"5-23-18":[127.52,1657.87],"6-47-38":[443.95,1269.93],"6-47-39":[482.05,2353.32],"5-23-19":[301.73,2353.32],"4-11-9":[86.09,2353.32],"3-5-4":[-95.49,6050.05],"6-47-40":[-47.11,2413.32],"6-47-41":[-19.83,2.39],"5-23-20":[-51.68,2413.32],"6-47-42":[-16.52,2.77],"6-47-43":[-15,-2.9],"5-23-21":[-24.64,1827.75],"4-11-10":[-51.68,2413.32],"6-47-44":[-12.7,-3.31],"6-47-45":[-12.43,-4],"5-23-22":[-12.7,10.93],"6-47-46":[-12.93,-3],"6-47-47":[-9.68,-2.76],"5-23-23":[-12.93,-1.87],"4-11-11":[-15.03,526.4],"3-5-5":[-102.43,6388.87],"2-2-2":[-123.53,6969.13],"6-47-48":[-7.97,-2.42],"6-47-49":[-5.09,12.36],"5-23-24":[-8.38,12.36],"6-47-50":[0.94,19.2],"6-47-51":[9.93,36.67],"5-23-25":[0.94,36.85],"4-11-12":[-8.38,37.14],"6-47-52":[18.32,42.39],"6-47-53":[18.15,853.58],"5-23-26":[18.15,853.58],"6-47-54":[14.52,46.03],"6-47-55":[8,29.24],"5-23-27":[8,46.03],"4-11-13":[7.53,1523.88],"3-5-6":[-32.01,2255.29],"6-47-56":[0.14,16.45],"6-47-57":[-4.25,0.82],"5-23-28":[-4.25,16.45],"6-47-58":[-18.57,-1.51],"6-47-59":[-29.56,457.63],"5-23-29":[-34.25,457.63],"4-11-14":[-35.85,457.63],"6-47-60":[-47.37,731.02],"6-47-61":[-47.53,1373.29],"5-23-30":[-50.27,1965.25],"6-47-62":[1353.9,2263.16],"6-47-63":[-29.54,2745.98],"5-23-31":[-29.54,2745.98],"4-11-15":[-51.02,2745.98],"3-5-7":[-53.09,2890.49],"2-2-3":[-269.44,4721.94],"6-48-0":[13.6,37.61],"6-48-1":[19.52,48.06],"6-48-2":[23.04,949.4],"6-48-3":[418.15,2469.75],"6-48-4":[2373.93,2812.59],"6-48-5":[2625.23,3024.06],"6-48-6":[2476.31,3047.68],"6-48-7":[2357.41,2826.07],"6-48-8":[1710.88,2785.17],"6-48-9":[45.47,2833.9],"6-48-10":[-226.59,2803.26],"6-48-11":[39.09,92.57],"6-48-12":[36.79,90.15],"6-48-13":[33.05,85.22],"6-48-14":[32.05,78.86],"6-48-15":[27.85,72.39],"6-48-16":[21.23,65.89],"6-48-17":[15.6,54.55],"6-48-18":[11.42,45.38],"6-48-19":[8.36,39.31],"6-48-20":[2.88,32.2],"6-48-21":[-3.8,23.36],"6-48-22":[-13.7,10.3],"6-48-23":[-26.69,-1.49],"6-48-24":[-36.66,-9.03],"6-48-25":[-48.75,-14.66],"6-48-26":[-52.31,-19.6],"6-48-27":[-60.66,-21.73],"6-48-28":[-65.09,-22.59],"6-48-29":[-65.14,-24.57],"6-48-30":[-64.07,-23.02],"6-48-31":[-58.56,-22.33],"6-48-32":[-70.5,80.25],"6-48-33":[-60.53,366.28],"6-48-34":[46.82,588.21],"6-48-35":[175.94,1298.57],"6-48-36":[374.95,1756.49],"6-48-37":[264.86,1788.77],"6-48-38":[158.3,2047.81],"6-48-39":[-0.94,2789.25],"6-48-40":[-170.49,2060.99],"6-48-41":[-22.35,-6.95],"6-48-42":[-21.25,-7.27],"6-48-43":[-16.43,-5.74],"6-48-44":[-15.08,-5.85],"6-48-45":[-14.74,-5.73],"6-48-46":[-15.44,-5.21],"6-48-47":[-14.07,-3.49],"6-48-48":[-9.34,-1.35],"6-48-49":[-3.65,16.97],"6-48-50":[3.91,17.53],"6-48-51":[9.5,35.69],"6-48-52":[17.4,41.28],"6-48-53":[19.29,277.84],"6-48-54":[14.49,46.03],"6-48-55":[8.34,28.56],"6-48-56":[0.81,16.97],"6-48-57":[-6.67,1.37],"6-48-58":[-16.22,-2.35],"6-48-59":[-31.72,213.73],"6-48-60":[-45.8,701.38],"6-48-61":[-47.53,1548.87],"6-48-62":[1362.57,2265.71],"6-48-63":[-29.54,2746.48],"6-49-0":[13.6,37.46],"6-49-1":[19.53,48.73],"5-24-0":[13.6,48.73],"6-49-2":[24.05,1459.96],"6-49-3":[919.34,2462.17],"5-24-1":[23.04,2469.75],"6-49-4":[2354.99,2812.59],"6-49-5":[2629.11,3141.21],"5-24-2":[2354.99,3141.21],"6-49-6":[2784.52,3182.09],"6-49-7":[2634.56,3042.62],"5-24-3":[2357.41,3182.09],"6-49-8":[44.4,2652.87],"6-49-9":[44.54,2012.55],"5-24-4":[44.4,2833.9],"6-49-10":[46.28,334.77],"6-49-11":[44.97,101.28],"5-24-5":[-226.59,2803.26],"6-49-12":[43.91,102],"6-49-13":[40.13,98.24],"5-24-6":[33.05,102],"6-49-14":[36.75,93.09],"6-49-15":[33.71,86.06],"5-24-7":[27.85,93.09],"6-49-16":[28.95,81.48],"6-49-17":[23.81,73.88],"5-24-8":[15.6,81.48],"6-49-18":[21.4,66.2],"6-49-19":[17.36,60.53],"5-24-9":[8.36,66.2],"6-49-20":[13.7,55.5],"6-49-21":[5.84,39.04],"5-24-10":[-3.8,55.5],"6-49-22":[-1.5,22.35],"6-49-23":[-16.89,4.59],"5-24-11":[-26.69,22.35],"6-49-24":[-26.78,-4.39],"6-49-25":[-37.71,-9.55],"5-24-12":[-48.75,-4.39],"6-49-26":[-42.33,-13.76],"6-49-27":[-43.85,-16.48],"5-24-13":[-60.66,-13.76],"6-49-28":[-45.31,-15.23],"6-49-29":[-49.21,-15.42],"5-24-14":[-65.14,-15.23],"6-49-30":[-47.15,-16.29],"6-49-31":[-46.81,-15.86],"5-24-15":[-64.07,-15.86],"6-49-32":[-46.81,79.72],"6-49-33":[-74.23,1125.05],"5-24-16":[-74.23,1125.05],"6-49-34":[53.15,966.21],"6-49-35":[149.22,1272.47],"5-24-17":[46.82,1298.57],"6-49-36":[99.05,2017.31],"6-49-37":[0.38,1423.16],"5-24-18":[0.38,2017.31],"6-49-38":[-51.4,1567.33],"6-49-39":[-41.56,2863.35],"5-24-19":[-51.4,2863.35],"6-49-40":[-24.02,694.74],"6-49-41":[-23.57,-9.82],"5-24-20":[-170.49,2060.99],"6-49-42":[-21.49,-7.66],"6-49-43":[-17.46,-7.18],"5-24-21":[-21.49,-5.74],"6-49-44":[-15.24,-6.72],"6-49-45":[-14.63,-6.41],"5-24-22":[-15.24,-5.73],"6-49-46":[-15.67,-6.33],"6-49-47":[-14.71,-4.79],"5-24-23":[-15.67,-3.49],"6-49-48":[-10.04,-0.71],"6-49-49":[-1.58,15],"5-24-24":[-10.04,16.97],"6-49-50":[3.4,15.14],"6-49-51":[6.24,37.34],"5-24-25":[3.4,37.34],"6-49-52":[17.4,40.03],"6-49-53":[19.24,44.9],"5-24-26":[17.4,277.84],"6-49-54":[14.63,42.23],"6-49-55":[8.34,28.46],"5-24-27":[8.34,46.03],"6-49-56":[1.36,16.69],"6-49-57":[-9.07,1.88],"5-24-28":[-9.07,16.97],"6-49-58":[-13.8,-3.51],"6-49-59":[-31.95,-7.78],"5-24-29":[-31.95,213.73],"6-49-60":[-42.5,467.1],"6-49-61":[-22.1,1679.35],"5-24-30":[-47.53,1679.35],"6-49-62":[1548.86,2265.71],"6-49-63":[-29.54,2746.48],"5-24-31":[-29.54,2746.48],"6-50-0":[13.6,37.63],"6-50-1":[19.61,49.96],"6-50-2":[24.84,1457.67],"6-50-3":[1097.61,2355],"6-50-4":[2249.23,2629.12],"6-50-5":[2558.1,3200.74],"6-50-6":[3042.61,3253.39],"6-50-7":[2639.66,3209.33],"6-50-8":[45.07,3108.37],"6-50-9":[45.74,106.81],"6-50-10":[49.27,105.78],"6-50-11":[49.5,111.91],"6-50-12":[49.85,112.69],"6-50-13":[46.54,108.32],"6-50-14":[43.24,103.27],"6-50-15":[40.73,96.8],"6-50-16":[37.48,93],"6-50-17":[33.1,87.83],"6-50-18":[30.85,80.4],"6-50-19":[27.75,76.44],"6-50-20":[20.59,68.85],"6-50-21":[12.03,47.85],"6-50-22":[3.31,31.01],"6-50-23":[-8.2,12.45],"6-50-24":[-17.97,2.19],"6-50-25":[-27.35,-2.98],"6-50-26":[-32.47,-5.75],"6-50-27":[-35.27,-10.36],"6-50-28":[-34.69,-9.18],"6-50-29":[-34.54,-8.11],"6-50-30":[-34.03,-8.32],"6-50-31":[-34.84,-8.32],"6-50-32":[-34.84,-10.92],"6-50-33":[-44.76,1106.52],"6-50-34":[4.53,1190.32],"6-50-35":[-49.15,1083.8],"6-50-36":[-42.94,626.82],"6-50-37":[-28.08,986.18],"6-50-38":[-23.73,124.34],"6-50-39":[-23.06,-5.86],"6-50-40":[-23.22,-8.26],"6-50-41":[-22.24,-6.03],"6-50-42":[-20.02,-1.95],"6-50-43":[-15.06,-2.36],"6-50-44":[-14.73,-4.64],"6-50-45":[-13.41,-4.06],"6-50-46":[-13.54,-3.83],"6-50-47":[-13.35,-3.1],"6-50-48":[-9.2,0.55],"6-50-49":[-0.72,12.98],"6-50-50":[2.9,23.35],"6-50-51":[-44.49,2738.7],"6-50-52":[19.49,41.64],"6-50-53":[20.4,44],"6-50-54":[14.13,41.06],"6-50-55":[7.93,28.3],"6-50-56":[1.73,16.49],"6-50-57":[-9.57,2.54],"6-50-58":[-12.44,-2.31],"6-50-59":[-30.93,-7.27],"6-50-60":[-38.74,776.2],"6-50-61":[467.09,1715.15],"6-50-62":[1679.34,2262.46],"6-50-63":[-29.54,2746.48],"6-51-0":[13.6,37.87],"6-51-1":[19.71,51.91],"5-25-0":[13.6,51.91],"6-51-2":[25.09,1225.55],"6-51-3":[563.18,2251.74],"5-25-1":[24.84,2355],"4-12-0":[13.6,2469.75],"6-51-4":[2064.18,2558.11],"6-51-5":[2479.15,3116.18],"5-25-2":[2064.18,3200.74],"6-51-6":[2863.3,3190.72],"6-51-7":[842.84,3318.44],"5-25-3":[842.84,3318.44],"4-12-1":[842.84,3318.44],"6-51-8":[51.79,2952.11],"6-51-9":[51.81,111.55],"5-25-4":[45.07,3108.37],"6-51-10":[52.28,118.01],"6-51-11":[54.03,122.71],"5-25-5":[49.27,122.71],"4-12-2":[-226.59,3108.37],"6-51-12":[56.06,122.31],"6-51-13":[52.06,118.71],"5-25-6":[46.54,122.31],"6-51-14":[49.47,113.3],"6-51-15":[47.29,108.7],"5-25-7":[40.73,113.3],"4-12-3":[27.85,122.31],"6-51-16":[45.13,107.59],"6-51-17":[41.29,102.26],"5-25-8":[33.1,107.59],"6-51-18":[39.59,98.78],"6-51-19":[34.86,94.27],"5-25-9":[27.75,98.78],"4-12-4":[8.36,107.59],"6-51-20":[25.6,77.17],"6-51-21":[16.22,56.25],"5-25-10":[12.03,77.17],"6-51-22":[7.85,41.92],"6-51-23":[2.04,22.97],"5-25-11":[-8.2,41.92],"4-12-5":[-26.69,77.17],"6-51-24":[-2.99,19.11],"6-51-25":[-9.54,11.37],"5-25-12":[-27.35,19.11],"6-51-26":[-18.24,4.22],"6-51-27":[-22.86,-3.86],"5-25-13":[-35.27,4.22],"4-12-6":[-60.66,19.11],"6-51-28":[-21.86,-3.45],"6-51-29":[-16.16,0.32],"5-25-14":[-34.69,0.32],"6-51-30":[-15.02,0.32],"6-51-31":[-23.52,-1.06],"5-25-15":[-34.84,0.32],"4-12-7":[-65.14,0.32],"6-51-32":[-24.99,-5.27],"6-51-33":[-25.2,315.67],"5-25-16":[-44.76,1106.52],"6-51-34":[-43.64,1194.05],"6-51-35":[-34.81,1027.17],"5-25-17":[-49.15,1194.05],"4-12-8":[-74.23,1298.57],"6-51-36":[-25.89,-9.5],"6-51-37":[-26.03,-8.12],"5-25-18":[-42.94,986.18],"6-51-38":[-21.09,-6.58],"6-51-39":[-20.12,-3.54],"5-25-19":[-23.73,124.34],"4-12-9":[-51.4,2863.35],"6-51-40":[-17.91,-6.14],"6-51-41":[-15.72,-2.7],"5-25-20":[-23.22,-2.7],"6-51-42":[-11.25,4.88],"6-51-43":[-8.51,4.82],"5-25-21":[-20.02,4.88],"4-12-10":[-170.49,2060.99],"6-51-44":[-8.8,-0.42],"6-51-45":[-8.93,-0.49],"5-25-22":[-14.73,-0.42],"6-51-46":[-7.5,-0.3],"6-51-47":[-7.21,0.52],"5-25-23":[-13.54,0.52],"4-12-11":[-15.67,0.52],"6-51-48":[-5.84,5.1],"6-51-49":[0.54,16.37],"5-25-24":[-9.2,16.37],"6-51-50":[6.57,28.17],"6-51-51":[0.07,2916.19],"5-25-25":[-44.49,2916.19],"4-12-12":[-44.49,2916.19],"6-51-52":[19.49,44.42],"6-51-53":[20.67,45.57],"5-25-26":[19.49,45.57],"6-51-54":[13.2,41.85],"6-51-55":[7.93,27.24],"5-25-27":[7.93,41.85],"4-12-13":[7.93,277.84],"6-51-56":[1.43,15.82],"6-51-57":[-8.96,2.59],"5-25-28":[-9.57,16.49],"6-51-58":[-10.69,-0.69],"6-51-59":[-26.21,682.83],"5-25-29":[-30.93,682.83],"4-12-14":[-31.95,682.83],"6-51-60":[-38.69,818.98],"6-51-61":[776.19,1785.3],"5-25-30":[-38.74,1785.3],"6-51-62":[1715.14,2257.85],"6-51-63":[-29.54,2746.48],"5-25-31":[-29.54,2746.48],"4-12-15":[-47.53,2746.48],"6-52-0":[13.6,38],"6-52-1":[19.75,52.83],"6-52-2":[26.3,1141.68],"6-52-3":[39.31,2076.74],"6-52-4":[1811.24,2521.51],"6-52-5":[2242.7,2887.36],"6-52-6":[2056.01,3023.83],"6-52-7":[55.87,3002.57],"6-52-8":[54.97,1206.68],"6-52-9":[54.3,120.01],"6-52-10":[55.78,125.87],"6-52-11":[59.31,126.28],"6-52-12":[59.58,122.56],"6-52-13":[56.65,121.98],"6-52-14":[54.49,120.69],"6-52-15":[53.73,118.59],"6-52-16":[51.45,117.92],"6-52-17":[49.39,956.08],"6-52-18":[47.13,292.1],"6-52-19":[38.59,98.45],"6-52-20":[29.29,80.32],"6-52-21":[22.35,62.32],"6-52-22":[12.18,49.65],"6-52-23":[9.78,32.21],"6-52-24":[6.18,30.74],"6-52-25":[2.46,27.03],"6-52-26":[-6.88,18.42],"6-52-27":[-11.61,3.79],"6-52-28":[-11.61,1.81],"6-52-29":[-6.04,9.77],"6-52-30":[-1.63,10.1],"6-52-31":[-11.81,9.72],"6-52-32":[-15.72,1.12],"6-52-33":[-24.61,236.48],"6-52-34":[-22.93,-6.99],"6-52-35":[-23.03,-9.64],"6-52-36":[-21.93,-7.29],"6-52-37":[-18.49,-6.71],"6-52-38":[-16.29,-5.18],"6-52-39":[-15.68,-4.33],"6-52-40":[-15.61,-5.17],"6-52-41":[-11.29,0.3],"6-52-42":[-4.72,5.27],"6-52-43":[-1.14,6.16],"6-52-44":[-1.59,8.81],"6-52-45":[-1.75,7.35],"6-52-46":[-1.79,8.03],"6-52-47":[-1.07,9.11],"6-52-48":[0.32,11.62],"6-52-49":[3.14,20.83],"6-52-50":[10.63,31.49],"6-52-51":[8.47,44.15],"6-52-52":[20.98,48.11],"6-52-53":[20.05,47.57],"6-52-54":[12.4,39.99],"6-52-55":[6.84,24.84],"6-52-56":[1.3,15.07],"6-52-57":[-6.52,2.36],"6-52-58":[-10.53,-0.06],"6-52-59":[-21.87,1124.55],"6-52-60":[-37.76,910.74],"6-52-61":[818.39,1887.29],"6-52-62":[1785.29,2271.2],"6-52-63":[-29.54,2746.48],"6-53-0":[13.6,38.04],"6-53-1":[19.67,53.58],"5-26-0":[13.6,53.58],"6-53-2":[26.45,988.3],"6-53-3":[357.17,1866.38],"5-26-1":[26.3,2076.74],"6-53-4":[1590.54,2511.91],"6-53-5":[1504.88,2633.93],"5-26-2":[1504.88,2887.36],"6-53-6":[50.54,2633.93],"6-53-7":[54.99,3982.86],"5-26-3":[50.54,3982.86],"6-53-8":[57.33,121.21],"6-53-9":[57.33,128.08],"5-26-4":[54.3,1206.68],"6-53-10":[60.52,129.5],"6-53-11":[60.77,127.45],"5-26-5":[55.78,129.5],"6-53-12":[59.99,122.28],"6-53-13":[59.83,127.23],"5-26-6":[56.65,127.23],"6-53-14":[60.04,129.8],"6-53-15":[59.64,129.69],"5-26-7":[53.73,129.8],"6-53-16":[58.28,129.28],"6-53-17":[56.51,123.07],"5-26-8":[49.39,956.08],"6-53-18":[49.22,2346.09],"6-53-19":[40.38,100.63],"5-26-9":[38.59,2346.09],"6-53-20":[31.82,83.95],"6-53-21":[25.24,69.72],"5-26-10":[22.35,83.95],"6-53-22":[17.36,52.25],"6-53-23":[15.16,40.62],"5-26-11":[9.78,52.25],"6-53-24":[15.01,37.08],"6-53-25":[10.17,36.9],"5-26-12":[2.46,37.08],"6-53-26":[3.36,31.78],"6-53-27":[0.38,19.03],"5-26-13":[-11.61,31.78],"6-53-28":[0.23,13.16],"6-53-29":[1.8,18.26],"5-26-14":[-11.61,18.26],"6-53-30":[5.2,18.06],"6-53-31":[0.58,16.65],"5-26-15":[-11.81,18.06],"6-53-32":[-9.18,11.61],"6-53-33":[-14,-1.77],"5-26-16":[-24.61,236.48],"6-53-34":[-21.18,-5.37],"6-53-35":[-21.12,-7.87],"5-26-17":[-23.03,-5.37],"6-53-36":[-19.03,-7.1],"6-53-37":[-14.64,-6.55],"5-26-18":[-21.93,-6.55],"6-53-38":[-14.32,-5.31],"6-53-39":[-22.84,584.18],"5-26-19":[-22.84,584.18],"6-53-40":[-12.77,-3.59],"6-53-41":[-8.93,2.46],"5-26-20":[-15.61,2.46],"6-53-42":[0.26,10.35],"6-53-43":[2.82,13.56],"5-26-21":[-4.72,13.56],"6-53-44":[2.99,18.1],"6-53-45":[3.74,19.28],"5-26-22":[-1.75,19.28],"6-53-46":[4.18,19.28],"6-53-47":[4.92,20.12],"5-26-23":[-1.79,20.12],"6-53-48":[4.93,21.48],"6-53-49":[6.89,25.29],"5-26-24":[0.32,25.29],"6-53-50":[10.63,32.32],"6-53-51":[8.47,44.34],"5-26-25":[8.47,44.34],"6-53-52":[22.07,48.37],"6-53-53":[20.05,48.14],"5-26-26":[20.05,48.37],"6-53-54":[11.81,40.04],"6-53-55":[6.84,22.99],"5-26-27":[6.84,40.04],"6-53-56":[1.22,13.57],"6-53-57":[-4.92,1.98],"5-26-28":[-6.52,15.07],"6-53-58":[-10.25,-0.09],"6-53-59":[-16.53,1294.14],"5-26-29":[-21.87,1294.14],"6-53-60":[-35.54,1634.18],"6-53-61":[910.73,1960.78],"5-26-30":[-37.76,1960.78],"6-53-62":[1887.28,2301.31],"6-53-63":[-29.54,2746.48],"5-26-31":[-29.54,2746.48],"6-54-0":[13.6,38.03],"6-54-1":[19.6,54.55],"6-54-2":[26.58,989.93],"6-54-3":[31.94,1631.63],"6-54-4":[1236.12,2416.2],"6-54-5":[47.32,2217.34],"6-54-6":[48.05,2458.39],"6-54-7":[54.4,2560.61],"6-54-8":[59.36,127.95],"6-54-9":[61.22,130.4],"6-54-10":[62.35,130.18],"6-54-11":[60.84,126.55],"6-54-12":[60.65,122.78],"6-54-13":[60.63,127.15],"6-54-14":[62.98,131.06],"6-54-15":[64.62,132.17],"6-54-16":[60.84,129.76],"6-54-17":[57.33,122.83],"6-54-18":[41.12,1086.32],"6-54-19":[38.34,100.89],"6-54-20":[31.04,82.99],"6-54-21":[26.81,66.49],"6-54-22":[21.12,53.95],"6-54-23":[17.1,42.86],"6-54-24":[18.44,45.39],"6-54-25":[15.88,1434.62],"6-54-26":[10.32,41.69],"6-54-27":[7.13,30.03],"6-54-28":[6.53,22.91],"6-54-29":[6.71,23.82],"6-54-30":[8.3,22.61],"6-54-31":[6.31,20.6],"6-54-32":[-2.33,18.27],"6-54-33":[-10.41,1.49],"6-54-34":[-15.53,-1.98],"6-54-35":[-16.6,-5.32],"6-54-36":[-16.29,-6.18],"6-54-37":[-15.52,-6.1],"6-54-38":[-15.32,-6.3],"6-54-39":[-13.65,-5.14],"6-54-40":[-12.51,-0.74],"6-54-41":[-6.03,5.66],"6-54-42":[1.39,12.5],"6-54-43":[4.87,19.2],"6-54-44":[7.12,24.93],"6-54-45":[8.92,26.98],"6-54-46":[9.52,27.23],"6-54-47":[9.52,28],"6-54-48":[10.95,28.86],"6-54-49":[10.95,32.39],"6-54-50":[15.14,35.56],"6-54-51":[2.7,43.39],"6-54-52":[3.95,1349.09],"6-54-53":[10.78,1035.34],"6-54-54":[10.99,38.39],"6-54-55":[6.04,21.85],"6-54-56":[1.32,12.69],"6-54-57":[-4.19,2.98],"6-54-58":[-8.55,102.38],"6-54-59":[-11.49,1507.45],"6-54-60":[282.95,1787.39],"6-54-61":[1151.7,2012.99],"6-54-62":[1960.77,2336.23],"6-54-63":[-29.54,2746.48],"6-55-0":[13.6,37.95],"6-55-1":[19.57,55.69],"5-27-0":[13.6,55.69],"6-55-2":[26.3,766.89],"6-55-3":[31.3,1410.95],"5-27-1":[26.3,1631.63],"4-13-0":[13.6,2076.74],"6-55-4":[33.45,2030.68],"6-55-5":[42.85,2071.97],"5-27-2":[33.45,2416.2],"6-55-6":[49.24,2327.64],"6-55-7":[55.03,1988.61],"5-27-3":[48.05,2560.61],"4-13-1":[33.45,3982.86],"3-6-0":[13.6,3982.86],"6-55-8":[59.61,1471.32],"6-55-9":[64.12,194.14],"5-27-4":[59.36,1471.32],"6-55-10":[60.83,129.91],"6-55-11":[60.83,126.1],"5-27-5":[60.83,130.18],"4-13-2":[54.3,1471.32],"6-55-12":[59.88,126.1],"6-55-13":[60,126.13],"5-27-6":[59.88,127.15],"6-55-14":[62.57,129.01],"6-55-15":[62.57,131.88],"5-27-7":[62.57,132.17],"4-13-3":[53.73,132.17],"3-6-1":[-226.59,3108.37],"6-55-16":[59.45,129.91],"6-55-17":[53.56,120.26],"5-27-8":[53.56,129.91],"6-55-18":[41.9,1131.62],"6-55-19":[36.6,100.95],"5-27-9":[36.6,1131.62],"4-13-4":[36.6,2346.09],"6-55-20":[30.32,76.17],"6-55-21":[26.98,63.94],"5-27-10":[26.81,82.99],"6-55-22":[22.3,55.85],"6-55-23":[20.15,50.59],"5-27-11":[17.1,55.85],"4-13-5":[9.78,83.95],"3-6-2":[-26.69,2346.09],"6-55-24":[19.98,51.75],"6-55-25":[2.58,2003.8],"5-27-12":[2.58,2003.8],"6-55-26":[-31.78,2815.55],"6-55-27":[12.13,37.39],"5-27-13":[-31.78,2815.55],"4-13-6":[-31.78,2815.55],"6-55-28":[11.03,31.14],"6-55-29":[11.25,32.89],"5-27-14":[6.53,32.89],"6-55-30":[10.59,30.93],"6-55-31":[9.61,23.87],"5-27-15":[6.31,30.93],"4-13-7":[-11.81,32.89],"3-6-3":[-65.14,2815.55],"6-55-32":[1.48,20.71],"6-55-33":[-3.02,8.19],"5-27-16":[-10.41,20.71],"6-55-34":[-9.54,4],"6-55-35":[-12.07,-1.23],"5-27-17":[-16.6,4],"4-13-8":[-24.61,236.48],"6-55-36":[-12.66,-2.77],"6-55-37":[-14.13,-3.24],"5-27-18":[-16.29,-2.77],"6-55-38":[-14.42,-3.25],"6-55-39":[-12.99,-2.51],"5-27-19":[-15.32,-2.51],"4-13-9":[-22.84,584.18],"3-6-4":[-74.23,2863.35],"6-55-40":[-10.22,3.34],"6-55-41":[-0.75,11.75],"5-27-20":[-12.51,11.75],"6-55-42":[3.17,18.07],"6-55-43":[7.05,25.53],"5-27-21":[1.39,25.53],"4-13-10":[-15.61,25.53],"6-55-44":[9.9,32.41],"6-55-45":[13.07,35.35],"5-27-22":[7.12,35.35],"6-55-46":[13.58,36.95],"6-55-47":[13.63,36.98],"5-27-23":[9.52,36.98],"4-13-11":[-1.79,36.98],"3-6-5":[-170.49,2060.99],"6-55-48":[14.16,36.96],"6-55-49":[14.19,37.24],"5-27-24":[10.95,37.24],"6-55-50":[16.34,39.76],"6-55-51":[3.61,42.27],"5-27-25":[2.7,43.39],"4-13-12":[0.32,44.34],"6-55-52":[3.95,37.89],"6-55-53":[9.63,38.97],"5-27-26":[3.95,1349.09],"6-55-54":[10.3,35.96],"6-55-55":[6.04,20.47],"5-27-27":[6.04,38.39],"4-13-13":[3.95,1349.09],"3-6-6":[-44.49,2916.19],"6-55-56":[1.74,12.02],"6-55-57":[-4.2,3.22],"5-27-28":[-4.2,12.69],"6-55-58":[-6.28,557.2],"6-55-59":[102.37,1604.48],"5-27-29":[-11.49,1604.48],"4-13-14":[-21.87,1604.48],"6-55-60":[378.53,1737.31],"6-55-61":[1187.19,2103.65],"5-27-30":[282.95,2103.65],"6-55-62":[2012.98,2360.08],"6-55-63":[-29.54,2746.48],"5-27-31":[-29.54,2746.48],"4-13-15":[-37.76,2746.48],"3-6-7":[-47.53,2746.48],"6-56-0":[13.6,37.87],"6-56-1":[19.57,55.73],"6-56-2":[25.75,654.04],"6-56-3":[28.03,1529.13],"6-56-4":[28.03,995.54],"6-56-5":[38.36,1653.87],"6-56-6":[49.95,1002],"6-56-7":[55.4,671.1],"6-56-8":[61.97,1784.7],"6-56-9":[62.67,1475.57],"6-56-10":[60.06,128.25],"6-56-11":[60.24,126.29],"6-56-12":[59.56,126.29],"6-56-13":[59.86,126.21],"6-56-14":[61.49,126.55],"6-56-15":[60.3,127.18],"6-56-16":[56.77,126.5],"6-56-17":[50.99,117.02],"6-56-18":[43.52,106.96],"6-56-19":[36.6,92.67],"6-56-20":[32.36,81.82],"6-56-21":[27.93,72.03],"6-56-22":[25.77,65.54],"6-56-23":[23.87,64.24],"6-56-24":[23.73,52.11],"6-56-25":[24.85,53.98],"6-56-26":[18.69,52.63],"6-56-27":[15.51,44.22],"6-56-28":[15.28,40.2],"6-56-29":[15.58,37.67],"6-56-30":[12.32,36.23],"6-56-31":[11.02,26.97],"6-56-32":[4.25,25.11],"6-56-33":[2.15,15.56],"6-56-34":[-2.11,11.93],"6-56-35":[-5.35,8.47],"6-56-36":[-7.16,4.11],"6-56-37":[-7.33,0.85],"6-56-38":[-8.48,0.68],"6-56-39":[-8.31,1.89],"6-56-40":[-4.64,8.4],"6-56-41":[2.15,16.04],"6-56-42":[6.23,22.14],"6-56-43":[9.62,30.63],"6-56-44":[15.59,36.65],"6-56-45":[16.37,40.5],"6-56-46":[18.42,43.37],"6-56-47":[18.42,44.13],"6-56-48":[18.16,43.98],"6-56-49":[18.16,41.79],"6-56-50":[20.3,41.65],"6-56-51":[20.3,42.33],"6-56-52":[17.44,40.96],"6-56-53":[15.9,41.96],"6-56-54":[9.77,33.92],"6-56-55":[6.16,19.63],"6-56-56":[1.72,12.29],"6-56-57":[-2.06,3.98],"6-56-58":[-5.82,819.33],"6-56-59":[421.04,1695.38],"6-56-60":[516.59,1629.01],"6-56-61":[1285.43,2172.84],"6-56-62":[2103.64,2379.92],"6-56-63":[-29.54,2746.48],"6-57-0":[13.6,37.8],"6-57-1":[19.62,55.09],"5-28-0":[13.6,55.73],"6-57-2":[25.6,59.23],"6-57-3":[28.3,1436.69],"5-28-1":[25.6,1529.13],"6-57-4":[28.3,681.94],"6-57-5":[38.01,949.92],"5-28-2":[28.03,1653.87],"6-57-6":[51.09,115.49],"6-57-7":[57.7,126.66],"5-28-3":[49.95,1002],"6-57-8":[62.46,1937.43],"6-57-9":[60.84,2123.62],"5-28-4":[60.84,2123.62],"6-57-10":[59.7,124.91],"6-57-11":[58.97,123.99],"5-28-5":[58.97,128.25],"6-57-12":[58.91,123.99],"6-57-13":[57.13,122.5],"5-28-6":[57.13,126.29],"6-57-14":[58.08,124.14],"6-57-15":[58.53,123],"5-28-7":[58.08,127.18],"6-57-16":[54.18,119.6],"6-57-17":[49.49,110.36],"5-28-8":[49.49,126.5],"6-57-18":[43.12,101.63],"6-57-19":[40.71,95.46],"5-28-9":[36.6,106.96],"6-57-20":[36.01,1880.85],"6-57-21":[32.18,2439.69],"5-28-10":[27.93,2439.69],"6-57-22":[30.53,1522.97],"6-57-23":[25.18,68.01],"5-28-11":[23.87,1522.97],"6-57-24":[-14.49,116.51],"6-57-25":[25.65,60.59],"5-28-12":[-14.49,116.51],"6-57-26":[1.56,171.48],"6-57-27":[18.28,57.96],"5-28-13":[1.56,171.48],"6-57-28":[17.32,53.31],"6-57-29":[17.61,43.04],"5-28-14":[15.28,53.31],"6-57-30":[14.23,37.19],"6-57-31":[11.87,33.41],"5-28-15":[11.02,37.19],"6-57-32":[8.76,34.41],"6-57-33":[6.71,26.59],"5-28-16":[2.15,34.41],"6-57-34":[4.93,24.73],"6-57-35":[2.81,19.54],"5-28-17":[-5.35,24.73],"6-57-36":[0.84,14.19],"6-57-37":[0.34,10.34],"5-28-18":[-7.33,14.19],"6-57-38":[-0.06,10.45],"6-57-39":[-0.17,10.33],"5-28-19":[-8.48,10.45],"6-57-40":[1.37,15.84],"6-57-41":[5.03,21.64],"5-28-20":[-4.64,21.64],"6-57-42":[8.34,26.94],"6-57-43":[11.9,34.46],"5-28-21":[6.23,34.46],"6-57-44":[15.59,40.42],"6-57-45":[18.81,45.89],"5-28-22":[15.59,45.89],"6-57-46":[20.61,49.37],"6-57-47":[22.02,50.19],"5-28-23":[18.42,50.19],"6-57-48":[21.38,50.16],"6-57-49":[20.47,48.13],"5-28-24":[18.16,50.16],"6-57-50":[20.4,45.48],"6-57-51":[20.34,44.16],"5-28-25":[20.3,45.48],"6-57-52":[19.71,42.18],"6-57-53":[15.9,42.48],"5-28-26":[15.9,42.48],"6-57-54":[9.16,31.18],"6-57-55":[6.21,18.19],"5-28-27":[6.16,33.92],"6-57-56":[2.3,13.36],"6-57-57":[0.42,11.7],"5-28-28":[-2.06,13.36],"6-57-58":[-1.9,1093.26],"6-57-59":[819.32,1811.71],"5-28-29":[-5.82,1811.71],"6-57-60":[814.02,1663.61],"6-57-61":[1522.35,2225.4],"5-28-30":[516.59,2225.4],"6-57-62":[2172.83,2420.8],"6-57-63":[-29.54,2746.48],"5-28-31":[-29.54,2746.48],"6-58-0":[13.6,37.78],"6-58-1":[19.71,53.62],"6-58-2":[25.56,61.94],"6-58-3":[29.9,345.15],"6-58-4":[30,79.45],"6-58-5":[38.66,105.36],"6-58-6":[50.37,116.37],"6-58-7":[58.46,124.92],"6-58-8":[60.43,1885.38],"6-58-9":[60.01,2140.58],"6-58-10":[58.42,121.69],"6-58-11":[57.73,123.87],"6-58-12":[56.63,123.87],"6-58-13":[57.04,123.14],"6-58-14":[55.87,119.28],"6-58-15":[55.11,118.34],"6-58-16":[50.41,118.05],"6-58-17":[47.21,106.08],"6-58-18":[45.73,104.94],"6-58-19":[42.88,99.37],"6-58-20":[28.43,1402.2],"6-58-21":[13.23,3730.85],"6-58-22":[29.84,1980.83],"6-58-23":[-10.67,745.87],"6-58-24":[-18.64,535.71],"6-58-25":[-14.6,356.34],"6-58-26":[-1.62,135.29],"6-58-27":[-20.7,301.55],"6-58-28":[0.18,458.6],"6-58-29":[18.93,63.46],"6-58-30":[15.77,41.91],"6-58-31":[13.35,38.21],"6-58-32":[13.47,38.21],"6-58-33":[12.71,33.98],"6-58-34":[-2.23,864.67],"6-58-35":[7.45,27.57],"6-58-36":[5.05,20.06],"6-58-37":[4.98,16.73],"6-58-38":[4.46,16.62],"6-58-39":[4.41,17.65],"6-58-40":[5.55,22.04],"6-58-41":[8.28,26.07],"6-58-42":[11.11,30.34],"6-58-43":[13.85,35.77],"6-58-44":[17.65,40.21],"6-58-45":[20.04,47.1],"6-58-46":[23.2,50.18],"6-58-47":[24.78,52.72],"6-58-48":[24.35,54.26],"6-58-49":[24.35,51.82],"6-58-50":[22.38,49.92],"6-58-51":[21.5,46.02],"6-58-52":[18.45,42.72],"6-58-53":[13.3,41.86],"6-58-54":[9.11,28.68],"6-58-55":[6.73,17.29],"6-58-56":[3.08,13.48],"6-58-57":[2.25,357.87],"6-58-58":[2.48,1674.63],"6-58-59":[1093.25,1949.57],"6-58-60":[1289.31,1790.34],"6-58-61":[1663.6,2289.94],"6-58-62":[2225.39,2460.86],"6-58-63":[-29.54,2746.48],"6-59-0":[13.6,37.79],"6-59-1":[19.8,52.18],"5-29-0":[13.6,53.62],"6-59-2":[25.75,63.75],"6-59-3":[30.49,64.24],"5-29-1":[25.56,345.15],"4-14-0":[13.6,1529.13],"6-59-4":[30.51,84.68],"6-59-5":[41.87,100.49],"5-29-2":[30,105.36],"6-59-6":[50.16,115.8],"6-59-7":[56.81,119.95],"5-29-3":[50.16,124.92],"4-14-1":[28.03,1653.87],"6-59-8":[57.71,1189.75],"6-59-9":[59.83,125.87],"5-29-4":[57.71,2140.58],"6-59-10":[55.41,120.74],"6-59-11":[54.59,121.48],"5-29-5":[54.59,123.87],"4-14-2":[54.59,2140.58],"6-59-12":[54.73,121.88],"6-59-13":[57.85,123],"5-29-6":[54.73,123.87],"6-59-14":[52.82,118.25],"6-59-15":[49.92,112.43],"5-29-7":[49.92,119.28],"4-14-3":[49.92,127.18],"6-59-16":[47.92,112.43],"6-59-17":[45.53,102.32],"5-29-8":[45.53,118.05],"6-59-18":[43.5,103.1],"6-59-19":[40.18,98.54],"5-29-9":[40.18,104.94],"4-14-4":[36.6,126.5],"6-59-20":[40.18,88.87],"6-59-21":[34.44,731.97],"5-29-10":[13.23,3730.85],"6-59-22":[-35.01,609.23],"6-59-23":[182.63,951.26],"5-29-11":[-35.01,1980.83],"4-14-5":[-35.01,3730.85],"6-59-24":[63.41,838.62],"6-59-25":[2.52,699.41],"5-29-12":[-18.64,838.62],"6-59-26":[4.84,480.98],"6-59-27":[22.18,1567.34],"5-29-13":[-20.7,1567.34],"4-14-6":[-20.7,1567.34],"6-59-28":[-24.77,1463.87],"6-59-29":[1.22,935.28],"5-29-14":[-24.77,1463.87],"6-59-30":[17.76,49.38],"6-59-31":[15.91,40.51],"5-29-15":[13.35,49.38],"4-14-7":[-24.77,1463.87],"6-59-32":[17.61,40.61],"6-59-33":[15.36,39.26],"5-29-16":[12.71,40.61],"6-59-34":[13.68,36.87],"6-59-35":[10.36,29.33],"5-29-17":[-2.23,864.67],"4-14-8":[-5.35,864.67],"6-59-36":[8.78,22.54],"6-59-37":[8.23,21.11],"5-29-18":[4.98,22.54],"6-59-38":[8.08,23.26],"6-59-39":[8.16,24.61],"5-29-19":[4.41,24.61],"4-14-9":[-8.48,24.61],"6-59-40":[9.22,25.8],"6-59-41":[11.68,28.54],"5-29-20":[5.55,28.54],"6-59-42":[13.34,31.4],"6-59-43":[15.33,35.12],"5-29-21":[11.11,35.77],"4-14-10":[-4.64,35.77],"6-59-44":[17.37,39.98],"6-59-45":[15,2060.11],"5-29-22":[15,2060.11],"6-59-46":[22.8,50.12],"6-59-47":[24.47,52.47],"5-29-23":[22.8,52.72],"4-14-11":[15,2060.11],"6-59-48":[25.92,55.19],"6-59-49":[25.17,55.91],"5-29-24":[24.35,55.91],"6-59-50":[23.47,53.48],"6-59-51":[21.5,49.06],"5-29-25":[21.5,53.48],"4-14-12":[18.16,55.91],"6-59-52":[18.45,44.55],"6-59-53":[13.3,39.12],"5-29-26":[13.3,44.55],"6-59-54":[8.95,26.98],"6-59-55":[6.73,17.28],"5-29-27":[6.73,28.68],"4-14-13":[6.16,44.55],"6-59-56":[4.68,14.62],"6-59-57":[4.84,608.1],"5-29-28":[2.25,608.1],"6-59-58":[10.52,2647.27],"6-59-59":[1580.6,2213.91],"5-29-29":[2.48,2647.27],"4-14-14":[-5.82,2647.27],"6-59-60":[1486.82,1899.59],"6-59-61":[1790.33,2337.34],"5-29-30":[1289.31,2337.34],"6-59-62":[2289.93,2494.91],"6-59-63":[-29.54,2746.48],"5-29-31":[-29.54,2746.48],"4-14-15":[-29.54,2746.48],"6-60-0":[13.6,37.78],"6-60-1":[19.82,52.11],"6-60-2":[26.07,63.8],"6-60-3":[31.53,68.91],"6-60-4":[32.12,88.61],"6-60-5":[43.35,100.59],"6-60-6":[50.16,660.73],"6-60-7":[54.73,115.86],"6-60-8":[55.53,123.35],"6-60-9":[56.93,123.85],"6-60-10":[54.77,119.67],"6-60-11":[36.3,467.08],"6-60-12":[54.66,847.15],"6-60-13":[31.72,1061.19],"6-60-14":[50.82,118.9],"6-60-15":[46.84,106.06],"6-60-16":[46.52,848.03],"6-60-17":[45.68,934.31],"6-60-18":[43.52,948.19],"6-60-19":[36.29,97.22],"6-60-20":[36.5,3428.78],"6-60-21":[36.12,3435.16],"6-60-22":[183.32,753.26],"6-60-23":[203.99,625.45],"6-60-24":[208.98,621.86],"6-60-25":[126.64,616.33],"6-60-26":[54.15,571.22],"6-60-27":[72.56,986.01],"6-60-28":[266.59,1965.58],"6-60-29":[-0.28,1465.14],"6-60-30":[10.1,448.45],"6-60-31":[17.88,41.59],"6-60-32":[19,40.1],"6-60-33":[17.4,38.62],"6-60-34":[14.28,36.87],"6-60-35":[11.08,29.16],"6-60-36":[9.95,23.09],"6-60-37":[10.09,23.78],"6-60-38":[10.53,25.27],"6-60-39":[11.82,25.49],"6-60-40":[12.34,27.11],"6-60-41":[13.01,29.48],"6-60-42":[14.24,30.5],"6-60-43":[15.07,32.66],"6-60-44":[15.81,38.1],"6-60-45":[18.29,45.5],"6-60-46":[6.47,931.45],"6-60-47":[23.42,51.85],"6-60-48":[24.91,56.45],"6-60-49":[26.78,56.31],"6-60-50":[24.85,54.12],"6-60-51":[23.88,51.29],"6-60-52":[18.84,47.16],"6-60-53":[13.07,37.45],"6-60-54":[8.97,27.21],"6-60-55":[7.29,18.18],"6-60-56":[6.69,18.97],"6-60-57":[8.72,1445.48],"6-60-58":[608.09,2647.27],"6-60-59":[1819.4,2378.63],"6-60-60":[1773.2,2084.27],"6-60-61":[1899.58,2371.33],"6-60-62":[2337.33,2524.96],"6-60-63":[-29.54,2746.49],"6-61-0":[13.6,37.76],"6-61-1":[19.78,52.5],"5-30-0":[13.6,52.5],"6-61-2":[26.07,61.81],"6-61-3":[29.91,75.45],"5-30-1":[26.07,75.45],"6-61-4":[34.23,88.45],"6-61-5":[43.49,100.68],"5-30-2":[32.12,100.68],"6-61-6":[49.89,2067.72],"6-61-7":[51.02,110.49],"5-30-3":[49.89,2067.72],"6-61-8":[51.94,113.62],"6-61-9":[52.94,792.85],"5-30-4":[51.94,792.85],"6-61-10":[54.18,472.86],"6-61-11":[40.34,998.82],"5-30-5":[36.3,998.82],"6-61-12":[47.75,911.33],"6-61-13":[45.76,978.67],"5-30-6":[31.72,1061.19],"6-61-14":[51.83,275.17],"6-61-15":[44.76,105.85],"5-30-7":[44.76,275.17],"6-61-16":[42.99,2441.8],"6-61-17":[63.03,2479.29],"5-30-8":[42.99,2479.29],"6-61-18":[21.6,1153.69],"6-61-19":[35.43,1045.54],"5-30-9":[21.6,1153.69],"6-61-20":[43.2,3969.25],"6-61-21":[321.36,3240.15],"5-30-10":[36.12,3969.25],"6-61-22":[327.42,538.03],"6-61-23":[228.84,581.24],"5-30-11":[183.32,753.26],"6-61-24":[207.9,518.07],"6-61-25":[135.48,456.49],"5-30-12":[126.64,621.86],"6-61-26":[189.7,487.98],"6-61-27":[282.45,725.34],"5-30-13":[54.15,986.01],"6-61-28":[245.42,1263.81],"6-61-29":[98.59,1793.46],"5-30-14":[-0.28,1965.58],"6-61-30":[9.64,563.59],"6-61-31":[17.84,40.64],"5-30-15":[9.64,563.59],"6-61-32":[18.11,39.27],"6-61-33":[16.27,37.52],"5-30-16":[16.27,40.1],"6-61-34":[14.28,34.25],"6-61-35":[11.71,28.84],"5-30-17":[11.08,36.87],"6-61-36":[11.3,28.82],"6-61-37":[-99.67,814.4],"5-30-18":[-99.67,814.4],"6-61-38":[11.9,26.07],"6-61-39":[12.45,26.9],"5-30-19":[10.53,26.9],"6-61-40":[12.64,30.04],"6-61-41":[13.85,32.62],"5-30-20":[12.34,32.62],"6-61-42":[14.87,32.51],"6-61-43":[15.14,33.46],"5-30-21":[14.24,33.46],"6-61-44":[15.81,36.25],"6-61-45":[17.74,44.2],"5-30-22":[15.81,45.5],"6-61-46":[21.26,47.29],"6-61-47":[22.24,50.55],"5-30-23":[6.47,931.45],"6-61-48":[24.62,53.23],"6-61-49":[25.06,55.27],"5-30-24":[24.62,56.45],"6-61-50":[26.01,56.2],"6-61-51":[23.88,54.1],"5-30-25":[23.88,56.2],"6-61-52":[17.85,50.82],"6-61-53":[13.07,35.17],"5-30-26":[13.07,50.82],"6-61-54":[9.42,26.81],"6-61-55":[7.57,20.65],"5-30-27":[7.29,27.21],"6-61-56":[7.48,20.76],"6-61-57":[10.04,2119.03],"5-30-28":[6.69,2119.03],"6-61-58":[1445.47,2720.05],"6-61-59":[2045.49,2519.15],"5-30-29":[608.09,2720.05],"6-61-60":[1905.59,2242.55],"6-61-61":[1958.12,2404.88],"5-30-30":[1773.2,2404.88],"6-61-62":[2371.32,2555.1],"6-61-63":[-29.54,2747.47],"5-30-31":[-29.54,2747.47],"6-62-0":[13.6,37.73],"6-62-1":[19.73,53.01],"6-62-2":[26.54,59.25],"6-62-3":[28.63,75.62],"6-62-4":[36.2,85.28],"6-62-5":[42.31,99.8],"6-62-6":[49.28,108.11],"6-62-7":[49.78,103.88],"6-62-8":[50.57,107.83],"6-62-9":[49.7,111.74],"6-62-10":[49.66,298.22],"6-62-11":[49.96,1388.09],"6-62-12":[41.71,1035.94],"6-62-13":[45.89,1109.06],"6-62-14":[20.27,639.9],"6-62-15":[44.39,219.03],"6-62-16":[32.45,2687.22],"6-62-17":[297.06,2577.79],"6-62-18":[44.23,3501.33],"6-62-19":[32.49,2419.81],"6-62-20":[632.45,3718.38],"6-62-21":[368.61,1721.06],"6-62-22":[218.45,696.4],"6-62-23":[131.07,471.46],"6-62-24":[138.86,407.06],"6-62-25":[256.95,487.53],"6-62-26":[239.52,1006.14],"6-62-27":[249.3,631.61],"6-62-28":[194.06,789.75],"6-62-29":[15.13,766.66],"6-62-30":[-46.15,332.62],"6-62-31":[17.31,38.68],"6-62-32":[17.52,38.48],"6-62-33":[15.74,36.14],"6-62-34":[14.55,33.16],"6-62-35":[12.03,28.93],"6-62-36":[12.1,28.82],"6-62-37":[12.83,26.82],"6-62-38":[12.65,28.5],"6-62-39":[13.05,31.28],"6-62-40":[13.65,34.28],"6-62-41":[15.43,36.13],"6-62-42":[16.17,36.67],"6-62-43":[16.17,37.77],"6-62-44":[16.2,37.77],"6-62-45":[16.2,40.32],"6-62-46":[17.78,44.64],"6-62-47":[19.75,49.26],"6-62-48":[22.32,50.13],"6-62-49":[23.73,54.94],"6-62-50":[26.51,56.37],"6-62-51":[24.74,55.65],"6-62-52":[17.74,50.79],"6-62-53":[13.06,33.87],"6-62-54":[10.42,25.96],"6-62-55":[9.91,22.36],"6-62-56":[8.78,20.96],"6-62-57":[10.28,2479.23],"6-62-58":[1813.36,2850.41],"6-62-59":[2242.54,2618.27],"6-62-60":[1991.4,2314.66],"6-62-61":[1993.14,2457.95],"6-62-62":[2404.87,2581.14],"6-62-63":[-29.54,2749.47],"6-63-0":[13.6,37.73],"6-63-1":[19.72,53.59],"5-31-0":[13.6,53.59],"6-63-2":[26.54,62.24],"6-63-3":[28.85,73.73],"5-31-1":[26.54,75.62],"4-15-0":[13.6,75.62],"6-63-4":[35.88,86.28],"6-63-5":[42.26,98.34],"5-31-2":[35.88,99.8],"6-63-6":[48.49,104.24],"6-63-7":[48.27,101.1],"5-31-3":[48.27,108.11],"4-15-1":[32.12,2067.72],"3-7-0":[13.6,2067.72],"6-63-8":[48.82,103.66],"6-63-9":[48.93,103.55],"5-31-4":[48.82,111.74],"6-63-10":[46.96,500.18],"6-63-11":[46.68,821.88],"5-31-5":[46.68,1388.09],"4-15-2":[36.3,1388.09],"6-63-12":[-1.23,942.82],"6-63-13":[5.01,686.85],"5-31-6":[-1.23,1109.06],"6-63-14":[29.66,466.81],"6-63-15":[17.32,332.21],"5-31-7":[17.32,639.9],"4-15-3":[-1.23,1109.06],"3-7-1":[-1.23,2140.58],"2-3-0":[-226.59,3982.86],"6-63-16":[16.62,3299.64],"6-63-17":[40.73,2357.66],"5-31-8":[16.62,3299.64],"6-63-18":[40.99,2423.37],"6-63-19":[45.96,1802.73],"5-31-9":[32.49,3501.33],"4-15-4":[16.62,3501.33],"6-63-20":[585.28,2177.76],"6-63-21":[198.79,856.94],"5-31-10":[198.79,3718.38],"6-63-22":[154.1,519.6],"6-63-23":[95.92,407.48],"5-31-11":[95.92,696.4],"4-15-5":[36.12,3969.25],"3-7-2":[-35.01,3969.25],"6-63-24":[189.24,556.84],"6-63-25":[243.53,577.03],"5-31-12":[138.86,577.03],"6-63-26":[242.09,1303.84],"6-63-27":[216.62,572.26],"5-31-13":[216.62,1303.84],"4-15-6":[54.15,1303.84],"6-63-28":[63.8,555.42],"6-63-29":[21.37,874.92],"5-31-14":[15.13,874.92],"6-63-30":[-6.39,370.77],"6-63-31":[16.48,36.2],"5-31-15":[-46.15,370.77],"4-15-7":[-46.15,1965.58],"3-7-3":[-46.15,1965.58],"2-3-1":[-65.14,3969.25],"1-1-0":[-328.06,5809.48],"6-63-32":[17.15,36.78],"6-63-33":[16.29,37.08],"5-31-16":[15.74,38.48],"6-63-34":[12.34,34.98],"6-63-35":[10.7,28.64],"5-31-17":[10.7,34.98],"4-15-8":[10.7,40.1],"6-63-36":[11.05,26.16],"6-63-37":[12.72,29.22],"5-31-18":[11.05,29.22],"6-63-38":[13.43,32.73],"6-63-39":[14.75,35.32],"5-31-19":[12.65,35.32],"4-15-9":[-99.67,814.4],"3-7-4":[-99.67,864.67],"6-63-40":[15.89,39.67],"6-63-41":[17.66,41.82],"5-31-20":[13.65,41.82],"6-63-42":[18.18,43.48],"6-63-43":[17.22,42.55],"5-31-21":[16.17,43.48],"4-15-10":[12.34,43.48],"6-63-44":[15.94,39.03],"6-63-45":[15.92,35.62],"5-31-22":[15.92,40.32],"6-63-46":[17.78,43.75],"6-63-47":[19.65,46.9],"5-31-23":[17.78,49.26],"4-15-11":[6.47,931.45],"3-7-5":[-4.64,2060.11],"2-3-2":[-170.49,2863.35],"6-63-48":[22.32,46.83],"6-63-49":[23.17,52.87],"5-31-24":[22.32,54.94],"6-63-50":[25.95,55.44],"6-63-51":[24.74,55.59],"5-31-25":[24.74,56.37],"4-15-12":[22.32,56.45],"6-63-52":[17.56,49.36],"6-63-53":[13.06,33.43],"5-31-26":[13.06,50.79],"6-63-54":[11.45,27.14],"6-63-55":[10.4,26.46],"5-31-27":[9.91,27.14],"4-15-13":[7.29,50.82],"3-7-6":[6.16,56.45],"6-63-56":[8.78,27.93],"6-63-57":[10.28,2064.74],"5-31-28":[8.78,2479.23],"6-63-58":[6.29,2924.47],"6-63-59":[-4.17,2804.3],"5-31-29":[-4.17,2924.47],"4-15-14":[-4.17,2924.47],"6-63-60":[-10.23,2430.85],"6-63-61":[-15.15,2498.87],"5-31-30":[-15.15,2498.87],"6-63-62":[-22.79,2597.05],"6-63-63":[-29.54,2749.47],"5-31-31":[-29.54,2749.47],"4-15-15":[-29.54,2749.47],"3-7-7":[-29.54,2924.47],"2-3-3":[-47.53,2924.47],"1-1-1":[-269.44,6969.13],"0-0-0":[-328.06,6969.13],"6-64-0":[13.6,37.78],"6-64-1":[19.72,53.59],"6-64-2":[26.6,62.89],"6-64-3":[31.41,76.27],"6-64-4":[36.86,86.28],"6-64-5":[42.7,96.99],"6-64-6":[47,101.29],"6-64-7":[46.73,97.64],"6-64-8":[45.83,101.59],"6-64-9":[45.04,100.52],"6-64-10":[45.18,100.56],"6-64-11":[44.21,95.58],"6-64-12":[41.57,93.35],"6-64-13":[34.37,320.14],"6-64-14":[39.88,478.36],"6-64-15":[62.72,1880.44],"6-64-16":[53.23,3439.27],"6-64-17":[36.39,2431.2],"6-64-18":[43.43,942.66],"6-64-19":[44.68,1847.74],"6-64-20":[490.98,1993.84],"6-64-21":[201.86,739.39],"6-64-22":[138.19,750.53],"6-64-23":[240.33,1166.19],"6-64-24":[334.09,962.42],"6-64-25":[276.69,863.32],"6-64-26":[184.15,556.46],"6-64-27":[168.62,439.96],"6-64-28":[61.71,880.1],"6-64-29":[-17.91,1022.44],"6-64-30":[14.82,41.3],"6-64-31":[15.22,34.38],"6-64-32":[16.21,36.77],"6-64-33":[11.49,36.62],"6-64-34":[9.51,33.23],"6-64-35":[9.43,23.73],"6-64-36":[10.62,24.95],"6-64-37":[12.53,29.78],"6-64-38":[14.73,33.26],"6-64-39":[16.29,40.92],"6-64-40":[19.97,44.49],"6-64-41":[19.97,48.03],"6-64-42":[20.9,49.27],"6-64-43":[20.23,48.27],"6-64-44":[16.76,40.95],"6-64-45":[16.76,37.18],"6-64-46":[18.63,43.85],"6-64-47":[20.07,44.45],"6-64-48":[21.17,45.85],"6-64-49":[22.33,51.91],"6-64-50":[24.99,54.93],"6-64-51":[23.66,55.36],"6-64-52":[17.25,48.1],"6-64-53":[13.73,33.44],"6-64-54":[13.39,34.01],"6-64-55":[11.02,33.97],"6-64-56":[10.25,28.87],"6-64-57":[11.81,2706.61],"6-64-58":[6.29,2970.03],"6-64-59":[-4.17,2947.12],"6-64-60":[-10.23,2543.75],"6-64-61":[-15.15,2526.16],"6-64-62":[-22.79,2618.03],"6-64-63":[-29.54,2752.45],"6-65-0":[13.6,37.81],"6-65-1":[19.76,53.09],"5-32-0":[13.6,53.59],"6-65-2":[26.31,62.46],"6-65-3":[31.01,77.1],"5-32-1":[26.31,77.1],"6-65-4":[38.18,84.8],"6-65-5":[42.64,95.66],"5-32-2":[36.86,96.99],"6-65-6":[44.99,96.88],"6-65-7":[43.49,94.7],"5-32-3":[43.49,101.29],"6-65-8":[42.8,94.18],"6-65-9":[35.63,935.72],"5-32-4":[35.63,935.72],"6-65-10":[20.82,1428.23],"6-65-11":[40.95,136.3],"5-32-5":[20.82,1428.23],"6-65-12":[36.37,88.77],"6-65-13":[-46.66,286.33],"5-32-6":[-46.66,320.14],"6-65-14":[-132.68,643.32],"6-65-15":[137.99,2274.24],"5-32-7":[-132.68,2274.24],"6-65-16":[38.05,2373.31],"6-65-17":[38.96,1377.73],"5-32-8":[36.39,3439.27],"6-65-18":[41.7,1623.57],"6-65-19":[89.48,2161.99],"5-32-9":[41.7,2161.99],"6-65-20":[100.21,941.46],"6-65-21":[185.69,739.39],"5-32-10":[100.21,1993.84],"6-65-22":[257.46,1758.12],"6-65-23":[380.48,2914.18],"5-32-11":[138.19,2914.18],"6-65-24":[426.07,1308.02],"6-65-25":[280.09,733.03],"5-32-12":[276.69,1308.02],"6-65-26":[222.19,683.02],"6-65-27":[143.28,527.99],"5-32-13":[143.28,683.02],"6-65-28":[62.64,650.86],"6-65-29":[-15.66,1095.61],"5-32-14":[-17.91,1095.61],"6-65-30":[-13.75,66.62],"6-65-31":[14.48,33.9],"5-32-15":[-13.75,66.62],"6-65-32":[-19.14,391.88],"6-65-33":[8.66,29.85],"5-32-16":[-19.14,391.88],"6-65-34":[8.35,21.97],"6-65-35":[8.94,22.61],"5-32-17":[8.35,33.23],"6-65-36":[10.62,25.98],"6-65-37":[12.58,30.79],"5-32-18":[10.62,30.79],"6-65-38":[14.93,37.7],"6-65-39":[17.15,49.91],"5-32-19":[14.73,49.91],"6-65-40":[20.87,54.91],"6-65-41":[22.64,56],"5-32-20":[19.97,56],"6-65-42":[22.51,51.03],"6-65-43":[20.23,46.2],"5-32-21":[20.23,51.03],"6-65-44":[17.99,42.51],"6-65-45":[17.84,41.99],"5-32-22":[16.76,42.51],"6-65-46":[18.63,42.48],"6-65-47":[19.73,46.07],"5-32-23":[18.63,46.07],"6-65-48":[21.17,46.4],"6-65-49":[22.33,50.98],"5-32-24":[21.17,51.91],"6-65-50":[24.64,53.8],"6-65-51":[11.85,778.86],"5-32-25":[11.85,778.86],"6-65-52":[17.24,47.71],"6-65-53":[14.74,34.75],"5-32-26":[13.73,48.1],"6-65-54":[14.81,35.37],"6-65-55":[11.99,34.42],"5-32-27":[11.02,35.37],"6-65-56":[10.65,29.79],"6-65-57":[13.9,3054.91],"5-32-28":[10.25,3054.91],"6-65-58":[2706.6,3100.96],"6-65-59":[2543.75,3103.71],"5-32-29":[-4.17,3103.71],"6-65-60":[2255.43,2692.57],"6-65-61":[2248.98,2548.45],"5-32-30":[-15.15,2692.57],"6-65-62":[2526.15,2639.22],"6-65-63":[-29.54,2753.44],"5-32-31":[-29.54,2753.44],"6-66-0":[13.6,37.83],"6-66-1":[19.78,52.14],"6-66-2":[25.64,63.1],"6-66-3":[31.05,77.42],"6-66-4":[38.55,84.66],"6-66-5":[41.57,92.58],"6-66-6":[43.18,93.1],"6-66-7":[40.62,90.09],"6-66-8":[40.54,87.08],"6-66-9":[20.94,2049.01],"6-66-10":[19.29,2462.53],"6-66-11":[4.23,1233.38],"6-66-12":[30.98,117],"6-66-13":[-180.54,876.36],"6-66-14":[90.73,1537.53],"6-66-15":[147.78,4840.9],"6-66-16":[39.23,4069.35],"6-66-17":[43.9,838.48],"6-66-18":[39.99,1553.78],"6-66-19":[-16.37,2250.36],"6-66-20":[30.28,336.76],"6-66-21":[186.56,611.03],"6-66-22":[377.14,1857.82],"6-66-23":[773.49,2746.4],"6-66-24":[408.81,1769.87],"6-66-25":[324.43,1672.93],"6-66-26":[317.13,774.79],"6-66-27":[281.36,874.43],"6-66-28":[46.87,1294.91],"6-66-29":[5.32,816.36],"6-66-30":[-26.99,431.08],"6-66-31":[-28.03,2007.45],"6-66-32":[7.57,607.86],"6-66-33":[6.06,24.36],"6-66-34":[7.09,17.3],"6-66-35":[8.79,26.37],"6-66-36":[11.61,28.98],"6-66-37":[13.1,31.91],"6-66-38":[15.69,39.68],"6-66-39":[19.55,50.83],"6-66-40":[22.63,56.5],"6-66-41":[24.02,57.13],"6-66-42":[22.8,49.96],"6-66-43":[22.8,49.11],"6-66-44":[20.77,46.17],"6-66-45":[20.77,46.35],"6-66-46":[21.39,48.2],"6-66-47":[21.39,49.68],"6-66-48":[23.35,51.88],"6-66-49":[23.35,52.26],"6-66-50":[25.43,54.25],"6-66-51":[21.38,55.21],"6-66-52":[17.56,44.14],"6-66-53":[17.56,39.22],"6-66-54":[17.07,39.22],"6-66-55":[14.68,33.84],"6-66-56":[12.76,30.48],"6-66-57":[13.3,3138.57],"6-66-58":[3003.04,3267.05],"6-66-59":[2692.56,3207.22],"6-66-60":[2381.28,2800.27],"6-66-61":[2355.2,2565.62],"6-66-62":[2548.44,2666.15],"6-66-63":[-29.54,2755.44],"6-67-0":[13.6,37.79],"6-67-1":[19.71,51.23],"5-33-0":[13.6,52.14],"6-67-2":[25.62,63.16],"6-67-3":[30.33,786.22],"5-33-1":[25.62,786.22],"4-16-0":[13.6,786.22],"6-67-4":[37.26,946.45],"6-67-5":[39.53,88.35],"5-33-2":[37.26,946.45],"6-67-6":[40.82,88.5],"6-67-7":[39.27,85.5],"5-33-3":[39.27,93.1],"4-16-1":[36.86,946.45],"6-67-8":[31.58,197.75],"6-67-9":[20.72,2315.19],"5-33-4":[20.72,2315.19],"6-67-10":[28.83,2472.36],"6-67-11":[32.5,847.8],"5-33-5":[4.23,2472.36],"4-16-2":[4.23,2472.36],"6-67-12":[-50.52,217.69],"6-67-13":[33.14,1186.21],"5-33-6":[-180.54,1186.21],"6-67-14":[128.81,1069.93],"6-67-15":[40.08,4029.26],"5-33-7":[40.08,4840.9],"4-16-3":[-180.54,4840.9],"6-67-16":[38.15,2694.01],"6-67-17":[43.45,2374.38],"5-33-8":[38.15,4069.35],"6-67-18":[34.1,1143.75],"6-67-19":[27.14,1413.3],"5-33-9":[-16.37,2250.36],"4-16-4":[-16.37,4069.35],"6-67-20":[23.52,728.47],"6-67-21":[219.62,762.97],"5-33-10":[23.52,762.97],"6-67-22":[420.92,1483.6],"6-67-23":[607.73,1924.9],"5-33-11":[377.14,2746.4],"4-16-5":[23.52,2914.18],"6-67-24":[396.41,1977.29],"6-67-25":[374.52,2023.83],"5-33-12":[324.43,2023.83],"6-67-26":[327.64,714.89],"6-67-27":[323.67,784.44],"5-33-13":[281.36,874.43],"4-16-6":[143.28,2023.83],"6-67-28":[100.15,1784.96],"6-67-29":[31.38,3028.39],"5-33-14":[5.32,3028.39],"6-67-30":[-10.88,4049.43],"6-67-31":[-22.22,1231.48],"5-33-15":[-28.03,4049.43],"4-16-7":[-28.03,4049.43],"6-67-32":[-63.62,953.44],"6-67-33":[-6.6,932.44],"5-33-16":[-63.62,953.44],"6-67-34":[7.15,22.92],"6-67-35":[9.03,31.46],"5-33-17":[7.09,31.46],"4-16-8":[-63.62,953.44],"6-67-36":[13.46,35.43],"6-67-37":[14.74,42.09],"5-33-18":[11.61,42.09],"6-67-38":[16.09,47],"6-67-39":[20.85,47.74],"5-33-19":[15.69,50.83],"4-16-9":[10.62,50.83],"6-67-40":[22.3,48.5],"6-67-41":[23.96,51.6],"5-33-20":[22.3,57.13],"6-67-42":[24.8,52.66],"6-67-43":[23.02,51.42],"5-33-21":[22.8,52.66],"4-16-10":[19.97,57.13],"6-67-44":[22.69,50.41],"6-67-45":[22.33,50.5],"5-33-22":[20.77,50.5],"6-67-46":[22.35,53.75],"6-67-47":[24.22,55.21],"5-33-23":[21.39,55.21],"4-16-11":[16.76,55.21],"6-67-48":[24.66,54.21],"6-67-49":[23.85,53.66],"5-33-24":[23.35,54.21],"6-67-50":[25.43,58.28],"6-67-51":[21.38,55.28],"5-33-25":[21.38,58.28],"4-16-12":[11.85,778.86],"6-67-52":[18.43,43.35],"6-67-53":[18.43,44.37],"5-33-26":[17.56,44.37],"6-67-54":[17.07,44.32],"6-67-55":[14.72,36.1],"5-33-27":[14.68,44.32],"4-16-13":[11.02,48.1],"6-67-56":[12.67,32.07],"6-67-57":[11.97,3175.51],"5-33-28":[11.97,3175.51],"6-67-58":[3138.56,3414.15],"6-67-59":[2800.26,3300.16],"5-33-29":[2692.56,3414.15],"4-16-14":[-4.17,3414.15],"6-67-60":[2458.67,2920.73],"6-67-61":[2439.79,2579.65],"5-33-30":[2355.2,2920.73],"6-67-62":[2565.61,2681.47],"6-67-63":[-29.54,2759.37],"5-33-31":[-29.54,2759.37],"4-16-15":[-29.54,2920.73],"6-68-0":[13.6,37.69],"6-68-1":[19.57,50.91],"6-68-2":[25.25,62.3],"6-68-3":[29.49,1385.65],"6-68-4":[33.18,1035.73],"6-68-5":[38.99,85.09],"6-68-6":[39.15,85.09],"6-68-7":[15.05,1058.54],"6-68-8":[9.73,1750.98],"6-68-9":[19.45,1810.17],"6-68-10":[36.63,1715.33],"6-68-11":[31.96,400.65],"6-68-12":[-23.11,248.2],"6-68-13":[-7.79,988.47],"6-68-14":[94.57,1845.84],"6-68-15":[33.77,3777.17],"6-68-16":[31.24,2893.68],"6-68-17":[26.5,2503.27],"6-68-18":[-23.32,2005.15],"6-68-19":[31.76,209.56],"6-68-20":[27.57,965.23],"6-68-21":[218.9,1068.73],"6-68-22":[308.04,1178.67],"6-68-23":[533.61,1310.69],"6-68-24":[378.5,1156.09],"6-68-25":[344.83,602.11],"6-68-26":[267.07,715.39],"6-68-27":[261.24,609.87],"6-68-28":[128.64,1857.59],"6-68-29":[216.86,2461.39],"6-68-30":[390.81,1585.63],"6-68-31":[140.91,1076.94],"6-68-32":[52.66,1044.68],"6-68-33":[-17.85,885.8],"6-68-34":[-25.08,923.81],"6-68-35":[-3.35,613.65],"6-68-36":[-2.05,2521.11],"6-68-37":[-19.61,2407.1],"6-68-38":[-21.61,2094.46],"6-68-39":[-59.49,1680.35],"6-68-40":[23.13,60.77],"6-68-41":[24.24,62.61],"6-68-42":[25.75,60.9],"6-68-43":[25.75,56.47],"6-68-44":[24.76,52.16],"6-68-45":[24.76,57.31],"6-68-46":[26.02,57.32],"6-68-47":[26.76,56.45],"6-68-48":[26.26,55.86],"6-68-49":[26.26,59.36],"6-68-50":[26.82,62.99],"6-68-51":[23.62,56.76],"6-68-52":[20.02,46.58],"6-68-53":[20.02,47.69],"6-68-54":[18.37,47.1],"6-68-55":[15.04,38.61],"6-68-56":[12.83,47.95],"6-68-57":[11.4,3169.81],"6-68-58":[3108.39,3460.36],"6-68-59":[2920.72,3384.4],"6-68-60":[2494.45,3077.24],"6-68-61":[2482.53,2588.56],"6-68-62":[2579.64,2693.73],"6-68-63":[-29.54,2763.36],"6-69-0":[13.6,37.44],"6-69-1":[19.4,50.44],"5-34-0":[13.6,50.91],"6-69-2":[25.03,60.03],"6-69-3":[29.14,1634.3],"5-34-1":[25.03,1634.3],"6-69-4":[31.42,1233.17],"6-69-5":[35.11,82.7],"5-34-2":[31.42,1233.17],"6-69-6":[35.26,81.82],"6-69-7":[6.63,1592.64],"5-34-3":[6.63,1592.64],"6-69-8":[4.87,1958.98],"6-69-9":[47.04,1310.43],"5-34-4":[4.87,1958.98],"6-69-10":[25.33,797.68],"6-69-11":[26.18,411.97],"5-34-5":[25.33,1715.33],"6-69-12":[19.39,280.51],"6-69-13":[17.14,1624.81],"5-34-6":[-23.11,1624.81],"6-69-14":[154.38,1918.97],"6-69-15":[39.77,2548.59],"5-34-7":[33.77,3777.17],"6-69-16":[16.47,1992.85],"6-69-17":[37.95,2820.36],"5-34-8":[16.47,2893.68],"6-69-18":[29.13,3340.97],"6-69-19":[28.62,288.67],"5-34-9":[-23.32,3340.97],"6-69-20":[9.01,392.95],"6-69-21":[69.58,877.11],"5-34-10":[9.01,1068.73],"6-69-22":[310.38,889.96],"6-69-23":[406.17,1202.42],"5-34-11":[308.04,1310.69],"6-69-24":[27.24,3331.17],"6-69-25":[184,850],"5-34-12":[27.24,3331.17],"6-69-26":[148.07,439.62],"6-69-27":[260.59,551.37],"5-34-13":[148.07,715.39],"6-69-28":[213.54,1124.79],"6-69-29":[275.12,1747.94],"5-34-14":[128.64,2461.39],"6-69-30":[354.28,1070.44],"6-69-31":[276.49,830.16],"5-34-15":[140.91,1585.63],"6-69-32":[252.96,879.81],"6-69-33":[167.87,929.4],"5-34-16":[-17.85,1044.68],"6-69-34":[256.14,1488.2],"6-69-35":[12.55,2127.16],"5-34-17":[-25.08,2127.16],"6-69-36":[166.21,2639.31],"6-69-37":[859.22,2023.5],"5-34-18":[-19.61,2639.31],"6-69-38":[730.14,1749.24],"6-69-39":[10.84,2585.59],"5-34-19":[-59.49,2585.59],"6-69-40":[-162.31,2386.26],"6-69-41":[-159.88,2015.68],"5-34-20":[-162.31,2386.26],"6-69-42":[18.98,704.83],"6-69-43":[26.09,62.3],"5-34-21":[18.98,704.83],"6-69-44":[25.43,58.48],"6-69-45":[25.82,55.17],"5-34-22":[24.76,58.48],"6-69-46":[26.02,58.49],"6-69-47":[27.55,60.1],"5-34-23":[26.02,60.1],"6-69-48":[27.02,60.61],"6-69-49":[27.99,64.2],"5-34-24":[26.26,64.2],"6-69-50":[29.22,67.45],"6-69-51":[23.62,62.15],"5-34-25":[23.62,67.45],"6-69-52":[21.62,53.1],"6-69-53":[22.44,49.65],"5-34-26":[20.02,53.1],"6-69-54":[19.27,47.76],"6-69-55":[15.24,39.44],"5-34-27":[15.04,47.76],"6-69-56":[14.46,300.15],"6-69-57":[14.89,3108.4],"5-34-28":[11.4,3169.81],"6-69-58":[3052.07,3514.26],"6-69-59":[3077.23,3446.22],"5-34-29":[2920.72,3514.26],"6-69-60":[2544.2,3147.37],"6-69-61":[2511.13,2608.3],"5-34-30":[2482.53,3147.37],"6-69-62":[2588.55,2704.02],"6-69-63":[-29.54,2767.34],"5-34-31":[-29.54,2767.34],"6-70-0":[13.6,37.16],"6-70-1":[19.22,49.87],"6-70-2":[24.52,56.84],"6-70-3":[28.6,1635.74],"6-70-4":[29.16,1193.37],"6-70-5":[30.17,441.82],"6-70-6":[29.72,72.1],"6-70-7":[12.72,2122.75],"6-70-8":[199.39,2096.53],"6-70-9":[20.3,735.36],"6-70-10":[18.93,350.95],"6-70-11":[-25.11,119.82],"6-70-12":[22.14,358.72],"6-70-13":[35.6,462.61],"6-70-14":[142.49,2057.45],"6-70-15":[100,1043.38],"6-70-16":[27.8,2489.77],"6-70-17":[24.67,2049.01],"6-70-18":[22.69,753.24],"6-70-19":[22.41,59.3],"6-70-20":[23.96,142.33],"6-70-21":[-25.04,490.94],"6-70-22":[198.02,1063.16],"6-70-23":[343.56,1540.59],"6-70-24":[27.16,3468.04],"6-70-25":[108.1,1729.27],"6-70-26":[121.91,428.48],"6-70-27":[274.16,1624.07],"6-70-28":[322.1,1063.08],"6-70-29":[354.64,767.3],"6-70-30":[305.29,833.8],"6-70-31":[254.18,533.95],"6-70-32":[223.98,448.91],"6-70-33":[192.31,886.28],"6-70-34":[403.12,1242.7],"6-70-35":[605.84,1757.04],"6-70-36":[1116.78,1831.76],"6-70-37":[1104.79,1687.18],"6-70-38":[1028.6,2162.84],"6-70-39":[1184.99,2171.43],"6-70-40":[1018.03,2505.72],"6-70-41":[47.81,2222.4],"6-70-42":[7.61,1720.53],"6-70-43":[18.25,2268.67],"6-70-44":[2.17,2017.39],"6-70-45":[26.72,58.31],"6-70-46":[27.58,59.46],"6-70-47":[29.09,64.51],"6-70-48":[29.91,64.57],"6-70-49":[29.84,67.11],"6-70-50":[31.81,70.73],"6-70-51":[27.49,66.41],"6-70-52":[24.04,57.39],"6-70-53":[24.04,50.76],"6-70-54":[19.07,48.88],"6-70-55":[15.38,38.05],"6-70-56":[14,268.92],"6-70-57":[15.56,3052.08],"6-70-58":[2944.42,3536.78],"6-70-59":[3147.36,3480.29],"6-70-60":[2608.29,3239.33],"6-70-61":[2539.62,2709.23],"6-70-62":[2602.1,2724.91],"6-70-63":[-29.54,2768.65],"6-71-0":[13.6,36.76],"6-71-1":[19.1,48.94],"5-35-0":[13.6,49.87],"6-71-2":[24.15,54.01],"6-71-3":[27.72,709.89],"5-35-1":[24.15,1635.74],"4-17-0":[13.6,1635.74],"6-71-4":[28.01,684.19],"6-71-5":[27.24,62.75],"5-35-2":[27.24,1193.37],"6-71-6":[19.67,948.29],"6-71-7":[4.84,1854.14],"5-35-3":[4.84,2122.75],"4-17-1":[4.84,2122.75],"3-8-0":[4.84,2122.75],"6-71-8":[19.05,851.76],"6-71-9":[17.77,511.56],"5-35-4":[17.77,2096.53],"6-71-10":[17.31,158.69],"6-71-11":[17.94,214.15],"5-35-5":[-25.11,350.95],"4-17-2":[-25.11,2096.53],"6-71-12":[11.89,342.67],"6-71-13":[80.4,644.43],"5-35-6":[11.89,644.43],"6-71-14":[118.41,2648.45],"6-71-15":[68.74,1842.42],"5-35-7":[68.74,2648.45],"4-17-3":[-23.11,3777.17],"3-8-1":[-180.54,4840.9],"6-71-16":[65.18,2700.03],"6-71-17":[23.06,2930.53],"5-35-8":[23.06,2930.53],"6-71-18":[13.5,2524.92],"6-71-19":[8.99,1090.39],"5-35-9":[8.99,2524.92],"4-17-4":[-23.32,3340.97],"6-71-20":[18.37,903.81],"6-71-21":[-31.98,311.99],"5-35-10":[-31.98,903.81],"6-71-22":[94.19,388.14],"6-71-23":[273.49,1038.12],"5-35-11":[94.19,1540.59],"4-17-5":[-31.98,1540.59],"3-8-2":[-31.98,4069.35],"6-71-24":[452.55,932.86],"6-71-25":[308.29,1368.77],"5-35-12":[27.16,3468.04],"6-71-26":[326.68,1327.69],"6-71-27":[373.83,1212.84],"5-35-13":[121.91,1624.07],"4-17-6":[27.16,3468.04],"6-71-28":[371.4,934.47],"6-71-29":[382.62,935.02],"5-35-14":[322.1,1063.08],"6-71-30":[291.34,761.73],"6-71-31":[282.28,549.06],"5-35-15":[254.18,833.8],"4-17-7":[128.64,2461.39],"3-8-3":[-28.03,4049.43],"6-71-32":[271.34,592.5],"6-71-33":[253.5,758.09],"5-35-16":[192.31,886.28],"6-71-34":[404.13,1099.25],"6-71-35":[753.17,1385.35],"5-35-17":[403.12,1757.04],"4-17-8":[-25.08,2127.16],"6-71-36":[1050.78,1507.74],"6-71-37":[1011.55,1380.25],"5-35-18":[1011.55,1831.76],"6-71-38":[960.55,1371.66],"6-71-39":[940.67,1497.56],"5-35-19":[940.67,2171.43],"4-17-9":[-59.49,2639.31],"3-8-4":[-63.62,2639.31],"6-71-40":[991.87,1399.38],"6-71-41":[722.23,1582.99],"5-35-20":[47.81,2505.72],"6-71-42":[427.66,1667.49],"6-71-43":[142.44,2341.81],"5-35-21":[7.61,2341.81],"4-17-10":[-162.31,2505.72],"6-71-44":[-5.94,1732.68],"6-71-45":[27.22,59.84],"5-35-22":[-5.94,2017.39],"6-71-46":[29.17,63.24],"6-71-47":[30.14,66.91],"5-35-23":[27.58,66.91],"4-17-11":[-5.94,2017.39],"3-8-5":[-162.31,2505.72],"6-71-48":[31.75,66.91],"6-71-49":[32.11,69.56],"5-35-24":[29.84,69.56],"6-71-50":[33.7,73.57],"6-71-51":[28.8,72.3],"5-35-25":[27.49,73.57],"4-17-12":[23.62,73.57],"6-71-52":[25.57,60.85],"6-71-53":[24.42,53.17],"5-35-26":[24.04,60.85],"6-71-54":[19.18,48.85],"6-71-55":[15.38,38.12],"5-35-27":[15.38,48.88],"4-17-13":[15.04,60.85],"3-8-6":[11.02,778.86],"6-71-56":[14.98,187.97],"6-71-57":[15.79,2944.43],"5-35-28":[14,3052.08],"6-71-58":[2840.08,3600.93],"6-71-59":[3239.32,3598.47],"5-35-29":[2840.08,3600.93],"4-17-14":[11.4,3600.93],"6-71-60":[2709.22,3295.33],"6-71-61":[2568.24,2810.96],"5-35-30":[2539.62,3295.33],"6-71-62":[2621.33,2751.92],"6-71-63":[-29.54,2771.32],"5-35-31":[-29.54,2771.32],"4-17-15":[-29.54,3295.33],"3-8-7":[-29.54,3600.93],"6-72-0":[13.6,36.49],"6-72-1":[19.01,48.14],"6-72-2":[23.6,52.85],"6-72-3":[25.14,753.17],"6-72-4":[25.05,528.08],"6-72-5":[22.7,56.98],"6-72-6":[22.55,1086.58],"6-72-7":[21.13,1167.12],"6-72-8":[17.66,435.24],"6-72-9":[17.52,286.65],"6-72-10":[15.17,241.92],"6-72-11":[12.2,275.13],"6-72-12":[29.06,318.56],"6-72-13":[28.38,382.74],"6-72-14":[135.43,1998.12],"6-72-15":[147.15,2540.92],"6-72-16":[49.82,2847.57],"6-72-17":[30.85,2950.99],"6-72-18":[21.06,2427.62],"6-72-19":[7.76,2464.23],"6-72-20":[7.73,425.6],"6-72-21":[-11.66,284.94],"6-72-22":[88.27,639.17],"6-72-23":[289.98,1107.43],"6-72-24":[470.56,1912.86],"6-72-25":[498.02,1340.77],"6-72-26":[593.56,1710.7],"6-72-27":[454.32,3017.52],"6-72-28":[444.14,1371.36],"6-72-29":[477.29,1047.83],"6-72-30":[352.38,768.89],"6-72-31":[319.72,630.52],"6-72-32":[322.07,733.63],"6-72-33":[332.54,807.65],"6-72-34":[430.54,1119.46],"6-72-35":[723.96,1534.31],"6-72-36":[1022.28,1643.41],"6-72-37":[961.73,1249.5],"6-72-38":[916.89,1116.92],"6-72-39":[892.54,1255.26],"6-72-40":[958.51,1498.79],"6-72-41":[975.82,1901.6],"6-72-42":[928.72,1783.15],"6-72-43":[77.74,2501.84],"6-72-44":[12.69,1649.02],"6-72-45":[28,66.27],"6-72-46":[29.82,70.25],"6-72-47":[32.16,68.24],"6-72-48":[32.45,66.93],"6-72-49":[32.5,71.41],"6-72-50":[34.78,76.35],"6-72-51":[30.32,73.61],"6-72-52":[26.6,61.36],"6-72-53":[24.54,54.43],"6-72-54":[19.54,49.25],"6-72-55":[15.45,38.72],"6-72-56":[15.31,41.8],"6-72-57":[21.91,3236.81],"6-72-58":[2872.27,3666.27],"6-72-59":[3295.32,3666.27],"6-72-60":[2810.95,3378.93],"6-72-61":[2625.94,2968.07],"6-72-62":[2649.64,2779.15],"6-72-63":[-29.54,2774.31],"6-73-0":[13.6,36.21],"6-73-1":[18.97,47.61],"5-36-0":[13.6,48.14],"6-73-2":[22.99,49.57],"6-73-3":[23.45,674.04],"5-36-1":[22.99,753.17],"6-73-4":[23.04,204.98],"6-73-5":[22,51.05],"5-36-2":[22,528.08],"6-73-6":[18.61,696.6],"6-73-7":[22.39,1083.56],"5-36-3":[18.61,1167.12],"6-73-8":[17.69,559.12],"6-73-9":[46.96,398.6],"5-36-4":[17.52,559.12],"6-73-10":[10.3,258.06],"6-73-11":[18.42,338.7],"5-36-5":[10.3,338.7],"6-73-12":[21.07,371.65],"6-73-13":[119.02,309.64],"5-36-6":[21.07,382.74],"6-73-14":[82.56,1369.76],"6-73-15":[13.61,2520.59],"5-36-7":[13.61,2540.92],"6-73-16":[28.54,1559.76],"6-73-17":[28.77,1798.35],"5-36-8":[28.54,2950.99],"6-73-18":[23.18,2185.74],"6-73-19":[-52.99,2137.5],"5-36-9":[-52.99,2464.23],"6-73-20":[1.3,266.06],"6-73-21":[-117.56,282.94],"5-36-10":[-117.56,425.6],"6-73-22":[27.75,574.35],"6-73-23":[275.3,1131.98],"5-36-11":[27.75,1131.98],"6-73-24":[280.09,1082.02],"6-73-25":[366.24,841.26],"5-36-12":[280.09,1912.86],"6-73-26":[428.45,2020.89],"6-73-27":[423.73,1156.65],"5-36-13":[423.73,3017.52],"6-73-28":[386.96,960.04],"6-73-29":[394.88,977.62],"5-36-14":[386.96,1371.36],"6-73-30":[497.33,946.04],"6-73-31":[366.87,1103.17],"5-36-15":[319.72,1103.17],"6-73-32":[379.78,1540.39],"6-73-33":[413.29,1685.26],"5-36-16":[322.07,1685.26],"6-73-34":[504.55,1701.66],"6-73-35":[515.18,1902.71],"5-36-17":[430.54,1902.71],"6-73-36":[935.23,1683.01],"6-73-37":[473.44,1546.43],"5-36-18":[473.44,1683.01],"6-73-38":[414.32,1440.16],"6-73-39":[758.78,1496.99],"5-36-19":[414.32,1496.99],"6-73-40":[770.57,2110.34],"6-73-41":[993.88,1898.28],"5-36-20":[770.57,2110.34],"6-73-42":[1210.08,3126.88],"6-73-43":[4.71,2790.11],"5-36-21":[4.71,3126.88],"6-73-44":[11.68,321.06],"6-73-45":[28.82,68.52],"5-36-22":[11.68,1649.02],"6-73-46":[33.04,71.86],"6-73-47":[33.1,68.84],"5-36-23":[29.82,71.86],"6-73-48":[32.88,69.45],"6-73-49":[33.33,74.64],"5-36-24":[32.45,74.64],"6-73-50":[35.38,76.55],"6-73-51":[30.59,74.13],"5-36-25":[30.32,76.55],"6-73-52":[27.68,63.59],"6-73-53":[24.54,58.28],"5-36-26":[24.54,63.59],"6-73-54":[20.07,51.54],"6-73-55":[15.99,40.58],"5-36-27":[15.45,51.54],"6-73-56":[15.99,41.88],"6-73-57":[19.59,3236.81],"5-36-28":[15.31,3236.81],"6-73-58":[2976.86,3671.29],"6-73-59":[3378.92,3685.99],"5-36-29":[2872.27,3685.99],"6-73-60":[2968.06,3441.2],"6-73-61":[2691.68,3024.01],"5-36-30":[2625.94,3441.2],"6-73-62":[2691.68,2818.12],"6-73-63":[-29.54,2780.49],"5-36-31":[-29.54,2818.12],"6-74-0":[13.6,36.07],"6-74-1":[18.96,46.86],"6-74-2":[22.03,47],"6-74-3":[20.96,289.51],"6-74-4":[19.84,46.66],"6-74-5":[17.55,45.75],"6-74-6":[11.97,739.68],"6-74-7":[14.65,736.85],"6-74-8":[-6.7,3219.23],"6-74-9":[-7.7,401.9],"6-74-10":[-74.06,523.35],"6-74-11":[30.86,314.28],"6-74-12":[121.32,307.64],"6-74-13":[94.68,347.09],"6-74-14":[53.31,387.19],"6-74-15":[16.89,488.72],"6-74-16":[26.92,429.54],"6-74-17":[0.6,2570.69],"6-74-18":[-38.2,3075.92],"6-74-19":[2.74,3021.97],"6-74-20":[2.74,110.17],"6-74-21":[-52.61,355.67],"6-74-22":[11.08,602.67],"6-74-23":[11.91,551.02],"6-74-24":[164.06,713.34],"6-74-25":[187.45,639.47],"6-74-26":[300.4,1130.48],"6-74-27":[439.11,1410.14],"6-74-28":[346.35,1323.82],"6-74-29":[356.78,738.69],"6-74-30":[452.9,1580.59],"6-74-31":[534,5024.49],"6-74-32":[645.87,4495.21],"6-74-33":[625.99,3461],"6-74-34":[590.29,2489.57],"6-74-35":[742.27,1708.52],"6-74-36":[432.19,1881.89],"6-74-37":[298.55,1739.34],"6-74-38":[466.8,1752.71],"6-74-39":[255.5,1623.82],"6-74-40":[350.82,2352.72],"6-74-41":[677.23,2369.87],"6-74-42":[12.4,3510.35],"6-74-43":[4.61,2075.35],"6-74-44":[25.51,57.03],"6-74-45":[28.71,66.1],"6-74-46":[31.87,69.33],"6-74-47":[32.66,69.51],"6-74-48":[33.21,80.25],"6-74-49":[35.21,80.16],"6-74-50":[35.5,79.81],"6-74-51":[31.79,73.11],"6-74-52":[29.44,68],"6-74-53":[26.69,59.41],"6-74-54":[20.92,53.21],"6-74-55":[18.14,42.59],"6-74-56":[17.26,359.2],"6-74-57":[18.72,2976.87],"6-74-58":[2510.84,3667.35],"6-74-59":[3441.19,3732.45],"6-74-60":[3024,3510.17],"6-74-61":[2783.25,3119.66],"6-74-62":[2780.48,2893.13],"6-74-63":[-29.54,2805.44],"6-75-0":[13.6,35.99],"6-75-1":[18.94,45.05],"5-37-0":[13.6,46.86],"6-75-2":[21.42,45.15],"6-75-3":[20.74,291.18],"5-37-1":[20.74,291.18],"4-18-0":[13.6,753.17],"6-75-4":[17.8,41.45],"6-75-5":[17.26,39.32],"5-37-2":[17.26,46.66],"6-75-6":[15.55,177.14],"6-75-7":[15.55,1181.22],"5-37-3":[11.97,1181.22],"4-18-1":[11.97,1181.22],"6-75-8":[16.77,712.47],"6-75-9":[-32.14,4110.39],"5-37-4":[-32.14,4110.39],"6-75-10":[-19.3,318.43],"6-75-11":[30.72,357.76],"5-37-5":[-74.06,523.35],"4-18-2":[-74.06,4110.39],"6-75-12":[140.07,313.84],"6-75-13":[123.47,252.12],"5-37-6":[94.68,347.09],"6-75-14":[-181.36,293.98],"6-75-15":[-133.08,195.69],"5-37-7":[-181.36,488.72],"4-18-3":[-181.36,2540.92],"6-75-16":[12.44,673.31],"6-75-17":[25.7,2438.12],"5-37-8":[0.6,2570.69],"6-75-18":[22.51,3012.55],"6-75-19":[6.7,2342.54],"5-37-9":[-38.2,3075.92],"4-18-4":[-52.99,3075.92],"6-75-20":[8.83,223.67],"6-75-21":[-4.5,1970.91],"5-37-10":[-52.61,1970.91],"6-75-22":[11.16,2002.31],"6-75-23":[78.71,726.15],"5-37-11":[11.08,2002.31],"4-18-5":[-117.56,2002.31],"6-75-24":[172.21,1207.85],"6-75-25":[212.55,942.11],"5-37-12":[164.06,1207.85],"6-75-26":[305.98,740.02],"6-75-27":[352.02,1457.61],"5-37-13":[300.4,1457.61],"4-18-6":[164.06,3017.52],"6-75-28":[354.16,988.64],"6-75-29":[356.57,725.3],"5-37-14":[346.35,1323.82],"6-75-30":[389.82,3166.22],"6-75-31":[594.3,2060.9],"5-37-15":[389.82,5024.49],"4-18-7":[319.72,5024.49],"6-75-32":[1072.57,1787.81],"6-75-33":[1016.16,1756.25],"5-37-16":[625.99,4495.21],"6-75-34":[735.53,2443.31],"6-75-35":[493.17,2943.5],"5-37-17":[493.17,2943.5],"4-18-8":[322.07,4495.21],"6-75-36":[446.63,1864.36],"6-75-37":[93.22,1716.39],"5-37-18":[93.22,1881.89],"6-75-38":[74.67,2583.3],"6-75-39":[57.48,2427.44],"5-37-19":[57.48,2583.3],"4-18-9":[57.48,2583.3],"6-75-40":[-242.83,1442.62],"6-75-41":[-31.19,1914.13],"5-37-20":[-242.83,2369.87],"6-75-42":[2.04,1636.59],"6-75-43":[21.63,58.03],"5-37-21":[2.04,3510.35],"4-18-10":[-242.83,3510.35],"6-75-44":[25.62,61.17],"6-75-45":[29.14,66.22],"5-37-22":[25.51,66.22],"6-75-46":[31.94,69.34],"6-75-47":[33.03,82.96],"5-37-23":[31.87,82.96],"4-18-11":[11.68,1649.02],"6-75-48":[35.18,89.62],"6-75-49":[39.2,86.77],"5-37-24":[33.21,89.62],"6-75-50":[36.6,80.48],"6-75-51":[34.25,78.22],"5-37-25":[31.79,80.48],"4-18-12":[30.32,89.62],"6-75-52":[30.27,72.13],"6-75-53":[26.69,63.45],"5-37-26":[26.69,72.13],"6-75-54":[20.79,54.64],"6-75-55":[18.14,45.98],"5-37-27":[18.14,54.64],"4-18-13":[15.45,72.13],"6-75-56":[18.66,861.26],"6-75-57":[359.19,2787.68],"5-37-28":[17.26,2976.87],"6-75-58":[2576.62,3670.33],"6-75-59":[3510.16,3745.57],"5-37-29":[2510.84,3745.57],"4-18-14":[15.31,3745.57],"6-75-60":[3119.65,3590.97],"6-75-61":[2882.5,3236.16],"5-37-30":[2783.25,3590.97],"6-75-62":[2805.43,2971.57],"6-75-63":[-29.54,2839.82],"5-37-31":[-29.54,2971.57],"4-18-15":[-29.54,3590.97],"6-76-0":[13.6,35.96],"6-76-1":[18.88,43.71],"6-76-2":[20.05,43.82],"6-76-3":[17.55,47.61],"6-76-4":[15.48,38.46],"6-76-5":[14.03,35.52],"6-76-6":[13.19,32.09],"6-76-7":[13.64,1139.05],"6-76-8":[15.76,538.64],"6-76-9":[14.86,306.08],"6-76-10":[21.95,316.75],"6-76-11":[80.98,357.69],"6-76-12":[126.53,332.1],"6-76-13":[34.69,291.25],"6-76-14":[4.45,251.97],"6-76-15":[11.09,721.64],"6-76-16":[16.18,1541.99],"6-76-17":[17.64,2603.85],"6-76-18":[19.98,3897.68],"6-76-19":[14.59,3093.99],"6-76-20":[-398.55,2689.12],"6-76-21":[-349.48,2516.84],"6-76-22":[7.34,2262.38],"6-76-23":[-21.6,1972.68],"6-76-24":[-6.69,2173.07],"6-76-25":[324.79,1591.14],"6-76-26":[356.19,1104.11],"6-76-27":[401.98,2729.65],"6-76-28":[392.01,3267.45],"6-76-29":[375.1,3342.07],"6-76-30":[309.01,2770.25],"6-76-31":[236.85,4305.91],"6-76-32":[545.42,3396.04],"6-76-33":[671.25,3634.02],"6-76-34":[206.1,2462.72],"6-76-35":[230.19,2952.42],"6-76-36":[-18.37,1938.4],"6-76-37":[7.99,2969.88],"6-76-38":[-27.14,1841.51],"6-76-39":[-30.93,319.69],"6-76-40":[-13.74,244.16],"6-76-41":[8.65,35.45],"6-76-42":[14.14,44.71],"6-76-43":[19.2,58.81],"6-76-44":[24.23,61.33],"6-76-45":[27.4,65.6],"6-76-46":[32.33,76.23],"6-76-47":[35.63,92.82],"6-76-48":[41.49,92.94],"6-76-49":[40.23,88.72],"6-76-50":[39.23,85.78],"6-76-51":[36.06,83.62],"6-76-52":[32.25,75.93],"6-76-53":[27.56,65.48],"6-76-54":[22.21,58.44],"6-76-55":[22.21,48.62],"6-76-56":[20.39,1400],"6-76-57":[861.25,2930.46],"6-76-58":[2787.67,3670.26],"6-76-59":[3590.96,3781.61],"6-76-60":[2776.72,3628.25],"6-76-61":[2954.99,3346.55],"6-76-62":[2839.81,3092.47],"6-76-63":[-29.54,2876.01],"6-77-0":[13.6,35.87],"6-77-1":[18.74,42.43],"5-38-0":[13.6,43.71],"6-77-2":[19.64,42.43],"6-77-3":[17.24,120.99],"5-38-1":[17.24,120.99],"6-77-4":[12.81,34.8],"6-77-5":[12.61,29.58],"5-38-2":[12.61,38.46],"6-77-6":[10.81,27.52],"6-77-7":[10.81,395.4],"5-38-3":[10.81,1139.05],"6-77-8":[13.48,352.95],"6-77-9":[13.48,366.87],"5-38-4":[13.48,538.64],"6-77-10":[35.39,327.96],"6-77-11":[93.37,306.61],"5-38-5":[21.95,357.69],"6-77-12":[105.39,311.33],"6-77-13":[-117.36,300.03],"5-38-6":[-117.36,332.1],"6-77-14":[44.47,375.52],"6-77-15":[2.57,323.22],"5-38-7":[2.57,721.64],"6-77-16":[12.38,1062.09],"6-77-17":[17.22,3382.16],"5-38-8":[12.38,3382.16],"6-77-18":[227.32,3297.16],"6-77-19":[120.11,2377.57],"5-38-9":[14.59,3897.68],"6-77-20":[501.73,1781.74],"6-77-21":[534.04,1378.43],"5-38-10":[-398.55,2689.12],"6-77-22":[6.85,2032.54],"6-77-23":[-26.43,2355.84],"5-38-11":[-26.43,2355.84],"6-77-24":[-82.73,2168.09],"6-77-25":[-31.31,2735.56],"5-38-12":[-82.73,2735.56],"6-77-26":[-27.84,3016.69],"6-77-27":[581.81,4526.44],"5-38-13":[-27.84,4526.44],"6-77-28":[713.31,4259.18],"6-77-29":[510.69,4177.49],"5-38-14":[375.1,4259.18],"6-77-30":[298.72,2764.05],"6-77-31":[167.98,3442.17],"5-38-15":[167.98,4305.91],"6-77-32":[136.09,5158.31],"6-77-33":[-45.68,5869.55],"5-38-16":[-45.68,5869.55],"6-77-34":[-49.58,2618.18],"6-77-35":[-48.06,1490.1],"5-38-17":[-49.58,2952.42],"6-77-36":[-18.95,1408.41],"6-77-37":[-43.82,2305.1],"5-38-18":[-43.82,2969.88],"6-77-38":[-55.16,506.56],"6-77-39":[-23.77,1.33],"5-38-19":[-55.16,1841.51],"6-77-40":[-2.89,15.32],"6-77-41":[4.2,25.41],"5-38-20":[-13.74,244.16],"6-77-42":[9.2,34.13],"6-77-43":[15.55,46.33],"5-38-21":[9.2,58.81],"6-77-44":[24.23,56.57],"6-77-45":[27.4,71.28],"5-38-22":[24.23,71.28],"6-77-46":[32.88,83.08],"6-77-47":[39.51,93.26],"5-38-23":[32.33,93.26],"6-77-48":[38.04,1277.56],"6-77-49":[42.15,90.89],"5-38-24":[38.04,1277.56],"6-77-50":[42.47,93.63],"6-77-51":[38.18,92.27],"5-38-25":[36.06,93.63],"6-77-52":[33.28,80.44],"6-77-53":[29.46,68.79],"5-38-26":[27.56,80.44],"6-77-54":[25.28,62.82],"6-77-55":[22.68,52.06],"5-38-27":[22.21,62.82],"6-77-56":[18.95,1400],"6-77-57":[751.85,3035.01],"5-38-28":[18.95,3035.01],"6-77-58":[2930.45,3670.15],"6-77-59":[3628.25,3814.29],"5-38-29":[2787.67,3814.29],"6-77-60":[3346.54,3652.21],"6-77-61":[3073.2,3460.18],"5-38-30":[2776.72,3652.21],"6-77-62":[2876,3182.27],"6-77-63":[-29.54,2907.97],"5-38-31":[-29.54,3182.27],"6-78-0":[13.6,35.71],"6-78-1":[18.5,41.37],"6-78-2":[18.62,41.37],"6-78-3":[14.08,41.71],"6-78-4":[10.33,32.25],"6-78-5":[8.69,25.05],"6-78-6":[8.19,22.55],"6-78-7":[9.2,327.91],"6-78-8":[11.6,314.82],"6-78-9":[12.9,268.49],"6-78-10":[44.72,286.2],"6-78-11":[79.76,279.53],"6-78-12":[76.55,258.22],"6-78-13":[77.59,248.68],"6-78-14":[14.28,340.26],"6-78-15":[2.68,680.41],"6-78-16":[13.14,3881.85],"6-78-17":[13.73,3918.41],"6-78-18":[321,3209.2],"6-78-19":[147.38,1446.37],"6-78-20":[267.19,949.71],"6-78-21":[374.43,1047.17],"6-78-22":[737.12,1974.55],"6-78-23":[99.43,2149.19],"6-78-24":[-38.59,2651.93],"6-78-25":[-18.11,2755.96],"6-78-26":[-202.91,3297.68],"6-78-27":[-172.94,3970.6],"6-78-28":[208.62,3839.48],"6-78-29":[250.57,4373.18],"6-78-30":[130.76,1692.99],"6-78-31":[-26.1,881.98],"6-78-32":[-77.85,278.94],"6-78-33":[-77.15,504.42],"6-78-34":[-74.93,56.49],"6-78-35":[-67.51,634.05],"6-78-36":[-58.21,1404.07],"6-78-37":[-82.52,980.89],"6-78-38":[-39.1,-9.7],"6-78-39":[-22.61,25.58],"6-78-40":[-3.87,7.79],"6-78-41":[3.4,20.43],"6-78-42":[8.86,32.47],"6-78-43":[15.8,49.23],"6-78-44":[24.72,59.67],"6-78-45":[29.26,78.45],"6-78-46":[35.64,87.67],"6-78-47":[42.4,92.7],"6-78-48":[42.73,92.7],"6-78-49":[43.34,91.97],"6-78-50":[45.44,100.71],"6-78-51":[40.21,95.44],"6-78-52":[34.91,81.61],"6-78-53":[31.4,70.9],"6-78-54":[26.8,64.39],"6-78-55":[25.07,54.85],"6-78-56":[20.74,1829.25],"6-78-57":[790.9,3049.46],"6-78-58":[3035,3654.4],"6-78-59":[3633.12,3814.29],"6-78-60":[3460.17,3676.48],"6-78-61":[3182.26,3515.55],"6-78-62":[2907.96,3278.24],"6-78-63":[-29.54,2956.72],"6-79-0":[13.6,35.35],"6-79-1":[18.17,40.15],"5-39-0":[13.6,41.37],"6-79-2":[18.31,40.92],"6-79-3":[14.08,38.78],"5-39-1":[14.08,41.71],"4-19-0":[13.6,120.99],"6-79-4":[8.85,27.87],"6-79-5":[7.69,19.46],"5-39-2":[7.69,32.25],"6-79-6":[6.77,17.55],"6-79-7":[7.34,252.89],"5-39-3":[6.77,327.91],"4-19-1":[6.77,1139.05],"3-9-0":[6.77,1181.22],"6-79-8":[10.65,224],"6-79-9":[12.58,273.71],"5-39-4":[10.65,314.82],"6-79-10":[36.18,309.09],"6-79-11":[67.88,297.07],"5-39-5":[36.18,309.09],"4-19-2":[10.65,538.64],"6-79-12":[65.82,294.44],"6-79-13":[86.91,291.7],"5-39-6":[65.82,294.44],"6-79-14":[-19.35,260.4],"6-79-15":[-9.6,476.12],"5-39-7":[-19.35,680.41],"4-19-3":[-117.36,721.64],"3-9-1":[-181.36,4110.39],"2-4-0":[-181.36,4840.9],"6-79-16":[37.86,5616.16],"6-79-17":[25.49,5133.37],"5-39-8":[13.14,5616.16],"6-79-18":[263.18,4058.15],"6-79-19":[31.48,3448.78],"5-39-9":[31.48,4058.15],"4-19-4":[12.38,5616.16],"6-79-20":[2.31,377.37],"6-79-21":[110.72,790.42],"5-39-10":[2.31,1047.17],"6-79-22":[400.54,1407.05],"6-79-23":[692.97,1499.62],"5-39-11":[99.43,2149.19],"4-19-5":[-398.55,2689.12],"3-9-2":[-398.55,5616.16],"6-79-24":[612.19,1721.97],"6-79-25":[-26.78,2990.34],"5-39-12":[-38.59,2990.34],"6-79-26":[-70.23,3647.39],"6-79-27":[-179.38,3223.81],"5-39-13":[-202.91,3970.6],"4-19-6":[-202.91,4526.44],"6-79-28":[-41.82,3002.22],"6-79-29":[152.09,1451.56],"5-39-14":[-41.82,4373.18],"6-79-30":[61.26,913.05],"6-79-31":[-86.74,587.03],"5-39-15":[-86.74,1692.99],"4-19-7":[-86.74,4373.18],"3-9-3":[-202.91,5024.49],"2-4-1":[-398.55,5616.16],"6-79-32":[-87.58,65.61],"6-79-33":[-86.64,-37.76],"5-39-16":[-87.58,504.42],"6-79-34":[-81.84,-34.75],"6-79-35":[-71.3,-26.58],"5-39-17":[-81.84,634.05],"4-19-8":[-87.58,5869.55],"6-79-36":[-59.05,2336.88],"6-79-37":[-52.97,605.98],"5-39-18":[-82.52,2336.88],"6-79-38":[-43.74,926.36],"6-79-39":[-68.11,1064.17],"5-39-19":[-68.11,1064.17],"4-19-9":[-82.52,2969.88],"3-9-4":[-87.58,5869.55],"6-79-40":[-18.99,1347.93],"6-79-41":[-12.01,199.04],"5-39-20":[-18.99,1347.93],"6-79-42":[8.42,42.61],"6-79-43":[17.67,65.21],"5-39-21":[8.42,65.21],"4-19-10":[-18.99,1347.93],"6-79-44":[24.72,70.25],"6-79-45":[31.3,83.27],"5-39-22":[24.72,83.27],"6-79-46":[39.48,87.78],"6-79-47":[43.03,91.28],"5-39-23":[35.64,92.7],"4-19-11":[24.23,93.26],"3-9-5":[-242.83,3510.35],"2-4-2":[-242.83,5869.55],"6-79-48":[42.49,94.03],"6-79-49":[43.22,91.87],"5-39-24":[42.49,94.03],"6-79-50":[45.58,101.84],"6-79-51":[40.61,94.5],"5-39-25":[40.21,101.84],"4-19-12":[36.06,1277.56],"6-79-52":[35.82,81.74],"6-79-53":[31.85,70.92],"5-39-26":[31.4,81.74],"6-79-54":[28.07,64.4],"6-79-55":[25.07,56.23],"5-39-27":[25.07,64.4],"4-19-13":[22.21,81.74],"3-9-6":[15.45,1277.56],"6-79-56":[24.51,2238.4],"6-79-57":[1829.24,3044.79],"5-39-28":[20.74,3049.46],"6-79-58":[3023.55,3633.13],"6-79-59":[3590.92,3703.54],"5-39-29":[3023.55,3814.29],"4-19-14":[18.95,3814.29],"6-79-60":[3515.54,3739.77],"6-79-61":[3278.23,3596.54],"5-39-30":[3182.26,3739.77],"6-79-62":[2956.71,3326.45],"6-79-63":[-29.54,2985.88],"5-39-31":[-29.54,3326.45],"4-19-15":[-29.54,3739.77],"3-9-7":[-29.54,3814.29],"2-4-3":[-29.54,3814.29],"6-80-0":[13.6,34.92],"6-80-1":[17.78,39.27],"6-80-2":[16.68,40.65],"6-80-3":[11.49,517.11],"6-80-4":[7.13,26.45],"6-80-5":[4.68,16.89],"6-80-6":[4.58,15.08],"6-80-7":[4.73,237.51],"6-80-8":[7.54,245.48],"6-80-9":[34.12,285.08],"6-80-10":[9.18,302.02],"6-80-11":[61.24,248.97],"6-80-12":[48.7,347.27],"6-80-13":[6.35,372.83],"6-80-14":[-41.25,355.61],"6-80-15":[-76.27,115.89],"6-80-16":[-56.46,4485.88],"6-80-17":[-15.96,4116.85],"6-80-18":[161.31,4577.24],"6-80-19":[32.18,3588.07],"6-80-20":[-43.59,2783.91],"6-80-21":[-86.23,444.94],"6-80-22":[151.78,925.69],"6-80-23":[340.2,1343.13],"6-80-24":[285.31,1028.07],"6-80-25":[400.89,1455.51],"6-80-26":[79.57,2444.71],"6-80-27":[-65.02,2493.24],"6-80-28":[-50.69,2422.23],"6-80-29":[62.25,1006.97],"6-80-30":[-93.25,501.55],"6-80-31":[-99.6,235.87],"6-80-32":[-97.89,-42.83],"6-80-33":[-90.45,-40.91],"6-80-34":[-87.49,-33.55],"6-80-35":[-79.14,8.71],"6-80-36":[-62.55,621.18],"6-80-37":[-52.79,1207.88],"6-80-38":[-3.35,2631.65],"6-80-39":[-45.58,2635.66],"6-80-40":[-13.4,1977.92],"6-80-41":[3.13,244.27],"6-80-42":[12.3,42.61],"6-80-43":[19.05,65.05],"6-80-44":[27.43,70.26],"6-80-45":[35.59,85.76],"6-80-46":[41.63,87.78],"6-80-47":[42.87,92.37],"6-80-48":[44.13,94.46],"6-80-49":[43.94,91.87],"6-80-50":[45.05,99.84],"6-80-51":[40.48,92.21],"6-80-52":[35.29,81.74],"6-80-53":[31.46,70.92],"6-80-54":[28.44,63.71],"6-80-55":[27.25,572.15],"6-80-56":[26.34,2427.48],"6-80-57":[2238.39,3127.78],"6-80-58":[3023.7,3590.93],"6-80-59":[3513.32,3615.32],"6-80-60":[3595.11,3741.77],"6-80-61":[3326.44,3655.25],"6-80-62":[2985.87,3360.65],"6-80-63":[-29.54,3013.02],"6-81-0":[13.6,34.28],"6-81-1":[17.42,38.06],"5-40-0":[13.6,39.27],"6-81-2":[16.06,37.38],"6-81-3":[11.14,453.1],"5-40-1":[11.14,517.11],"6-81-4":[5.36,22.49],"6-81-5":[2.51,12.86],"5-40-2":[2.51,26.45],"6-81-6":[2.24,9.59],"6-81-7":[2.54,195.71],"5-40-3":[2.24,237.51],"6-81-8":[7.96,467.27],"6-81-9":[65.32,477.07],"5-40-4":[7.54,477.07],"6-81-10":[7.84,275.89],"6-81-11":[59.53,298.46],"5-40-5":[7.84,302.02],"6-81-12":[19.86,367.95],"6-81-13":[0.32,377.5],"5-40-6":[0.32,377.5],"6-81-14":[-51.54,65.52],"6-81-15":[-57.25,5.04],"5-40-7":[-76.27,355.61],"6-81-16":[-43.48,748.23],"6-81-17":[-65.9,4455.71],"5-40-8":[-65.9,4485.88],"6-81-18":[-73,4802.09],"6-81-19":[473.29,3898.23],"5-40-9":[-73,4802.09],"6-81-20":[-93.21,4173.89],"6-81-21":[-121.55,2032.48],"5-40-10":[-121.55,4173.89],"6-81-22":[-85.21,483.61],"6-81-23":[-57.81,539.09],"5-40-11":[-85.21,1343.13],"6-81-24":[77.98,467.81],"6-81-25":[176.55,1015.61],"5-40-12":[77.98,1455.51],"6-81-26":[-51.14,2138.39],"6-81-27":[-58.49,2078.28],"5-40-13":[-65.02,2493.24],"6-81-28":[-83.94,1996.26],"6-81-29":[-102.99,846.67],"5-40-14":[-102.99,2422.23],"6-81-30":[-103.29,410.82],"6-81-31":[-103.34,-46.62],"5-40-15":[-103.34,501.55],"6-81-32":[-99.7,-45.29],"6-81-33":[-91.37,-41.35],"5-40-16":[-99.7,-40.91],"6-81-34":[-87.05,-35.59],"6-81-35":[-80.36,-28.86],"5-40-17":[-87.49,8.71],"6-81-36":[-95.35,2866.35],"6-81-37":[-44.05,2817.4],"5-40-18":[-95.35,2866.35],"6-81-38":[-37.94,1755.56],"6-81-39":[-49.87,1687.3],"5-40-19":[-49.87,2635.66],"6-81-40":[-10.79,75],"6-81-41":[1.07,25.08],"5-40-20":[-13.4,1977.92],"6-81-42":[8.34,34.81],"6-81-43":[16.88,54.43],"5-40-21":[8.34,65.05],"6-81-44":[27.43,70.86],"6-81-45":[35.92,83.88],"5-40-22":[27.43,85.76],"6-81-46":[39.83,85.23],"6-81-47":[42.1,89.88],"5-40-23":[39.83,92.37],"6-81-48":[10.5,895.68],"6-81-49":[44.14,90.78],"5-40-24":[10.5,895.68],"6-81-50":[42.93,94.4],"6-81-51":[38.91,91.87],"5-40-25":[38.91,99.84],"6-81-52":[33.96,80.53],"6-81-53":[30.7,68.94],"5-40-26":[30.7,81.74],"6-81-54":[28.32,62.75],"6-81-55":[29.72,1099.75],"5-40-27":[27.25,1099.75],"6-81-56":[30.45,2482.8],"6-81-57":[2427.47,3161.72],"5-40-28":[26.34,3161.72],"6-81-58":[3127.77,3513.33],"6-81-59":[3362.15,3613.49],"5-40-29":[3023.7,3615.32],"6-81-60":[3596.57,3745.47],"6-81-61":[3360.64,3699.75],"5-40-30":[3326.44,3745.47],"6-81-62":[3013.01,3382.27],"6-81-63":[-29.54,3034.71],"5-40-31":[-29.54,3382.27],"6-82-0":[13.6,33.76],"6-82-1":[17,37.12],"6-82-2":[15.53,35.52],"6-82-3":[8.15,574.46],"6-82-4":[4.35,19.3],"6-82-5":[1.27,79.61],"6-82-6":[0.56,585.93],"6-82-7":[0.54,166.68],"6-82-8":[5.53,263.89],"6-82-9":[23.58,441.34],"6-82-10":[5.37,321.16],"6-82-11":[52.24,337.16],"6-82-12":[32.72,384.64],"6-82-13":[-1.79,320.68],"6-82-14":[-63.46,173.57],"6-82-15":[-85.87,-10.01],"6-82-16":[-173.82,522.27],"6-82-17":[-63.16,294.16],"6-82-18":[-61.41,3417.02],"6-82-19":[-32.51,5595.76],"6-82-20":[768.45,4411.42],"6-82-21":[-91.09,4366.48],"6-82-22":[-64.72,1761.32],"6-82-23":[-110.57,170.47],"6-82-24":[-44.95,274.33],"6-82-25":[68.28,1114.62],"6-82-26":[-145.36,1466.69],"6-82-27":[-88.55,1380.57],"6-82-28":[-104.68,723.52],"6-82-29":[-111.56,-41.96],"6-82-30":[-110.83,-50.61],"6-82-31":[-104.52,-49.03],"6-82-32":[-100.44,-45.11],"6-82-33":[-93.4,-10.81],"6-82-34":[-83.72,5.08],"6-82-35":[-74.96,-0.2],"6-82-36":[-62.66,-19.8],"6-82-37":[-49.14,-15.48],"6-82-38":[-35.86,-11.67],"6-82-39":[-24.06,-4.21],"6-82-40":[-11.33,1.34],"6-82-41":[0.88,15.42],"6-82-42":[7.73,31.56],"6-82-43":[16.23,52.89],"6-82-44":[26.35,70.9],"6-82-45":[33.59,79.74],"6-82-46":[36.43,83.44],"6-82-47":[40.09,89.7],"6-82-48":[31.65,1115.13],"6-82-49":[43.67,90.18],"6-82-50":[42.26,91.9],"6-82-51":[37.84,90.05],"6-82-52":[33.96,77.84],"6-82-53":[30.52,67.42],"6-82-54":[28.32,61.42],"6-82-55":[29.72,1774.62],"6-82-56":[1099.74,2729.04],"6-82-57":[2482.79,3157.08],"6-82-58":[3040.04,3362.16],"6-82-59":[3161.66,3614.29],"6-82-60":[3541.01,3772.23],"6-82-61":[3382.26,3728.18],"6-82-62":[3034.7,3397.85],"6-82-63":[-29.54,3048.46],"6-83-0":[13.6,33.14],"6-83-1":[16.83,36.08],"5-41-0":[13.6,37.12],"6-83-2":[15.31,35.22],"6-83-3":[8.15,497.91],"5-41-1":[8.15,574.46],"4-20-0":[8.15,574.46],"6-83-4":[2.83,16.01],"6-83-5":[1.2,1212.81],"5-41-2":[1.2,1212.81],"6-83-6":[-2.49,1230.82],"6-83-7":[-3.49,212.13],"5-41-3":[-3.49,1230.82],"4-20-1":[-3.49,1230.82],"6-83-8":[21.02,244.39],"6-83-9":[32.38,331.03],"5-41-4":[5.53,441.34],"6-83-10":[0.65,350.47],"6-83-11":[53.02,469.81],"5-41-5":[0.65,469.81],"4-20-2":[0.65,477.07],"6-83-12":[50.86,476.59],"6-83-13":[40.69,627.4],"5-41-6":[-1.79,627.4],"6-83-14":[-46.59,323.7],"6-83-15":[-87.65,232.09],"5-41-7":[-87.65,323.7],"4-20-3":[-87.65,627.4],"6-83-16":[-161.11,321.64],"6-83-17":[-92.99,1858.17],"5-41-8":[-173.82,1858.17],"6-83-18":[-78.58,3878.24],"6-83-19":[299.23,3814.01],"5-41-9":[-78.58,5595.76],"4-20-4":[-173.82,5595.76],"6-83-20":[674.01,4034.31],"6-83-21":[627.23,3448.75],"5-41-10":[-91.09,4411.42],"6-83-22":[-84.08,2931.28],"6-83-23":[-93.5,1395.64],"5-41-11":[-110.57,2931.28],"4-20-5":[-121.55,4411.42],"6-83-24":[-29.8,300.19],"6-83-25":[-71.95,1727.17],"5-41-12":[-71.95,1727.17],"6-83-26":[-76.15,1060.42],"6-83-27":[-94.46,1466.16],"5-41-13":[-145.36,1466.69],"4-20-6":[-145.36,2493.24],"6-83-28":[-107.49,-44.27],"6-83-29":[-112.89,-51.27],"5-41-14":[-112.89,723.52],"6-83-30":[-112.22,-52.38],"6-83-31":[-111.92,-50.21],"5-41-15":[-112.22,-49.03],"4-20-7":[-112.89,2422.23],"6-83-32":[-107.44,-46.38],"6-83-33":[-100.55,862.8],"5-41-16":[-107.44,862.8],"6-83-34":[-86.9,-10.47],"6-83-35":[-74.63,-31.32],"5-41-17":[-86.9,5.08],"4-20-8":[-107.44,862.8],"6-83-36":[-65.81,-24.56],"6-83-37":[-50.21,-9.89],"5-41-18":[-65.81,-9.89],"6-83-38":[-36.27,-11.19],"6-83-39":[-27.02,3059.56],"5-41-19":[-36.27,3059.56],"4-20-9":[-95.35,3059.56],"6-83-40":[-8.14,2.28],"6-83-41":[0.88,16.25],"5-41-20":[-11.33,16.25],"6-83-42":[7.73,33.52],"6-83-43":[16.98,55.76],"5-41-21":[7.73,55.76],"4-20-10":[-13.4,1977.92],"6-83-44":[26.42,65.98],"6-83-45":[28.62,71.78],"5-41-22":[26.35,79.74],"6-83-46":[31.75,77.92],"6-83-47":[36.38,85.71],"5-41-23":[31.75,89.7],"4-20-11":[26.35,92.37],"6-83-48":[41.07,88.96],"6-83-49":[41.42,88.26],"5-41-24":[31.65,1115.13],"6-83-50":[40.86,86.86],"6-83-51":[37.02,83.45],"5-41-25":[37.02,91.9],"4-20-12":[10.5,1115.13],"6-83-52":[33.5,75.38],"6-83-53":[30.59,67.43],"5-41-26":[30.52,77.84],"6-83-54":[28.68,62.32],"6-83-55":[29.58,2242.91],"5-41-27":[28.32,2242.91],"4-20-13":[27.25,2242.91],"6-83-56":[568.49,2841.08],"6-83-57":[2729.03,3100.22],"5-41-28":[568.49,3157.08],"6-83-58":[2651.98,3161.67],"6-83-59":[2944.39,3541.02],"5-41-29":[2651.98,3614.29],"4-20-14":[26.34,3615.32],"6-83-60":[3405.03,3807.22],"6-83-61":[3397.84,3762.75],"5-41-30":[3382.26,3807.22],"6-83-62":[3048.45,3423.55],"6-83-63":[-29.54,3056.25],"5-41-31":[-29.54,3423.55],"4-20-15":[-29.54,3807.22],"6-84-0":[13.6,32.73],"6-84-1":[15.68,35.52],"6-84-2":[14.45,462.92],"6-84-3":[6.06,600.63],"6-84-4":[1.87,99.91],"6-84-5":[-4.13,1436.73],"6-84-6":[-6.38,243.89],"6-84-7":[-6.07,220.04],"6-84-8":[14.07,1250.98],"6-84-9":[44.8,1096.24],"6-84-10":[-0.2,1512.31],"6-84-11":[81.33,975.89],"6-84-12":[69.62,1624.4],"6-84-13":[-109.79,1020.66],"6-84-14":[69.5,630.85],"6-84-15":[-35.73,381.12],"6-84-16":[-25.96,265.27],"6-84-17":[-108.09,292.44],"6-84-18":[2.44,3050.69],"6-84-19":[657.64,3289.8],"6-84-20":[218.2,3513.08],"6-84-21":[84.19,4466.14],"6-84-22":[-257.75,3206.24],"6-84-23":[-71.96,2955.44],"6-84-24":[-79.76,1006.29],"6-84-25":[-89.61,187.1],"6-84-26":[-101.44,-35.61],"6-84-27":[-105.8,-39.16],"6-84-28":[-108.15,-47.23],"6-84-29":[-116.74,-51.27],"6-84-30":[-120.83,-54.73],"6-84-31":[-121.14,-53.64],"6-84-32":[-120.53,-50.27],"6-84-33":[-111.77,-41.47],"6-84-34":[-97.72,-15.91],"6-84-35":[-82.46,-11.7],"6-84-36":[-73.49,-25.08],"6-84-37":[-58.26,-16.99],"6-84-38":[-39.63,-4.4],"6-84-39":[-29.1,810.67],"6-84-40":[-9.76,2.28],"6-84-41":[0.83,15.41],"6-84-42":[7.34,34.61],"6-84-43":[17.48,52.91],"6-84-44":[21.66,56.56],"6-84-45":[24.5,63.5],"6-84-46":[28.48,71.79],"6-84-47":[33.69,82.14],"6-84-48":[37.05,84.5],"6-84-49":[39.19,84.88],"6-84-50":[37.64,82.95],"6-84-51":[36.03,81.01],"6-84-52":[33.47,74.05],"6-84-53":[30.96,66.44],"6-84-54":[28.91,62.37],"6-84-55":[28.43,1169.19],"6-84-56":[306.84,2834.46],"6-84-57":[2494.94,2971.6],"6-84-58":[2350.48,2944.4],"6-84-59":[2693.02,3405.04],"6-84-60":[3368.56,3828.34],"6-84-61":[3423.54,3798.94],"6-84-62":[3056.21,3451.5],"6-84-63":[-29.54,3061.98],"6-85-0":[13.6,32.27],"6-85-1":[15.62,35.54],"5-42-0":[13.6,35.54],"6-85-2":[13.83,255.88],"6-85-3":[6.06,601.05],"5-42-1":[6.06,601.05],"6-85-4":[1.27,851.35],"6-85-5":[-6.92,1078],"5-42-2":[-6.92,1436.73],"6-85-6":[-11.51,152.24],"6-85-7":[-9.86,400.74],"5-42-3":[-11.51,400.74],"6-85-8":[20.67,1773.8],"6-85-9":[-5.63,1487.95],"5-42-4":[-5.63,1773.8],"6-85-10":[-53.11,1559.37],"6-85-11":[-77.24,864.4],"5-42-5":[-77.24,1559.37],"6-85-12":[-233.11,1394.5],"6-85-13":[29.59,600.13],"5-42-6":[-233.11,1624.4],"6-85-14":[24.54,429.21],"6-85-15":[-30.91,315.69],"5-42-7":[-35.73,630.85],"6-85-16":[-30.47,243.14],"6-85-17":[32.63,430.08],"5-42-8":[-108.09,430.08],"6-85-18":[50.89,3092.4],"6-85-19":[225.19,3228.78],"5-42-9":[2.44,3289.8],"6-85-20":[429.56,2831.82],"6-85-21":[250.94,3905.23],"5-42-10":[84.19,4466.14],"6-85-22":[-102.11,3453.88],"6-85-23":[-86,2164.41],"5-42-11":[-257.75,3453.88],"6-85-24":[-99.8,1992.49],"6-85-25":[-110.95,-39.87],"5-42-12":[-110.95,1992.49],"6-85-26":[-117.41,-43.92],"6-85-27":[-127.52,-50.66],"5-42-13":[-127.52,-35.61],"6-85-28":[-132,-54.32],"6-85-29":[-131.84,-55.09],"5-42-14":[-132,-47.23],"6-85-30":[-135.58,-59.06],"6-85-31":[-136.23,-60.26],"5-42-15":[-136.23,-53.64],"6-85-32":[-135.19,-55.88],"6-85-33":[-126.29,-49.83],"5-42-16":[-135.19,-41.47],"6-85-34":[-114.17,-41.73],"6-85-35":[-93.31,-35.72],"5-42-17":[-114.17,-11.7],"6-85-36":[-76.7,-25.51],"6-85-37":[-60.92,12.57],"5-42-18":[-76.7,12.57],"6-85-38":[-42.13,-11.51],"6-85-39":[-26.51,-4.38],"5-42-19":[-42.13,810.67],"6-85-40":[-10.15,1.03],"6-85-41":[0.61,18.41],"5-42-20":[-10.15,18.41],"6-85-42":[7.34,33.4],"6-85-43":[14.16,42.27],"5-42-21":[7.34,52.91],"6-85-44":[20.8,47.97],"6-85-45":[23.87,56.43],"5-42-22":[20.8,63.5],"6-85-46":[27.26,65.1],"6-85-47":[30.36,73.18],"5-42-23":[27.26,82.14],"6-85-48":[33.17,77.75],"6-85-49":[36.61,78.57],"5-42-24":[33.17,84.88],"6-85-50":[36.35,77.83],"6-85-51":[34.92,75.64],"5-42-25":[34.92,82.95],"6-85-52":[32.62,71.77],"6-85-53":[30.3,66.45],"5-42-26":[30.3,74.05],"6-85-54":[27.35,61.96],"6-85-55":[26.88,470.02],"5-42-27":[26.88,1169.19],"6-85-56":[29.8,2724.67],"6-85-57":[1711.99,2726.3],"5-42-28":[29.8,2971.6],"6-85-58":[1711.99,2693.03],"6-85-59":[2435.24,3395.87],"5-42-29":[1711.99,3405.04],"6-85-60":[3366.59,3894.08],"6-85-61":[3451.49,3860.75],"5-42-30":[3366.59,3894.08],"6-85-62":[3061.9,3477.38],"6-85-63":[-29.54,3064.64],"5-42-31":[-29.54,3477.38],"6-86-0":[13.59,31.92],"6-86-1":[14.49,35.54],"6-86-2":[11.81,372.35],"6-86-3":[3.34,515.4],"6-86-4":[1.06,851.78],"6-86-5":[-8.29,891.68],"6-86-6":[-14.79,-3.6],"6-86-7":[-14.04,414.42],"6-86-8":[-7.9,1361.22],"6-86-9":[-6.91,250.25],"6-86-10":[-12.46,219.71],"6-86-11":[30.07,213.66],"6-86-12":[40.86,217.01],"6-86-13":[-251.81,281.46],"6-86-14":[1.35,248.91],"6-86-15":[3.27,244.16],"6-86-16":[-29.82,713.35],"6-86-17":[-65.15,925.05],"6-86-18":[118.27,769.1],"6-86-19":[259.05,3625.13],"6-86-20":[437.51,4120.59],"6-86-21":[417.86,2348.74],"6-86-22":[-70.2,2575.17],"6-86-23":[-95.29,426.39],"6-86-24":[-105.6,-40.84],"6-86-25":[-120.89,-49.19],"6-86-26":[-133.2,-54.84],"6-86-27":[-143.88,-59.25],"6-86-28":[-150.34,-63.76],"6-86-29":[-151.57,-65.77],"6-86-30":[-150.84,-65.78],"6-86-31":[-149.1,-67.58],"6-86-32":[-147.35,-64],"6-86-33":[-138.48,-57.09],"6-86-34":[-126.92,-47.83],"6-86-35":[-107,-36.76],"6-86-36":[-89.42,-30.07],"6-86-37":[-64.88,-21.06],"6-86-38":[-48.23,209.37],"6-86-39":[-26.28,376.48],"6-86-40":[-11.57,0.81],"6-86-41":[0.26,18.37],"6-86-42":[7.71,27.18],"6-86-43":[12.56,39.03],"6-86-44":[18.37,47.62],"6-86-45":[23.48,52.93],"6-86-46":[25.88,59.58],"6-86-47":[28.88,66.34],"6-86-48":[31.73,72.21],"6-86-49":[35.04,79.61],"6-86-50":[34.66,75.08],"6-86-51":[34.42,72.8],"6-86-52":[31.27,70.56],"6-86-53":[28.81,64.55],"6-86-54":[26.88,60.6],"6-86-55":[24.41,59.6],"6-86-56":[27.96,2407.49],"6-86-57":[1004.17,2407.49],"6-86-58":[953.72,2435.25],"6-86-59":[2297.21,3458.7],"6-86-60":[3395.86,3925.85],"6-86-61":[3477.37,3915.12],"6-86-62":[3064.43,3500.58],"6-86-63":[-29.54,3065.4],"6-87-0":[13.59,31.44],"6-87-1":[14.36,35.37],"5-43-0":[13.59,35.54],"6-87-2":[10.38,28.84],"6-87-3":[2.68,330.3],"5-43-1":[2.68,515.4],"4-21-0":[2.68,601.05],"6-87-4":[-2.16,1077],"6-87-5":[-10.36,397.96],"5-43-2":[-10.36,1077],"6-87-6":[-15.86,38],"6-87-7":[-16.5,1223.93],"5-43-3":[-16.5,1223.93],"4-21-1":[-16.5,1436.73],"3-10-0":[-16.5,1436.73],"6-87-8":[-9.11,1275.39],"6-87-9":[-9.42,200.27],"5-43-4":[-9.42,1361.22],"6-87-10":[-16.29,154.26],"6-87-11":[12.98,142.53],"5-43-5":[-16.29,219.71],"4-21-2":[-77.24,1773.8],"6-87-12":[33.77,210.72],"6-87-13":[8.93,447.9],"5-43-6":[-251.81,447.9],"6-87-14":[78.72,1084.54],"6-87-15":[-9.6,566.99],"5-43-7":[-9.6,1084.54],"4-21-3":[-251.81,1624.4],"3-10-1":[-251.81,1773.8],"6-87-16":[64.29,821.12],"6-87-17":[59.56,2139.17],"5-43-8":[-65.15,2139.17],"6-87-18":[168.8,4103.6],"6-87-19":[306.05,4599.84],"5-43-9":[118.27,4599.84],"4-21-4":[-108.09,4599.84],"6-87-20":[773.43,4772.12],"6-87-21":[-3.55,3524.89],"5-43-10":[-3.55,4772.12],"6-87-22":[-79.15,2437.68],"6-87-23":[-101.84,529.04],"5-43-11":[-101.84,2575.17],"4-21-5":[-257.75,4772.12],"3-10-2":[-257.75,5595.76],"6-87-24":[-118.44,-45.37],"6-87-25":[-141.93,-54.11],"5-43-12":[-141.93,-40.84],"6-87-26":[-150.7,-61.38],"6-87-27":[-163.78,-68.36],"5-43-13":[-163.78,-54.84],"4-21-6":[-163.78,1992.49],"6-87-28":[-170.56,-73.16],"6-87-29":[-174.45,-76.65],"5-43-14":[-174.45,-63.76],"6-87-30":[-173.2,-74.88],"6-87-31":[-167.31,-74.44],"5-43-15":[-173.2,-65.78],"4-21-7":[-174.45,-47.23],"3-10-3":[-174.45,2493.24],"6-87-32":[-162.11,-70.63],"6-87-33":[-151.07,-64.32],"5-43-16":[-162.11,-57.09],"6-87-34":[-139.14,-55.61],"6-87-35":[-119.37,-45.34],"5-43-17":[-139.14,-36.76],"4-21-8":[-162.11,-11.7],"6-87-36":[-99.82,-34.09],"6-87-37":[-73.91,-24.11],"5-43-18":[-99.82,-21.06],"6-87-38":[-54.69,-13.14],"6-87-39":[-30.91,-5.98],"5-43-19":[-54.69,376.48],"4-21-9":[-99.82,810.67],"3-10-4":[-162.11,3059.56],"6-87-40":[-16.87,0.27],"6-87-41":[-1.52,14.6],"5-43-20":[-16.87,18.37],"6-87-42":[5.69,23.57],"6-87-43":[10.55,36.11],"5-43-21":[5.69,39.03],"4-21-10":[-16.87,52.91],"6-87-44":[18.37,45.54],"6-87-45":[20.45,51.47],"5-43-22":[18.37,52.93],"6-87-46":[25.88,56.59],"6-87-47":[28.04,63.44],"5-43-23":[25.88,66.34],"4-21-11":[18.37,82.14],"3-10-5":[-16.87,1977.92],"6-87-48":[31.01,78.85],"6-87-49":[35.15,81.15],"5-43-24":[31.01,81.15],"6-87-50":[34.57,74.84],"6-87-51":[33.74,72.48],"5-43-25":[33.74,75.08],"4-21-12":[31.01,84.88],"6-87-52":[30.61,72.75],"6-87-53":[28.03,63.27],"5-43-26":[28.03,72.75],"6-87-54":[25.92,57.16],"6-87-55":[24.41,55.46],"5-43-27":[24.41,60.6],"4-21-13":[24.41,1169.19],"3-10-6":[10.5,2242.91],"6-87-56":[25.66,1925.54],"6-87-57":[136.32,1897.68],"5-43-28":[25.66,2407.49],"6-87-58":[355.79,2297.22],"6-87-59":[2244.47,3491.07],"5-43-29":[355.79,3491.07],"4-21-14":[25.66,3491.07],"6-87-60":[3458.69,3965.2],"6-87-61":[3500.57,3965.2],"5-43-30":[3395.86,3965.2],"6-87-62":[3065.04,3512.38],"6-87-63":[-29.54,3065.32],"5-43-31":[-29.54,3512.38],"4-21-15":[-29.54,3965.2],"3-10-7":[-29.54,3965.2],"6-88-0":[13.58,31.01],"6-88-1":[13.27,34.8],"6-88-2":[9.6,27.7],"6-88-3":[1.29,19.28],"6-88-4":[-5.14,793.47],"6-88-5":[-12.58,3.96],"6-88-6":[-14.53,64.34],"6-88-7":[-18.34,249.41],"6-88-8":[-13.24,223.3],"6-88-9":[3.21,226.52],"6-88-10":[-20.98,136.47],"6-88-11":[2.46,131.78],"6-88-12":[34.5,332.5],"6-88-13":[145.85,893.06],"6-88-14":[222.12,731.79],"6-88-15":[55.49,447.99],"6-88-16":[49.18,2106.12],"6-88-17":[156.79,5451.96],"6-88-18":[244.11,5411.27],"6-88-19":[361.44,5666.76],"6-88-20":[181.3,4714.77],"6-88-21":[-15.14,3432.07],"6-88-22":[-77.27,1024.24],"6-88-23":[-103.33,403.18],"6-88-24":[-126.49,569.02],"6-88-25":[-152.38,-59.6],"6-88-26":[-167.17,-70.97],"6-88-27":[-179.31,-76.12],"6-88-28":[-187.08,-81.89],"6-88-29":[-189.2,-85.59],"6-88-30":[-189.78,-83.95],"6-88-31":[-187.17,-81.05],"6-88-32":[-180.89,-76.23],"6-88-33":[-170.46,-69.57],"6-88-34":[-155.68,-60.53],"6-88-35":[-133.85,-49.91],"6-88-36":[-111.17,-38.44],"6-88-37":[-86,-27.34],"6-88-38":[-66.93,-16.67],"6-88-39":[-40.72,-8.66],"6-88-40":[-24.16,-1.51],"6-88-41":[-5.67,10.45],"6-88-42":[1.91,19.79],"6-88-43":[7.53,31.3],"6-88-44":[12.64,39.85],"6-88-45":[17.05,49.39],"6-88-46":[21.65,55.46],"6-88-47":[26.11,62.12],"6-88-48":[30.67,79.28],"6-88-49":[-55.82,1713.79],"6-88-50":[33.89,78.24],"6-88-51":[33.4,70.95],"6-88-52":[29.73,72.08],"6-88-53":[27.21,63.18],"6-88-54":[24.13,56.07],"6-88-55":[22.3,50.78],"6-88-56":[16.28,1116.82],"6-88-57":[13.9,1564.5],"6-88-58":[355.79,2295.88],"6-88-59":[2244.13,3490.99],"6-88-60":[3476.04,3997.79],"6-88-61":[3512.37,4001.34],"6-88-62":[3064.8,3523.63],"6-88-63":[-29.54,3065.05],"6-89-0":[13.6,30.41],"6-89-1":[13.24,33.54],"5-44-0":[13.24,34.8],"6-89-2":[9.34,26.43],"6-89-3":[1.06,16.79],"5-44-1":[1.06,27.7],"6-89-4":[-9.36,2.28],"6-89-5":[-14.35,7.89],"5-44-2":[-14.35,793.47],"6-89-6":[-19.83,60.3],"6-89-7":[-28.71,104.27],"5-44-3":[-28.71,249.41],"6-89-8":[-30.59,100.53],"6-89-9":[14.74,139.63],"5-44-4":[-30.59,226.52],"6-89-10":[-23.64,118.52],"6-89-11":[12.07,117.67],"5-44-5":[-23.64,136.47],"6-89-12":[-17.42,204.12],"6-89-13":[-52.7,749.66],"5-44-6":[-52.7,893.06],"6-89-14":[235.46,1122.49],"6-89-15":[163.09,1082.6],"5-44-7":[55.49,1122.49],"6-89-16":[148.14,4445.78],"6-89-17":[252.71,5979.55],"5-44-8":[49.18,5979.55],"6-89-18":[784.14,7425.22],"6-89-20":[59.84,2777.08],"6-89-19":[190.61,7670.17],"5-44-9":[190.61,7670.17],"6-89-21":[3.23,1028.73],"5-44-10":[-15.14,4714.77],"6-89-22":[-10.18,913.48],"6-89-23":[-89.16,1654.1],"5-44-11":[-103.33,1654.1],"6-89-24":[-133.04,1010.35],"6-89-25":[-155.77,598.43],"5-44-12":[-155.77,1010.35],"6-89-26":[-173.23,-75.99],"6-89-27":[-184.16,-67.66],"5-44-13":[-184.16,-67.66],"6-89-28":[-193.17,-72.32],"6-89-29":[-194.63,-67.67],"5-44-14":[-194.63,-67.67],"6-89-30":[-195.24,-67.2],"6-89-31":[-194.81,-43.56],"5-44-15":[-195.24,-43.56],"6-89-32":[-191.21,-78.05],"6-89-33":[-180.97,-40.52],"5-44-16":[-191.21,-40.52],"6-89-34":[-165.05,-37.6],"6-89-35":[-149.67,-56.07],"5-44-17":[-165.05,-37.6],"6-89-36":[-128.73,-45.3],"6-89-37":[-102.87,-34.29],"5-44-18":[-128.73,-27.34],"6-89-38":[-81.85,-22.52],"6-89-39":[-54.75,-12.77],"5-44-19":[-81.85,-8.66],"6-89-40":[-37.19,-4.34],"6-89-41":[-16.37,3.13],"5-44-20":[-37.19,10.45],"6-89-42":[-2.98,13.04],"6-89-43":[4.23,24.34],"5-44-21":[-2.98,31.3],"6-89-44":[9.98,32.16],"6-89-45":[13.89,42.42],"5-44-22":[9.98,49.39],"6-89-46":[21.65,50.58],"6-89-47":[23.2,61.35],"5-44-23":[21.65,62.12],"6-89-48":[28.47,76.1],"6-89-49":[32.48,302.78],"5-44-24":[-55.82,1713.79],"6-89-50":[6.34,315.35],"6-89-51":[32.78,72.05],"5-44-25":[6.34,315.35],"6-89-52":[28.91,68.61],"6-89-53":[26.94,58.88],"5-44-26":[26.94,72.08],"6-89-54":[21.2,53.9],"6-89-55":[21.2,49.06],"5-44-27":[21.2,56.07],"6-89-56":[16.07,392.26],"6-89-57":[13.9,1769.28],"5-44-28":[13.9,1769.28],"6-89-58":[1383.42,2436.17],"6-89-59":[2295.87,3484.93],"5-44-29":[355.79,3490.99],"6-89-60":[3476.04,4020.7],"6-89-61":[3523.62,4020.7],"5-44-30":[3476.04,4020.7],"6-89-62":[3063.59,3529.73],"6-89-63":[-29.54,3064.81],"5-44-31":[-29.54,3529.73],"6-90-0":[13.56,29.93],"6-90-1":[12.18,32.39],"6-90-2":[9.21,25.5],"6-90-3":[0.25,16.06],"6-90-4":[-11.93,1.31],"6-90-5":[-15.18,-4.47],"6-90-6":[-19.83,102.14],"6-90-7":[-28.89,97.21],"6-90-8":[-30.59,91.65],"6-90-9":[11.33,169.41],"6-90-10":[-26.48,102.52],"6-90-11":[16.21,130.71],"6-90-12":[-4.57,132.71],"6-90-13":[-44.99,965.27],"6-90-14":[341.61,1507.27],"6-90-15":[71.29,1151.88],"6-90-16":[241.76,4807.35],"6-90-17":[805.57,6513.21],"6-90-18":[1232.72,7543.41],"6-90-20":[101.67,5343.32],"6-90-21":[81.23,447.8],"6-90-22":[129.06,998],"6-90-19":[396.49,8087.96],"6-90-23":[-71.01,1264.93],"6-90-24":[-72.08,1499.22],"6-90-25":[-97.09,1527.78],"6-90-26":[-172.11,969.76],"6-90-27":[-189.5,1943.78],"6-90-28":[-199.61,132.05],"6-90-29":[-204.11,-76.78],"6-90-30":[-205.07,-73.55],"6-90-31":[-204.43,-69.28],"6-90-32":[-200.91,-74.1],"6-90-33":[-190.7,-82.52],"6-90-34":[-178.25,-74.83],"6-90-35":[-156.76,-64.37],"6-90-36":[-137.02,-52.73],"6-90-37":[-110.72,-40.93],"6-90-38":[-90.74,-28.8],"6-90-39":[-64.94,-19.04],"6-90-40":[-47.65,-9.27],"6-90-41":[-26.36,-1.84],"6-90-42":[-11.95,7.04],"6-90-43":[1.09,18.97],"6-90-44":[6.57,26.74],"6-90-45":[11.56,36.44],"6-90-46":[16.22,45.25],"6-90-47":[21.29,56.94],"6-90-48":[26.15,64.98],"6-90-49":[29.48,73.84],"6-90-50":[27.75,2779.41],"6-90-51":[30.57,74.05],"6-90-52":[29.34,65.8],"6-90-53":[23.63,58.34],"6-90-54":[20.44,50.44],"6-90-55":[17.32,44.95],"6-90-56":[15.75,1525.64],"6-90-57":[392.25,2210.25],"6-90-58":[1769.27,2619.19],"6-90-59":[2436.16,3487.6],"6-90-60":[3484.48,4037.87],"6-90-61":[3527.59,4030.9],"6-90-62":[3063.36,3530.31],"6-90-63":[-29.54,3064.82],"6-91-0":[13.58,29.33],"6-91-1":[12.18,31.01],"5-45-0":[12.18,32.39],"6-91-2":[8.56,24.24],"6-91-3":[-0.35,15.89],"5-45-1":[-0.35,25.5],"4-22-0":[-0.35,34.8],"6-91-4":[-13.02,0.37],"6-91-5":[-17.46,-5.58],"5-45-2":[-17.46,1.31],"6-91-6":[-20,102],"6-91-7":[-29.05,103.01],"5-45-3":[-29.05,103.01],"4-22-1":[-29.05,793.47],"6-91-8":[-29.05,81.75],"6-91-9":[-9.54,122.72],"5-45-4":[-30.59,169.41],"6-91-10":[-28.84,110.81],"6-91-11":[16.8,118.68],"5-45-5":[-28.84,130.71],"4-22-2":[-30.59,226.52],"6-91-12":[41.21,133.68],"6-91-13":[17.89,487.76],"5-45-6":[-44.99,965.27],"6-91-14":[131.95,1504.92],"6-91-15":[271.47,1384.81],"5-45-7":[71.29,1507.27],"4-22-3":[-52.7,1507.27],"6-91-16":[329.52,4930.95],"6-91-17":[1039.82,5827.63],"5-45-8":[241.76,6513.21],"6-91-18":[1051.98,6379.76],"6-91-19":[2249.39,8560.58],"5-45-9":[396.49,8560.58],"4-22-4":[49.18,8560.58],"6-91-20":[176.06,6725.08],"6-91-21":[96.74,4563.58],"5-45-10":[81.23,6725.08],"6-91-22":[31.65,732.76],"6-91-23":[133.09,994.23],"5-45-11":[-71.01,1264.93],"4-22-5":[-103.33,6725.08],"6-91-24":[88.59,1273.26],"6-91-25":[133.67,698.38],"5-45-12":[-97.09,1527.78],"6-91-26":[29.03,1069.77],"6-91-27":[-98.98,2543.22],"5-45-13":[-189.5,2543.22],"4-22-6":[-189.5,2543.22],"6-91-28":[-197.25,2590.24],"6-91-29":[-213.05,1544.94],"5-45-14":[-213.05,2590.24],"6-91-30":[-213.9,-102.05],"6-91-31":[-208.09,-100.58],"5-45-15":[-213.9,-69.28],"4-22-7":[-213.9,2590.24],"6-91-32":[-205.64,-96.41],"6-91-33":[-194.02,-89.47],"5-45-16":[-205.64,-74.1],"6-91-34":[-182.42,-79.86],"6-91-35":[-161.36,-69.08],"5-45-17":[-182.42,-64.37],"4-22-8":[-205.64,-37.6],"6-91-36":[-142.2,-57.49],"6-91-37":[-116.73,-45.58],"5-45-18":[-142.2,-40.93],"6-91-38":[-98.13,-34.54],"6-91-39":[-76.39,-24.5],"5-45-19":[-98.13,-19.04],"4-22-9":[-142.2,-8.66],"6-91-40":[-59.57,-14.97],"6-91-41":[-39.69,-6.64],"5-45-20":[-59.57,-1.84],"6-91-42":[-24.55,1.1],"6-91-43":[-6.24,12.33],"5-45-21":[-24.55,18.97],"4-22-10":[-59.57,31.3],"6-91-44":[3.69,23.13],"6-91-45":[-0.46,882.59],"5-45-22":[-0.46,882.59],"6-91-46":[14.12,40.84],"6-91-47":[18.73,51.83],"5-45-23":[14.12,56.94],"4-22-11":[-0.46,882.59],"6-91-48":[26.15,57.63],"6-91-49":[26.58,64.22],"5-45-24":[26.15,73.84],"6-91-50":[28.51,71.32],"6-91-51":[27.46,68.43],"5-45-25":[27.46,2779.41],"4-22-12":[-55.82,2779.41],"6-91-52":[27.54,61.22],"6-91-53":[23.63,57.26],"5-45-26":[23.63,65.8],"6-91-54":[18.37,46.65],"6-91-55":[17.3,38.66],"5-45-27":[17.3,50.44],"4-22-13":[17.3,72.08],"6-91-56":[15.75,1873.55],"6-91-57":[1472.92,2662.65],"5-45-28":[15.75,2662.65],"6-91-58":[2210.24,2841.83],"6-91-59":[2619.18,3506.71],"5-45-29":[1769.27,3506.71],"4-22-14":[13.9,3506.71],"6-91-60":[3487.59,4042.04],"6-91-61":[3516.4,4030.73],"5-45-30":[3484.48,4042.04],"6-91-62":[3063.05,3527.6],"6-91-63":[-29.54,3066.42],"5-45-31":[-29.54,3530.31],"4-22-15":[-29.54,4042.04],"6-92-0":[13.55,28.88],"6-92-1":[11.24,30.24],"6-92-2":[7.88,23.28],"6-92-3":[-1.45,283.89],"6-92-4":[-12.53,-0.34],"6-92-5":[-17.94,255.31],"6-92-6":[-21.31,243.75],"6-92-7":[-24.37,117.76],"6-92-8":[-24.37,64.43],"6-92-9":[-19.87,203.65],"6-92-10":[-30.16,114.52],"6-92-11":[9.32,125.15],"6-92-12":[63.09,235.48],"6-92-13":[48.15,478.3],"6-92-14":[109.62,1419.87],"6-92-15":[276.31,4532.62],"6-92-16":[432.35,6633.62],"6-92-17":[908.55,7087.4],"6-92-18":[1029.39,4976.93],"6-92-19":[1276.56,7022.3],"6-92-20":[2453.79,7194.47],"6-92-21":[35.37,7787.57],"6-92-22":[-15.2,295.99],"6-92-23":[-6.93,1069.67],"6-92-24":[29.9,1095.71],"6-92-25":[-88.56,1197.87],"6-92-26":[-182.75,1006.73],"6-92-27":[-197.07,1132.42],"6-92-28":[-198.18,434.8],"6-92-29":[-212.75,2430.45],"6-92-30":[-213.9,-101.01],"6-92-31":[-207.87,-100.16],"6-92-32":[-205.79,-94.42],"6-92-33":[-195,-88.59],"6-92-34":[-182.48,-79.41],"6-92-35":[-161.34,-70.63],"6-92-36":[-142.37,-59.67],"6-92-37":[-120.53,-49.07],"6-92-38":[-104.92,-39.42],"6-92-39":[-84.27,-29.78],"6-92-40":[-67.56,-20.85],"6-92-41":[-47.53,-12.67],"6-92-42":[-33.56,-4.07],"6-92-43":[-15.92,6.04],"6-92-44":[-3.11,19.27],"6-92-45":[3.14,28.24],"6-92-46":[9.41,36.29],"6-92-47":[15.61,46.42],"6-92-48":[19.59,52.39],"6-92-49":[23.34,58.26],"6-92-50":[24.55,61.51],"6-92-51":[20.83,56.57],"6-92-52":[20.97,56.29],"6-92-53":[20.93,53.7],"6-92-54":[15.67,43.92],"6-92-55":[14.25,36.25],"6-92-56":[15.39,2339.17],"6-92-57":[1873.54,2935.32],"6-92-58":[2662.64,3173.47],"6-92-59":[2841.82,3593.63],"6-92-60":[3506.7,4042.04],"6-92-61":[3499.19,4001.04],"6-92-62":[3062.85,3516.41],"6-92-63":[-29.54,3066.46],"6-93-0":[13.56,28.31],"6-93-1":[11.24,29.45],"5-46-0":[11.24,30.24],"6-93-2":[7.36,22.43],"6-93-3":[-1.93,13.28],"5-46-1":[-1.93,283.89],"6-93-4":[-12.52,9.42],"6-93-5":[-19.04,346.14],"5-46-2":[-19.04,346.14],"6-93-6":[-25.93,405.51],"6-93-7":[-28.7,174.16],"5-46-3":[-28.7,405.51],"6-93-8":[-19.06,149.97],"6-93-9":[-3.71,236.06],"5-46-4":[-24.37,236.06],"6-93-10":[-30.26,155.46],"6-93-11":[10.19,162.81],"5-46-5":[-30.26,162.81],"6-93-12":[-1.52,446.71],"6-93-13":[73.33,2380.4],"5-46-6":[-1.52,2380.4],"6-93-14":[23.35,2712],"6-93-15":[124.82,3961.77],"5-46-7":[23.35,4532.62],"6-93-16":[105.62,5107.74],"6-93-17":[837.93,3794.4],"5-46-8":[105.62,7087.4],"6-93-18":[954.9,6062.91],"6-93-19":[1693.3,6911.73],"5-46-9":[954.9,7022.3],"6-93-20":[4293.12,6600.18],"6-93-21":[81.18,8103.55],"5-46-10":[35.37,8103.55],"6-93-22":[-46.13,2512.35],"6-93-23":[-31.32,1178.46],"5-46-11":[-46.13,2512.35],"6-93-24":[-19.46,1262.43],"6-93-25":[-161.45,1608.79],"5-46-12":[-161.45,1608.79],"6-93-26":[-181.92,-37.98],"6-93-27":[-194.57,-86.28],"5-46-13":[-197.07,1132.42],"6-93-28":[-196.82,-88.67],"6-93-29":[-203.21,351.9],"5-46-14":[-212.75,2430.45],"6-93-30":[-206.92,-92.98],"6-93-31":[-203.79,-91.46],"5-46-15":[-213.9,-91.46],"6-93-32":[-197.97,-88.46],"6-93-33":[-185.94,-84.21],"5-46-16":[-205.79,-84.21],"6-93-34":[-175.59,-76.82],"6-93-35":[-155.42,-69.13],"5-46-17":[-182.48,-69.13],"6-93-36":[-142.66,-61.65],"6-93-37":[-126.46,-53.23],"5-46-18":[-142.66,-49.07],"6-93-38":[-113.57,-44.2],"6-93-39":[-92.35,-34.33],"5-46-19":[-113.57,-29.78],"6-93-40":[-75.45,-25.32],"6-93-41":[-57.43,-17.51],"5-46-20":[-75.45,-12.67],"6-93-42":[-43.87,-9.49],"6-93-43":[-26.53,-2.26],"5-46-21":[-43.87,6.04],"6-93-44":[-14.66,3.69],"6-93-45":[-1.24,17.7],"5-46-22":[-14.66,28.24],"6-93-46":[5.93,28.99],"6-93-47":[11.24,38.3],"5-46-23":[5.93,46.42],"6-93-48":[19.38,44.79],"6-93-49":[19.38,49.77],"5-46-24":[19.38,58.26],"6-93-50":[20.9,50.43],"6-93-51":[20.83,47.65],"5-46-25":[20.83,61.51],"6-93-52":[18.26,48.46],"6-93-53":[18.26,48.79],"5-46-26":[18.26,56.29],"6-93-54":[14.04,41],"6-93-55":[13.54,635.17],"5-46-27":[13.54,635.17],"6-93-56":[15.52,2519.02],"6-93-57":[2339.16,3197.54],"5-46-28":[15.39,3197.54],"6-93-58":[2935.31,3364.13],"6-93-59":[3109.51,3621.13],"5-46-29":[2662.64,3621.13],"6-93-60":[3593.62,4025.51],"6-93-61":[3480.01,3923.74],"5-46-30":[3480.01,4042.04],"6-93-62":[3063.46,3499.2],"6-93-63":[-29.54,3067.15],"5-46-31":[-29.54,3516.41],"6-94-0":[13.47,27.85],"6-94-1":[10.93,28.85],"6-94-2":[6.21,22.12],"6-94-3":[-2.74,11.48],"6-94-4":[-13.52,-1.43],"6-94-5":[-19.79,311.63],"6-94-6":[-11.52,248.42],"6-94-7":[-28.7,355.11],"6-94-8":[-17.9,176.8],"6-94-9":[-7.94,232.96],"6-94-10":[-30.83,204.28],"6-94-11":[21.88,252.1],"6-94-12":[-18.21,544.69],"6-94-13":[103.65,2652.03],"6-94-14":[329.84,4375.85],"6-94-15":[163.35,3786.97],"6-94-16":[217.97,5220.28],"6-94-17":[745.63,3644.02],"6-94-18":[804.64,6686.7],"6-94-19":[4212.17,6437.5],"6-94-20":[4352.91,6733.83],"6-94-21":[458.23,8019.76],"6-94-22":[-62.15,8777.15],"6-94-23":[-49.51,1317.62],"6-94-24":[-131.49,1124.07],"6-94-25":[-161,1331.06],"6-94-26":[-174.06,-73.06],"6-94-27":[-177.34,-76.23],"6-94-28":[-181.5,-77.26],"6-94-29":[-187.4,-77.29],"6-94-30":[-187.32,-78.62],"6-94-31":[-187.52,-78.17],"6-94-32":[-182.92,-76.46],"6-94-33":[-176.4,-74.65],"6-94-34":[-168.43,-71.13],"6-94-35":[-151.14,-67.72],"6-94-36":[-139.6,-60.57],"6-94-37":[-126.46,-54.12],"6-94-38":[-114.22,-45.3],"6-94-39":[-93.08,-37.72],"6-94-40":[-77.95,-29.61],"6-94-41":[-61.78,-22.17],"6-94-42":[-50.7,-14.14],"6-94-43":[-33.49,-7.53],"6-94-44":[-21.33,-1.23],"6-94-45":[-8.99,10.6],"6-94-46":[0.56,21.41],"6-94-47":[7.51,31.9],"6-94-48":[11.75,38.12],"6-94-49":[15.47,42.62],"6-94-50":[16.83,42.88],"6-94-51":[15.6,40.98],"6-94-52":[12.93,36.12],"6-94-53":[11.48,39.7],"6-94-54":[10.61,32.65],"6-94-55":[10.62,1029.1],"6-94-56":[635.16,2637.61],"6-94-57":[2519.01,3300.48],"6-94-58":[3197.53,3450.97],"6-94-59":[3321.28,3672.41],"6-94-60":[3621.12,3954.97],"6-94-61":[3420.25,3850.88],"6-94-62":[3064.94,3480.02],"6-94-63":[-29.54,3067.91],"6-95-0":[13.31,27.3],"6-95-1":[10.93,27.94],"5-47-0":[10.93,28.85],"6-95-2":[6.2,21.84],"6-95-3":[-3.28,10.22],"5-47-1":[-3.28,22.12],"4-23-0":[-3.28,283.89],"6-95-4":[-13.57,46.56],"6-95-5":[-14.69,348.59],"5-47-2":[-19.79,348.59],"6-95-6":[-9.39,401.33],"6-95-7":[-9.94,941.07],"5-47-3":[-28.7,941.07],"4-23-1":[-28.7,941.07],"3-11-0":[-29.05,941.07],"6-95-8":[-21.59,733.23],"6-95-9":[-13.86,628.73],"5-47-4":[-21.59,733.23],"6-95-10":[-32.57,242.85],"6-95-11":[53.1,262.78],"5-47-5":[-32.57,262.78],"4-23-2":[-32.57,733.23],"6-95-12":[74.14,2173.74],"6-95-13":[176.51,3529.7],"5-47-6":[-18.21,3529.7],"6-95-14":[474.07,4279.84],"6-95-15":[301.44,3328.41],"5-47-7":[163.35,4375.85],"4-23-3":[-18.21,4532.62],"3-11-1":[-52.7,4532.62],"2-5-0":[-251.81,4532.62],"6-95-16":[-260.5,4987.09],"6-95-17":[619.6,2654.79],"5-47-8":[-260.5,5220.28],"6-95-18":[731.86,6201.27],"6-95-19":[4444.41,6890.4],"5-47-9":[731.86,6890.4],"4-23-4":[-260.5,7087.4],"6-95-20":[4425.14,6254.63],"6-95-21":[988.33,7070.27],"5-47-10":[458.23,8019.76],"6-95-22":[-69.58,8478.4],"6-95-23":[-139.77,533.63],"5-47-11":[-139.77,8777.15],"4-23-5":[-139.77,8777.15],"3-11-2":[-260.5,8777.15],"6-95-24":[-131.42,26.16],"6-95-25":[-146.13,-61.4],"5-47-12":[-161,1331.06],"6-95-26":[-150.96,-63.4],"6-95-27":[-152.36,-64.19],"5-47-13":[-177.34,-63.4],"4-23-6":[-197.07,1608.79],"6-95-28":[-152.61,-62.12],"6-95-29":[-153.05,-59.77],"5-47-14":[-187.4,-59.77],"6-95-30":[-153.22,-59.81],"6-95-31":[-153.97,-60.33],"5-47-15":[-187.52,-59.81],"4-23-7":[-213.9,2430.45],"3-11-3":[-213.9,2590.24],"2-5-1":[-260.5,8777.15],"1-2-0":[-398.55,8777.15],"6-95-32":[-153.84,-61.96],"6-95-33":[-150.16,-62.76],"5-47-16":[-182.92,-61.96],"6-95-34":[-147.07,-63.18],"6-95-35":[-139.29,-62.21],"5-47-17":[-168.43,-62.21],"4-23-8":[-205.79,-61.96],"6-95-36":[-135.36,-58.3],"6-95-37":[-121.04,-51.25],"5-47-18":[-139.6,-51.25],"6-95-38":[-111.37,-44.8],"6-95-39":[-96.39,-38.31],"5-47-19":[-114.22,-37.72],"4-23-9":[-142.66,-29.78],"3-11-4":[-205.79,-8.66],"6-95-40":[-87.28,-30.97],"6-95-41":[-73.3,-25.9],"5-47-20":[-87.28,-22.17],"6-95-42":[-61.25,-17.39],"6-95-43":[-45.22,-11.38],"5-47-21":[-61.25,-7.53],"4-23-10":[-87.28,6.04],"6-95-44":[-34.87,-6.02],"6-95-45":[-20.9,0.57],"5-47-22":[-34.87,10.6],"6-95-46":[-8.31,12.66],"6-95-47":[2.81,22.59],"5-47-23":[-8.31,31.9],"4-23-11":[-34.87,46.42],"3-11-5":[-87.28,882.59],"2-5-2":[-205.79,3059.56],"6-95-48":[11.13,29.29],"6-95-49":[11.13,33.22],"5-47-24":[11.13,42.62],"6-95-50":[13.37,33.58],"6-95-51":[13.37,32.64],"5-47-25":[13.37,42.88],"4-23-12":[11.13,61.51],"6-95-52":[10.23,30.49],"6-95-53":[10.23,23.8],"5-47-26":[10.23,39.7],"6-95-54":[6.78,21.99],"6-95-55":[6.78,1290.06],"5-47-27":[6.78,1290.06],"4-23-13":[6.78,1290.06],"3-11-6":[-55.82,2779.41],"6-95-56":[1007.52,2688.65],"6-95-57":[2637.6,3479.02],"5-47-28":[635.16,3479.02],"6-95-58":[3300.47,3627.63],"6-95-59":[3450.96,3738.39],"5-47-29":[3197.53,3738.39],"4-23-14":[15.39,3738.39],"6-95-60":[3672.4,3883.62],"6-95-61":[3372.97,3781.94],"5-47-30":[3372.97,3954.97],"6-95-62":[3066.6,3420.26],"6-95-63":[-29.54,3069.78],"5-47-31":[-29.54,3480.02],"4-23-15":[-29.54,4042.04],"3-11-7":[-29.54,4042.04],"2-5-3":[-55.82,4042.04],"1-2-1":[-242.83,5869.55],"6-96-0":[13.05,27.12],"6-96-1":[10.66,27.25],"6-96-2":[6.32,21.6],"6-96-3":[-3.81,327.9],"6-96-4":[-13.97,41.97],"6-96-5":[-14.52,491.93],"6-96-6":[-12.84,766.61],"6-96-7":[15.52,1577.7],"6-96-8":[23.06,974.81],"6-96-9":[0.51,751.03],"6-96-10":[-32.17,917.02],"6-96-11":[22.51,457.27],"6-96-12":[87.23,1266.17],"6-96-13":[216.38,3266],"6-96-14":[707.82,4151.48],"6-96-15":[820.5,4116.23],"6-96-16":[-31.39,3824.31],"6-96-17":[290.2,2504.01],"6-96-18":[1263.81,5909.96],"6-96-19":[3248.18,6767.17],"6-96-20":[4109.93,6522.84],"6-96-21":[2989.51,7463.69],"6-96-22":[-83.69,7512.84],"6-96-23":[-109,1663.78],"6-96-24":[-122.52,1062.24],"6-96-25":[-126.56,-53.86],"6-96-26":[-128.85,-59.44],"6-96-27":[-129.38,407.51],"6-96-28":[-128.18,114.95],"6-96-29":[-123.94,-53.59],"6-96-30":[-121.58,-48.89],"6-96-31":[-126.69,-47.66],"6-96-32":[-127.67,-47.94],"6-96-33":[-128.62,-48.79],"6-96-34":[-129.46,-51.46],"6-96-35":[-129.43,-54.63],"6-96-36":[-128.76,-55.19],"6-96-37":[-118.48,-52.16],"6-96-38":[-109.45,-47.88],"6-96-39":[-96.5,-43.64],"6-96-40":[-90.53,-37.51],"6-96-41":[-79.29,-30.63],"6-96-42":[-69.21,-23.04],"6-96-43":[-55.83,-17.8],"6-96-44":[-44.21,-11.23],"6-96-45":[-29.81,-4.63],"6-96-46":[-17.32,4.18],"6-96-47":[-2.33,15.19],"6-96-48":[3,21.54],"6-96-49":[6.76,26.13],"6-96-50":[9.32,27.61],"6-96-51":[9.2,26.58],"6-96-52":[7.16,26.06],"6-96-53":[2.39,19.5],"6-96-54":[2.39,14.94],"6-96-55":[3.38,1584.77],"6-96-56":[1290.05,2802.12],"6-96-57":[2688.64,3518.93],"6-96-58":[3479.01,3704.38],"6-96-59":[3627.62,3756.39],"6-96-60":[3652.33,3799.9],"6-96-61":[3341.14,3696.84],"6-96-62":[3068.58,3372.98],"6-96-63":[-29.54,3073.17],"6-97-0":[12.85,27.04],"6-97-1":[10.66,26.67],"5-48-0":[10.66,27.25],"6-97-2":[5.88,21.3],"6-97-3":[-5.43,785.33],"5-48-1":[-5.43,785.33],"6-97-4":[-15.46,476.72],"6-97-5":[-7.89,604.4],"5-48-2":[-15.46,604.4],"6-97-6":[-13.92,806.23],"6-97-7":[44.76,1618.98],"5-48-3":[-13.92,1618.98],"6-97-8":[91.31,1177.41],"6-97-9":[10.89,764.98],"5-48-4":[0.51,1177.41],"6-97-10":[-24.59,1092.04],"6-97-11":[-3.1,823.06],"5-48-5":[-32.17,1092.04],"6-97-12":[74.37,2561.56],"6-97-13":[260.85,2677.49],"5-48-6":[74.37,3266],"6-97-14":[697.66,2882.06],"6-97-15":[906.92,4155.27],"5-48-7":[697.66,4155.27],"6-97-16":[219.52,4825.04],"6-97-17":[271.2,4733.64],"5-48-8":[-31.39,4825.04],"6-97-18":[2241.79,5772.12],"6-97-19":[2644.39,6131.65],"5-48-9":[1263.81,6767.17],"6-97-20":[3253.98,6237.58],"6-97-21":[107.58,7221.31],"5-48-10":[107.58,7463.69],"6-97-22":[-53.33,5335.5],"6-97-23":[-92.67,2777.96],"5-48-11":[-109,7512.84],"6-97-24":[-99.38,3021.9],"6-97-25":[-120.76,1489.97],"5-48-12":[-126.56,3021.9],"6-97-26":[-124.46,365.67],"6-97-27":[-120.57,671.16],"5-48-13":[-129.38,671.16],"6-97-28":[-127.91,253.16],"6-97-29":[-120.45,634.69],"5-48-14":[-128.18,634.69],"6-97-30":[-106.53,2140.29],"6-97-31":[-94.44,-30.37],"5-48-15":[-126.69,2140.29],"6-97-32":[-93.37,-30.41],"6-97-33":[-100.58,-33.35],"5-48-16":[-128.62,-30.41],"6-97-34":[-105.96,-38.16],"6-97-35":[-109.16,-42.72],"5-48-17":[-129.46,-38.16],"6-97-36":[-110.94,-44.59],"6-97-37":[-107.55,-47.06],"5-48-18":[-128.76,-44.59],"6-97-38":[-103.96,-48.28],"6-97-39":[-97.49,-45.28],"5-48-19":[-109.45,-43.64],"6-97-40":[-91.36,-40.59],"6-97-41":[-84.52,-34.82],"5-48-20":[-91.36,-30.63],"6-97-42":[-74.46,-27.37],"6-97-43":[-60.54,-22.77],"5-48-21":[-74.46,-17.8],"6-97-44":[-55.82,-16.33],"6-97-45":[-41.68,-9.34],"5-48-22":[-55.82,-4.63],"6-97-46":[-29.34,-2.32],"6-97-47":[-13.57,4.79],"5-48-23":[-29.34,15.19],"6-97-48":[-3.72,11.69],"6-97-49":[2.56,17.71],"5-48-24":[-3.72,26.13],"6-97-50":[5.93,18.3],"6-97-51":[6.01,18.13],"5-48-25":[5.93,27.61],"6-97-52":[3.78,17.87],"6-97-53":[-1.51,12.15],"5-48-26":[-1.51,26.06],"6-97-54":[-2.2,7.25],"6-97-55":[-0.05,1584.77],"5-48-27":[-2.2,1584.77],"6-97-56":[1497.42,2824.51],"6-97-57":[2802.11,3500.23],"5-48-28":[1290.05,3518.93],"6-97-58":[3409.99,3719.54],"6-97-59":[3704.37,3755.97],"5-48-29":[3409.99,3756.39],"6-97-60":[3612.81,3775.22],"6-97-61":[3317.34,3652.34],"5-48-30":[3317.34,3799.9],"6-97-62":[3069.22,3341.15],"6-97-63":[-29.54,3074.67],"5-48-31":[-29.54,3372.98],"6-98-0":[12.57,27.03],"6-98-1":[10.26,26.35],"6-98-2":[4.57,21],"6-98-3":[-6.42,915.41],"6-98-4":[-16.48,237.04],"6-98-5":[-7.98,810.48],"6-98-6":[-11.47,688.57],"6-98-7":[12.53,1569.96],"6-98-8":[124.42,1090.5],"6-98-9":[50.44,887.64],"6-98-10":[-27,775.1],"6-98-11":[69.08,615.55],"6-98-12":[151.22,2887.36],"6-98-13":[660.12,2999.01],"6-98-14":[1179.37,3482.56],"6-98-15":[1006.26,3928.85],"6-98-16":[422.97,2953.75],"6-98-17":[1074.68,5415.08],"6-98-18":[2272.72,5725.81],"6-98-19":[2617.61,5462.57],"6-98-20":[3023.42,5731.48],"6-98-21":[133.36,6535.05],"6-98-22":[23.08,5106.11],"6-98-23":[12.3,3346.34],"6-98-24":[-17.38,2464.8],"6-98-25":[-86.67,2574.03],"6-98-26":[-135.7,1748.97],"6-98-27":[-96.39,1498.37],"6-98-28":[-92.56,1085.71],"6-98-29":[-80.53,550.46],"6-98-30":[-71.73,3433.72],"6-98-31":[-71.07,1843.03],"6-98-32":[-66.71,243],"6-98-33":[-76.31,-20.39],"6-98-34":[-86.19,-23.44],"6-98-35":[-91.28,-29.19],"6-98-36":[-94.14,-13.36],"6-98-37":[-101.07,-41.41],"6-98-38":[-100.77,-44.67],"6-98-39":[-96.25,-45.32],"6-98-40":[-93.34,-42.41],"6-98-41":[-85,-35.94],"6-98-42":[-76.44,-31.6],"6-98-43":[-68.5,-27.91],"6-98-44":[-62.86,-21.68],"6-98-45":[-50.56,-14.99],"6-98-46":[-38.51,-7.65],"6-98-47":[-23.36,-2.19],"6-98-48":[-12.63,4.07],"6-98-49":[-1.83,10.05],"6-98-50":[0.77,11.74],"6-98-51":[1.97,12.17],"6-98-52":[-0.24,11.35],"6-98-53":[-6.56,6.36],"6-98-54":[-6.92,6.59],"6-98-55":[-6.32,1715.72],"6-98-56":[1527.57,2802.84],"6-98-57":[2705.17,3410],"6-98-58":[3387.34,3708.3],"6-98-59":[3611.48,3736.73],"6-98-60":[3543.29,3737.71],"6-98-61":[3284.66,3612.82],"6-98-62":[3070.76,3317.35],"6-98-63":[-29.54,3075.47],"6-99-0":[12.31,27.01],"6-99-1":[10.26,25.84],"5-49-0":[10.26,27.03],"6-99-2":[4.57,20.48],"6-99-3":[-6.18,969.4],"5-49-1":[-6.42,969.4],"4-24-0":[-6.42,969.4],"6-99-4":[-16.18,517.22],"6-99-5":[-8.15,590],"5-49-2":[-16.48,810.48],"6-99-6":[-11.65,855.64],"6-99-7":[102.24,1354.63],"5-49-3":[-11.65,1569.96],"4-24-1":[-16.48,1618.98],"6-99-8":[120.14,1086.98],"6-99-9":[86.63,868.73],"5-49-4":[50.44,1090.5],"6-99-10":[-31.02,599.89],"6-99-11":[80.02,729.83],"5-49-5":[-31.02,775.1],"4-24-2":[-32.17,1177.41],"6-99-12":[187.08,2274.47],"6-99-13":[527.52,3424.72],"5-49-6":[151.22,3424.72],"6-99-14":[1035.39,3181.14],"6-99-15":[1160.58,3821.64],"5-49-7":[1006.26,3928.85],"4-24-3":[74.37,4155.27],"6-99-16":[637.58,3902.64],"6-99-17":[836.31,3828.18],"5-49-8":[422.97,5415.08],"6-99-18":[1288.02,5499.12],"6-99-19":[2175.47,6216.6],"5-49-9":[1288.02,6216.6],"4-24-4":[-31.39,6767.17],"6-99-20":[2779.55,6063.79],"6-99-21":[1586.78,6434.65],"5-49-10":[133.36,6535.05],"6-99-22":[657.1,5432.09],"6-99-23":[300.67,3530.75],"5-49-11":[12.3,5432.09],"4-24-5":[-109,7512.84],"6-99-24":[129.64,2554.75],"6-99-25":[-17.17,2536.99],"5-49-12":[-86.67,2574.03],"6-99-26":[-78.1,2080.04],"6-99-27":[-90.57,2009.72],"5-49-13":[-135.7,2080.04],"4-24-6":[-135.7,3021.9],"6-99-28":[-65.06,1760.05],"6-99-29":[-72.95,1543.06],"5-49-14":[-92.56,1760.05],"6-99-30":[-57.01,2251.47],"6-99-31":[-38.89,2884.86],"5-49-15":[-71.73,3433.72],"4-24-7":[-128.18,3433.72],"6-99-32":[-81.91,3098.13],"6-99-33":[-45.75,302.5],"5-49-16":[-81.91,3098.13],"6-99-34":[-54.35,-15.47],"6-99-35":[-71.17,-18.5],"5-49-17":[-91.28,-15.47],"4-24-8":[-129.46,3098.13],"6-99-36":[-82.83,-25.9],"6-99-37":[-88.25,-33.31],"5-49-18":[-101.07,-13.36],"6-99-38":[-94.27,-41.22],"6-99-39":[-95.18,-42.76],"5-49-19":[-100.77,-41.22],"4-24-9":[-128.76,-13.36],"6-99-40":[-92.2,-40.17],"6-99-41":[-83.68,-35.94],"5-49-20":[-93.34,-35.94],"6-99-42":[-78.69,-34.93],"6-99-43":[-74.99,-31.99],"5-49-21":[-78.69,-27.91],"4-24-10":[-93.34,-17.8],"6-99-44":[-72.56,-26.45],"6-99-45":[-59.76,-19.83],"5-49-22":[-72.56,-14.99],"6-99-46":[-48.96,-13.12],"6-99-47":[-34.76,-6.95],"5-49-23":[-48.96,-2.19],"4-24-11":[-72.56,15.19],"6-99-48":[-22.48,-1.82],"6-99-49":[-11.77,0.78],"5-49-24":[-22.48,10.05],"6-99-50":[-6.68,3.52],"6-99-51":[-3.06,3.63],"5-49-25":[-6.68,12.17],"4-24-12":[-22.48,27.61],"6-99-52":[-6.11,2.94],"6-99-53":[-14.49,-0.23],"5-49-26":[-14.49,11.35],"6-99-54":[-16.12,2.4],"6-99-55":[-5.53,1741.17],"5-49-27":[-16.12,1741.17],"4-24-13":[-16.12,1741.17],"6-99-56":[1318.62,2705.18],"6-99-57":[2640.6,3387.35],"5-49-28":[1318.62,3410],"6-99-58":[3292.46,3611.49],"6-99-59":[3525.75,3694.95],"5-49-29":[3292.46,3736.73],"4-24-14":[1290.05,3756.39],"6-99-60":[3433.71,3696.05],"6-99-61":[3240.36,3543.3],"5-49-30":[3240.36,3737.71],"6-99-62":[3070.72,3284.67],"6-99-63":[-29.54,3075.96],"5-49-31":[-29.54,3317.35],"4-24-15":[-29.54,3799.9],"6-100-0":[12.14,26.99],"6-100-1":[10.27,25.24],"6-100-2":[3.43,20.53],"6-100-3":[-0.76,788.17],"6-100-4":[-13.05,864.96],"6-100-5":[-6.27,624.53],"6-100-6":[-13.4,737.36],"6-100-7":[45.51,676.85],"6-100-8":[147.98,958.88],"6-100-9":[114.45,855.83],"6-100-10":[-24.8,555.66],"6-100-11":[130.97,852.88],"6-100-12":[253.49,918],"6-100-13":[346.44,3194.59],"6-100-14":[732.53,2295.19],"6-100-15":[986.95,3379.04],"6-100-16":[844.64,3558.09],"6-100-17":[745.38,1902.58],"6-100-18":[1168.55,5176.87],"6-100-19":[1398.27,4952.19],"6-100-20":[475.77,6100.38],"6-100-21":[222.1,7111.28],"6-100-22":[347.18,4334.26],"6-100-23":[41.06,3117.27],"6-100-24":[36.19,3084.02],"6-100-25":[52.6,2792.64],"6-100-26":[-35.3,1323.34],"6-100-27":[-72.12,1726.89],"6-100-28":[-49.94,1062.2],"6-100-29":[-35.14,1503.56],"6-100-30":[-117.38,2181.1],"6-100-31":[-68.74,1252.6],"6-100-32":[-20.47,3783.24],"6-100-33":[-69.41,3170.1],"6-100-34":[-37.01,1.6],"6-100-35":[-51.44,-9.86],"6-100-36":[-64.35,-13.79],"6-100-37":[-82.44,-27.14],"6-100-38":[-86.64,-34.46],"6-100-39":[-87.84,-34.63],"6-100-40":[-85.52,-36.5],"6-100-41":[-80.19,-37.62],"6-100-42":[-78.68,-37.25],"6-100-43":[-81.4,-35.65],"6-100-44":[-80.06,-30.59],"6-100-45":[-66.32,-24.76],"6-100-46":[-55.39,-18.12],"6-100-47":[-41.05,-11.56],"6-100-48":[-30.56,-6.29],"6-100-49":[-19.26,-3.51],"6-100-50":[-13.29,-1.45],"6-100-51":[-9.52,-0.85],"6-100-52":[-12.52,-1.6],"6-100-53":[-17.41,-3.38],"6-100-54":[-19.91,-2],"6-100-55":[-15.87,1791.71],"6-100-56":[1558.66,2640.61],"6-100-57":[2600.88,3292.47],"6-100-58":[3117.94,3525.76],"6-100-59":[3441.92,3605.31],"6-100-60":[3363.73,3601.4],"6-100-61":[3196.66,3433.72],"6-100-62":[3070.69,3240.37],"6-100-63":[-29.54,3075.89],"6-101-0":[12.06,26.97],"6-101-1":[10.27,24.01],"5-50-0":[10.27,26.99],"6-101-2":[1.88,20.61],"6-101-3":[-0.04,776.54],"5-50-1":[-0.76,788.17],"6-101-4":[-9.34,841.94],"6-101-5":[-23.59,832.71],"5-50-2":[-23.59,864.96],"6-101-6":[-24.81,718.4],"6-101-7":[121.13,1011.68],"5-50-3":[-24.81,1011.68],"6-101-8":[224.5,929.44],"6-101-9":[162.57,836.04],"5-50-4":[114.45,958.88],"6-101-10":[-27.02,706.58],"6-101-11":[88.71,984.1],"5-50-5":[-27.02,984.1],"6-101-12":[253.55,1472.91],"6-101-13":[369.08,2280.07],"5-50-6":[253.49,3194.59],"6-101-14":[518.21,1985.15],"6-101-15":[932.38,2132.01],"5-50-7":[518.21,3379.04],"6-101-16":[778.87,2678.17],"6-101-17":[651.88,2311.12],"5-50-8":[651.88,3558.09],"6-101-18":[992.38,3502.2],"6-101-19":[629.17,4106.19],"5-50-9":[629.17,5176.87],"6-101-20":[194.36,4524.83],"6-101-21":[96.37,1942.57],"5-50-10":[96.37,7111.28],"6-101-22":[245.14,2858.21],"6-101-23":[21.03,2530.43],"5-50-11":[21.03,4334.26],"6-101-24":[-94.3,2937.63],"6-101-25":[-56.68,2686.47],"5-50-12":[-94.3,3084.02],"6-101-26":[-2.53,1984.96],"6-101-27":[-62.53,1793.02],"5-50-13":[-72.12,1984.96],"6-101-28":[-88.98,988.31],"6-101-29":[-13.69,296.81],"5-50-14":[-88.98,1503.56],"6-101-30":[-7.26,564.09],"6-101-31":[-34.24,1041.7],"5-50-15":[-117.38,2181.1],"6-101-32":[-50.63,1126.85],"6-101-33":[-55.36,2229.43],"5-50-16":[-69.41,3783.24],"6-101-34":[-36.88,2218.28],"6-101-35":[-23.97,362.89],"5-50-17":[-51.44,2218.28],"6-101-36":[-50.01,-8.05],"6-101-37":[-67.22,-17.95],"5-50-18":[-82.44,-8.05],"6-101-38":[-72.92,-27.95],"6-101-39":[-72.68,-32.21],"5-50-19":[-87.84,-27.95],"6-101-40":[-76.24,-33.32],"6-101-41":[-78.06,-36.98],"5-50-20":[-85.52,-33.32],"6-101-42":[-80.1,-38.14],"6-101-43":[-82.02,-39.33],"5-50-21":[-82.02,-35.65],"6-101-44":[-82.43,-34.06],"6-101-45":[-71.27,-28.18],"5-50-22":[-82.43,-24.76],"6-101-46":[-62.71,-21.81],"6-101-47":[-49.64,-15.77],"5-50-23":[-62.71,-11.56],"6-101-48":[-39.39,-10.57],"6-101-49":[-28.16,-7.19],"5-50-24":[-39.39,-3.51],"6-101-50":[-21.77,-4.94],"6-101-51":[-17.14,-4.86],"5-50-25":[-21.77,-0.85],"6-101-52":[-18.23,-5.13],"6-101-53":[-25.73,-6.91],"5-50-26":[-25.73,-1.6],"6-101-54":[-26.47,-8.94],"6-101-55":[-27.05,1793.86],"5-50-27":[-27.05,1793.86],"6-101-56":[1569.31,2600.89],"6-101-57":[2518.51,3117.95],"5-50-28":[1558.66,3292.47],"6-101-58":[2973.88,3441.93],"6-101-59":[3288.11,3528.69],"5-50-29":[2973.88,3605.31],"6-101-60":[3280.25,3498.6],"6-101-61":[3169.63,3363.74],"5-50-30":[3169.63,3601.4],"6-101-62":[3069.83,3196.67],"6-101-63":[-29.54,3075.29],"5-50-31":[-29.54,3240.37],"6-102-0":[12.03,26.96],"6-102-1":[10.02,23.17],"6-102-2":[1.63,20.52],"6-102-3":[-0.71,3.6],"6-102-4":[-9.34,927.44],"6-102-5":[-21.44,1119.08],"6-102-6":[-21.06,734.39],"6-102-7":[132.34,887.81],"6-102-8":[166.72,947.89],"6-102-9":[178.95,743.5],"6-102-10":[-23.46,607.14],"6-102-11":[188.2,1969.85],"6-102-12":[317.03,2509.72],"6-102-13":[401.97,1987.12],"6-102-14":[522.51,2758.43],"6-102-15":[862.62,2221.84],"6-102-16":[705.9,1397.18],"6-102-17":[902.24,2304.17],"6-102-18":[874.91,1918.57],"6-102-19":[285.5,3718.19],"6-102-20":[36.4,3019.64],"6-102-21":[48.41,2199.58],"6-102-22":[81.86,2506.96],"6-102-23":[-4.49,1720.45],"6-102-24":[-110.94,1495.1],"6-102-25":[-45.58,1791.56],"6-102-26":[-43.69,2581.3],"6-102-27":[-24.82,2426.49],"6-102-28":[-33.45,1298.21],"6-102-29":[2.64,41.22],"6-102-30":[-11.18,1014.85],"6-102-31":[-30.38,1601.85],"6-102-32":[-4.18,1034.19],"6-102-33":[5.39,373.32],"6-102-34":[-27.49,3442.9],"6-102-35":[-16.46,32.46],"6-102-36":[-35.92,-0.17],"6-102-37":[-55.89,-9.77],"6-102-38":[-63.68,-20.55],"6-102-39":[-67.07,-25.59],"6-102-40":[-74.45,-31.39],"6-102-41":[-78.87,-34.22],"6-102-42":[-80.62,-38.59],"6-102-43":[-81.5,-37.5],"6-102-44":[-81.55,-36.82],"6-102-45":[-75.32,-31.36],"6-102-46":[-66.17,-25.52],"6-102-47":[-55.15,-19.95],"6-102-48":[-45.84,-14.58],"6-102-49":[-34.14,-11.03],"6-102-50":[-27.4,-8.6],"6-102-51":[-22.98,-8.32],"6-102-52":[-24.4,-8.55],"6-102-53":[-30.23,-9.28],"6-102-54":[-36.54,-12.51],"6-102-55":[-33.13,1569.32],"6-102-56":[1087.42,2518.52],"6-102-57":[2491.99,2973.89],"6-102-58":[2898.38,3288.12],"6-102-59":[3218.55,3458.77],"6-102-60":[3217.24,3410.38],"6-102-61":[3122.29,3280.26],"6-102-62":[3068.02,3169.64],"6-102-63":[-29.54,3074.68],"6-103-0":[11.81,26.94],"6-103-1":[10.02,22.97],"5-51-0":[10.02,26.96],"6-103-2":[1.76,20.03],"6-103-3":[-4.68,2.37],"5-51-1":[-4.68,20.52],"4-25-0":[-4.68,788.17],"6-103-4":[-7.07,732.27],"6-103-5":[-18.39,1038.7],"5-51-2":[-21.44,1119.08],"6-103-6":[-8.22,689.79],"6-103-7":[42.21,820.66],"5-51-3":[-21.06,887.81],"4-25-1":[-24.81,1119.08],"3-12-0":[-24.81,1618.98],"6-103-8":[142.66,871.07],"6-103-9":[190.73,581.35],"5-51-4":[142.66,947.89],"6-103-10":[-22.83,599.15],"6-103-11":[157.28,2526.11],"5-51-5":[-23.46,2526.11],"4-25-2":[-27.02,2526.11],"6-103-12":[409.57,2781.93],"6-103-13":[538.79,2000.38],"5-51-6":[317.03,2781.93],"6-103-14":[796.86,2483.46],"6-103-15":[786,1631.54],"5-51-7":[522.51,2758.43],"4-25-3":[253.49,3379.04],"3-12-1":[-32.17,4155.27],"6-103-16":[657.03,1440.56],"6-103-17":[814.48,2312.81],"5-51-8":[657.03,2312.81],"6-103-18":[461.77,2785.32],"6-103-19":[90.97,2608.85],"5-51-9":[90.97,3718.19],"4-25-4":[90.97,5176.87],"6-103-20":[-14.6,3075.61],"6-103-21":[-41.04,2284.9],"5-51-10":[-41.04,3075.61],"6-103-22":[6.19,2090.39],"6-103-23":[-33.9,1930.57],"5-51-11":[-33.9,2506.96],"4-25-5":[-41.04,7111.28],"3-12-2":[-109,7512.84],"6-103-24":[-68.73,1683.1],"6-103-25":[-50.32,1775.49],"5-51-12":[-110.94,1791.56],"6-103-26":[-15.99,22.84],"6-103-27":[-1.31,35.12],"5-51-13":[-43.69,2581.3],"4-25-6":[-110.94,3084.02],"6-103-28":[7.05,50.12],"6-103-29":[13.68,63.16],"5-51-14":[-33.45,1298.21],"6-103-30":[17.55,93.68],"6-103-31":[-60.48,1707.53],"5-51-15":[-60.48,1707.53],"4-25-7":[-117.38,2181.1],"3-12-3":[-135.7,3433.72],"6-103-32":[-5.21,1767.47],"6-103-33":[16.48,98.63],"5-51-16":[-5.21,1767.47],"6-103-34":[-32.43,3363.43],"6-103-35":[-8.1,36.62],"5-51-17":[-32.43,3442.9],"4-25-8":[-69.41,3783.24],"6-103-36":[-20.48,14.72],"6-103-37":[-39.42,-2.58],"5-51-18":[-55.89,14.72],"6-103-38":[-48.07,-12.98],"6-103-39":[-62.92,-19.51],"5-51-19":[-67.07,-12.98],"4-25-9":[-87.84,14.72],"3-12-4":[-129.46,3783.24],"6-103-40":[-67.31,-22.53],"6-103-41":[-76.31,-23.36],"5-51-20":[-78.87,-22.53],"6-103-42":[-79.55,-31.81],"6-103-43":[-79.53,-36.31],"5-51-21":[-81.5,-31.81],"4-25-10":[-85.52,-22.53],"6-103-44":[-81.64,-36.17],"6-103-45":[-78.43,-33.2],"5-51-22":[-81.64,-31.36],"6-103-46":[-69.24,-28.58],"6-103-47":[-59.94,-23.25],"5-51-23":[-69.24,-19.95],"4-25-11":[-82.43,-11.56],"3-12-5":[-93.34,15.19],"6-103-48":[-51.3,-17.94],"6-103-49":[-40.42,-14.13],"5-51-24":[-51.3,-11.03],"6-103-50":[-34.48,-12.04],"6-103-51":[-30.95,-11.71],"5-51-25":[-34.48,-8.32],"4-25-12":[-51.3,-0.85],"6-103-52":[-31.64,-11.83],"6-103-53":[-39.3,-12.7],"5-51-26":[-39.3,-8.55],"6-103-54":[-43.14,-15.55],"6-103-55":[-38.79,1241.72],"5-51-27":[-43.14,1569.32],"4-25-13":[-43.14,1793.86],"3-12-6":[-51.3,1793.86],"6-103-56":[767.03,2536.98],"6-103-57":[2496.32,2925.63],"5-51-28":[767.03,2973.89],"6-103-58":[2895.28,3218.56],"6-103-59":[3190.5,3373.24],"5-51-29":[2895.28,3458.77],"4-25-14":[767.03,3605.31],"6-103-60":[3144.58,3368.42],"6-103-61":[3056.95,3217.25],"5-51-30":[3056.95,3410.38],"6-103-62":[3059.08,3122.3],"6-103-63":[-29.54,3072.12],"5-51-31":[-29.54,3169.64],"4-25-15":[-29.54,3601.4],"3-12-7":[-29.54,3799.9],"6-104-0":[11.39,26.93],"6-104-1":[9.9,23.02],"6-104-2":[2.36,20.31],"6-104-3":[-6,3.25],"6-104-4":[-6,82.84],"6-104-5":[-17.31,495.96],"6-104-6":[-8.77,399.1],"6-104-7":[13.61,491.06],"6-104-8":[115.43,750.89],"6-104-9":[116.1,561.53],"6-104-10":[-21.96,1677.59],"6-104-11":[150.22,2530.45],"6-104-12":[479.34,2992.37],"6-104-13":[504.85,1634.35],"6-104-14":[575.67,1654.73],"6-104-15":[617.47,1754.54],"6-104-16":[880.33,1742.15],"6-104-17":[128.34,2838.35],"6-104-18":[-3.88,3047.6],"6-104-19":[5.77,1847.96],"6-104-20":[-14.28,1280.51],"6-104-21":[-154.55,1772.77],"6-104-22":[-30.87,2103.76],"6-104-23":[-95.56,1877.29],"6-104-24":[-70.08,953.51],"6-104-25":[-6.17,27.99],"6-104-26":[3.36,44.5],"6-104-27":[10.3,55.83],"6-104-28":[17.56,73.24],"6-104-29":[25.67,79.68],"6-104-30":[10.65,2422.76],"6-104-31":[29.67,2305.23],"6-104-32":[6.49,2345.05],"6-104-33":[23.54,1325.52],"6-104-34":[-20.93,3699.18],"6-104-35":[4.34,1042.4],"6-104-36":[-2.59,22.64],"6-104-37":[-24.91,7.42],"6-104-38":[-38.06,-5.3],"6-104-39":[-58.73,307.87],"6-104-40":[-68.83,370.75],"6-104-41":[-63.64,291.1],"6-104-42":[-75.39,303.79],"6-104-43":[-77.46,189.43],"6-104-44":[-81.92,202.32],"6-104-45":[-78.44,-34.62],"6-104-46":[-69.89,-30.52],"6-104-47":[-61.52,-25.77],"6-104-48":[-54.23,-20.78],"6-104-49":[-44.26,-17.39],"6-104-50":[-39.25,-15.56],"6-104-51":[-36.43,-15.24],"6-104-52":[-37.17,-15.45],"6-104-53":[-45.54,-15.94],"6-104-54":[-46.98,-19.12],"6-104-55":[-44.18,1300.89],"6-104-56":[486.82,2508.46],"6-104-57":[2399.34,2971.73],"6-104-58":[2925.62,3190.51],"6-104-59":[3187.99,3320.02],"6-104-60":[3081.53,3317.03],"6-104-61":[2940.53,3144.59],"6-104-62":[3024.22,3080.43],"6-104-63":[-29.54,3069.68],"6-105-0":[11.09,26.9],"6-105-1":[9.45,22.95],"5-52-0":[9.45,26.93],"6-105-2":[2.76,20.29],"6-105-3":[-5.31,3.8],"5-52-1":[-6,20.31],"6-105-4":[-5.65,-0.65],"6-105-5":[-15.13,237.7],"5-52-2":[-17.31,495.96],"6-105-6":[-2.03,277.08],"6-105-7":[17.85,385.91],"5-52-3":[-8.77,491.06],"6-105-8":[110.65,448.35],"6-105-9":[56.9,380.42],"5-52-4":[56.9,750.89],"6-105-10":[-16.13,1615.07],"6-105-11":[217.51,2962.65],"5-52-5":[-21.96,2962.65],"6-105-12":[454.52,2450.24],"6-105-13":[406.43,1532.32],"5-52-6":[406.43,2992.37],"6-105-14":[432.23,1232.86],"6-105-15":[549.84,1464.19],"5-52-7":[432.23,1754.54],"6-105-16":[730.4,2060.03],"6-105-17":[-64.08,2407.63],"5-52-8":[-64.08,2838.35],"6-105-18":[-63.81,805.59],"6-105-19":[-16.17,1519.8],"5-52-9":[-63.81,3047.6],"6-105-20":[-33.57,1755.88],"6-105-21":[-69.59,1735.53],"5-52-10":[-154.55,1772.77],"6-105-22":[4.65,2160.72],"6-105-23":[-47.98,1800.52],"5-52-11":[-95.56,2160.72],"6-105-24":[1.5,35.14],"6-105-25":[6.58,52.59],"5-52-12":[-70.08,953.51],"6-105-26":[13.99,67.42],"6-105-27":[22.24,82.34],"5-52-13":[3.36,82.34],"6-105-28":[30.08,2125.15],"6-105-29":[13.27,4108.68],"5-52-14":[13.27,4108.68],"6-105-30":[17.77,2687.61],"6-105-31":[15.58,2267.3],"5-52-15":[10.65,2687.61],"6-105-32":[-40.37,1916.44],"6-105-33":[6.53,1738.04],"5-52-16":[-40.37,2345.05],"6-105-34":[14.43,3755.88],"6-105-35":[-28.54,2972.87],"5-52-17":[-28.54,3755.88],"6-105-36":[3.7,35.22],"6-105-37":[-12.09,21.02],"5-52-18":[-24.91,35.22],"6-105-38":[-24.32,2.72],"6-105-39":[-35.25,1205.98],"5-52-19":[-58.73,1205.98],"6-105-40":[29.13,1196.06],"6-105-41":[167.75,715.25],"5-52-20":[-68.83,1196.06],"6-105-42":[-14.21,662],"6-105-43":[-99.76,566.35],"5-52-21":[-99.76,662],"6-105-44":[-78.53,969.34],"6-105-45":[-78.21,-34.74],"5-52-22":[-81.92,969.34],"6-105-46":[-69.94,-30.98],"6-105-47":[-61.91,-27.2],"5-52-23":[-69.94,-25.77],"6-105-48":[-54.84,-22.89],"6-105-49":[-47.73,-19.91],"5-52-24":[-54.84,-17.39],"6-105-50":[-42.44,-18.56],"6-105-51":[-41.44,-18.27],"5-52-25":[-42.44,-15.24],"6-105-52":[-43.24,-18.39],"6-105-53":[-52.02,-19.12],"5-52-26":[-52.02,-15.45],"6-105-54":[-54.04,-21.06],"6-105-55":[-53.1,680.38],"5-52-27":[-54.04,1300.89],"6-105-56":[536.8,2408.3],"6-105-57":[2392.94,3030.32],"5-52-28":[486.82,3030.32],"6-105-58":[2971.72,3188.16],"6-105-59":[3108.98,3235.61],"5-52-29":[2925.62,3320.02],"6-105-60":[3012.27,3197.29],"6-105-61":[2926.36,3081.54],"5-52-30":[2926.36,3317.03],"6-105-62":[2976.46,3060.18],"6-105-63":[-29.54,3063.52],"5-52-31":[-29.54,3080.43],"6-106-0":[10.64,26.89],"6-106-1":[8.53,22.53],"6-106-2":[2.49,19.46],"6-106-3":[-5.7,3.75],"6-106-4":[-6.56,0.13],"6-106-5":[-15.63,39.75],"6-106-6":[-15.63,346.26],"6-106-7":[14.94,411.14],"6-106-8":[91.15,443.53],"6-106-9":[32.4,383.49],"6-106-10":[-14.77,717.41],"6-106-11":[169.48,2548.26],"6-106-12":[315.35,2226.52],"6-106-13":[309.69,1486.61],"6-106-14":[471.52,1598.44],"6-106-15":[383.84,1743.81],"6-106-16":[236.1,1936.12],"6-106-17":[-59.35,1887.25],"6-106-18":[-120.47,785.42],"6-106-19":[-39.04,1101.77],"6-106-20":[-105.16,584.53],"6-106-21":[-78.25,1795.67],"6-106-22":[-35.2,1934.56],"6-106-23":[-36.2,3691.21],"6-106-24":[-4.52,1951.28],"6-106-25":[17.56,2501.63],"6-106-26":[-6.79,2962.21],"6-106-27":[26.54,2343.09],"6-106-28":[24.22,1769.36],"6-106-29":[30.27,536.54],"6-106-30":[32.1,935.33],"6-106-31":[37.62,2935.4],"6-106-32":[39.93,3132.81],"6-106-33":[-11.89,3490.23],"6-106-34":[19.97,1959.49],"6-106-35":[5.42,2405.04],"6-106-36":[10.5,52.7],"6-106-37":[1.57,42.5],"6-106-38":[-1.29,35.06],"6-106-39":[-31.05,1152.3],"6-106-40":[340.66,1241.42],"6-106-41":[303.97,737.39],"6-106-42":[254.05,673.8],"6-106-43":[-1.49,507.31],"6-106-44":[-78.18,1063.1],"6-106-45":[-78.01,-33.81],"6-106-46":[-69.49,-30.79],"6-106-47":[-61.11,-27.35],"6-106-48":[-54.99,-24.24],"6-106-49":[-48.72,-21.27],"6-106-50":[-45.04,-20.59],"6-106-51":[-45.09,-20.39],"6-106-52":[-47.54,-20.76],"6-106-53":[-57.28,-21.9],"6-106-54":[-61.21,-25.94],"6-106-55":[-59.83,845.24],"6-106-56":[519.85,2462.74],"6-106-57":[2401.53,3046.36],"6-106-58":[3030.31,3177.4],"6-106-59":[2994.82,3172.35],"6-106-60":[2931.11,3109.06],"6-106-61":[2879.88,3012.28],"6-106-62":[2930.22,3048.31],"6-106-63":[-29.59,3060.25],"6-107-0":[10.15,26.87],"6-107-1":[8.13,21.47],"5-53-0":[8.13,26.89],"6-107-2":[2.41,16.79],"6-107-3":[-5.35,4.39],"5-53-1":[-5.7,19.46],"4-26-0":[-6,26.93],"6-107-4":[-5.79,0.24],"6-107-5":[-13.91,13.68],"5-53-2":[-15.63,39.75],"6-107-6":[-13.91,479.01],"6-107-7":[3.58,427.06],"5-53-3":[-15.63,479.01],"4-26-1":[-17.31,495.96],"6-107-8":[3.9,342.41],"6-107-9":[56.97,417.22],"5-53-4":[3.9,443.53],"6-107-10":[-10.31,1200.19],"6-107-11":[142.11,2000.95],"5-53-5":[-14.77,2548.26],"4-26-2":[-21.96,2962.65],"6-107-12":[249.54,1644.22],"6-107-13":[260.32,1523.39],"5-53-6":[249.54,2226.52],"6-107-14":[165.96,1600.44],"6-107-15":[117.12,1541.69],"5-53-7":[117.12,1743.81],"4-26-3":[117.12,2992.37],"6-107-16":[42.3,816.14],"6-107-17":[-150.51,1174.47],"5-53-8":[-150.51,1936.12],"6-107-18":[-29.13,918.27],"6-107-19":[3.79,96.9],"5-53-9":[-120.47,1101.77],"4-26-4":[-150.51,3047.6],"6-107-20":[-52.47,121.19],"6-107-21":[-35.84,1218.7],"5-53-10":[-105.16,1795.67],"6-107-22":[0.69,450.06],"6-107-23":[-53.71,3956.01],"5-53-11":[-53.71,3956.01],"4-26-5":[-154.55,3956.01],"6-107-24":[11.3,1042.66],"6-107-25":[-10.65,2731.61],"5-53-12":[-10.65,2731.61],"6-107-26":[-0.27,2712.33],"6-107-27":[-54.19,2627.63],"5-53-13":[-54.19,2962.21],"4-26-6":[-70.08,2962.21],"6-107-28":[-134.19,2528.23],"6-107-29":[21.9,2469.27],"5-53-14":[-134.19,2528.23],"6-107-30":[58.38,136.19],"6-107-31":[24.07,2286.44],"5-53-15":[24.07,2935.4],"4-26-7":[-134.19,4108.68],"6-107-32":[0.84,2955.49],"6-107-33":[28.66,2702.65],"5-53-16":[-11.89,3490.23],"6-107-34":[15.94,1676.82],"6-107-35":[5.35,2244.61],"5-53-17":[5.35,2405.04],"4-26-8":[-40.37,3755.88],"6-107-36":[21.36,72.31],"6-107-37":[-21.63,280.29],"5-53-18":[-21.63,280.29],"6-107-38":[-20.07,284.71],"6-107-39":[-14.22,553.65],"5-53-19":[-31.05,1152.3],"4-26-9":[-58.73,1205.98],"6-107-40":[235.6,710.82],"6-107-41":[292.36,692.66],"5-53-20":[235.6,1241.42],"6-107-42":[104.9,561.35],"6-107-43":[-30.26,610.87],"5-53-21":[-30.26,673.8],"4-26-10":[-99.76,1241.42],"6-107-44":[-76.09,322.34],"6-107-45":[-73.83,-32.37],"5-53-22":[-78.18,1063.1],"6-107-46":[-67.41,-29.79],"6-107-47":[-60.78,-27.09],"5-53-23":[-69.49,-27.09],"4-26-11":[-81.92,1063.1],"6-107-48":[-54.95,-24.93],"6-107-49":[-49.55,-22.67],"5-53-24":[-54.99,-21.27],"6-107-50":[-47.09,-22.05],"6-107-51":[-49,-22.03],"5-53-25":[-49,-20.39],"4-26-12":[-54.99,-15.24],"6-107-52":[-52.14,-22.78],"6-107-53":[-62.69,-24.36],"5-53-26":[-62.69,-20.76],"6-107-54":[-67.4,-28.92],"6-107-55":[-64.36,1172.91],"5-53-27":[-67.4,1172.91],"4-26-13":[-67.4,1300.89],"6-107-56":[845.23,2590.73],"6-107-57":[2462.73,3089.34],"5-53-28":[519.85,3089.34],"6-107-58":[3046.35,3196.31],"6-107-59":[2917.96,3163.37],"5-53-29":[2917.96,3196.31],"4-26-14":[486.82,3320.02],"6-107-60":[2826.82,2994.83],"6-107-61":[2826.82,2932.32],"5-53-30":[2826.82,3109.06],"6-107-62":[2871.64,3035.5],"6-107-63":[-29.58,3058.07],"5-53-31":[-29.59,3060.25],"4-26-15":[-29.59,3317.03],"6-108-0":[10.04,26.86],"6-108-1":[7.6,20.19],"6-108-2":[2.41,15.36],"6-108-3":[-5.02,4.8],"6-108-4":[-5,0.2],"6-108-5":[-10.53,23.3],"6-108-6":[-6.11,487.14],"6-108-7":[-1.85,1127.4],"6-108-8":[-14.61,1401.18],"6-108-9":[9.01,816.9],"6-108-10":[0.99,804.47],"6-108-11":[261.28,1845.92],"6-108-12":[224.24,1706.86],"6-108-13":[169.56,1269.14],"6-108-14":[159.24,878.23],"6-108-15":[100.27,339.07],"6-108-16":[60.86,1264.57],"6-108-17":[-268.7,1987.41],"6-108-18":[-101.36,1234.98],"6-108-19":[-7.79,581.2],"6-108-20":[16.92,1941.55],"6-108-21":[18.57,59.8],"6-108-22":[22.07,60.97],"6-108-23":[8,553.56],"6-108-24":[22.25,69.87],"6-108-25":[31.05,86.5],"6-108-26":[38.77,279.06],"6-108-27":[15.22,1607.31],"6-108-28":[-24.5,2547.07],"6-108-29":[21.53,3011.04],"6-108-30":[36.96,1410.92],"6-108-31":[-6.95,2053.63],"6-108-32":[33.67,1465.3],"6-108-33":[35.26,2752.59],"6-108-34":[-4.86,1869.57],"6-108-35":[7.81,2985.2],"6-108-36":[18.74,169.89],"6-108-37":[-47.89,844.91],"6-108-38":[-13.38,967.01],"6-108-39":[127.51,455.4],"6-108-40":[265.28,557.1],"6-108-41":[312.18,555.5],"6-108-42":[124.91,497.24],"6-108-43":[-59.03,276.5],"6-108-44":[-71.44,115.27],"6-108-45":[-69.83,-30.39],"6-108-46":[-64.74,-28.34],"6-108-47":[-58.68,-26.12],"6-108-48":[-54.09,-24.3],"6-108-49":[-49.45,-23.51],"6-108-50":[-48.53,-23.46],"6-108-51":[-51.56,-23.6],"6-108-52":[-55.45,-24.6],"6-108-53":[-65.39,-26.41],"6-108-54":[-71.76,-31.34],"6-108-55":[-65.99,1359.83],"6-108-56":[1164.44,2630.58],"6-108-57":[2590.72,3151.32],"6-108-58":[3089.33,3203.64],"6-108-59":[2882.88,3159.64],"6-108-60":[2697.34,2917.97],"6-108-61":[2697.34,2871.65],"6-108-62":[2844.51,3023.22],"6-108-63":[-29.54,3057.86],"6-109-0":[10.07,26.84],"6-109-1":[7.6,19.56],"5-54-0":[7.6,26.86],"6-109-2":[1.94,15.3],"6-109-3":[-4.59,4.34],"5-54-1":[-5.02,15.36],"6-109-4":[-4.59,1.33],"6-109-5":[-11.15,-0.27],"5-54-2":[-11.15,23.3],"6-109-6":[-13.23,1068.55],"6-109-7":[49.78,2201.02],"5-54-3":[-13.23,2201.02],"6-109-8":[105.58,2117.99],"6-109-9":[2.06,1848.18],"5-54-4":[-14.61,2117.99],"6-109-10":[2.81,676.85],"6-109-11":[199.21,2240.33],"5-54-5":[0.99,2240.33],"6-109-12":[203.07,2048.94],"6-109-13":[137.94,905.39],"5-54-6":[137.94,2048.94],"6-109-14":[100.62,1057.62],"6-109-15":[12.1,1445.43],"5-54-7":[12.1,1445.43],"6-109-16":[169.25,1718.97],"6-109-17":[-9.27,2763.77],"5-54-8":[-268.7,2763.77],"6-109-18":[-16.31,1727.04],"6-109-19":[-43.56,1925.58],"5-54-9":[-101.36,1925.58],"6-109-20":[-39.24,1453.61],"6-109-21":[16.04,722.76],"5-54-10":[-39.24,1941.55],"6-109-22":[13.17,672.79],"6-109-23":[24.41,69.74],"5-54-11":[8,672.79],"6-109-24":[29.92,74.99],"6-109-25":[35.9,87.33],"5-54-12":[22.25,87.33],"6-109-26":[42.78,100.04],"6-109-27":[47.35,114.52],"5-54-13":[15.22,1607.31],"6-109-28":[47.35,127.22],"6-109-29":[45.25,289.5],"5-54-14":[-24.5,3011.04],"6-109-30":[39.86,726.39],"6-109-31":[-77.81,1820.67],"5-54-15":[-77.81,2053.63],"6-109-32":[-16.98,2152.95],"6-109-33":[17.04,2555.71],"5-54-16":[-16.98,2752.59],"6-109-34":[33.44,1415.76],"6-109-35":[30.37,2395.35],"5-54-17":[-4.86,2985.2],"6-109-36":[4.41,198.32],"6-109-37":[-3.57,755.14],"5-54-18":[-47.89,844.91],"6-109-38":[123.22,1012.77],"6-109-39":[240.33,556.98],"5-54-19":[-13.38,1012.77],"6-109-40":[305.48,1049.45],"6-109-41":[288.49,1051.49],"5-54-20":[265.28,1051.49],"6-109-42":[117.95,457.28],"6-109-43":[-68.16,175.13],"5-54-21":[-68.16,497.24],"6-109-44":[-66.21,-23.79],"6-109-45":[-63.97,-28.21],"5-54-22":[-71.44,115.27],"6-109-46":[-60.3,-26.68],"6-109-47":[-55.65,-25.02],"5-54-23":[-64.74,-25.02],"6-109-48":[-52.05,-23.14],"6-109-49":[-47.99,-22.51],"5-54-24":[-54.09,-22.51],"6-109-50":[-47.82,-22.39],"6-109-51":[-52.39,-23.56],"5-54-25":[-52.39,-22.39],"6-109-52":[-58.59,-25.84],"6-109-53":[-69.44,-28.36],"5-54-26":[-69.44,-24.6],"6-109-54":[-76.93,-32.97],"6-109-55":[-75.43,1185.13],"5-54-27":[-76.93,1359.83],"6-109-56":[945.1,2622.61],"6-109-57":[2578.38,3171.09],"5-54-28":[945.1,3171.09],"6-109-58":[3008.62,3189.23],"6-109-59":[2819.28,3116.04],"5-54-29":[2819.28,3203.64],"6-109-60":[2623.1,2882.89],"6-109-61":[2629.61,2844.52],"5-54-30":[2623.1,2917.97],"6-109-62":[2805.68,3011.97],"6-109-63":[-29.54,3059.53],"5-54-31":[-29.54,3059.53],"6-110-0":[10.54,26.83],"6-110-1":[6.87,20.99],"6-110-2":[1.92,15.13],"6-110-3":[-4.55,2.92],"6-110-4":[-4.02,4.86],"6-110-5":[-10.86,-0.21],"6-110-6":[-13.9,856.13],"6-110-7":[47.14,1828.99],"6-110-8":[120.23,1922.66],"6-110-9":[31.37,2002.65],"6-110-10":[5.26,531.48],"6-110-11":[163.23,2290.58],"6-110-12":[207.26,2374.21],"6-110-13":[182.49,1509.02],"6-110-14":[66.2,1216.44],"6-110-15":[10.1,1386.01],"6-110-16":[4.32,1509.87],"6-110-17":[10.26,1774.19],"6-110-18":[-48.7,999.37],"6-110-19":[-18.69,1373.1],"6-110-20":[-17.54,1801.42],"6-110-21":[-19.03,1948.19],"6-110-22":[24,290.95],"6-110-23":[28.82,74.19],"6-110-24":[34.84,77.85],"6-110-25":[38.27,88.57],"6-110-26":[43.53,99.45],"6-110-27":[49.52,113.8],"6-110-28":[55.44,127.03],"6-110-29":[62.11,137.95],"6-110-30":[67.63,149.08],"6-110-31":[62.22,363.49],"6-110-32":[-56.46,1519.04],"6-110-33":[-10.59,3088.67],"6-110-34":[26.67,862.43],"6-110-35":[40.62,116.33],"6-110-36":[-0.62,359.52],"6-110-37":[-20.35,453.11],"6-110-38":[138.03,558.61],"6-110-39":[237.65,915.42],"6-110-40":[389.72,1429.68],"6-110-41":[289.78,1437.62],"6-110-42":[27.63,482.51],"6-110-43":[-47.6,188.18],"6-110-44":[-60.49,-16.06],"6-110-45":[-58.01,-25.18],"6-110-46":[-56.42,-23.9],"6-110-47":[-52.82,-22.85],"6-110-48":[-49.85,-21.48],"6-110-49":[-46.08,-21.12],"6-110-50":[-46.52,-21.31],"6-110-51":[-52.46,-23.05],"6-110-52":[-59.62,-26.04],"6-110-53":[-71.74,-29.78],"6-110-54":[-80.19,-34.71],"6-110-55":[-74.89,1382.72],"6-110-56":[948.42,2601.74],"6-110-57":[2573.54,3136.57],"6-110-58":[2893.92,3137.89],"6-110-59":[2675.26,3008.63],"6-110-60":[2578.01,2819.29],"6-110-61":[2594.09,2805.69],"6-110-62":[2759.42,2999.73],"6-110-63":[-29.54,3062.38],"6-111-0":[11.53,28.02],"6-111-1":[6.59,23.68],"5-55-0":[6.59,28.02],"6-111-2":[2.12,13.54],"6-111-3":[-4.24,2.58],"5-55-1":[-4.55,15.13],"4-27-0":[-5.02,28.02],"6-111-4":[-1.34,4.98],"6-111-5":[-6.9,-0.37],"5-55-2":[-10.86,4.98],"6-111-6":[-9.76,462.09],"6-111-7":[19.54,1221.31],"5-55-3":[-13.9,1828.99],"4-27-1":[-13.9,2201.02],"3-13-0":[-17.31,2201.02],"6-111-8":[105.45,1652.58],"6-111-9":[35.47,2070.51],"5-55-4":[31.37,2070.51],"6-111-10":[7.84,825.86],"6-111-11":[208.63,1856.83],"5-55-5":[5.26,2290.58],"4-27-2":[-14.61,2290.58],"6-111-12":[30.93,2358.55],"6-111-13":[242.51,2286.52],"5-55-6":[30.93,2374.21],"6-111-14":[42.21,2263.84],"6-111-15":[-27.41,1447.73],"5-55-7":[-27.41,2263.84],"4-27-3":[-27.41,2374.21],"3-13-1":[-27.41,2992.37],"2-6-0":[-32.17,4155.27],"6-111-16":[-79.7,1878.55],"6-111-17":[23.24,62.05],"5-55-8":[-79.7,1878.55],"6-111-18":[25.69,66.77],"6-111-19":[-16.84,1986.11],"5-55-9":[-48.7,1986.11],"4-27-4":[-268.7,2763.77],"6-111-20":[-0.37,1882.11],"6-111-21":[27.45,74.09],"5-55-10":[-19.03,1948.19],"6-111-22":[33.04,75.05],"6-111-23":[33.91,80.5],"5-55-11":[24,290.95],"4-27-5":[-39.24,1948.19],"3-13-2":[-268.7,3956.01],"6-111-24":[37.06,83.13],"6-111-25":[39.61,93.95],"5-55-12":[34.84,93.95],"6-111-26":[44.33,102.28],"6-111-27":[49.63,114.34],"5-55-13":[43.53,114.34],"4-27-6":[15.22,1607.31],"6-111-28":[55.18,125.8],"6-111-29":[59.47,301.73],"5-55-14":[55.18,301.73],"6-111-30":[66.39,148.84],"6-111-31":[69.38,149.75],"5-55-15":[62.22,363.49],"4-27-7":[-77.81,3011.04],"3-13-3":[-134.19,4108.68],"2-6-1":[-268.7,7512.84],"6-111-32":[15.14,3028.24],"6-111-33":[-92.74,2016.59],"5-55-16":[-92.74,3088.67],"6-111-34":[38.32,670.15],"6-111-35":[39.61,131.25],"5-55-17":[26.67,862.43],"4-27-8":[-92.74,3088.67],"6-111-36":[-50.67,610.22],"6-111-37":[37.9,457.36],"5-55-18":[-50.67,610.22],"6-111-38":[212.43,466.21],"6-111-39":[278.13,1152.22],"5-55-19":[138.03,1152.22],"4-27-9":[-50.67,1152.22],"3-13-4":[-92.74,3755.88],"6-111-40":[234.53,1528.53],"6-111-41":[101.81,1002.66],"5-55-20":[101.81,1528.53],"6-111-42":[72.04,400.15],"6-111-43":[-50.51,399.93],"5-55-21":[-50.51,482.51],"4-27-10":[-68.16,1528.53],"6-111-44":[-51.73,212.32],"6-111-45":[-50.87,-20.77],"5-55-22":[-60.49,212.32],"6-111-46":[-49.69,-20.97],"6-111-47":[-47.09,-20.45],"5-55-23":[-56.42,-20.45],"4-27-11":[-71.44,212.32],"3-13-5":[-99.76,1528.53],"2-6-2":[-129.46,3783.24],"6-111-48":[-45.23,-19.5],"6-111-49":[-42.63,-19.5],"5-55-24":[-49.85,-19.5],"6-111-50":[-45.55,-20.17],"6-111-51":[-51.95,-22.67],"5-55-25":[-52.46,-20.17],"4-27-12":[-54.09,-19.5],"6-111-52":[-60.12,-25.88],"6-111-53":[-74.09,-30.6],"5-55-26":[-74.09,-25.88],"6-111-54":[-82.21,-35.97],"6-111-55":[-78.66,1711.28],"5-55-27":[-82.21,1711.28],"4-27-13":[-82.21,1711.28],"3-13-6":[-82.21,1711.28],"6-111-56":[1382.71,2605.54],"6-111-57":[2513.78,2976.73],"5-55-28":[948.42,3136.57],"6-111-58":[2794.54,2992.85],"6-111-59":[2564.77,2893.93],"5-55-29":[2564.77,3137.89],"4-27-14":[945.1,3203.64],"6-111-60":[2500.69,2687.3],"6-111-61":[2526.81,2763.19],"5-55-30":[2500.69,2819.29],"6-111-62":[2709.28,2987.5],"6-111-63":[-29.54,3065.26],"5-55-31":[-29.54,3065.26],"4-27-15":[-29.54,3065.26],"3-13-7":[-29.59,3320.02],"2-6-3":[-82.21,3799.9],"6-112-0":[12.7,28.89],"6-112-1":[6.42,25.49],"6-112-2":[2.23,12.87],"6-112-3":[-4.13,4.1],"6-112-4":[-0.69,55.51],"6-112-5":[-5.99,225.27],"6-112-6":[-8.16,496.12],"6-112-7":[13.72,1767.28],"6-112-8":[107.91,1681.65],"6-112-9":[91.8,1766.67],"6-112-10":[12.16,1755.07],"6-112-11":[24.97,1915.02],"6-112-12":[3.84,2099.48],"6-112-13":[23.28,2155.76],"6-112-14":[6.54,1965.97],"6-112-15":[15.76,2024.26],"6-112-16":[12.72,1410.98],"6-112-17":[25.6,66.52],"6-112-18":[-24.3,3037.73],"6-112-19":[-29.59,3225.44],"6-112-20":[16.39,1148.96],"6-112-21":[35.65,80.83],"6-112-22":[36.81,83.26],"6-112-23":[36.79,87.96],"6-112-24":[39.76,92.17],"6-112-25":[41.96,97.91],"6-112-26":[46.97,104.85],"6-112-27":[51.71,114.88],"6-112-28":[56.92,128.34],"6-112-29":[57.72,134.69],"6-112-30":[65.91,141.57],"6-112-31":[67.63,143.17],"6-112-32":[6.63,1532.53],"6-112-33":[44.6,4900.75],"6-112-34":[45.11,141.56],"6-112-35":[56.19,138.86],"6-112-36":[28.28,417.68],"6-112-37":[-0.95,370.77],"6-112-38":[108.64,478.74],"6-112-39":[201.08,643.8],"6-112-40":[73.33,1103.75],"6-112-41":[-45.74,301.67],"6-112-42":[-38.95,426.73],"6-112-43":[-35.05,487.73],"6-112-44":[-41.29,417.28],"6-112-45":[-43.35,-6.75],"6-112-46":[-43.03,-16.66],"6-112-47":[-41.89,-17.81],"6-112-48":[-40.82,-17.53],"6-112-49":[-40.23,-17.58],"6-112-50":[-44.52,-18.84],"6-112-51":[-52.08,-21.66],"6-112-52":[-60.31,-25.8],"6-112-53":[-75.15,-30.77],"6-112-54":[-83.59,-37.04],"6-112-55":[-84.73,1701.91],"6-112-56":[1598.15,2525.84],"6-112-57":[2453.63,2840.96],"6-112-58":[2629.4,2867.37],"6-112-59":[2498.34,2794.55],"6-112-60":[2390.04,2564.78],"6-112-61":[2390.04,2709.29],"6-112-62":[2666.35,2977.76],"6-112-63":[-29.54,3068.14],"6-113-0":[13.21,29.53],"6-113-1":[6.55,26.2],"5-56-0":[6.42,29.53],"6-113-2":[2.65,15.62],"6-113-3":[-3.24,6.86],"5-56-1":[-4.13,15.62],"6-113-4":[0.26,195.82],"6-113-5":[-4.34,347.8],"5-56-2":[-5.99,347.8],"6-113-6":[-5.98,370.97],"6-113-7":[44.86,2177.91],"5-56-3":[-8.16,2177.91],"6-113-8":[234.82,2476.55],"6-113-9":[401.32,2650.27],"5-56-4":[91.8,2650.27],"6-113-10":[23.8,2153.15],"6-113-11":[-0.3,1760.98],"5-56-5":[-0.3,2153.15],"6-113-12":[-14.43,1103.01],"6-113-13":[1.7,1633.71],"5-56-6":[-14.43,2155.76],"6-113-14":[6.02,2108.2],"6-113-15":[5.38,1700.99],"5-56-7":[5.38,2108.2],"6-113-16":[25.39,1549.63],"6-113-17":[-8.62,1641.19],"5-56-8":[-8.62,1641.19],"6-113-18":[-22.8,2604.93],"6-113-19":[-48.47,3800.26],"5-56-9":[-48.47,3800.26],"6-113-20":[33.11,892.01],"6-113-21":[38.38,417.51],"5-56-10":[16.39,1148.96],"6-113-22":[40.6,91.39],"6-113-23":[42.43,95.06],"5-56-11":[36.79,95.06],"6-113-24":[44.58,97.8],"6-113-25":[46.59,101.92],"5-56-12":[39.76,101.92],"6-113-26":[49.34,105.97],"6-113-27":[48.14,115.83],"5-56-13":[46.97,115.83],"6-113-28":[47.63,237.05],"6-113-29":[57.2,131.84],"5-56-14":[47.63,237.05],"6-113-30":[64.56,137.12],"6-113-31":[68.18,144.76],"5-56-15":[64.56,144.76],"6-113-32":[42.04,2301.21],"6-113-33":[54.12,5227.39],"5-56-16":[6.63,5227.39],"6-113-34":[38.04,203.53],"6-113-35":[58.85,141.09],"5-56-17":[38.04,203.53],"6-113-36":[54.67,131.12],"6-113-37":[-15.46,223.46],"5-56-18":[-15.46,417.68],"6-113-38":[7.1,475.97],"6-113-39":[134.5,657.09],"5-56-19":[7.1,657.09],"6-113-40":[48.52,421.94],"6-113-41":[-34.6,242.02],"5-56-20":[-45.74,1103.75],"6-113-42":[-55.11,1079.1],"6-113-43":[-15.57,1164.85],"5-56-21":[-55.11,1164.85],"6-113-44":[-38.17,716.99],"6-113-45":[-33.33,267.94],"5-56-22":[-43.35,716.99],"6-113-46":[-34.86,-12.78],"6-113-47":[-35.43,-15.73],"5-56-23":[-43.03,-12.78],"6-113-48":[-35.41,-16.8],"6-113-49":[-37.65,-17.05],"5-56-24":[-40.82,-16.8],"6-113-50":[-42.35,-18.33],"6-113-51":[-51.23,-20.46],"5-56-25":[-52.08,-18.33],"6-113-52":[-59.96,-25.01],"6-113-53":[-76.66,-30.45],"5-56-26":[-76.66,-25.01],"6-113-54":[-85.09,-37.69],"6-113-55":[-88.87,1616.15],"5-56-27":[-88.87,1701.91],"6-113-56":[1284.64,2522.11],"6-113-57":[2297.97,2629.41],"5-56-28":[1284.64,2840.96],"6-113-58":[2577.31,2726.71],"6-113-59":[2407.17,2693.87],"5-56-29":[2407.17,2867.37],"6-113-60":[2235.7,2498.35],"6-113-61":[2303.19,2666.36],"5-56-30":[2235.7,2709.29],"6-113-62":[2636.28,2970.03],"6-113-63":[-29.54,3070.04],"5-56-31":[-29.54,3070.04],"6-114-0":[13.2,29.62],"6-114-1":[8.14,26.14],"6-114-2":[3.61,17.19],"6-114-3":[0.69,7.07],"6-114-4":[0.49,25.1],"6-114-5":[-2,264.4],"6-114-6":[-2.41,486.19],"6-114-7":[19.72,1696.85],"6-114-8":[77.22,2512.73],"6-114-9":[497.57,2822.43],"6-114-10":[9.71,2513.43],"6-114-11":[10.97,1227.42],"6-114-12":[11.66,627.07],"6-114-13":[3.09,1624.43],"6-114-14":[7.46,1440.11],"6-114-15":[-16.78,1737.87],"6-114-16":[-15.87,2312.97],"6-114-17":[-84.13,2061.69],"6-114-18":[-17.62,1666.14],"6-114-19":[-16.18,124.82],"6-114-20":[11.53,77.38],"6-114-21":[17.61,96.43],"6-114-22":[9.96,768.11],"6-114-23":[28.86,604.84],"6-114-24":[41.43,100.45],"6-114-25":[48.83,105.19],"6-114-26":[50.73,109.47],"6-114-27":[34.45,109.76],"6-114-28":[34.45,123],"6-114-29":[59.18,129.68],"6-114-30":[63.45,136.26],"6-114-31":[66.37,144.7],"6-114-32":[64.3,1467.8],"6-114-33":[33.02,4032.23],"6-114-34":[24.72,3694.06],"6-114-35":[31.23,439.48],"6-114-36":[-3.39,882.4],"6-114-37":[7.79,520.58],"6-114-38":[-0.72,739.41],"6-114-39":[40.06,660.81],"6-114-40":[66.17,435.75],"6-114-41":[40.88,374.96],"6-114-42":[42.73,458.66],"6-114-43":[12.46,485.33],"6-114-44":[-17.44,336.86],"6-114-45":[-41.04,1170.09],"6-114-46":[-31.63,-2.93],"6-114-47":[-33.62,-14.07],"6-114-48":[-34.78,-15.38],"6-114-49":[-37.5,-16.54],"6-114-50":[-40.37,-17.47],"6-114-51":[-49.64,-19.17],"6-114-52":[-59.34,-23.21],"6-114-53":[-75.38,-29.25],"6-114-54":[-88.58,-36.54],"6-114-55":[-89.56,1284.65],"6-114-56":[522.14,2298.07],"6-114-57":[2001.43,2577.32],"6-114-58":[2428.59,2638.08],"6-114-59":[2355.27,2612.99],"6-114-60":[2205.2,2407.18],"6-114-61":[2221.1,2636.29],"6-114-62":[2602.74,2964.79],"6-114-63":[-29.54,3070.97],"6-115-0":[12.07,29.55],"6-115-1":[8.62,24.47],"5-57-0":[8.14,29.62],"6-115-2":[2.39,17.3],"6-115-3":[1.82,6.24],"5-57-1":[0.69,17.3],"4-28-0":[-4.13,29.62],"6-115-4":[0.8,5.87],"6-115-5":[-0.82,73.43],"5-57-2":[-2,264.4],"6-115-6":[-0.82,115.08],"6-115-7":[1.77,672.76],"5-57-3":[-2.41,1696.85],"4-28-1":[-8.16,2177.91],"6-115-8":[49.51,2830.65],"6-115-9":[503.96,2291.47],"5-57-4":[49.51,2830.65],"6-115-10":[9.12,2265.18],"6-115-11":[12.44,34.94],"5-57-5":[9.12,2513.43],"4-28-2":[-0.3,2830.65],"6-115-12":[15.26,35.92],"6-115-13":[10.83,820.94],"5-57-6":[3.09,1624.43],"6-115-14":[14.24,1183.3],"6-115-15":[9.98,553.47],"5-57-7":[-16.78,1737.87],"4-28-3":[-16.78,2155.76],"6-115-16":[9.03,1740.56],"6-115-17":[8.77,43.6],"5-57-8":[-84.13,2312.97],"6-115-18":[14.8,45.02],"6-115-19":[16.45,54.08],"5-57-9":[-17.62,1666.14],"4-28-4":[-84.13,3800.26],"6-115-20":[24.53,58.31],"6-115-21":[25.92,65.71],"5-57-10":[11.53,96.43],"6-115-22":[27.14,79.03],"6-115-23":[25.23,82.85],"5-57-11":[9.96,768.11],"4-28-5":[9.96,1148.96],"6-115-24":[19.75,904.42],"6-115-25":[34.27,1005.01],"5-57-12":[19.75,1005.01],"6-115-26":[39.75,844.84],"6-115-27":[31.11,457.05],"5-57-13":[31.11,844.84],"4-28-6":[19.75,1005.01],"6-115-28":[39.7,118.49],"6-115-29":[57.52,126.91],"5-57-14":[34.45,129.68],"6-115-30":[61.37,131.2],"6-115-31":[64.24,143.3],"5-57-15":[61.37,144.7],"4-28-7":[34.45,237.05],"6-115-32":[67.54,296.18],"6-115-33":[36.6,3477.99],"5-57-16":[33.02,4032.23],"6-115-34":[32.51,4553.66],"6-115-35":[36.3,265.77],"5-57-17":[24.72,4553.66],"4-28-8":[6.63,5227.39],"6-115-36":[59.75,573.48],"6-115-37":[29.75,1449.42],"5-57-18":[-3.39,1449.42],"6-115-38":[28.52,1670.14],"6-115-39":[244.17,1064.78],"5-57-19":[-0.72,1670.14],"4-28-9":[-15.46,1670.14],"6-115-40":[176.38,727.4],"6-115-41":[119.67,517.69],"5-57-20":[40.88,727.4],"6-115-42":[67.33,518.96],"6-115-43":[59.37,560.11],"5-57-21":[12.46,560.11],"4-28-10":[-55.11,1164.85],"6-115-44":[34.38,521.33],"6-115-45":[-56.77,1522.55],"5-57-22":[-56.77,1522.55],"6-115-46":[-46.81,1610.49],"6-115-47":[-195.28,1424.55],"5-57-23":[-195.28,1610.49],"4-28-11":[-195.28,1610.49],"6-115-48":[-32.35,-13.51],"6-115-49":[-36.1,-15.23],"5-57-24":[-37.5,-13.51],"6-115-50":[-39.15,-17.16],"6-115-51":[-46.49,-18.91],"5-57-25":[-49.64,-17.16],"4-28-12":[-52.08,-13.51],"6-115-52":[-56.64,-22.55],"6-115-53":[-73,-28.38],"5-57-26":[-75.38,-22.55],"6-115-54":[-88.66,-36.23],"6-115-55":[-97.84,759.79],"5-57-27":[-97.84,1284.65],"4-28-13":[-97.84,1701.91],"6-115-56":[-97.84,2001.44],"6-115-57":[1792.1,2428.6],"5-57-28":[-97.84,2577.32],"6-115-58":[2305.92,2560],"6-115-59":[2344.15,2552.69],"5-57-29":[2305.92,2638.08],"4-28-14":[-97.84,2867.37],"6-115-60":[2100.93,2355.28],"6-115-61":[2117.14,2602.75],"5-57-30":[2100.93,2636.29],"6-115-62":[2569.81,2959.59],"6-115-63":[-29.54,3076],"5-57-31":[-29.54,3076],"4-28-15":[-29.54,3076],"6-116-0":[10.66,29.12],"6-116-1":[7.22,22.06],"6-116-2":[2.25,16.65],"6-116-3":[1.8,6.88],"6-116-4":[1.2,361.97],"6-116-5":[-0.57,89.29],"6-116-6":[-0.78,341.42],"6-116-7":[1.77,925.79],"6-116-8":[39.12,2260.37],"6-116-9":[440.9,2390.56],"6-116-10":[-3.36,1856.79],"6-116-11":[13.8,37.51],"6-116-12":[16.01,37.9],"6-116-13":[16.01,37.4],"6-116-14":[18.59,40.87],"6-116-15":[10.25,1590.34],"6-116-16":[-1.61,1786.57],"6-116-17":[8.34,43.6],"6-116-18":[15.48,44.53],"6-116-19":[15.73,47.62],"6-116-20":[16.81,51.48],"6-116-21":[19.43,63.16],"6-116-22":[23.95,70.37],"6-116-23":[29.01,74.37],"6-116-24":[26.61,82.69],"6-116-25":[30.18,93.33],"6-116-26":[30.98,99.51],"6-116-27":[30.96,99.08],"6-116-28":[45.57,117.31],"6-116-29":[55.18,122.74],"6-116-30":[58.42,127.66],"6-116-31":[60.62,135.09],"6-116-32":[62.05,783.66],"6-116-33":[65.85,1907.63],"6-116-34":[31.24,4188.78],"6-116-35":[53.93,4099.51],"6-116-36":[62.28,139.92],"6-116-37":[59.3,129.47],"6-116-38":[36.96,1285.71],"6-116-39":[26.9,1325.23],"6-116-40":[126.78,1296.76],"6-116-41":[189.96,988.43],"6-116-42":[97.05,430.67],"6-116-43":[131.13,1421.13],"6-116-44":[85.41,2241.03],"6-116-45":[-70.56,1999.21],"6-116-46":[-19.93,1568.36],"6-116-47":[-160.77,1420.87],"6-116-48":[-29.69,-12.33],"6-116-49":[-36.45,-13.09],"6-116-50":[-40.73,-17.24],"6-116-51":[-47.3,-19.53],"6-116-52":[-54.93,-22.38],"6-116-53":[-72.48,-27.53],"6-116-54":[-87.53,-35.51],"6-116-55":[-101.33,-44.71],"6-116-56":[-102.54,1792.11],"6-116-57":[1600.89,2338.91],"6-116-58":[2295.63,2481.09],"6-116-59":[2291.17,2481.96],"6-116-60":[1899.8,2344.16],"6-116-61":[1943.7,2569.82],"6-116-62":[2529.66,2955.42],"6-116-63":[-29.54,3081.95],"6-117-0":[9.48,28.14],"6-117-1":[6.76,18.88],"5-58-0":[6.76,29.12],"6-117-2":[2.28,14.99],"6-117-3":[1.62,7.39],"5-58-1":[1.62,16.65],"6-117-4":[1.48,155.99],"6-117-5":[0.48,58.1],"5-58-2":[-0.57,361.97],"6-117-6":[0.39,341.42],"6-117-7":[3.51,692.04],"5-58-3":[-0.78,925.79],"6-117-8":[22.34,2175.65],"6-117-9":[114.09,2203.44],"5-58-4":[22.34,2390.56],"6-117-10":[5.55,2094.72],"6-117-11":[-0.47,1541.51],"5-58-5":[-3.36,2094.72],"6-117-12":[17.95,39.7],"6-117-13":[17.96,40.77],"5-58-6":[16.01,40.77],"6-117-14":[18.87,43.2],"6-117-15":[-7.87,1533.21],"5-58-7":[-7.87,1590.34],"6-117-16":[-7.88,45.41],"6-117-17":[12.99,36.86],"5-58-8":[-7.88,1786.57],"6-117-18":[10.18,34.61],"6-117-19":[10.18,33.01],"5-58-9":[10.18,47.62],"6-117-20":[12.59,37.84],"6-117-21":[14.56,46.1],"5-58-10":[12.59,63.16],"6-117-22":[19.38,56.88],"6-117-23":[25.61,72.87],"5-58-11":[19.38,74.37],"6-117-24":[31.14,82.56],"6-117-25":[36.51,88.5],"5-58-12":[26.61,93.33],"6-117-26":[38.76,89.46],"6-117-27":[39.86,92.44],"5-58-13":[30.96,99.51],"6-117-28":[41.99,110.83],"6-117-29":[35.45,503.73],"5-58-14":[35.45,503.73],"6-117-30":[53.07,118.8],"6-117-31":[54.68,129.03],"5-58-15":[53.07,135.09],"6-117-32":[53.24,964.38],"6-117-33":[57.1,2427.64],"5-58-16":[53.24,2427.64],"6-117-34":[58.87,2022.98],"6-117-35":[-78.97,3071.93],"5-58-17":[-78.97,4188.78],"6-117-36":[62.08,143.56],"6-117-37":[61.21,128.82],"5-58-18":[59.3,143.56],"6-117-38":[57.56,126.23],"6-117-39":[30.2,869.8],"5-58-19":[26.9,1325.23],"6-117-40":[0.01,1008.41],"6-117-41":[75.28,1199.98],"5-58-20":[0.01,1296.76],"6-117-42":[145.68,1550.43],"6-117-43":[-25.52,1629.02],"5-58-21":[-25.52,1629.02],"6-117-44":[-80.43,1622.97],"6-117-45":[-23.03,1262.52],"5-58-22":[-80.43,2241.03],"6-117-46":[-14.62,1.67],"6-117-47":[-24.71,-5.89],"5-58-23":[-160.77,1568.36],"6-117-48":[-29.37,-11.35],"6-117-49":[-35.65,-13.2],"5-58-24":[-36.45,-11.35],"6-117-50":[-40.45,-17.24],"6-117-51":[-48.21,-20.04],"5-58-25":[-48.21,-17.24],"6-117-52":[-53.69,-23.2],"6-117-53":[-71.28,-27.26],"5-58-26":[-72.48,-22.38],"6-117-54":[-86.62,-34.15],"6-117-55":[-101.99,-43.8],"5-58-27":[-101.99,-34.15],"6-117-56":[-106.25,1600.9],"6-117-57":[1442.23,2342.57],"5-58-28":[-106.25,2342.57],"6-117-58":[2216.37,2456.95],"6-117-59":[2218.72,2466.51],"5-58-29":[2216.37,2481.96],"6-117-60":[1411.35,2291.18],"6-117-61":[1690.08,2529.67],"5-58-30":[1411.35,2569.82],"6-117-62":[2447.36,2953.28],"6-117-63":[-29.54,3084.91],"5-58-31":[-29.54,3084.91],"6-118-0":[8.81,27.71],"6-118-1":[6.64,17.18],"6-118-2":[1.82,14.17],"6-118-3":[1.29,7.13],"6-118-4":[1.8,112.12],"6-118-5":[0.82,6.14],"6-118-6":[0.71,75.94],"6-118-7":[3.53,559.13],"6-118-8":[15.46,1102.21],"6-118-9":[92.72,1636.07],"6-118-10":[2.35,1813.48],"6-118-11":[1.21,1062.27],"6-118-12":[17.21,43.51],"6-118-13":[19.63,45.98],"6-118-14":[0.73,1460.13],"6-118-15":[-7.91,1395.62],"6-118-16":[-7.92,30.44],"6-118-17":[6.23,30.2],"6-118-18":[4.7,24.25],"6-118-19":[4.92,23.71],"6-118-20":[6.29,28.34],"6-118-21":[10.46,37.16],"6-118-22":[12.98,50.32],"6-118-23":[19.09,62.28],"6-118-24":[25.96,72.19],"6-118-25":[29.55,81.26],"6-118-26":[33.77,84.41],"6-118-27":[35.3,83.99],"6-118-28":[39.24,102.12],"6-118-29":[44.51,337.7],"6-118-30":[50.71,111.44],"6-118-31":[54.6,118.9],"6-118-32":[58.04,435.72],"6-118-33":[2.74,2388.16],"6-118-34":[53.28,143.46],"6-118-35":[58.58,1094.58],"6-118-36":[60.49,866.24],"6-118-37":[60.7,127.95],"6-118-38":[55.23,126.07],"6-118-39":[48.72,114.91],"6-118-40":[16.01,468.23],"6-118-41":[-7.43,1263.13],"6-118-42":[3.55,1616.85],"6-118-43":[-3.46,1396.93],"6-118-44":[7.57,40.32],"6-118-45":[0.66,22.42],"6-118-46":[-11.28,6.94],"6-118-47":[-22.43,-3.98],"6-118-48":[-29.37,-9.38],"6-118-49":[-35.15,-14.48],"6-118-50":[-40.65,-17.23],"6-118-51":[-48.88,-20.43],"6-118-52":[-56.68,-24.15],"6-118-53":[-69.25,-27.35],"6-118-54":[-85.12,-33.76],"6-118-55":[-101.8,-42.74],"6-118-56":[-107,1522.76],"6-118-57":[1441.77,2294.89],"6-118-58":[1910.74,2319.46],"6-118-59":[1821.95,2399.61],"6-118-60":[803.63,2218.73],"6-118-61":[1627.45,2447.37],"6-118-62":[2363.53,2959.26],"6-118-63":[-29.54,3089.37],"6-119-0":[8.67,27.14],"6-119-1":[6.4,16.74],"5-59-0":[6.4,27.71],"6-119-2":[1.77,13.16],"6-119-3":[1.21,7.08],"5-59-1":[1.21,14.17],"4-29-0":[1.21,29.12],"6-119-4":[2.01,7.08],"6-119-5":[0.49,6.94],"5-59-2":[0.49,112.12],"6-119-6":[1.29,81.65],"6-119-7":[3.24,433.72],"5-59-3":[0.71,559.13],"4-29-1":[-0.78,925.79],"3-14-0":[-8.16,2177.91],"6-119-8":[15.62,1098.37],"6-119-9":[80.42,1766.68],"5-59-4":[15.46,1766.68],"6-119-10":[-12.75,1878.57],"6-119-11":[15.7,935.54],"5-59-5":[-12.75,1878.57],"4-29-2":[-12.75,2390.56],"6-119-12":[13.95,2005.12],"6-119-13":[17.08,2477.12],"5-59-6":[13.95,2477.12],"6-119-14":[1.03,1817.92],"6-119-15":[3.25,33.35],"5-59-7":[-7.91,1817.92],"4-29-3":[-7.91,2477.12],"3-14-1":[-16.78,2830.65],"6-119-16":[4.27,23.39],"6-119-17":[1.7,17.38],"5-59-8":[-7.92,30.44],"6-119-18":[0.23,11.21],"6-119-19":[1.53,11.2],"5-59-9":[0.23,24.25],"4-29-4":[-7.92,1786.57],"6-119-20":[4.13,19.59],"6-119-21":[6.49,25.03],"5-59-10":[4.13,37.16],"6-119-22":[9,34.94],"6-119-23":[13.7,51.55],"5-59-11":[9,62.28],"4-29-5":[4.13,74.37],"3-14-2":[-84.13,3800.26],"6-119-24":[20.27,58.63],"6-119-25":[26.32,64.62],"5-59-12":[20.27,81.26],"6-119-26":[29.21,76.13],"6-119-27":[31.51,78.92],"5-59-13":[29.21,84.41],"4-29-6":[20.27,99.51],"6-119-28":[34.89,91.62],"6-119-29":[42.31,102.14],"5-59-14":[34.89,337.7],"6-119-30":[49.88,110.56],"6-119-31":[51.58,118.67],"5-59-15":[49.88,118.9],"4-29-7":[34.89,503.73],"3-14-3":[19.75,1005.01],"6-119-32":[55.15,126.21],"6-119-33":[55.72,960.88],"5-59-16":[2.74,2388.16],"6-119-34":[6.18,2782.57],"6-119-35":[49.89,1115.42],"5-59-17":[6.18,2782.57],"4-29-8":[-78.97,4188.78],"6-119-36":[63.79,138.91],"6-119-37":[60.58,131.76],"5-59-18":[60.49,866.24],"6-119-38":[55.49,123.47],"6-119-39":[49.44,110.92],"5-59-19":[48.72,126.07],"4-29-9":[26.9,1325.23],"3-14-4":[-78.97,5227.39],"6-119-40":[40.76,99.59],"6-119-41":[33.8,84.71],"5-59-20":[-7.43,1263.13],"6-119-42":[26.01,74.04],"6-119-43":[18.31,59.16],"5-59-21":[-3.46,1616.85],"4-29-10":[-25.52,1629.02],"6-119-44":[11.24,40.96],"6-119-45":[3.47,25.39],"5-59-22":[0.66,40.96],"6-119-46":[-5.63,10.69],"6-119-47":[-18.52,-2.2],"5-59-23":[-22.43,10.69],"4-29-11":[-160.77,2241.03],"3-14-5":[-195.28,2241.03],"6-119-48":[-27.89,-8.1],"6-119-49":[-34.87,-13.33],"5-59-24":[-35.15,-8.1],"6-119-50":[-42.15,-16.71],"6-119-51":[-55.48,-20.53],"5-59-25":[-55.48,-16.71],"4-29-12":[-55.48,-8.1],"6-119-52":[-67.25,-24.47],"6-119-53":[-69.99,-28.77],"5-59-26":[-69.99,-24.15],"6-119-54":[-84.63,-34.47],"6-119-55":[-101.06,-42.64],"5-59-27":[-101.8,-33.76],"4-29-13":[-101.99,-22.38],"3-14-6":[-101.99,1701.91],"6-119-56":[-106.67,1594.21],"6-119-57":[1522.75,2260.16],"5-59-28":[-107,2294.89],"6-119-58":[1520.8,2260.16],"6-119-59":[1378.35,2352.82],"5-59-29":[1378.35,2399.61],"4-29-14":[-107,2481.96],"6-119-60":[115.06,3169.82],"6-119-61":[1392.87,2470.74],"5-59-30":[115.06,3169.82],"6-119-62":[2356.79,2967.24],"6-119-63":[-29.54,3091.37],"5-59-31":[-29.54,3091.37],"4-29-15":[-29.54,3169.82],"3-14-7":[-107,3169.82],"6-120-0":[8.69,26.75],"6-120-1":[5.52,17.4],"6-120-2":[1.82,12.04],"6-120-3":[0.59,7.08],"6-120-4":[2.09,7.08],"6-120-5":[0.74,5.17],"6-120-6":[1.05,56.9],"6-120-7":[2.85,903.95],"6-120-8":[56.39,1454.04],"6-120-9":[12.61,1757.61],"6-120-10":[12.59,947.68],"6-120-11":[15.29,2605.13],"6-120-12":[7.08,3631.59],"6-120-13":[-0.7,3468.03],"6-120-14":[1.4,40.12],"6-120-15":[4.12,24.95],"6-120-16":[-0.27,17.95],"6-120-17":[-4.97,7.43],"6-120-18":[-6.56,3],"6-120-19":[-3.98,7.47],"6-120-20":[-0.58,12.98],"6-120-21":[2.19,17.28],"6-120-22":[4.58,25.53],"6-120-23":[8.89,39.89],"6-120-24":[15.15,49.5],"6-120-25":[21.3,58.42],"6-120-26":[25.24,62.27],"6-120-27":[28.53,69.78],"6-120-28":[32.36,84.63],"6-120-29":[37.3,831.89],"6-120-30":[42.45,102.95],"6-120-31":[46.51,110.31],"6-120-32":[48.73,118.16],"6-120-33":[52.39,128.82],"6-120-34":[36.32,1251.14],"6-120-35":[16.84,2387.59],"6-120-36":[45.89,264.39],"6-120-37":[59.17,130.22],"6-120-38":[55.65,121.69],"6-120-39":[49.17,115.94],"6-120-40":[42.96,105.9],"6-120-41":[35.4,90.52],"6-120-42":[28.58,74.62],"6-120-43":[8.57,495.66],"6-120-44":[12.8,48.16],"6-120-45":[5.96,25.68],"6-120-46":[-2.48,12.37],"6-120-47":[-16.47,-0.49],"6-120-48":[-25.27,-6.4],"6-120-49":[-33.37,-10.64],"6-120-50":[-42.5,-14.52],"6-120-51":[-55.8,383.74],"6-120-52":[-67.98,-26.3],"6-120-53":[-72.63,-30.51],"6-120-54":[-84.73,-34.99],"6-120-55":[-104.1,-43.28],"6-120-56":[-112.02,1627.11],"6-120-57":[475.75,2656.26],"6-120-58":[867.53,2268.9],"6-120-59":[1045.7,2732.99],"6-120-60":[-105.78,3191.81],"6-120-61":[347.55,2726.57],"6-120-62":[2344.78,2977.2],"6-120-63":[-29.54,3090.38],"6-121-0":[8.97,26.75],"6-121-1":[5.52,18.2],"5-60-0":[5.52,26.75],"6-121-2":[1.99,11],"6-121-3":[0.42,4.82],"5-60-1":[0.42,12.04],"6-121-4":[2.25,7.43],"6-121-5":[0.71,4.93],"5-60-2":[0.71,7.43],"6-121-6":[1.29,271.44],"6-121-7":[2.85,1052.69],"5-60-3":[1.05,1052.69],"6-121-8":[37.86,1653.57],"6-121-9":[11.56,1415.31],"5-60-4":[11.56,1757.61],"6-121-10":[10.82,1872.79],"6-121-11":[9.11,3277.23],"5-60-5":[9.11,3277.23],"6-121-12":[-5.06,4774.23],"6-121-13":[-5.97,28.14],"5-60-6":[-5.97,4774.23],"6-121-14":[3.79,18.42],"6-121-15":[-1.09,16.76],"5-60-7":[-1.09,40.12],"6-121-16":[-7.93,7.27],"6-121-17":[-11.57,-0.26],"5-60-8":[-11.57,17.95],"6-121-18":[-11.9,-2.7],"6-121-19":[-13.5,-0.57],"5-60-9":[-13.5,7.47],"6-121-20":[-13.4,2.2],"6-121-21":[-4.89,8.56],"5-60-10":[-13.4,17.28],"6-121-22":[1.31,15.96],"6-121-23":[6.08,30.18],"5-60-11":[1.31,39.89],"6-121-24":[11.75,45.27],"6-121-25":[17.54,49.7],"5-60-12":[11.75,58.42],"6-121-26":[24.65,60.14],"6-121-27":[25.47,66.56],"5-60-13":[24.65,69.78],"6-121-28":[28.73,75.09],"6-121-29":[32.36,84.91],"5-60-14":[28.73,831.89],"6-121-30":[37.91,673.97],"6-121-31":[41.13,96.35],"5-60-15":[37.91,673.97],"6-121-32":[43.4,101.5],"6-121-33":[46.93,118.89],"5-60-16":[43.4,128.82],"6-121-34":[49.6,839.37],"6-121-35":[9.56,1980.07],"5-60-17":[9.56,2387.59],"6-121-36":[44.87,241.22],"6-121-37":[58.56,129.2],"5-60-18":[44.87,264.39],"6-121-38":[56.18,122.21],"6-121-39":[50.7,116.7],"5-60-19":[49.17,122.21],"6-121-40":[45.59,106.12],"6-121-41":[37.73,94.44],"5-60-20":[35.4,106.12],"6-121-42":[32.38,82.35],"6-121-43":[24.79,66.27],"5-60-21":[8.57,495.66],"6-121-44":[14.55,55.75],"6-121-45":[6.51,35.28],"5-60-22":[5.96,55.75],"6-121-46":[-0.5,21.22],"6-121-47":[-12.26,3.98],"5-60-23":[-16.47,21.22],"6-121-48":[-19.81,-3.49],"6-121-49":[-29.02,-8.06],"5-60-24":[-33.37,-3.49],"6-121-50":[-41.05,-10.84],"6-121-51":[-63.16,-19.98],"5-60-25":[-63.16,383.74],"6-121-52":[-72.98,-28.17],"6-121-53":[-77.22,-33.82],"5-60-26":[-77.22,-26.3],"6-121-54":[-88.46,-36.59],"6-121-55":[-106.46,1402.86],"5-60-27":[-106.46,1402.86],"6-121-56":[-114.63,475.76],"6-121-57":[-117.59,2620.78],"5-60-28":[-117.59,2656.26],"6-121-58":[-116.47,3433.82],"6-121-59":[-115.52,3317.92],"5-60-29":[-116.47,3433.82],"6-121-60":[-115.69,2320.2],"6-121-61":[-91.83,4077.78],"5-60-30":[-115.69,4077.78],"6-121-62":[1924.9,2984.14],"6-121-63":[-29.54,3088.17],"5-60-31":[-29.54,3090.38],"6-122-0":[9.42,26.76],"6-122-1":[5.65,18.59],"6-122-2":[2.49,11.4],"6-122-3":[0.26,4.81],"6-122-4":[1.95,7.47],"6-122-5":[0.77,4.8],"6-122-6":[1.14,7.62],"6-122-7":[3.84,1528.57],"6-122-8":[108.15,1757.51],"6-122-9":[10.94,1582.28],"6-122-10":[6.8,1233.67],"6-122-11":[7.89,932.54],"6-122-12":[-3.4,850.98],"6-122-13":[1.64,20.11],"6-122-14":[0.48,16.34],"6-122-15":[-7.21,6.88],"6-122-16":[-12.07,-0.71],"6-122-17":[-17.59,-4.25],"6-122-18":[-18.55,-5.37],"6-122-19":[-18.72,-6.19],"6-122-20":[-17.57,-2.87],"6-122-21":[-10.75,2.46],"6-122-22":[-3.63,10.62],"6-122-23":[1.49,22.49],"6-122-24":[7.72,36.85],"6-122-25":[14.12,46.47],"6-122-26":[19.28,54.72],"6-122-27":[23.59,60.99],"6-122-28":[26.75,65.91],"6-122-29":[28.53,72.29],"6-122-30":[31.65,81.32],"6-122-31":[36.02,86.88],"6-122-32":[39.15,92.44],"6-122-33":[41.65,106.03],"6-122-34":[46.65,119.42],"6-122-35":[48.07,866.32],"6-122-36":[45.55,126.93],"6-122-37":[53.7,127.16],"6-122-38":[52.98,340.77],"6-122-39":[35.29,1689.03],"6-122-40":[46.98,106.61],"6-122-41":[40,96.95],"6-122-42":[33.4,82.62],"6-122-43":[27.67,66.13],"6-122-44":[18.65,57.54],"6-122-45":[14.32,44.27],"6-122-46":[3,29.21],"6-122-47":[-11.15,13.47],"6-122-48":[-19.42,-2.93],"6-122-49":[-27.38,-6.28],"6-122-50":[-46.34,517.88],"6-122-51":[-65.39,-20.43],"6-122-52":[-77.62,-31.58],"6-122-53":[-81.78,-37.06],"6-122-54":[-91.49,-38.57],"6-122-55":[-105.7,-45.16],"6-122-56":[-117.38,-51.89],"6-122-57":[-60.46,3075.8],"6-122-58":[-117.89,3148.6],"6-122-59":[-115.52,2551.83],"6-122-60":[-111.82,209.78],"6-122-61":[-93.22,3800.64],"6-122-62":[1431.84,3358.99],"6-122-63":[-29.54,3084.48],"6-123-0":[9.85,26.78],"6-123-1":[5.73,18.86],"5-61-0":[5.65,26.78],"6-123-2":[2.93,12],"6-123-3":[0.14,5.41],"5-61-1":[0.14,12],"4-30-0":[0.14,26.78],"6-123-4":[0.92,8.02],"6-123-5":[1.11,5.42],"5-61-2":[0.77,8.02],"6-123-6":[1.15,7.19],"6-123-7":[3.59,1680.33],"5-61-3":[1.14,1680.33],"4-30-1":[0.71,1680.33],"6-123-8":[102.27,1646.59],"6-123-9":[12.03,1328.47],"5-61-4":[10.94,1757.51],"6-123-10":[4.75,1210.93],"6-123-11":[5.38,20.59],"5-61-5":[4.75,1233.67],"4-30-2":[4.75,3277.23],"6-123-12":[-6.75,744.81],"6-123-13":[-5.24,18.85],"5-61-6":[-6.75,850.98],"6-123-14":[-6.42,11.45],"6-123-15":[-19.48,0.49],"5-61-7":[-19.48,16.34],"4-30-3":[-19.48,4774.23],"6-123-16":[-20.74,-3.9],"6-123-17":[-25.13,-6.72],"5-61-8":[-25.13,-0.71],"6-123-18":[-25.13,-8.71],"6-123-19":[-20.44,-8.81],"5-61-9":[-25.13,-5.37],"4-30-4":[-25.13,17.95],"6-123-20":[-19,-6.48],"6-123-21":[-14.63,-2.18],"5-61-10":[-19,2.46],"6-123-22":[-8.94,1.5],"6-123-23":[-0.85,14.41],"5-61-11":[-8.94,22.49],"4-30-5":[-19,39.89],"6-123-24":[5.5,29.61],"6-123-25":[10.76,38.58],"5-61-12":[5.5,46.47],"6-123-26":[16.15,50.77],"6-123-27":[19.03,52.37],"5-61-13":[16.15,60.99],"4-30-6":[5.5,69.78],"6-123-28":[20.24,74.26],"6-123-29":[19.92,68.93],"5-61-14":[19.92,74.26],"6-123-30":[27.6,72.06],"6-123-31":[30.84,78.32],"5-61-15":[27.6,86.88],"4-30-7":[19.92,831.89],"6-123-32":[9.9,105.9],"6-123-33":[38.55,93.32],"5-61-16":[9.9,106.03],"6-123-34":[42.04,104.47],"6-123-35":[26.89,608.86],"5-61-17":[26.89,866.32],"4-30-8":[9.56,2387.59],"6-123-36":[44.53,1017.74],"6-123-37":[-166.26,1941.75],"5-61-18":[-166.26,1941.75],"6-123-38":[49.91,717.25],"6-123-39":[18.08,1664.47],"5-61-19":[18.08,1689.03],"4-30-9":[-166.26,1941.75],"6-123-40":[48.47,309.11],"6-123-41":[41.3,105.67],"5-61-20":[40,309.11],"6-123-42":[34.67,357.87],"6-123-43":[28.79,77.86],"5-61-21":[27.67,357.87],"4-30-10":[8.57,495.66],"6-123-44":[23.62,65.38],"6-123-45":[14.32,51.14],"5-61-22":[14.32,65.38],"6-123-46":[6.73,41.96],"6-123-47":[-345.62,2939.6],"5-61-23":[-345.62,2939.6],"4-30-11":[-345.62,2939.6],"6-123-48":[-74.06,2088.42],"6-123-49":[-22.42,566.58],"5-61-24":[-74.06,2088.42],"6-123-50":[-82.31,649.83],"6-123-51":[-70.1,-20.38],"5-61-25":[-82.31,649.83],"4-30-12":[-82.31,2088.42],"6-123-52":[-83.38,-32.37],"6-123-53":[-91.85,-39.81],"5-61-26":[-91.85,-31.58],"6-123-54":[-95.58,-41.02],"6-123-55":[-108.17,-46.75],"5-61-27":[-108.17,-38.57],"4-30-13":[-108.17,1402.86],"6-123-56":[-118.68,-52.76],"6-123-57":[-116.81,3530.38],"5-61-28":[-118.68,3530.38],"6-123-58":[-117.58,2686.35],"6-123-59":[-114.23,3368.3],"5-61-29":[-117.89,3368.3],"4-30-14":[-118.68,3530.38],"6-123-60":[-105.65,-47.93],"6-123-61":[-94.72,4324.92],"5-61-30":[-111.82,4324.92],"6-123-62":[1173.34,3260.29],"6-123-63":[-29.54,3084.24],"5-61-31":[-29.54,3358.99],"4-30-15":[-115.69,4324.92],"6-124-0":[10.16,26.79],"6-124-1":[6.14,19.04],"6-124-2":[3.03,12.26],"6-124-3":[0.14,5.75],"6-124-4":[0.89,8.06],"6-124-5":[1.26,5.67],"6-124-6":[1.39,7.36],"6-124-7":[3.52,1617.82],"6-124-8":[8.51,1409.69],"6-124-9":[10.13,2305.88],"6-124-10":[0.45,2164.88],"6-124-11":[2.56,14.63],"6-124-12":[-3.24,14.32],"6-124-13":[-10.59,10.54],"6-124-14":[-10.36,8.76],"6-124-15":[-21.04,0],"6-124-16":[-24.64,-2.76],"6-124-17":[-31.2,-3.85],"6-124-18":[-30.75,-6.47],"6-124-19":[-26.11,-2.49],"6-124-20":[-24.31,-7.51],"6-124-21":[-15.23,-4.76],"6-124-22":[-13.59,-0.84],"6-124-23":[-4.55,9.7],"6-124-24":[2.35,21.54],"6-124-25":[7.35,32.3],"6-124-26":[12.55,38.19],"6-124-27":[15.94,48.53],"6-124-28":[21.55,62.2],"6-124-29":[18.5,57.21],"6-124-30":[24.34,61.69],"6-124-31":[27.97,68.96],"6-124-32":[29.89,114.26],"6-124-33":[33.15,84.09],"6-124-34":[36.93,96.35],"6-124-35":[42.03,117.27],"6-124-36":[44.94,447.27],"6-124-37":[62.06,132.91],"6-124-38":[41.71,1137.87],"6-124-39":[34.07,895.97],"6-124-40":[47.96,131.97],"6-124-41":[46.43,105.92],"6-124-42":[39.86,96.09],"6-124-43":[32.69,85.75],"6-124-44":[26.31,75.44],"6-124-45":[20.78,56.69],"6-124-46":[8.98,1441.5],"6-124-47":[-4.07,3719.73],"6-124-48":[-31.98,2290.2],"6-124-49":[-23.42,-3.78],"6-124-50":[-84.41,535.73],"6-124-51":[-73.94,-20.62],"6-124-52":[-86.86,-35.05],"6-124-53":[-95.4,-42.17],"6-124-54":[-98.04,-43.58],"6-124-55":[-110.57,-48.45],"6-124-56":[-118.68,-54.08],"6-124-57":[-117.84,3544.4],"6-124-58":[-118.43,1962.19],"6-124-59":[-115.85,2252.06],"6-124-60":[-105.91,-48.57],"6-124-61":[-95.38,3812.59],"6-124-62":[594.22,3705.94],"6-124-63":[-29.54,3085.39],"6-125-0":[10.35,26.81],"6-125-1":[6.14,19.41],"5-62-0":[6.14,26.81],"6-125-2":[3.26,12.44],"6-125-3":[0.9,6.39],"5-62-1":[0.14,12.44],"6-125-4":[1.27,6.49],"6-125-5":[1.13,5.32],"5-62-2":[0.89,8.06],"6-125-6":[1.29,6.47],"6-125-7":[3.14,1111.24],"5-62-3":[1.29,1617.82],"6-125-8":[7.11,1048.77],"6-125-9":[6.89,1518.99],"5-62-4":[6.89,2305.88],"6-125-10":[-2.91,1665.46],"6-125-11":[0,6.86],"5-62-5":[-2.91,2164.88],"6-125-12":[-2.34,8.77],"6-125-13":[-14.46,953.56],"5-62-6":[-14.46,953.56],"6-125-14":[-5.06,5.28],"6-125-15":[-17.98,-2.39],"5-62-7":[-21.04,8.76],"6-125-16":[-24.4,-7.68],"6-125-17":[-28.6,-10.11],"5-62-8":[-31.2,-2.76],"6-125-18":[-28.6,-11],"6-125-19":[-25.62,-2.41],"5-62-9":[-30.75,-2.41],"6-125-20":[-22.75,-4.66],"6-125-21":[-15.81,-6.04],"5-62-10":[-24.31,-4.66],"6-125-22":[-14.02,-3.42],"6-125-23":[-6.77,4.64],"5-62-11":[-14.02,9.7],"6-125-24":[1.21,15.8],"6-125-25":[6.11,24.94],"5-62-12":[1.21,32.3],"6-125-26":[10.22,30.26],"6-125-27":[13.87,41.98],"5-62-13":[10.22,48.53],"6-125-28":[18.08,48.13],"6-125-29":[17.79,54.5],"5-62-14":[17.79,62.2],"6-125-30":[22.38,56.85],"6-125-31":[16.56,59.8],"5-62-15":[16.56,68.96],"6-125-32":[25.85,66.31],"6-125-33":[27.99,72.87],"5-62-16":[25.85,114.26],"6-125-34":[33,81.65],"6-125-35":[38.91,103.05],"5-62-17":[33,117.27],"6-125-36":[47.5,124.13],"6-125-37":[57.22,130.49],"5-62-18":[44.94,447.27],"6-125-38":[61.15,131.46],"6-125-39":[52.54,288.83],"5-62-19":[34.07,1137.87],"6-125-40":[48.88,107.87],"6-125-41":[48.01,104.69],"5-62-20":[46.43,131.97],"6-125-42":[42.87,97.22],"6-125-43":[37.6,89.45],"5-62-21":[32.69,97.22],"6-125-44":[6.97,816.34],"6-125-45":[-0.97,2517.08],"5-62-22":[-0.97,2517.08],"6-125-46":[-17.88,2863.4],"6-125-47":[-35.65,2605.15],"5-62-23":[-35.65,3719.73],"6-125-48":[-10.05,11.03],"6-125-49":[-27.68,-4.71],"5-62-24":[-31.98,2290.2],"6-125-50":[-48.98,-11.91],"6-125-51":[-75.78,-21.91],"5-62-25":[-84.41,535.73],"6-125-52":[-88.21,-37.16],"6-125-53":[-96.9,-44.36],"5-62-26":[-96.9,-35.05],"6-125-54":[-99.71,-46.22],"6-125-55":[-113.95,-50.03],"5-62-27":[-113.95,-43.58],"6-125-56":[-118.23,-55.58],"6-125-57":[-119.6,-57.02],"5-62-28":[-119.6,3544.4],"6-125-58":[-119.13,-57.36],"6-125-59":[-115.13,-52.66],"5-62-29":[-119.13,2252.06],"6-125-60":[-106.04,-48.63],"6-125-61":[-95.54,2586.73],"5-62-30":[-106.04,3812.59],"6-125-62":[617.47,3991.97],"6-125-63":[-29.54,3087.55],"5-62-31":[-29.54,3991.97],"6-126-0":[10.48,26.83],"6-126-1":[6.39,19.79],"6-126-2":[3.59,12.74],"6-126-3":[1.34,7.32],"6-126-4":[1.23,5.6],"6-126-5":[1.15,4.51],"6-126-6":[1.24,5.95],"6-126-7":[2.53,1644.02],"6-126-8":[4.57,1334.46],"6-126-9":[2.53,1348.08],"6-126-10":[-4.55,360.68],"6-126-11":[-0.22,3.75],"6-126-12":[-4.16,11.04],"6-126-13":[-20.67,663.5],"6-126-14":[-17.18,1.9],"6-126-15":[-17.03,-2.13],"6-126-16":[-23.5,-6.98],"6-126-17":[-25.32,-10.8],"6-126-18":[-24.77,-10.53],"6-126-19":[-22.17,-7.92],"6-126-20":[-19.02,-6.36],"6-126-21":[-15.67,-4.68],"6-126-22":[-13.71,-4.14],"6-126-23":[-8.08,4.18],"6-126-24":[0.43,12.94],"6-126-25":[5.52,20.01],"6-126-26":[9,27.01],"6-126-27":[12.09,34.89],"6-126-28":[14.82,40.97],"6-126-29":[17.43,44.78],"6-126-30":[17.98,49.65],"6-126-31":[20.75,52.08],"6-126-32":[19.19,56],"6-126-33":[25.26,66],"6-126-34":[28.98,76.55],"6-126-35":[34.87,95.02],"6-126-36":[41.34,297.72],"6-126-37":[52.33,122.31],"6-126-38":[55.22,587.24],"6-126-39":[52.13,124.15],"6-126-40":[49.8,107.99],"6-126-41":[47.34,102.99],"6-126-42":[43.4,96.7],"6-126-43":[39.32,87],"6-126-44":[-5.9,921.24],"6-126-45":[-23.78,2784.98],"6-126-46":[-12.29,1743.24],"6-126-47":[4.88,29.21],"6-126-48":[-9.96,11.4],"6-126-49":[-34.93,-4.57],"6-126-50":[-54.64,-14.05],"6-126-51":[-75.71,-26.38],"6-126-52":[-89.11,-37.37],"6-126-53":[-98.36,-44.98],"6-126-54":[-101.06,-48.44],"6-126-55":[-115.57,-50.65],"6-126-56":[-120.87,-56.97],"6-126-57":[-122.6,-57.42],"6-126-58":[-120.57,-57.41],"6-126-59":[-115.91,-52.64],"6-126-60":[-106.89,-48.23],"6-126-61":[-95.56,3164.9],"6-126-62":[1096.86,4009.42],"6-126-63":[-29.54,3089.77],"6-127-0":[10.58,26.87],"6-127-1":[6.39,20.25],"5-63-0":[6.39,26.87],"6-127-2":[3.82,13.4],"6-127-3":[2.41,8.63],"5-63-1":[1.34,13.4],"4-31-0":[0.14,26.87],"6-127-4":[1.13,6.79],"6-127-5":[1.13,4.39],"5-63-2":[1.13,6.79],"6-127-6":[1.24,612.64],"6-127-7":[2.31,1712.25],"5-63-3":[1.24,1712.25],"4-31-1":[0.89,1712.25],"3-15-0":[0.14,1712.25],"6-127-8":[4.5,1465.56],"6-127-9":[3.01,918.23],"5-63-4":[2.53,1465.56],"6-127-10":[-3.08,11.47],"6-127-11":[-0.12,3.44],"5-63-5":[-4.55,360.68],"4-31-2":[-4.55,2305.88],"6-127-12":[-1.99,11.61],"6-127-13":[-24.8,1210.91],"5-63-6":[-24.8,1210.91],"6-127-14":[-25.57,1.39],"6-127-15":[-13.94,-1.38],"5-63-7":[-25.57,1.9],"4-31-3":[-25.57,1210.91],"3-15-1":[-25.57,4774.23],"2-7-0":[-25.57,4774.23],"6-127-16":[-21,-6.43],"6-127-17":[-25.9,-10.68],"5-63-8":[-25.9,-6.43],"6-127-18":[-26.05,-10.54],"6-127-19":[-22.59,-7.92],"5-63-9":[-26.05,-7.92],"4-31-4":[-31.2,-2.41],"6-127-20":[-19,-7.92],"6-127-21":[-16.82,-4.7],"5-63-10":[-19.02,-4.68],"6-127-22":[-10.69,-3.04],"6-127-23":[-8.26,1.26],"5-63-11":[-13.71,4.18],"4-31-5":[-24.31,9.7],"3-15-2":[-31.2,39.89],"6-127-24":[0.43,9.72],"6-127-25":[4.5,17.61],"5-63-12":[0.43,20.01],"6-127-26":[6.9,22.78],"6-127-27":[8.89,29.21],"5-63-13":[6.9,34.89],"4-31-6":[0.43,48.53],"6-127-28":[12.01,35],"6-127-29":[14.22,37.73],"5-63-14":[12.01,44.78],"6-127-30":[15.67,40.09],"6-127-31":[19.02,46.55],"5-63-15":[15.67,52.08],"4-31-7":[12.01,68.96],"3-15-3":[0.43,831.89],"2-7-1":[-84.13,3800.26],"1-3-0":[-268.7,7512.84],"6-127-32":[20.92,50.53],"6-127-33":[22.89,57.98],"5-63-16":[19.19,66],"6-127-34":[25.27,69.75],"6-127-35":[27.53,86.05],"5-63-17":[25.27,95.02],"4-31-8":[19.19,117.27],"6-127-36":[39.54,104.68],"6-127-37":[22.06,1069.23],"5-63-18":[22.06,1069.23],"6-127-38":[20.15,1371.15],"6-127-39":[49.74,108.66],"5-63-19":[20.15,1371.15],"4-31-9":[20.15,1371.15],"3-15-4":[-166.26,2387.59],"6-127-40":[48.93,103.15],"6-127-41":[47.07,98.56],"5-63-20":[47.07,107.99],"6-127-42":[43.96,94.48],"6-127-43":[38.98,91.71],"5-63-21":[38.98,96.7],"4-31-10":[32.69,131.97],"6-127-44":[20.8,83.16],"6-127-45":[-12.67,1759.88],"5-63-22":[-23.78,2784.98],"6-127-46":[11.75,42.6],"6-127-47":[3.24,30.55],"5-63-23":[-12.29,1743.24],"4-31-11":[-35.65,3719.73],"3-15-5":[-345.62,3719.73],"2-7-2":[-345.62,5227.39],"6-127-48":[-9.45,37.42],"6-127-49":[-38.82,351.39],"5-63-24":[-38.82,351.39],"6-127-50":[-56.24,-17.74],"6-127-51":[-75.79,-28.67],"5-63-25":[-75.79,-14.05],"4-31-12":[-84.41,2290.2],"6-127-52":[-88.85,-37.45],"6-127-53":[-98.42,-44.71],"5-63-26":[-98.42,-37.37],"6-127-54":[-101.55,-48.81],"6-127-55":[-117.07,-50.94],"5-63-27":[-117.07,-48.44],"4-31-13":[-117.07,-35.05],"3-15-6":[-117.07,2290.2],"6-127-56":[-123.45,-57.63],"6-127-57":[-123.93,-60.36],"5-63-28":[-123.93,-56.97],"6-127-58":[-123.3,-58.62],"6-127-59":[-117.49,-53.65],"5-63-29":[-123.3,-52.64],"4-31-14":[-123.93,3544.4],"6-127-60":[-109.53,-48.22],"6-127-61":[-95.58,1201.67],"5-63-30":[-109.53,3164.9],"6-127-62":[-43.08,3227.47],"6-127-63":[-31.68,3092.98],"5-63-31":[-43.08,4009.42],"4-31-15":[-109.53,4009.42],"3-15-7":[-123.93,4324.92],"2-7-3":[-123.93,4324.92],"1-3-1":[-345.62,5227.39],"0-1-0":[-398.55,8777.15]} \ No newline at end of file diff --git a/libs/cesium/1.111/Cesium.js b/libs/cesium/1.111/Cesium.js new file mode 100644 index 000000000..9d1b40071 --- /dev/null +++ b/libs/cesium/1.111/Cesium.js @@ -0,0 +1,14495 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var Cesium=(()=>{var C_e=Object.create;var iA=Object.defineProperty;var V_e=Object.getOwnPropertyDescriptor;var L_e=Object.getOwnPropertyNames;var R_e=Object.getPrototypeOf,Z_e=Object.prototype.hasOwnProperty;var Q0=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var yc=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),G_e=(e,t)=>{for(var n in t)iA(e,n,{get:t[n],enumerable:!0})},k8=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of L_e(t))!Z_e.call(e,o)&&o!==n&&iA(e,o,{get:()=>t[o],enumerable:!(i=V_e(t,o))||i.enumerable});return e};var T=(e,t,n)=>(n=e!=null?C_e(R_e(e)):{},k8(t||!e||!e.__esModule?iA(n,"default",{value:e,enumerable:!0}):n,e)),E_e=e=>k8(iA({},"__esModule",{value:!0}),e);var S=yc(()=>{globalThis.CESIUM_WORKERS=atob("dmFyIENlc2l1bVdvcmtlcnM9KCgpPT57dmFyIEdTPU9iamVjdC5jcmVhdGU7dmFyIEJsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgelM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgalM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIEhTPU9iamVjdC5nZXRQcm90b3R5cGVPZixxUz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBEbz0odD0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkodCx7Z2V0OihlLG4pPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbbl19KTp0KShmdW5jdGlvbih0KXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrdCsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KSxpMT10PT5lPT57dmFyIG49dFtlXTtpZihuKXJldHVybiBuKCk7dGhyb3cgbmV3IEVycm9yKCJNb2R1bGUgbm90IGZvdW5kIGluIGJ1bmRsZTogIitlKX07dmFyIFo9KHQsZSk9PigpPT4odCYmKGU9dCh0PTApKSxlKTt2YXIgVW49KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKSxtZT0odCxlKT0+e2Zvcih2YXIgbiBpbiBlKUJsKHQsbix7Z2V0OmVbbl0sZW51bWVyYWJsZTohMH0pfSxzMT0odCxlLG4sbyk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgciBvZiBqUyhlKSkhcVMuY2FsbCh0LHIpJiZyIT09biYmQmwodCxyLHtnZXQ6KCk9PmVbcl0sZW51bWVyYWJsZTohKG89elMoZSxyKSl8fG8uZW51bWVyYWJsZX0pO3JldHVybiB0fTt2YXIgbW89KHQsZSxuKT0+KG49dCE9bnVsbD9HUyhIUyh0KSk6e30sczEoZXx8IXR8fCF0Ll9fZXNNb2R1bGU/QmwobiwiZGVmYXVsdCIse3ZhbHVlOnQsZW51bWVyYWJsZTohMH0pOm4sdCkpLEtTPXQ9PnMxKEJsKHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0KTtmdW5jdGlvbiBXUyh0KXtyZXR1cm4gdCE9bnVsbH12YXIgaCxhdD1aKCgpPT57aD1XU30pO2Z1bmN0aW9uIFVzKHQpe3RoaXMubmFtZT0iRGV2ZWxvcGVyRXJyb3IiLHRoaXMubWVzc2FnZT10O2xldCBlO3RyeXt0aHJvdyBuZXcgRXJyb3J9Y2F0Y2gobil7ZT1uLnN0YWNrfXRoaXMuc3RhY2s9ZX12YXIgQixIdD1aKCgpPT57YXQoKTtoKE9iamVjdC5jcmVhdGUpJiYoVXMucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxVcy5wcm90b3R5cGUuY29uc3RydWN0b3I9VXMpO1VzLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2xldCB0PWAke3RoaXMubmFtZX06ICR7dGhpcy5tZXNzYWdlfWA7cmV0dXJuIGgodGhpcy5zdGFjaykmJih0Kz1gCiR7dGhpcy5zdGFjay50b1N0cmluZygpfWApLHR9O1VzLnRocm93SW5zdGFudGlhdGlvbkVycm9yPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFVzKCJUaGlzIGZ1bmN0aW9uIGRlZmluZXMgYW4gaW50ZXJmYWNlIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4iKX07Qj1Vc30pO2Z1bmN0aW9uIFhTKHQpe3JldHVybmAke3R9IGlzIHJlcXVpcmVkLCBhY3R1YWwgdmFsdWUgd2FzIHVuZGVmaW5lZGB9ZnVuY3Rpb24gamModCxlLG4pe3JldHVybmBFeHBlY3RlZCAke259IHRvIGJlIHR5cGVvZiAke2V9LCBhY3R1YWwgdHlwZW9mIHdhcyAke3R9YH12YXIgWG4seSxZdD1aKCgpPT57YXQoKTtIdCgpO1huPXt9O1huLnR5cGVPZj17fTtYbi5kZWZpbmVkPWZ1bmN0aW9uKHQsZSl7aWYoIWgoZSkpdGhyb3cgbmV3IEIoWFModCkpfTtYbi50eXBlT2YuZnVuYz1mdW5jdGlvbih0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBCKGpjKHR5cGVvZiBlLCJmdW5jdGlvbiIsdCkpfTtYbi50eXBlT2Yuc3RyaW5nPWZ1bmN0aW9uKHQsZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBCKGpjKHR5cGVvZiBlLCJzdHJpbmciLHQpKX07WG4udHlwZU9mLm51bWJlcj1mdW5jdGlvbih0LGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyIil0aHJvdyBuZXcgQihqYyh0eXBlb2YgZSwibnVtYmVyIix0KSl9O1huLnR5cGVPZi5udW1iZXIubGVzc1RoYW49ZnVuY3Rpb24odCxlLG4pe2lmKFhuLnR5cGVPZi5udW1iZXIodCxlKSxlPj1uKXRocm93IG5ldyBCKGBFeHBlY3RlZCAke3R9IHRvIGJlIGxlc3MgdGhhbiAke259LCBhY3R1YWwgdmFsdWUgd2FzICR7ZX1gKX07WG4udHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzPWZ1bmN0aW9uKHQsZSxuKXtpZihYbi50eXBlT2YubnVtYmVyKHQsZSksZT5uKXRocm93IG5ldyBCKGBFeHBlY3RlZCAke3R9IHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke259LCBhY3R1YWwgdmFsdWUgd2FzICR7ZX1gKX07WG4udHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbj1mdW5jdGlvbih0LGUsbil7aWYoWG4udHlwZU9mLm51bWJlcih0LGUpLGU8PW4pdGhyb3cgbmV3IEIoYEV4cGVjdGVkICR7dH0gdG8gYmUgZ3JlYXRlciB0aGFuICR7bn0sIGFjdHVhbCB2YWx1ZSB3YXMgJHtlfWApfTtYbi50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHM9ZnVuY3Rpb24odCxlLG4pe2lmKFhuLnR5cGVPZi5udW1iZXIodCxlKSxlPG4pdGhyb3cgbmV3IEIoYEV4cGVjdGVkICR7dH0gdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7bn0sIGFjdHVhbCB2YWx1ZSB3YXMgJHtlfWApfTtYbi50eXBlT2Yub2JqZWN0PWZ1bmN0aW9uKHQsZSl7aWYodHlwZW9mIGUhPSJvYmplY3QiKXRocm93IG5ldyBCKGpjKHR5cGVvZiBlLCJvYmplY3QiLHQpKX07WG4udHlwZU9mLmJvb2w9ZnVuY3Rpb24odCxlKXtpZih0eXBlb2YgZSE9ImJvb2xlYW4iKXRocm93IG5ldyBCKGpjKHR5cGVvZiBlLCJib29sZWFuIix0KSl9O1huLnR5cGVPZi5iaWdpbnQ9ZnVuY3Rpb24odCxlKXtpZih0eXBlb2YgZSE9ImJpZ2ludCIpdGhyb3cgbmV3IEIoamModHlwZW9mIGUsImJpZ2ludCIsdCkpfTtYbi50eXBlT2YubnVtYmVyLmVxdWFscz1mdW5jdGlvbih0LGUsbixvKXtpZihYbi50eXBlT2YubnVtYmVyKHQsbiksWG4udHlwZU9mLm51bWJlcihlLG8pLG4hPT1vKXRocm93IG5ldyBCKGAke3R9IG11c3QgYmUgZXF1YWwgdG8gJHtlfSwgdGhlIGFjdHVhbCB2YWx1ZXMgYXJlICR7bn0gYW5kICR7b31gKX07eT1Ybn0pO2Z1bmN0aW9uIGMxKHQsZSl7cmV0dXJuIHQ/P2V9dmFyIHgsSXQ9WigoKT0+e2MxLkVNUFRZX09CSkVDVD1PYmplY3QuZnJlZXplKHt9KTt4PWMxfSk7dmFyIGYxPVVuKChDVixhMSk9Pnt2YXIgRWk9ZnVuY3Rpb24odCl7dD09bnVsbCYmKHQ9bmV3IERhdGUoKS5nZXRUaW1lKCkpLHRoaXMuTj02MjQsdGhpcy5NPTM5Nyx0aGlzLk1BVFJJWF9BPTI1Njc0ODM2MTUsdGhpcy5VUFBFUl9NQVNLPTIxNDc0ODM2NDgsdGhpcy5MT1dFUl9NQVNLPTIxNDc0ODM2NDcsdGhpcy5tdD1uZXcgQXJyYXkodGhpcy5OKSx0aGlzLm10aT10aGlzLk4rMSx0LmNvbnN0cnVjdG9yPT1BcnJheT90aGlzLmluaXRfYnlfYXJyYXkodCx0Lmxlbmd0aCk6dGhpcy5pbml0X3NlZWQodCl9O0VpLnByb3RvdHlwZS5pbml0X3NlZWQ9ZnVuY3Rpb24odCl7Zm9yKHRoaXMubXRbMF09dD4+PjAsdGhpcy5tdGk9MTt0aGlzLm10aTx0aGlzLk47dGhpcy5tdGkrKyl7dmFyIHQ9dGhpcy5tdFt0aGlzLm10aS0xXV50aGlzLm10W3RoaXMubXRpLTFdPj4+MzA7dGhpcy5tdFt0aGlzLm10aV09KCgodCY0Mjk0OTAxNzYwKT4+PjE2KSoxODEyNDMzMjUzPDwxNikrKHQmNjU1MzUpKjE4MTI0MzMyNTMrdGhpcy5tdGksdGhpcy5tdFt0aGlzLm10aV0+Pj49MH19O0VpLnByb3RvdHlwZS5pbml0X2J5X2FycmF5PWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxyO2Zvcih0aGlzLmluaXRfc2VlZCgxOTY1MDIxOCksbj0xLG89MCxyPXRoaXMuTj5lP3RoaXMuTjplO3I7ci0tKXt2YXIgaT10aGlzLm10W24tMV1edGhpcy5tdFtuLTFdPj4+MzA7dGhpcy5tdFtuXT0odGhpcy5tdFtuXV4oKChpJjQyOTQ5MDE3NjApPj4+MTYpKjE2NjQ1MjU8PDE2KSsoaSY2NTUzNSkqMTY2NDUyNSkrdFtvXStvLHRoaXMubXRbbl0+Pj49MCxuKyssbysrLG4+PXRoaXMuTiYmKHRoaXMubXRbMF09dGhpcy5tdFt0aGlzLk4tMV0sbj0xKSxvPj1lJiYobz0wKX1mb3Iocj10aGlzLk4tMTtyO3ItLSl7dmFyIGk9dGhpcy5tdFtuLTFdXnRoaXMubXRbbi0xXT4+PjMwO3RoaXMubXRbbl09KHRoaXMubXRbbl1eKCgoaSY0Mjk0OTAxNzYwKT4+PjE2KSoxNTY2MDgzOTQxPDwxNikrKGkmNjU1MzUpKjE1NjYwODM5NDEpLW4sdGhpcy5tdFtuXT4+Pj0wLG4rKyxuPj10aGlzLk4mJih0aGlzLm10WzBdPXRoaXMubXRbdGhpcy5OLTFdLG49MSl9dGhpcy5tdFswXT0yMTQ3NDgzNjQ4fTtFaS5wcm90b3R5cGUucmFuZG9tX2ludD1mdW5jdGlvbigpe3ZhciB0LGU9bmV3IEFycmF5KDAsdGhpcy5NQVRSSVhfQSk7aWYodGhpcy5tdGk+PXRoaXMuTil7dmFyIG47Zm9yKHRoaXMubXRpPT10aGlzLk4rMSYmdGhpcy5pbml0X3NlZWQoNTQ4OSksbj0wO248dGhpcy5OLXRoaXMuTTtuKyspdD10aGlzLm10W25dJnRoaXMuVVBQRVJfTUFTS3x0aGlzLm10W24rMV0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbbl09dGhpcy5tdFtuK3RoaXMuTV1edD4+PjFeZVt0JjFdO2Zvcig7bjx0aGlzLk4tMTtuKyspdD10aGlzLm10W25dJnRoaXMuVVBQRVJfTUFTS3x0aGlzLm10W24rMV0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbbl09dGhpcy5tdFtuKyh0aGlzLk0tdGhpcy5OKV1edD4+PjFeZVt0JjFdO3Q9dGhpcy5tdFt0aGlzLk4tMV0mdGhpcy5VUFBFUl9NQVNLfHRoaXMubXRbMF0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbdGhpcy5OLTFdPXRoaXMubXRbdGhpcy5NLTFdXnQ+Pj4xXmVbdCYxXSx0aGlzLm10aT0wfXJldHVybiB0PXRoaXMubXRbdGhpcy5tdGkrK10sdF49dD4+PjExLHRePXQ8PDcmMjYzNjkyODY0MCx0Xj10PDwxNSY0MDIyNzMwNzUyLHRePXQ+Pj4xOCx0Pj4+MH07RWkucHJvdG90eXBlLnJhbmRvbV9pbnQzMT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKT4+PjF9O0VpLnByb3RvdHlwZS5yYW5kb21faW5jbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKSooMS80Mjk0OTY3Mjk1KX07RWkucHJvdG90eXBlLnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKSooMS80Mjk0OTY3Mjk2KX07RWkucHJvdG90eXBlLnJhbmRvbV9leGNsPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmFuZG9tX2ludCgpKy41KSooMS80Mjk0OTY3Mjk2KX07RWkucHJvdG90eXBlLnJhbmRvbV9sb25nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yYW5kb21faW50KCk+Pj41LGU9dGhpcy5yYW5kb21faW50KCk+Pj42O3JldHVybih0KjY3MTA4ODY0K2UpKigxLzkwMDcxOTkyNTQ3NDA5OTIpfTthMS5leHBvcnRzPUVpfSk7dmFyIHltLEN0LFVsLHUxLE0sV3Q9WigoKT0+e3ltPW1vKGYxKCksMSk7WXQoKTtJdCgpO2F0KCk7SHQoKTtDdD17fTtDdC5FUFNJTE9OMT0uMTtDdC5FUFNJTE9OMj0uMDE7Q3QuRVBTSUxPTjM9LjAwMTtDdC5FUFNJTE9OND0xZS00O0N0LkVQU0lMT041PTFlLTU7Q3QuRVBTSUxPTjY9MWUtNjtDdC5FUFNJTE9ONz0xZS03O0N0LkVQU0lMT044PTFlLTg7Q3QuRVBTSUxPTjk9MWUtOTtDdC5FUFNJTE9OMTA9MWUtMTA7Q3QuRVBTSUxPTjExPTFlLTExO0N0LkVQU0lMT04xMj0xZS0xMjtDdC5FUFNJTE9OMTM9MWUtMTM7Q3QuRVBTSUxPTjE0PTFlLTE0O0N0LkVQU0lMT04xNT0xZS0xNTtDdC5FUFNJTE9OMTY9MWUtMTY7Q3QuRVBTSUxPTjE3PTFlLTE3O0N0LkVQU0lMT04xOD0xZS0xODtDdC5FUFNJTE9OMTk9MWUtMTk7Q3QuRVBTSUxPTjIwPTFlLTIwO0N0LkVQU0lMT04yMT0xZS0yMTtDdC5HUkFWSVRBVElPTkFMUEFSQU1FVEVSPTM5ODYwMDQ0MThlNTtDdC5TT0xBUl9SQURJVVM9Njk1NWU1O0N0LkxVTkFSX1JBRElVUz0xNzM3NDAwO0N0LlNJWFRZX0ZPVVJfS0lMT0JZVEVTPTY0KjEwMjQ7Q3QuRk9VUl9HSUdBQllURVM9NCoxMDI0KjEwMjQqMTAyNDtDdC5zaWduPXgoTWF0aC5zaWduLGZ1bmN0aW9uKGUpe3JldHVybiBlPStlLGU9PT0wfHxlIT09ZT9lOmU+MD8xOi0xfSk7Q3Quc2lnbk5vdFplcm89ZnVuY3Rpb24odCl7cmV0dXJuIHQ8MD8tMToxfTtDdC50b1NOb3JtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9eChlLDI1NSksTWF0aC5yb3VuZCgoQ3QuY2xhbXAodCwtMSwxKSouNSsuNSkqZSl9O0N0LmZyb21TTm9ybT1mdW5jdGlvbih0LGUpe3JldHVybiBlPXgoZSwyNTUpLEN0LmNsYW1wKHQsMCxlKS9lKjItMX07Q3Qubm9ybWFsaXplPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj1NYXRoLm1heChuLWUsMCksbj09PTA/MDpDdC5jbGFtcCgodC1lKS9uLDAsMSl9O0N0LnNpbmg9eChNYXRoLnNpbmgsZnVuY3Rpb24oZSl7cmV0dXJuKE1hdGguZXhwKGUpLU1hdGguZXhwKC1lKSkvMn0pO0N0LmNvc2g9eChNYXRoLmNvc2gsZnVuY3Rpb24oZSl7cmV0dXJuKE1hdGguZXhwKGUpK01hdGguZXhwKC1lKSkvMn0pO0N0LmxlcnA9ZnVuY3Rpb24odCxlLG4pe3JldHVybigxLW4pKnQrbiplfTtDdC5QST1NYXRoLlBJO0N0Lk9ORV9PVkVSX1BJPTEvTWF0aC5QSTtDdC5QSV9PVkVSX1RXTz1NYXRoLlBJLzI7Q3QuUElfT1ZFUl9USFJFRT1NYXRoLlBJLzM7Q3QuUElfT1ZFUl9GT1VSPU1hdGguUEkvNDtDdC5QSV9PVkVSX1NJWD1NYXRoLlBJLzY7Q3QuVEhSRUVfUElfT1ZFUl9UV089MypNYXRoLlBJLzI7Q3QuVFdPX1BJPTIqTWF0aC5QSTtDdC5PTkVfT1ZFUl9UV09fUEk9MS8oMipNYXRoLlBJKTtDdC5SQURJQU5TX1BFUl9ERUdSRUU9TWF0aC5QSS8xODA7Q3QuREVHUkVFU19QRVJfUkFESUFOPTE4MC9NYXRoLlBJO0N0LlJBRElBTlNfUEVSX0FSQ1NFQ09ORD1DdC5SQURJQU5TX1BFUl9ERUdSRUUvMzYwMDtDdC50b1JhZGlhbnM9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImRlZ3JlZXMgaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQqQ3QuUkFESUFOU19QRVJfREVHUkVFfTtDdC50b0RlZ3JlZXM9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEIoInJhZGlhbnMgaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQqQ3QuREVHUkVFU19QRVJfUkFESUFOfTtDdC5jb252ZXJ0TG9uZ2l0dWRlUmFuZ2U9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImFuZ2xlIGlzIHJlcXVpcmVkLiIpO2xldCBlPUN0LlRXT19QSSxuPXQtTWF0aC5mbG9vcih0L2UpKmU7cmV0dXJuIG48LU1hdGguUEk/bitlOm4+PU1hdGguUEk/bi1lOm59O0N0LmNsYW1wVG9MYXRpdHVkZVJhbmdlPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhbmdsZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gQ3QuY2xhbXAodCwtMSpDdC5QSV9PVkVSX1RXTyxDdC5QSV9PVkVSX1RXTyl9O0N0Lm5lZ2F0aXZlUGlUb1BpPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhbmdsZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdD49LUN0LlBJJiZ0PD1DdC5QST90OkN0Lnplcm9Ub1R3b1BpKHQrQ3QuUEkpLUN0LlBJfTtDdC56ZXJvVG9Ud29QaT1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigiYW5nbGUgaXMgcmVxdWlyZWQuIik7aWYodD49MCYmdDw9Q3QuVFdPX1BJKXJldHVybiB0O2xldCBlPUN0Lm1vZCh0LEN0LlRXT19QSSk7cmV0dXJuIE1hdGguYWJzKGUpPEN0LkVQU0lMT04xNCYmTWF0aC5hYnModCk+Q3QuRVBTSUxPTjE0P0N0LlRXT19QSTplfTtDdC5tb2Q9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigibSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigibiBpcyByZXF1aXJlZC4iKTtpZihlPT09MCl0aHJvdyBuZXcgQigiZGl2aXNvciBjYW5ub3QgYmUgMC4iKTtyZXR1cm4gQ3Quc2lnbih0KT09PUN0LnNpZ24oZSkmJk1hdGguYWJzKHQpPE1hdGguYWJzKGUpP3Q6KHQlZStlKSVlfTtDdC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJsZWZ0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJyaWdodCBpcyByZXF1aXJlZC4iKTtuPXgobiwwKSxvPXgobyxuKTtsZXQgcj1NYXRoLmFicyh0LWUpO3JldHVybiByPD1vfHxyPD1uKk1hdGgubWF4KE1hdGguYWJzKHQpLE1hdGguYWJzKGUpKX07Q3QubGVzc1RoYW49ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJmaXJzdCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigic2Vjb25kIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJhYnNvbHV0ZUVwc2lsb24gaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQtZTwtbn07Q3QubGVzc1RoYW5PckVxdWFscz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImZpcnN0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJzZWNvbmQgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoImFic29sdXRlRXBzaWxvbiBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdC1lPG59O0N0LmdyZWF0ZXJUaGFuPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigiZmlyc3QgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoInNlY29uZCBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigiYWJzb2x1dGVFcHNpbG9uIGlzIHJlcXVpcmVkLiIpO3JldHVybiB0LWU+bn07Q3QuZ3JlYXRlclRoYW5PckVxdWFscz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImZpcnN0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJzZWNvbmQgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoImFic29sdXRlRXBzaWxvbiBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdC1lPi1ufTtVbD1bMV07Q3QuZmFjdG9yaWFsPWZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0IT0ibnVtYmVyInx8dDwwKXRocm93IG5ldyBCKCJBIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBpcyByZXF1aXJlZC4iKTtsZXQgZT1VbC5sZW5ndGg7aWYodD49ZSl7bGV0IG49VWxbZS0xXTtmb3IobGV0IG89ZTtvPD10O28rKyl7bGV0IHI9bipvO1VsLnB1c2gociksbj1yfX1yZXR1cm4gVWxbdF19O0N0LmluY3JlbWVudFdyYXA9ZnVuY3Rpb24odCxlLG4pe2lmKG49eChuLDApLCFoKHQpKXRocm93IG5ldyBCKCJuIGlzIHJlcXVpcmVkLiIpO2lmKGU8PW4pdGhyb3cgbmV3IEIoIm1heGltdW1WYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBtaW5pbXVtVmFsdWUuIik7cmV0dXJuKyt0LHQ+ZSYmKHQ9biksdH07Q3QuaXNQb3dlck9mVHdvPWZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0IT0ibnVtYmVyInx8dDwwfHx0PjQyOTQ5NjcyOTUpdGhyb3cgbmV3IEIoIkEgbnVtYmVyIGJldHdlZW4gMCBhbmQgKDJeMzIpLTEgaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQhPT0wJiYodCZ0LTEpPT09MH07Q3QubmV4dFBvd2VyT2ZUd289ZnVuY3Rpb24odCl7aWYodHlwZW9mIHQhPSJudW1iZXIifHx0PDB8fHQ+MjE0NzQ4MzY0OCl0aHJvdyBuZXcgQigiQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyXjMxIGlzIHJlcXVpcmVkLiIpO3JldHVybi0tdCx0fD10Pj4xLHR8PXQ+PjIsdHw9dD4+NCx0fD10Pj44LHR8PXQ+PjE2LCsrdCx0fTtDdC5wcmV2aW91c1Bvd2VyT2ZUd289ZnVuY3Rpb24odCl7aWYodHlwZW9mIHQhPSJudW1iZXIifHx0PDB8fHQ+NDI5NDk2NzI5NSl0aHJvdyBuZXcgQigiQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAoMl4zMiktMSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdHw9dD4+MSx0fD10Pj4yLHR8PXQ+PjQsdHw9dD4+OCx0fD10Pj4xNix0fD10Pj4zMix0PSh0Pj4+MCktKHQ+Pj4xKSx0fTtDdC5jbGFtcD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm51bWJlcigidmFsdWUiLHQpLHkudHlwZU9mLm51bWJlcigibWluIixlKSx5LnR5cGVPZi5udW1iZXIoIm1heCIsbiksdDxlP2U6dD5uP246dH07dTE9bmV3IHltLmRlZmF1bHQ7Q3Quc2V0UmFuZG9tTnVtYmVyU2VlZD1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigic2VlZCBpcyByZXF1aXJlZC4iKTt1MT1uZXcgeW0uZGVmYXVsdCh0KX07Q3QubmV4dFJhbmRvbU51bWJlcj1mdW5jdGlvbigpe3JldHVybiB1MS5yYW5kb20oKX07Q3QucmFuZG9tQmV0d2Vlbj1mdW5jdGlvbih0LGUpe3JldHVybiBDdC5uZXh0UmFuZG9tTnVtYmVyKCkqKGUtdCkrdH07Q3QuYWNvc0NsYW1wZWQ9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEIoInZhbHVlIGlzIHJlcXVpcmVkLiIpO3JldHVybiBNYXRoLmFjb3MoQ3QuY2xhbXAodCwtMSwxKSl9O0N0LmFzaW5DbGFtcGVkPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ2YWx1ZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gTWF0aC5hc2luKEN0LmNsYW1wKHQsLTEsMSkpfTtDdC5jaG9yZExlbmd0aD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhbmdsZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigicmFkaXVzIGlzIHJlcXVpcmVkLiIpO3JldHVybiAyKmUqTWF0aC5zaW4odCouNSl9O0N0LmxvZ0Jhc2U9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigibnVtYmVyIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJiYXNlIGlzIHJlcXVpcmVkLiIpO3JldHVybiBNYXRoLmxvZyh0KS9NYXRoLmxvZyhlKX07Q3QuY2JydD14KE1hdGguY2JydCxmdW5jdGlvbihlKXtsZXQgbj1NYXRoLnBvdyhNYXRoLmFicyhlKSwuMzMzMzMzMzMzMzMzMzMzMyk7cmV0dXJuIGU8MD8tbjpufSk7Q3QubG9nMj14KE1hdGgubG9nMixmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkqTWF0aC5MT0cyRX0pO0N0LmZvZz1mdW5jdGlvbih0LGUpe2xldCBuPXQqZTtyZXR1cm4gMS1NYXRoLmV4cCgtKG4qbikpfTtDdC5mYXN0QXBwcm94aW1hdGVBdGFuPWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoIngiLHQpLHQqKC0uMTc4NCpNYXRoLmFicyh0KS0uMDY2Myp0KnQrMS4wMzAxKX07Q3QuZmFzdEFwcHJveGltYXRlQXRhbjI9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5udW1iZXIoIngiLHQpLHkudHlwZU9mLm51bWJlcigieSIsZSk7bGV0IG4sbz1NYXRoLmFicyh0KTtuPU1hdGguYWJzKGUpO2xldCByPU1hdGgubWF4KG8sbik7bj1NYXRoLm1pbihvLG4pO2xldCBpPW4vcjtpZihpc05hTihpKSl0aHJvdyBuZXcgQigiZWl0aGVyIHggb3IgeSBtdXN0IGJlIG5vbnplcm8iKTtyZXR1cm4gbz1DdC5mYXN0QXBwcm94aW1hdGVBdGFuKGkpLG89TWF0aC5hYnMoZSk+TWF0aC5hYnModCk/Q3QuUElfT1ZFUl9UV08tbzpvLG89dDwwP0N0LlBJLW86byxvPWU8MD8tbzpvLG99O009Q3R9KTtmdW5jdGlvbiBidCh0LGUsbil7dGhpcy54PXgodCwwKSx0aGlzLnk9eChlLDApLHRoaXMuej14KG4sMCl9dmFyIGtsLGwxLFZsLGdtLFlTLG1yLEhjLCRTLGEsVXQ9WigoKT0+e1l0KCk7SXQoKTthdCgpO0h0KCk7V3QoKTtidC5mcm9tU3BoZXJpY2FsPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJzcGhlcmljYWwiLHQpLGgoZSl8fChlPW5ldyBidCk7bGV0IG49dC5jbG9jayxvPXQuY29uZSxyPXgodC5tYWduaXR1ZGUsMSksaT1yKk1hdGguc2luKG8pO3JldHVybiBlLng9aSpNYXRoLmNvcyhuKSxlLnk9aSpNYXRoLnNpbihuKSxlLno9cipNYXRoLmNvcyhvKSxlfTtidC5mcm9tRWxlbWVudHM9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIGgobyk/KG8ueD10LG8ueT1lLG8uej1uLG8pOm5ldyBidCh0LGUsbil9O2J0LmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS54PXQueCxlLnk9dC55LGUuej10LnosZSk6bmV3IGJ0KHQueCx0LnksdC56KX07YnQuZnJvbUNhcnRlc2lhbjQ9YnQuY2xvbmU7YnQucGFja2VkTGVuZ3RoPTM7YnQucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10LngsZVtuKytdPXQueSxlW25dPXQueixlfTtidC51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgYnQpLG4ueD10W2UrK10sbi55PXRbZSsrXSxuLno9dFtlXSxufTtidC5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImFycmF5Iix0KTtsZXQgbj10Lmxlbmd0aCxvPW4qMztpZighaChlKSllPW5ldyBBcnJheShvKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aCE9PW8pdGhyb3cgbmV3IEIoIklmIHJlc3VsdCBpcyBhIHR5cGVkIGFycmF5LCBpdCBtdXN0IGhhdmUgZXhhY3RseSBhcnJheS5sZW5ndGggKiAzIGVsZW1lbnRzIik7ZS5sZW5ndGghPT1vJiYoZS5sZW5ndGg9byl9Zm9yKGxldCByPTA7cjxuOysrcilidC5wYWNrKHRbcl0sZSxyKjMpO3JldHVybiBlfTtidC51bnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe2lmKHkuZGVmaW5lZCgiYXJyYXkiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJhcnJheS5sZW5ndGgiLHQubGVuZ3RoLDMpLHQubGVuZ3RoJTMhPT0wKXRocm93IG5ldyBCKCJhcnJheSBsZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMuIik7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uLzM6ZT1uZXcgQXJyYXkobi8zKTtmb3IobGV0IG89MDtvPG47bys9Myl7bGV0IHI9by8zO2Vbcl09YnQudW5wYWNrKHQsbyxlW3JdKX1yZXR1cm4gZX07YnQuZnJvbUFycmF5PWJ0LnVucGFjaztidC5tYXhpbXVtQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksTWF0aC5tYXgodC54LHQueSx0LnopfTtidC5taW5pbXVtQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksTWF0aC5taW4odC54LHQueSx0LnopfTtidC5taW5pbXVtQnlDb21wb25lbnQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImZpcnN0Iix0KSx5LnR5cGVPZi5vYmplY3QoInNlY29uZCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD1NYXRoLm1pbih0LngsZS54KSxuLnk9TWF0aC5taW4odC55LGUueSksbi56PU1hdGgubWluKHQueixlLnopLG59O2J0Lm1heGltdW1CeUNvbXBvbmVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZmlyc3QiLHQpLHkudHlwZU9mLm9iamVjdCgic2Vjb25kIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PU1hdGgubWF4KHQueCxlLngpLG4ueT1NYXRoLm1heCh0LnksZS55KSxuLno9TWF0aC5tYXgodC56LGUueiksbn07YnQuY2xhbXA9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS50eXBlT2Yub2JqZWN0KCJtaW4iLGUpLHkudHlwZU9mLm9iamVjdCgibWF4IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyk7bGV0IHI9TS5jbGFtcCh0LngsZS54LG4ueCksaT1NLmNsYW1wKHQueSxlLnksbi55KSxzPU0uY2xhbXAodC56LGUueixuLnopO3JldHVybiBvLng9cixvLnk9aSxvLno9cyxvfTtidC5tYWduaXR1ZGVTcXVhcmVkPWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksdC54KnQueCt0LnkqdC55K3Queip0Lnp9O2J0Lm1hZ25pdHVkZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KGJ0Lm1hZ25pdHVkZVNxdWFyZWQodCkpfTtrbD1uZXcgYnQ7YnQuZGlzdGFuY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSxidC5zdWJ0cmFjdCh0LGUsa2wpLGJ0Lm1hZ25pdHVkZShrbCl9O2J0LmRpc3RhbmNlU3F1YXJlZD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLGJ0LnN1YnRyYWN0KHQsZSxrbCksYnQubWFnbml0dWRlU3F1YXJlZChrbCl9O2J0Lm5vcm1hbGl6ZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49YnQubWFnbml0dWRlKHQpO2lmKGUueD10LngvbixlLnk9dC55L24sZS56PXQuei9uLGlzTmFOKGUueCl8fGlzTmFOKGUueSl8fGlzTmFOKGUueikpdGhyb3cgbmV3IEIoIm5vcm1hbGl6ZWQgcmVzdWx0IGlzIG5vdCBhIG51bWJlciIpO3JldHVybiBlfTtidC5kb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx0LngqZS54K3QueSplLnkrdC56KmUuen07YnQubXVsdGlwbHlDb21wb25lbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCplLngsbi55PXQueSplLnksbi56PXQueiplLnosbn07YnQuZGl2aWRlQ29tcG9uZW50cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngvZS54LG4ueT10LnkvZS55LG4uej10LnovZS56LG59O2J0LmFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngrZS54LG4ueT10LnkrZS55LG4uej10LnorZS56LG59O2J0LnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC1lLngsbi55PXQueS1lLnksbi56PXQuei1lLnosbn07YnQubXVsdGlwbHlCeVNjYWxhcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxhciIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngqZSxuLnk9dC55KmUsbi56PXQueiplLG59O2J0LmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLG4ueT10LnkvZSxuLno9dC56L2Usbn07YnQubmVnYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PS10LngsZS55PS10LnksZS56PS10LnosZX07YnQuYWJzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PU1hdGguYWJzKHQueCksZS55PU1hdGguYWJzKHQueSksZS56PU1hdGguYWJzKHQueiksZX07bDE9bmV3IGJ0O2J0LmxlcnA9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgic3RhcnQiLHQpLHkudHlwZU9mLm9iamVjdCgiZW5kIixlKSx5LnR5cGVPZi5udW1iZXIoInQiLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKSxidC5tdWx0aXBseUJ5U2NhbGFyKGUsbixsMSksbz1idC5tdWx0aXBseUJ5U2NhbGFyKHQsMS1uLG8pLGJ0LmFkZChsMSxvLG8pfTtWbD1uZXcgYnQsZ209bmV3IGJ0O2J0LmFuZ2xlQmV0d2Vlbj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksYnQubm9ybWFsaXplKHQsVmwpLGJ0Lm5vcm1hbGl6ZShlLGdtKTtsZXQgbj1idC5kb3QoVmwsZ20pLG89YnQubWFnbml0dWRlKGJ0LmNyb3NzKFZsLGdtLFZsKSk7cmV0dXJuIE1hdGguYXRhbjIobyxuKX07WVM9bmV3IGJ0O2J0Lm1vc3RPcnRob2dvbmFsQXhpcz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49YnQubm9ybWFsaXplKHQsWVMpO3JldHVybiBidC5hYnMobixuKSxuLng8PW4ueT9uLng8PW4uej9lPWJ0LmNsb25lKGJ0LlVOSVRfWCxlKTplPWJ0LmNsb25lKGJ0LlVOSVRfWixlKTpuLnk8PW4uej9lPWJ0LmNsb25lKGJ0LlVOSVRfWSxlKTplPWJ0LmNsb25lKGJ0LlVOSVRfWixlKSxlfTtidC5wcm9qZWN0VmVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImEiLHQpLHkuZGVmaW5lZCgiYiIsZSkseS5kZWZpbmVkKCJyZXN1bHQiLG4pO2xldCBvPWJ0LmRvdCh0LGUpL2J0LmRvdChlLGUpO3JldHVybiBidC5tdWx0aXBseUJ5U2NhbGFyKGUsbyxuKX07YnQuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0Lng9PT1lLngmJnQueT09PWUueSYmdC56PT09ZS56fTtidC5lcXVhbHNBcnJheT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQueD09PWVbbl0mJnQueT09PWVbbisxXSYmdC56PT09ZVtuKzJdfTtidC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmTS5lcXVhbHNFcHNpbG9uKHQueCxlLngsbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueSxlLnksbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueixlLnosbixvKX07YnQuY3Jvc3M9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXQueCxyPXQueSxpPXQueixzPWUueCxmPWUueSx1PWUueixjPXIqdS1pKmYsbD1pKnMtbyp1LHA9bypmLXIqcztyZXR1cm4gbi54PWMsbi55PWwsbi56PXAsbn07YnQubWlkcG9pbnQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9KHQueCtlLngpKi41LG4ueT0odC55K2UueSkqLjUsbi56PSh0LnorZS56KSouNSxufTtidC5mcm9tRGVncmVlcz1mdW5jdGlvbih0LGUsbixvLHIpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoImxvbmdpdHVkZSIsdCkseS50eXBlT2YubnVtYmVyKCJsYXRpdHVkZSIsZSksdD1NLnRvUmFkaWFucyh0KSxlPU0udG9SYWRpYW5zKGUpLGJ0LmZyb21SYWRpYW5zKHQsZSxuLG8scil9O21yPW5ldyBidCxIYz1uZXcgYnQsJFM9bmV3IGJ0KDYzNzgxMzcqNjM3ODEzNyw2Mzc4MTM3KjYzNzgxMzcsNjM1Njc1MjMxNDI0NTE3OWUtOSo2MzU2NzUyMzE0MjQ1MTc5ZS05KTtidC5mcm9tUmFkaWFucz1mdW5jdGlvbih0LGUsbixvLHIpe3kudHlwZU9mLm51bWJlcigibG9uZ2l0dWRlIix0KSx5LnR5cGVPZi5udW1iZXIoImxhdGl0dWRlIixlKSxuPXgobiwwKTtsZXQgaT1oKG8pP28ucmFkaWlTcXVhcmVkOiRTLHM9TWF0aC5jb3MoZSk7bXIueD1zKk1hdGguY29zKHQpLG1yLnk9cypNYXRoLnNpbih0KSxtci56PU1hdGguc2luKGUpLG1yPWJ0Lm5vcm1hbGl6ZShtcixtciksYnQubXVsdGlwbHlDb21wb25lbnRzKGksbXIsSGMpO2xldCBmPU1hdGguc3FydChidC5kb3QobXIsSGMpKTtyZXR1cm4gSGM9YnQuZGl2aWRlQnlTY2FsYXIoSGMsZixIYyksbXI9YnQubXVsdGlwbHlCeVNjYWxhcihtcixuLG1yKSxoKHIpfHwocj1uZXcgYnQpLGJ0LmFkZChIYyxtcixyKX07YnQuZnJvbURlZ3JlZXNBcnJheT1mdW5jdGlvbih0LGUsbil7aWYoeS5kZWZpbmVkKCJjb29yZGluYXRlcyIsdCksdC5sZW5ndGg8Mnx8dC5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEIoInRoZSBudW1iZXIgb2YgY29vcmRpbmF0ZXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDIgYW5kIGF0IGxlYXN0IDIiKTtsZXQgbz10Lmxlbmd0aDtoKG4pP24ubGVuZ3RoPW8vMjpuPW5ldyBBcnJheShvLzIpO2ZvcihsZXQgcj0wO3I8bztyKz0yKXtsZXQgaT10W3JdLHM9dFtyKzFdLGY9ci8yO25bZl09YnQuZnJvbURlZ3JlZXMoaSxzLDAsZSxuW2ZdKX1yZXR1cm4gbn07YnQuZnJvbVJhZGlhbnNBcnJheT1mdW5jdGlvbih0LGUsbil7aWYoeS5kZWZpbmVkKCJjb29yZGluYXRlcyIsdCksdC5sZW5ndGg8Mnx8dC5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEIoInRoZSBudW1iZXIgb2YgY29vcmRpbmF0ZXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDIgYW5kIGF0IGxlYXN0IDIiKTtsZXQgbz10Lmxlbmd0aDtoKG4pP24ubGVuZ3RoPW8vMjpuPW5ldyBBcnJheShvLzIpO2ZvcihsZXQgcj0wO3I8bztyKz0yKXtsZXQgaT10W3JdLHM9dFtyKzFdLGY9ci8yO25bZl09YnQuZnJvbVJhZGlhbnMoaSxzLDAsZSxuW2ZdKX1yZXR1cm4gbn07YnQuZnJvbURlZ3JlZXNBcnJheUhlaWdodHM9ZnVuY3Rpb24odCxlLG4pe2lmKHkuZGVmaW5lZCgiY29vcmRpbmF0ZXMiLHQpLHQubGVuZ3RoPDN8fHQubGVuZ3RoJTMhPT0wKXRocm93IG5ldyBCKCJ0aGUgbnVtYmVyIG9mIGNvb3JkaW5hdGVzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzIGFuZCBhdCBsZWFzdCAzIik7bGV0IG89dC5sZW5ndGg7aChuKT9uLmxlbmd0aD1vLzM6bj1uZXcgQXJyYXkoby8zKTtmb3IobGV0IHI9MDtyPG87cis9Myl7bGV0IGk9dFtyXSxzPXRbcisxXSxmPXRbcisyXSx1PXIvMztuW3VdPWJ0LmZyb21EZWdyZWVzKGkscyxmLGUsblt1XSl9cmV0dXJuIG59O2J0LmZyb21SYWRpYW5zQXJyYXlIZWlnaHRzPWZ1bmN0aW9uKHQsZSxuKXtpZih5LmRlZmluZWQoImNvb3JkaW5hdGVzIix0KSx0Lmxlbmd0aDwzfHx0Lmxlbmd0aCUzIT09MCl0aHJvdyBuZXcgQigidGhlIG51bWJlciBvZiBjb29yZGluYXRlcyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMyBhbmQgYXQgbGVhc3QgMyIpO2xldCBvPXQubGVuZ3RoO2gobik/bi5sZW5ndGg9by8zOm49bmV3IEFycmF5KG8vMyk7Zm9yKGxldCByPTA7cjxvO3IrPTMpe2xldCBpPXRbcl0scz10W3IrMV0sZj10W3IrMl0sdT1yLzM7blt1XT1idC5mcm9tUmFkaWFucyhpLHMsZixlLG5bdV0pfXJldHVybiBufTtidC5aRVJPPU9iamVjdC5mcmVlemUobmV3IGJ0KDAsMCwwKSk7YnQuT05FPU9iamVjdC5mcmVlemUobmV3IGJ0KDEsMSwxKSk7YnQuVU5JVF9YPU9iamVjdC5mcmVlemUobmV3IGJ0KDEsMCwwKSk7YnQuVU5JVF9ZPU9iamVjdC5mcmVlemUobmV3IGJ0KDAsMSwwKSk7YnQuVU5JVF9aPU9iamVjdC5mcmVlemUobmV3IGJ0KDAsMCwxKSk7YnQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBidC5jbG9uZSh0aGlzLHQpfTtidC5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBidC5lcXVhbHModGhpcyx0KX07YnQucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiBidC5lcXVhbHNFcHNpbG9uKHRoaXMsdCxlLG4pfTtidC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5gKCR7dGhpcy54fSwgJHt0aGlzLnl9LCAke3RoaXMuen0pYH07YT1idH0pO2Z1bmN0aW9uIEpTKHQsZSxuLG8scil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImNhcnRlc2lhbiBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigib25lT3ZlclJhZGlpIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJvbmVPdmVyUmFkaWlTcXVhcmVkIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBCKCJjZW50ZXJUb2xlcmFuY2VTcXVhcmVkIGlzIHJlcXVpcmVkLiIpO2xldCBpPXQueCxzPXQueSxmPXQueix1PWUueCxjPWUueSxsPWUueixwPWkqaSp1KnUsZD1zKnMqYypjLG09ZipmKmwqbCxfPXArZCttLGc9TWF0aC5zcXJ0KDEvXyksYj1hLm11bHRpcGx5QnlTY2FsYXIodCxnLFpTKTtpZihfPG8pcmV0dXJuIGlzRmluaXRlKGcpP2EuY2xvbmUoYixyKTp2b2lkIDA7bGV0IE89bi54LFQ9bi55LEU9bi56LHc9UVM7dy54PWIueCpPKjIsdy55PWIueSpUKjIsdy56PWIueipFKjI7bGV0IEM9KDEtZykqYS5tYWduaXR1ZGUodCkvKC41KmEubWFnbml0dWRlKHcpKSxOPTAsSSxMLHYsRCxVLEEsUyxQLEYsaixIO2Rve0MtPU4sdj0xLygxK0MqTyksRD0xLygxK0MqVCksVT0xLygxK0MqRSksQT12KnYsUz1EKkQsUD1VKlUsRj1BKnYsaj1TKkQsSD1QKlUsST1wKkErZCpTK20qUC0xLEw9cCpGKk8rZCpqKlQrbSpIKkU7bGV0IGs9LTIqTDtOPUkva313aGlsZShNYXRoLmFicyhJKT5NLkVQU0lMT04xMik7cmV0dXJuIGgocik/KHIueD1pKnYsci55PXMqRCxyLno9ZipVLHIpOm5ldyBhKGkqdixzKkQsZipVKX12YXIgWlMsUVMsR2wsQW09WigoKT0+e1V0KCk7YXQoKTtIdCgpO1d0KCk7WlM9bmV3IGEsUVM9bmV3IGE7R2w9SlN9KTtmdW5jdGlvbiBWbih0LGUsbil7dGhpcy5sb25naXR1ZGU9eCh0LDApLHRoaXMubGF0aXR1ZGU9eChlLDApLHRoaXMuaGVpZ2h0PXgobiwwKX12YXIgdEMsZUMsbkMsb0MsckMsaUMsY3QsdmU9WigoKT0+e1V0KCk7WXQoKTtJdCgpO2F0KCk7V3QoKTtBbSgpO1ZuLmZyb21SYWRpYW5zPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5udW1iZXIoImxvbmdpdHVkZSIsdCkseS50eXBlT2YubnVtYmVyKCJsYXRpdHVkZSIsZSksbj14KG4sMCksaChvKT8oby5sb25naXR1ZGU9dCxvLmxhdGl0dWRlPWUsby5oZWlnaHQ9bixvKTpuZXcgVm4odCxlLG4pfTtWbi5mcm9tRGVncmVlcz1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4geS50eXBlT2YubnVtYmVyKCJsb25naXR1ZGUiLHQpLHkudHlwZU9mLm51bWJlcigibGF0aXR1ZGUiLGUpLHQ9TS50b1JhZGlhbnModCksZT1NLnRvUmFkaWFucyhlKSxWbi5mcm9tUmFkaWFucyh0LGUsbixvKX07dEM9bmV3IGEsZUM9bmV3IGEsbkM9bmV3IGEsb0M9bmV3IGEoMS82Mzc4MTM3LDEvNjM3ODEzNywxLzYzNTY3NTIzMTQyNDUxNzllLTkpLHJDPW5ldyBhKDEvKDYzNzgxMzcqNjM3ODEzNyksMS8oNjM3ODEzNyo2Mzc4MTM3KSwxLyg2MzU2NzUyMzE0MjQ1MTc5ZS05KjYzNTY3NTIzMTQyNDUxNzllLTkpKSxpQz1NLkVQU0lMT04xO1ZuLmZyb21DYXJ0ZXNpYW49ZnVuY3Rpb24odCxlLG4pe2xldCBvPWgoZSk/ZS5vbmVPdmVyUmFkaWk6b0Mscj1oKGUpP2Uub25lT3ZlclJhZGlpU3F1YXJlZDpyQyxpPWgoZSk/ZS5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZDppQyxzPUdsKHQsbyxyLGksZUMpO2lmKCFoKHMpKXJldHVybjtsZXQgZj1hLm11bHRpcGx5Q29tcG9uZW50cyhzLHIsdEMpO2Y9YS5ub3JtYWxpemUoZixmKTtsZXQgdT1hLnN1YnRyYWN0KHQscyxuQyksYz1NYXRoLmF0YW4yKGYueSxmLngpLGw9TWF0aC5hc2luKGYueikscD1NLnNpZ24oYS5kb3QodSx0KSkqYS5tYWduaXR1ZGUodSk7cmV0dXJuIGgobik/KG4ubG9uZ2l0dWRlPWMsbi5sYXRpdHVkZT1sLG4uaGVpZ2h0PXAsbik6bmV3IFZuKGMsbCxwKX07Vm4udG9DYXJ0ZXNpYW49ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImNhcnRvZ3JhcGhpYyIsdCksYS5mcm9tUmFkaWFucyh0LmxvbmdpdHVkZSx0LmxhdGl0dWRlLHQuaGVpZ2h0LGUsbil9O1ZuLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS5sb25naXR1ZGU9dC5sb25naXR1ZGUsZS5sYXRpdHVkZT10LmxhdGl0dWRlLGUuaGVpZ2h0PXQuaGVpZ2h0LGUpOm5ldyBWbih0LmxvbmdpdHVkZSx0LmxhdGl0dWRlLHQuaGVpZ2h0KX07Vm4uZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0LmxvbmdpdHVkZT09PWUubG9uZ2l0dWRlJiZ0LmxhdGl0dWRlPT09ZS5sYXRpdHVkZSYmdC5oZWlnaHQ9PT1lLmhlaWdodH07Vm4uZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG49eChuLDApLHQ9PT1lfHxoKHQpJiZoKGUpJiZNYXRoLmFicyh0LmxvbmdpdHVkZS1lLmxvbmdpdHVkZSk8PW4mJk1hdGguYWJzKHQubGF0aXR1ZGUtZS5sYXRpdHVkZSk8PW4mJk1hdGguYWJzKHQuaGVpZ2h0LWUuaGVpZ2h0KTw9bn07Vm4uWkVSTz1PYmplY3QuZnJlZXplKG5ldyBWbigwLDAsMCkpO1ZuLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gVm4uY2xvbmUodGhpcyx0KX07Vm4ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gVm4uZXF1YWxzKHRoaXMsdCl9O1ZuLnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFZuLmVxdWFsc0Vwc2lsb24odGhpcyx0LGUpfTtWbi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5gKCR7dGhpcy5sb25naXR1ZGV9LCAke3RoaXMubGF0aXR1ZGV9LCAke3RoaXMuaGVpZ2h0fSlgfTtjdD1Wbn0pO2Z1bmN0aW9uIGQxKHQsZSxuLG8pe2U9eChlLDApLG49eChuLDApLG89eChvLDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ4IixlLDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ5IixuLDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ6IixvLDApLHQuX3JhZGlpPW5ldyBhKGUsbixvKSx0Ll9yYWRpaVNxdWFyZWQ9bmV3IGEoZSplLG4qbixvKm8pLHQuX3JhZGlpVG9UaGVGb3VydGg9bmV3IGEoZSplKmUqZSxuKm4qbipuLG8qbypvKm8pLHQuX29uZU92ZXJSYWRpaT1uZXcgYShlPT09MD8wOjEvZSxuPT09MD8wOjEvbixvPT09MD8wOjEvbyksdC5fb25lT3ZlclJhZGlpU3F1YXJlZD1uZXcgYShlPT09MD8wOjEvKGUqZSksbj09PTA/MDoxLyhuKm4pLG89PT0wPzA6MS8obypvKSksdC5fbWluaW11bVJhZGl1cz1NYXRoLm1pbihlLG4sbyksdC5fbWF4aW11bVJhZGl1cz1NYXRoLm1heChlLG4sbyksdC5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZD1NLkVQU0lMT04xLHQuX3JhZGlpU3F1YXJlZC56IT09MCYmKHQuX3NxdWFyZWRYT3ZlclNxdWFyZWRaPXQuX3JhZGlpU3F1YXJlZC54L3QuX3JhZGlpU3F1YXJlZC56KX1mdW5jdGlvbiBHZSh0LGUsbil7dGhpcy5fcmFkaWk9dm9pZCAwLHRoaXMuX3JhZGlpU3F1YXJlZD12b2lkIDAsdGhpcy5fcmFkaWlUb1RoZUZvdXJ0aD12b2lkIDAsdGhpcy5fb25lT3ZlclJhZGlpPXZvaWQgMCx0aGlzLl9vbmVPdmVyUmFkaWlTcXVhcmVkPXZvaWQgMCx0aGlzLl9taW5pbXVtUmFkaXVzPXZvaWQgMCx0aGlzLl9tYXhpbXVtUmFkaXVzPXZvaWQgMCx0aGlzLl9jZW50ZXJUb2xlcmFuY2VTcXVhcmVkPXZvaWQgMCx0aGlzLl9zcXVhcmVkWE92ZXJTcXVhcmVkWj12b2lkIDAsZDEodGhpcyx0LGUsbil9ZnVuY3Rpb24gcDEodCxlLG4pe3kudHlwZU9mLm51bWJlcigiYSIsdCkseS50eXBlT2YubnVtYmVyKCJiIixlKSx5LnR5cGVPZi5mdW5jKCJmdW5jIixuKTtsZXQgbz0uNSooZSt0KSxyPS41KihlLXQpLGk9MDtmb3IobGV0IHM9MDtzPDU7cysrKXtsZXQgZj1yKmxDW3NdO2krPXBDW3NdKihuKG8rZikrbihvLWYpKX1yZXR1cm4gaSo9cixpfXZhciBzQyxjQyxhQyxmQyx1QyxsQyxwQywkLFp0PVooKCk9PntVdCgpO3ZlKCk7WXQoKTtJdCgpO2F0KCk7SHQoKTtXdCgpO0FtKCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoR2UucHJvdG90eXBlLHtyYWRpaTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhZGlpfX0scmFkaWlTcXVhcmVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmFkaWlTcXVhcmVkfX0scmFkaWlUb1RoZUZvdXJ0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhZGlpVG9UaGVGb3VydGh9fSxvbmVPdmVyUmFkaWk6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbmVPdmVyUmFkaWl9fSxvbmVPdmVyUmFkaWlTcXVhcmVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZH19LG1pbmltdW1SYWRpdXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5pbXVtUmFkaXVzfX0sbWF4aW11bVJhZGl1czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heGltdW1SYWRpdXN9fX0pO0dlLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpcmV0dXJuO2xldCBuPXQuX3JhZGlpO3JldHVybiBoKGUpPyhhLmNsb25lKG4sZS5fcmFkaWkpLGEuY2xvbmUodC5fcmFkaWlTcXVhcmVkLGUuX3JhZGlpU3F1YXJlZCksYS5jbG9uZSh0Ll9yYWRpaVRvVGhlRm91cnRoLGUuX3JhZGlpVG9UaGVGb3VydGgpLGEuY2xvbmUodC5fb25lT3ZlclJhZGlpLGUuX29uZU92ZXJSYWRpaSksYS5jbG9uZSh0Ll9vbmVPdmVyUmFkaWlTcXVhcmVkLGUuX29uZU92ZXJSYWRpaVNxdWFyZWQpLGUuX21pbmltdW1SYWRpdXM9dC5fbWluaW11bVJhZGl1cyxlLl9tYXhpbXVtUmFkaXVzPXQuX21heGltdW1SYWRpdXMsZS5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZD10Ll9jZW50ZXJUb2xlcmFuY2VTcXVhcmVkLGUpOm5ldyBHZShuLngsbi55LG4ueil9O0dlLmZyb21DYXJ0ZXNpYW4zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgoZSl8fChlPW5ldyBHZSksaCh0KSYmZDEoZSx0LngsdC55LHQueiksZX07R2UuV0dTODQ9T2JqZWN0LmZyZWV6ZShuZXcgR2UoNjM3ODEzNyw2Mzc4MTM3LDYzNTY3NTIzMTQyNDUxNzllLTkpKTtHZS5VTklUX1NQSEVSRT1PYmplY3QuZnJlZXplKG5ldyBHZSgxLDEsMSkpO0dlLk1PT049T2JqZWN0LmZyZWV6ZShuZXcgR2UoTS5MVU5BUl9SQURJVVMsTS5MVU5BUl9SQURJVVMsTS5MVU5BUl9SQURJVVMpKTtHZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIEdlLmNsb25lKHRoaXMsdCl9O0dlLnBhY2tlZExlbmd0aD1hLnBhY2tlZExlbmd0aDtHZS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksYS5wYWNrKHQuX3JhZGlpLGUsbiksZX07R2UudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz1hLnVucGFjayh0LGUpO3JldHVybiBHZS5mcm9tQ2FydGVzaWFuMyhvLG4pfTtHZS5wcm90b3R5cGUuZ2VvY2VudHJpY1N1cmZhY2VOb3JtYWw9YS5ub3JtYWxpemU7R2UucHJvdG90eXBlLmdlb2RldGljU3VyZmFjZU5vcm1hbENhcnRvZ3JhcGhpYz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydG9ncmFwaGljIix0KTtsZXQgbj10LmxvbmdpdHVkZSxvPXQubGF0aXR1ZGUscj1NYXRoLmNvcyhvKSxpPXIqTWF0aC5jb3Mobikscz1yKk1hdGguc2luKG4pLGY9TWF0aC5zaW4obyk7cmV0dXJuIGgoZSl8fChlPW5ldyBhKSxlLng9aSxlLnk9cyxlLno9ZixhLm5vcm1hbGl6ZShlLGUpfTtHZS5wcm90b3R5cGUuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsPWZ1bmN0aW9uKHQsZSl7aWYoIWEuZXF1YWxzRXBzaWxvbih0LGEuWkVSTyxNLkVQU0lMT04xNCkpcmV0dXJuIGgoZSl8fChlPW5ldyBhKSxlPWEubXVsdGlwbHlDb21wb25lbnRzKHQsdGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZCxlKSxhLm5vcm1hbGl6ZShlLGUpfTtzQz1uZXcgYSxjQz1uZXcgYTtHZS5wcm90b3R5cGUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW49ZnVuY3Rpb24odCxlKXtsZXQgbj1zQyxvPWNDO3RoaXMuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsQ2FydG9ncmFwaGljKHQsbiksYS5tdWx0aXBseUNvbXBvbmVudHModGhpcy5fcmFkaWlTcXVhcmVkLG4sbyk7bGV0IHI9TWF0aC5zcXJ0KGEuZG90KG4sbykpO3JldHVybiBhLmRpdmlkZUJ5U2NhbGFyKG8scixvKSxhLm11bHRpcGx5QnlTY2FsYXIobix0LmhlaWdodCxuKSxoKGUpfHwoZT1uZXcgYSksYS5hZGQobyxuLGUpfTtHZS5wcm90b3R5cGUuY2FydG9ncmFwaGljQXJyYXlUb0NhcnRlc2lhbkFycmF5PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJjYXJ0b2dyYXBoaWNzIix0KTtsZXQgbj10Lmxlbmd0aDtoKGUpP2UubGVuZ3RoPW46ZT1uZXcgQXJyYXkobik7Zm9yKGxldCBvPTA7bzxuO28rKyllW29dPXRoaXMuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4odFtvXSxlW29dKTtyZXR1cm4gZX07YUM9bmV3IGEsZkM9bmV3IGEsdUM9bmV3IGE7R2UucHJvdG90eXBlLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljPWZ1bmN0aW9uKHQsZSl7bGV0IG49dGhpcy5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHQsZkMpO2lmKCFoKG4pKXJldHVybjtsZXQgbz10aGlzLmdlb2RldGljU3VyZmFjZU5vcm1hbChuLGFDKSxyPWEuc3VidHJhY3QodCxuLHVDKSxpPU1hdGguYXRhbjIoby55LG8ueCkscz1NYXRoLmFzaW4oby56KSxmPU0uc2lnbihhLmRvdChyLHQpKSphLm1hZ25pdHVkZShyKTtyZXR1cm4gaChlKT8oZS5sb25naXR1ZGU9aSxlLmxhdGl0dWRlPXMsZS5oZWlnaHQ9ZixlKTpuZXcgY3QoaSxzLGYpfTtHZS5wcm90b3R5cGUuY2FydGVzaWFuQXJyYXlUb0NhcnRvZ3JhcGhpY0FycmF5PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJjYXJ0ZXNpYW5zIix0KTtsZXQgbj10Lmxlbmd0aDtoKGUpP2UubGVuZ3RoPW46ZT1uZXcgQXJyYXkobik7Zm9yKGxldCBvPTA7bzxuOysrbyllW29dPXRoaXMuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModFtvXSxlW29dKTtyZXR1cm4gZX07R2UucHJvdG90eXBlLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR2wodCx0aGlzLl9vbmVPdmVyUmFkaWksdGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZCx0aGlzLl9jZW50ZXJUb2xlcmFuY2VTcXVhcmVkLGUpfTtHZS5wcm90b3R5cGUuc2NhbGVUb0dlb2NlbnRyaWNTdXJmYWNlPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLGgoZSl8fChlPW5ldyBhKTtsZXQgbj10Lngsbz10Lnkscj10LnosaT10aGlzLl9vbmVPdmVyUmFkaWlTcXVhcmVkLHM9MS9NYXRoLnNxcnQobipuKmkueCtvKm8qaS55K3IqcippLnopO3JldHVybiBhLm11bHRpcGx5QnlTY2FsYXIodCxzLGUpfTtHZS5wcm90b3R5cGUudHJhbnNmb3JtUG9zaXRpb25Ub1NjYWxlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgoZSl8fChlPW5ldyBhKSxhLm11bHRpcGx5Q29tcG9uZW50cyh0LHRoaXMuX29uZU92ZXJSYWRpaSxlKX07R2UucHJvdG90eXBlLnRyYW5zZm9ybVBvc2l0aW9uRnJvbVNjYWxlZFNwYWNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgoZSl8fChlPW5ldyBhKSxhLm11bHRpcGx5Q29tcG9uZW50cyh0LHRoaXMuX3JhZGlpLGUpfTtHZS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzPT09dHx8aCh0KSYmYS5lcXVhbHModGhpcy5fcmFkaWksdC5fcmFkaWkpfTtHZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmFkaWkudG9TdHJpbmcoKX07R2UucHJvdG90eXBlLmdldFN1cmZhY2VOb3JtYWxJbnRlcnNlY3Rpb25XaXRoWkF4aXM9ZnVuY3Rpb24odCxlLG4pe2lmKHkudHlwZU9mLm9iamVjdCgicG9zaXRpb24iLHQpLCFNLmVxdWFsc0Vwc2lsb24odGhpcy5fcmFkaWkueCx0aGlzLl9yYWRpaS55LE0uRVBTSUxPTjE1KSl0aHJvdyBuZXcgQigiRWxsaXBzb2lkIG11c3QgYmUgYW4gZWxsaXBzb2lkIG9mIHJldm9sdXRpb24gKHJhZGlpLnggPT0gcmFkaWkueSkiKTt5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW4oIkVsbGlwc29pZC5yYWRpaS56Iix0aGlzLl9yYWRpaS56LDApLGU9eChlLDApO2xldCBvPXRoaXMuX3NxdWFyZWRYT3ZlclNxdWFyZWRaO2lmKGgobil8fChuPW5ldyBhKSxuLng9MCxuLnk9MCxuLno9dC56KigxLW8pLCEoTWF0aC5hYnMobi56KT49dGhpcy5fcmFkaWkuei1lKSlyZXR1cm4gbn07bEM9Wy4xNDg4NzQzMzg5ODE2MywuNDMzMzk1Mzk0MTI5MjUsLjY3OTQwOTU2ODI5OTAyLC44NjUwNjMzNjY2ODg5OCwuOTczOTA2NTI4NTE3MTcsMF0scEM9Wy4yOTU1MjQyMjQ3MTQ3NSwuMjY5MjY2NzE5MzA5OTksLjIxOTA4NjM2MjUxNTk4LC4xNDk0NTEzNDkxNTA1OCwuMDY2NjcxMzQ0MzA4Njg0LDBdO0dlLnByb3RvdHlwZS5zdXJmYWNlQXJlYT1mdW5jdGlvbih0KXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCk7bGV0IGU9dC53ZXN0LG49dC5lYXN0LG89dC5zb3V0aCxyPXQubm9ydGg7Zm9yKDtuPGU7KW4rPU0uVFdPX1BJO2xldCBpPXRoaXMuX3JhZGlpU3F1YXJlZCxzPWkueCxmPWkueSx1PWkueixjPXMqZjtyZXR1cm4gcDEobyxyLGZ1bmN0aW9uKGwpe2xldCBwPU1hdGguY29zKGwpLGQ9TWF0aC5zaW4obCk7cmV0dXJuIE1hdGguY29zKGwpKnAxKGUsbixmdW5jdGlvbihtKXtsZXQgXz1NYXRoLmNvcyhtKSxnPU1hdGguc2luKG0pO3JldHVybiBNYXRoLnNxcnQoYypkKmQrdSooZipfKl8rcypnKmcpKnAqcCl9KX0pfTskPUdlfSk7ZnVuY3Rpb24gemwodCl7dGhpcy5fZWxsaXBzb2lkPXgodCwkLldHUzg0KSx0aGlzLl9zZW1pbWFqb3JBeGlzPXRoaXMuX2VsbGlwc29pZC5tYXhpbXVtUmFkaXVzLHRoaXMuX29uZU92ZXJTZW1pbWFqb3JBeGlzPTEvdGhpcy5fc2VtaW1ham9yQXhpc312YXIgUW4sUmk9WigoKT0+e1V0KCk7dmUoKTtJdCgpO2F0KCk7SHQoKTtadCgpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHpsLnByb3RvdHlwZSx7ZWxsaXBzb2lkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfX19KTt6bC5wcm90b3R5cGUucHJvamVjdD1mdW5jdGlvbih0LGUpe2xldCBuPXRoaXMuX3NlbWltYWpvckF4aXMsbz10LmxvbmdpdHVkZSpuLHI9dC5sYXRpdHVkZSpuLGk9dC5oZWlnaHQ7cmV0dXJuIGgoZSk/KGUueD1vLGUueT1yLGUuej1pLGUpOm5ldyBhKG8scixpKX07emwucHJvdG90eXBlLnVucHJvamVjdD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJjYXJ0ZXNpYW4gaXMgcmVxdWlyZWQiKTtsZXQgbj10aGlzLl9vbmVPdmVyU2VtaW1ham9yQXhpcyxvPXQueCpuLHI9dC55Km4saT10Lno7cmV0dXJuIGgoZSk/KGUubG9uZ2l0dWRlPW8sZS5sYXRpdHVkZT1yLGUuaGVpZ2h0PWksZSk6bmV3IGN0KG8scixpKX07UW49emx9KTt2YXIgZEMsRW4sVnM9WigoKT0+e2RDPXtPVVRTSURFOi0xLElOVEVSU0VDVElORzowLElOU0lERToxfSxFbj1PYmplY3QuZnJlZXplKGRDKX0pO2Z1bmN0aW9uIG1DKHQsZSl7dGhpcy5zdGFydD14KHQsMCksdGhpcy5zdG9wPXgoZSwwKX12YXIgUXIsamw9WigoKT0+e0l0KCk7UXI9bUN9KTtmdW5jdGlvbiB3dCh0LGUsbixvLHIsaSxzLGYsdSl7dGhpc1swXT14KHQsMCksdGhpc1sxXT14KG8sMCksdGhpc1syXT14KHMsMCksdGhpc1szXT14KGUsMCksdGhpc1s0XT14KHIsMCksdGhpc1s1XT14KGYsMCksdGhpc1s2XT14KG4sMCksdGhpc1s3XT14KGksMCksdGhpc1s4XT14KHUsMCl9ZnVuY3Rpb24gQUModCl7bGV0IGU9MDtmb3IobGV0IG49MDtuPDk7KytuKXtsZXQgbz10W25dO2UrPW8qb31yZXR1cm4gTWF0aC5zcXJ0KGUpfWZ1bmN0aW9uIGJDKHQpe2xldCBlPTA7Zm9yKGxldCBuPTA7bjwzOysrbil7bGV0IG89dFt3dC5nZXRFbGVtZW50SW5kZXgoVG1bbl0sd21bbl0pXTtlKz0yKm8qb31yZXR1cm4gTWF0aC5zcXJ0KGUpfWZ1bmN0aW9uIHdDKHQsZSl7bGV0IG49TS5FUFNJTE9OMTUsbz0wLHI9MTtmb3IobGV0IGM9MDtjPDM7KytjKXtsZXQgbD1NYXRoLmFicyh0W3d0LmdldEVsZW1lbnRJbmRleChUbVtjXSx3bVtjXSldKTtsPm8mJihyPWMsbz1sKX1sZXQgaT0xLHM9MCxmPXdtW3JdLHU9VG1bcl07aWYoTWF0aC5hYnModFt3dC5nZXRFbGVtZW50SW5kZXgodSxmKV0pPm4pe2xldCBjPXRbd3QuZ2V0RWxlbWVudEluZGV4KHUsdSldLGw9dFt3dC5nZXRFbGVtZW50SW5kZXgoZixmKV0scD10W3d0LmdldEVsZW1lbnRJbmRleCh1LGYpXSxkPShjLWwpLzIvcCxtO2Q8MD9tPS0xLygtZCtNYXRoLnNxcnQoMStkKmQpKTptPTEvKGQrTWF0aC5zcXJ0KDErZCpkKSksaT0xL01hdGguc3FydCgxK20qbSkscz1tKml9cmV0dXJuIGU9d3QuY2xvbmUod3QuSURFTlRJVFksZSksZVt3dC5nZXRFbGVtZW50SW5kZXgoZixmKV09ZVt3dC5nZXRFbGVtZW50SW5kZXgodSx1KV09aSxlW3d0LmdldEVsZW1lbnRJbmRleCh1LGYpXT1zLGVbd3QuZ2V0RWxlbWVudEluZGV4KGYsdSldPS1zLGV9dmFyIGhDLF9DLGJtLG0xLHlDLGdDLHdtLFRtLEhsLGgxLFRDLHR0LEZuPVooKCk9PntVdCgpO1l0KCk7SXQoKTthdCgpO0h0KCk7V3QoKTt3dC5wYWNrZWRMZW5ndGg9OTt3dC5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXRbMF0sZVtuKytdPXRbMV0sZVtuKytdPXRbMl0sZVtuKytdPXRbM10sZVtuKytdPXRbNF0sZVtuKytdPXRbNV0sZVtuKytdPXRbNl0sZVtuKytdPXRbN10sZVtuKytdPXRbOF0sZX07d3QudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IHd0KSxuWzBdPXRbZSsrXSxuWzFdPXRbZSsrXSxuWzJdPXRbZSsrXSxuWzNdPXRbZSsrXSxuWzRdPXRbZSsrXSxuWzVdPXRbZSsrXSxuWzZdPXRbZSsrXSxuWzddPXRbZSsrXSxuWzhdPXRbZSsrXSxufTt3dC5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImFycmF5Iix0KTtsZXQgbj10Lmxlbmd0aCxvPW4qOTtpZighaChlKSllPW5ldyBBcnJheShvKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aCE9PW8pdGhyb3cgbmV3IEIoIklmIHJlc3VsdCBpcyBhIHR5cGVkIGFycmF5LCBpdCBtdXN0IGhhdmUgZXhhY3RseSBhcnJheS5sZW5ndGggKiA5IGVsZW1lbnRzIik7ZS5sZW5ndGghPT1vJiYoZS5sZW5ndGg9byl9Zm9yKGxldCByPTA7cjxuOysrcil3dC5wYWNrKHRbcl0sZSxyKjkpO3JldHVybiBlfTt3dC51bnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe2lmKHkuZGVmaW5lZCgiYXJyYXkiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJhcnJheS5sZW5ndGgiLHQubGVuZ3RoLDkpLHQubGVuZ3RoJTkhPT0wKXRocm93IG5ldyBCKCJhcnJheSBsZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDkuIik7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uLzk6ZT1uZXcgQXJyYXkobi85KTtmb3IobGV0IG89MDtvPG47bys9OSl7bGV0IHI9by85O2Vbcl09d3QudW5wYWNrKHQsbyxlW3JdKX1yZXR1cm4gZX07d3QuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlKTpuZXcgd3QodFswXSx0WzNdLHRbNl0sdFsxXSx0WzRdLHRbN10sdFsyXSx0WzVdLHRbOF0pfTt3dC5mcm9tQXJyYXk9d3QudW5wYWNrO3d0LmZyb21Db2x1bW5NYWpvckFycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgidmFsdWVzIix0KSx3dC5jbG9uZSh0LGUpfTt3dC5mcm9tUm93TWFqb3JBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoInZhbHVlcyIsdCksaChlKT8oZVswXT10WzBdLGVbMV09dFszXSxlWzJdPXRbNl0sZVszXT10WzFdLGVbNF09dFs0XSxlWzVdPXRbN10sZVs2XT10WzJdLGVbN109dFs1XSxlWzhdPXRbOF0sZSk6bmV3IHd0KHRbMF0sdFsxXSx0WzJdLHRbM10sdFs0XSx0WzVdLHRbNl0sdFs3XSx0WzhdKX07d3QuZnJvbVF1YXRlcm5pb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInF1YXRlcm5pb24iLHQpO2xldCBuPXQueCp0Lngsbz10LngqdC55LHI9dC54KnQueixpPXQueCp0Lncscz10LnkqdC55LGY9dC55KnQueix1PXQueSp0LncsYz10LnoqdC56LGw9dC56KnQudyxwPXQudyp0LncsZD1uLXMtYytwLG09Miooby1sKSxfPTIqKHIrdSksZz0yKihvK2wpLGI9LW4rcy1jK3AsTz0yKihmLWkpLFQ9Miooci11KSxFPTIqKGYraSksdz0tbi1zK2MrcDtyZXR1cm4gaChlKT8oZVswXT1kLGVbMV09ZyxlWzJdPVQsZVszXT1tLGVbNF09YixlWzVdPUUsZVs2XT1fLGVbN109TyxlWzhdPXcsZSk6bmV3IHd0KGQsbSxfLGcsYixPLFQsRSx3KX07d3QuZnJvbUhlYWRpbmdQaXRjaFJvbGw9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImhlYWRpbmdQaXRjaFJvbGwiLHQpO2xldCBuPU1hdGguY29zKC10LnBpdGNoKSxvPU1hdGguY29zKC10LmhlYWRpbmcpLHI9TWF0aC5jb3ModC5yb2xsKSxpPU1hdGguc2luKC10LnBpdGNoKSxzPU1hdGguc2luKC10LmhlYWRpbmcpLGY9TWF0aC5zaW4odC5yb2xsKSx1PW4qbyxjPS1yKnMrZippKm8sbD1mKnMrcippKm8scD1uKnMsZD1yKm8rZippKnMsbT0tZipvK3IqaSpzLF89LWksZz1mKm4sYj1yKm47cmV0dXJuIGgoZSk/KGVbMF09dSxlWzFdPXAsZVsyXT1fLGVbM109YyxlWzRdPWQsZVs1XT1nLGVbNl09bCxlWzddPW0sZVs4XT1iLGUpOm5ldyB3dCh1LGMsbCxwLGQsbSxfLGcsYil9O3d0LmZyb21TY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInNjYWxlIix0KSxoKGUpPyhlWzBdPXQueCxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPXQueSxlWzVdPTAsZVs2XT0wLGVbN109MCxlWzhdPXQueixlKTpuZXcgd3QodC54LDAsMCwwLHQueSwwLDAsMCx0LnopfTt3dC5mcm9tVW5pZm9ybVNjYWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigic2NhbGUiLHQpLGgoZSk/KGVbMF09dCxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPXQsZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT10LGUpOm5ldyB3dCh0LDAsMCwwLHQsMCwwLDAsdCl9O3d0LmZyb21Dcm9zc1Byb2R1Y3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2ZWN0b3IiLHQpLGgoZSk/KGVbMF09MCxlWzFdPXQueixlWzJdPS10LnksZVszXT0tdC56LGVbNF09MCxlWzVdPXQueCxlWzZdPXQueSxlWzddPS10LngsZVs4XT0wLGUpOm5ldyB3dCgwLC10LnosdC55LHQueiwwLC10LngsLXQueSx0LngsMCl9O3d0LmZyb21Sb3RhdGlvblg9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5udW1iZXIoImFuZ2xlIix0KTtsZXQgbj1NYXRoLmNvcyh0KSxvPU1hdGguc2luKHQpO3JldHVybiBoKGUpPyhlWzBdPTEsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT1uLGVbNV09byxlWzZdPTAsZVs3XT0tbyxlWzhdPW4sZSk6bmV3IHd0KDEsMCwwLDAsbiwtbywwLG8sbil9O3d0LmZyb21Sb3RhdGlvblk9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5udW1iZXIoImFuZ2xlIix0KTtsZXQgbj1NYXRoLmNvcyh0KSxvPU1hdGguc2luKHQpO3JldHVybiBoKGUpPyhlWzBdPW4sZVsxXT0wLGVbMl09LW8sZVszXT0wLGVbNF09MSxlWzVdPTAsZVs2XT1vLGVbN109MCxlWzhdPW4sZSk6bmV3IHd0KG4sMCxvLDAsMSwwLC1vLDAsbil9O3d0LmZyb21Sb3RhdGlvblo9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5udW1iZXIoImFuZ2xlIix0KTtsZXQgbj1NYXRoLmNvcyh0KSxvPU1hdGguc2luKHQpO3JldHVybiBoKGUpPyhlWzBdPW4sZVsxXT1vLGVbMl09MCxlWzNdPS1vLGVbNF09bixlWzVdPTAsZVs2XT0wLGVbN109MCxlWzhdPTEsZSk6bmV3IHd0KG4sLW8sMCxvLG4sMCwwLDAsMSl9O3d0LnRvQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLGgoZSk/KGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGUpOlt0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSx0WzZdLHRbN10sdFs4XV19O3d0LmdldEVsZW1lbnRJbmRleD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygicm93IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJyb3ciLGUsMikseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImNvbHVtbiIsdCwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiY29sdW1uIix0LDIpLHQqMytlfTt3dC5nZXRDb2x1bW49ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDIpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lKjMscj10W29dLGk9dFtvKzFdLHM9dFtvKzJdO3JldHVybiBuLng9cixuLnk9aSxuLno9cyxufTt3dC5zZXRDb2x1bW49ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiaW5kZXgiLGUsMikseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKSxvPXd0LmNsb25lKHQsbyk7bGV0IHI9ZSozO3JldHVybiBvW3JdPW4ueCxvW3IrMV09bi55LG9bcisyXT1uLnosb307d3QuZ2V0Um93PWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwyKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89dFtlXSxyPXRbZSszXSxpPXRbZSs2XTtyZXR1cm4gbi54PW8sbi55PXIsbi56PWksbn07d3Quc2V0Um93PWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwyKSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pLG89d3QuY2xvbmUodCxvKSxvW2VdPW4ueCxvW2UrM109bi55LG9bZSs2XT1uLnosb307aEM9bmV3IGE7d3Quc2V0U2NhbGU9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInNjYWxlIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89d3QuZ2V0U2NhbGUodCxoQykscj1lLngvby54LGk9ZS55L28ueSxzPWUuei9vLno7cmV0dXJuIG5bMF09dFswXSpyLG5bMV09dFsxXSpyLG5bMl09dFsyXSpyLG5bM109dFszXSppLG5bNF09dFs0XSppLG5bNV09dFs1XSppLG5bNl09dFs2XSpzLG5bN109dFs3XSpzLG5bOF09dFs4XSpzLG59O19DPW5ldyBhO3d0LnNldFVuaWZvcm1TY2FsZT1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGUiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz13dC5nZXRTY2FsZSh0LF9DKSxyPWUvby54LGk9ZS9vLnkscz1lL28uejtyZXR1cm4gblswXT10WzBdKnIsblsxXT10WzFdKnIsblsyXT10WzJdKnIsblszXT10WzNdKmksbls0XT10WzRdKmksbls1XT10WzVdKmksbls2XT10WzZdKnMsbls3XT10WzddKnMsbls4XT10WzhdKnMsbn07Ym09bmV3IGE7d3QuZ2V0U2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlLng9YS5tYWduaXR1ZGUoYS5mcm9tRWxlbWVudHModFswXSx0WzFdLHRbMl0sYm0pKSxlLnk9YS5tYWduaXR1ZGUoYS5mcm9tRWxlbWVudHModFszXSx0WzRdLHRbNV0sYm0pKSxlLno9YS5tYWduaXR1ZGUoYS5mcm9tRWxlbWVudHModFs2XSx0WzddLHRbOF0sYm0pKSxlfTttMT1uZXcgYTt3dC5nZXRNYXhpbXVtU2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHd0LmdldFNjYWxlKHQsbTEpLGEubWF4aW11bUNvbXBvbmVudChtMSl9O3lDPW5ldyBhO3d0LnNldFJvdGF0aW9uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXd0LmdldFNjYWxlKHQseUMpO3JldHVybiBuWzBdPWVbMF0qby54LG5bMV09ZVsxXSpvLngsblsyXT1lWzJdKm8ueCxuWzNdPWVbM10qby55LG5bNF09ZVs0XSpvLnksbls1XT1lWzVdKm8ueSxuWzZdPWVbNl0qby56LG5bN109ZVs3XSpvLnosbls4XT1lWzhdKm8ueixufTtnQz1uZXcgYTt3dC5nZXRSb3RhdGlvbj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49d3QuZ2V0U2NhbGUodCxnQyk7cmV0dXJuIGVbMF09dFswXS9uLngsZVsxXT10WzFdL24ueCxlWzJdPXRbMl0vbi54LGVbM109dFszXS9uLnksZVs0XT10WzRdL24ueSxlWzVdPXRbNV0vbi55LGVbNl09dFs2XS9uLnosZVs3XT10WzddL24ueixlWzhdPXRbOF0vbi56LGV9O3d0Lm11bHRpcGx5PWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10WzBdKmVbMF0rdFszXSplWzFdK3RbNl0qZVsyXSxyPXRbMV0qZVswXSt0WzRdKmVbMV0rdFs3XSplWzJdLGk9dFsyXSplWzBdK3RbNV0qZVsxXSt0WzhdKmVbMl0scz10WzBdKmVbM10rdFszXSplWzRdK3RbNl0qZVs1XSxmPXRbMV0qZVszXSt0WzRdKmVbNF0rdFs3XSplWzVdLHU9dFsyXSplWzNdK3RbNV0qZVs0XSt0WzhdKmVbNV0sYz10WzBdKmVbNl0rdFszXSplWzddK3RbNl0qZVs4XSxsPXRbMV0qZVs2XSt0WzRdKmVbN10rdFs3XSplWzhdLHA9dFsyXSplWzZdK3RbNV0qZVs3XSt0WzhdKmVbOF07cmV0dXJuIG5bMF09byxuWzFdPXIsblsyXT1pLG5bM109cyxuWzRdPWYsbls1XT11LG5bNl09YyxuWzddPWwsbls4XT1wLG59O3d0LmFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXStlWzBdLG5bMV09dFsxXStlWzFdLG5bMl09dFsyXStlWzJdLG5bM109dFszXStlWzNdLG5bNF09dFs0XStlWzRdLG5bNV09dFs1XStlWzVdLG5bNl09dFs2XStlWzZdLG5bN109dFs3XStlWzddLG5bOF09dFs4XStlWzhdLG59O3d0LnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdLWVbMF0sblsxXT10WzFdLWVbMV0sblsyXT10WzJdLWVbMl0sblszXT10WzNdLWVbM10sbls0XT10WzRdLWVbNF0sbls1XT10WzVdLWVbNV0sbls2XT10WzZdLWVbNl0sbls3XT10WzddLWVbN10sbls4XT10WzhdLWVbOF0sbn07d3QubXVsdGlwbHlCeVZlY3Rvcj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89ZS54LHI9ZS55LGk9ZS56LHM9dFswXSpvK3RbM10qcit0WzZdKmksZj10WzFdKm8rdFs0XSpyK3RbN10qaSx1PXRbMl0qbyt0WzVdKnIrdFs4XSppO3JldHVybiBuLng9cyxuLnk9ZixuLno9dSxufTt3dC5tdWx0aXBseUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdKmUsblsxXT10WzFdKmUsblsyXT10WzJdKmUsblszXT10WzNdKmUsbls0XT10WzRdKmUsbls1XT10WzVdKmUsbls2XT10WzZdKmUsbls3XT10WzddKmUsbls4XT10WzhdKmUsbn07d3QubXVsdGlwbHlCeVNjYWxlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgic2NhbGUiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0qZS54LG5bMV09dFsxXSplLngsblsyXT10WzJdKmUueCxuWzNdPXRbM10qZS55LG5bNF09dFs0XSplLnksbls1XT10WzVdKmUueSxuWzZdPXRbNl0qZS56LG5bN109dFs3XSplLnosbls4XT10WzhdKmUueixufTt3dC5tdWx0aXBseUJ5VW5pZm9ybVNjYWxlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGUiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0qZSxuWzFdPXRbMV0qZSxuWzJdPXRbMl0qZSxuWzNdPXRbM10qZSxuWzRdPXRbNF0qZSxuWzVdPXRbNV0qZSxuWzZdPXRbNl0qZSxuWzddPXRbN10qZSxuWzhdPXRbOF0qZSxufTt3dC5uZWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlWzBdPS10WzBdLGVbMV09LXRbMV0sZVsyXT0tdFsyXSxlWzNdPS10WzNdLGVbNF09LXRbNF0sZVs1XT0tdFs1XSxlWzZdPS10WzZdLGVbN109LXRbN10sZVs4XT0tdFs4XSxlfTt3dC50cmFuc3Bvc2U9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXRbMF0sbz10WzNdLHI9dFs2XSxpPXRbMV0scz10WzRdLGY9dFs3XSx1PXRbMl0sYz10WzVdLGw9dFs4XTtyZXR1cm4gZVswXT1uLGVbMV09byxlWzJdPXIsZVszXT1pLGVbNF09cyxlWzVdPWYsZVs2XT11LGVbN109YyxlWzhdPWwsZX07d209WzEsMCwwXSxUbT1bMiwyLDFdO0hsPW5ldyB3dCxoMT1uZXcgd3Q7d3QuY29tcHV0ZUVpZ2VuRGVjb21wb3NpdGlvbj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KTtsZXQgbj1NLkVQU0lMT04yMCxvPTEwLHI9MCxpPTA7aChlKXx8KGU9e30pO2xldCBzPWUudW5pdGFyeT13dC5jbG9uZSh3dC5JREVOVElUWSxlLnVuaXRhcnkpLGY9ZS5kaWFnb25hbD13dC5jbG9uZSh0LGUuZGlhZ29uYWwpLHU9bipBQyhmKTtmb3IoO2k8byYmYkMoZik+dTspd0MoZixIbCksd3QudHJhbnNwb3NlKEhsLGgxKSx3dC5tdWx0aXBseShmLEhsLGYpLHd0Lm11bHRpcGx5KGgxLGYsZiksd3QubXVsdGlwbHkocyxIbCxzKSwrK3I+MiYmKCsraSxyPTApO3JldHVybiBlfTt3dC5hYnM9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlWzBdPU1hdGguYWJzKHRbMF0pLGVbMV09TWF0aC5hYnModFsxXSksZVsyXT1NYXRoLmFicyh0WzJdKSxlWzNdPU1hdGguYWJzKHRbM10pLGVbNF09TWF0aC5hYnModFs0XSksZVs1XT1NYXRoLmFicyh0WzVdKSxlWzZdPU1hdGguYWJzKHRbNl0pLGVbN109TWF0aC5hYnModFs3XSksZVs4XT1NYXRoLmFicyh0WzhdKSxlfTt3dC5kZXRlcm1pbmFudD1mdW5jdGlvbih0KXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCk7bGV0IGU9dFswXSxuPXRbM10sbz10WzZdLHI9dFsxXSxpPXRbNF0scz10WzddLGY9dFsyXSx1PXRbNV0sYz10WzhdO3JldHVybiBlKihpKmMtdSpzKStyKih1Km8tbipjKStmKihuKnMtaSpvKX07d3QuaW52ZXJzZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49dFswXSxvPXRbMV0scj10WzJdLGk9dFszXSxzPXRbNF0sZj10WzVdLHU9dFs2XSxjPXRbN10sbD10WzhdLHA9d3QuZGV0ZXJtaW5hbnQodCk7aWYoTWF0aC5hYnMocCk8PU0uRVBTSUxPTjE1KXRocm93IG5ldyBCKCJtYXRyaXggaXMgbm90IGludmVydGlibGUiKTtlWzBdPXMqbC1jKmYsZVsxXT1jKnItbypsLGVbMl09bypmLXMqcixlWzNdPXUqZi1pKmwsZVs0XT1uKmwtdSpyLGVbNV09aSpyLW4qZixlWzZdPWkqYy11KnMsZVs3XT11Km8tbipjLGVbOF09bipzLWkqbztsZXQgZD0xL3A7cmV0dXJuIHd0Lm11bHRpcGx5QnlTY2FsYXIoZSxkLGUpfTtUQz1uZXcgd3Q7d3QuaW52ZXJzZVRyYW5zcG9zZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLHd0LmludmVyc2Uod3QudHJhbnNwb3NlKHQsVEMpLGUpfTt3dC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl0mJnRbM109PT1lWzNdJiZ0WzRdPT09ZVs0XSYmdFs1XT09PWVbNV0mJnRbNl09PT1lWzZdJiZ0WzddPT09ZVs3XSYmdFs4XT09PWVbOF19O3d0LmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuPXgobiwwKSx0PT09ZXx8aCh0KSYmaChlKSYmTWF0aC5hYnModFswXS1lWzBdKTw9biYmTWF0aC5hYnModFsxXS1lWzFdKTw9biYmTWF0aC5hYnModFsyXS1lWzJdKTw9biYmTWF0aC5hYnModFszXS1lWzNdKTw9biYmTWF0aC5hYnModFs0XS1lWzRdKTw9biYmTWF0aC5hYnModFs1XS1lWzVdKTw9biYmTWF0aC5hYnModFs2XS1lWzZdKTw9biYmTWF0aC5hYnModFs3XS1lWzddKTw9biYmTWF0aC5hYnModFs4XS1lWzhdKTw9bn07d3QuSURFTlRJVFk9T2JqZWN0LmZyZWV6ZShuZXcgd3QoMSwwLDAsMCwxLDAsMCwwLDEpKTt3dC5aRVJPPU9iamVjdC5mcmVlemUobmV3IHd0KDAsMCwwLDAsMCwwLDAsMCwwKSk7d3QuQ09MVU1OMFJPVzA9MDt3dC5DT0xVTU4wUk9XMT0xO3d0LkNPTFVNTjBST1cyPTI7d3QuQ09MVU1OMVJPVzA9Mzt3dC5DT0xVTU4xUk9XMT00O3d0LkNPTFVNTjFST1cyPTU7d3QuQ09MVU1OMlJPVzA9Njt3dC5DT0xVTU4yUk9XMT03O3d0LkNPTFVNTjJST1cyPTg7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMod3QucHJvdG90eXBlLHtsZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiB3dC5wYWNrZWRMZW5ndGh9fX0pO3d0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gd3QuY2xvbmUodGhpcyx0KX07d3QucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gd3QuZXF1YWxzKHRoaXMsdCl9O3d0LmVxdWFsc0FycmF5PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFswXT09PWVbbl0mJnRbMV09PT1lW24rMV0mJnRbMl09PT1lW24rMl0mJnRbM109PT1lW24rM10mJnRbNF09PT1lW24rNF0mJnRbNV09PT1lW24rNV0mJnRbNl09PT1lW24rNl0mJnRbN109PT1lW24rN10mJnRbOF09PT1lW24rOF19O3d0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHd0LmVxdWFsc0Vwc2lsb24odGhpcyx0LGUpfTt3dC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5gKCR7dGhpc1swXX0sICR7dGhpc1szXX0sICR7dGhpc1s2XX0pCigke3RoaXNbMV19LCAke3RoaXNbNF19LCAke3RoaXNbN119KQooJHt0aGlzWzJdfSwgJHt0aGlzWzVdfSwgJHt0aGlzWzhdfSlgfTt0dD13dH0pO2Z1bmN0aW9uIHZ0KHQsZSxuLG8pe3RoaXMueD14KHQsMCksdGhpcy55PXgoZSwwKSx0aGlzLno9eChuLDApLHRoaXMudz14KG8sMCl9dmFyIHFsLF8xLE9DLE9tLGJvLEVDLFJDLHkxLF9lLGhyPVooKCk9PntZdCgpO0l0KCk7YXQoKTtIdCgpO1d0KCk7dnQuZnJvbUVsZW1lbnRzPWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIGgocik/KHIueD10LHIueT1lLHIuej1uLHIudz1vLHIpOm5ldyB2dCh0LGUsbixvKX07dnQuZnJvbUNvbG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY29sb3IiLHQpLGgoZSk/KGUueD10LnJlZCxlLnk9dC5ncmVlbixlLno9dC5ibHVlLGUudz10LmFscGhhLGUpOm5ldyB2dCh0LnJlZCx0LmdyZWVuLHQuYmx1ZSx0LmFscGhhKX07dnQuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLng9dC54LGUueT10LnksZS56PXQueixlLnc9dC53LGUpOm5ldyB2dCh0LngsdC55LHQueix0LncpfTt2dC5wYWNrZWRMZW5ndGg9NDt2dC5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQueCxlW24rK109dC55LGVbbisrXT10LnosZVtuXT10LncsZX07dnQudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IHZ0KSxuLng9dFtlKytdLG4ueT10W2UrK10sbi56PXRbZSsrXSxuLnc9dFtlXSxufTt2dC5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImFycmF5Iix0KTtsZXQgbj10Lmxlbmd0aCxvPW4qNDtpZighaChlKSllPW5ldyBBcnJheShvKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aCE9PW8pdGhyb3cgbmV3IEIoIklmIHJlc3VsdCBpcyBhIHR5cGVkIGFycmF5LCBpdCBtdXN0IGhhdmUgZXhhY3RseSBhcnJheS5sZW5ndGggKiA0IGVsZW1lbnRzIik7ZS5sZW5ndGghPT1vJiYoZS5sZW5ndGg9byl9Zm9yKGxldCByPTA7cjxuOysrcil2dC5wYWNrKHRbcl0sZSxyKjQpO3JldHVybiBlfTt2dC51bnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe2lmKHkuZGVmaW5lZCgiYXJyYXkiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJhcnJheS5sZW5ndGgiLHQubGVuZ3RoLDQpLHQubGVuZ3RoJTQhPT0wKXRocm93IG5ldyBCKCJhcnJheSBsZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuIik7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uLzQ6ZT1uZXcgQXJyYXkobi80KTtmb3IobGV0IG89MDtvPG47bys9NCl7bGV0IHI9by80O2Vbcl09dnQudW5wYWNrKHQsbyxlW3JdKX1yZXR1cm4gZX07dnQuZnJvbUFycmF5PXZ0LnVucGFjazt2dC5tYXhpbXVtQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksTWF0aC5tYXgodC54LHQueSx0LnosdC53KX07dnQubWluaW11bUNvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLE1hdGgubWluKHQueCx0LnksdC56LHQudyl9O3Z0Lm1pbmltdW1CeUNvbXBvbmVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZmlyc3QiLHQpLHkudHlwZU9mLm9iamVjdCgic2Vjb25kIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PU1hdGgubWluKHQueCxlLngpLG4ueT1NYXRoLm1pbih0LnksZS55KSxuLno9TWF0aC5taW4odC56LGUueiksbi53PU1hdGgubWluKHQudyxlLncpLG59O3Z0Lm1heGltdW1CeUNvbXBvbmVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZmlyc3QiLHQpLHkudHlwZU9mLm9iamVjdCgic2Vjb25kIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PU1hdGgubWF4KHQueCxlLngpLG4ueT1NYXRoLm1heCh0LnksZS55KSxuLno9TWF0aC5tYXgodC56LGUueiksbi53PU1hdGgubWF4KHQudyxlLncpLG59O3Z0LmNsYW1wPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkudHlwZU9mLm9iamVjdCgibWluIixlKSx5LnR5cGVPZi5vYmplY3QoIm1heCIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pO2xldCByPU0uY2xhbXAodC54LGUueCxuLngpLGk9TS5jbGFtcCh0LnksZS55LG4ueSkscz1NLmNsYW1wKHQueixlLnosbi56KSxmPU0uY2xhbXAodC53LGUudyxuLncpO3JldHVybiBvLng9cixvLnk9aSxvLno9cyxvLnc9ZixvfTt2dC5tYWduaXR1ZGVTcXVhcmVkPWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksdC54KnQueCt0LnkqdC55K3Queip0LnordC53KnQud307dnQubWFnbml0dWRlPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQodnQubWFnbml0dWRlU3F1YXJlZCh0KSl9O3FsPW5ldyB2dDt2dC5kaXN0YW5jZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHZ0LnN1YnRyYWN0KHQsZSxxbCksdnQubWFnbml0dWRlKHFsKX07dnQuZGlzdGFuY2VTcXVhcmVkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksdnQuc3VidHJhY3QodCxlLHFsKSx2dC5tYWduaXR1ZGVTcXVhcmVkKHFsKX07dnQubm9ybWFsaXplPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj12dC5tYWduaXR1ZGUodCk7aWYoZS54PXQueC9uLGUueT10LnkvbixlLno9dC56L24sZS53PXQudy9uLGlzTmFOKGUueCl8fGlzTmFOKGUueSl8fGlzTmFOKGUueil8fGlzTmFOKGUudykpdGhyb3cgbmV3IEIoIm5vcm1hbGl6ZWQgcmVzdWx0IGlzIG5vdCBhIG51bWJlciIpO3JldHVybiBlfTt2dC5kb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx0LngqZS54K3QueSplLnkrdC56KmUueit0LncqZS53fTt2dC5tdWx0aXBseUNvbXBvbmVudHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54KmUueCxuLnk9dC55KmUueSxuLno9dC56KmUueixuLnc9dC53KmUudyxufTt2dC5kaXZpZGVDb21wb25lbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLngsbi55PXQueS9lLnksbi56PXQuei9lLnosbi53PXQudy9lLncsbn07dnQuYWRkPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCtlLngsbi55PXQueStlLnksbi56PXQueitlLnosbi53PXQudytlLncsbn07dnQuc3VidHJhY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54LWUueCxuLnk9dC55LWUueSxuLno9dC56LWUueixuLnc9dC53LWUudyxufTt2dC5tdWx0aXBseUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCplLG4ueT10LnkqZSxuLno9dC56KmUsbi53PXQudyplLG59O3Z0LmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLG4ueT10LnkvZSxuLno9dC56L2Usbi53PXQudy9lLG59O3Z0Lm5lZ2F0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGUueD0tdC54LGUueT0tdC55LGUuej0tdC56LGUudz0tdC53LGV9O3Z0LmFicz1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGUueD1NYXRoLmFicyh0LngpLGUueT1NYXRoLmFicyh0LnkpLGUuej1NYXRoLmFicyh0LnopLGUudz1NYXRoLmFicyh0LncpLGV9O18xPW5ldyB2dDt2dC5sZXJwPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInN0YXJ0Iix0KSx5LnR5cGVPZi5vYmplY3QoImVuZCIsZSkseS50eXBlT2YubnVtYmVyKCJ0IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksdnQubXVsdGlwbHlCeVNjYWxhcihlLG4sXzEpLG89dnQubXVsdGlwbHlCeVNjYWxhcih0LDEtbixvKSx2dC5hZGQoXzEsbyxvKX07T0M9bmV3IHZ0O3Z0Lm1vc3RPcnRob2dvbmFsQXhpcz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49dnQubm9ybWFsaXplKHQsT0MpO3JldHVybiB2dC5hYnMobixuKSxuLng8PW4ueT9uLng8PW4uej9uLng8PW4udz9lPXZ0LmNsb25lKHZ0LlVOSVRfWCxlKTplPXZ0LmNsb25lKHZ0LlVOSVRfVyxlKTpuLno8PW4udz9lPXZ0LmNsb25lKHZ0LlVOSVRfWixlKTplPXZ0LmNsb25lKHZ0LlVOSVRfVyxlKTpuLnk8PW4uej9uLnk8PW4udz9lPXZ0LmNsb25lKHZ0LlVOSVRfWSxlKTplPXZ0LmNsb25lKHZ0LlVOSVRfVyxlKTpuLno8PW4udz9lPXZ0LmNsb25lKHZ0LlVOSVRfWixlKTplPXZ0LmNsb25lKHZ0LlVOSVRfVyxlKSxlfTt2dC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQueD09PWUueCYmdC55PT09ZS55JiZ0Lno9PT1lLnomJnQudz09PWUud307dnQuZXF1YWxzQXJyYXk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0Lng9PT1lW25dJiZ0Lnk9PT1lW24rMV0mJnQuej09PWVbbisyXSYmdC53PT09ZVtuKzNdfTt2dC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmTS5lcXVhbHNFcHNpbG9uKHQueCxlLngsbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueSxlLnksbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueixlLnosbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQudyxlLncsbixvKX07dnQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyB2dCgwLDAsMCwwKSk7dnQuT05FPU9iamVjdC5mcmVlemUobmV3IHZ0KDEsMSwxLDEpKTt2dC5VTklUX1g9T2JqZWN0LmZyZWV6ZShuZXcgdnQoMSwwLDAsMCkpO3Z0LlVOSVRfWT1PYmplY3QuZnJlZXplKG5ldyB2dCgwLDEsMCwwKSk7dnQuVU5JVF9aPU9iamVjdC5mcmVlemUobmV3IHZ0KDAsMCwxLDApKTt2dC5VTklUX1c9T2JqZWN0LmZyZWV6ZShuZXcgdnQoMCwwLDAsMSkpO3Z0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gdnQuY2xvbmUodGhpcyx0KX07dnQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdnQuZXF1YWxzKHRoaXMsdCl9O3Z0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdnQuZXF1YWxzRXBzaWxvbih0aGlzLHQsZSxuKX07dnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMueH0sICR7dGhpcy55fSwgJHt0aGlzLnp9LCAke3RoaXMud30pYH07T209bmV3IEZsb2F0MzJBcnJheSgxKSxibz1uZXcgVWludDhBcnJheShPbS5idWZmZXIpLEVDPW5ldyBVaW50MzJBcnJheShbMjg3NDU0MDIwXSksUkM9bmV3IFVpbnQ4QXJyYXkoRUMuYnVmZmVyKSx5MT1SQ1swXT09PTY4O3Z0LnBhY2tGbG9hdD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoInZhbHVlIix0KSxoKGUpfHwoZT1uZXcgdnQpLE9tWzBdPXQseTE/KGUueD1ib1swXSxlLnk9Ym9bMV0sZS56PWJvWzJdLGUudz1ib1szXSk6KGUueD1ib1szXSxlLnk9Ym9bMl0sZS56PWJvWzFdLGUudz1ib1swXSksZX07dnQudW5wYWNrRmxvYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicGFja2VkRmxvYXQiLHQpLHkxPyhib1swXT10LngsYm9bMV09dC55LGJvWzJdPXQueixib1szXT10LncpOihib1swXT10LncsYm9bMV09dC56LGJvWzJdPXQueSxib1szXT10LngpLE9tWzBdfTtfZT12dH0pO2Z1bmN0aW9uIGNmKHQpe3RoaXMubmFtZT0iUnVudGltZUVycm9yIix0aGlzLm1lc3NhZ2U9dDtsZXQgZTt0cnl7dGhyb3cgbmV3IEVycm9yfWNhdGNoKG4pe2U9bi5zdGFja310aGlzLnN0YWNrPWV9dmFyIGdlLEpyPVooKCk9PnthdCgpO2goT2JqZWN0LmNyZWF0ZSkmJihjZi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGNmLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1jZik7Y2YucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7bGV0IHQ9YCR7dGhpcy5uYW1lfTogJHt0aGlzLm1lc3NhZ2V9YDtyZXR1cm4gaCh0aGlzLnN0YWNrKSYmKHQrPWAKJHt0aGlzLnN0YWNrLnRvU3RyaW5nKCl9YCksdH07Z2U9Y2Z9KTtmdW5jdGlvbiBBdCh0LGUsbixvLHIsaSxzLGYsdSxjLGwscCxkLG0sXyxnKXt0aGlzWzBdPXgodCwwKSx0aGlzWzFdPXgociwwKSx0aGlzWzJdPXgodSwwKSx0aGlzWzNdPXgoZCwwKSx0aGlzWzRdPXgoZSwwKSx0aGlzWzVdPXgoaSwwKSx0aGlzWzZdPXgoYywwKSx0aGlzWzddPXgobSwwKSx0aGlzWzhdPXgobiwwKSx0aGlzWzldPXgocywwKSx0aGlzWzEwXT14KGwsMCksdGhpc1sxMV09eChfLDApLHRoaXNbMTJdPXgobywwKSx0aGlzWzEzXT14KGYsMCksdGhpc1sxNF09eChwLDApLHRoaXNbMTVdPXgoZywwKX12YXIgcWMsS2MsYWYsU0MsQ0MsRW0sZzEseEMsUEMsTUMsTkMsSUMsdkMsREMsc3Qsa249WigoKT0+e1V0KCk7aHIoKTtZdCgpO0l0KCk7YXQoKTtIdCgpO1d0KCk7Rm4oKTtKcigpO0F0LnBhY2tlZExlbmd0aD0xNjtBdC5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXRbMF0sZVtuKytdPXRbMV0sZVtuKytdPXRbMl0sZVtuKytdPXRbM10sZVtuKytdPXRbNF0sZVtuKytdPXRbNV0sZVtuKytdPXRbNl0sZVtuKytdPXRbN10sZVtuKytdPXRbOF0sZVtuKytdPXRbOV0sZVtuKytdPXRbMTBdLGVbbisrXT10WzExXSxlW24rK109dFsxMl0sZVtuKytdPXRbMTNdLGVbbisrXT10WzE0XSxlW25dPXRbMTVdLGV9O0F0LnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyBBdCksblswXT10W2UrK10sblsxXT10W2UrK10sblsyXT10W2UrK10sblszXT10W2UrK10sbls0XT10W2UrK10sbls1XT10W2UrK10sbls2XT10W2UrK10sbls3XT10W2UrK10sbls4XT10W2UrK10sbls5XT10W2UrK10sblsxMF09dFtlKytdLG5bMTFdPXRbZSsrXSxuWzEyXT10W2UrK10sblsxM109dFtlKytdLG5bMTRdPXRbZSsrXSxuWzE1XT10W2VdLG59O0F0LnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiYXJyYXkiLHQpO2xldCBuPXQubGVuZ3RoLG89bioxNjtpZighaChlKSllPW5ldyBBcnJheShvKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aCE9PW8pdGhyb3cgbmV3IEIoIklmIHJlc3VsdCBpcyBhIHR5cGVkIGFycmF5LCBpdCBtdXN0IGhhdmUgZXhhY3RseSBhcnJheS5sZW5ndGggKiAxNiBlbGVtZW50cyIpO2UubGVuZ3RoIT09byYmKGUubGVuZ3RoPW8pfWZvcihsZXQgcj0wO3I8bjsrK3IpQXQucGFjayh0W3JdLGUscioxNik7cmV0dXJuIGV9O0F0LnVucGFja0FycmF5PWZ1bmN0aW9uKHQsZSl7aWYoeS5kZWZpbmVkKCJhcnJheSIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImFycmF5Lmxlbmd0aCIsdC5sZW5ndGgsMTYpLHQubGVuZ3RoJTE2IT09MCl0aHJvdyBuZXcgQigiYXJyYXkgbGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi4iKTtsZXQgbj10Lmxlbmd0aDtoKGUpP2UubGVuZ3RoPW4vMTY6ZT1uZXcgQXJyYXkobi8xNik7Zm9yKGxldCBvPTA7bzxuO28rPTE2KXtsZXQgcj1vLzE2O2Vbcl09QXQudW5wYWNrKHQsbyxlW3JdKX1yZXR1cm4gZX07QXQuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlWzldPXRbOV0sZVsxMF09dFsxMF0sZVsxMV09dFsxMV0sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZSk6bmV3IEF0KHRbMF0sdFs0XSx0WzhdLHRbMTJdLHRbMV0sdFs1XSx0WzldLHRbMTNdLHRbMl0sdFs2XSx0WzEwXSx0WzE0XSx0WzNdLHRbN10sdFsxMV0sdFsxNV0pfTtBdC5mcm9tQXJyYXk9QXQudW5wYWNrO0F0LmZyb21Db2x1bW5NYWpvckFycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgidmFsdWVzIix0KSxBdC5jbG9uZSh0LGUpfTtBdC5mcm9tUm93TWFqb3JBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoInZhbHVlcyIsdCksaChlKT8oZVswXT10WzBdLGVbMV09dFs0XSxlWzJdPXRbOF0sZVszXT10WzEyXSxlWzRdPXRbMV0sZVs1XT10WzVdLGVbNl09dFs5XSxlWzddPXRbMTNdLGVbOF09dFsyXSxlWzldPXRbNl0sZVsxMF09dFsxMF0sZVsxMV09dFsxNF0sZVsxMl09dFszXSxlWzEzXT10WzddLGVbMTRdPXRbMTFdLGVbMTVdPXRbMTVdLGUpOm5ldyBBdCh0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSx0WzZdLHRbN10sdFs4XSx0WzldLHRbMTBdLHRbMTFdLHRbMTJdLHRbMTNdLHRbMTRdLHRbMTVdKX07QXQuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInJvdGF0aW9uIix0KSxlPXgoZSxhLlpFUk8pLGgobik/KG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109MCxuWzRdPXRbM10sbls1XT10WzRdLG5bNl09dFs1XSxuWzddPTAsbls4XT10WzZdLG5bOV09dFs3XSxuWzEwXT10WzhdLG5bMTFdPTAsblsxMl09ZS54LG5bMTNdPWUueSxuWzE0XT1lLnosblsxNV09MSxuKTpuZXcgQXQodFswXSx0WzNdLHRbNl0sZS54LHRbMV0sdFs0XSx0WzddLGUueSx0WzJdLHRbNV0sdFs4XSxlLnosMCwwLDAsMSl9O0F0LmZyb21UcmFuc2xhdGlvblF1YXRlcm5pb25Sb3RhdGlvblNjYWxlPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgidHJhbnNsYXRpb24iLHQpLHkudHlwZU9mLm9iamVjdCgicm90YXRpb24iLGUpLHkudHlwZU9mLm9iamVjdCgic2NhbGUiLG4pLGgobyl8fChvPW5ldyBBdCk7bGV0IHI9bi54LGk9bi55LHM9bi56LGY9ZS54KmUueCx1PWUueCplLnksYz1lLngqZS56LGw9ZS54KmUudyxwPWUueSplLnksZD1lLnkqZS56LG09ZS55KmUudyxfPWUueiplLnosZz1lLnoqZS53LGI9ZS53KmUudyxPPWYtcC1fK2IsVD0yKih1LWcpLEU9MiooYyttKSx3PTIqKHUrZyksQz0tZitwLV8rYixOPTIqKGQtbCksST0yKihjLW0pLEw9MiooZCtsKSx2PS1mLXArXytiO3JldHVybiBvWzBdPU8qcixvWzFdPXcqcixvWzJdPUkqcixvWzNdPTAsb1s0XT1UKmksb1s1XT1DKmksb1s2XT1MKmksb1s3XT0wLG9bOF09RSpzLG9bOV09TipzLG9bMTBdPXYqcyxvWzExXT0wLG9bMTJdPXQueCxvWzEzXT10Lnksb1sxNF09dC56LG9bMTVdPTEsb307QXQuZnJvbVRyYW5zbGF0aW9uUm90YXRpb25TY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInRyYW5zbGF0aW9uUm90YXRpb25TY2FsZSIsdCksQXQuZnJvbVRyYW5zbGF0aW9uUXVhdGVybmlvblJvdGF0aW9uU2NhbGUodC50cmFuc2xhdGlvbix0LnJvdGF0aW9uLHQuc2NhbGUsZSl9O0F0LmZyb21UcmFuc2xhdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInRyYW5zbGF0aW9uIix0KSxBdC5mcm9tUm90YXRpb25UcmFuc2xhdGlvbih0dC5JREVOVElUWSx0LGUpfTtBdC5mcm9tU2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsdCksaChlKT8oZVswXT10LngsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0wLGVbNV09dC55LGVbNl09MCxlWzddPTAsZVs4XT0wLGVbOV09MCxlWzEwXT10LnosZVsxMV09MCxlWzEyXT0wLGVbMTNdPTAsZVsxNF09MCxlWzE1XT0xLGUpOm5ldyBBdCh0LngsMCwwLDAsMCx0LnksMCwwLDAsMCx0LnosMCwwLDAsMCwxKX07QXQuZnJvbVVuaWZvcm1TY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoInNjYWxlIix0KSxoKGUpPyhlWzBdPXQsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0wLGVbNV09dCxlWzZdPTAsZVs3XT0wLGVbOF09MCxlWzldPTAsZVsxMF09dCxlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsZSk6bmV3IEF0KHQsMCwwLDAsMCx0LDAsMCwwLDAsdCwwLDAsMCwwLDEpfTtBdC5mcm9tUm90YXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyb3RhdGlvbiIsdCksaChlKXx8KGU9bmV3IEF0KSxlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPTAsZVs0XT10WzNdLGVbNV09dFs0XSxlWzZdPXRbNV0sZVs3XT0wLGVbOF09dFs2XSxlWzldPXRbN10sZVsxMF09dFs4XSxlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsZX07cWM9bmV3IGEsS2M9bmV3IGEsYWY9bmV3IGE7QXQuZnJvbUNhbWVyYT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FtZXJhIix0KTtsZXQgbj10LnBvc2l0aW9uLG89dC5kaXJlY3Rpb24scj10LnVwO3kudHlwZU9mLm9iamVjdCgiY2FtZXJhLnBvc2l0aW9uIixuKSx5LnR5cGVPZi5vYmplY3QoImNhbWVyYS5kaXJlY3Rpb24iLG8pLHkudHlwZU9mLm9iamVjdCgiY2FtZXJhLnVwIixyKSxhLm5vcm1hbGl6ZShvLHFjKSxhLm5vcm1hbGl6ZShhLmNyb3NzKHFjLHIsS2MpLEtjKSxhLm5vcm1hbGl6ZShhLmNyb3NzKEtjLHFjLGFmKSxhZik7bGV0IGk9S2MueCxzPUtjLnksZj1LYy56LHU9cWMueCxjPXFjLnksbD1xYy56LHA9YWYueCxkPWFmLnksbT1hZi56LF89bi54LGc9bi55LGI9bi56LE89aSotXytzKi1nK2YqLWIsVD1wKi1fK2QqLWcrbSotYixFPXUqXytjKmcrbCpiO3JldHVybiBoKGUpPyhlWzBdPWksZVsxXT1wLGVbMl09LXUsZVszXT0wLGVbNF09cyxlWzVdPWQsZVs2XT0tYyxlWzddPTAsZVs4XT1mLGVbOV09bSxlWzEwXT0tbCxlWzExXT0wLGVbMTJdPU8sZVsxM109VCxlWzE0XT1FLGVbMTVdPTEsZSk6bmV3IEF0KGkscyxmLE8scCxkLG0sVCwtdSwtYywtbCxFLDAsMCwwLDEpfTtBdC5jb21wdXRlUGVyc3BlY3RpdmVGaWVsZE9mVmlldz1mdW5jdGlvbih0LGUsbixvLHIpe3kudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbigiZm92WSIsdCwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW4oImZvdlkiLHQsTWF0aC5QSSkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuKCJuZWFyIixuLDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbigiZmFyIixvLDApLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixyKTtsZXQgcz0xL01hdGgudGFuKHQqLjUpLGY9cy9lLHU9KG8rbikvKG4tbyksYz0yKm8qbi8obi1vKTtyZXR1cm4gclswXT1mLHJbMV09MCxyWzJdPTAsclszXT0wLHJbNF09MCxyWzVdPXMscls2XT0wLHJbN109MCxyWzhdPTAscls5XT0wLHJbMTBdPXUsclsxMV09LTEsclsxMl09MCxyWzEzXT0wLHJbMTRdPWMsclsxNV09MCxyfTtBdC5jb21wdXRlT3J0aG9ncmFwaGljT2ZmQ2VudGVyPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe3kudHlwZU9mLm51bWJlcigibGVmdCIsdCkseS50eXBlT2YubnVtYmVyKCJyaWdodCIsZSkseS50eXBlT2YubnVtYmVyKCJib3R0b20iLG4pLHkudHlwZU9mLm51bWJlcigidG9wIixvKSx5LnR5cGVPZi5udW1iZXIoIm5lYXIiLHIpLHkudHlwZU9mLm51bWJlcigiZmFyIixpKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIscyk7bGV0IGY9MS8oZS10KSx1PTEvKG8tbiksYz0xLyhpLXIpLGw9LShlK3QpKmYscD0tKG8rbikqdSxkPS0oaStyKSpjO3JldHVybiBmKj0yLHUqPTIsYyo9LTIsc1swXT1mLHNbMV09MCxzWzJdPTAsc1szXT0wLHNbNF09MCxzWzVdPXUsc1s2XT0wLHNbN109MCxzWzhdPTAsc1s5XT0wLHNbMTBdPWMsc1sxMV09MCxzWzEyXT1sLHNbMTNdPXAsc1sxNF09ZCxzWzE1XT0xLHN9O0F0LmNvbXB1dGVQZXJzcGVjdGl2ZU9mZkNlbnRlcj1mdW5jdGlvbih0LGUsbixvLHIsaSxzKXt5LnR5cGVPZi5udW1iZXIoImxlZnQiLHQpLHkudHlwZU9mLm51bWJlcigicmlnaHQiLGUpLHkudHlwZU9mLm51bWJlcigiYm90dG9tIixuKSx5LnR5cGVPZi5udW1iZXIoInRvcCIsbykseS50eXBlT2YubnVtYmVyKCJuZWFyIixyKSx5LnR5cGVPZi5udW1iZXIoImZhciIsaSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLHMpO2xldCBmPTIqci8oZS10KSx1PTIqci8oby1uKSxjPShlK3QpLyhlLXQpLGw9KG8rbikvKG8tbikscD0tKGkrcikvKGktciksZD0tMSxtPS0yKmkqci8oaS1yKTtyZXR1cm4gc1swXT1mLHNbMV09MCxzWzJdPTAsc1szXT0wLHNbNF09MCxzWzVdPXUsc1s2XT0wLHNbN109MCxzWzhdPWMsc1s5XT1sLHNbMTBdPXAsc1sxMV09ZCxzWzEyXT0wLHNbMTNdPTAsc1sxNF09bSxzWzE1XT0wLHN9O0F0LmNvbXB1dGVJbmZpbml0ZVBlcnNwZWN0aXZlT2ZmQ2VudGVyPWZ1bmN0aW9uKHQsZSxuLG8scixpKXt5LnR5cGVPZi5udW1iZXIoImxlZnQiLHQpLHkudHlwZU9mLm51bWJlcigicmlnaHQiLGUpLHkudHlwZU9mLm51bWJlcigiYm90dG9tIixuKSx5LnR5cGVPZi5udW1iZXIoInRvcCIsbykseS50eXBlT2YubnVtYmVyKCJuZWFyIixyKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsaSk7bGV0IHM9MipyLyhlLXQpLGY9MipyLyhvLW4pLHU9KGUrdCkvKGUtdCksYz0obytuKS8oby1uKSxsPS0xLHA9LTEsZD0tMipyO3JldHVybiBpWzBdPXMsaVsxXT0wLGlbMl09MCxpWzNdPTAsaVs0XT0wLGlbNV09ZixpWzZdPTAsaVs3XT0wLGlbOF09dSxpWzldPWMsaVsxMF09bCxpWzExXT1wLGlbMTJdPTAsaVsxM109MCxpWzE0XT1kLGlbMTVdPTAsaX07QXQuY29tcHV0ZVZpZXdwb3J0VHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCxlLG4sbyl7aChvKXx8KG89bmV3IEF0KSx0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IHI9eCh0LngsMCksaT14KHQueSwwKSxzPXgodC53aWR0aCwwKSxmPXgodC5oZWlnaHQsMCk7ZT14KGUsMCksbj14KG4sMSk7bGV0IHU9cyouNSxjPWYqLjUsbD0obi1lKSouNSxwPXUsZD1jLG09bCxfPXIrdSxnPWkrYyxiPWUrbCxPPTE7cmV0dXJuIG9bMF09cCxvWzFdPTAsb1syXT0wLG9bM109MCxvWzRdPTAsb1s1XT1kLG9bNl09MCxvWzddPTAsb1s4XT0wLG9bOV09MCxvWzEwXT1tLG9bMTFdPTAsb1sxMl09XyxvWzEzXT1nLG9bMTRdPWIsb1sxNV09TyxvfTtBdC5jb21wdXRlVmlldz1mdW5jdGlvbih0LGUsbixvLHIpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInBvc2l0aW9uIix0KSx5LnR5cGVPZi5vYmplY3QoImRpcmVjdGlvbiIsZSkseS50eXBlT2Yub2JqZWN0KCJ1cCIsbikseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsbykseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLHIpLHJbMF09by54LHJbMV09bi54LHJbMl09LWUueCxyWzNdPTAscls0XT1vLnkscls1XT1uLnkscls2XT0tZS55LHJbN109MCxyWzhdPW8ueixyWzldPW4ueixyWzEwXT0tZS56LHJbMTFdPTAsclsxMl09LWEuZG90KG8sdCksclsxM109LWEuZG90KG4sdCksclsxNF09YS5kb3QoZSx0KSxyWzE1XT0xLHJ9O0F0LnRvQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLGgoZSk/KGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGVbOV09dFs5XSxlWzEwXT10WzEwXSxlWzExXT10WzExXSxlWzEyXT10WzEyXSxlWzEzXT10WzEzXSxlWzE0XT10WzE0XSxlWzE1XT10WzE1XSxlKTpbdFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sdFs2XSx0WzddLHRbOF0sdFs5XSx0WzEwXSx0WzExXSx0WzEyXSx0WzEzXSx0WzE0XSx0WzE1XV19O0F0LmdldEVsZW1lbnRJbmRleD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygicm93IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJyb3ciLGUsMykseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImNvbHVtbiIsdCwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiY29sdW1uIix0LDMpLHQqNCtlfTtBdC5nZXRDb2x1bW49ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDMpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lKjQscj10W29dLGk9dFtvKzFdLHM9dFtvKzJdLGY9dFtvKzNdO3JldHVybiBuLng9cixuLnk9aSxuLno9cyxuLnc9ZixufTtBdC5zZXRDb2x1bW49ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiaW5kZXgiLGUsMykseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKSxvPUF0LmNsb25lKHQsbyk7bGV0IHI9ZSo0O3JldHVybiBvW3JdPW4ueCxvW3IrMV09bi55LG9bcisyXT1uLnosb1tyKzNdPW4udyxvfTtBdC5nZXRSb3c9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDMpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10W2VdLHI9dFtlKzRdLGk9dFtlKzhdLHM9dFtlKzEyXTtyZXR1cm4gbi54PW8sbi55PXIsbi56PWksbi53PXMsbn07QXQuc2V0Um93PWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwzKSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pLG89QXQuY2xvbmUodCxvKSxvW2VdPW4ueCxvW2UrNF09bi55LG9bZSs4XT1uLnosb1tlKzEyXT1uLncsb307QXQuc2V0VHJhbnNsYXRpb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJ0cmFuc2xhdGlvbiIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109dFszXSxuWzRdPXRbNF0sbls1XT10WzVdLG5bNl09dFs2XSxuWzddPXRbN10sbls4XT10WzhdLG5bOV09dFs5XSxuWzEwXT10WzEwXSxuWzExXT10WzExXSxuWzEyXT1lLngsblsxM109ZS55LG5bMTRdPWUueixuWzE1XT10WzE1XSxufTtTQz1uZXcgYTtBdC5zZXRTY2FsZT1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgic2NhbGUiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1BdC5nZXRTY2FsZSh0LFNDKSxyPWUueC9vLngsaT1lLnkvby55LHM9ZS56L28uejtyZXR1cm4gblswXT10WzBdKnIsblsxXT10WzFdKnIsblsyXT10WzJdKnIsblszXT10WzNdLG5bNF09dFs0XSppLG5bNV09dFs1XSppLG5bNl09dFs2XSppLG5bN109dFs3XSxuWzhdPXRbOF0qcyxuWzldPXRbOV0qcyxuWzEwXT10WzEwXSpzLG5bMTFdPXRbMTFdLG5bMTJdPXRbMTJdLG5bMTNdPXRbMTNdLG5bMTRdPXRbMTRdLG5bMTVdPXRbMTVdLG59O0NDPW5ldyBhO0F0LnNldFVuaWZvcm1TY2FsZT1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGUiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1BdC5nZXRTY2FsZSh0LENDKSxyPWUvby54LGk9ZS9vLnkscz1lL28uejtyZXR1cm4gblswXT10WzBdKnIsblsxXT10WzFdKnIsblsyXT10WzJdKnIsblszXT10WzNdLG5bNF09dFs0XSppLG5bNV09dFs1XSppLG5bNl09dFs2XSppLG5bN109dFs3XSxuWzhdPXRbOF0qcyxuWzldPXRbOV0qcyxuWzEwXT10WzEwXSpzLG5bMTFdPXRbMTFdLG5bMTJdPXRbMTJdLG5bMTNdPXRbMTNdLG5bMTRdPXRbMTRdLG5bMTVdPXRbMTVdLG59O0VtPW5ldyBhO0F0LmdldFNjYWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PWEubWFnbml0dWRlKGEuZnJvbUVsZW1lbnRzKHRbMF0sdFsxXSx0WzJdLEVtKSksZS55PWEubWFnbml0dWRlKGEuZnJvbUVsZW1lbnRzKHRbNF0sdFs1XSx0WzZdLEVtKSksZS56PWEubWFnbml0dWRlKGEuZnJvbUVsZW1lbnRzKHRbOF0sdFs5XSx0WzEwXSxFbSkpLGV9O2cxPW5ldyBhO0F0LmdldE1heGltdW1TY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gQXQuZ2V0U2NhbGUodCxnMSksYS5tYXhpbXVtQ29tcG9uZW50KGcxKX07eEM9bmV3IGE7QXQuc2V0Um90YXRpb249ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89QXQuZ2V0U2NhbGUodCx4Qyk7cmV0dXJuIG5bMF09ZVswXSpvLngsblsxXT1lWzFdKm8ueCxuWzJdPWVbMl0qby54LG5bM109dFszXSxuWzRdPWVbM10qby55LG5bNV09ZVs0XSpvLnksbls2XT1lWzVdKm8ueSxuWzddPXRbN10sbls4XT1lWzZdKm8ueixuWzldPWVbN10qby56LG5bMTBdPWVbOF0qby56LG5bMTFdPXRbMTFdLG5bMTJdPXRbMTJdLG5bMTNdPXRbMTNdLG5bMTRdPXRbMTRdLG5bMTVdPXRbMTVdLG59O1BDPW5ldyBhO0F0LmdldFJvdGF0aW9uPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1BdC5nZXRTY2FsZSh0LFBDKTtyZXR1cm4gZVswXT10WzBdL24ueCxlWzFdPXRbMV0vbi54LGVbMl09dFsyXS9uLngsZVszXT10WzRdL24ueSxlWzRdPXRbNV0vbi55LGVbNV09dFs2XS9uLnksZVs2XT10WzhdL24ueixlWzddPXRbOV0vbi56LGVbOF09dFsxMF0vbi56LGV9O0F0Lm11bHRpcGx5PWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10WzBdLHI9dFsxXSxpPXRbMl0scz10WzNdLGY9dFs0XSx1PXRbNV0sYz10WzZdLGw9dFs3XSxwPXRbOF0sZD10WzldLG09dFsxMF0sXz10WzExXSxnPXRbMTJdLGI9dFsxM10sTz10WzE0XSxUPXRbMTVdLEU9ZVswXSx3PWVbMV0sQz1lWzJdLE49ZVszXSxJPWVbNF0sTD1lWzVdLHY9ZVs2XSxEPWVbN10sVT1lWzhdLEE9ZVs5XSxTPWVbMTBdLFA9ZVsxMV0sRj1lWzEyXSxqPWVbMTNdLEg9ZVsxNF0saz1lWzE1XSxLPW8qRStmKncrcCpDK2cqTixYPXIqRSt1KncrZCpDK2IqTixSPWkqRStjKncrbSpDK08qTixRPXMqRStsKncrXypDK1QqTixmdD1vKkkrZipMK3AqditnKkQscHQ9cipJK3UqTCtkKnYrYipELGd0PWkqSStjKkwrbSp2K08qRCxpdD1zKkkrbCpMK18qditUKkQsTnQ9bypVK2YqQStwKlMrZypQLE90PXIqVSt1KkErZCpTK2IqUCx4dD1pKlUrYypBK20qUytPKlAsX3Q9cypVK2wqQStfKlMrVCpQLGR0PW8qRitmKmorcCpIK2cqayxWdD1yKkYrdSpqK2QqSCtiKmssenQ9aSpGK2MqaittKkgrTyprLGhlPXMqRitsKmorXypIK1QqaztyZXR1cm4gblswXT1LLG5bMV09WCxuWzJdPVIsblszXT1RLG5bNF09ZnQsbls1XT1wdCxuWzZdPWd0LG5bN109aXQsbls4XT1OdCxuWzldPU90LG5bMTBdPXh0LG5bMTFdPV90LG5bMTJdPWR0LG5bMTNdPVZ0LG5bMTRdPXp0LG5bMTVdPWhlLG59O0F0LmFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXStlWzBdLG5bMV09dFsxXStlWzFdLG5bMl09dFsyXStlWzJdLG5bM109dFszXStlWzNdLG5bNF09dFs0XStlWzRdLG5bNV09dFs1XStlWzVdLG5bNl09dFs2XStlWzZdLG5bN109dFs3XStlWzddLG5bOF09dFs4XStlWzhdLG5bOV09dFs5XStlWzldLG5bMTBdPXRbMTBdK2VbMTBdLG5bMTFdPXRbMTFdK2VbMTFdLG5bMTJdPXRbMTJdK2VbMTJdLG5bMTNdPXRbMTNdK2VbMTNdLG5bMTRdPXRbMTRdK2VbMTRdLG5bMTVdPXRbMTVdK2VbMTVdLG59O0F0LnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdLWVbMF0sblsxXT10WzFdLWVbMV0sblsyXT10WzJdLWVbMl0sblszXT10WzNdLWVbM10sbls0XT10WzRdLWVbNF0sbls1XT10WzVdLWVbNV0sbls2XT10WzZdLWVbNl0sbls3XT10WzddLWVbN10sbls4XT10WzhdLWVbOF0sbls5XT10WzldLWVbOV0sblsxMF09dFsxMF0tZVsxMF0sblsxMV09dFsxMV0tZVsxMV0sblsxMl09dFsxMl0tZVsxMl0sblsxM109dFsxM10tZVsxM10sblsxNF09dFsxNF0tZVsxNF0sblsxNV09dFsxNV0tZVsxNV0sbn07QXQubXVsdGlwbHlUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89dFswXSxyPXRbMV0saT10WzJdLHM9dFs0XSxmPXRbNV0sdT10WzZdLGM9dFs4XSxsPXRbOV0scD10WzEwXSxkPXRbMTJdLG09dFsxM10sXz10WzE0XSxnPWVbMF0sYj1lWzFdLE89ZVsyXSxUPWVbNF0sRT1lWzVdLHc9ZVs2XSxDPWVbOF0sTj1lWzldLEk9ZVsxMF0sTD1lWzEyXSx2PWVbMTNdLEQ9ZVsxNF0sVT1vKmcrcypiK2MqTyxBPXIqZytmKmIrbCpPLFM9aSpnK3UqYitwKk8sUD1vKlQrcypFK2MqdyxGPXIqVCtmKkUrbCp3LGo9aSpUK3UqRStwKncsSD1vKkMrcypOK2MqSSxrPXIqQytmKk4rbCpJLEs9aSpDK3UqTitwKkksWD1vKkwrcyp2K2MqRCtkLFI9cipMK2YqditsKkQrbSxRPWkqTCt1KnYrcCpEK187cmV0dXJuIG5bMF09VSxuWzFdPUEsblsyXT1TLG5bM109MCxuWzRdPVAsbls1XT1GLG5bNl09aixuWzddPTAsbls4XT1ILG5bOV09ayxuWzEwXT1LLG5bMTFdPTAsblsxMl09WCxuWzEzXT1SLG5bMTRdPVEsblsxNV09MSxufTtBdC5tdWx0aXBseUJ5TWF0cml4Mz1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicm90YXRpb24iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10WzBdLHI9dFsxXSxpPXRbMl0scz10WzRdLGY9dFs1XSx1PXRbNl0sYz10WzhdLGw9dFs5XSxwPXRbMTBdLGQ9ZVswXSxtPWVbMV0sXz1lWzJdLGc9ZVszXSxiPWVbNF0sTz1lWzVdLFQ9ZVs2XSxFPWVbN10sdz1lWzhdLEM9bypkK3MqbStjKl8sTj1yKmQrZiptK2wqXyxJPWkqZCt1Km0rcCpfLEw9bypnK3MqYitjKk8sdj1yKmcrZipiK2wqTyxEPWkqZyt1KmIrcCpPLFU9bypUK3MqRStjKncsQT1yKlQrZipFK2wqdyxTPWkqVCt1KkUrcCp3O3JldHVybiBuWzBdPUMsblsxXT1OLG5bMl09SSxuWzNdPTAsbls0XT1MLG5bNV09dixuWzZdPUQsbls3XT0wLG5bOF09VSxuWzldPUEsblsxMF09UyxuWzExXT0wLG5bMTJdPXRbMTJdLG5bMTNdPXRbMTNdLG5bMTRdPXRbMTRdLG5bMTVdPXRbMTVdLG59O0F0Lm11bHRpcGx5QnlUcmFuc2xhdGlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgidHJhbnNsYXRpb24iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lLngscj1lLnksaT1lLnoscz1vKnRbMF0rcip0WzRdK2kqdFs4XSt0WzEyXSxmPW8qdFsxXStyKnRbNV0raSp0WzldK3RbMTNdLHU9byp0WzJdK3IqdFs2XStpKnRbMTBdK3RbMTRdO3JldHVybiBuWzBdPXRbMF0sblsxXT10WzFdLG5bMl09dFsyXSxuWzNdPXRbM10sbls0XT10WzRdLG5bNV09dFs1XSxuWzZdPXRbNl0sbls3XT10WzddLG5bOF09dFs4XSxuWzldPXRbOV0sblsxMF09dFsxMF0sblsxMV09dFsxMV0sblsxMl09cyxuWzEzXT1mLG5bMTRdPXUsblsxNV09dFsxNV0sbn07QXQubXVsdGlwbHlCeVNjYWxlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPWUueCxyPWUueSxpPWUuejtyZXR1cm4gbz09PTEmJnI9PT0xJiZpPT09MT9BdC5jbG9uZSh0LG4pOihuWzBdPW8qdFswXSxuWzFdPW8qdFsxXSxuWzJdPW8qdFsyXSxuWzNdPXRbM10sbls0XT1yKnRbNF0sbls1XT1yKnRbNV0sbls2XT1yKnRbNl0sbls3XT10WzddLG5bOF09aSp0WzhdLG5bOV09aSp0WzldLG5bMTBdPWkqdFsxMF0sblsxMV09dFsxMV0sblsxMl09dFsxMl0sblsxM109dFsxM10sblsxNF09dFsxNF0sblsxNV09dFsxNV0sbil9O0F0Lm11bHRpcGx5QnlVbmlmb3JtU2NhbGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXSplLG5bMV09dFsxXSplLG5bMl09dFsyXSplLG5bM109dFszXSxuWzRdPXRbNF0qZSxuWzVdPXRbNV0qZSxuWzZdPXRbNl0qZSxuWzddPXRbN10sbls4XT10WzhdKmUsbls5XT10WzldKmUsblsxMF09dFsxMF0qZSxuWzExXT10WzExXSxuWzEyXT10WzEyXSxuWzEzXT10WzEzXSxuWzE0XT10WzE0XSxuWzE1XT10WzE1XSxufTtBdC5tdWx0aXBseUJ5VmVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lLngscj1lLnksaT1lLnoscz1lLncsZj10WzBdKm8rdFs0XSpyK3RbOF0qaSt0WzEyXSpzLHU9dFsxXSpvK3RbNV0qcit0WzldKmkrdFsxM10qcyxjPXRbMl0qbyt0WzZdKnIrdFsxMF0qaSt0WzE0XSpzLGw9dFszXSpvK3RbN10qcit0WzExXSppK3RbMTVdKnM7cmV0dXJuIG4ueD1mLG4ueT11LG4uej1jLG4udz1sLG59O0F0Lm11bHRpcGx5QnlQb2ludEFzVmVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lLngscj1lLnksaT1lLnoscz10WzBdKm8rdFs0XSpyK3RbOF0qaSxmPXRbMV0qbyt0WzVdKnIrdFs5XSppLHU9dFsyXSpvK3RbNl0qcit0WzEwXSppO3JldHVybiBuLng9cyxuLnk9ZixuLno9dSxufTtBdC5tdWx0aXBseUJ5UG9pbnQ9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPWUueCxyPWUueSxpPWUueixzPXRbMF0qbyt0WzRdKnIrdFs4XSppK3RbMTJdLGY9dFsxXSpvK3RbNV0qcit0WzldKmkrdFsxM10sdT10WzJdKm8rdFs2XSpyK3RbMTBdKmkrdFsxNF07cmV0dXJuIG4ueD1zLG4ueT1mLG4uej11LG59O0F0Lm11bHRpcGx5QnlTY2FsYXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0qZSxuWzFdPXRbMV0qZSxuWzJdPXRbMl0qZSxuWzNdPXRbM10qZSxuWzRdPXRbNF0qZSxuWzVdPXRbNV0qZSxuWzZdPXRbNl0qZSxuWzddPXRbN10qZSxuWzhdPXRbOF0qZSxuWzldPXRbOV0qZSxuWzEwXT10WzEwXSplLG5bMTFdPXRbMTFdKmUsblsxMl09dFsxMl0qZSxuWzEzXT10WzEzXSplLG5bMTRdPXRbMTRdKmUsblsxNV09dFsxNV0qZSxufTtBdC5uZWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlWzBdPS10WzBdLGVbMV09LXRbMV0sZVsyXT0tdFsyXSxlWzNdPS10WzNdLGVbNF09LXRbNF0sZVs1XT0tdFs1XSxlWzZdPS10WzZdLGVbN109LXRbN10sZVs4XT0tdFs4XSxlWzldPS10WzldLGVbMTBdPS10WzEwXSxlWzExXT0tdFsxMV0sZVsxMl09LXRbMTJdLGVbMTNdPS10WzEzXSxlWzE0XT0tdFsxNF0sZVsxNV09LXRbMTVdLGV9O0F0LnRyYW5zcG9zZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49dFsxXSxvPXRbMl0scj10WzNdLGk9dFs2XSxzPXRbN10sZj10WzExXTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFs0XSxlWzJdPXRbOF0sZVszXT10WzEyXSxlWzRdPW4sZVs1XT10WzVdLGVbNl09dFs5XSxlWzddPXRbMTNdLGVbOF09byxlWzldPWksZVsxMF09dFsxMF0sZVsxMV09dFsxNF0sZVsxMl09cixlWzEzXT1zLGVbMTRdPWYsZVsxNV09dFsxNV0sZX07QXQuYWJzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZVswXT1NYXRoLmFicyh0WzBdKSxlWzFdPU1hdGguYWJzKHRbMV0pLGVbMl09TWF0aC5hYnModFsyXSksZVszXT1NYXRoLmFicyh0WzNdKSxlWzRdPU1hdGguYWJzKHRbNF0pLGVbNV09TWF0aC5hYnModFs1XSksZVs2XT1NYXRoLmFicyh0WzZdKSxlWzddPU1hdGguYWJzKHRbN10pLGVbOF09TWF0aC5hYnModFs4XSksZVs5XT1NYXRoLmFicyh0WzldKSxlWzEwXT1NYXRoLmFicyh0WzEwXSksZVsxMV09TWF0aC5hYnModFsxMV0pLGVbMTJdPU1hdGguYWJzKHRbMTJdKSxlWzEzXT1NYXRoLmFicyh0WzEzXSksZVsxNF09TWF0aC5hYnModFsxNF0pLGVbMTVdPU1hdGguYWJzKHRbMTVdKSxlfTtBdC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnRbMTJdPT09ZVsxMl0mJnRbMTNdPT09ZVsxM10mJnRbMTRdPT09ZVsxNF0mJnRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl0mJnRbNF09PT1lWzRdJiZ0WzVdPT09ZVs1XSYmdFs2XT09PWVbNl0mJnRbOF09PT1lWzhdJiZ0WzldPT09ZVs5XSYmdFsxMF09PT1lWzEwXSYmdFszXT09PWVbM10mJnRbN109PT1lWzddJiZ0WzExXT09PWVbMTFdJiZ0WzE1XT09PWVbMTVdfTtBdC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj14KG4sMCksdD09PWV8fGgodCkmJmgoZSkmJk1hdGguYWJzKHRbMF0tZVswXSk8PW4mJk1hdGguYWJzKHRbMV0tZVsxXSk8PW4mJk1hdGguYWJzKHRbMl0tZVsyXSk8PW4mJk1hdGguYWJzKHRbM10tZVszXSk8PW4mJk1hdGguYWJzKHRbNF0tZVs0XSk8PW4mJk1hdGguYWJzKHRbNV0tZVs1XSk8PW4mJk1hdGguYWJzKHRbNl0tZVs2XSk8PW4mJk1hdGguYWJzKHRbN10tZVs3XSk8PW4mJk1hdGguYWJzKHRbOF0tZVs4XSk8PW4mJk1hdGguYWJzKHRbOV0tZVs5XSk8PW4mJk1hdGguYWJzKHRbMTBdLWVbMTBdKTw9biYmTWF0aC5hYnModFsxMV0tZVsxMV0pPD1uJiZNYXRoLmFicyh0WzEyXS1lWzEyXSk8PW4mJk1hdGguYWJzKHRbMTNdLWVbMTNdKTw9biYmTWF0aC5hYnModFsxNF0tZVsxNF0pPD1uJiZNYXRoLmFicyh0WzE1XS1lWzE1XSk8PW59O0F0LmdldFRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PXRbMTJdLGUueT10WzEzXSxlLno9dFsxNF0sZX07QXQuZ2V0TWF0cml4Mz1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFs0XSxlWzRdPXRbNV0sZVs1XT10WzZdLGVbNl09dFs4XSxlWzddPXRbOV0sZVs4XT10WzEwXSxlfTtNQz1uZXcgdHQsTkM9bmV3IHR0LElDPW5ldyBfZSx2Qz1uZXcgX2UoMCwwLDAsMSk7QXQuaW52ZXJzZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49dFswXSxvPXRbNF0scj10WzhdLGk9dFsxMl0scz10WzFdLGY9dFs1XSx1PXRbOV0sYz10WzEzXSxsPXRbMl0scD10WzZdLGQ9dFsxMF0sbT10WzE0XSxfPXRbM10sZz10WzddLGI9dFsxMV0sTz10WzE1XSxUPWQqTyxFPW0qYix3PXAqTyxDPW0qZyxOPXAqYixJPWQqZyxMPWwqTyx2PW0qXyxEPWwqYixVPWQqXyxBPWwqZyxTPXAqXyxQPVQqZitDKnUrTipjLShFKmYrdyp1K0kqYyksRj1FKnMrTCp1K1UqYy0oVCpzK3YqdStEKmMpLGo9dypzK3YqZitBKmMtKEMqcytMKmYrUypjKSxIPUkqcytEKmYrUyp1LShOKnMrVSpmK0EqdSksaz1FKm8rdypyK0kqaS0oVCpvK0MqcitOKmkpLEs9VCpuK3YqcitEKmktKEUqbitMKnIrVSppKSxYPUMqbitMKm8rUyppLSh3Km4rdipvK0EqaSksUj1OKm4rVSpvK0Eqci0oSSpuK0QqbytTKnIpO1Q9cipjLEU9aSp1LHc9bypjLEM9aSpmLE49byp1LEk9cipmLEw9bipjLHY9aSpzLEQ9bip1LFU9cipzLEE9bipmLFM9bypzO2xldCBRPVQqZytDKmIrTipPLShFKmcrdypiK0kqTyksZnQ9RSpfK0wqYitVKk8tKFQqXyt2KmIrRCpPKSxwdD13Kl8rdipnK0EqTy0oQypfK0wqZytTKk8pLGd0PUkqXytEKmcrUypiLShOKl8rVSpnK0EqYiksaXQ9dypkK0kqbStFKnAtKE4qbStUKnArQypkKSxOdD1EKm0rVCpsK3YqZC0oTCpkK1UqbStFKmwpLE90PUwqcCtTKm0rQypsLShBKm0rdypsK3YqcCkseHQ9QSpkK04qbCtVKnAtKEQqcCtTKmQrSSpsKSxfdD1uKlArbypGK3IqaitpKkg7aWYoTWF0aC5hYnMoX3QpPE0uRVBTSUxPTjIxKXtpZih0dC5lcXVhbHNFcHNpbG9uKEF0LmdldE1hdHJpeDModCxNQyksTkMsTS5FUFNJTE9ONykmJl9lLmVxdWFscyhBdC5nZXRSb3codCwzLElDKSx2QykpcmV0dXJuIGVbMF09MCxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPTAsZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT0wLGVbOV09MCxlWzEwXT0wLGVbMTFdPTAsZVsxMl09LXRbMTJdLGVbMTNdPS10WzEzXSxlWzE0XT0tdFsxNF0sZVsxNV09MSxlO3Rocm93IG5ldyBnZSgibWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlIGJlY2F1c2UgaXRzIGRldGVybWluYXRlIGlzIHplcm8uIil9cmV0dXJuIF90PTEvX3QsZVswXT1QKl90LGVbMV09RipfdCxlWzJdPWoqX3QsZVszXT1IKl90LGVbNF09aypfdCxlWzVdPUsqX3QsZVs2XT1YKl90LGVbN109UipfdCxlWzhdPVEqX3QsZVs5XT1mdCpfdCxlWzEwXT1wdCpfdCxlWzExXT1ndCpfdCxlWzEyXT1pdCpfdCxlWzEzXT1OdCpfdCxlWzE0XT1PdCpfdCxlWzE1XT14dCpfdCxlfTtBdC5pbnZlcnNlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXRbMF0sbz10WzFdLHI9dFsyXSxpPXRbNF0scz10WzVdLGY9dFs2XSx1PXRbOF0sYz10WzldLGw9dFsxMF0scD10WzEyXSxkPXRbMTNdLG09dFsxNF0sXz0tbipwLW8qZC1yKm0sZz0taSpwLXMqZC1mKm0sYj0tdSpwLWMqZC1sKm07cmV0dXJuIGVbMF09bixlWzFdPWksZVsyXT11LGVbM109MCxlWzRdPW8sZVs1XT1zLGVbNl09YyxlWzddPTAsZVs4XT1yLGVbOV09ZixlWzEwXT1sLGVbMTFdPTAsZVsxMl09XyxlWzEzXT1nLGVbMTRdPWIsZVsxNV09MSxlfTtEQz1uZXcgQXQ7QXQuaW52ZXJzZVRyYW5zcG9zZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLEF0LmludmVyc2UoQXQudHJhbnNwb3NlKHQsREMpLGUpfTtBdC5JREVOVElUWT1PYmplY3QuZnJlZXplKG5ldyBBdCgxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxKSk7QXQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyBBdCgwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwKSk7QXQuQ09MVU1OMFJPVzA9MDtBdC5DT0xVTU4wUk9XMT0xO0F0LkNPTFVNTjBST1cyPTI7QXQuQ09MVU1OMFJPVzM9MztBdC5DT0xVTU4xUk9XMD00O0F0LkNPTFVNTjFST1cxPTU7QXQuQ09MVU1OMVJPVzI9NjtBdC5DT0xVTU4xUk9XMz03O0F0LkNPTFVNTjJST1cwPTg7QXQuQ09MVU1OMlJPVzE9OTtBdC5DT0xVTU4yUk9XMj0xMDtBdC5DT0xVTU4yUk9XMz0xMTtBdC5DT0xVTU4zUk9XMD0xMjtBdC5DT0xVTU4zUk9XMT0xMztBdC5DT0xVTU4zUk9XMj0xNDtBdC5DT0xVTU4zUk9XMz0xNTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBdC5wcm90b3R5cGUse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEF0LnBhY2tlZExlbmd0aH19fSk7QXQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBBdC5jbG9uZSh0aGlzLHQpfTtBdC5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBBdC5lcXVhbHModGhpcyx0KX07QXQuZXF1YWxzQXJyYXk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0WzBdPT09ZVtuXSYmdFsxXT09PWVbbisxXSYmdFsyXT09PWVbbisyXSYmdFszXT09PWVbbiszXSYmdFs0XT09PWVbbis0XSYmdFs1XT09PWVbbis1XSYmdFs2XT09PWVbbis2XSYmdFs3XT09PWVbbis3XSYmdFs4XT09PWVbbis4XSYmdFs5XT09PWVbbis5XSYmdFsxMF09PT1lW24rMTBdJiZ0WzExXT09PWVbbisxMV0mJnRbMTJdPT09ZVtuKzEyXSYmdFsxM109PT1lW24rMTNdJiZ0WzE0XT09PWVbbisxNF0mJnRbMTVdPT09ZVtuKzE1XX07QXQucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXQuZXF1YWxzRXBzaWxvbih0aGlzLHQsZSl9O0F0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybmAoJHt0aGlzWzBdfSwgJHt0aGlzWzRdfSwgJHt0aGlzWzhdfSwgJHt0aGlzWzEyXX0pCigke3RoaXNbMV19LCAke3RoaXNbNV19LCAke3RoaXNbOV19LCAke3RoaXNbMTNdfSkKKCR7dGhpc1syXX0sICR7dGhpc1s2XX0sICR7dGhpc1sxMF19LCAke3RoaXNbMTRdfSkKKCR7dGhpc1szXX0sICR7dGhpc1s3XX0sICR7dGhpc1sxMV19LCAke3RoaXNbMTVdfSlgfTtzdD1BdH0pO2Z1bmN0aW9uIGRlKHQsZSxuLG8pe3RoaXMud2VzdD14KHQsMCksdGhpcy5zb3V0aD14KGUsMCksdGhpcy5lYXN0PXgobiwwKSx0aGlzLm5vcnRoPXgobywwKX12YXIgTEMsUHQsQW49WigoKT0+e3ZlKCk7WXQoKTtJdCgpO2F0KCk7WnQoKTtXdCgpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGRlLnByb3RvdHlwZSx7d2lkdGg6e2dldDpmdW5jdGlvbigpe3JldHVybiBkZS5jb21wdXRlV2lkdGgodGhpcyl9fSxoZWlnaHQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBkZS5jb21wdXRlSGVpZ2h0KHRoaXMpfX19KTtkZS5wYWNrZWRMZW5ndGg9NDtkZS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQud2VzdCxlW24rK109dC5zb3V0aCxlW24rK109dC5lYXN0LGVbbl09dC5ub3J0aCxlfTtkZS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgZGUpLG4ud2VzdD10W2UrK10sbi5zb3V0aD10W2UrK10sbi5lYXN0PXRbZSsrXSxuLm5vcnRoPXRbZV0sbn07ZGUuY29tcHV0ZVdpZHRoPWZ1bmN0aW9uKHQpe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KTtsZXQgZT10LmVhc3Qsbj10Lndlc3Q7cmV0dXJuIGU8biYmKGUrPU0uVFdPX1BJKSxlLW59O2RlLmNvbXB1dGVIZWlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KSx0Lm5vcnRoLXQuc291dGh9O2RlLmZyb21EZWdyZWVzPWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIHQ9TS50b1JhZGlhbnMoeCh0LDApKSxlPU0udG9SYWRpYW5zKHgoZSwwKSksbj1NLnRvUmFkaWFucyh4KG4sMCkpLG89TS50b1JhZGlhbnMoeChvLDApKSxoKHIpPyhyLndlc3Q9dCxyLnNvdXRoPWUsci5lYXN0PW4sci5ub3J0aD1vLHIpOm5ldyBkZSh0LGUsbixvKX07ZGUuZnJvbVJhZGlhbnM9ZnVuY3Rpb24odCxlLG4sbyxyKXtyZXR1cm4gaChyKT8oci53ZXN0PXgodCwwKSxyLnNvdXRoPXgoZSwwKSxyLmVhc3Q9eChuLDApLHIubm9ydGg9eChvLDApLHIpOm5ldyBkZSh0LGUsbixvKX07ZGUuZnJvbUNhcnRvZ3JhcGhpY0FycmF5PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJjYXJ0b2dyYXBoaWNzIix0KTtsZXQgbj1OdW1iZXIuTUFYX1ZBTFVFLG89LU51bWJlci5NQVhfVkFMVUUscj1OdW1iZXIuTUFYX1ZBTFVFLGk9LU51bWJlci5NQVhfVkFMVUUscz1OdW1iZXIuTUFYX1ZBTFVFLGY9LU51bWJlci5NQVhfVkFMVUU7Zm9yKGxldCB1PTAsYz10Lmxlbmd0aDt1PGM7dSsrKXtsZXQgbD10W3VdO249TWF0aC5taW4obixsLmxvbmdpdHVkZSksbz1NYXRoLm1heChvLGwubG9uZ2l0dWRlKSxzPU1hdGgubWluKHMsbC5sYXRpdHVkZSksZj1NYXRoLm1heChmLGwubGF0aXR1ZGUpO2xldCBwPWwubG9uZ2l0dWRlPj0wP2wubG9uZ2l0dWRlOmwubG9uZ2l0dWRlK00uVFdPX1BJO3I9TWF0aC5taW4ocixwKSxpPU1hdGgubWF4KGkscCl9cmV0dXJuIG8tbj5pLXImJihuPXIsbz1pLG8+TS5QSSYmKG89by1NLlRXT19QSSksbj5NLlBJJiYobj1uLU0uVFdPX1BJKSksaChlKT8oZS53ZXN0PW4sZS5zb3V0aD1zLGUuZWFzdD1vLGUubm9ydGg9ZixlKTpuZXcgZGUobixzLG8sZil9O2RlLmZyb21DYXJ0ZXNpYW5BcnJheT1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJjYXJ0ZXNpYW5zIix0KSxlPXgoZSwkLldHUzg0KTtsZXQgbz1OdW1iZXIuTUFYX1ZBTFVFLHI9LU51bWJlci5NQVhfVkFMVUUsaT1OdW1iZXIuTUFYX1ZBTFVFLHM9LU51bWJlci5NQVhfVkFMVUUsZj1OdW1iZXIuTUFYX1ZBTFVFLHU9LU51bWJlci5NQVhfVkFMVUU7Zm9yKGxldCBjPTAsbD10Lmxlbmd0aDtjPGw7YysrKXtsZXQgcD1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHRbY10pO289TWF0aC5taW4obyxwLmxvbmdpdHVkZSkscj1NYXRoLm1heChyLHAubG9uZ2l0dWRlKSxmPU1hdGgubWluKGYscC5sYXRpdHVkZSksdT1NYXRoLm1heCh1LHAubGF0aXR1ZGUpO2xldCBkPXAubG9uZ2l0dWRlPj0wP3AubG9uZ2l0dWRlOnAubG9uZ2l0dWRlK00uVFdPX1BJO2k9TWF0aC5taW4oaSxkKSxzPU1hdGgubWF4KHMsZCl9cmV0dXJuIHItbz5zLWkmJihvPWkscj1zLHI+TS5QSSYmKHI9ci1NLlRXT19QSSksbz5NLlBJJiYobz1vLU0uVFdPX1BJKSksaChuKT8obi53ZXN0PW8sbi5zb3V0aD1mLG4uZWFzdD1yLG4ubm9ydGg9dSxuKTpuZXcgZGUobyxmLHIsdSl9O2RlLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS53ZXN0PXQud2VzdCxlLnNvdXRoPXQuc291dGgsZS5lYXN0PXQuZWFzdCxlLm5vcnRoPXQubm9ydGgsZSk6bmV3IGRlKHQud2VzdCx0LnNvdXRoLHQuZWFzdCx0Lm5vcnRoKX07ZGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG49eChuLDApLHQ9PT1lfHxoKHQpJiZoKGUpJiZNYXRoLmFicyh0Lndlc3QtZS53ZXN0KTw9biYmTWF0aC5hYnModC5zb3V0aC1lLnNvdXRoKTw9biYmTWF0aC5hYnModC5lYXN0LWUuZWFzdCk8PW4mJk1hdGguYWJzKHQubm9ydGgtZS5ub3J0aCk8PW59O2RlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gZGUuY2xvbmUodGhpcyx0KX07ZGUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gZGUuZXF1YWxzKHRoaXMsdCl9O2RlLmVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmdC53ZXN0PT09ZS53ZXN0JiZ0LnNvdXRoPT09ZS5zb3V0aCYmdC5lYXN0PT09ZS5lYXN0JiZ0Lm5vcnRoPT09ZS5ub3J0aH07ZGUucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gZGUuZXF1YWxzRXBzaWxvbih0aGlzLHQsZSl9O2RlLnZhbGlkYXRlPWZ1bmN0aW9uKHQpe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KTtsZXQgZT10Lm5vcnRoO3kudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJub3J0aCIsZSwtTS5QSV9PVkVSX1RXTykseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIm5vcnRoIixlLE0uUElfT1ZFUl9UV08pO2xldCBuPXQuc291dGg7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoInNvdXRoIixuLC1NLlBJX09WRVJfVFdPKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygic291dGgiLG4sTS5QSV9PVkVSX1RXTyk7bGV0IG89dC53ZXN0O3kudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ3ZXN0IixvLC1NYXRoLlBJKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygid2VzdCIsbyxNYXRoLlBJKTtsZXQgcj10LmVhc3Q7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImVhc3QiLHIsLU1hdGguUEkpLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJlYXN0IixyLE1hdGguUEkpfTtkZS5zb3V0aHdlc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQud2VzdCxlLmxhdGl0dWRlPXQuc291dGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC53ZXN0LHQuc291dGgpfTtkZS5ub3J0aHdlc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQud2VzdCxlLmxhdGl0dWRlPXQubm9ydGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC53ZXN0LHQubm9ydGgpfTtkZS5ub3J0aGVhc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQuZWFzdCxlLmxhdGl0dWRlPXQubm9ydGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC5lYXN0LHQubm9ydGgpfTtkZS5zb3V0aGVhc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQuZWFzdCxlLmxhdGl0dWRlPXQuc291dGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC5lYXN0LHQuc291dGgpfTtkZS5jZW50ZXI9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCk7bGV0IG49dC5lYXN0LG89dC53ZXN0O248byYmKG4rPU0uVFdPX1BJKTtsZXQgcj1NLm5lZ2F0aXZlUGlUb1BpKChvK24pKi41KSxpPSh0LnNvdXRoK3Qubm9ydGgpKi41O3JldHVybiBoKGUpPyhlLmxvbmdpdHVkZT1yLGUubGF0aXR1ZGU9aSxlLmhlaWdodD0wLGUpOm5ldyBjdChyLGkpfTtkZS5pbnRlcnNlY3Rpb249ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KSx5LnR5cGVPZi5vYmplY3QoIm90aGVyUmVjdGFuZ2xlIixlKTtsZXQgbz10LmVhc3Qscj10Lndlc3QsaT1lLmVhc3Qscz1lLndlc3Q7bzxyJiZpPjA/bys9TS5UV09fUEk6aTxzJiZvPjAmJihpKz1NLlRXT19QSSksbzxyJiZzPDA/cys9TS5UV09fUEk6aTxzJiZyPDAmJihyKz1NLlRXT19QSSk7bGV0IGY9TS5uZWdhdGl2ZVBpVG9QaShNYXRoLm1heChyLHMpKSx1PU0ubmVnYXRpdmVQaVRvUGkoTWF0aC5taW4obyxpKSk7aWYoKHQud2VzdDx0LmVhc3R8fGUud2VzdDxlLmVhc3QpJiZ1PD1mKXJldHVybjtsZXQgYz1NYXRoLm1heCh0LnNvdXRoLGUuc291dGgpLGw9TWF0aC5taW4odC5ub3J0aCxlLm5vcnRoKTtpZighKGM+PWwpKXJldHVybiBoKG4pPyhuLndlc3Q9ZixuLnNvdXRoPWMsbi5lYXN0PXUsbi5ub3J0aD1sLG4pOm5ldyBkZShmLGMsdSxsKX07ZGUuc2ltcGxlSW50ZXJzZWN0aW9uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCkseS50eXBlT2Yub2JqZWN0KCJvdGhlclJlY3RhbmdsZSIsZSk7bGV0IG89TWF0aC5tYXgodC53ZXN0LGUud2VzdCkscj1NYXRoLm1heCh0LnNvdXRoLGUuc291dGgpLGk9TWF0aC5taW4odC5lYXN0LGUuZWFzdCkscz1NYXRoLm1pbih0Lm5vcnRoLGUubm9ydGgpO2lmKCEocj49c3x8bz49aSkpcmV0dXJuIGgobik/KG4ud2VzdD1vLG4uc291dGg9cixuLmVhc3Q9aSxuLm5vcnRoPXMsbik6bmV3IGRlKG8scixpLHMpfTtkZS51bmlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLHkudHlwZU9mLm9iamVjdCgib3RoZXJSZWN0YW5nbGUiLGUpLGgobil8fChuPW5ldyBkZSk7bGV0IG89dC5lYXN0LHI9dC53ZXN0LGk9ZS5lYXN0LHM9ZS53ZXN0O288ciYmaT4wP28rPU0uVFdPX1BJOmk8cyYmbz4wJiYoaSs9TS5UV09fUEkpLG88ciYmczwwP3MrPU0uVFdPX1BJOmk8cyYmcjwwJiYocis9TS5UV09fUEkpO2xldCBmPU0ubmVnYXRpdmVQaVRvUGkoTWF0aC5taW4ocixzKSksdT1NLm5lZ2F0aXZlUGlUb1BpKE1hdGgubWF4KG8saSkpO3JldHVybiBuLndlc3Q9ZixuLnNvdXRoPU1hdGgubWluKHQuc291dGgsZS5zb3V0aCksbi5lYXN0PXUsbi5ub3J0aD1NYXRoLm1heCh0Lm5vcnRoLGUubm9ydGgpLG59O2RlLmV4cGFuZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KSx5LnR5cGVPZi5vYmplY3QoImNhcnRvZ3JhcGhpYyIsZSksaChuKXx8KG49bmV3IGRlKSxuLndlc3Q9TWF0aC5taW4odC53ZXN0LGUubG9uZ2l0dWRlKSxuLnNvdXRoPU1hdGgubWluKHQuc291dGgsZS5sYXRpdHVkZSksbi5lYXN0PU1hdGgubWF4KHQuZWFzdCxlLmxvbmdpdHVkZSksbi5ub3J0aD1NYXRoLm1heCh0Lm5vcnRoLGUubGF0aXR1ZGUpLG59O2RlLmNvbnRhaW5zPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLHkudHlwZU9mLm9iamVjdCgiY2FydG9ncmFwaGljIixlKTtsZXQgbj1lLmxvbmdpdHVkZSxvPWUubGF0aXR1ZGUscj10Lndlc3QsaT10LmVhc3Q7cmV0dXJuIGk8ciYmKGkrPU0uVFdPX1BJLG48MCYmKG4rPU0uVFdPX1BJKSksKG4+cnx8TS5lcXVhbHNFcHNpbG9uKG4scixNLkVQU0lMT04xNCkpJiYobjxpfHxNLmVxdWFsc0Vwc2lsb24obixpLE0uRVBTSUxPTjE0KSkmJm8+PXQuc291dGgmJm88PXQubm9ydGh9O0xDPW5ldyBjdDtkZS5zdWJzYW1wbGU9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGU9eChlLCQuV0dTODQpLG49eChuLDApLGgobyl8fChvPVtdKTtsZXQgcj0wLGk9dC5ub3J0aCxzPXQuc291dGgsZj10LmVhc3QsdT10Lndlc3QsYz1MQztjLmhlaWdodD1uLGMubG9uZ2l0dWRlPXUsYy5sYXRpdHVkZT1pLG9bcl09ZS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihjLG9bcl0pLHIrKyxjLmxvbmdpdHVkZT1mLG9bcl09ZS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihjLG9bcl0pLHIrKyxjLmxhdGl0dWRlPXMsb1tyXT1lLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGMsb1tyXSkscisrLGMubG9uZ2l0dWRlPXUsb1tyXT1lLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGMsb1tyXSkscisrLGk8MD9jLmxhdGl0dWRlPWk6cz4wP2MubGF0aXR1ZGU9czpjLmxhdGl0dWRlPTA7Zm9yKGxldCBsPTE7bDw4OysrbCljLmxvbmdpdHVkZT0tTWF0aC5QSStsKk0uUElfT1ZFUl9UV08sZGUuY29udGFpbnModCxjKSYmKG9bcl09ZS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihjLG9bcl0pLHIrKyk7cmV0dXJuIGMubGF0aXR1ZGU9PT0wJiYoYy5sb25naXR1ZGU9dSxvW3JdPWUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oYyxvW3JdKSxyKyssYy5sb25naXR1ZGU9ZixvW3JdPWUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oYyxvW3JdKSxyKyspLG8ubGVuZ3RoPXIsb307ZGUuc3Vic2VjdGlvbj1mdW5jdGlvbih0LGUsbixvLHIsaSl7aWYoeS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ3ZXN0TGVycCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygid2VzdExlcnAiLGUsMSkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoInNvdXRoTGVycCIsbiwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygic291dGhMZXJwIixuLDEpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJlYXN0TGVycCIsbywwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiZWFzdExlcnAiLG8sMSkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIm5vcnRoTGVycCIsciwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygibm9ydGhMZXJwIixyLDEpLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJ3ZXN0TGVycCIsZSxvKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygic291dGhMZXJwIixuLHIpLGgoaSl8fChpPW5ldyBkZSksdC53ZXN0PD10LmVhc3Qpe2xldCBmPXQuZWFzdC10Lndlc3Q7aS53ZXN0PXQud2VzdCtlKmYsaS5lYXN0PXQud2VzdCtvKmZ9ZWxzZXtsZXQgZj1NLlRXT19QSSt0LmVhc3QtdC53ZXN0O2kud2VzdD1NLm5lZ2F0aXZlUGlUb1BpKHQud2VzdCtlKmYpLGkuZWFzdD1NLm5lZ2F0aXZlUGlUb1BpKHQud2VzdCtvKmYpfWxldCBzPXQubm9ydGgtdC5zb3V0aDtyZXR1cm4gaS5zb3V0aD10LnNvdXRoK24qcyxpLm5vcnRoPXQuc291dGgrcipzLGU9PT0xJiYoaS53ZXN0PXQuZWFzdCksbz09PTEmJihpLmVhc3Q9dC5lYXN0KSxuPT09MSYmKGkuc291dGg9dC5ub3J0aCkscj09PTEmJihpLm5vcnRoPXQubm9ydGgpLGl9O2RlLk1BWF9WQUxVRT1PYmplY3QuZnJlZXplKG5ldyBkZSgtTWF0aC5QSSwtTS5QSV9PVkVSX1RXTyxNYXRoLlBJLE0uUElfT1ZFUl9UV08pKTtQdD1kZX0pO2Z1bmN0aW9uIGVlKHQsZSl7dGhpcy5jZW50ZXI9YS5jbG9uZSh4KHQsYS5aRVJPKSksdGhpcy5yYWRpdXM9eChlLDApfXZhciBDbSx4bSxQbSxNbSxObSxJbSx2bSxybyxEbSxMbSxGbSxCbSxGQyxCQyxVQyxWQyxSbSxTbSxrQyxHQyx6QyxqQyxIQyxxQyxLQyxXQyxYQyxZQywkQyxaQyxBMSxRQyxKQyx0eCxleCxueCxiMSxveCx5dCxQZT1aKCgpPT57VXQoKTt2ZSgpO1l0KCk7SXQoKTthdCgpO1p0KCk7UmkoKTtWcygpO2psKCk7V3QoKTtGbigpO2tuKCk7QW4oKTtDbT1uZXcgYSx4bT1uZXcgYSxQbT1uZXcgYSxNbT1uZXcgYSxObT1uZXcgYSxJbT1uZXcgYSx2bT1uZXcgYSxybz1uZXcgYSxEbT1uZXcgYSxMbT1uZXcgYSxGbT1uZXcgYSxCbT1uZXcgYSxGQz00LzMqTS5QSTtlZS5mcm9tUG9pbnRzPWZ1bmN0aW9uKHQsZSl7aWYoaChlKXx8KGU9bmV3IGVlKSwhaCh0KXx8dC5sZW5ndGg9PT0wKXJldHVybiBlLmNlbnRlcj1hLmNsb25lKGEuWkVSTyxlLmNlbnRlciksZS5yYWRpdXM9MCxlO2xldCBuPWEuY2xvbmUodFswXSx2bSksbz1hLmNsb25lKG4sQ20pLHI9YS5jbG9uZShuLHhtKSxpPWEuY2xvbmUobixQbSkscz1hLmNsb25lKG4sTW0pLGY9YS5jbG9uZShuLE5tKSx1PWEuY2xvbmUobixJbSksYz10Lmxlbmd0aCxsO2ZvcihsPTE7bDxjO2wrKyl7YS5jbG9uZSh0W2xdLG4pO2xldCBMPW4ueCx2PW4ueSxEPW4uejtMPG8ueCYmYS5jbG9uZShuLG8pLEw+cy54JiZhLmNsb25lKG4scyksdjxyLnkmJmEuY2xvbmUobixyKSx2PmYueSYmYS5jbG9uZShuLGYpLEQ8aS56JiZhLmNsb25lKG4saSksRD51LnomJmEuY2xvbmUobix1KX1sZXQgcD1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChzLG8scm8pKSxkPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KGYscixybykpLG09YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QodSxpLHJvKSksXz1vLGc9cyxiPXA7ZD5iJiYoYj1kLF89cixnPWYpLG0+YiYmKGI9bSxfPWksZz11KTtsZXQgTz1EbTtPLng9KF8ueCtnLngpKi41LE8ueT0oXy55K2cueSkqLjUsTy56PShfLnorZy56KSouNTtsZXQgVD1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChnLE8scm8pKSxFPU1hdGguc3FydChUKSx3PUxtO3cueD1vLngsdy55PXIueSx3Lno9aS56O2xldCBDPUZtO0MueD1zLngsQy55PWYueSxDLno9dS56O2xldCBOPWEubWlkcG9pbnQodyxDLEJtKSxJPTA7Zm9yKGw9MDtsPGM7bCsrKXthLmNsb25lKHRbbF0sbik7bGV0IEw9YS5tYWduaXR1ZGUoYS5zdWJ0cmFjdChuLE4scm8pKTtMPkkmJihJPUwpO2xldCB2PWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KG4sTyxybykpO2lmKHY+VCl7bGV0IEQ9TWF0aC5zcXJ0KHYpO0U9KEUrRCkqLjUsVD1FKkU7bGV0IFU9RC1FO08ueD0oRSpPLngrVSpuLngpL0QsTy55PShFKk8ueStVKm4ueSkvRCxPLno9KEUqTy56K1Uqbi56KS9EfX1yZXR1cm4gRTxJPyhhLmNsb25lKE8sZS5jZW50ZXIpLGUucmFkaXVzPUUpOihhLmNsb25lKE4sZS5jZW50ZXIpLGUucmFkaXVzPUkpLGV9O0JDPW5ldyBRbixVQz1uZXcgYSxWQz1uZXcgYSxSbT1uZXcgY3QsU209bmV3IGN0O2VlLmZyb21SZWN0YW5nbGUyRD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGVlLmZyb21SZWN0YW5nbGVXaXRoSGVpZ2h0czJEKHQsZSwwLDAsbil9O2VlLmZyb21SZWN0YW5nbGVXaXRoSGVpZ2h0czJEPWZ1bmN0aW9uKHQsZSxuLG8scil7aWYoaChyKXx8KHI9bmV3IGVlKSwhaCh0KSlyZXR1cm4gci5jZW50ZXI9YS5jbG9uZShhLlpFUk8sci5jZW50ZXIpLHIucmFkaXVzPTAscjtlPXgoZSxCQyksUHQuc291dGh3ZXN0KHQsUm0pLFJtLmhlaWdodD1uLFB0Lm5vcnRoZWFzdCh0LFNtKSxTbS5oZWlnaHQ9bztsZXQgaT1lLnByb2plY3QoUm0sVUMpLHM9ZS5wcm9qZWN0KFNtLFZDKSxmPXMueC1pLngsdT1zLnktaS55LGM9cy56LWkuejtyLnJhZGl1cz1NYXRoLnNxcnQoZipmK3UqdStjKmMpKi41O2xldCBsPXIuY2VudGVyO3JldHVybiBsLng9aS54K2YqLjUsbC55PWkueSt1Ki41LGwuej1pLnorYyouNSxyfTtrQz1bXTtlZS5mcm9tUmVjdGFuZ2xlM0Q9ZnVuY3Rpb24odCxlLG4sbyl7aWYoZT14KGUsJC5XR1M4NCksbj14KG4sMCksaChvKXx8KG89bmV3IGVlKSwhaCh0KSlyZXR1cm4gby5jZW50ZXI9YS5jbG9uZShhLlpFUk8sby5jZW50ZXIpLG8ucmFkaXVzPTAsbztsZXQgcj1QdC5zdWJzYW1wbGUodCxlLG4sa0MpO3JldHVybiBlZS5mcm9tUG9pbnRzKHIsbyl9O2VlLmZyb21WZXJ0aWNlcz1mdW5jdGlvbih0LGUsbixvKXtpZihoKG8pfHwobz1uZXcgZWUpLCFoKHQpfHx0Lmxlbmd0aD09PTApcmV0dXJuIG8uY2VudGVyPWEuY2xvbmUoYS5aRVJPLG8uY2VudGVyKSxvLnJhZGl1cz0wLG87ZT14KGUsYS5aRVJPKSxuPXgobiwzKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygic3RyaWRlIixuLDMpO2xldCByPXZtO3IueD10WzBdK2UueCxyLnk9dFsxXStlLnksci56PXRbMl0rZS56O2xldCBpPWEuY2xvbmUocixDbSkscz1hLmNsb25lKHIseG0pLGY9YS5jbG9uZShyLFBtKSx1PWEuY2xvbmUocixNbSksYz1hLmNsb25lKHIsTm0pLGw9YS5jbG9uZShyLEltKSxwPXQubGVuZ3RoLGQ7Zm9yKGQ9MDtkPHA7ZCs9bil7bGV0IEQ9dFtkXStlLngsVT10W2QrMV0rZS55LEE9dFtkKzJdK2UuejtyLng9RCxyLnk9VSxyLno9QSxEPGkueCYmYS5jbG9uZShyLGkpLEQ+dS54JiZhLmNsb25lKHIsdSksVTxzLnkmJmEuY2xvbmUocixzKSxVPmMueSYmYS5jbG9uZShyLGMpLEE8Zi56JiZhLmNsb25lKHIsZiksQT5sLnomJmEuY2xvbmUocixsKX1sZXQgbT1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdCh1LGkscm8pKSxfPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KGMscyxybykpLGc9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QobCxmLHJvKSksYj1pLE89dSxUPW07Xz5UJiYoVD1fLGI9cyxPPWMpLGc+VCYmKFQ9ZyxiPWYsTz1sKTtsZXQgRT1EbTtFLng9KGIueCtPLngpKi41LEUueT0oYi55K08ueSkqLjUsRS56PShiLnorTy56KSouNTtsZXQgdz1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChPLEUscm8pKSxDPU1hdGguc3FydCh3KSxOPUxtO04ueD1pLngsTi55PXMueSxOLno9Zi56O2xldCBJPUZtO0kueD11LngsSS55PWMueSxJLno9bC56O2xldCBMPWEubWlkcG9pbnQoTixJLEJtKSx2PTA7Zm9yKGQ9MDtkPHA7ZCs9bil7ci54PXRbZF0rZS54LHIueT10W2QrMV0rZS55LHIuej10W2QrMl0rZS56O2xldCBEPWEubWFnbml0dWRlKGEuc3VidHJhY3QocixMLHJvKSk7RD52JiYodj1EKTtsZXQgVT1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChyLEUscm8pKTtpZihVPncpe2xldCBBPU1hdGguc3FydChVKTtDPShDK0EpKi41LHc9QypDO2xldCBTPUEtQztFLng9KEMqRS54K1Mqci54KS9BLEUueT0oQypFLnkrUypyLnkpL0EsRS56PShDKkUueitTKnIueikvQX19cmV0dXJuIEM8dj8oYS5jbG9uZShFLG8uY2VudGVyKSxvLnJhZGl1cz1DKTooYS5jbG9uZShMLG8uY2VudGVyKSxvLnJhZGl1cz12KSxvfTtlZS5mcm9tRW5jb2RlZENhcnRlc2lhblZlcnRpY2VzPWZ1bmN0aW9uKHQsZSxuKXtpZihoKG4pfHwobj1uZXcgZWUpLCFoKHQpfHwhaChlKXx8dC5sZW5ndGghPT1lLmxlbmd0aHx8dC5sZW5ndGg9PT0wKXJldHVybiBuLmNlbnRlcj1hLmNsb25lKGEuWkVSTyxuLmNlbnRlciksbi5yYWRpdXM9MCxuO2xldCBvPXZtO28ueD10WzBdK2VbMF0sby55PXRbMV0rZVsxXSxvLno9dFsyXStlWzJdO2xldCByPWEuY2xvbmUobyxDbSksaT1hLmNsb25lKG8seG0pLHM9YS5jbG9uZShvLFBtKSxmPWEuY2xvbmUobyxNbSksdT1hLmNsb25lKG8sTm0pLGM9YS5jbG9uZShvLEltKSxsPXQubGVuZ3RoLHA7Zm9yKHA9MDtwPGw7cCs9Myl7bGV0IHY9dFtwXStlW3BdLEQ9dFtwKzFdK2VbcCsxXSxVPXRbcCsyXStlW3ArMl07by54PXYsby55PUQsby56PVUsdjxyLngmJmEuY2xvbmUobyxyKSx2PmYueCYmYS5jbG9uZShvLGYpLEQ8aS55JiZhLmNsb25lKG8saSksRD51LnkmJmEuY2xvbmUobyx1KSxVPHMueiYmYS5jbG9uZShvLHMpLFU+Yy56JiZhLmNsb25lKG8sYyl9bGV0IGQ9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QoZixyLHJvKSksbT1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdCh1LGkscm8pKSxfPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KGMscyxybykpLGc9cixiPWYsTz1kO20+TyYmKE89bSxnPWksYj11KSxfPk8mJihPPV8sZz1zLGI9Yyk7bGV0IFQ9RG07VC54PShnLngrYi54KSouNSxULnk9KGcueStiLnkpKi41LFQuej0oZy56K2IueikqLjU7bGV0IEU9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QoYixULHJvKSksdz1NYXRoLnNxcnQoRSksQz1MbTtDLng9ci54LEMueT1pLnksQy56PXMuejtsZXQgTj1GbTtOLng9Zi54LE4ueT11LnksTi56PWMuejtsZXQgST1hLm1pZHBvaW50KEMsTixCbSksTD0wO2ZvcihwPTA7cDxsO3ArPTMpe28ueD10W3BdK2VbcF0sby55PXRbcCsxXStlW3ArMV0sby56PXRbcCsyXStlW3ArMl07bGV0IHY9YS5tYWduaXR1ZGUoYS5zdWJ0cmFjdChvLEkscm8pKTt2PkwmJihMPXYpO2xldCBEPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KG8sVCxybykpO2lmKEQ+RSl7bGV0IFU9TWF0aC5zcXJ0KEQpO3c9KHcrVSkqLjUsRT13Knc7bGV0IEE9VS13O1QueD0odypULngrQSpvLngpL1UsVC55PSh3KlQueStBKm8ueSkvVSxULno9KHcqVC56K0Eqby56KS9VfX1yZXR1cm4gdzxMPyhhLmNsb25lKFQsbi5jZW50ZXIpLG4ucmFkaXVzPXcpOihhLmNsb25lKEksbi5jZW50ZXIpLG4ucmFkaXVzPUwpLG59O2VlLmZyb21Db3JuZXJQb2ludHM9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgiY29ybmVyIix0KSx5LnR5cGVPZi5vYmplY3QoIm9wcG9zaXRlQ29ybmVyIixlKSxoKG4pfHwobj1uZXcgZWUpO2xldCBvPWEubWlkcG9pbnQodCxlLG4uY2VudGVyKTtyZXR1cm4gbi5yYWRpdXM9YS5kaXN0YW5jZShvLGUpLG59O2VlLmZyb21FbGxpcHNvaWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJlbGxpcHNvaWQiLHQpLGgoZSl8fChlPW5ldyBlZSksYS5jbG9uZShhLlpFUk8sZS5jZW50ZXIpLGUucmFkaXVzPXQubWF4aW11bVJhZGl1cyxlfTtHQz1uZXcgYTtlZS5mcm9tQm91bmRpbmdTcGhlcmVzPWZ1bmN0aW9uKHQsZSl7aWYoaChlKXx8KGU9bmV3IGVlKSwhaCh0KXx8dC5sZW5ndGg9PT0wKXJldHVybiBlLmNlbnRlcj1hLmNsb25lKGEuWkVSTyxlLmNlbnRlciksZS5yYWRpdXM9MCxlO2xldCBuPXQubGVuZ3RoO2lmKG49PT0xKXJldHVybiBlZS5jbG9uZSh0WzBdLGUpO2lmKG49PT0yKXJldHVybiBlZS51bmlvbih0WzBdLHRbMV0sZSk7bGV0IG89W10scjtmb3Iocj0wO3I8bjtyKyspby5wdXNoKHRbcl0uY2VudGVyKTtlPWVlLmZyb21Qb2ludHMobyxlKTtsZXQgaT1lLmNlbnRlcixzPWUucmFkaXVzO2ZvcihyPTA7cjxuO3IrKyl7bGV0IGY9dFtyXTtzPU1hdGgubWF4KHMsYS5kaXN0YW5jZShpLGYuY2VudGVyLEdDKStmLnJhZGl1cyl9cmV0dXJuIGUucmFkaXVzPXMsZX07ekM9bmV3IGEsakM9bmV3IGEsSEM9bmV3IGE7ZWUuZnJvbU9yaWVudGVkQm91bmRpbmdCb3g9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoIm9yaWVudGVkQm91bmRpbmdCb3giLHQpLGgoZSl8fChlPW5ldyBlZSk7bGV0IG49dC5oYWxmQXhlcyxvPXR0LmdldENvbHVtbihuLDAsekMpLHI9dHQuZ2V0Q29sdW1uKG4sMSxqQyksaT10dC5nZXRDb2x1bW4obiwyLEhDKTtyZXR1cm4gYS5hZGQobyxyLG8pLGEuYWRkKG8saSxvKSxlLmNlbnRlcj1hLmNsb25lKHQuY2VudGVyLGUuY2VudGVyKSxlLnJhZGl1cz1hLm1hZ25pdHVkZShvKSxlfTtxQz1uZXcgYSxLQz1uZXcgYTtlZS5mcm9tVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInRyYW5zZm9ybWF0aW9uIix0KSxoKGUpfHwoZT1uZXcgZWUpO2xldCBuPXN0LmdldFRyYW5zbGF0aW9uKHQscUMpLG89c3QuZ2V0U2NhbGUodCxLQykscj0uNSphLm1hZ25pdHVkZShvKTtyZXR1cm4gZS5jZW50ZXI9YS5jbG9uZShuLGUuY2VudGVyKSxlLnJhZGl1cz1yLGV9O2VlLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS5jZW50ZXI9YS5jbG9uZSh0LmNlbnRlcixlLmNlbnRlciksZS5yYWRpdXM9dC5yYWRpdXMsZSk6bmV3IGVlKHQuY2VudGVyLHQucmFkaXVzKX07ZWUucGFja2VkTGVuZ3RoPTQ7ZWUucGFjaz1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCk7bGV0IG89dC5jZW50ZXI7cmV0dXJuIGVbbisrXT1vLngsZVtuKytdPW8ueSxlW24rK109by56LGVbbl09dC5yYWRpdXMsZX07ZWUudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgZWUpO2xldCBvPW4uY2VudGVyO3JldHVybiBvLng9dFtlKytdLG8ueT10W2UrK10sby56PXRbZSsrXSxuLnJhZGl1cz10W2VdLG59O1dDPW5ldyBhLFhDPW5ldyBhO2VlLnVuaW9uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLGgobil8fChuPW5ldyBlZSk7bGV0IG89dC5jZW50ZXIscj10LnJhZGl1cyxpPWUuY2VudGVyLHM9ZS5yYWRpdXMsZj1hLnN1YnRyYWN0KGksbyxXQyksdT1hLm1hZ25pdHVkZShmKTtpZihyPj11K3MpcmV0dXJuIHQuY2xvbmUobiksbjtpZihzPj11K3IpcmV0dXJuIGUuY2xvbmUobiksbjtsZXQgYz0ocit1K3MpKi41LGw9YS5tdWx0aXBseUJ5U2NhbGFyKGYsKC1yK2MpL3UsWEMpO3JldHVybiBhLmFkZChsLG8sbCksYS5jbG9uZShsLG4uY2VudGVyKSxuLnJhZGl1cz1jLG59O1lDPW5ldyBhO2VlLmV4cGFuZD1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJzcGhlcmUiLHQpLHkudHlwZU9mLm9iamVjdCgicG9pbnQiLGUpLG49ZWUuY2xvbmUodCxuKTtsZXQgbz1hLm1hZ25pdHVkZShhLnN1YnRyYWN0KGUsbi5jZW50ZXIsWUMpKTtyZXR1cm4gbz5uLnJhZGl1cyYmKG4ucmFkaXVzPW8pLG59O2VlLmludGVyc2VjdFBsYW5lPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJzcGhlcmUiLHQpLHkudHlwZU9mLm9iamVjdCgicGxhbmUiLGUpO2xldCBuPXQuY2VudGVyLG89dC5yYWRpdXMscj1lLm5vcm1hbCxpPWEuZG90KHIsbikrZS5kaXN0YW5jZTtyZXR1cm4gaTwtbz9Fbi5PVVRTSURFOmk8bz9Fbi5JTlRFUlNFQ1RJTkc6RW4uSU5TSURFfTtlZS50cmFuc2Zvcm09ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInNwaGVyZSIsdCkseS50eXBlT2Yub2JqZWN0KCJ0cmFuc2Zvcm0iLGUpLGgobil8fChuPW5ldyBlZSksbi5jZW50ZXI9c3QubXVsdGlwbHlCeVBvaW50KGUsdC5jZW50ZXIsbi5jZW50ZXIpLG4ucmFkaXVzPXN0LmdldE1heGltdW1TY2FsZShlKSp0LnJhZGl1cyxufTskQz1uZXcgYTtlZS5kaXN0YW5jZVNxdWFyZWRUbz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgic3BoZXJlIix0KSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsZSk7bGV0IG49YS5zdWJ0cmFjdCh0LmNlbnRlcixlLCRDKSxvPWEubWFnbml0dWRlKG4pLXQucmFkaXVzO3JldHVybiBvPD0wPzA6bypvfTtlZS50cmFuc2Zvcm1XaXRob3V0U2NhbGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInNwaGVyZSIsdCkseS50eXBlT2Yub2JqZWN0KCJ0cmFuc2Zvcm0iLGUpLGgobil8fChuPW5ldyBlZSksbi5jZW50ZXI9c3QubXVsdGlwbHlCeVBvaW50KGUsdC5jZW50ZXIsbi5jZW50ZXIpLG4ucmFkaXVzPXQucmFkaXVzLG59O1pDPW5ldyBhO2VlLmNvbXB1dGVQbGFuZURpc3RhbmNlcz1mdW5jdGlvbih0LGUsbixvKXt5LnR5cGVPZi5vYmplY3QoInNwaGVyZSIsdCkseS50eXBlT2Yub2JqZWN0KCJwb3NpdGlvbiIsZSkseS50eXBlT2Yub2JqZWN0KCJkaXJlY3Rpb24iLG4pLGgobyl8fChvPW5ldyBRcik7bGV0IHI9YS5zdWJ0cmFjdCh0LmNlbnRlcixlLFpDKSxpPWEuZG90KG4scik7cmV0dXJuIG8uc3RhcnQ9aS10LnJhZGl1cyxvLnN0b3A9aSt0LnJhZGl1cyxvfTtBMT1uZXcgYSxRQz1uZXcgYSxKQz1uZXcgYSx0eD1uZXcgYSxleD1uZXcgYSxueD1uZXcgY3QsYjE9bmV3IEFycmF5KDgpO2ZvcihsZXQgdD0wO3Q8ODsrK3QpYjFbdF09bmV3IGE7b3g9bmV3IFFuO2VlLnByb2plY3RUbzJEPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInNwaGVyZSIsdCksZT14KGUsb3gpO2xldCBvPWUuZWxsaXBzb2lkLHI9dC5jZW50ZXIsaT10LnJhZGl1cyxzO2EuZXF1YWxzKHIsYS5aRVJPKT9zPWEuY2xvbmUoYS5VTklUX1gsQTEpOnM9by5nZW9kZXRpY1N1cmZhY2VOb3JtYWwocixBMSk7bGV0IGY9YS5jcm9zcyhhLlVOSVRfWixzLFFDKTthLm5vcm1hbGl6ZShmLGYpO2xldCB1PWEuY3Jvc3MocyxmLEpDKTthLm5vcm1hbGl6ZSh1LHUpLGEubXVsdGlwbHlCeVNjYWxhcihzLGkscyksYS5tdWx0aXBseUJ5U2NhbGFyKHUsaSx1KSxhLm11bHRpcGx5QnlTY2FsYXIoZixpLGYpO2xldCBjPWEubmVnYXRlKHUsZXgpLGw9YS5uZWdhdGUoZix0eCkscD1iMSxkPXBbMF07YS5hZGQocyx1LGQpLGEuYWRkKGQsZixkKSxkPXBbMV0sYS5hZGQocyx1LGQpLGEuYWRkKGQsbCxkKSxkPXBbMl0sYS5hZGQocyxjLGQpLGEuYWRkKGQsbCxkKSxkPXBbM10sYS5hZGQocyxjLGQpLGEuYWRkKGQsZixkKSxhLm5lZ2F0ZShzLHMpLGQ9cFs0XSxhLmFkZChzLHUsZCksYS5hZGQoZCxmLGQpLGQ9cFs1XSxhLmFkZChzLHUsZCksYS5hZGQoZCxsLGQpLGQ9cFs2XSxhLmFkZChzLGMsZCksYS5hZGQoZCxsLGQpLGQ9cFs3XSxhLmFkZChzLGMsZCksYS5hZGQoZCxmLGQpO2xldCBtPXAubGVuZ3RoO2ZvcihsZXQgTz0wO088bTsrK08pe2xldCBUPXBbT107YS5hZGQocixULFQpO2xldCBFPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoVCxueCk7ZS5wcm9qZWN0KEUsVCl9bj1lZS5mcm9tUG9pbnRzKHAsbikscj1uLmNlbnRlcjtsZXQgXz1yLngsZz1yLnksYj1yLno7cmV0dXJuIHIueD1iLHIueT1fLHIuej1nLG59O2VlLmlzT2NjbHVkZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJzcGhlcmUiLHQpLHkudHlwZU9mLm9iamVjdCgib2NjbHVkZXIiLGUpLCFlLmlzQm91bmRpbmdTcGhlcmVWaXNpYmxlKHQpfTtlZS5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJmEuZXF1YWxzKHQuY2VudGVyLGUuY2VudGVyKSYmdC5yYWRpdXM9PT1lLnJhZGl1c307ZWUucHJvdG90eXBlLmludGVyc2VjdFBsYW5lPWZ1bmN0aW9uKHQpe3JldHVybiBlZS5pbnRlcnNlY3RQbGFuZSh0aGlzLHQpfTtlZS5wcm90b3R5cGUuZGlzdGFuY2VTcXVhcmVkVG89ZnVuY3Rpb24odCl7cmV0dXJuIGVlLmRpc3RhbmNlU3F1YXJlZFRvKHRoaXMsdCl9O2VlLnByb3RvdHlwZS5jb21wdXRlUGxhbmVEaXN0YW5jZXM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlZS5jb21wdXRlUGxhbmVEaXN0YW5jZXModGhpcyx0LGUsbil9O2VlLnByb3RvdHlwZS5pc09jY2x1ZGVkPWZ1bmN0aW9uKHQpe3JldHVybiBlZS5pc09jY2x1ZGVkKHRoaXMsdCl9O2VlLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGVlLmVxdWFscyh0aGlzLHQpfTtlZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGVlLmNsb25lKHRoaXMsdCl9O2VlLnByb3RvdHlwZS52b2x1bWU9ZnVuY3Rpb24oKXtsZXQgdD10aGlzLnJhZGl1cztyZXR1cm4gRkMqdCp0KnR9O3l0PWVlfSk7dmFyIHJ4LHF0LGtzPVooKCk9PntyeD17REVQVEhfQlVGRkVSX0JJVDoyNTYsU1RFTkNJTF9CVUZGRVJfQklUOjEwMjQsQ09MT1JfQlVGRkVSX0JJVDoxNjM4NCxQT0lOVFM6MCxMSU5FUzoxLExJTkVfTE9PUDoyLExJTkVfU1RSSVA6MyxUUklBTkdMRVM6NCxUUklBTkdMRV9TVFJJUDo1LFRSSUFOR0xFX0ZBTjo2LFpFUk86MCxPTkU6MSxTUkNfQ09MT1I6NzY4LE9ORV9NSU5VU19TUkNfQ09MT1I6NzY5LFNSQ19BTFBIQTo3NzAsT05FX01JTlVTX1NSQ19BTFBIQTo3NzEsRFNUX0FMUEhBOjc3MixPTkVfTUlOVVNfRFNUX0FMUEhBOjc3MyxEU1RfQ09MT1I6Nzc0LE9ORV9NSU5VU19EU1RfQ09MT1I6Nzc1LFNSQ19BTFBIQV9TQVRVUkFURTo3NzYsRlVOQ19BREQ6MzI3NzQsQkxFTkRfRVFVQVRJT046MzI3NzcsQkxFTkRfRVFVQVRJT05fUkdCOjMyNzc3LEJMRU5EX0VRVUFUSU9OX0FMUEhBOjM0ODc3LEZVTkNfU1VCVFJBQ1Q6MzI3NzgsRlVOQ19SRVZFUlNFX1NVQlRSQUNUOjMyNzc5LEJMRU5EX0RTVF9SR0I6MzI5NjgsQkxFTkRfU1JDX1JHQjozMjk2OSxCTEVORF9EU1RfQUxQSEE6MzI5NzAsQkxFTkRfU1JDX0FMUEhBOjMyOTcxLENPTlNUQU5UX0NPTE9SOjMyNzY5LE9ORV9NSU5VU19DT05TVEFOVF9DT0xPUjozMjc3MCxDT05TVEFOVF9BTFBIQTozMjc3MSxPTkVfTUlOVVNfQ09OU1RBTlRfQUxQSEE6MzI3NzIsQkxFTkRfQ09MT1I6MzI3NzMsQVJSQVlfQlVGRkVSOjM0OTYyLEVMRU1FTlRfQVJSQVlfQlVGRkVSOjM0OTYzLEFSUkFZX0JVRkZFUl9CSU5ESU5HOjM0OTY0LEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkc6MzQ5NjUsU1RSRUFNX0RSQVc6MzUwNDAsU1RBVElDX0RSQVc6MzUwNDQsRFlOQU1JQ19EUkFXOjM1MDQ4LEJVRkZFUl9TSVpFOjM0NjYwLEJVRkZFUl9VU0FHRTozNDY2MSxDVVJSRU5UX1ZFUlRFWF9BVFRSSUI6MzQzNDIsRlJPTlQ6MTAyOCxCQUNLOjEwMjksRlJPTlRfQU5EX0JBQ0s6MTAzMixDVUxMX0ZBQ0U6Mjg4NCxCTEVORDozMDQyLERJVEhFUjozMDI0LFNURU5DSUxfVEVTVDoyOTYwLERFUFRIX1RFU1Q6MjkyOSxTQ0lTU09SX1RFU1Q6MzA4OSxQT0xZR09OX09GRlNFVF9GSUxMOjMyODIzLFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRTozMjkyNixTQU1QTEVfQ09WRVJBR0U6MzI5MjgsTk9fRVJST1I6MCxJTlZBTElEX0VOVU06MTI4MCxJTlZBTElEX1ZBTFVFOjEyODEsSU5WQUxJRF9PUEVSQVRJT046MTI4MixPVVRfT0ZfTUVNT1JZOjEyODUsQ1c6MjMwNCxDQ1c6MjMwNSxMSU5FX1dJRFRIOjI4NDksQUxJQVNFRF9QT0lOVF9TSVpFX1JBTkdFOjMzOTAxLEFMSUFTRURfTElORV9XSURUSF9SQU5HRTozMzkwMixDVUxMX0ZBQ0VfTU9ERToyODg1LEZST05UX0ZBQ0U6Mjg4NixERVBUSF9SQU5HRToyOTI4LERFUFRIX1dSSVRFTUFTSzoyOTMwLERFUFRIX0NMRUFSX1ZBTFVFOjI5MzEsREVQVEhfRlVOQzoyOTMyLFNURU5DSUxfQ0xFQVJfVkFMVUU6Mjk2MSxTVEVOQ0lMX0ZVTkM6Mjk2MixTVEVOQ0lMX0ZBSUw6Mjk2NCxTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTDoyOTY1LFNURU5DSUxfUEFTU19ERVBUSF9QQVNTOjI5NjYsU1RFTkNJTF9SRUY6Mjk2NyxTVEVOQ0lMX1ZBTFVFX01BU0s6Mjk2MyxTVEVOQ0lMX1dSSVRFTUFTSzoyOTY4LFNURU5DSUxfQkFDS19GVU5DOjM0ODE2LFNURU5DSUxfQkFDS19GQUlMOjM0ODE3LFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUw6MzQ4MTgsU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUzozNDgxOSxTVEVOQ0lMX0JBQ0tfUkVGOjM2MDAzLFNURU5DSUxfQkFDS19WQUxVRV9NQVNLOjM2MDA0LFNURU5DSUxfQkFDS19XUklURU1BU0s6MzYwMDUsVklFV1BPUlQ6Mjk3OCxTQ0lTU09SX0JPWDozMDg4LENPTE9SX0NMRUFSX1ZBTFVFOjMxMDYsQ09MT1JfV1JJVEVNQVNLOjMxMDcsVU5QQUNLX0FMSUdOTUVOVDozMzE3LFBBQ0tfQUxJR05NRU5UOjMzMzMsTUFYX1RFWFRVUkVfU0laRTozMzc5LE1BWF9WSUVXUE9SVF9ESU1TOjMzODYsU1VCUElYRUxfQklUUzozNDA4LFJFRF9CSVRTOjM0MTAsR1JFRU5fQklUUzozNDExLEJMVUVfQklUUzozNDEyLEFMUEhBX0JJVFM6MzQxMyxERVBUSF9CSVRTOjM0MTQsU1RFTkNJTF9CSVRTOjM0MTUsUE9MWUdPTl9PRkZTRVRfVU5JVFM6MTA3NTIsUE9MWUdPTl9PRkZTRVRfRkFDVE9SOjMyODI0LFRFWFRVUkVfQklORElOR18yRDozMjg3MyxTQU1QTEVfQlVGRkVSUzozMjkzNixTQU1QTEVTOjMyOTM3LFNBTVBMRV9DT1ZFUkFHRV9WQUxVRTozMjkzOCxTQU1QTEVfQ09WRVJBR0VfSU5WRVJUOjMyOTM5LENPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTOjM0NDY3LERPTlRfQ0FSRTo0MzUyLEZBU1RFU1Q6NDM1MyxOSUNFU1Q6NDM1NCxHRU5FUkFURV9NSVBNQVBfSElOVDozMzE3MCxCWVRFOjUxMjAsVU5TSUdORURfQllURTo1MTIxLFNIT1JUOjUxMjIsVU5TSUdORURfU0hPUlQ6NTEyMyxJTlQ6NTEyNCxVTlNJR05FRF9JTlQ6NTEyNSxGTE9BVDo1MTI2LERFUFRIX0NPTVBPTkVOVDo2NDAyLEFMUEhBOjY0MDYsUkdCOjY0MDcsUkdCQTo2NDA4LExVTUlOQU5DRTo2NDA5LExVTUlOQU5DRV9BTFBIQTo2NDEwLFVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6MzI4MTksVU5TSUdORURfU0hPUlRfNV81XzVfMTozMjgyMCxVTlNJR05FRF9TSE9SVF81XzZfNTozMzYzNSxGUkFHTUVOVF9TSEFERVI6MzU2MzIsVkVSVEVYX1NIQURFUjozNTYzMyxNQVhfVkVSVEVYX0FUVFJJQlM6MzQ5MjEsTUFYX1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlM6MzYzNDcsTUFYX1ZBUllJTkdfVkVDVE9SUzozNjM0OCxNQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUzozNTY2MSxNQVhfVkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5JVFM6MzU2NjAsTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFM6MzQ5MzAsTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUzozNjM0OSxTSEFERVJfVFlQRTozNTY2MyxERUxFVEVfU1RBVFVTOjM1NzEyLExJTktfU1RBVFVTOjM1NzE0LFZBTElEQVRFX1NUQVRVUzozNTcxNSxBVFRBQ0hFRF9TSEFERVJTOjM1NzE3LEFDVElWRV9VTklGT1JNUzozNTcxOCxBQ1RJVkVfQVRUUklCVVRFUzozNTcyMSxTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT046MzU3MjQsQ1VSUkVOVF9QUk9HUkFNOjM1NzI1LE5FVkVSOjUxMixMRVNTOjUxMyxFUVVBTDo1MTQsTEVRVUFMOjUxNSxHUkVBVEVSOjUxNixOT1RFUVVBTDo1MTcsR0VRVUFMOjUxOCxBTFdBWVM6NTE5LEtFRVA6NzY4MCxSRVBMQUNFOjc2ODEsSU5DUjo3NjgyLERFQ1I6NzY4MyxJTlZFUlQ6NTM4NixJTkNSX1dSQVA6MzQwNTUsREVDUl9XUkFQOjM0MDU2LFZFTkRPUjo3OTM2LFJFTkRFUkVSOjc5MzcsVkVSU0lPTjo3OTM4LE5FQVJFU1Q6OTcyOCxMSU5FQVI6OTcyOSxORUFSRVNUX01JUE1BUF9ORUFSRVNUOjk5ODQsTElORUFSX01JUE1BUF9ORUFSRVNUOjk5ODUsTkVBUkVTVF9NSVBNQVBfTElORUFSOjk5ODYsTElORUFSX01JUE1BUF9MSU5FQVI6OTk4NyxURVhUVVJFX01BR19GSUxURVI6MTAyNDAsVEVYVFVSRV9NSU5fRklMVEVSOjEwMjQxLFRFWFRVUkVfV1JBUF9TOjEwMjQyLFRFWFRVUkVfV1JBUF9UOjEwMjQzLFRFWFRVUkVfMkQ6MzU1MyxURVhUVVJFOjU4OTAsVEVYVFVSRV9DVUJFX01BUDozNDA2NyxURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6MzQwNjgsVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YOjM0MDY5LFRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWDozNDA3MCxURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1k6MzQwNzEsVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZOjM0MDcyLFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWjozNDA3MyxURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1o6MzQwNzQsTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRTozNDA3NixURVhUVVJFMDozMzk4NCxURVhUVVJFMTozMzk4NSxURVhUVVJFMjozMzk4NixURVhUVVJFMzozMzk4NyxURVhUVVJFNDozMzk4OCxURVhUVVJFNTozMzk4OSxURVhUVVJFNjozMzk5MCxURVhUVVJFNzozMzk5MSxURVhUVVJFODozMzk5MixURVhUVVJFOTozMzk5MyxURVhUVVJFMTA6MzM5OTQsVEVYVFVSRTExOjMzOTk1LFRFWFRVUkUxMjozMzk5NixURVhUVVJFMTM6MzM5OTcsVEVYVFVSRTE0OjMzOTk4LFRFWFRVUkUxNTozMzk5OSxURVhUVVJFMTY6MzRlMyxURVhUVVJFMTc6MzQwMDEsVEVYVFVSRTE4OjM0MDAyLFRFWFRVUkUxOTozNDAwMyxURVhUVVJFMjA6MzQwMDQsVEVYVFVSRTIxOjM0MDA1LFRFWFRVUkUyMjozNDAwNixURVhUVVJFMjM6MzQwMDcsVEVYVFVSRTI0OjM0MDA4LFRFWFRVUkUyNTozNDAwOSxURVhUVVJFMjY6MzQwMTAsVEVYVFVSRTI3OjM0MDExLFRFWFRVUkUyODozNDAxMixURVhUVVJFMjk6MzQwMTMsVEVYVFVSRTMwOjM0MDE0LFRFWFRVUkUzMTozNDAxNSxBQ1RJVkVfVEVYVFVSRTozNDAxNixSRVBFQVQ6MTA0OTcsQ0xBTVBfVE9fRURHRTozMzA3MSxNSVJST1JFRF9SRVBFQVQ6MzM2NDgsRkxPQVRfVkVDMjozNTY2NCxGTE9BVF9WRUMzOjM1NjY1LEZMT0FUX1ZFQzQ6MzU2NjYsSU5UX1ZFQzI6MzU2NjcsSU5UX1ZFQzM6MzU2NjgsSU5UX1ZFQzQ6MzU2NjksQk9PTDozNTY3MCxCT09MX1ZFQzI6MzU2NzEsQk9PTF9WRUMzOjM1NjcyLEJPT0xfVkVDNDozNTY3MyxGTE9BVF9NQVQyOjM1Njc0LEZMT0FUX01BVDM6MzU2NzUsRkxPQVRfTUFUNDozNTY3NixTQU1QTEVSXzJEOjM1Njc4LFNBTVBMRVJfQ1VCRTozNTY4MCxWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQ6MzQzMzgsVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFOjM0MzM5LFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFOjM0MzQwLFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRTozNDM0MSxWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQ6MzQ5MjIsVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSOjM0MzczLFZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkc6MzQ5NzUsSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9UWVBFOjM1NzM4LElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUOjM1NzM5LENPTVBJTEVfU1RBVFVTOjM1NzEzLExPV19GTE9BVDozNjMzNixNRURJVU1fRkxPQVQ6MzYzMzcsSElHSF9GTE9BVDozNjMzOCxMT1dfSU5UOjM2MzM5LE1FRElVTV9JTlQ6MzYzNDAsSElHSF9JTlQ6MzYzNDEsRlJBTUVCVUZGRVI6MzYxNjAsUkVOREVSQlVGRkVSOjM2MTYxLFJHQkE0OjMyODU0LFJHQjVfQTE6MzI4NTUsUkdCNTY1OjM2MTk0LERFUFRIX0NPTVBPTkVOVDE2OjMzMTg5LFNURU5DSUxfSU5ERVg6NjQwMSxTVEVOQ0lMX0lOREVYODozNjE2OCxERVBUSF9TVEVOQ0lMOjM0MDQxLFJFTkRFUkJVRkZFUl9XSURUSDozNjE2MixSRU5ERVJCVUZGRVJfSEVJR0hUOjM2MTYzLFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6MzYxNjQsUkVOREVSQlVGRkVSX1JFRF9TSVpFOjM2MTc2LFJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFOjM2MTc3LFJFTkRFUkJVRkZFUl9CTFVFX1NJWkU6MzYxNzgsUkVOREVSQlVGRkVSX0FMUEhBX1NJWkU6MzYxNzksUkVOREVSQlVGRkVSX0RFUFRIX1NJWkU6MzYxODAsUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRTozNjE4MSxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOjM2MDQ4LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6MzYwNDksRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOjM2MDUwLEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJFX01BUF9GQUNFOjM2MDUxLENPTE9SX0FUVEFDSE1FTlQwOjM2MDY0LERFUFRIX0FUVEFDSE1FTlQ6MzYwOTYsU1RFTkNJTF9BVFRBQ0hNRU5UOjM2MTI4LERFUFRIX1NURU5DSUxfQVRUQUNITUVOVDozMzMwNixOT05FOjAsRlJBTUVCVUZGRVJfQ09NUExFVEU6MzYwNTMsRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UOjM2MDU0LEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UOjM2MDU1LEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUzozNjA1NyxGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRDozNjA2MSxGUkFNRUJVRkZFUl9CSU5ESU5HOjM2MDA2LFJFTkRFUkJVRkZFUl9CSU5ESU5HOjM2MDA3LE1BWF9SRU5ERVJCVUZGRVJfU0laRTozNDAyNCxJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTjoxMjg2LFVOUEFDS19GTElQX1lfV0VCR0w6Mzc0NDAsVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMOjM3NDQxLENPTlRFWFRfTE9TVF9XRUJHTDozNzQ0MixVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMOjM3NDQzLEJST1dTRVJfREVGQVVMVF9XRUJHTDozNzQ0NCxDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUOjMzNzc2LENPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUOjMzNzc3LENPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhUOjMzNzc4LENPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDVfRVhUOjMzNzc5LENPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUc6MzU4NDAsQ09NUFJFU1NFRF9SR0JfUFZSVENfMkJQUFYxX0lNRzozNTg0MSxDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRzozNTg0MixDT01QUkVTU0VEX1JHQkFfUFZSVENfMkJQUFYxX0lNRzozNTg0MyxDT01QUkVTU0VEX1JHQkFfQVNUQ180eDRfV0VCR0w6Mzc4MDgsQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTDozNjE5NixDT01QUkVTU0VEX1JHQkFfQlBUQ19VTk9STTozNjQ5MixIQUxGX0ZMT0FUX09FUzozNjE5MyxET1VCTEU6NTEzMCxSRUFEX0JVRkZFUjozMDc0LFVOUEFDS19ST1dfTEVOR1RIOjMzMTQsVU5QQUNLX1NLSVBfUk9XUzozMzE1LFVOUEFDS19TS0lQX1BJWEVMUzozMzE2LFBBQ0tfUk9XX0xFTkdUSDozMzMwLFBBQ0tfU0tJUF9ST1dTOjMzMzEsUEFDS19TS0lQX1BJWEVMUzozMzMyLENPTE9SOjYxNDQsREVQVEg6NjE0NSxTVEVOQ0lMOjYxNDYsUkVEOjY0MDMsUkdCODozMjg0OSxSR0JBODozMjg1NixSR0IxMF9BMjozMjg1NyxURVhUVVJFX0JJTkRJTkdfM0Q6MzI4NzQsVU5QQUNLX1NLSVBfSU1BR0VTOjMyODc3LFVOUEFDS19JTUFHRV9IRUlHSFQ6MzI4NzgsVEVYVFVSRV8zRDozMjg3OSxURVhUVVJFX1dSQVBfUjozMjg4MixNQVhfM0RfVEVYVFVSRV9TSVpFOjMyODgzLFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFVjozMzY0MCxNQVhfRUxFTUVOVFNfVkVSVElDRVM6MzNlMyxNQVhfRUxFTUVOVFNfSU5ESUNFUzozMzAwMSxURVhUVVJFX01JTl9MT0Q6MzMwODIsVEVYVFVSRV9NQVhfTE9EOjMzMDgzLFRFWFRVUkVfQkFTRV9MRVZFTDozMzA4NCxURVhUVVJFX01BWF9MRVZFTDozMzA4NSxNSU46MzI3NzUsTUFYOjMyNzc2LERFUFRIX0NPTVBPTkVOVDI0OjMzMTkwLE1BWF9URVhUVVJFX0xPRF9CSUFTOjM0MDQ1LFRFWFRVUkVfQ09NUEFSRV9NT0RFOjM0ODkyLFRFWFRVUkVfQ09NUEFSRV9GVU5DOjM0ODkzLENVUlJFTlRfUVVFUlk6MzQ5MTcsUVVFUllfUkVTVUxUOjM0OTE4LFFVRVJZX1JFU1VMVF9BVkFJTEFCTEU6MzQ5MTksU1RSRUFNX1JFQUQ6MzUwNDEsU1RSRUFNX0NPUFk6MzUwNDIsU1RBVElDX1JFQUQ6MzUwNDUsU1RBVElDX0NPUFk6MzUwNDYsRFlOQU1JQ19SRUFEOjM1MDQ5LERZTkFNSUNfQ09QWTozNTA1MCxNQVhfRFJBV19CVUZGRVJTOjM0ODUyLERSQVdfQlVGRkVSMDozNDg1MyxEUkFXX0JVRkZFUjE6MzQ4NTQsRFJBV19CVUZGRVIyOjM0ODU1LERSQVdfQlVGRkVSMzozNDg1NixEUkFXX0JVRkZFUjQ6MzQ4NTcsRFJBV19CVUZGRVI1OjM0ODU4LERSQVdfQlVGRkVSNjozNDg1OSxEUkFXX0JVRkZFUjc6MzQ4NjAsRFJBV19CVUZGRVI4OjM0ODYxLERSQVdfQlVGRkVSOTozNDg2MixEUkFXX0JVRkZFUjEwOjM0ODYzLERSQVdfQlVGRkVSMTE6MzQ4NjQsRFJBV19CVUZGRVIxMjozNDg2NSxEUkFXX0JVRkZFUjEzOjM0ODY2LERSQVdfQlVGRkVSMTQ6MzQ4NjcsRFJBV19CVUZGRVIxNTozNDg2OCxNQVhfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTOjM1NjU3LE1BWF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTOjM1NjU4LFNBTVBMRVJfM0Q6MzU2NzksU0FNUExFUl8yRF9TSEFET1c6MzU2ODIsRlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVDozNTcyMyxQSVhFTF9QQUNLX0JVRkZFUjozNTA1MSxQSVhFTF9VTlBBQ0tfQlVGRkVSOjM1MDUyLFBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkc6MzUwNTMsUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HOjM1MDU1LEZMT0FUX01BVDJ4MzozNTY4NSxGTE9BVF9NQVQyeDQ6MzU2ODYsRkxPQVRfTUFUM3gyOjM1Njg3LEZMT0FUX01BVDN4NDozNTY4OCxGTE9BVF9NQVQ0eDI6MzU2ODksRkxPQVRfTUFUNHgzOjM1NjkwLFNSR0I6MzU5MDQsU1JHQjg6MzU5MDUsU1JHQjhfQUxQSEE4OjM1OTA3LENPTVBBUkVfUkVGX1RPX1RFWFRVUkU6MzQ4OTQsUkdCQTMyRjozNDgzNixSR0IzMkY6MzQ4MzcsUkdCQTE2RjozNDg0MixSR0IxNkY6MzQ4NDMsVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSOjM1MDY5LE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUzozNTA3MSxNSU5fUFJPR1JBTV9URVhFTF9PRkZTRVQ6MzUwNzYsTUFYX1BST0dSQU1fVEVYRUxfT0ZGU0VUOjM1MDc3LE1BWF9WQVJZSU5HX0NPTVBPTkVOVFM6MzU2NTksVEVYVFVSRV8yRF9BUlJBWTozNTg2NixURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVk6MzU4NjksUjExRl9HMTFGX0IxMEY6MzU4OTgsVU5TSUdORURfSU5UXzEwRl8xMUZfMTFGX1JFVjozNTg5OSxSR0I5X0U1OjM1OTAxLFVOU0lHTkVEX0lOVF81XzlfOV85X1JFVjozNTkwMixUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX01PREU6MzU5NjcsTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRTOjM1OTY4LFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HUzozNTk3MSxUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NUQVJUOjM1OTcyLFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRTozNTk3MyxUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOOjM1OTc2LFJBU1RFUklaRVJfRElTQ0FSRDozNTk3NyxNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX0lOVEVSTEVBVkVEX0NPTVBPTkVOVFM6MzU5NzgsTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTOjM1OTc5LElOVEVSTEVBVkVEX0FUVFJJQlM6MzU5ODAsU0VQQVJBVEVfQVRUUklCUzozNTk4MSxUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSOjM1OTgyLFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzozNTk4MyxSR0JBMzJVSTozNjIwOCxSR0IzMlVJOjM2MjA5LFJHQkExNlVJOjM2MjE0LFJHQjE2VUk6MzYyMTUsUkdCQThVSTozNjIyMCxSR0I4VUk6MzYyMjEsUkdCQTMySTozNjIyNixSR0IzMkk6MzYyMjcsUkdCQTE2STozNjIzMixSR0IxNkk6MzYyMzMsUkdCQThJOjM2MjM4LFJHQjhJOjM2MjM5LFJFRF9JTlRFR0VSOjM2MjQ0LFJHQl9JTlRFR0VSOjM2MjQ4LFJHQkFfSU5URUdFUjozNjI0OSxTQU1QTEVSXzJEX0FSUkFZOjM2Mjg5LFNBTVBMRVJfMkRfQVJSQVlfU0hBRE9XOjM2MjkyLFNBTVBMRVJfQ1VCRV9TSEFET1c6MzYyOTMsVU5TSUdORURfSU5UX1ZFQzI6MzYyOTQsVU5TSUdORURfSU5UX1ZFQzM6MzYyOTUsVU5TSUdORURfSU5UX1ZFQzQ6MzYyOTYsSU5UX1NBTVBMRVJfMkQ6MzYyOTgsSU5UX1NBTVBMRVJfM0Q6MzYyOTksSU5UX1NBTVBMRVJfQ1VCRTozNjMwMCxJTlRfU0FNUExFUl8yRF9BUlJBWTozNjMwMyxVTlNJR05FRF9JTlRfU0FNUExFUl8yRDozNjMwNixVTlNJR05FRF9JTlRfU0FNUExFUl8zRDozNjMwNyxVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFOjM2MzA4LFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZOjM2MzExLERFUFRIX0NPTVBPTkVOVDMyRjozNjAxMixERVBUSDMyRl9TVEVOQ0lMODozNjAxMyxGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVY6MzYyNjksRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORzozMzI5NixGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFOjMzMjk3LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkU6MzMyOTgsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9HUkVFTl9TSVpFOjMzMjk5LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQkxVRV9TSVpFOjMzMzAwLEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRTozMzMwMSxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0RFUFRIX1NJWkU6MzMzMDIsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9TVEVOQ0lMX1NJWkU6MzMzMDMsRlJBTUVCVUZGRVJfREVGQVVMVDozMzMwNCxVTlNJR05FRF9JTlRfMjRfODozNDA0MixERVBUSDI0X1NURU5DSUw4OjM1MDU2LFVOU0lHTkVEX05PUk1BTElaRUQ6MzU4NjMsRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HOjM2MDA2LFJFQURfRlJBTUVCVUZGRVI6MzYwMDgsRFJBV19GUkFNRUJVRkZFUjozNjAwOSxSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkc6MzYwMTAsUkVOREVSQlVGRkVSX1NBTVBMRVM6MzYwMTEsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSOjM2MDUyLE1BWF9DT0xPUl9BVFRBQ0hNRU5UUzozNjA2MyxDT0xPUl9BVFRBQ0hNRU5UMTozNjA2NSxDT0xPUl9BVFRBQ0hNRU5UMjozNjA2NixDT0xPUl9BVFRBQ0hNRU5UMzozNjA2NyxDT0xPUl9BVFRBQ0hNRU5UNDozNjA2OCxDT0xPUl9BVFRBQ0hNRU5UNTozNjA2OSxDT0xPUl9BVFRBQ0hNRU5UNjozNjA3MCxDT0xPUl9BVFRBQ0hNRU5UNzozNjA3MSxDT0xPUl9BVFRBQ0hNRU5UODozNjA3MixDT0xPUl9BVFRBQ0hNRU5UOTozNjA3MyxDT0xPUl9BVFRBQ0hNRU5UMTA6MzYwNzQsQ09MT1JfQVRUQUNITUVOVDExOjM2MDc1LENPTE9SX0FUVEFDSE1FTlQxMjozNjA3NixDT0xPUl9BVFRBQ0hNRU5UMTM6MzYwNzcsQ09MT1JfQVRUQUNITUVOVDE0OjM2MDc4LENPTE9SX0FUVEFDSE1FTlQxNTozNjA3OSxGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFOjM2MTgyLE1BWF9TQU1QTEVTOjM2MTgzLEhBTEZfRkxPQVQ6NTEzMSxSRzozMzMxOSxSR19JTlRFR0VSOjMzMzIwLFI4OjMzMzIxLFJHODozMzMyMyxSMTZGOjMzMzI1LFIzMkY6MzMzMjYsUkcxNkY6MzMzMjcsUkczMkY6MzMzMjgsUjhJOjMzMzI5LFI4VUk6MzMzMzAsUjE2STozMzMzMSxSMTZVSTozMzMzMixSMzJJOjMzMzMzLFIzMlVJOjMzMzM0LFJHOEk6MzMzMzUsUkc4VUk6MzMzMzYsUkcxNkk6MzMzMzcsUkcxNlVJOjMzMzM4LFJHMzJJOjMzMzM5LFJHMzJVSTozMzM0MCxWRVJURVhfQVJSQVlfQklORElORzozNDIyOSxSOF9TTk9STTozNjc1NixSRzhfU05PUk06MzY3NTcsUkdCOF9TTk9STTozNjc1OCxSR0JBOF9TTk9STTozNjc1OSxTSUdORURfTk9STUFMSVpFRDozNjc2NCxDT1BZX1JFQURfQlVGRkVSOjM2NjYyLENPUFlfV1JJVEVfQlVGRkVSOjM2NjYzLENPUFlfUkVBRF9CVUZGRVJfQklORElORzozNjY2MixDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HOjM2NjYzLFVOSUZPUk1fQlVGRkVSOjM1MzQ1LFVOSUZPUk1fQlVGRkVSX0JJTkRJTkc6MzUzNjgsVU5JRk9STV9CVUZGRVJfU1RBUlQ6MzUzNjksVU5JRk9STV9CVUZGRVJfU0laRTozNTM3MCxNQVhfVkVSVEVYX1VOSUZPUk1fQkxPQ0tTOjM1MzcxLE1BWF9GUkFHTUVOVF9VTklGT1JNX0JMT0NLUzozNTM3MyxNQVhfQ09NQklORURfVU5JRk9STV9CTE9DS1M6MzUzNzQsTUFYX1VOSUZPUk1fQlVGRkVSX0JJTkRJTkdTOjM1Mzc1LE1BWF9VTklGT1JNX0JMT0NLX1NJWkU6MzUzNzYsTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFM6MzUzNzcsTUFYX0NPTUJJTkVEX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUzozNTM3OSxVTklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UOjM1MzgwLEFDVElWRV9VTklGT1JNX0JMT0NLUzozNTM4MixVTklGT1JNX1RZUEU6MzUzODMsVU5JRk9STV9TSVpFOjM1Mzg0LFVOSUZPUk1fQkxPQ0tfSU5ERVg6MzUzODYsVU5JRk9STV9PRkZTRVQ6MzUzODcsVU5JRk9STV9BUlJBWV9TVFJJREU6MzUzODgsVU5JRk9STV9NQVRSSVhfU1RSSURFOjM1Mzg5LFVOSUZPUk1fSVNfUk9XX01BSk9SOjM1MzkwLFVOSUZPUk1fQkxPQ0tfQklORElORzozNTM5MSxVTklGT1JNX0JMT0NLX0RBVEFfU0laRTozNTM5MixVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNUzozNTM5NCxVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lORElDRVM6MzUzOTUsVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX1ZFUlRFWF9TSEFERVI6MzUzOTYsVU5JRk9STV9CTE9DS19SRUZFUkVOQ0VEX0JZX0ZSQUdNRU5UX1NIQURFUjozNTM5OCxJTlZBTElEX0lOREVYOjQyOTQ5NjcyOTUsTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUzozNzE1NCxNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUzozNzE1NyxNQVhfU0VSVkVSX1dBSVRfVElNRU9VVDozNzEzNyxPQkpFQ1RfVFlQRTozNzEzOCxTWU5DX0NPTkRJVElPTjozNzEzOSxTWU5DX1NUQVRVUzozNzE0MCxTWU5DX0ZMQUdTOjM3MTQxLFNZTkNfRkVOQ0U6MzcxNDIsU1lOQ19HUFVfQ09NTUFORFNfQ09NUExFVEU6MzcxNDMsVU5TSUdOQUxFRDozNzE0NCxTSUdOQUxFRDozNzE0NSxBTFJFQURZX1NJR05BTEVEOjM3MTQ2LFRJTUVPVVRfRVhQSVJFRDozNzE0NyxDT05ESVRJT05fU0FUSVNGSUVEOjM3MTQ4LFdBSVRfRkFJTEVEOjM3MTQ5LFNZTkNfRkxVU0hfQ09NTUFORFNfQklUOjEsVkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SOjM1MDcwLEFOWV9TQU1QTEVTX1BBU1NFRDozNTg4NyxBTllfU0FNUExFU19QQVNTRURfQ09OU0VSVkFUSVZFOjM2MjAyLFNBTVBMRVJfQklORElORzozNTA5NyxSR0IxMF9BMlVJOjM2OTc1LElOVF8yXzEwXzEwXzEwX1JFVjozNjI1NSxUUkFOU0ZPUk1fRkVFREJBQ0s6MzYzODYsVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRDozNjM4NyxUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFOjM2Mzg4LFRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HOjM2Mzg5LENPTVBSRVNTRURfUjExX0VBQzozNzQ4OCxDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDOjM3NDg5LENPTVBSRVNTRURfUkcxMV9FQUM6Mzc0OTAsQ09NUFJFU1NFRF9TSUdORURfUkcxMV9FQUM6Mzc0OTEsQ09NUFJFU1NFRF9SR0I4X0VUQzI6Mzc0OTIsQ09NUFJFU1NFRF9TUkdCOF9FVEMyOjM3NDkzLENPTVBSRVNTRURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzI6Mzc0OTQsQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzI6Mzc0OTUsQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQzozNzQ5NixDT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMyX0VBQzozNzQ5NyxURVhUVVJFX0lNTVVUQUJMRV9GT1JNQVQ6MzcxNjcsTUFYX0VMRU1FTlRfSU5ERVg6MzYyMDMsVEVYVFVSRV9JTU1VVEFCTEVfTEVWRUxTOjMzNTAzLE1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDozNDA0N30scXQ9T2JqZWN0LmZyZWV6ZShyeCl9KTt2YXIgaWUsb3QsRGU9WigoKT0+e0l0KCk7YXQoKTtIdCgpO2tzKCk7aWU9e0JZVEU6cXQuQllURSxVTlNJR05FRF9CWVRFOnF0LlVOU0lHTkVEX0JZVEUsU0hPUlQ6cXQuU0hPUlQsVU5TSUdORURfU0hPUlQ6cXQuVU5TSUdORURfU0hPUlQsSU5UOnF0LklOVCxVTlNJR05FRF9JTlQ6cXQuVU5TSUdORURfSU5ULEZMT0FUOnF0LkZMT0FULERPVUJMRTpxdC5ET1VCTEV9O2llLmdldFNpemVJbkJ5dGVzPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ2YWx1ZSBpcyByZXF1aXJlZC4iKTtzd2l0Y2godCl7Y2FzZSBpZS5CWVRFOnJldHVybiBJbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBpZS5VTlNJR05FRF9CWVRFOnJldHVybiBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2Nhc2UgaWUuU0hPUlQ6cmV0dXJuIEludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBpZS5VTlNJR05FRF9TSE9SVDpyZXR1cm4gVWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBpZS5JTlQ6cmV0dXJuIEludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBpZS5VTlNJR05FRF9JTlQ6cmV0dXJuIFVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2Nhc2UgaWUuRkxPQVQ6cmV0dXJuIEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtjYXNlIGllLkRPVUJMRTpyZXR1cm4gRmxvYXQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2RlZmF1bHQ6dGhyb3cgbmV3IEIoImNvbXBvbmVudERhdGF0eXBlIGlzIG5vdCBhIHZhbGlkIHZhbHVlLiIpfX07aWUuZnJvbVR5cGVkQXJyYXk9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIEludDhBcnJheSlyZXR1cm4gaWUuQllURTtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gaWUuVU5TSUdORURfQllURTtpZih0IGluc3RhbmNlb2YgSW50MTZBcnJheSlyZXR1cm4gaWUuU0hPUlQ7aWYodCBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KXJldHVybiBpZS5VTlNJR05FRF9TSE9SVDtpZih0IGluc3RhbmNlb2YgSW50MzJBcnJheSlyZXR1cm4gaWUuSU5UO2lmKHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheSlyZXR1cm4gaWUuVU5TSUdORURfSU5UO2lmKHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpcmV0dXJuIGllLkZMT0FUO2lmKHQgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpcmV0dXJuIGllLkRPVUJMRTt0aHJvdyBuZXcgQigiYXJyYXkgbXVzdCBiZSBhbiBJbnQ4QXJyYXksIFVpbnQ4QXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBvciBGbG9hdDY0QXJyYXkuIil9O2llLnZhbGlkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBoKHQpJiYodD09PWllLkJZVEV8fHQ9PT1pZS5VTlNJR05FRF9CWVRFfHx0PT09aWUuU0hPUlR8fHQ9PT1pZS5VTlNJR05FRF9TSE9SVHx8dD09PWllLklOVHx8dD09PWllLlVOU0lHTkVEX0lOVHx8dD09PWllLkZMT0FUfHx0PT09aWUuRE9VQkxFKX07aWUuY3JlYXRlVHlwZWRBcnJheT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJjb21wb25lbnREYXRhdHlwZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigidmFsdWVzT3JMZW5ndGggaXMgcmVxdWlyZWQuIik7c3dpdGNoKHQpe2Nhc2UgaWUuQllURTpyZXR1cm4gbmV3IEludDhBcnJheShlKTtjYXNlIGllLlVOU0lHTkVEX0JZVEU6cmV0dXJuIG5ldyBVaW50OEFycmF5KGUpO2Nhc2UgaWUuU0hPUlQ6cmV0dXJuIG5ldyBJbnQxNkFycmF5KGUpO2Nhc2UgaWUuVU5TSUdORURfU0hPUlQ6cmV0dXJuIG5ldyBVaW50MTZBcnJheShlKTtjYXNlIGllLklOVDpyZXR1cm4gbmV3IEludDMyQXJyYXkoZSk7Y2FzZSBpZS5VTlNJR05FRF9JTlQ6cmV0dXJuIG5ldyBVaW50MzJBcnJheShlKTtjYXNlIGllLkZMT0FUOnJldHVybiBuZXcgRmxvYXQzMkFycmF5KGUpO2Nhc2UgaWUuRE9VQkxFOnJldHVybiBuZXcgRmxvYXQ2NEFycmF5KGUpO2RlZmF1bHQ6dGhyb3cgbmV3IEIoImNvbXBvbmVudERhdGF0eXBlIGlzIG5vdCBhIHZhbGlkIHZhbHVlLiIpfX07aWUuY3JlYXRlQXJyYXlCdWZmZXJWaWV3PWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJjb21wb25lbnREYXRhdHlwZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigiYnVmZmVyIGlzIHJlcXVpcmVkLiIpO3N3aXRjaChuPXgobiwwKSxvPXgobywoZS5ieXRlTGVuZ3RoLW4pL2llLmdldFNpemVJbkJ5dGVzKHQpKSx0KXtjYXNlIGllLkJZVEU6cmV0dXJuIG5ldyBJbnQ4QXJyYXkoZSxuLG8pO2Nhc2UgaWUuVU5TSUdORURfQllURTpyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZSxuLG8pO2Nhc2UgaWUuU0hPUlQ6cmV0dXJuIG5ldyBJbnQxNkFycmF5KGUsbixvKTtjYXNlIGllLlVOU0lHTkVEX1NIT1JUOnJldHVybiBuZXcgVWludDE2QXJyYXkoZSxuLG8pO2Nhc2UgaWUuSU5UOnJldHVybiBuZXcgSW50MzJBcnJheShlLG4sbyk7Y2FzZSBpZS5VTlNJR05FRF9JTlQ6cmV0dXJuIG5ldyBVaW50MzJBcnJheShlLG4sbyk7Y2FzZSBpZS5GTE9BVDpyZXR1cm4gbmV3IEZsb2F0MzJBcnJheShlLG4sbyk7Y2FzZSBpZS5ET1VCTEU6cmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkoZSxuLG8pO2RlZmF1bHQ6dGhyb3cgbmV3IEIoImNvbXBvbmVudERhdGF0eXBlIGlzIG5vdCBhIHZhbGlkIHZhbHVlLiIpfX07aWUuZnJvbU5hbWU9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UiQllURSI6cmV0dXJuIGllLkJZVEU7Y2FzZSJVTlNJR05FRF9CWVRFIjpyZXR1cm4gaWUuVU5TSUdORURfQllURTtjYXNlIlNIT1JUIjpyZXR1cm4gaWUuU0hPUlQ7Y2FzZSJVTlNJR05FRF9TSE9SVCI6cmV0dXJuIGllLlVOU0lHTkVEX1NIT1JUO2Nhc2UiSU5UIjpyZXR1cm4gaWUuSU5UO2Nhc2UiVU5TSUdORURfSU5UIjpyZXR1cm4gaWUuVU5TSUdORURfSU5UO2Nhc2UiRkxPQVQiOnJldHVybiBpZS5GTE9BVDtjYXNlIkRPVUJMRSI6cmV0dXJuIGllLkRPVUJMRTtkZWZhdWx0OnRocm93IG5ldyBCKCJuYW1lIGlzIG5vdCBhIHZhbGlkIHZhbHVlLiIpfX07b3Q9T2JqZWN0LmZyZWV6ZShpZSl9KTtmdW5jdGlvbiBqdCh0LGUpe3RoaXMueD14KHQsMCksdGhpcy55PXgoZSwwKX12YXIgS2wsdzEsVDEsTzEsaXgsbnQsemU9WigoKT0+e1l0KCk7SXQoKTthdCgpO0h0KCk7V3QoKTtqdC5mcm9tRWxlbWVudHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBoKG4pPyhuLng9dCxuLnk9ZSxuKTpuZXcganQodCxlKX07anQuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLng9dC54LGUueT10LnksZSk6bmV3IGp0KHQueCx0LnkpfTtqdC5mcm9tQ2FydGVzaWFuMz1qdC5jbG9uZTtqdC5mcm9tQ2FydGVzaWFuND1qdC5jbG9uZTtqdC5wYWNrZWRMZW5ndGg9MjtqdC5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQueCxlW25dPXQueSxlfTtqdC51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcganQpLG4ueD10W2UrK10sbi55PXRbZV0sbn07anQucGFja0FycmF5PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJhcnJheSIsdCk7bGV0IG49dC5sZW5ndGgsbz1uKjI7aWYoIWgoZSkpZT1uZXcgQXJyYXkobyk7ZWxzZXtpZighQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGghPT1vKXRocm93IG5ldyBCKCJJZiByZXN1bHQgaXMgYSB0eXBlZCBhcnJheSwgaXQgbXVzdCBoYXZlIGV4YWN0bHkgYXJyYXkubGVuZ3RoICogMiBlbGVtZW50cyIpO2UubGVuZ3RoIT09byYmKGUubGVuZ3RoPW8pfWZvcihsZXQgcj0wO3I8bjsrK3IpanQucGFjayh0W3JdLGUscioyKTtyZXR1cm4gZX07anQudW5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXtpZih5LmRlZmluZWQoImFycmF5Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiYXJyYXkubGVuZ3RoIix0Lmxlbmd0aCwyKSx0Lmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgQigiYXJyYXkgbGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAyLiIpO2xldCBuPXQubGVuZ3RoO2goZSk/ZS5sZW5ndGg9bi8yOmU9bmV3IEFycmF5KG4vMik7Zm9yKGxldCBvPTA7bzxuO28rPTIpe2xldCByPW8vMjtlW3JdPWp0LnVucGFjayh0LG8sZVtyXSl9cmV0dXJuIGV9O2p0LmZyb21BcnJheT1qdC51bnBhY2s7anQubWF4aW11bUNvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLE1hdGgubWF4KHQueCx0LnkpfTtqdC5taW5pbXVtQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksTWF0aC5taW4odC54LHQueSl9O2p0Lm1pbmltdW1CeUNvbXBvbmVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZmlyc3QiLHQpLHkudHlwZU9mLm9iamVjdCgic2Vjb25kIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PU1hdGgubWluKHQueCxlLngpLG4ueT1NYXRoLm1pbih0LnksZS55KSxufTtqdC5tYXhpbXVtQnlDb21wb25lbnQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImZpcnN0Iix0KSx5LnR5cGVPZi5vYmplY3QoInNlY29uZCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD1NYXRoLm1heCh0LngsZS54KSxuLnk9TWF0aC5tYXgodC55LGUueSksbn07anQuY2xhbXA9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS50eXBlT2Yub2JqZWN0KCJtaW4iLGUpLHkudHlwZU9mLm9iamVjdCgibWF4IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyk7bGV0IHI9TS5jbGFtcCh0LngsZS54LG4ueCksaT1NLmNsYW1wKHQueSxlLnksbi55KTtyZXR1cm4gby54PXIsby55PWksb307anQubWFnbml0dWRlU3F1YXJlZD1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHQueCp0LngrdC55KnQueX07anQubWFnbml0dWRlPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoanQubWFnbml0dWRlU3F1YXJlZCh0KSl9O0tsPW5ldyBqdDtqdC5kaXN0YW5jZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLGp0LnN1YnRyYWN0KHQsZSxLbCksanQubWFnbml0dWRlKEtsKX07anQuZGlzdGFuY2VTcXVhcmVkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksanQuc3VidHJhY3QodCxlLEtsKSxqdC5tYWduaXR1ZGVTcXVhcmVkKEtsKX07anQubm9ybWFsaXplPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1qdC5tYWduaXR1ZGUodCk7aWYoZS54PXQueC9uLGUueT10Lnkvbixpc05hTihlLngpfHxpc05hTihlLnkpKXRocm93IG5ldyBCKCJub3JtYWxpemVkIHJlc3VsdCBpcyBub3QgYSBudW1iZXIiKTtyZXR1cm4gZX07anQuZG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksdC54KmUueCt0LnkqZS55fTtqdC5jcm9zcz1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHQueCplLnktdC55KmUueH07anQubXVsdGlwbHlDb21wb25lbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCplLngsbi55PXQueSplLnksbn07anQuZGl2aWRlQ29tcG9uZW50cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngvZS54LG4ueT10LnkvZS55LG59O2p0LmFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngrZS54LG4ueT10LnkrZS55LG59O2p0LnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC1lLngsbi55PXQueS1lLnksbn07anQubXVsdGlwbHlCeVNjYWxhcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxhciIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngqZSxuLnk9dC55KmUsbn07anQuZGl2aWRlQnlTY2FsYXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54L2Usbi55PXQueS9lLG59O2p0Lm5lZ2F0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGUueD0tdC54LGUueT0tdC55LGV9O2p0LmFicz1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGUueD1NYXRoLmFicyh0LngpLGUueT1NYXRoLmFicyh0LnkpLGV9O3cxPW5ldyBqdDtqdC5sZXJwPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInN0YXJ0Iix0KSx5LnR5cGVPZi5vYmplY3QoImVuZCIsZSkseS50eXBlT2YubnVtYmVyKCJ0IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksanQubXVsdGlwbHlCeVNjYWxhcihlLG4sdzEpLG89anQubXVsdGlwbHlCeVNjYWxhcih0LDEtbixvKSxqdC5hZGQodzEsbyxvKX07VDE9bmV3IGp0LE8xPW5ldyBqdDtqdC5hbmdsZUJldHdlZW49ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSxqdC5ub3JtYWxpemUodCxUMSksanQubm9ybWFsaXplKGUsTzEpLE0uYWNvc0NsYW1wZWQoanQuZG90KFQxLE8xKSl9O2l4PW5ldyBqdDtqdC5tb3N0T3J0aG9nb25hbEF4aXM9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPWp0Lm5vcm1hbGl6ZSh0LGl4KTtyZXR1cm4ganQuYWJzKG4sbiksbi54PD1uLnk/ZT1qdC5jbG9uZShqdC5VTklUX1gsZSk6ZT1qdC5jbG9uZShqdC5VTklUX1ksZSksZX07anQuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0Lng9PT1lLngmJnQueT09PWUueX07anQuZXF1YWxzQXJyYXk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0Lng9PT1lW25dJiZ0Lnk9PT1lW24rMV19O2p0LmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZNLmVxdWFsc0Vwc2lsb24odC54LGUueCxuLG8pJiZNLmVxdWFsc0Vwc2lsb24odC55LGUueSxuLG8pfTtqdC5aRVJPPU9iamVjdC5mcmVlemUobmV3IGp0KDAsMCkpO2p0Lk9ORT1PYmplY3QuZnJlZXplKG5ldyBqdCgxLDEpKTtqdC5VTklUX1g9T2JqZWN0LmZyZWV6ZShuZXcganQoMSwwKSk7anQuVU5JVF9ZPU9iamVjdC5mcmVlemUobmV3IGp0KDAsMSkpO2p0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4ganQuY2xvbmUodGhpcyx0KX07anQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4ganQuZXF1YWxzKHRoaXMsdCl9O2p0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4ganQuZXF1YWxzRXBzaWxvbih0aGlzLHQsZSxuKX07anQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMueH0sICR7dGhpcy55fSlgfTtudD1qdH0pO3ZhciBzeCxTaSxXbD1aKCgpPT57c3g9e05PTkU6MCxUUklBTkdMRVM6MSxMSU5FUzoyLFBPTFlMSU5FUzozfSxTaT1PYmplY3QuZnJlZXplKHN4KX0pO2Z1bmN0aW9uIFh0KHQsZSxuLG8pe3RoaXNbMF09eCh0LDApLHRoaXNbMV09eChuLDApLHRoaXNbMl09eChlLDApLHRoaXNbM109eChvLDApfXZhciBjeCxheCxFMSxSMSxmeCx1eCxYbyxmZj1aKCgpPT57emUoKTtZdCgpO0l0KCk7YXQoKTtIdCgpO1h0LnBhY2tlZExlbmd0aD00O1h0LnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxlW24rK109dFswXSxlW24rK109dFsxXSxlW24rK109dFsyXSxlW24rK109dFszXSxlfTtYdC51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgWHQpLG5bMF09dFtlKytdLG5bMV09dFtlKytdLG5bMl09dFtlKytdLG5bM109dFtlKytdLG59O1h0LnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiYXJyYXkiLHQpO2xldCBuPXQubGVuZ3RoLG89bio0O2lmKCFoKGUpKWU9bmV3IEFycmF5KG8pO2Vsc2V7aWYoIUFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoIT09byl0aHJvdyBuZXcgQigiSWYgcmVzdWx0IGlzIGEgdHlwZWQgYXJyYXksIGl0IG11c3QgaGF2ZSBleGFjdGx5IGFycmF5Lmxlbmd0aCAqIDQgZWxlbWVudHMiKTtlLmxlbmd0aCE9PW8mJihlLmxlbmd0aD1vKX1mb3IobGV0IHI9MDtyPG47KytyKVh0LnBhY2sodFtyXSxlLHIqNCk7cmV0dXJuIGV9O1h0LnVucGFja0FycmF5PWZ1bmN0aW9uKHQsZSl7aWYoeS5kZWZpbmVkKCJhcnJheSIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImFycmF5Lmxlbmd0aCIsdC5sZW5ndGgsNCksdC5sZW5ndGglNCE9PTApdGhyb3cgbmV3IEIoImFycmF5IGxlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNC4iKTtsZXQgbj10Lmxlbmd0aDtoKGUpP2UubGVuZ3RoPW4vNDplPW5ldyBBcnJheShuLzQpO2ZvcihsZXQgbz0wO288bjtvKz00KXtsZXQgcj1vLzQ7ZVtyXT1YdC51bnBhY2sodCxvLGVbcl0pfXJldHVybiBlfTtYdC5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlKTpuZXcgWHQodFswXSx0WzJdLHRbMV0sdFszXSl9O1h0LmZyb21BcnJheT1YdC51bnBhY2s7WHQuZnJvbUNvbHVtbk1ham9yQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5kZWZpbmVkKCJ2YWx1ZXMiLHQpLFh0LmNsb25lKHQsZSl9O1h0LmZyb21Sb3dNYWpvckFycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgidmFsdWVzIix0KSxoKGUpPyhlWzBdPXRbMF0sZVsxXT10WzJdLGVbMl09dFsxXSxlWzNdPXRbM10sZSk6bmV3IFh0KHRbMF0sdFsxXSx0WzJdLHRbM10pfTtYdC5mcm9tU2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsdCksaChlKT8oZVswXT10LngsZVsxXT0wLGVbMl09MCxlWzNdPXQueSxlKTpuZXcgWHQodC54LDAsMCx0LnkpfTtYdC5mcm9tVW5pZm9ybVNjYWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigic2NhbGUiLHQpLGgoZSk/KGVbMF09dCxlWzFdPTAsZVsyXT0wLGVbM109dCxlKTpuZXcgWHQodCwwLDAsdCl9O1h0LmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm51bWJlcigiYW5nbGUiLHQpO2xldCBuPU1hdGguY29zKHQpLG89TWF0aC5zaW4odCk7cmV0dXJuIGgoZSk/KGVbMF09bixlWzFdPW8sZVsyXT0tbyxlWzNdPW4sZSk6bmV3IFh0KG4sLW8sbyxuKX07WHQudG9BcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCksaChlKT8oZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGUpOlt0WzBdLHRbMV0sdFsyXSx0WzNdXX07WHQuZ2V0RWxlbWVudEluZGV4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJyb3ciLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoInJvdyIsZSwxKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiY29sdW1uIix0LDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJjb2x1bW4iLHQsMSksdCoyK2V9O1h0LmdldENvbHVtbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiaW5kZXgiLGUsMSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPWUqMixyPXRbb10saT10W28rMV07cmV0dXJuIG4ueD1yLG4ueT1pLG59O1h0LnNldENvbHVtbj1mdW5jdGlvbih0LGUsbixvKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwxKSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pLG89WHQuY2xvbmUodCxvKTtsZXQgcj1lKjI7cmV0dXJuIG9bcl09bi54LG9bcisxXT1uLnksb307WHQuZ2V0Um93PWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwxKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89dFtlXSxyPXRbZSsyXTtyZXR1cm4gbi54PW8sbi55PXIsbn07WHQuc2V0Um93PWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwxKSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pLG89WHQuY2xvbmUodCxvKSxvW2VdPW4ueCxvW2UrMl09bi55LG99O2N4PW5ldyBudDtYdC5zZXRTY2FsZT1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgic2NhbGUiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1YdC5nZXRTY2FsZSh0LGN4KSxyPWUueC9vLngsaT1lLnkvby55O3JldHVybiBuWzBdPXRbMF0qcixuWzFdPXRbMV0qcixuWzJdPXRbMl0qaSxuWzNdPXRbM10qaSxufTtheD1uZXcgbnQ7WHQuc2V0VW5pZm9ybVNjYWxlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPVh0LmdldFNjYWxlKHQsYXgpLHI9ZS9vLngsaT1lL28ueTtyZXR1cm4gblswXT10WzBdKnIsblsxXT10WzFdKnIsblsyXT10WzJdKmksblszXT10WzNdKmksbn07RTE9bmV3IG50O1h0LmdldFNjYWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PW50Lm1hZ25pdHVkZShudC5mcm9tRWxlbWVudHModFswXSx0WzFdLEUxKSksZS55PW50Lm1hZ25pdHVkZShudC5mcm9tRWxlbWVudHModFsyXSx0WzNdLEUxKSksZX07UjE9bmV3IG50O1h0LmdldE1heGltdW1TY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gWHQuZ2V0U2NhbGUodCxSMSksbnQubWF4aW11bUNvbXBvbmVudChSMSl9O2Z4PW5ldyBudDtYdC5zZXRSb3RhdGlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1YdC5nZXRTY2FsZSh0LGZ4KTtyZXR1cm4gblswXT1lWzBdKm8ueCxuWzFdPWVbMV0qby54LG5bMl09ZVsyXSpvLnksblszXT1lWzNdKm8ueSxufTt1eD1uZXcgbnQ7WHQuZ2V0Um90YXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPVh0LmdldFNjYWxlKHQsdXgpO3JldHVybiBlWzBdPXRbMF0vbi54LGVbMV09dFsxXS9uLngsZVsyXT10WzJdL24ueSxlWzNdPXRbM10vbi55LGV9O1h0Lm11bHRpcGx5PWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10WzBdKmVbMF0rdFsyXSplWzFdLHI9dFswXSplWzJdK3RbMl0qZVszXSxpPXRbMV0qZVswXSt0WzNdKmVbMV0scz10WzFdKmVbMl0rdFszXSplWzNdO3JldHVybiBuWzBdPW8sblsxXT1pLG5bMl09cixuWzNdPXMsbn07WHQuYWRkPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdK2VbMF0sblsxXT10WzFdK2VbMV0sblsyXT10WzJdK2VbMl0sblszXT10WzNdK2VbM10sbn07WHQuc3VidHJhY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0tZVswXSxuWzFdPXRbMV0tZVsxXSxuWzJdPXRbMl0tZVsyXSxuWzNdPXRbM10tZVszXSxufTtYdC5tdWx0aXBseUJ5VmVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10WzBdKmUueCt0WzJdKmUueSxyPXRbMV0qZS54K3RbM10qZS55O3JldHVybiBuLng9byxuLnk9cixufTtYdC5tdWx0aXBseUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdKmUsblsxXT10WzFdKmUsblsyXT10WzJdKmUsblszXT10WzNdKmUsbn07WHQubXVsdGlwbHlCeVNjYWxlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgic2NhbGUiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0qZS54LG5bMV09dFsxXSplLngsblsyXT10WzJdKmUueSxuWzNdPXRbM10qZS55LG59O1h0Lm11bHRpcGx5QnlVbmlmb3JtU2NhbGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXSplLG5bMV09dFsxXSplLG5bMl09dFsyXSplLG5bM109dFszXSplLG59O1h0Lm5lZ2F0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGVbMF09LXRbMF0sZVsxXT0tdFsxXSxlWzJdPS10WzJdLGVbM109LXRbM10sZX07WHQudHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj10WzBdLG89dFsyXSxyPXRbMV0saT10WzNdO3JldHVybiBlWzBdPW4sZVsxXT1vLGVbMl09cixlWzNdPWksZX07WHQuYWJzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZVswXT1NYXRoLmFicyh0WzBdKSxlWzFdPU1hdGguYWJzKHRbMV0pLGVbMl09TWF0aC5hYnModFsyXSksZVszXT1NYXRoLmFicyh0WzNdKSxlfTtYdC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl0mJnRbM109PT1lWzNdfTtYdC5lcXVhbHNBcnJheT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbMF09PT1lW25dJiZ0WzFdPT09ZVtuKzFdJiZ0WzJdPT09ZVtuKzJdJiZ0WzNdPT09ZVtuKzNdfTtYdC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj14KG4sMCksdD09PWV8fGgodCkmJmgoZSkmJk1hdGguYWJzKHRbMF0tZVswXSk8PW4mJk1hdGguYWJzKHRbMV0tZVsxXSk8PW4mJk1hdGguYWJzKHRbMl0tZVsyXSk8PW4mJk1hdGguYWJzKHRbM10tZVszXSk8PW59O1h0LklERU5USVRZPU9iamVjdC5mcmVlemUobmV3IFh0KDEsMCwwLDEpKTtYdC5aRVJPPU9iamVjdC5mcmVlemUobmV3IFh0KDAsMCwwLDApKTtYdC5DT0xVTU4wUk9XMD0wO1h0LkNPTFVNTjBST1cxPTE7WHQuQ09MVU1OMVJPVzA9MjtYdC5DT0xVTU4xUk9XMT0zO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFh0LnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHQucGFja2VkTGVuZ3RofX19KTtYdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIFh0LmNsb25lKHRoaXMsdCl9O1h0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIFh0LmVxdWFscyh0aGlzLHQpfTtYdC5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUpe3JldHVybiBYdC5lcXVhbHNFcHNpbG9uKHRoaXMsdCxlKX07WHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXNbMF19LCAke3RoaXNbMl19KQooJHt0aGlzWzFdfSwgJHt0aGlzWzNdfSlgfTtYbz1YdH0pO3ZhciBobyxMdCx0bj1aKCgpPT57a3MoKTtobz17UE9JTlRTOnF0LlBPSU5UUyxMSU5FUzpxdC5MSU5FUyxMSU5FX0xPT1A6cXQuTElORV9MT09QLExJTkVfU1RSSVA6cXQuTElORV9TVFJJUCxUUklBTkdMRVM6cXQuVFJJQU5HTEVTLFRSSUFOR0xFX1NUUklQOnF0LlRSSUFOR0xFX1NUUklQLFRSSUFOR0xFX0ZBTjpxdC5UUklBTkdMRV9GQU59O2hvLmlzTGluZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1oby5MSU5FU3x8dD09PWhvLkxJTkVfTE9PUHx8dD09PWhvLkxJTkVfU1RSSVB9O2hvLmlzVHJpYW5nbGVzPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09aG8uVFJJQU5HTEVTfHx0PT09aG8uVFJJQU5HTEVfU1RSSVB8fHQ9PT1oby5UUklBTkdMRV9GQU59O2hvLnZhbGlkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09aG8uUE9JTlRTfHx0PT09aG8uTElORVN8fHQ9PT1oby5MSU5FX0xPT1B8fHQ9PT1oby5MSU5FX1NUUklQfHx0PT09aG8uVFJJQU5HTEVTfHx0PT09aG8uVFJJQU5HTEVfU1RSSVB8fHQ9PT1oby5UUklBTkdMRV9GQU59O0x0PU9iamVjdC5mcmVlemUoaG8pfSk7dmFyIGVzLE1uLFlvLFMxLEMxPVooKCk9PnthdCgpO01uPXtyZXF1ZXN0RnVsbHNjcmVlbjp2b2lkIDAsZXhpdEZ1bGxzY3JlZW46dm9pZCAwLGZ1bGxzY3JlZW5FbmFibGVkOnZvaWQgMCxmdWxsc2NyZWVuRWxlbWVudDp2b2lkIDAsZnVsbHNjcmVlbmNoYW5nZTp2b2lkIDAsZnVsbHNjcmVlbmVycm9yOnZvaWQgMH0sWW89e307T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWW8se2VsZW1lbnQ6e2dldDpmdW5jdGlvbigpe2lmKFlvLnN1cHBvcnRzRnVsbHNjcmVlbigpKXJldHVybiBkb2N1bWVudFtNbi5mdWxsc2NyZWVuRWxlbWVudF19fSxjaGFuZ2VFdmVudE5hbWU6e2dldDpmdW5jdGlvbigpe2lmKFlvLnN1cHBvcnRzRnVsbHNjcmVlbigpKXJldHVybiBNbi5mdWxsc2NyZWVuY2hhbmdlfX0sZXJyb3JFdmVudE5hbWU6e2dldDpmdW5jdGlvbigpe2lmKFlvLnN1cHBvcnRzRnVsbHNjcmVlbigpKXJldHVybiBNbi5mdWxsc2NyZWVuZXJyb3J9fSxlbmFibGVkOntnZXQ6ZnVuY3Rpb24oKXtpZihZby5zdXBwb3J0c0Z1bGxzY3JlZW4oKSlyZXR1cm4gZG9jdW1lbnRbTW4uZnVsbHNjcmVlbkVuYWJsZWRdfX0sZnVsbHNjcmVlbjp7Z2V0OmZ1bmN0aW9uKCl7aWYoWW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkpcmV0dXJuIFlvLmVsZW1lbnQhPT1udWxsfX19KTtZby5zdXBwb3J0c0Z1bGxzY3JlZW49ZnVuY3Rpb24oKXtpZihoKGVzKSlyZXR1cm4gZXM7ZXM9ITE7bGV0IHQ9ZG9jdW1lbnQuYm9keTtpZih0eXBlb2YgdC5yZXF1ZXN0RnVsbHNjcmVlbj09ImZ1bmN0aW9uIilyZXR1cm4gTW4ucmVxdWVzdEZ1bGxzY3JlZW49InJlcXVlc3RGdWxsc2NyZWVuIixNbi5leGl0RnVsbHNjcmVlbj0iZXhpdEZ1bGxzY3JlZW4iLE1uLmZ1bGxzY3JlZW5FbmFibGVkPSJmdWxsc2NyZWVuRW5hYmxlZCIsTW4uZnVsbHNjcmVlbkVsZW1lbnQ9ImZ1bGxzY3JlZW5FbGVtZW50IixNbi5mdWxsc2NyZWVuY2hhbmdlPSJmdWxsc2NyZWVuY2hhbmdlIixNbi5mdWxsc2NyZWVuZXJyb3I9ImZ1bGxzY3JlZW5lcnJvciIsZXM9ITAsZXM7bGV0IGU9WyJ3ZWJraXQiLCJtb3oiLCJvIiwibXMiLCJraHRtbCJdLG47Zm9yKGxldCBvPTAscj1lLmxlbmd0aDtvPHI7KytvKXtsZXQgaT1lW29dO249YCR7aX1SZXF1ZXN0RnVsbHNjcmVlbmAsdHlwZW9mIHRbbl09PSJmdW5jdGlvbiI/KE1uLnJlcXVlc3RGdWxsc2NyZWVuPW4sZXM9ITApOihuPWAke2l9UmVxdWVzdEZ1bGxTY3JlZW5gLHR5cGVvZiB0W25dPT0iZnVuY3Rpb24iJiYoTW4ucmVxdWVzdEZ1bGxzY3JlZW49bixlcz0hMCkpLG49YCR7aX1FeGl0RnVsbHNjcmVlbmAsdHlwZW9mIGRvY3VtZW50W25dPT0iZnVuY3Rpb24iP01uLmV4aXRGdWxsc2NyZWVuPW46KG49YCR7aX1DYW5jZWxGdWxsU2NyZWVuYCx0eXBlb2YgZG9jdW1lbnRbbl09PSJmdW5jdGlvbiImJihNbi5leGl0RnVsbHNjcmVlbj1uKSksbj1gJHtpfUZ1bGxzY3JlZW5FbmFibGVkYCxkb2N1bWVudFtuXSE9PXZvaWQgMD9Nbi5mdWxsc2NyZWVuRW5hYmxlZD1uOihuPWAke2l9RnVsbFNjcmVlbkVuYWJsZWRgLGRvY3VtZW50W25dIT09dm9pZCAwJiYoTW4uZnVsbHNjcmVlbkVuYWJsZWQ9bikpLG49YCR7aX1GdWxsc2NyZWVuRWxlbWVudGAsZG9jdW1lbnRbbl0hPT12b2lkIDA/TW4uZnVsbHNjcmVlbkVsZW1lbnQ9bjoobj1gJHtpfUZ1bGxTY3JlZW5FbGVtZW50YCxkb2N1bWVudFtuXSE9PXZvaWQgMCYmKE1uLmZ1bGxzY3JlZW5FbGVtZW50PW4pKSxuPWAke2l9ZnVsbHNjcmVlbmNoYW5nZWAsZG9jdW1lbnRbYG9uJHtufWBdIT09dm9pZCAwJiYoaT09PSJtcyImJihuPSJNU0Z1bGxzY3JlZW5DaGFuZ2UiKSxNbi5mdWxsc2NyZWVuY2hhbmdlPW4pLG49YCR7aX1mdWxsc2NyZWVuZXJyb3JgLGRvY3VtZW50W2BvbiR7bn1gXSE9PXZvaWQgMCYmKGk9PT0ibXMiJiYobj0iTVNGdWxsc2NyZWVuRXJyb3IiKSxNbi5mdWxsc2NyZWVuZXJyb3I9bil9cmV0dXJuIGVzfTtZby5yZXF1ZXN0RnVsbHNjcmVlbj1mdW5jdGlvbih0LGUpe1lvLnN1cHBvcnRzRnVsbHNjcmVlbigpJiZ0W01uLnJlcXVlc3RGdWxsc2NyZWVuXSh7dnJEaXNwbGF5OmV9KX07WW8uZXhpdEZ1bGxzY3JlZW49ZnVuY3Rpb24oKXtZby5zdXBwb3J0c0Z1bGxzY3JlZW4oKSYmZG9jdW1lbnRbTW4uZXhpdEZ1bGxzY3JlZW5dKCl9O1lvLl9uYW1lcz1NbjtTMT1Zb30pO2Z1bmN0aW9uIEdzKHQpe2xldCBlPXQuc3BsaXQoIi4iKTtmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bzsrK24pZVtuXT1wYXJzZUludChlW25dLDEwKTtyZXR1cm4gZX1mdW5jdGlvbiBqbSgpe2lmKCFoKFhsKSYmKFhsPSExLCF0cCgpKSl7bGV0IHQ9LyBDaHJvbWVcLyhbXC4wLTldKykvLmV4ZWMoVG8udXNlckFnZW50KTt0IT09bnVsbCYmKFhsPSEwLHgxPUdzKHRbMV0pKX1yZXR1cm4gWGx9ZnVuY3Rpb24gbHgoKXtyZXR1cm4gam0oKSYmeDF9ZnVuY3Rpb24gTTEoKXtpZighaChZbCkmJihZbD0hMSwham0oKSYmIXRwKCkmJi8gU2FmYXJpXC9bXC4wLTldKy8udGVzdChUby51c2VyQWdlbnQpKSl7bGV0IHQ9LyBWZXJzaW9uXC8oW1wuMC05XSspLy5leGVjKFRvLnVzZXJBZ2VudCk7dCE9PW51bGwmJihZbD0hMCxQMT1Hcyh0WzFdKSl9cmV0dXJuIFlsfWZ1bmN0aW9uIHB4KCl7cmV0dXJuIE0xKCkmJlAxfWZ1bmN0aW9uIE4xKCl7aWYoIWgoJGwpKXskbD0hMTtsZXQgdD0vIEFwcGxlV2ViS2l0XC8oW1wuMC05XSspKFwrPykvLmV4ZWMoVG8udXNlckFnZW50KTt0IT09bnVsbCYmKCRsPSEwLEdtPUdzKHRbMV0pLEdtLmlzTmlnaHRseT0hIXRbMl0pfXJldHVybiAkbH1mdW5jdGlvbiBkeCgpe3JldHVybiBOMSgpJiZHbX1mdW5jdGlvbiBJMSgpe2lmKCFoKHVmKSl7dWY9ITE7bGV0IHQ7VG8uYXBwTmFtZT09PSJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiPyh0PS9NU0lFIChbMC05XXsxLH1bXC4wLTldezAsfSkvLmV4ZWMoVG8udXNlckFnZW50KSx0IT09bnVsbCYmKHVmPSEwLHptPUdzKHRbMV0pKSk6VG8uYXBwTmFtZT09PSJOZXRzY2FwZSImJih0PS9UcmlkZW50XC8uKnJ2OihbMC05XXsxLH1bXC4wLTldezAsfSkvLmV4ZWMoVG8udXNlckFnZW50KSx0IT09bnVsbCYmKHVmPSEwLHptPUdzKHRbMV0pKSl9cmV0dXJuIHVmfWZ1bmN0aW9uIG14KCl7cmV0dXJuIEkxKCkmJnptfWZ1bmN0aW9uIHRwKCl7aWYoIWgoWmwpKXtabD0hMTtsZXQgdD0vIEVkZ1wvKFtcLjAtOV0rKS8uZXhlYyhUby51c2VyQWdlbnQpO3QhPT1udWxsJiYoWmw9ITAsdjE9R3ModFsxXSkpfXJldHVybiBabH1mdW5jdGlvbiBoeCgpe3JldHVybiB0cCgpJiZ2MX1mdW5jdGlvbiBlcCgpe2lmKCFoKFFsKSl7UWw9ITE7bGV0IHQ9L0ZpcmVmb3hcLyhbXC4wLTldKykvLmV4ZWMoVG8udXNlckFnZW50KTt0IT09bnVsbCYmKFFsPSEwLEhtPUdzKHRbMV0pKX1yZXR1cm4gUWx9ZnVuY3Rpb24gX3goKXtyZXR1cm4gaChVbSl8fChVbT0vV2luZG93cy9pLnRlc3QoVG8uYXBwVmVyc2lvbikpLFVtfWZ1bmN0aW9uIHl4KCl7cmV0dXJuIGgoVm0pfHwoVm09bmF2aWdhdG9yLnBsYXRmb3JtPT09ImlQaG9uZSJ8fG5hdmlnYXRvci5wbGF0Zm9ybT09PSJpUG9kInx8bmF2aWdhdG9yLnBsYXRmb3JtPT09ImlQYWQiKSxWbX1mdW5jdGlvbiBneCgpe3JldHVybiBlcCgpJiZIbX1mdW5jdGlvbiBBeCgpe3JldHVybiBoKGttKXx8KGttPSFlcCgpJiZ0eXBlb2YgUG9pbnRlckV2ZW50PCJ1IiYmKCFoKFRvLnBvaW50ZXJFbmFibGVkKXx8VG8ucG9pbnRlckVuYWJsZWQpKSxrbX1mdW5jdGlvbiBMMSgpe2lmKCFoKEpsKSl7bGV0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO2ltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkOyIpO2xldCBlPXQuc3R5bGUuaW1hZ2VSZW5kZXJpbmc7Smw9aChlKSYmZSE9PSIiLEpsJiYoRDE9ZSl9cmV0dXJuIEpsfWZ1bmN0aW9uIGJ4KCl7cmV0dXJuIEwxKCk/RDE6dm9pZCAwfWZ1bmN0aW9uIHdvKCl7aWYoIXdvLmluaXRpYWxpemVkKXRocm93IG5ldyBCKCJZb3UgbXVzdCBjYWxsIEZlYXR1cmVEZXRlY3Rpb24uc3VwcG9ydHNXZWJQLmluaXRpYWxpemUgYW5kIHdhaXQgZm9yIHRoZSBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNhbGxpbmcgRmVhdHVyZURldGVjdGlvbi5zdXBwb3J0c1dlYlAiKTtyZXR1cm4gd28uX3Jlc3VsdH12YXIgVG8sWGwseDEsWWwsUDEsJGwsR20sdWYsem0sWmwsdjEsUWwsSG0sVW0sVm0sa20sRDEsSmwsV2MsX3IsenMscW09WigoKT0+e1l0KCk7SXQoKTthdCgpO0h0KCk7QzEoKTt0eXBlb2YgbmF2aWdhdG9yPCJ1Ij9Ubz1uYXZpZ2F0b3I6VG89e307d28uX3Byb21pc2U9dm9pZCAwO3dvLl9yZXN1bHQ9dm9pZCAwO3dvLmluaXRpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gaCh3by5fcHJvbWlzZSl8fCh3by5fcHJvbWlzZT1uZXcgUHJvbWlzZSh0PT57bGV0IGU9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7d28uX3Jlc3VsdD1lLndpZHRoPjAmJmUuaGVpZ2h0PjAsdCh3by5fcmVzdWx0KX0sZS5vbmVycm9yPWZ1bmN0aW9uKCl7d28uX3Jlc3VsdD0hMSx0KHdvLl9yZXN1bHQpfSxlLnNyYz0iZGF0YTppbWFnZS93ZWJwO2Jhc2U2NCxVa2xHUmlJQUFBQlhSVUpRVmxBNElCWUFBQUF3QVFDZEFTb0JBQUVBRHNEK0phUUFBM0FBQUFBQSJ9KSksd28uX3Byb21pc2V9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHdvLHtpbml0aWFsaXplZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgod28uX3Jlc3VsdCl9fX0pO1djPVtdO3R5cGVvZiBBcnJheUJ1ZmZlcjwidSImJihXYy5wdXNoKEludDhBcnJheSxVaW50OEFycmF5LEludDE2QXJyYXksVWludDE2QXJyYXksSW50MzJBcnJheSxVaW50MzJBcnJheSxGbG9hdDMyQXJyYXksRmxvYXQ2NEFycmF5KSx0eXBlb2YgVWludDhDbGFtcGVkQXJyYXk8InUiJiZXYy5wdXNoKFVpbnQ4Q2xhbXBlZEFycmF5KSx0eXBlb2YgVWludDhDbGFtcGVkQXJyYXk8InUiJiZXYy5wdXNoKFVpbnQ4Q2xhbXBlZEFycmF5KSx0eXBlb2YgQmlnSW50NjRBcnJheTwidSImJldjLnB1c2goQmlnSW50NjRBcnJheSksdHlwZW9mIEJpZ1VpbnQ2NEFycmF5PCJ1IiYmV2MucHVzaChCaWdVaW50NjRBcnJheSkpO19yPXtpc0Nocm9tZTpqbSxjaHJvbWVWZXJzaW9uOmx4LGlzU2FmYXJpOk0xLHNhZmFyaVZlcnNpb246cHgsaXNXZWJraXQ6TjEsd2Via2l0VmVyc2lvbjpkeCxpc0ludGVybmV0RXhwbG9yZXI6STEsaW50ZXJuZXRFeHBsb3JlclZlcnNpb246bXgsaXNFZGdlOnRwLGVkZ2VWZXJzaW9uOmh4LGlzRmlyZWZveDplcCxmaXJlZm94VmVyc2lvbjpneCxpc1dpbmRvd3M6X3gsaXNJUGFkT3JJT1M6eXgsaGFyZHdhcmVDb25jdXJyZW5jeTp4KFRvLmhhcmR3YXJlQ29uY3VycmVuY3ksMyksc3VwcG9ydHNQb2ludGVyRXZlbnRzOkF4LHN1cHBvcnRzSW1hZ2VSZW5kZXJpbmdQaXhlbGF0ZWQ6TDEsc3VwcG9ydHNXZWJQOndvLGltYWdlUmVuZGVyaW5nVmFsdWU6YngsdHlwZWRBcnJheVR5cGVzOldjfTtfci5zdXBwb3J0c0Jhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBfci5zdXBwb3J0c1dlYkFzc2VtYmx5KCkmJnQuY29udGV4dC5zdXBwb3J0c0Jhc2lzfTtfci5zdXBwb3J0c0Z1bGxzY3JlZW49ZnVuY3Rpb24oKXtyZXR1cm4gUzEuc3VwcG9ydHNGdWxsc2NyZWVuKCl9O19yLnN1cHBvcnRzVHlwZWRBcnJheXM9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1In07X3Iuc3VwcG9ydHNCaWdJbnQ2NEFycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBCaWdJbnQ2NEFycmF5PCJ1In07X3Iuc3VwcG9ydHNCaWdVaW50NjRBcnJheT1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgQmlnVWludDY0QXJyYXk8InUifTtfci5zdXBwb3J0c0JpZ0ludD1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgQmlnSW50PCJ1In07X3Iuc3VwcG9ydHNXZWJXb3JrZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBXb3JrZXI8InUifTtfci5zdXBwb3J0c1dlYkFzc2VtYmx5PWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBXZWJBc3NlbWJseTwidSJ9O19yLnN1cHBvcnRzV2ViZ2wyPWZ1bmN0aW9uKHQpe3JldHVybiB5LmRlZmluZWQoInNjZW5lIix0KSx0LmNvbnRleHQud2ViZ2wyfTtfci5zdXBwb3J0c0VzbVdlYldvcmtlcnM9ZnVuY3Rpb24oKXtyZXR1cm4hZXAoKXx8cGFyc2VJbnQoSG0pPj0xMTR9O3pzPV9yfSk7ZnVuY3Rpb24gRXQodCxlLG4sbyl7dGhpcy54PXgodCwwKSx0aGlzLnk9eChlLDApLHRoaXMuej14KG4sMCksdGhpcy53PXgobywwKX12YXIgbGYsd3gsVHgsRjEsQjEsS20sVTEsbnAsV20sTHIsVjEsb3AsWG0sazEsWW0sJG0sT3gsRXgscGYsWGMsUngsRzEscnAsaXAsQ2kseGksbmUsJG89WigoKT0+e1V0KCk7WXQoKTtJdCgpO2F0KCk7cW0oKTtXdCgpO0ZuKCk7bGY9bmV3IGE7RXQuZnJvbUF4aXNBbmdsZT1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJheGlzIix0KSx5LnR5cGVPZi5udW1iZXIoImFuZ2xlIixlKTtsZXQgbz1lLzIscj1NYXRoLnNpbihvKTtsZj1hLm5vcm1hbGl6ZSh0LGxmKTtsZXQgaT1sZi54KnIscz1sZi55KnIsZj1sZi56KnIsdT1NYXRoLmNvcyhvKTtyZXR1cm4gaChuKT8obi54PWksbi55PXMsbi56PWYsbi53PXUsbik6bmV3IEV0KGkscyxmLHUpfTt3eD1bMSwyLDBdLFR4PW5ldyBBcnJheSgzKTtFdC5mcm9tUm90YXRpb25NYXRyaXg9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCk7bGV0IG4sbyxyLGkscyxmPXRbdHQuQ09MVU1OMFJPVzBdLHU9dFt0dC5DT0xVTU4xUk9XMV0sYz10W3R0LkNPTFVNTjJST1cyXSxsPWYrdStjO2lmKGw+MCluPU1hdGguc3FydChsKzEpLHM9LjUqbixuPS41L24sbz0odFt0dC5DT0xVTU4xUk9XMl0tdFt0dC5DT0xVTU4yUk9XMV0pKm4scj0odFt0dC5DT0xVTU4yUk9XMF0tdFt0dC5DT0xVTU4wUk9XMl0pKm4saT0odFt0dC5DT0xVTU4wUk9XMV0tdFt0dC5DT0xVTU4xUk9XMF0pKm47ZWxzZXtsZXQgcD13eCxkPTA7dT5mJiYoZD0xKSxjPmYmJmM+dSYmKGQ9Mik7bGV0IG09cFtkXSxfPXBbbV07bj1NYXRoLnNxcnQodFt0dC5nZXRFbGVtZW50SW5kZXgoZCxkKV0tdFt0dC5nZXRFbGVtZW50SW5kZXgobSxtKV0tdFt0dC5nZXRFbGVtZW50SW5kZXgoXyxfKV0rMSk7bGV0IGc9VHg7Z1tkXT0uNSpuLG49LjUvbixzPSh0W3R0LmdldEVsZW1lbnRJbmRleChfLG0pXS10W3R0LmdldEVsZW1lbnRJbmRleChtLF8pXSkqbixnW21dPSh0W3R0LmdldEVsZW1lbnRJbmRleChtLGQpXSt0W3R0LmdldEVsZW1lbnRJbmRleChkLG0pXSkqbixnW19dPSh0W3R0LmdldEVsZW1lbnRJbmRleChfLGQpXSt0W3R0LmdldEVsZW1lbnRJbmRleChkLF8pXSkqbixvPS1nWzBdLHI9LWdbMV0saT0tZ1syXX1yZXR1cm4gaChlKT8oZS54PW8sZS55PXIsZS56PWksZS53PXMsZSk6bmV3IEV0KG8scixpLHMpfTtGMT1uZXcgRXQsQjE9bmV3IEV0LEttPW5ldyBFdCxVMT1uZXcgRXQ7RXQuZnJvbUhlYWRpbmdQaXRjaFJvbGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJoZWFkaW5nUGl0Y2hSb2xsIix0KSxVMT1FdC5mcm9tQXhpc0FuZ2xlKGEuVU5JVF9YLHQucm9sbCxGMSksS209RXQuZnJvbUF4aXNBbmdsZShhLlVOSVRfWSwtdC5waXRjaCxlKSxlPUV0Lm11bHRpcGx5KEttLFUxLEttKSxCMT1FdC5mcm9tQXhpc0FuZ2xlKGEuVU5JVF9aLC10LmhlYWRpbmcsRjEpLEV0Lm11bHRpcGx5KEIxLGUsZSl9O25wPW5ldyBhLFdtPW5ldyBhLExyPW5ldyBFdCxWMT1uZXcgRXQsb3A9bmV3IEV0O0V0LnBhY2tlZExlbmd0aD00O0V0LnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxlW24rK109dC54LGVbbisrXT10LnksZVtuKytdPXQueixlW25dPXQudyxlfTtFdC51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgRXQpLG4ueD10W2VdLG4ueT10W2UrMV0sbi56PXRbZSsyXSxuLnc9dFtlKzNdLG59O0V0LnBhY2tlZEludGVycG9sYXRpb25MZW5ndGg9MztFdC5jb252ZXJ0UGFja2VkQXJyYXlGb3JJbnRlcnBvbGF0aW9uPWZ1bmN0aW9uKHQsZSxuLG8pe0V0LnVucGFjayh0LG4qNCxvcCksRXQuY29uanVnYXRlKG9wLG9wKTtmb3IobGV0IHI9MCxpPW4tZSsxO3I8aTtyKyspe2xldCBzPXIqMztFdC51bnBhY2sodCwoZStyKSo0LExyKSxFdC5tdWx0aXBseShMcixvcCxMciksTHIudzwwJiZFdC5uZWdhdGUoTHIsTHIpLEV0LmNvbXB1dGVBeGlzKExyLG5wKTtsZXQgZj1FdC5jb21wdXRlQW5nbGUoTHIpO2gobyl8fChvPVtdKSxvW3NdPW5wLngqZixvW3MrMV09bnAueSpmLG9bcysyXT1ucC56KmZ9fTtFdC51bnBhY2tJbnRlcnBvbGF0aW9uUmVzdWx0PWZ1bmN0aW9uKHQsZSxuLG8scil7aChyKXx8KHI9bmV3IEV0KSxhLmZyb21BcnJheSh0LDAsV20pO2xldCBpPWEubWFnbml0dWRlKFdtKTtyZXR1cm4gRXQudW5wYWNrKGUsbyo0LFYxKSxpPT09MD9FdC5jbG9uZShFdC5JREVOVElUWSxMcik6RXQuZnJvbUF4aXNBbmdsZShXbSxpLExyKSxFdC5tdWx0aXBseShMcixWMSxyKX07RXQuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLng9dC54LGUueT10LnksZS56PXQueixlLnc9dC53LGUpOm5ldyBFdCh0LngsdC55LHQueix0LncpfTtFdC5jb25qdWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJxdWF0ZXJuaW9uIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PS10LngsZS55PS10LnksZS56PS10LnosZS53PXQudyxlfTtFdC5tYWduaXR1ZGVTcXVhcmVkPWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInF1YXRlcm5pb24iLHQpLHQueCp0LngrdC55KnQueSt0LnoqdC56K3Qudyp0Lnd9O0V0Lm1hZ25pdHVkZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KEV0Lm1hZ25pdHVkZVNxdWFyZWQodCkpfTtFdC5ub3JtYWxpemU9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49MS9FdC5tYWduaXR1ZGUodCksbz10LngqbixyPXQueSpuLGk9dC56Km4scz10LncqbjtyZXR1cm4gZS54PW8sZS55PXIsZS56PWksZS53PXMsZX07RXQuaW52ZXJzZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1FdC5tYWduaXR1ZGVTcXVhcmVkKHQpO3JldHVybiBlPUV0LmNvbmp1Z2F0ZSh0LGUpLEV0Lm11bHRpcGx5QnlTY2FsYXIoZSwxL24sZSl9O0V0LmFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngrZS54LG4ueT10LnkrZS55LG4uej10LnorZS56LG4udz10LncrZS53LG59O0V0LnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC1lLngsbi55PXQueS1lLnksbi56PXQuei1lLnosbi53PXQudy1lLncsbn07RXQubmVnYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicXVhdGVybmlvbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGUueD0tdC54LGUueT0tdC55LGUuej0tdC56LGUudz0tdC53LGV9O0V0LmRvdD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHQueCplLngrdC55KmUueSt0LnoqZS56K3QudyplLnd9O0V0Lm11bHRpcGx5PWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10Lngscj10LnksaT10Lnoscz10LncsZj1lLngsdT1lLnksYz1lLnosbD1lLncscD1zKmYrbypsK3IqYy1pKnUsZD1zKnUtbypjK3IqbCtpKmYsbT1zKmMrbyp1LXIqZitpKmwsXz1zKmwtbypmLXIqdS1pKmM7cmV0dXJuIG4ueD1wLG4ueT1kLG4uej1tLG4udz1fLG59O0V0Lm11bHRpcGx5QnlTY2FsYXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInF1YXRlcm5pb24iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCplLG4ueT10LnkqZSxuLno9dC56KmUsbi53PXQudyplLG59O0V0LmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJxdWF0ZXJuaW9uIix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxhciIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngvZSxuLnk9dC55L2Usbi56PXQuei9lLG4udz10LncvZSxufTtFdC5jb21wdXRlQXhpcz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgicXVhdGVybmlvbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXQudztpZihNYXRoLmFicyhuLTEpPE0uRVBTSUxPTjYpcmV0dXJuIGUueD1lLnk9ZS56PTAsZTtsZXQgbz0xL01hdGguc3FydCgxLW4qbik7cmV0dXJuIGUueD10LngqbyxlLnk9dC55Km8sZS56PXQueipvLGV9O0V0LmNvbXB1dGVBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJxdWF0ZXJuaW9uIix0KSxNYXRoLmFicyh0LnctMSk8TS5FUFNJTE9ONj8wOjIqTWF0aC5hY29zKHQudyl9O1htPW5ldyBFdDtFdC5sZXJwPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInN0YXJ0Iix0KSx5LnR5cGVPZi5vYmplY3QoImVuZCIsZSkseS50eXBlT2YubnVtYmVyKCJ0IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksWG09RXQubXVsdGlwbHlCeVNjYWxhcihlLG4sWG0pLG89RXQubXVsdGlwbHlCeVNjYWxhcih0LDEtbixvKSxFdC5hZGQoWG0sbyxvKX07azE9bmV3IEV0LFltPW5ldyBFdCwkbT1uZXcgRXQ7RXQuc2xlcnA9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJzdGFydCIsdCkseS50eXBlT2Yub2JqZWN0KCJlbmQiLGUpLHkudHlwZU9mLm51bWJlcigidCIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pO2xldCByPUV0LmRvdCh0LGUpLGk9ZTtpZihyPDAmJihyPS1yLGk9azE9RXQubmVnYXRlKGUsazEpKSwxLXI8TS5FUFNJTE9ONilyZXR1cm4gRXQubGVycCh0LGksbixvKTtsZXQgcz1NYXRoLmFjb3Mocik7cmV0dXJuIFltPUV0Lm11bHRpcGx5QnlTY2FsYXIodCxNYXRoLnNpbigoMS1uKSpzKSxZbSksJG09RXQubXVsdGlwbHlCeVNjYWxhcihpLE1hdGguc2luKG4qcyksJG0pLG89RXQuYWRkKFltLCRtLG8pLEV0Lm11bHRpcGx5QnlTY2FsYXIobywxL01hdGguc2luKHMpLG8pfTtFdC5sb2c9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInF1YXRlcm5pb24iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1NLmFjb3NDbGFtcGVkKHQudyksbz0wO3JldHVybiBuIT09MCYmKG89bi9NYXRoLnNpbihuKSksYS5tdWx0aXBseUJ5U2NhbGFyKHQsbyxlKX07RXQuZXhwPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1hLm1hZ25pdHVkZSh0KSxvPTA7cmV0dXJuIG4hPT0wJiYobz1NYXRoLnNpbihuKS9uKSxlLng9dC54Km8sZS55PXQueSpvLGUuej10LnoqbyxlLnc9TWF0aC5jb3MobiksZX07T3g9bmV3IGEsRXg9bmV3IGEscGY9bmV3IEV0LFhjPW5ldyBFdDtFdC5jb21wdXRlSW5uZXJRdWFkcmFuZ2xlPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgicTAiLHQpLHkudHlwZU9mLm9iamVjdCgicTEiLGUpLHkudHlwZU9mLm9iamVjdCgicTIiLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKTtsZXQgcj1FdC5jb25qdWdhdGUoZSxwZik7RXQubXVsdGlwbHkocixuLFhjKTtsZXQgaT1FdC5sb2coWGMsT3gpO0V0Lm11bHRpcGx5KHIsdCxYYyk7bGV0IHM9RXQubG9nKFhjLEV4KTtyZXR1cm4gYS5hZGQoaSxzLGkpLGEubXVsdGlwbHlCeVNjYWxhcihpLC4yNSxpKSxhLm5lZ2F0ZShpLGkpLEV0LmV4cChpLHBmKSxFdC5tdWx0aXBseShlLHBmLG8pfTtFdC5zcXVhZD1mdW5jdGlvbih0LGUsbixvLHIsaSl7eS50eXBlT2Yub2JqZWN0KCJxMCIsdCkseS50eXBlT2Yub2JqZWN0KCJxMSIsZSkseS50eXBlT2Yub2JqZWN0KCJzMCIsbikseS50eXBlT2Yub2JqZWN0KCJzMSIsbykseS50eXBlT2YubnVtYmVyKCJ0IixyKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsaSk7bGV0IHM9RXQuc2xlcnAodCxlLHIscGYpLGY9RXQuc2xlcnAobixvLHIsWGMpO3JldHVybiBFdC5zbGVycChzLGYsMipyKigxLXIpLGkpfTtSeD1uZXcgRXQsRzE9MS45MDExMDc0NTM1MTczMDAzLHJwPXpzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdLGlwPXpzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdLENpPXpzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdLHhpPXpzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdO2ZvcihsZXQgdD0wO3Q8NzsrK3Qpe2xldCBlPXQrMSxuPTIqZSsxO3JwW3RdPTEvKGUqbiksaXBbdF09ZS9ufXJwWzddPUcxLyg4KjE3KTtpcFs3XT1HMSo4LzE3O0V0LmZhc3RTbGVycD1mdW5jdGlvbih0LGUsbixvKXt5LnR5cGVPZi5vYmplY3QoInN0YXJ0Iix0KSx5LnR5cGVPZi5vYmplY3QoImVuZCIsZSkseS50eXBlT2YubnVtYmVyKCJ0IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyk7bGV0IHI9RXQuZG90KHQsZSksaTtyPj0wP2k9MTooaT0tMSxyPS1yKTtsZXQgcz1yLTEsZj0xLW4sdT1uKm4sYz1mKmY7Zm9yKGxldCBtPTc7bT49MDstLW0pQ2lbbV09KHJwW21dKnUtaXBbbV0pKnMseGlbbV09KHJwW21dKmMtaXBbbV0pKnM7bGV0IGw9aSpuKigxK0NpWzBdKigxK0NpWzFdKigxK0NpWzJdKigxK0NpWzNdKigxK0NpWzRdKigxK0NpWzVdKigxK0NpWzZdKigxK0NpWzddKSkpKSkpKSkscD1mKigxK3hpWzBdKigxK3hpWzFdKigxK3hpWzJdKigxK3hpWzNdKigxK3hpWzRdKigxK3hpWzVdKigxK3hpWzZdKigxK3hpWzddKSkpKSkpKSksZD1FdC5tdWx0aXBseUJ5U2NhbGFyKHQscCxSeCk7cmV0dXJuIEV0Lm11bHRpcGx5QnlTY2FsYXIoZSxsLG8pLEV0LmFkZChkLG8sbyl9O0V0LmZhc3RTcXVhZD1mdW5jdGlvbih0LGUsbixvLHIsaSl7eS50eXBlT2Yub2JqZWN0KCJxMCIsdCkseS50eXBlT2Yub2JqZWN0KCJxMSIsZSkseS50eXBlT2Yub2JqZWN0KCJzMCIsbikseS50eXBlT2Yub2JqZWN0KCJzMSIsbykseS50eXBlT2YubnVtYmVyKCJ0IixyKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsaSk7bGV0IHM9RXQuZmFzdFNsZXJwKHQsZSxyLHBmKSxmPUV0LmZhc3RTbGVycChuLG8scixYYyk7cmV0dXJuIEV0LmZhc3RTbGVycChzLGYsMipyKigxLXIpLGkpfTtFdC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQueD09PWUueCYmdC55PT09ZS55JiZ0Lno9PT1lLnomJnQudz09PWUud307RXQuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG49eChuLDApLHQ9PT1lfHxoKHQpJiZoKGUpJiZNYXRoLmFicyh0LngtZS54KTw9biYmTWF0aC5hYnModC55LWUueSk8PW4mJk1hdGguYWJzKHQuei1lLnopPD1uJiZNYXRoLmFicyh0LnctZS53KTw9bn07RXQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyBFdCgwLDAsMCwwKSk7RXQuSURFTlRJVFk9T2JqZWN0LmZyZWV6ZShuZXcgRXQoMCwwLDAsMSkpO0V0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gRXQuY2xvbmUodGhpcyx0KX07RXQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gRXQuZXF1YWxzKHRoaXMsdCl9O0V0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEV0LmVxdWFsc0Vwc2lsb24odGhpcyx0LGUpfTtFdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5gKCR7dGhpcy54fSwgJHt0aGlzLnl9LCAke3RoaXMuen0sICR7dGhpcy53fSlgfTtuZT1FdH0pO2Z1bmN0aW9uIFN4KHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSx5LmRlZmluZWQoIml0ZW1Ub0ZpbmQiLGUpLHkuZGVmaW5lZCgiY29tcGFyYXRvciIsbik7bGV0IG89MCxyPXQubGVuZ3RoLTEsaSxzO2Zvcig7bzw9cjspe2lmKGk9fn4oKG8rcikvMikscz1uKHRbaV0sZSksczwwKXtvPWkrMTtjb250aW51ZX1pZihzPjApe3I9aS0xO2NvbnRpbnVlfXJldHVybiBpfXJldHVybn4ocisxKX12YXIganMsWm09WigoKT0+e1l0KCk7anM9U3h9KTtmdW5jdGlvbiBDeCh0LGUsbixvLHIpe3RoaXMueFBvbGVXYW5kZXI9dCx0aGlzLnlQb2xlV2FuZGVyPWUsdGhpcy54UG9sZU9mZnNldD1uLHRoaXMueVBvbGVPZmZzZXQ9byx0aGlzLnV0MU1pbnVzVXRjPXJ9dmFyIGRmLFFtPVooKCk9PntkZj1DeH0pO2Z1bmN0aW9uIHh4KHQsZSxuLG8scixpLHMsZil7dGhpcy55ZWFyPXQsdGhpcy5tb250aD1lLHRoaXMuZGF5PW4sdGhpcy5ob3VyPW8sdGhpcy5taW51dGU9cix0aGlzLnNlY29uZD1pLHRoaXMubWlsbGlzZWNvbmQ9cyx0aGlzLmlzTGVhcFNlY29uZD1mfXZhciBzcCx6MT1aKCgpPT57c3A9eHh9KTtmdW5jdGlvbiBQeCh0KXtpZih0PT09bnVsbHx8aXNOYU4odCkpdGhyb3cgbmV3IEIoInllYXIgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBudW1iZXIuIik7cmV0dXJuIHQlND09PTAmJnQlMTAwIT09MHx8dCU0MDA9PT0wfXZhciBKbSxqMT1aKCgpPT57SHQoKTtKbT1QeH0pO2Z1bmN0aW9uIE14KHQsZSl7dGhpcy5qdWxpYW5EYXRlPXQsdGhpcy5vZmZzZXQ9ZX12YXIgV2UsdGg9WigoKT0+e1dlPU14fSk7dmFyIE54LF9uLGNwPVooKCk9PntOeD17U0VDT05EU19QRVJfTUlMTElTRUNPTkQ6LjAwMSxTRUNPTkRTX1BFUl9NSU5VVEU6NjAsTUlOVVRFU19QRVJfSE9VUjo2MCxIT1VSU19QRVJfREFZOjI0LFNFQ09ORFNfUEVSX0hPVVI6MzYwMCxNSU5VVEVTX1BFUl9EQVk6MTQ0MCxTRUNPTkRTX1BFUl9EQVk6ODY0MDAsREFZU19QRVJfSlVMSUFOX0NFTlRVUlk6MzY1MjUsUElDT1NFQ09ORDoxZS05LE1PRElGSUVEX0pVTElBTl9EQVRFX0RJRkZFUkVOQ0U6MjQwMDAwMDVlLTF9LF9uPU9iamVjdC5mcmVlemUoTngpfSk7dmFyIEl4LE9lLGFwPVooKCk9PntJeD17VVRDOjAsVEFJOjF9LE9lPU9iamVjdC5mcmVlemUoSXgpfSk7ZnVuY3Rpb24gZWgodCxlKXtyZXR1cm4gR3QuY29tcGFyZSh0Lmp1bGlhbkRhdGUsZS5qdWxpYW5EYXRlKX1mdW5jdGlvbiBwcCh0KXtZYy5qdWxpYW5EYXRlPXQ7bGV0IGU9R3QubGVhcFNlY29uZHMsbj1qcyhlLFljLGVoKTtuPDAmJihuPX5uKSxuPj1lLmxlbmd0aCYmKG49ZS5sZW5ndGgtMSk7bGV0IG89ZVtuXS5vZmZzZXQ7bj4wJiZHdC5zZWNvbmRzRGlmZmVyZW5jZShlW25dLmp1bGlhbkRhdGUsdCk+byYmKG4tLSxvPWVbbl0ub2Zmc2V0KSxHdC5hZGRTZWNvbmRzKHQsbyx0KX1mdW5jdGlvbiBIMSh0LGUpe1ljLmp1bGlhbkRhdGU9dDtsZXQgbj1HdC5sZWFwU2Vjb25kcyxvPWpzKG4sWWMsZWgpO2lmKG88MCYmKG89fm8pLG89PT0wKXJldHVybiBHdC5hZGRTZWNvbmRzKHQsLW5bMF0ub2Zmc2V0LGUpO2lmKG8+PW4ubGVuZ3RoKXJldHVybiBHdC5hZGRTZWNvbmRzKHQsLW5bby0xXS5vZmZzZXQsZSk7bGV0IHI9R3Quc2Vjb25kc0RpZmZlcmVuY2UobltvXS5qdWxpYW5EYXRlLHQpO2lmKHI9PT0wKXJldHVybiBHdC5hZGRTZWNvbmRzKHQsLW5bb10ub2Zmc2V0LGUpO2lmKCEocjw9MSkpcmV0dXJuIEd0LmFkZFNlY29uZHModCwtblstLW9dLm9mZnNldCxlKX1mdW5jdGlvbiBucyh0LGUsbil7bGV0IG89ZS9fbi5TRUNPTkRTX1BFUl9EQVl8MDtyZXR1cm4gdCs9byxlLT1fbi5TRUNPTkRTX1BFUl9EQVkqbyxlPDAmJih0LS0sZSs9X24uU0VDT05EU19QRVJfREFZKSxuLmRheU51bWJlcj10LG4uc2Vjb25kc09mRGF5PWUsbn1mdW5jdGlvbiBuaCh0LGUsbixvLHIsaSxzKXtsZXQgZj0oZS0xNCkvMTJ8MCx1PXQrNDgwMCtmLGM9KDE0NjEqdS80fDApKygzNjcqKGUtMi0xMipmKS8xMnwwKS0oMyooKHUrMTAwKS8xMDB8MCkvNHwwKStuLTMyMDc1O289by0xMixvPDAmJihvKz0yNCk7bGV0IGw9aSsobypfbi5TRUNPTkRTX1BFUl9IT1VSK3IqX24uU0VDT05EU19QRVJfTUlOVVRFK3MqX24uU0VDT05EU19QRVJfTUlMTElTRUNPTkQpO3JldHVybiBsPj00MzIwMCYmKGMtPTEpLFtjLGxdfWZ1bmN0aW9uIEd0KHQsZSxuKXt0aGlzLmRheU51bWJlcj12b2lkIDAsdGhpcy5zZWNvbmRzT2ZEYXk9dm9pZCAwLHQ9eCh0LDApLGU9eChlLDApLG49eChuLE9lLlVUQyk7bGV0IG89dHwwO2U9ZSsodC1vKSpfbi5TRUNPTkRTX1BFUl9EQVksbnMobyxlLHRoaXMpLG49PT1PZS5VVEMmJnBwKHRoaXMpfXZhciBxMSxmcCx1cCxZYyx2eCxEeCxMeCxGeCxCeCxvaCxVeCxWeCxreCxGcixscCxpbyxkcD1aKCgpPT57Wm0oKTtJdCgpO2F0KCk7SHQoKTt6MSgpO2oxKCk7dGgoKTtjcCgpO2FwKCk7cTE9bmV3IHNwLGZwPVszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sdXA9Mjk7WWM9bmV3IFdlO3Z4PS9eKFxkezR9KSQvLER4PS9eKFxkezR9KS0oXGR7Mn0pJC8sTHg9L14oXGR7NH0pLT8oXGR7M30pJC8sRng9L14oXGR7NH0pLT9XKFxkezJ9KS0/KFxkezF9KT8kLyxCeD0vXihcZHs0fSktPyhcZHsyfSktPyhcZHsyfSkkLyxvaD0vKFtaK1wtXSk/KFxkezJ9KT86PyhcZHsyfSk/JC8sVXg9L14oXGR7Mn0pKFwuXGQrKT8vLnNvdXJjZStvaC5zb3VyY2UsVng9L14oXGR7Mn0pOj8oXGR7Mn0pKFwuXGQrKT8vLnNvdXJjZStvaC5zb3VyY2Usa3g9L14oXGR7Mn0pOj8oXGR7Mn0pOj8oXGR7Mn0pKFwuXGQrKT8vLnNvdXJjZStvaC5zb3VyY2UsRnI9IkludmFsaWQgSVNPIDg2MDEgZGF0ZS4iO0d0LmZyb21HcmVnb3JpYW5EYXRlPWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2Ygc3ApKXRocm93IG5ldyBCKCJkYXRlIG11c3QgYmUgYSB2YWxpZCBHcmVnb3JpYW5EYXRlLiIpO2xldCBuPW5oKHQueWVhcix0Lm1vbnRoLHQuZGF5LHQuaG91cix0Lm1pbnV0ZSx0LnNlY29uZCx0Lm1pbGxpc2Vjb25kKTtyZXR1cm4gaChlKT8obnMoblswXSxuWzFdLGUpLHBwKGUpLGUpOm5ldyBHdChuWzBdLG5bMV0sT2UuVVRDKX07R3QuZnJvbURhdGU9ZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBEYXRlKXx8aXNOYU4odC5nZXRUaW1lKCkpKXRocm93IG5ldyBCKCJkYXRlIG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IERhdGUuIik7bGV0IG49bmgodC5nZXRVVENGdWxsWWVhcigpLHQuZ2V0VVRDTW9udGgoKSsxLHQuZ2V0VVRDRGF0ZSgpLHQuZ2V0VVRDSG91cnMoKSx0LmdldFVUQ01pbnV0ZXMoKSx0LmdldFVUQ1NlY29uZHMoKSx0LmdldFVUQ01pbGxpc2Vjb25kcygpKTtyZXR1cm4gaChlKT8obnMoblswXSxuWzFdLGUpLHBwKGUpLGUpOm5ldyBHdChuWzBdLG5bMV0sT2UuVVRDKX07R3QuZnJvbUlzbzg2MDE9ZnVuY3Rpb24odCxlKXtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IEIoRnIpO3Q9dC5yZXBsYWNlKCIsIiwiLiIpO2xldCBuPXQuc3BsaXQoIlQiKSxvLHI9MSxpPTEscz0wLGY9MCx1PTAsYz0wLGw9blswXSxwPW5bMV0sZCxtO2lmKCFoKGwpKXRocm93IG5ldyBCKEZyKTtsZXQgXztpZihuPWwubWF0Y2goQngpLG4hPT1udWxsKXtpZihfPWwuc3BsaXQoIi0iKS5sZW5ndGgtMSxfPjAmJl8hPT0yKXRocm93IG5ldyBCKEZyKTtvPStuWzFdLHI9K25bMl0saT0rblszXX1lbHNlIGlmKG49bC5tYXRjaChEeCksbiE9PW51bGwpbz0rblsxXSxyPStuWzJdO2Vsc2UgaWYobj1sLm1hdGNoKHZ4KSxuIT09bnVsbClvPStuWzFdO2Vsc2V7bGV0IFQ7aWYobj1sLm1hdGNoKEx4KSxuIT09bnVsbCl7aWYobz0rblsxXSxUPStuWzJdLG09Sm0obyksVDwxfHxtJiZUPjM2Nnx8IW0mJlQ+MzY1KXRocm93IG5ldyBCKEZyKX1lbHNlIGlmKG49bC5tYXRjaChGeCksbiE9PW51bGwpe289K25bMV07bGV0IEU9K25bMl0sdz0rblszXXx8MDtpZihfPWwuc3BsaXQoIi0iKS5sZW5ndGgtMSxfPjAmJighaChuWzNdKSYmXyE9PTF8fGgoblszXSkmJl8hPT0yKSl0aHJvdyBuZXcgQihGcik7bGV0IEM9bmV3IERhdGUoRGF0ZS5VVEMobywwLDQpKTtUPUUqNyt3LUMuZ2V0VVRDRGF5KCktM31lbHNlIHRocm93IG5ldyBCKEZyKTtkPW5ldyBEYXRlKERhdGUuVVRDKG8sMCwxKSksZC5zZXRVVENEYXRlKFQpLHI9ZC5nZXRVVENNb250aCgpKzEsaT1kLmdldFVUQ0RhdGUoKX1pZihtPUptKG8pLHI8MXx8cj4xMnx8aTwxfHwociE9PTJ8fCFtKSYmaT5mcFtyLTFdfHxtJiZyPT09MiYmaT51cCl0aHJvdyBuZXcgQihGcik7bGV0IGc7aWYoaChwKSl7aWYobj1wLm1hdGNoKGt4KSxuIT09bnVsbCl7aWYoXz1wLnNwbGl0KCI6IikubGVuZ3RoLTEsXz4wJiZfIT09MiYmXyE9PTMpdGhyb3cgbmV3IEIoRnIpO3M9K25bMV0sZj0rblsyXSx1PStuWzNdLGM9KyhuWzRdfHwwKSoxZTMsZz01fWVsc2UgaWYobj1wLm1hdGNoKFZ4KSxuIT09bnVsbCl7aWYoXz1wLnNwbGl0KCI6IikubGVuZ3RoLTEsXz4yKXRocm93IG5ldyBCKEZyKTtzPStuWzFdLGY9K25bMl0sdT0rKG5bM118fDApKjYwLGc9NH1lbHNlIGlmKG49cC5tYXRjaChVeCksbiE9PW51bGwpcz0rblsxXSxmPSsoblsyXXx8MCkqNjAsZz0zO2Vsc2UgdGhyb3cgbmV3IEIoRnIpO2lmKGY+PTYwfHx1Pj02MXx8cz4yNHx8cz09PTI0JiYoZj4wfHx1PjB8fGM+MCkpdGhyb3cgbmV3IEIoRnIpO2xldCBUPW5bZ10sRT0rbltnKzFdLHc9KyhuW2crMl18fDApO3N3aXRjaChUKXtjYXNlIisiOnM9cy1FLGY9Zi13O2JyZWFrO2Nhc2UiLSI6cz1zK0UsZj1mK3c7YnJlYWs7Y2FzZSJaIjpicmVhaztkZWZhdWx0OmY9ZituZXcgRGF0ZShEYXRlLlVUQyhvLHItMSxpLHMsZikpLmdldFRpbWV6b25lT2Zmc2V0KCk7YnJlYWt9fWxldCBiPXU9PT02MDtmb3IoYiYmdS0tO2Y+PTYwOylmLT02MCxzKys7Zm9yKDtzPj0yNDspcy09MjQsaSsrO2ZvcihkPW0mJnI9PT0yP3VwOmZwW3ItMV07aT5kOylpLT1kLHIrKyxyPjEyJiYoci09MTIsbysrKSxkPW0mJnI9PT0yP3VwOmZwW3ItMV07Zm9yKDtmPDA7KWYrPTYwLHMtLTtmb3IoO3M8MDspcys9MjQsaS0tO2Zvcig7aTwxOylyLS0scjwxJiYocis9MTIsby0tKSxkPW0mJnI9PT0yP3VwOmZwW3ItMV0saSs9ZDtsZXQgTz1uaChvLHIsaSxzLGYsdSxjKTtyZXR1cm4gaChlKT8obnMoT1swXSxPWzFdLGUpLHBwKGUpKTplPW5ldyBHdChPWzBdLE9bMV0sT2UuVVRDKSxiJiZHdC5hZGRTZWNvbmRzKGUsMSxlKSxlfTtHdC5ub3c9ZnVuY3Rpb24odCl7cmV0dXJuIEd0LmZyb21EYXRlKG5ldyBEYXRlLHQpfTtscD1uZXcgR3QoMCwwLE9lLlRBSSk7R3QudG9HcmVnb3JpYW5EYXRlPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImp1bGlhbkRhdGUgaXMgcmVxdWlyZWQuIik7bGV0IG49ITEsbz1IMSh0LGxwKTtoKG8pfHwoR3QuYWRkU2Vjb25kcyh0LC0xLGxwKSxvPUgxKGxwLGxwKSxuPSEwKTtsZXQgcj1vLmRheU51bWJlcixpPW8uc2Vjb25kc09mRGF5O2k+PTQzMjAwJiYocis9MSk7bGV0IHM9cis2ODU2OXwwLGY9NCpzLzE0NjA5N3wwO3M9cy0oKDE0NjA5NypmKzMpLzR8MCl8MDtsZXQgdT00ZTMqKHMrMSkvMTQ2MTAwMXwwO3M9cy0oMTQ2MSp1LzR8MCkrMzF8MDtsZXQgYz04MCpzLzI0NDd8MCxsPXMtKDI0NDcqYy84MHwwKXwwO3M9Yy8xMXwwO2xldCBwPWMrMi0xMipzfDAsZD0xMDAqKGYtNDkpK3Urc3wwLG09aS9fbi5TRUNPTkRTX1BFUl9IT1VSfDAsXz1pLW0qX24uU0VDT05EU19QRVJfSE9VUixnPV8vX24uU0VDT05EU19QRVJfTUlOVVRFfDA7Xz1fLWcqX24uU0VDT05EU19QRVJfTUlOVVRFO2xldCBiPV98MCxPPShfLWIpL19uLlNFQ09ORFNfUEVSX01JTExJU0VDT05EO3JldHVybiBtKz0xMixtPjIzJiYobS09MjQpLG4mJihiKz0xKSxoKGUpPyhlLnllYXI9ZCxlLm1vbnRoPXAsZS5kYXk9bCxlLmhvdXI9bSxlLm1pbnV0ZT1nLGUuc2Vjb25kPWIsZS5taWxsaXNlY29uZD1PLGUuaXNMZWFwU2Vjb25kPW4sZSk6bmV3IHNwKGQscCxsLG0sZyxiLE8sbil9O0d0LnRvRGF0ZT1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtsZXQgZT1HdC50b0dyZWdvcmlhbkRhdGUodCxxMSksbj1lLnNlY29uZDtyZXR1cm4gZS5pc0xlYXBTZWNvbmQmJihuLT0xKSxuZXcgRGF0ZShEYXRlLlVUQyhlLnllYXIsZS5tb250aC0xLGUuZGF5LGUuaG91cixlLm1pbnV0ZSxuLGUubWlsbGlzZWNvbmQpKX07R3QudG9Jc284NjAxPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImp1bGlhbkRhdGUgaXMgcmVxdWlyZWQuIik7bGV0IG49R3QudG9HcmVnb3JpYW5EYXRlKHQscTEpLG89bi55ZWFyLHI9bi5tb250aCxpPW4uZGF5LHM9bi5ob3VyLGY9bi5taW51dGUsdT1uLnNlY29uZCxjPW4ubWlsbGlzZWNvbmQ7bz09PTFlNCYmcj09PTEmJmk9PT0xJiZzPT09MCYmZj09PTAmJnU9PT0wJiZjPT09MCYmKG89OTk5OSxyPTEyLGk9MzEscz0yNCk7bGV0IGw7cmV0dXJuIWgoZSkmJmMhPT0wPyhsPShjKi4wMSkudG9TdHJpbmcoKS5yZXBsYWNlKCIuIiwiIiksYCR7by50b1N0cmluZygpLnBhZFN0YXJ0KDQsIjAiKX0tJHtyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2kudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9VCR7cy50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtmLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke3UudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LiR7bH1aYCk6IWgoZSl8fGU9PT0wP2Ake28udG9TdHJpbmcoKS5wYWRTdGFydCg0LCIwIil9LSR7ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHtpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfVQke3MudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7Zi50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHt1LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfVpgOihsPShjKi4wMSkudG9GaXhlZChlKS5yZXBsYWNlKCIuIiwiIikuc2xpY2UoMCxlKSxgJHtvLnRvU3RyaW5nKCkucGFkU3RhcnQoNCwiMCIpfS0ke3IudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7aS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1UJHtzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke2YudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7dS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0uJHtsfVpgKX07R3QuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLmRheU51bWJlcj10LmRheU51bWJlcixlLnNlY29uZHNPZkRheT10LnNlY29uZHNPZkRheSxlKTpuZXcgR3QodC5kYXlOdW1iZXIsdC5zZWNvbmRzT2ZEYXksT2UuVEFJKX07R3QuY29tcGFyZT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJsZWZ0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJyaWdodCBpcyByZXF1aXJlZC4iKTtsZXQgbj10LmRheU51bWJlci1lLmRheU51bWJlcjtyZXR1cm4gbiE9PTA/bjp0LnNlY29uZHNPZkRheS1lLnNlY29uZHNPZkRheX07R3QuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0LmRheU51bWJlcj09PWUuZGF5TnVtYmVyJiZ0LnNlY29uZHNPZkRheT09PWUuc2Vjb25kc09mRGF5fTtHdC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj14KG4sMCksdD09PWV8fGgodCkmJmgoZSkmJk1hdGguYWJzKEd0LnNlY29uZHNEaWZmZXJlbmNlKHQsZSkpPD1ufTtHdC50b3RhbERheXM9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImp1bGlhbkRhdGUgaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQuZGF5TnVtYmVyK3Quc2Vjb25kc09mRGF5L19uLlNFQ09ORFNfUEVSX0RBWX07R3Quc2Vjb25kc0RpZmZlcmVuY2U9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigibGVmdCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigicmlnaHQgaXMgcmVxdWlyZWQuIik7cmV0dXJuKHQuZGF5TnVtYmVyLWUuZGF5TnVtYmVyKSpfbi5TRUNPTkRTX1BFUl9EQVkrKHQuc2Vjb25kc09mRGF5LWUuc2Vjb25kc09mRGF5KX07R3QuZGF5c0RpZmZlcmVuY2U9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigibGVmdCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigicmlnaHQgaXMgcmVxdWlyZWQuIik7bGV0IG49dC5kYXlOdW1iZXItZS5kYXlOdW1iZXIsbz0odC5zZWNvbmRzT2ZEYXktZS5zZWNvbmRzT2ZEYXkpL19uLlNFQ09ORFNfUEVSX0RBWTtyZXR1cm4gbitvfTtHdC5jb21wdXRlVGFpTWludXNVdGM9ZnVuY3Rpb24odCl7WWMuanVsaWFuRGF0ZT10O2xldCBlPUd0LmxlYXBTZWNvbmRzLG49anMoZSxZYyxlaCk7cmV0dXJuIG48MCYmKG49fm4sLS1uLG48MCYmKG49MCkpLGVbbl0ub2Zmc2V0fTtHdC5hZGRTZWNvbmRzPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigic2Vjb25kcyBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigicmVzdWx0IGlzIHJlcXVpcmVkLiIpO3JldHVybiBucyh0LmRheU51bWJlcix0LnNlY29uZHNPZkRheStlLG4pfTtHdC5hZGRNaW51dGVzPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigibWludXRlcyBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigicmVzdWx0IGlzIHJlcXVpcmVkLiIpO2xldCBvPXQuc2Vjb25kc09mRGF5K2UqX24uU0VDT05EU19QRVJfTUlOVVRFO3JldHVybiBucyh0LmRheU51bWJlcixvLG4pfTtHdC5hZGRIb3Vycz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImp1bGlhbkRhdGUgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImhvdXJzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJyZXN1bHQgaXMgcmVxdWlyZWQuIik7bGV0IG89dC5zZWNvbmRzT2ZEYXkrZSpfbi5TRUNPTkRTX1BFUl9IT1VSO3JldHVybiBucyh0LmRheU51bWJlcixvLG4pfTtHdC5hZGREYXlzPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigiZGF5cyBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigicmVzdWx0IGlzIHJlcXVpcmVkLiIpO2xldCBvPXQuZGF5TnVtYmVyK2U7cmV0dXJuIG5zKG8sdC5zZWNvbmRzT2ZEYXksbil9O0d0Lmxlc3NUaGFuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEd0LmNvbXBhcmUodCxlKTwwfTtHdC5sZXNzVGhhbk9yRXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEd0LmNvbXBhcmUodCxlKTw9MH07R3QuZ3JlYXRlclRoYW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3QuY29tcGFyZSh0LGUpPjB9O0d0LmdyZWF0ZXJUaGFuT3JFcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3QuY29tcGFyZSh0LGUpPj0wfTtHdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIEd0LmNsb25lKHRoaXMsdCl9O0d0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIEd0LmVxdWFscyh0aGlzLHQpfTtHdC5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUpe3JldHVybiBHdC5lcXVhbHNFcHNpbG9uKHRoaXMsdCxlKX07R3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEd0LnRvSXNvODYwMSh0aGlzKX07R3QubGVhcFNlY29uZHM9W25ldyBXZShuZXcgR3QoMjQ0MTMxNyw0MzIxMCxPZS5UQUkpLDEwKSxuZXcgV2UobmV3IEd0KDI0NDE0OTksNDMyMTEsT2UuVEFJKSwxMSksbmV3IFdlKG5ldyBHdCgyNDQxNjgzLDQzMjEyLE9lLlRBSSksMTIpLG5ldyBXZShuZXcgR3QoMjQ0MjA0OCw0MzIxMyxPZS5UQUkpLDEzKSxuZXcgV2UobmV3IEd0KDI0NDI0MTMsNDMyMTQsT2UuVEFJKSwxNCksbmV3IFdlKG5ldyBHdCgyNDQyNzc4LDQzMjE1LE9lLlRBSSksMTUpLG5ldyBXZShuZXcgR3QoMjQ0MzE0NCw0MzIxNixPZS5UQUkpLDE2KSxuZXcgV2UobmV3IEd0KDI0NDM1MDksNDMyMTcsT2UuVEFJKSwxNyksbmV3IFdlKG5ldyBHdCgyNDQzODc0LDQzMjE4LE9lLlRBSSksMTgpLG5ldyBXZShuZXcgR3QoMjQ0NDIzOSw0MzIxOSxPZS5UQUkpLDE5KSxuZXcgV2UobmV3IEd0KDI0NDQ3ODYsNDMyMjAsT2UuVEFJKSwyMCksbmV3IFdlKG5ldyBHdCgyNDQ1MTUxLDQzMjIxLE9lLlRBSSksMjEpLG5ldyBXZShuZXcgR3QoMjQ0NTUxNiw0MzIyMixPZS5UQUkpLDIyKSxuZXcgV2UobmV3IEd0KDI0NDYyNDcsNDMyMjMsT2UuVEFJKSwyMyksbmV3IFdlKG5ldyBHdCgyNDQ3MTYxLDQzMjI0LE9lLlRBSSksMjQpLG5ldyBXZShuZXcgR3QoMjQ0Nzg5Miw0MzIyNSxPZS5UQUkpLDI1KSxuZXcgV2UobmV3IEd0KDI0NDgyNTcsNDMyMjYsT2UuVEFJKSwyNiksbmV3IFdlKG5ldyBHdCgyNDQ4ODA0LDQzMjI3LE9lLlRBSSksMjcpLG5ldyBXZShuZXcgR3QoMjQ0OTE2OSw0MzIyOCxPZS5UQUkpLDI4KSxuZXcgV2UobmV3IEd0KDI0NDk1MzQsNDMyMjksT2UuVEFJKSwyOSksbmV3IFdlKG5ldyBHdCgyNDUwMDgzLDQzMjMwLE9lLlRBSSksMzApLG5ldyBXZShuZXcgR3QoMjQ1MDYzMCw0MzIzMSxPZS5UQUkpLDMxKSxuZXcgV2UobmV3IEd0KDI0NTExNzksNDMyMzIsT2UuVEFJKSwzMiksbmV3IFdlKG5ldyBHdCgyNDUzNzM2LDQzMjMzLE9lLlRBSSksMzMpLG5ldyBXZShuZXcgR3QoMjQ1NDgzMiw0MzIzNCxPZS5UQUkpLDM0KSxuZXcgV2UobmV3IEd0KDI0NTYxMDksNDMyMzUsT2UuVEFJKSwzNSksbmV3IFdlKG5ldyBHdCgyNDU3MjA0LDQzMjM2LE9lLlRBSSksMzYpLG5ldyBXZShuZXcgR3QoMjQ1Nzc1NCw0MzIzNyxPZS5UQUkpLDM3KV07aW89R3R9KTt2YXIgSzE9VW4oKCRjLFpjKT0+ey8qISBodHRwczovL210aHMuYmUvcHVueWNvZGUgdjEuNC4wIGJ5IEBtYXRoaWFzICovKGZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiAkYz09Im9iamVjdCImJiRjJiYhJGMubm9kZVR5cGUmJiRjLG49dHlwZW9mIFpjPT0ib2JqZWN0IiYmWmMmJiFaYy5ub2RlVHlwZSYmWmMsbz10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsOyhvLmdsb2JhbD09PW98fG8ud2luZG93PT09b3x8by5zZWxmPT09bykmJih0PW8pO3ZhciByLGk9MjE0NzQ4MzY0NyxzPTM2LGY9MSx1PTI2LGM9MzgsbD03MDAscD03MixkPTEyOCxtPSItIixfPS9eeG4tLS8sZz0vW15ceDIwLVx4N0VdLyxiPS9bXHgyRVx1MzAwMlx1RkYwRVx1RkY2MV0vZyxPPXtvdmVyZmxvdzoiT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MiLCJub3QtYmFzaWMiOiJJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpIiwiaW52YWxpZC1pbnB1dCI6IkludmFsaWQgaW5wdXQifSxUPXMtZixFPU1hdGguZmxvb3Isdz1TdHJpbmcuZnJvbUNoYXJDb2RlLEM7ZnVuY3Rpb24gTihrKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihPW2tdKX1mdW5jdGlvbiBJKGssSyl7Zm9yKHZhciBYPWsubGVuZ3RoLFI9W107WC0tOylSW1hdPUsoa1tYXSk7cmV0dXJuIFJ9ZnVuY3Rpb24gTChrLEspe3ZhciBYPWsuc3BsaXQoIkAiKSxSPSIiO1gubGVuZ3RoPjEmJihSPVhbMF0rIkAiLGs9WFsxXSksaz1rLnJlcGxhY2UoYiwiLiIpO3ZhciBRPWsuc3BsaXQoIi4iKSxmdD1JKFEsSykuam9pbigiLiIpO3JldHVybiBSK2Z0fWZ1bmN0aW9uIHYoayl7Zm9yKHZhciBLPVtdLFg9MCxSPWsubGVuZ3RoLFEsZnQ7WDxSOylRPWsuY2hhckNvZGVBdChYKyspLFE+PTU1Mjk2JiZRPD01NjMxOSYmWDxSPyhmdD1rLmNoYXJDb2RlQXQoWCsrKSwoZnQmNjQ1MTIpPT01NjMyMD9LLnB1c2goKChRJjEwMjMpPDwxMCkrKGZ0JjEwMjMpKzY1NTM2KTooSy5wdXNoKFEpLFgtLSkpOksucHVzaChRKTtyZXR1cm4gS31mdW5jdGlvbiBEKGspe3JldHVybiBJKGssZnVuY3Rpb24oSyl7dmFyIFg9IiI7cmV0dXJuIEs+NjU1MzUmJihLLT02NTUzNixYKz13KEs+Pj4xMCYxMDIzfDU1Mjk2KSxLPTU2MzIwfEsmMTAyMyksWCs9dyhLKSxYfSkuam9pbigiIil9ZnVuY3Rpb24gVShrKXtyZXR1cm4gay00ODwxMD9rLTIyOmstNjU8MjY/ay02NTprLTk3PDI2P2stOTc6c31mdW5jdGlvbiBBKGssSyl7cmV0dXJuIGsrMjIrNzUqKGs8MjYpLSgoSyE9MCk8PDUpfWZ1bmN0aW9uIFMoayxLLFgpe3ZhciBSPTA7Zm9yKGs9WD9FKGsvbCk6az4+MSxrKz1FKGsvSyk7az5UKnU+PjE7Uis9cylrPUUoay9UKTtyZXR1cm4gRShSKyhUKzEpKmsvKGsrYykpfWZ1bmN0aW9uIFAoayl7dmFyIEs9W10sWD1rLmxlbmd0aCxSLFE9MCxmdD1kLHB0PXAsZ3QsaXQsTnQsT3QseHQsX3QsZHQsVnQsenQ7Zm9yKGd0PWsubGFzdEluZGV4T2YobSksZ3Q8MCYmKGd0PTApLGl0PTA7aXQ8Z3Q7KytpdClrLmNoYXJDb2RlQXQoaXQpPj0xMjgmJk4oIm5vdC1iYXNpYyIpLEsucHVzaChrLmNoYXJDb2RlQXQoaXQpKTtmb3IoTnQ9Z3Q+MD9ndCsxOjA7TnQ8WDspe2ZvcihPdD1RLHh0PTEsX3Q9cztOdD49WCYmTigiaW52YWxpZC1pbnB1dCIpLGR0PVUoay5jaGFyQ29kZUF0KE50KyspKSwoZHQ+PXN8fGR0PkUoKGktUSkveHQpKSYmTigib3ZlcmZsb3ciKSxRKz1kdCp4dCxWdD1fdDw9cHQ/ZjpfdD49cHQrdT91Ol90LXB0LCEoZHQ8VnQpO190Kz1zKXp0PXMtVnQseHQ+RShpL3p0KSYmTigib3ZlcmZsb3ciKSx4dCo9enQ7Uj1LLmxlbmd0aCsxLHB0PVMoUS1PdCxSLE90PT0wKSxFKFEvUik+aS1mdCYmTigib3ZlcmZsb3ciKSxmdCs9RShRL1IpLFElPVIsSy5zcGxpY2UoUSsrLDAsZnQpfXJldHVybiBEKEspfWZ1bmN0aW9uIEYoayl7dmFyIEssWCxSLFEsZnQscHQsZ3QsaXQsTnQsT3QseHQsX3Q9W10sZHQsVnQsenQsaGU7Zm9yKGs9dihrKSxkdD1rLmxlbmd0aCxLPWQsWD0wLGZ0PXAscHQ9MDtwdDxkdDsrK3B0KXh0PWtbcHRdLHh0PDEyOCYmX3QucHVzaCh3KHh0KSk7Zm9yKFI9UT1fdC5sZW5ndGgsUSYmX3QucHVzaChtKTtSPGR0Oyl7Zm9yKGd0PWkscHQ9MDtwdDxkdDsrK3B0KXh0PWtbcHRdLHh0Pj1LJiZ4dDxndCYmKGd0PXh0KTtmb3IoVnQ9UisxLGd0LUs+RSgoaS1YKS9WdCkmJk4oIm92ZXJmbG93IiksWCs9KGd0LUspKlZ0LEs9Z3QscHQ9MDtwdDxkdDsrK3B0KWlmKHh0PWtbcHRdLHh0PEsmJisrWD5pJiZOKCJvdmVyZmxvdyIpLHh0PT1LKXtmb3IoaXQ9WCxOdD1zO090PU50PD1mdD9mOk50Pj1mdCt1P3U6TnQtZnQsIShpdDxPdCk7TnQrPXMpaGU9aXQtT3QsenQ9cy1PdCxfdC5wdXNoKHcoQShPdCtoZSV6dCwwKSkpLGl0PUUoaGUvenQpO190LnB1c2godyhBKGl0LDApKSksZnQ9UyhYLFZ0LFI9PVEpLFg9MCwrK1J9KytYLCsrS31yZXR1cm4gX3Quam9pbigiIil9ZnVuY3Rpb24gaihrKXtyZXR1cm4gTChrLGZ1bmN0aW9uKEspe3JldHVybiBfLnRlc3QoSyk/UChLLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOkt9KX1mdW5jdGlvbiBIKGspe3JldHVybiBMKGssZnVuY3Rpb24oSyl7cmV0dXJuIGcudGVzdChLKT8ieG4tLSIrRihLKTpLfSl9aWYocj17dmVyc2lvbjoiMS4zLjIiLHVjczI6e2RlY29kZTp2LGVuY29kZTpEfSxkZWNvZGU6UCxlbmNvZGU6Rix0b0FTQ0lJOkgsdG9Vbmljb2RlOmp9LHR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJnR5cGVvZiBkZWZpbmUuYW1kPT0ib2JqZWN0IiYmZGVmaW5lLmFtZClkZWZpbmUoInB1bnljb2RlIixmdW5jdGlvbigpe3JldHVybiByfSk7ZWxzZSBpZihlJiZuKWlmKFpjLmV4cG9ydHM9PWUpbi5leHBvcnRzPXI7ZWxzZSBmb3IoQyBpbiByKXIuaGFzT3duUHJvcGVydHkoQykmJihlW0NdPXJbQ10pO2Vsc2UgdC5wdW55Y29kZT1yfSkoJGMpfSk7dmFyIFgxPVVuKChXMSxtcCk9PnsvKiEKICogVVJJLmpzIC0gTXV0YXRpbmcgVVJMcwogKiBJUHY2IFN1cHBvcnQKICoKICogVmVyc2lvbjogMS4xOS4xMQogKgogKiBBdXRob3I6IFJvZG5leSBSZWhtCiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzLwogKgogKiBMaWNlbnNlZCB1bmRlcgogKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UKICoKICovKGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3R5cGVvZiBtcD09Im9iamVjdCImJm1wLmV4cG9ydHM/bXAuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6dC5JUHY2PWUodCl9KShXMSxmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9dCYmdC5JUHY2O2Z1bmN0aW9uIG4ocil7dmFyIGk9ci50b0xvd2VyQ2FzZSgpLHM9aS5zcGxpdCgiOiIpLGY9cy5sZW5ndGgsdT04O3NbMF09PT0iIiYmc1sxXT09PSIiJiZzWzJdPT09IiI/KHMuc2hpZnQoKSxzLnNoaWZ0KCkpOnNbMF09PT0iIiYmc1sxXT09PSIiP3Muc2hpZnQoKTpzW2YtMV09PT0iIiYmc1tmLTJdPT09IiImJnMucG9wKCksZj1zLmxlbmd0aCxzW2YtMV0uaW5kZXhPZigiLiIpIT09LTEmJih1PTcpO3ZhciBjO2ZvcihjPTA7YzxmJiZzW2NdIT09IiI7YysrKTtpZihjPHUpZm9yKHMuc3BsaWNlKGMsMSwiMDAwMCIpO3MubGVuZ3RoPHU7KXMuc3BsaWNlKGMsMCwiMDAwMCIpO2Zvcih2YXIgbCxwPTA7cDx1O3ArKyl7bD1zW3BdLnNwbGl0KCIiKTtmb3IodmFyIGQ9MDtkPDMmJihsWzBdPT09IjAiJiZsLmxlbmd0aD4xKTtkKyspbC5zcGxpY2UoMCwxKTtzW3BdPWwuam9pbigiIil9dmFyIG09LTEsXz0wLGc9MCxiPS0xLE89ITE7Zm9yKHA9MDtwPHU7cCsrKU8/c1twXT09PSIwIj9nKz0xOihPPSExLGc+XyYmKG09YixfPWcpKTpzW3BdPT09IjAiJiYoTz0hMCxiPXAsZz0xKTtnPl8mJihtPWIsXz1nKSxfPjEmJnMuc3BsaWNlKG0sXywiIiksZj1zLmxlbmd0aDt2YXIgVD0iIjtmb3Ioc1swXT09PSIiJiYoVD0iOiIpLHA9MDtwPGYmJihUKz1zW3BdLHAhPT1mLTEpO3ArKylUKz0iOiI7cmV0dXJuIHNbZi0xXT09PSIiJiYoVCs9IjoiKSxUfWZ1bmN0aW9uIG8oKXtyZXR1cm4gdC5JUHY2PT09dGhpcyYmKHQuSVB2Nj1lKSx0aGlzfXJldHVybntiZXN0Om4sbm9Db25mbGljdDpvfX0pfSk7dmFyICQxPVVuKChZMSxocCk9PnsvKiEKICogVVJJLmpzIC0gTXV0YXRpbmcgVVJMcwogKiBTZWNvbmQgTGV2ZWwgRG9tYWluIChTTEQpIFN1cHBvcnQKICoKICogVmVyc2lvbjogMS4xOS4xMQogKgogKiBBdXRob3I6IFJvZG5leSBSZWhtCiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzLwogKgogKiBMaWNlbnNlZCB1bmRlcgogKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UKICoKICovKGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3R5cGVvZiBocD09Im9iamVjdCImJmhwLmV4cG9ydHM/aHAuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6dC5TZWNvbmRMZXZlbERvbWFpbnM9ZSh0KX0pKFkxLGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT10JiZ0LlNlY29uZExldmVsRG9tYWlucyxuPXtsaXN0OnthYzoiIGNvbSBnb3YgbWlsIG5ldCBvcmcgIixhZToiIGFjIGNvIGdvdiBtaWwgbmFtZSBuZXQgb3JnIHBybyBzY2ggIixhZjoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixhbDoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsYW86IiBjbyBlZCBndiBpdCBvZyBwYiAiLGFyOiIgY29tIGVkdSBnb2IgZ292IGludCBtaWwgbmV0IG9yZyB0dXIgIixhdDoiIGFjIGNvIGd2IG9yICIsYXU6IiBhc24gY29tIGNzaXJvIGVkdSBnb3YgaWQgbmV0IG9yZyAiLGJhOiIgY28gY29tIGVkdSBnb3YgbWlsIG5ldCBvcmcgcnMgdW5iaSB1bm1vIHVuc2EgdW50eiB1bnplICIsYmI6IiBiaXogY28gY29tIGVkdSBnb3YgaW5mbyBuZXQgb3JnIHN0b3JlIHR2ICIsYmg6IiBiaXogY2MgY29tIGVkdSBnb3YgaW5mbyBuZXQgb3JnICIsYm46IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsYm86IiBjb20gZWR1IGdvYiBnb3YgaW50IG1pbCBuZXQgb3JnIHR2ICIsYnI6IiBhZG0gYWR2IGFnciBhbSBhcnEgYXJ0IGF0byBiIGJpbyBibG9nIGJtZCBjaW0gY25nIGNudCBjb20gY29vcCBlY24gZWR1IGVuZyBlc3AgZXRjIGV0aSBmYXIgZmxvZyBmbSBmbmQgZm90IGZzdCBnMTIgZ2dmIGdvdiBpbWIgaW5kIGluZiBqb3IganVzIGxlbCBtYXQgbWVkIG1pbCBtdXMgbmV0IG5vbSBub3QgbnRyIG9kbyBvcmcgcHBnIHBybyBwc2MgcHNpIHFzbCByZWMgc2xnIHNydiB0bXAgdHJkIHR1ciB0diB2ZXQgdmxvZyB3aWtpIHpsZyAiLGJzOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLGJ6OiIgZHUgZXQgb20gb3YgcmcgIixjYToiIGFiIGJjIG1iIG5iIG5mIG5sIG5zIG50IG51IG9uIHBlIHFjIHNrIHlrICIsY2s6IiBiaXogY28gZWR1IGdlbiBnb3YgaW5mbyBuZXQgb3JnICIsY246IiBhYyBhaCBiaiBjb20gY3EgZWR1IGZqIGdkIGdvdiBncyBneCBneiBoYSBoYiBoZSBoaSBobCBobiBqbCBqcyBqeCBsbiBtaWwgbmV0IG5tIG54IG9yZyBxaCBzYyBzZCBzaCBzbiBzeCB0aiB0dyB4aiB4eiB5biB6aiAiLGNvOiIgY29tIGVkdSBnb3YgbWlsIG5ldCBub20gb3JnICIsY3I6IiBhYyBjIGNvIGVkIGZpIGdvIG9yIHNhICIsY3k6IiBhYyBiaXogY29tIGVrbG9nZXMgZ292IGx0ZCBuYW1lIG5ldCBvcmcgcGFybGlhbWVudCBwcmVzcyBwcm8gdG0gIixkbzoiIGFydCBjb20gZWR1IGdvYiBnb3YgbWlsIG5ldCBvcmcgc2xkIHdlYiAiLGR6OiIgYXJ0IGFzc28gY29tIGVkdSBnb3YgbmV0IG9yZyBwb2wgIixlYzoiIGNvbSBlZHUgZmluIGdvdiBpbmZvIG1lZCBtaWwgbmV0IG9yZyBwcm8gIixlZzoiIGNvbSBlZHUgZXVuIGdvdiBtaWwgbmFtZSBuZXQgb3JnIHNjaSAiLGVyOiIgY29tIGVkdSBnb3YgaW5kIG1pbCBuZXQgb3JnIHJvY2hlc3QgdyAiLGVzOiIgY29tIGVkdSBnb2Igbm9tIG9yZyAiLGV0OiIgYml6IGNvbSBlZHUgZ292IGluZm8gbmFtZSBuZXQgb3JnICIsZmo6IiBhYyBiaXogY29tIGluZm8gbWlsIG5hbWUgbmV0IG9yZyBwcm8gIixmazoiIGFjIGNvIGdvdiBuZXQgbm9tIG9yZyAiLGZyOiIgYXNzbyBjb20gZiBnb3V2IG5vbSBwcmQgcHJlc3NlIHRtICIsZ2c6IiBjbyBuZXQgb3JnICIsZ2g6IiBjb20gZWR1IGdvdiBtaWwgb3JnICIsZ246IiBhYyBjb20gZ292IG5ldCBvcmcgIixncjoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsZ3Q6IiBjb20gZWR1IGdvYiBpbmQgbWlsIG5ldCBvcmcgIixndToiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixoazoiIGNvbSBlZHUgZ292IGlkdiBuZXQgb3JnICIsaHU6IiAyMDAwIGFncmFyIGJvbHQgY2FzaW5vIGNpdHkgY28gZXJvdGljYSBlcm90aWthIGZpbG0gZm9ydW0gZ2FtZXMgaG90ZWwgaW5mbyBpbmdhdGxhbiBqb2dhc3oga29ueXZlbG8gbGFrYXMgbWVkaWEgbmV3cyBvcmcgcHJpdiByZWtsYW0gc2V4IHNob3Agc3BvcnQgc3VsaSBzemV4IHRtIHRvenNkZSB1dGF6YXMgdmlkZW8gIixpZDoiIGFjIGNvIGdvIG1pbCBuZXQgb3Igc2NoIHdlYiAiLGlsOiIgYWMgY28gZ292IGlkZiBrMTIgbXVuaSBuZXQgb3JnICIsaW46IiBhYyBjbyBlZHUgZXJuZXQgZmlybSBnZW4gZ292IGkgaW5kIG1pbCBuZXQgbmljIG9yZyByZXMgIixpcToiIGNvbSBlZHUgZ292IGkgbWlsIG5ldCBvcmcgIixpcjoiIGFjIGNvIGRuc3NlYyBnb3YgaSBpZCBuZXQgb3JnIHNjaCAiLGl0OiIgZWR1IGdvdiAiLGplOiIgY28gbmV0IG9yZyAiLGpvOiIgY29tIGVkdSBnb3YgbWlsIG5hbWUgbmV0IG9yZyBzY2ggIixqcDoiIGFjIGFkIGNvIGVkIGdvIGdyIGxnIG5lIG9yICIsa2U6IiBhYyBjbyBnbyBpbmZvIG1lIG1vYmkgbmUgb3Igc2MgIixraDoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnIHBlciAiLGtpOiIgYml6IGNvbSBkZSBlZHUgZ292IGluZm8gbW9iIG5ldCBvcmcgdGVsICIsa206IiBhc3NvIGNvbSBjb29wIGVkdSBnb3V2IGsgbWVkZWNpbiBtaWwgbm9tIG5vdGFpcmVzIHBoYXJtYWNpZW5zIHByZXNzZSB0bSB2ZXRlcmluYWlyZSAiLGtuOiIgZWR1IGdvdiBuZXQgb3JnICIsa3I6IiBhYyBidXNhbiBjaHVuZ2J1ayBjaHVuZ25hbSBjbyBkYWVndSBkYWVqZW9uIGVzIGdhbmd3b24gZ28gZ3dhbmdqdSBneWVvbmdidWsgZ3llb25nZ2kgZ3llb25nbmFtIGhzIGluY2hlb24gamVqdSBqZW9uYnVrIGplb25uYW0gayBrZyBtaWwgbXMgbmUgb3IgcGUgcmUgc2Mgc2VvdWwgdWxzYW4gIixrdzoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixreToiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixrejoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsbGI6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsbGs6IiBhc3NuIGNvbSBlZHUgZ292IGdycCBob3RlbCBpbnQgbHRkIG5ldCBuZ28gb3JnIHNjaCBzb2Mgd2ViICIsbHI6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsbHY6IiBhc24gY29tIGNvbmYgZWR1IGdvdiBpZCBtaWwgbmV0IG9yZyAiLGx5OiIgY29tIGVkdSBnb3YgaWQgbWVkIG5ldCBvcmcgcGxjIHNjaCAiLG1hOiIgYWMgY28gZ292IG0gbmV0IG9yZyBwcmVzcyAiLG1jOiIgYXNzbyB0bSAiLG1lOiIgYWMgY28gZWR1IGdvdiBpdHMgbmV0IG9yZyBwcml2ICIsbWc6IiBjb20gZWR1IGdvdiBtaWwgbm9tIG9yZyBwcmQgdG0gIixtazoiIGNvbSBlZHUgZ292IGluZiBuYW1lIG5ldCBvcmcgcHJvICIsbWw6IiBjb20gZWR1IGdvdiBuZXQgb3JnIHByZXNzZSAiLG1uOiIgZWR1IGdvdiBvcmcgIixtbzoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixtdDoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixtdjoiIGFlcm8gYml6IGNvbSBjb29wIGVkdSBnb3YgaW5mbyBpbnQgbWlsIG11c2V1bSBuYW1lIG5ldCBvcmcgcHJvICIsbXc6IiBhYyBjbyBjb20gY29vcCBlZHUgZ292IGludCBtdXNldW0gbmV0IG9yZyAiLG14OiIgY29tIGVkdSBnb2IgbmV0IG9yZyAiLG15OiIgY29tIGVkdSBnb3YgbWlsIG5hbWUgbmV0IG9yZyBzY2ggIixuZjoiIGFydHMgY29tIGZpcm0gaW5mbyBuZXQgb3RoZXIgcGVyIHJlYyBzdG9yZSB3ZWIgIixuZzoiIGJpeiBjb20gZWR1IGdvdiBtaWwgbW9iaSBuYW1lIG5ldCBvcmcgc2NoICIsbmk6IiBhYyBjbyBjb20gZWR1IGdvYiBtaWwgbmV0IG5vbSBvcmcgIixucDoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsbnI6IiBiaXogY29tIGVkdSBnb3YgaW5mbyBuZXQgb3JnICIsb206IiBhYyBiaXogY28gY29tIGVkdSBnb3YgbWVkIG1pbCBtdXNldW0gbmV0IG9yZyBwcm8gc2NoICIscGU6IiBjb20gZWR1IGdvYiBtaWwgbmV0IG5vbSBvcmcgc2xkICIscGg6IiBjb20gZWR1IGdvdiBpIG1pbCBuZXQgbmdvIG9yZyAiLHBrOiIgYml6IGNvbSBlZHUgZmFtIGdvYiBnb2sgZ29uIGdvcCBnb3MgZ292IG5ldCBvcmcgd2ViICIscGw6IiBhcnQgYmlhbHlzdG9rIGJpeiBjb20gZWR1IGdkYSBnZGFuc2sgZ29yem93IGdvdiBpbmZvIGthdG93aWNlIGtyYWtvdyBsb2R6IGx1YmxpbiBtaWwgbmV0IG5nbyBvbHN6dHluIG9yZyBwb3puYW4gcHdyIHJhZG9tIHNsdXBzayBzemN6ZWNpbiB0b3J1biB3YXJzemF3YSB3YXcgd3JvYyB3cm9jbGF3IHpnb3JhICIscHI6IiBhYyBiaXogY29tIGVkdSBlc3QgZ292IGluZm8gaXNsYSBuYW1lIG5ldCBvcmcgcHJvIHByb2YgIixwczoiIGNvbSBlZHUgZ292IG5ldCBvcmcgcGxvIHNlYyAiLHB3OiIgYmVsYXUgY28gZWQgZ28gbmUgb3IgIixybzoiIGFydHMgY29tIGZpcm0gaW5mbyBub20gbnQgb3JnIHJlYyBzdG9yZSB0bSB3d3cgIixyczoiIGFjIGNvIGVkdSBnb3YgaW4gb3JnICIsc2I6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsc2M6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsc2g6IiBjbyBjb20gZWR1IGdvdiBuZXQgbm9tIG9yZyAiLHNsOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLHN0OiIgY28gY29tIGNvbnN1bGFkbyBlZHUgZW1iYWl4YWRhIGdvdiBtaWwgbmV0IG9yZyBwcmluY2lwZSBzYW90b21lIHN0b3JlICIsc3Y6IiBjb20gZWR1IGdvYiBvcmcgcmVkICIsc3o6IiBhYyBjbyBvcmcgIix0cjoiIGF2IGJicyBiZWwgYml6IGNvbSBkciBlZHUgZ2VuIGdvdiBpbmZvIGsxMiBuYW1lIG5ldCBvcmcgcG9sIHRlbCB0c2sgdHYgd2ViICIsdHQ6IiBhZXJvIGJpeiBjYXQgY28gY29tIGNvb3AgZWR1IGdvdiBpbmZvIGludCBqb2JzIG1pbCBtb2JpIG11c2V1bSBuYW1lIG5ldCBvcmcgcHJvIHRlbCB0cmF2ZWwgIix0dzoiIGNsdWIgY29tIGViaXogZWR1IGdhbWUgZ292IGlkdiBtaWwgbmV0IG9yZyAiLG11OiIgYWMgY28gY29tIGdvdiBuZXQgb3Igb3JnICIsbXo6IiBhYyBjbyBlZHUgZ292IG9yZyAiLG5hOiIgY28gY29tICIsbno6IiBhYyBjbyBjcmkgZ2VlayBnZW4gZ292dCBoZWFsdGggaXdpIG1hb3JpIG1pbCBuZXQgb3JnIHBhcmxpYW1lbnQgc2Nob29sICIscGE6IiBhYm8gYWMgY29tIGVkdSBnb2IgaW5nIG1lZCBuZXQgbm9tIG9yZyBzbGQgIixwdDoiIGNvbSBlZHUgZ292IGludCBuZXQgbm9tZSBvcmcgcHVibCAiLHB5OiIgY29tIGVkdSBnb3YgbWlsIG5ldCBvcmcgIixxYToiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIscmU6IiBhc3NvIGNvbSBub20gIixydToiIGFjIGFkeWdleWEgYWx0YWkgYW11ciBhcmtoYW5nZWxzayBhc3RyYWtoYW4gYmFzaGtpcmlhIGJlbGdvcm9kIGJpciBicnlhbnNrIGJ1cnlhdGlhIGNiZyBjaGVsIGNoZWx5YWJpbnNrIGNoaXRhIGNodWtvdGthIGNodXZhc2hpYSBjb20gZGFnZXN0YW4gZS1idXJnIGVkdSBnb3YgZ3Jvem55IGludCBpcmt1dHNrIGl2YW5vdm8gaXpoZXZzayBqYXIgam9zaGthci1vbGEga2FsbXlraWEga2FsdWdhIGthbWNoYXRrYSBrYXJlbGlhIGthemFuIGtjaHIga2VtZXJvdm8ga2hhYmFyb3ZzayBraGFrYXNzaWEga2h2IGtpcm92IGtvZW5pZyBrb21pIGtvc3Ryb21hIGtyYW5veWFyc2sga3ViYW4ga3VyZ2FuIGt1cnNrIGxpcGV0c2sgbWFnYWRhbiBtYXJpIG1hcmktZWwgbWFyaW5lIG1pbCBtb3Jkb3ZpYSBtb3NyZWcgbXNrIG11cm1hbnNrIG5hbGNoaWsgbmV0IG5ub3Ygbm92IG5vdm9zaWJpcnNrIG5zayBvbXNrIG9yZW5idXJnIG9yZyBvcnlvbCBwZW56YSBwZXJtIHBwIHBza292IHB0eiBybmQgcnlhemFuIHNha2hhbGluIHNhbWFyYSBzYXJhdG92IHNpbWJpcnNrIHNtb2xlbnNrIHNwYiBzdGF2cm9wb2wgc3R2IHN1cmd1dCB0YW1ib3YgdGF0YXJzdGFuIHRvbSB0b21zayB0c2FyaXRzeW4gdHNrIHR1bGEgdHV2YSB0dmVyIHR5dW1lbiB1ZG0gdWRtdXJ0aWEgdWxhbi11ZGUgdmxhZGlrYXZrYXogdmxhZGltaXIgdmxhZGl2b3N0b2sgdm9sZ29ncmFkIHZvbG9nZGEgdm9yb25lemggdnJuIHZ5YXRrYSB5YWt1dGlhIHlhbWFsIHlla2F0ZXJpbmJ1cmcgeXV6aG5vLXNha2hhbGluc2sgIixydzoiIGFjIGNvIGNvbSBlZHUgZ291diBnb3YgaW50IG1pbCBuZXQgIixzYToiIGNvbSBlZHUgZ292IG1lZCBuZXQgb3JnIHB1YiBzY2ggIixzZDoiIGNvbSBlZHUgZ292IGluZm8gbWVkIG5ldCBvcmcgdHYgIixzZToiIGEgYWMgYiBiZCBjIGQgZSBmIGcgaCBpIGsgbCBtIG4gbyBvcmcgcCBwYXJ0aSBwcCBwcmVzcyByIHMgdCB0bSB1IHcgeCB5IHogIixzZzoiIGNvbSBlZHUgZ292IGlkbiBuZXQgb3JnIHBlciAiLHNuOiIgYXJ0IGNvbSBlZHUgZ291diBvcmcgcGVyc28gdW5pdiAiLHN5OiIgY29tIGVkdSBnb3YgbWlsIG5ldCBuZXdzIG9yZyAiLHRoOiIgYWMgY28gZ28gaW4gbWkgbmV0IG9yICIsdGo6IiBhYyBiaXogY28gY29tIGVkdSBnbyBnb3YgaW5mbyBpbnQgbWlsIG5hbWUgbmV0IG5pYyBvcmcgdGVzdCB3ZWIgIix0bjoiIGFncmluZXQgY29tIGRlZmVuc2UgZWR1bmV0IGVucyBmaW4gZ292IGluZCBpbmZvIGludGwgbWluY29tIG5hdCBuZXQgb3JnIHBlcnNvIHJucnQgcm5zIHJudSB0b3VyaXNtICIsdHo6IiBhYyBjbyBnbyBuZSBvciAiLHVhOiIgYml6IGNoZXJrYXNzeSBjaGVybmlnb3YgY2hlcm5vdnRzeSBjayBjbiBjbyBjb20gY3JpbWVhIGN2IGRuIGRuZXByb3BldHJvdnNrIGRvbmV0c2sgZHAgZWR1IGdvdiBpZiBpbiBpdmFuby1mcmFua2l2c2sga2gga2hhcmtvdiBraGVyc29uIGtobWVsbml0c2tpeSBraWV2IGtpcm92b2dyYWQga20ga3Iga3Mga3YgbGcgbHVnYW5zayBsdXRzayBsdml2IG1lIG1rIG5ldCBuaWtvbGFldiBvZCBvZGVzc2Egb3JnIHBsIHBvbHRhdmEgcHAgcm92bm8gcnYgc2ViYXN0b3BvbCBzdW15IHRlIHRlcm5vcGlsIHV6aGdvcm9kIHZpbm5pY2Egdm4gemFwb3Jpemh6aGUgemhpdG9taXIgenAgenQgIix1ZzoiIGFjIGNvIGdvIG5lIG9yIG9yZyBzYyAiLHVrOiIgYWMgYmwgYnJpdGlzaC1saWJyYXJ5IGNvIGN5bSBnb3YgZ292dCBpY25ldCBqZXQgbGVhIGx0ZCBtZSBtaWwgbW9kIG5hdGlvbmFsLWxpYnJhcnktc2NvdGxhbmQgbmVsIG5ldCBuaHMgbmljIG5scyBvcmcgb3JnbiBwYXJsaWFtZW50IHBsYyBwb2xpY2Ugc2NoIHNjb3Qgc29jICIsdXM6IiBkbmkgZmVkIGlzYSBraWRzIG5zbiAiLHV5OiIgY29tIGVkdSBndWIgbWlsIG5ldCBvcmcgIix2ZToiIGNvIGNvbSBlZHUgZ29iIGluZm8gbWlsIG5ldCBvcmcgd2ViICIsdmk6IiBjbyBjb20gazEyIG5ldCBvcmcgIix2bjoiIGFjIGJpeiBjb20gZWR1IGdvdiBoZWFsdGggaW5mbyBpbnQgbmFtZSBuZXQgb3JnIHBybyAiLHllOiIgY28gY29tIGdvdiBsdGQgbWUgbmV0IG9yZyBwbGMgIix5dToiIGFjIGNvIGVkdSBnb3Ygb3JnICIsemE6IiBhYyBhZ3JpYyBhbHQgYm91cnNlIGNpdHkgY28gY3liZXJuZXQgZGIgZWR1IGdvdiBncm9uZGFyIGlhY2Nlc3MgaW10IGluY2EgbGFuZGVzaWduIGxhdyBtaWwgbmV0IG5nbyBuaXMgbm9tIG9saXZldHRpIG9yZyBwaXggc2Nob29sIHRtIHdlYiAiLHptOiIgYWMgY28gY29tIGVkdSBnb3YgbmV0IG9yZyBzY2ggIixjb206ImFyIGJyIGNuIGRlIGV1IGdiIGdyIGh1IGpwbiBrciBubyBxYyBydSBzYSBzZSB1ayB1cyB1eSB6YSAiLG5ldDoiZ2IganAgc2UgdWsgIixvcmc6ImFlIixkZToiY29tICJ9LGhhczpmdW5jdGlvbihvKXt2YXIgcj1vLmxhc3RJbmRleE9mKCIuIik7aWYocjw9MHx8cj49by5sZW5ndGgtMSlyZXR1cm4hMTt2YXIgaT1vLmxhc3RJbmRleE9mKCIuIixyLTEpO2lmKGk8PTB8fGk+PXItMSlyZXR1cm4hMTt2YXIgcz1uLmxpc3Rbby5zbGljZShyKzEpXTtyZXR1cm4gcz9zLmluZGV4T2YoIiAiK28uc2xpY2UoaSsxLHIpKyIgIik+PTA6ITF9LGlzOmZ1bmN0aW9uKG8pe3ZhciByPW8ubGFzdEluZGV4T2YoIi4iKTtpZihyPD0wfHxyPj1vLmxlbmd0aC0xKXJldHVybiExO3ZhciBpPW8ubGFzdEluZGV4T2YoIi4iLHItMSk7aWYoaT49MClyZXR1cm4hMTt2YXIgcz1uLmxpc3Rbby5zbGljZShyKzEpXTtyZXR1cm4gcz9zLmluZGV4T2YoIiAiK28uc2xpY2UoMCxyKSsiICIpPj0wOiExfSxnZXQ6ZnVuY3Rpb24obyl7dmFyIHI9by5sYXN0SW5kZXhPZigiLiIpO2lmKHI8PTB8fHI+PW8ubGVuZ3RoLTEpcmV0dXJuIG51bGw7dmFyIGk9by5sYXN0SW5kZXhPZigiLiIsci0xKTtpZihpPD0wfHxpPj1yLTEpcmV0dXJuIG51bGw7dmFyIHM9bi5saXN0W28uc2xpY2UocisxKV07cmV0dXJuIXN8fHMuaW5kZXhPZigiICIrby5zbGljZShpKzEscikrIiAiKTwwP251bGw6by5zbGljZShpKzEpfSxub0NvbmZsaWN0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuU2Vjb25kTGV2ZWxEb21haW5zPT09dGhpcyYmKHQuU2Vjb25kTGV2ZWxEb21haW5zPWUpLHRoaXN9fTtyZXR1cm4gbn0pfSk7dmFyIEhzPVVuKChaMSxfcCk9PnsvKiEKICogVVJJLmpzIC0gTXV0YXRpbmcgVVJMcwogKgogKiBWZXJzaW9uOiAxLjE5LjExCiAqCiAqIEF1dGhvcjogUm9kbmV5IFJlaG0KICogV2ViOiBodHRwOi8vbWVkaWFsaXplLmdpdGh1Yi5pby9VUkkuanMvCiAqCiAqIExpY2Vuc2VkIHVuZGVyCiAqICAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZQogKgogKi8oZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dHlwZW9mIF9wPT0ib2JqZWN0IiYmX3AuZXhwb3J0cz9fcC5leHBvcnRzPWUoSzEoKSxYMSgpLCQxKCkpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKFsiLi9wdW55Y29kZSIsIi4vSVB2NiIsIi4vU2Vjb25kTGV2ZWxEb21haW5zIl0sZSk6dC5VUkk9ZSh0LnB1bnljb2RlLHQuSVB2Nix0LlNlY29uZExldmVsRG9tYWlucyx0KX0pKFoxLGZ1bmN0aW9uKHQsZSxuLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1vJiZvLlVSSTtmdW5jdGlvbiBpKEEsUyl7dmFyIFA9YXJndW1lbnRzLmxlbmd0aD49MSxGPWFyZ3VtZW50cy5sZW5ndGg+PTI7aWYoISh0aGlzIGluc3RhbmNlb2YgaSkpcmV0dXJuIFA/Rj9uZXcgaShBLFMpOm5ldyBpKEEpOm5ldyBpO2lmKEE9PT12b2lkIDApe2lmKFApdGhyb3cgbmV3IFR5cGVFcnJvcigidW5kZWZpbmVkIGlzIG5vdCBhIHZhbGlkIGFyZ3VtZW50IGZvciBVUkkiKTt0eXBlb2YgbG9jYXRpb248InUiP0E9bG9jYXRpb24uaHJlZisiIjpBPSIifWlmKEE9PT1udWxsJiZQKXRocm93IG5ldyBUeXBlRXJyb3IoIm51bGwgaXMgbm90IGEgdmFsaWQgYXJndW1lbnQgZm9yIFVSSSIpO3JldHVybiB0aGlzLmhyZWYoQSksUyE9PXZvaWQgMD90aGlzLmFic29sdXRlVG8oUyk6dGhpc31mdW5jdGlvbiBzKEEpe3JldHVybi9eWzAtOV0rJC8udGVzdChBKX1pLnZlcnNpb249IjEuMTkuMTEiO3ZhciBmPWkucHJvdG90eXBlLHU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBjKEEpe3JldHVybiBBLnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXF1cL1xcXSkvZywiXFwkMSIpfWZ1bmN0aW9uIGwoQSl7cmV0dXJuIEE9PT12b2lkIDA/IlVuZGVmaW5lZCI6U3RyaW5nKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChBKSkuc2xpY2UoOCwtMSl9ZnVuY3Rpb24gcChBKXtyZXR1cm4gbChBKT09PSJBcnJheSJ9ZnVuY3Rpb24gZChBLFMpe3ZhciBQPXt9LEYsajtpZihsKFMpPT09IlJlZ0V4cCIpUD1udWxsO2Vsc2UgaWYocChTKSlmb3IoRj0wLGo9Uy5sZW5ndGg7RjxqO0YrKylQW1NbRl1dPSEwO2Vsc2UgUFtTXT0hMDtmb3IoRj0wLGo9QS5sZW5ndGg7RjxqO0YrKyl7dmFyIEg9UCYmUFtBW0ZdXSE9PXZvaWQgMHx8IVAmJlMudGVzdChBW0ZdKTtIJiYoQS5zcGxpY2UoRiwxKSxqLS0sRi0tKX1yZXR1cm4gQX1mdW5jdGlvbiBtKEEsUyl7dmFyIFAsRjtpZihwKFMpKXtmb3IoUD0wLEY9Uy5sZW5ndGg7UDxGO1ArKylpZighbShBLFNbUF0pKXJldHVybiExO3JldHVybiEwfXZhciBqPWwoUyk7Zm9yKFA9MCxGPUEubGVuZ3RoO1A8RjtQKyspaWYoaj09PSJSZWdFeHAiKXtpZih0eXBlb2YgQVtQXT09InN0cmluZyImJkFbUF0ubWF0Y2goUykpcmV0dXJuITB9ZWxzZSBpZihBW1BdPT09UylyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBfKEEsUyl7aWYoIXAoQSl8fCFwKFMpfHxBLmxlbmd0aCE9PVMubGVuZ3RoKXJldHVybiExO0Euc29ydCgpLFMuc29ydCgpO2Zvcih2YXIgUD0wLEY9QS5sZW5ndGg7UDxGO1ArKylpZihBW1BdIT09U1tQXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBnKEEpe3ZhciBTPS9eXC8rfFwvKyQvZztyZXR1cm4gQS5yZXBsYWNlKFMsIiIpfWkuX3BhcnRzPWZ1bmN0aW9uKCl7cmV0dXJue3Byb3RvY29sOm51bGwsdXNlcm5hbWU6bnVsbCxwYXNzd29yZDpudWxsLGhvc3RuYW1lOm51bGwsdXJuOm51bGwscG9ydDpudWxsLHBhdGg6bnVsbCxxdWVyeTpudWxsLGZyYWdtZW50Om51bGwscHJldmVudEludmFsaWRIb3N0bmFtZTppLnByZXZlbnRJbnZhbGlkSG9zdG5hbWUsZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzOmkuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLGVzY2FwZVF1ZXJ5U3BhY2U6aS5lc2NhcGVRdWVyeVNwYWNlfX0saS5wcmV2ZW50SW52YWxpZEhvc3RuYW1lPSExLGkuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzPSExLGkuZXNjYXBlUXVlcnlTcGFjZT0hMCxpLnByb3RvY29sX2V4cHJlc3Npb249L15bYS16XVthLXowLTkuKy1dKiQvaSxpLmlkbl9leHByZXNzaW9uPS9bXmEtejAtOVwuXy1dL2ksaS5wdW55Y29kZV9leHByZXNzaW9uPS8oeG4tLSkvaSxpLmlwNF9leHByZXNzaW9uPS9eXGR7MSwzfVwuXGR7MSwzfVwuXGR7MSwzfVwuXGR7MSwzfSQvLGkuaXA2X2V4cHJlc3Npb249L15ccyooKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezF9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKSkoJS4rKT9ccyokLyxpLmZpbmRfdXJpX2V4cHJlc3Npb249L1xiKCg/OlthLXpdW1x3LV0rOig/OlwvezEsM318W2EtejAtOSVdKXx3d3dcZHswLDN9Wy5dfFthLXowLTkuXC1dK1suXVthLXpdezIsNH1cLykoPzpbXlxzKCk8Pl0rfFwoKFteXHMoKTw+XSt8KFwoW15ccygpPD5dK1wpKSkqXCkpKyg/OlwoKFteXHMoKTw+XSt8KFwoW15ccygpPD5dK1wpKSkqXCl8W15cc2AhKClcW1xde307OiciLiw8Pj/Cq8K74oCc4oCd4oCY4oCZXSkpL2lnLGkuZmluZFVyaT17c3RhcnQ6L1xiKD86KFthLXpdW2EtejAtOS4rLV0qOlwvXC8pfHd3d1wuKS9naSxlbmQ6L1tcc1xyXG5dfCQvLHRyaW06L1tgISgpXFtcXXt9OzonIi4sPD4/wqvCu+KAnOKAneKAnuKAmOKAmV0rJC8scGFyZW5zOi8oXChbXlwpXSpcKXxcW1teXF1dKlxdfFx7W159XSpcfXw8W14+XSo+KS9nfSxpLmxlYWRpbmdfd2hpdGVzcGFjZV9leHByZXNzaW9uPS9eW1x4MDAtXHgyMFx1MDBhMFx1MTY4MFx1MjAwMC1cdTIwMGFcdTIwMjhcdTIwMjlcdTIwMmZcdTIwNWZcdTMwMDBcdWZlZmZdKy8saS5hc2NpaV90YWJfd2hpdGVzcGFjZT0vW1x1MDAwOVx1MDAwQVx1MDAwRF0rL2csaS5kZWZhdWx0UG9ydHM9e2h0dHA6IjgwIixodHRwczoiNDQzIixmdHA6IjIxIixnb3BoZXI6IjcwIix3czoiODAiLHdzczoiNDQzIn0saS5ob3N0UHJvdG9jb2xzPVsiaHR0cCIsImh0dHBzIl0saS5pbnZhbGlkX2hvc3RuYW1lX2NoYXJhY3RlcnM9L1teYS16QS1aMC05XC5cLTpfXS8saS5kb21BdHRyaWJ1dGVzPXthOiJocmVmIixibG9ja3F1b3RlOiJjaXRlIixsaW5rOiJocmVmIixiYXNlOiJocmVmIixzY3JpcHQ6InNyYyIsZm9ybToiYWN0aW9uIixpbWc6InNyYyIsYXJlYToiaHJlZiIsaWZyYW1lOiJzcmMiLGVtYmVkOiJzcmMiLHNvdXJjZToic3JjIix0cmFjazoic3JjIixpbnB1dDoic3JjIixhdWRpbzoic3JjIix2aWRlbzoic3JjIn0saS5nZXREb21BdHRyaWJ1dGU9ZnVuY3Rpb24oQSl7aWYoISghQXx8IUEubm9kZU5hbWUpKXt2YXIgUz1BLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoIShTPT09ImlucHV0IiYmQS50eXBlIT09ImltYWdlIikpcmV0dXJuIGkuZG9tQXR0cmlidXRlc1tTXX19O2Z1bmN0aW9uIGIoQSl7cmV0dXJuIGVzY2FwZShBKX1mdW5jdGlvbiBPKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCkqXS9nLGIpLnJlcGxhY2UoL1wqL2csIiUyQSIpfWkuZW5jb2RlPU8saS5kZWNvZGU9ZGVjb2RlVVJJQ29tcG9uZW50LGkuaXNvODg1OT1mdW5jdGlvbigpe2kuZW5jb2RlPWVzY2FwZSxpLmRlY29kZT11bmVzY2FwZX0saS51bmljb2RlPWZ1bmN0aW9uKCl7aS5lbmNvZGU9TyxpLmRlY29kZT1kZWNvZGVVUklDb21wb25lbnR9LGkuY2hhcmFjdGVycz17cGF0aG5hbWU6e2VuY29kZTp7ZXhwcmVzc2lvbjovJSgyNHwyNnwyQnwyQ3wzQnwzRHwzQXw0MCkvaWcsbWFwOnsiJTI0IjoiJCIsIiUyNiI6IiYiLCIlMkIiOiIrIiwiJTJDIjoiLCIsIiUzQiI6IjsiLCIlM0QiOiI9IiwiJTNBIjoiOiIsIiU0MCI6IkAifX0sZGVjb2RlOntleHByZXNzaW9uOi9bXC9cPyNdL2csbWFwOnsiLyI6IiUyRiIsIj8iOiIlM0YiLCIjIjoiJTIzIn19fSxyZXNlcnZlZDp7ZW5jb2RlOntleHByZXNzaW9uOi8lKDIxfDIzfDI0fDI2fDI3fDI4fDI5fDJBfDJCfDJDfDJGfDNBfDNCfDNEfDNGfDQwfDVCfDVEKS9pZyxtYXA6eyIlM0EiOiI6IiwiJTJGIjoiLyIsIiUzRiI6Ij8iLCIlMjMiOiIjIiwiJTVCIjoiWyIsIiU1RCI6Il0iLCIlNDAiOiJAIiwiJTIxIjoiISIsIiUyNCI6IiQiLCIlMjYiOiImIiwiJTI3IjoiJyIsIiUyOCI6IigiLCIlMjkiOiIpIiwiJTJBIjoiKiIsIiUyQiI6IisiLCIlMkMiOiIsIiwiJTNCIjoiOyIsIiUzRCI6Ij0ifX19LHVybnBhdGg6e2VuY29kZTp7ZXhwcmVzc2lvbjovJSgyMXwyNHwyN3wyOHwyOXwyQXwyQnwyQ3wzQnwzRHw0MCkvaWcsbWFwOnsiJTIxIjoiISIsIiUyNCI6IiQiLCIlMjciOiInIiwiJTI4IjoiKCIsIiUyOSI6IikiLCIlMkEiOiIqIiwiJTJCIjoiKyIsIiUyQyI6IiwiLCIlM0IiOiI7IiwiJTNEIjoiPSIsIiU0MCI6IkAifX0sZGVjb2RlOntleHByZXNzaW9uOi9bXC9cPyM6XS9nLG1hcDp7Ii8iOiIlMkYiLCI/IjoiJTNGIiwiIyI6IiUyMyIsIjoiOiIlM0EifX19fSxpLmVuY29kZVF1ZXJ5PWZ1bmN0aW9uKEEsUyl7dmFyIFA9aS5lbmNvZGUoQSsiIik7cmV0dXJuIFM9PT12b2lkIDAmJihTPWkuZXNjYXBlUXVlcnlTcGFjZSksUz9QLnJlcGxhY2UoLyUyMC9nLCIrIik6UH0saS5kZWNvZGVRdWVyeT1mdW5jdGlvbihBLFMpe0ErPSIiLFM9PT12b2lkIDAmJihTPWkuZXNjYXBlUXVlcnlTcGFjZSk7dHJ5e3JldHVybiBpLmRlY29kZShTP0EucmVwbGFjZSgvXCsvZywiJTIwIik6QSl9Y2F0Y2h7cmV0dXJuIEF9fTt2YXIgVD17ZW5jb2RlOiJlbmNvZGUiLGRlY29kZToiZGVjb2RlIn0sRSx3PWZ1bmN0aW9uKEEsUyl7cmV0dXJuIGZ1bmN0aW9uKFApe3RyeXtyZXR1cm4gaVtTXShQKyIiKS5yZXBsYWNlKGkuY2hhcmFjdGVyc1tBXVtTXS5leHByZXNzaW9uLGZ1bmN0aW9uKEYpe3JldHVybiBpLmNoYXJhY3RlcnNbQV1bU10ubWFwW0ZdfSl9Y2F0Y2h7cmV0dXJuIFB9fX07Zm9yKEUgaW4gVClpW0UrIlBhdGhTZWdtZW50Il09dygicGF0aG5hbWUiLFRbRV0pLGlbRSsiVXJuUGF0aFNlZ21lbnQiXT13KCJ1cm5wYXRoIixUW0VdKTt2YXIgQz1mdW5jdGlvbihBLFMsUCl7cmV0dXJuIGZ1bmN0aW9uKEYpe3ZhciBqO1A/aj1mdW5jdGlvbihYKXtyZXR1cm4gaVtTXShpW1BdKFgpKX06aj1pW1NdO2Zvcih2YXIgSD0oRisiIikuc3BsaXQoQSksaz0wLEs9SC5sZW5ndGg7azxLO2srKylIW2tdPWooSFtrXSk7cmV0dXJuIEguam9pbihBKX19O2kuZGVjb2RlUGF0aD1DKCIvIiwiZGVjb2RlUGF0aFNlZ21lbnQiKSxpLmRlY29kZVVyblBhdGg9QygiOiIsImRlY29kZVVyblBhdGhTZWdtZW50IiksaS5yZWNvZGVQYXRoPUMoIi8iLCJlbmNvZGVQYXRoU2VnbWVudCIsImRlY29kZSIpLGkucmVjb2RlVXJuUGF0aD1DKCI6IiwiZW5jb2RlVXJuUGF0aFNlZ21lbnQiLCJkZWNvZGUiKSxpLmVuY29kZVJlc2VydmVkPXcoInJlc2VydmVkIiwiZW5jb2RlIiksaS5wYXJzZT1mdW5jdGlvbihBLFMpe3ZhciBQO3JldHVybiBTfHwoUz17cHJldmVudEludmFsaWRIb3N0bmFtZTppLnByZXZlbnRJbnZhbGlkSG9zdG5hbWV9KSxBPUEucmVwbGFjZShpLmxlYWRpbmdfd2hpdGVzcGFjZV9leHByZXNzaW9uLCIiKSxBPUEucmVwbGFjZShpLmFzY2lpX3RhYl93aGl0ZXNwYWNlLCIiKSxQPUEuaW5kZXhPZigiIyIpLFA+LTEmJihTLmZyYWdtZW50PUEuc3Vic3RyaW5nKFArMSl8fG51bGwsQT1BLnN1YnN0cmluZygwLFApKSxQPUEuaW5kZXhPZigiPyIpLFA+LTEmJihTLnF1ZXJ5PUEuc3Vic3RyaW5nKFArMSl8fG51bGwsQT1BLnN1YnN0cmluZygwLFApKSxBPUEucmVwbGFjZSgvXihodHRwcz98ZnRwfHdzcz8pPzorWy9cXF0qL2ksIiQxOi8vIiksQT1BLnJlcGxhY2UoL15bL1xcXXsyLH0vaSwiLy8iKSxBLnN1YnN0cmluZygwLDIpPT09Ii8vIj8oUy5wcm90b2NvbD1udWxsLEE9QS5zdWJzdHJpbmcoMiksQT1pLnBhcnNlQXV0aG9yaXR5KEEsUykpOihQPUEuaW5kZXhPZigiOiIpLFA+LTEmJihTLnByb3RvY29sPUEuc3Vic3RyaW5nKDAsUCl8fG51bGwsUy5wcm90b2NvbCYmIVMucHJvdG9jb2wubWF0Y2goaS5wcm90b2NvbF9leHByZXNzaW9uKT9TLnByb3RvY29sPXZvaWQgMDpBLnN1YnN0cmluZyhQKzEsUCszKS5yZXBsYWNlKC9cXC9nLCIvIik9PT0iLy8iPyhBPUEuc3Vic3RyaW5nKFArMyksQT1pLnBhcnNlQXV0aG9yaXR5KEEsUykpOihBPUEuc3Vic3RyaW5nKFArMSksUy51cm49ITApKSksUy5wYXRoPUEsU30saS5wYXJzZUhvc3Q9ZnVuY3Rpb24oQSxTKXtBfHwoQT0iIiksQT1BLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgUD1BLmluZGV4T2YoIi8iKSxGLGo7aWYoUD09PS0xJiYoUD1BLmxlbmd0aCksQS5jaGFyQXQoMCk9PT0iWyIpRj1BLmluZGV4T2YoIl0iKSxTLmhvc3RuYW1lPUEuc3Vic3RyaW5nKDEsRil8fG51bGwsUy5wb3J0PUEuc3Vic3RyaW5nKEYrMixQKXx8bnVsbCxTLnBvcnQ9PT0iLyImJihTLnBvcnQ9bnVsbCk7ZWxzZXt2YXIgSD1BLmluZGV4T2YoIjoiKSxrPUEuaW5kZXhPZigiLyIpLEs9QS5pbmRleE9mKCI6IixIKzEpO0shPT0tMSYmKGs9PT0tMXx8SzxrKT8oUy5ob3N0bmFtZT1BLnN1YnN0cmluZygwLFApfHxudWxsLFMucG9ydD1udWxsKTooaj1BLnN1YnN0cmluZygwLFApLnNwbGl0KCI6IiksUy5ob3N0bmFtZT1qWzBdfHxudWxsLFMucG9ydD1qWzFdfHxudWxsKX1yZXR1cm4gUy5ob3N0bmFtZSYmQS5zdWJzdHJpbmcoUCkuY2hhckF0KDApIT09Ii8iJiYoUCsrLEE9Ii8iK0EpLFMucHJldmVudEludmFsaWRIb3N0bmFtZSYmaS5lbnN1cmVWYWxpZEhvc3RuYW1lKFMuaG9zdG5hbWUsUy5wcm90b2NvbCksUy5wb3J0JiZpLmVuc3VyZVZhbGlkUG9ydChTLnBvcnQpLEEuc3Vic3RyaW5nKFApfHwiLyJ9LGkucGFyc2VBdXRob3JpdHk9ZnVuY3Rpb24oQSxTKXtyZXR1cm4gQT1pLnBhcnNlVXNlcmluZm8oQSxTKSxpLnBhcnNlSG9zdChBLFMpfSxpLnBhcnNlVXNlcmluZm89ZnVuY3Rpb24oQSxTKXt2YXIgUD1BLEY9QS5pbmRleE9mKCJcXCIpO0YhPT0tMSYmKEE9QS5yZXBsYWNlKC9cXC9nLCIvIikpO3ZhciBqPUEuaW5kZXhPZigiLyIpLEg9QS5sYXN0SW5kZXhPZigiQCIsaj4tMT9qOkEubGVuZ3RoLTEpLGs7cmV0dXJuIEg+LTEmJihqPT09LTF8fEg8aik/KGs9QS5zdWJzdHJpbmcoMCxIKS5zcGxpdCgiOiIpLFMudXNlcm5hbWU9a1swXT9pLmRlY29kZShrWzBdKTpudWxsLGsuc2hpZnQoKSxTLnBhc3N3b3JkPWtbMF0/aS5kZWNvZGUoay5qb2luKCI6IikpOm51bGwsQT1QLnN1YnN0cmluZyhIKzEpKTooUy51c2VybmFtZT1udWxsLFMucGFzc3dvcmQ9bnVsbCksQX0saS5wYXJzZVF1ZXJ5PWZ1bmN0aW9uKEEsUyl7aWYoIUEpcmV0dXJue307aWYoQT1BLnJlcGxhY2UoLyYrL2csIiYiKS5yZXBsYWNlKC9eXD8qJip8JiskL2csIiIpLCFBKXJldHVybnt9O2Zvcih2YXIgUD17fSxGPUEuc3BsaXQoIiYiKSxqPUYubGVuZ3RoLEgsayxLLFg9MDtYPGo7WCsrKUg9RltYXS5zcGxpdCgiPSIpLGs9aS5kZWNvZGVRdWVyeShILnNoaWZ0KCksUyksSz1ILmxlbmd0aD9pLmRlY29kZVF1ZXJ5KEguam9pbigiPSIpLFMpOm51bGwsayE9PSJfX3Byb3RvX18iJiYodS5jYWxsKFAsayk/KCh0eXBlb2YgUFtrXT09InN0cmluZyJ8fFBba109PT1udWxsKSYmKFBba109W1Bba11dKSxQW2tdLnB1c2goSykpOlBba109Syk7cmV0dXJuIFB9LGkuYnVpbGQ9ZnVuY3Rpb24oQSl7dmFyIFM9IiIsUD0hMTtyZXR1cm4gQS5wcm90b2NvbCYmKFMrPUEucHJvdG9jb2wrIjoiKSwhQS51cm4mJihTfHxBLmhvc3RuYW1lKSYmKFMrPSIvLyIsUD0hMCksUys9aS5idWlsZEF1dGhvcml0eShBKXx8IiIsdHlwZW9mIEEucGF0aD09InN0cmluZyImJihBLnBhdGguY2hhckF0KDApIT09Ii8iJiZQJiYoUys9Ii8iKSxTKz1BLnBhdGgpLHR5cGVvZiBBLnF1ZXJ5PT0ic3RyaW5nIiYmQS5xdWVyeSYmKFMrPSI/IitBLnF1ZXJ5KSx0eXBlb2YgQS5mcmFnbWVudD09InN0cmluZyImJkEuZnJhZ21lbnQmJihTKz0iIyIrQS5mcmFnbWVudCksU30saS5idWlsZEhvc3Q9ZnVuY3Rpb24oQSl7dmFyIFM9IiI7aWYoQS5ob3N0bmFtZSlpLmlwNl9leHByZXNzaW9uLnRlc3QoQS5ob3N0bmFtZSk/Uys9IlsiK0EuaG9zdG5hbWUrIl0iOlMrPUEuaG9zdG5hbWU7ZWxzZSByZXR1cm4iIjtyZXR1cm4gQS5wb3J0JiYoUys9IjoiK0EucG9ydCksU30saS5idWlsZEF1dGhvcml0eT1mdW5jdGlvbihBKXtyZXR1cm4gaS5idWlsZFVzZXJpbmZvKEEpK2kuYnVpbGRIb3N0KEEpfSxpLmJ1aWxkVXNlcmluZm89ZnVuY3Rpb24oQSl7dmFyIFM9IiI7cmV0dXJuIEEudXNlcm5hbWUmJihTKz1pLmVuY29kZShBLnVzZXJuYW1lKSksQS5wYXNzd29yZCYmKFMrPSI6IitpLmVuY29kZShBLnBhc3N3b3JkKSksUyYmKFMrPSJAIiksU30saS5idWlsZFF1ZXJ5PWZ1bmN0aW9uKEEsUyxQKXt2YXIgRj0iIixqLEgsayxLO2ZvcihIIGluIEEpaWYoSCE9PSJfX3Byb3RvX18iJiZ1LmNhbGwoQSxIKSlpZihwKEFbSF0pKWZvcihqPXt9LGs9MCxLPUFbSF0ubGVuZ3RoO2s8SztrKyspQVtIXVtrXSE9PXZvaWQgMCYmaltBW0hdW2tdKyIiXT09PXZvaWQgMCYmKEYrPSImIitpLmJ1aWxkUXVlcnlQYXJhbWV0ZXIoSCxBW0hdW2tdLFApLFMhPT0hMCYmKGpbQVtIXVtrXSsiIl09ITApKTtlbHNlIEFbSF0hPT12b2lkIDAmJihGKz0iJiIraS5idWlsZFF1ZXJ5UGFyYW1ldGVyKEgsQVtIXSxQKSk7cmV0dXJuIEYuc3Vic3RyaW5nKDEpfSxpLmJ1aWxkUXVlcnlQYXJhbWV0ZXI9ZnVuY3Rpb24oQSxTLFApe3JldHVybiBpLmVuY29kZVF1ZXJ5KEEsUCkrKFMhPT1udWxsPyI9IitpLmVuY29kZVF1ZXJ5KFMsUCk6IiIpfSxpLmFkZFF1ZXJ5PWZ1bmN0aW9uKEEsUyxQKXtpZih0eXBlb2YgUz09Im9iamVjdCIpZm9yKHZhciBGIGluIFMpdS5jYWxsKFMsRikmJmkuYWRkUXVlcnkoQSxGLFNbRl0pO2Vsc2UgaWYodHlwZW9mIFM9PSJzdHJpbmciKXtpZihBW1NdPT09dm9pZCAwKXtBW1NdPVA7cmV0dXJufWVsc2UgdHlwZW9mIEFbU109PSJzdHJpbmciJiYoQVtTXT1bQVtTXV0pO3AoUCl8fChQPVtQXSksQVtTXT0oQVtTXXx8W10pLmNvbmNhdChQKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5hZGRRdWVyeSgpIGFjY2VwdHMgYW4gb2JqZWN0LCBzdHJpbmcgYXMgdGhlIG5hbWUgcGFyYW1ldGVyIil9LGkuc2V0UXVlcnk9ZnVuY3Rpb24oQSxTLFApe2lmKHR5cGVvZiBTPT0ib2JqZWN0Iilmb3IodmFyIEYgaW4gUyl1LmNhbGwoUyxGKSYmaS5zZXRRdWVyeShBLEYsU1tGXSk7ZWxzZSBpZih0eXBlb2YgUz09InN0cmluZyIpQVtTXT1QPT09dm9pZCAwP251bGw6UDtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5zZXRRdWVyeSgpIGFjY2VwdHMgYW4gb2JqZWN0LCBzdHJpbmcgYXMgdGhlIG5hbWUgcGFyYW1ldGVyIil9LGkucmVtb3ZlUXVlcnk9ZnVuY3Rpb24oQSxTLFApe3ZhciBGLGosSDtpZihwKFMpKWZvcihGPTAsaj1TLmxlbmd0aDtGPGo7RisrKUFbU1tGXV09dm9pZCAwO2Vsc2UgaWYobChTKT09PSJSZWdFeHAiKWZvcihIIGluIEEpUy50ZXN0KEgpJiYoQVtIXT12b2lkIDApO2Vsc2UgaWYodHlwZW9mIFM9PSJvYmplY3QiKWZvcihIIGluIFMpdS5jYWxsKFMsSCkmJmkucmVtb3ZlUXVlcnkoQSxILFNbSF0pO2Vsc2UgaWYodHlwZW9mIFM9PSJzdHJpbmciKVAhPT12b2lkIDA/bChQKT09PSJSZWdFeHAiPyFwKEFbU10pJiZQLnRlc3QoQVtTXSk/QVtTXT12b2lkIDA6QVtTXT1kKEFbU10sUCk6QVtTXT09PVN0cmluZyhQKSYmKCFwKFApfHxQLmxlbmd0aD09PTEpP0FbU109dm9pZCAwOnAoQVtTXSkmJihBW1NdPWQoQVtTXSxQKSk6QVtTXT12b2lkIDA7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkucmVtb3ZlUXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nLCBSZWdFeHAgYXMgdGhlIGZpcnN0IHBhcmFtZXRlciIpfSxpLmhhc1F1ZXJ5PWZ1bmN0aW9uKEEsUyxQLEYpe3N3aXRjaChsKFMpKXtjYXNlIlN0cmluZyI6YnJlYWs7Y2FzZSJSZWdFeHAiOmZvcih2YXIgaiBpbiBBKWlmKHUuY2FsbChBLGopJiZTLnRlc3QoaikmJihQPT09dm9pZCAwfHxpLmhhc1F1ZXJ5KEEsaixQKSkpcmV0dXJuITA7cmV0dXJuITE7Y2FzZSJPYmplY3QiOmZvcih2YXIgSCBpbiBTKWlmKHUuY2FsbChTLEgpJiYhaS5oYXNRdWVyeShBLEgsU1tIXSkpcmV0dXJuITE7cmV0dXJuITA7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkuaGFzUXVlcnkoKSBhY2NlcHRzIGEgc3RyaW5nLCByZWd1bGFyIGV4cHJlc3Npb24gb3Igb2JqZWN0IGFzIHRoZSBuYW1lIHBhcmFtZXRlciIpfXN3aXRjaChsKFApKXtjYXNlIlVuZGVmaW5lZCI6cmV0dXJuIFMgaW4gQTtjYXNlIkJvb2xlYW4iOnZhciBrPSEhKHAoQVtTXSk/QVtTXS5sZW5ndGg6QVtTXSk7cmV0dXJuIFA9PT1rO2Nhc2UiRnVuY3Rpb24iOnJldHVybiEhUChBW1NdLFMsQSk7Y2FzZSJBcnJheSI6aWYoIXAoQVtTXSkpcmV0dXJuITE7dmFyIEs9Rj9tOl87cmV0dXJuIEsoQVtTXSxQKTtjYXNlIlJlZ0V4cCI6cmV0dXJuIHAoQVtTXSk/Rj9tKEFbU10sUCk6ITE6ISEoQVtTXSYmQVtTXS5tYXRjaChQKSk7Y2FzZSJOdW1iZXIiOlA9U3RyaW5nKFApO2Nhc2UiU3RyaW5nIjpyZXR1cm4gcChBW1NdKT9GP20oQVtTXSxQKTohMTpBW1NdPT09UDtkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5oYXNRdWVyeSgpIGFjY2VwdHMgdW5kZWZpbmVkLCBib29sZWFuLCBzdHJpbmcsIG51bWJlciwgUmVnRXhwLCBGdW5jdGlvbiBhcyB0aGUgdmFsdWUgcGFyYW1ldGVyIil9fSxpLmpvaW5QYXRocz1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxTPVtdLFA9MCxGPTA7Rjxhcmd1bWVudHMubGVuZ3RoO0YrKyl7dmFyIGo9bmV3IGkoYXJndW1lbnRzW0ZdKTtBLnB1c2goaik7Zm9yKHZhciBIPWouc2VnbWVudCgpLGs9MDtrPEgubGVuZ3RoO2srKyl0eXBlb2YgSFtrXT09InN0cmluZyImJlMucHVzaChIW2tdKSxIW2tdJiZQKyt9aWYoIVMubGVuZ3RofHwhUClyZXR1cm4gbmV3IGkoIiIpO3ZhciBLPW5ldyBpKCIiKS5zZWdtZW50KFMpO3JldHVybihBWzBdLnBhdGgoKT09PSIifHxBWzBdLnBhdGgoKS5zbGljZSgwLDEpPT09Ii8iKSYmSy5wYXRoKCIvIitLLnBhdGgoKSksSy5ub3JtYWxpemUoKX0saS5jb21tb25QYXRoPWZ1bmN0aW9uKEEsUyl7dmFyIFA9TWF0aC5taW4oQS5sZW5ndGgsUy5sZW5ndGgpLEY7Zm9yKEY9MDtGPFA7RisrKWlmKEEuY2hhckF0KEYpIT09Uy5jaGFyQXQoRikpe0YtLTticmVha31yZXR1cm4gRjwxP0EuY2hhckF0KDApPT09Uy5jaGFyQXQoMCkmJkEuY2hhckF0KDApPT09Ii8iPyIvIjoiIjooKEEuY2hhckF0KEYpIT09Ii8ifHxTLmNoYXJBdChGKSE9PSIvIikmJihGPUEuc3Vic3RyaW5nKDAsRikubGFzdEluZGV4T2YoIi8iKSksQS5zdWJzdHJpbmcoMCxGKzEpKX0saS53aXRoaW5TdHJpbmc9ZnVuY3Rpb24oQSxTLFApe1B8fChQPXt9KTt2YXIgRj1QLnN0YXJ0fHxpLmZpbmRVcmkuc3RhcnQsaj1QLmVuZHx8aS5maW5kVXJpLmVuZCxIPVAudHJpbXx8aS5maW5kVXJpLnRyaW0saz1QLnBhcmVuc3x8aS5maW5kVXJpLnBhcmVucyxLPS9bYS16MC05LV09WyInXT8kL2k7Zm9yKEYubGFzdEluZGV4PTA7Oyl7dmFyIFg9Ri5leGVjKEEpO2lmKCFYKWJyZWFrO3ZhciBSPVguaW5kZXg7aWYoUC5pZ25vcmVIdG1sKXt2YXIgUT1BLnNsaWNlKE1hdGgubWF4KFItMywwKSxSKTtpZihRJiZLLnRlc3QoUSkpY29udGludWV9Zm9yKHZhciBmdD1SK0Euc2xpY2UoUikuc2VhcmNoKGopLHB0PUEuc2xpY2UoUixmdCksZ3Q9LTE7Oyl7dmFyIGl0PWsuZXhlYyhwdCk7aWYoIWl0KWJyZWFrO3ZhciBOdD1pdC5pbmRleCtpdFswXS5sZW5ndGg7Z3Q9TWF0aC5tYXgoZ3QsTnQpfWlmKGd0Pi0xP3B0PXB0LnNsaWNlKDAsZ3QpK3B0LnNsaWNlKGd0KS5yZXBsYWNlKEgsIiIpOnB0PXB0LnJlcGxhY2UoSCwiIiksIShwdC5sZW5ndGg8PVhbMF0ubGVuZ3RoKSYmIShQLmlnbm9yZSYmUC5pZ25vcmUudGVzdChwdCkpKXtmdD1SK3B0Lmxlbmd0aDt2YXIgT3Q9UyhwdCxSLGZ0LEEpO2lmKE90PT09dm9pZCAwKXtGLmxhc3RJbmRleD1mdDtjb250aW51ZX1PdD1TdHJpbmcoT3QpLEE9QS5zbGljZSgwLFIpK090K0Euc2xpY2UoZnQpLEYubGFzdEluZGV4PVIrT3QubGVuZ3RofX1yZXR1cm4gRi5sYXN0SW5kZXg9MCxBfSxpLmVuc3VyZVZhbGlkSG9zdG5hbWU9ZnVuY3Rpb24oQSxTKXt2YXIgUD0hIUEsRj0hIVMsaj0hMTtpZihGJiYoaj1tKGkuaG9zdFByb3RvY29scyxTKSksaiYmIVApdGhyb3cgbmV3IFR5cGVFcnJvcigiSG9zdG5hbWUgY2Fubm90IGJlIGVtcHR5LCBpZiBwcm90b2NvbCBpcyAiK1MpO2lmKEEmJkEubWF0Y2goaS5pbnZhbGlkX2hvc3RuYW1lX2NoYXJhY3RlcnMpKXtpZighdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSAiJytBKyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li06X10gYW5kIFB1bnljb2RlLmpzIGlzIG5vdCBhdmFpbGFibGUnKTtpZih0LnRvQVNDSUkoQSkubWF0Y2goaS5pbnZhbGlkX2hvc3RuYW1lX2NoYXJhY3RlcnMpKXRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lICInK0ErJyIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuLTpfXScpfX0saS5lbnN1cmVWYWxpZFBvcnQ9ZnVuY3Rpb24oQSl7aWYoQSl7dmFyIFM9TnVtYmVyKEEpO2lmKCEocyhTKSYmUz4wJiZTPDY1NTM2KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdQb3J0ICInK0ErJyIgaXMgbm90IGEgdmFsaWQgcG9ydCcpfX0saS5ub0NvbmZsaWN0PWZ1bmN0aW9uKEEpe2lmKEEpe3ZhciBTPXtVUkk6dGhpcy5ub0NvbmZsaWN0KCl9O3JldHVybiBvLlVSSVRlbXBsYXRlJiZ0eXBlb2Ygby5VUklUZW1wbGF0ZS5ub0NvbmZsaWN0PT0iZnVuY3Rpb24iJiYoUy5VUklUZW1wbGF0ZT1vLlVSSVRlbXBsYXRlLm5vQ29uZmxpY3QoKSksby5JUHY2JiZ0eXBlb2Ygby5JUHY2Lm5vQ29uZmxpY3Q9PSJmdW5jdGlvbiImJihTLklQdjY9by5JUHY2Lm5vQ29uZmxpY3QoKSksby5TZWNvbmRMZXZlbERvbWFpbnMmJnR5cGVvZiBvLlNlY29uZExldmVsRG9tYWlucy5ub0NvbmZsaWN0PT0iZnVuY3Rpb24iJiYoUy5TZWNvbmRMZXZlbERvbWFpbnM9by5TZWNvbmRMZXZlbERvbWFpbnMubm9Db25mbGljdCgpKSxTfWVsc2Ugby5VUkk9PT10aGlzJiYoby5VUkk9cik7cmV0dXJuIHRoaXN9LGYuYnVpbGQ9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT0hMD90aGlzLl9kZWZlcnJlZF9idWlsZD0hMDooQT09PXZvaWQgMHx8dGhpcy5fZGVmZXJyZWRfYnVpbGQpJiYodGhpcy5fc3RyaW5nPWkuYnVpbGQodGhpcy5fcGFydHMpLHRoaXMuX2RlZmVycmVkX2J1aWxkPSExKSx0aGlzfSxmLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpKHRoaXMpfSxmLnZhbHVlT2Y9Zi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1aWxkKCExKS5fc3RyaW5nfTtmdW5jdGlvbiBOKEEpe3JldHVybiBmdW5jdGlvbihTLFApe3JldHVybiBTPT09dm9pZCAwP3RoaXMuX3BhcnRzW0FdfHwiIjoodGhpcy5fcGFydHNbQV09U3x8bnVsbCx0aGlzLmJ1aWxkKCFQKSx0aGlzKX19ZnVuY3Rpb24gSShBLFMpe3JldHVybiBmdW5jdGlvbihQLEYpe3JldHVybiBQPT09dm9pZCAwP3RoaXMuX3BhcnRzW0FdfHwiIjooUCE9PW51bGwmJihQPVArIiIsUC5jaGFyQXQoMCk9PT1TJiYoUD1QLnN1YnN0cmluZygxKSkpLHRoaXMuX3BhcnRzW0FdPVAsdGhpcy5idWlsZCghRiksdGhpcyl9fWYucHJvdG9jb2w9TigicHJvdG9jb2wiKSxmLnVzZXJuYW1lPU4oInVzZXJuYW1lIiksZi5wYXNzd29yZD1OKCJwYXNzd29yZCIpLGYuaG9zdG5hbWU9TigiaG9zdG5hbWUiKSxmLnBvcnQ9TigicG9ydCIpLGYucXVlcnk9SSgicXVlcnkiLCI/IiksZi5mcmFnbWVudD1JKCJmcmFnbWVudCIsIiMiKSxmLnNlYXJjaD1mdW5jdGlvbihBLFMpe3ZhciBQPXRoaXMucXVlcnkoQSxTKTtyZXR1cm4gdHlwZW9mIFA9PSJzdHJpbmciJiZQLmxlbmd0aD8iPyIrUDpQfSxmLmhhc2g9ZnVuY3Rpb24oQSxTKXt2YXIgUD10aGlzLmZyYWdtZW50KEEsUyk7cmV0dXJuIHR5cGVvZiBQPT0ic3RyaW5nIiYmUC5sZW5ndGg/IiMiK1A6UH0sZi5wYXRobmFtZT1mdW5jdGlvbihBLFMpe2lmKEE9PT12b2lkIDB8fEE9PT0hMCl7dmFyIFA9dGhpcy5fcGFydHMucGF0aHx8KHRoaXMuX3BhcnRzLmhvc3RuYW1lPyIvIjoiIik7cmV0dXJuIEE/KHRoaXMuX3BhcnRzLnVybj9pLmRlY29kZVVyblBhdGg6aS5kZWNvZGVQYXRoKShQKTpQfWVsc2UgcmV0dXJuIHRoaXMuX3BhcnRzLnVybj90aGlzLl9wYXJ0cy5wYXRoPUE/aS5yZWNvZGVVcm5QYXRoKEEpOiIiOnRoaXMuX3BhcnRzLnBhdGg9QT9pLnJlY29kZVBhdGgoQSk6Ii8iLHRoaXMuYnVpbGQoIVMpLHRoaXN9LGYucGF0aD1mLnBhdGhuYW1lLGYuaHJlZj1mdW5jdGlvbihBLFMpe3ZhciBQO2lmKEE9PT12b2lkIDApcmV0dXJuIHRoaXMudG9TdHJpbmcoKTt0aGlzLl9zdHJpbmc9IiIsdGhpcy5fcGFydHM9aS5fcGFydHMoKTt2YXIgRj1BIGluc3RhbmNlb2YgaSxqPXR5cGVvZiBBPT0ib2JqZWN0IiYmKEEuaG9zdG5hbWV8fEEucGF0aHx8QS5wYXRobmFtZSk7aWYoQS5ub2RlTmFtZSl7dmFyIEg9aS5nZXREb21BdHRyaWJ1dGUoQSk7QT1BW0hdfHwiIixqPSExfWlmKCFGJiZqJiZBLnBhdGhuYW1lIT09dm9pZCAwJiYoQT1BLnRvU3RyaW5nKCkpLHR5cGVvZiBBPT0ic3RyaW5nInx8QSBpbnN0YW5jZW9mIFN0cmluZyl0aGlzLl9wYXJ0cz1pLnBhcnNlKFN0cmluZyhBKSx0aGlzLl9wYXJ0cyk7ZWxzZSBpZihGfHxqKXt2YXIgaz1GP0EuX3BhcnRzOkE7Zm9yKFAgaW4gaylQIT09InF1ZXJ5IiYmdS5jYWxsKHRoaXMuX3BhcnRzLFApJiYodGhpcy5fcGFydHNbUF09a1tQXSk7ay5xdWVyeSYmdGhpcy5xdWVyeShrLnF1ZXJ5LCExKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaW5wdXQiKTtyZXR1cm4gdGhpcy5idWlsZCghUyksdGhpc30sZi5pcz1mdW5jdGlvbihBKXt2YXIgUz0hMSxQPSExLEY9ITEsaj0hMSxIPSExLGs9ITEsSz0hMSxYPSF0aGlzLl9wYXJ0cy51cm47c3dpdGNoKHRoaXMuX3BhcnRzLmhvc3RuYW1lJiYoWD0hMSxQPWkuaXA0X2V4cHJlc3Npb24udGVzdCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSksRj1pLmlwNl9leHByZXNzaW9uLnRlc3QodGhpcy5fcGFydHMuaG9zdG5hbWUpLFM9UHx8RixqPSFTLEg9aiYmbiYmbi5oYXModGhpcy5fcGFydHMuaG9zdG5hbWUpLGs9aiYmaS5pZG5fZXhwcmVzc2lvbi50ZXN0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKSxLPWomJmkucHVueWNvZGVfZXhwcmVzc2lvbi50ZXN0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKSksQS50b0xvd2VyQ2FzZSgpKXtjYXNlInJlbGF0aXZlIjpyZXR1cm4gWDtjYXNlImFic29sdXRlIjpyZXR1cm4hWDtjYXNlImRvbWFpbiI6Y2FzZSJuYW1lIjpyZXR1cm4gajtjYXNlInNsZCI6cmV0dXJuIEg7Y2FzZSJpcCI6cmV0dXJuIFM7Y2FzZSJpcDQiOmNhc2UiaXB2NCI6Y2FzZSJpbmV0NCI6cmV0dXJuIFA7Y2FzZSJpcDYiOmNhc2UiaXB2NiI6Y2FzZSJpbmV0NiI6cmV0dXJuIEY7Y2FzZSJpZG4iOnJldHVybiBrO2Nhc2UidXJsIjpyZXR1cm4hdGhpcy5fcGFydHMudXJuO2Nhc2UidXJuIjpyZXR1cm4hIXRoaXMuX3BhcnRzLnVybjtjYXNlInB1bnljb2RlIjpyZXR1cm4gS31yZXR1cm4gbnVsbH07dmFyIEw9Zi5wcm90b2NvbCx2PWYucG9ydCxEPWYuaG9zdG5hbWU7Zi5wcm90b2NvbD1mdW5jdGlvbihBLFMpe2lmKEEmJihBPUEucmVwbGFjZSgvOihcL1wvKT8kLywiIiksIUEubWF0Y2goaS5wcm90b2NvbF9leHByZXNzaW9uKSkpdGhyb3cgbmV3IFR5cGVFcnJvcignUHJvdG9jb2wgIicrQStgIiBjb250YWlucyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gW0EtWjAtOS4rLV0gb3IgZG9lc24ndCBzdGFydCB3aXRoIFtBLVpdYCk7cmV0dXJuIEwuY2FsbCh0aGlzLEEsUyl9LGYuc2NoZW1lPWYucHJvdG9jb2wsZi5wb3J0PWZ1bmN0aW9uKEEsUyl7cmV0dXJuIHRoaXMuX3BhcnRzLnVybj9BPT09dm9pZCAwPyIiOnRoaXM6KEEhPT12b2lkIDAmJihBPT09MCYmKEE9bnVsbCksQSYmKEErPSIiLEEuY2hhckF0KDApPT09IjoiJiYoQT1BLnN1YnN0cmluZygxKSksaS5lbnN1cmVWYWxpZFBvcnQoQSkpKSx2LmNhbGwodGhpcyxBLFMpKX0sZi5ob3N0bmFtZT1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEEhPT12b2lkIDApe3ZhciBQPXtwcmV2ZW50SW52YWxpZEhvc3RuYW1lOnRoaXMuX3BhcnRzLnByZXZlbnRJbnZhbGlkSG9zdG5hbWV9LEY9aS5wYXJzZUhvc3QoQSxQKTtpZihGIT09Ii8iKXRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lICInK0ErJyIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuLV0nKTtBPVAuaG9zdG5hbWUsdGhpcy5fcGFydHMucHJldmVudEludmFsaWRIb3N0bmFtZSYmaS5lbnN1cmVWYWxpZEhvc3RuYW1lKEEsdGhpcy5fcGFydHMucHJvdG9jb2wpfXJldHVybiBELmNhbGwodGhpcyxBLFMpfSxmLm9yaWdpbj1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDApe3ZhciBQPXRoaXMucHJvdG9jb2woKSxGPXRoaXMuYXV0aG9yaXR5KCk7cmV0dXJuIEY/KFA/UCsiOi8vIjoiIikrdGhpcy5hdXRob3JpdHkoKToiIn1lbHNle3ZhciBqPWkoQSk7cmV0dXJuIHRoaXMucHJvdG9jb2woai5wcm90b2NvbCgpKS5hdXRob3JpdHkoai5hdXRob3JpdHkoKSkuYnVpbGQoIVMpLHRoaXN9fSxmLmhvc3Q9ZnVuY3Rpb24oQSxTKXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIEE9PT12b2lkIDA/IiI6dGhpcztpZihBPT09dm9pZCAwKXJldHVybiB0aGlzLl9wYXJ0cy5ob3N0bmFtZT9pLmJ1aWxkSG9zdCh0aGlzLl9wYXJ0cyk6IiI7dmFyIFA9aS5wYXJzZUhvc3QoQSx0aGlzLl9wYXJ0cyk7aWYoUCE9PSIvIil0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSAiJytBKyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li1dJyk7cmV0dXJuIHRoaXMuYnVpbGQoIVMpLHRoaXN9LGYuYXV0aG9yaXR5PWZ1bmN0aW9uKEEsUyl7aWYodGhpcy5fcGFydHMudXJuKXJldHVybiBBPT09dm9pZCAwPyIiOnRoaXM7aWYoQT09PXZvaWQgMClyZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWU/aS5idWlsZEF1dGhvcml0eSh0aGlzLl9wYXJ0cyk6IiI7dmFyIFA9aS5wYXJzZUF1dGhvcml0eShBLHRoaXMuX3BhcnRzKTtpZihQIT09Ii8iKXRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lICInK0ErJyIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuLV0nKTtyZXR1cm4gdGhpcy5idWlsZCghUyksdGhpc30sZi51c2VyaW5mbz1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDApe3ZhciBQPWkuYnVpbGRVc2VyaW5mbyh0aGlzLl9wYXJ0cyk7cmV0dXJuIFAmJlAuc3Vic3RyaW5nKDAsUC5sZW5ndGgtMSl9ZWxzZSByZXR1cm4gQVtBLmxlbmd0aC0xXSE9PSJAIiYmKEErPSJAIiksaS5wYXJzZVVzZXJpbmZvKEEsdGhpcy5fcGFydHMpLHRoaXMuYnVpbGQoIVMpLHRoaXN9LGYucmVzb3VyY2U9ZnVuY3Rpb24oQSxTKXt2YXIgUDtyZXR1cm4gQT09PXZvaWQgMD90aGlzLnBhdGgoKSt0aGlzLnNlYXJjaCgpK3RoaXMuaGFzaCgpOihQPWkucGFyc2UoQSksdGhpcy5fcGFydHMucGF0aD1QLnBhdGgsdGhpcy5fcGFydHMucXVlcnk9UC5xdWVyeSx0aGlzLl9wYXJ0cy5mcmFnbWVudD1QLmZyYWdtZW50LHRoaXMuYnVpbGQoIVMpLHRoaXMpfSxmLnN1YmRvbWFpbj1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDApe2lmKCF0aGlzLl9wYXJ0cy5ob3N0bmFtZXx8dGhpcy5pcygiSVAiKSlyZXR1cm4iIjt2YXIgUD10aGlzLl9wYXJ0cy5ob3N0bmFtZS5sZW5ndGgtdGhpcy5kb21haW4oKS5sZW5ndGgtMTtyZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKDAsUCl8fCIifWVsc2V7dmFyIEY9dGhpcy5fcGFydHMuaG9zdG5hbWUubGVuZ3RoLXRoaXMuZG9tYWluKCkubGVuZ3RoLGo9dGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKDAsRiksSD1uZXcgUmVnRXhwKCJeIitjKGopKTtpZihBJiZBLmNoYXJBdChBLmxlbmd0aC0xKSE9PSIuIiYmKEErPSIuIiksQS5pbmRleE9mKCI6IikhPT0tMSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEb21haW5zIGNhbm5vdCBjb250YWluIGNvbG9ucyIpO3JldHVybiBBJiZpLmVuc3VyZVZhbGlkSG9zdG5hbWUoQSx0aGlzLl9wYXJ0cy5wcm90b2NvbCksdGhpcy5fcGFydHMuaG9zdG5hbWU9dGhpcy5fcGFydHMuaG9zdG5hbWUucmVwbGFjZShILEEpLHRoaXMuYnVpbGQoIVMpLHRoaXN9fSxmLmRvbWFpbj1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKHR5cGVvZiBBPT0iYm9vbGVhbiImJihTPUEsQT12b2lkIDApLEE9PT12b2lkIDApe2lmKCF0aGlzLl9wYXJ0cy5ob3N0bmFtZXx8dGhpcy5pcygiSVAiKSlyZXR1cm4iIjt2YXIgUD10aGlzLl9wYXJ0cy5ob3N0bmFtZS5tYXRjaCgvXC4vZyk7aWYoUCYmUC5sZW5ndGg8MilyZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWU7dmFyIEY9dGhpcy5fcGFydHMuaG9zdG5hbWUubGVuZ3RoLXRoaXMudGxkKFMpLmxlbmd0aC0xO3JldHVybiBGPXRoaXMuX3BhcnRzLmhvc3RuYW1lLmxhc3RJbmRleE9mKCIuIixGLTEpKzEsdGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKEYpfHwiIn1lbHNle2lmKCFBKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbm5vdCBzZXQgZG9tYWluIGVtcHR5Iik7aWYoQS5pbmRleE9mKCI6IikhPT0tMSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEb21haW5zIGNhbm5vdCBjb250YWluIGNvbG9ucyIpO2lmKGkuZW5zdXJlVmFsaWRIb3N0bmFtZShBLHRoaXMuX3BhcnRzLnByb3RvY29sKSwhdGhpcy5fcGFydHMuaG9zdG5hbWV8fHRoaXMuaXMoIklQIikpdGhpcy5fcGFydHMuaG9zdG5hbWU9QTtlbHNle3ZhciBqPW5ldyBSZWdFeHAoYyh0aGlzLmRvbWFpbigpKSsiJCIpO3RoaXMuX3BhcnRzLmhvc3RuYW1lPXRoaXMuX3BhcnRzLmhvc3RuYW1lLnJlcGxhY2UoaixBKX1yZXR1cm4gdGhpcy5idWlsZCghUyksdGhpc319LGYudGxkPWZ1bmN0aW9uKEEsUyl7aWYodGhpcy5fcGFydHMudXJuKXJldHVybiBBPT09dm9pZCAwPyIiOnRoaXM7aWYodHlwZW9mIEE9PSJib29sZWFuIiYmKFM9QSxBPXZvaWQgMCksQT09PXZvaWQgMCl7aWYoIXRoaXMuX3BhcnRzLmhvc3RuYW1lfHx0aGlzLmlzKCJJUCIpKXJldHVybiIiO3ZhciBQPXRoaXMuX3BhcnRzLmhvc3RuYW1lLmxhc3RJbmRleE9mKCIuIiksRj10aGlzLl9wYXJ0cy5ob3N0bmFtZS5zdWJzdHJpbmcoUCsxKTtyZXR1cm4gUyE9PSEwJiZuJiZuLmxpc3RbRi50b0xvd2VyQ2FzZSgpXSYmbi5nZXQodGhpcy5fcGFydHMuaG9zdG5hbWUpfHxGfWVsc2V7dmFyIGo7aWYoQSlpZihBLm1hdGNoKC9bXmEtekEtWjAtOS1dLykpaWYobiYmbi5pcyhBKSlqPW5ldyBSZWdFeHAoYyh0aGlzLnRsZCgpKSsiJCIpLHRoaXMuX3BhcnRzLmhvc3RuYW1lPXRoaXMuX3BhcnRzLmhvc3RuYW1lLnJlcGxhY2UoaixBKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RMRCAiJytBKyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05XScpO2Vsc2V7aWYoIXRoaXMuX3BhcnRzLmhvc3RuYW1lfHx0aGlzLmlzKCJJUCIpKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigiY2Fubm90IHNldCBUTEQgb24gbm9uLWRvbWFpbiBob3N0Iik7aj1uZXcgUmVnRXhwKGModGhpcy50bGQoKSkrIiQiKSx0aGlzLl9wYXJ0cy5ob3N0bmFtZT10aGlzLl9wYXJ0cy5ob3N0bmFtZS5yZXBsYWNlKGosQSl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJjYW5ub3Qgc2V0IFRMRCBlbXB0eSIpO3JldHVybiB0aGlzLmJ1aWxkKCFTKSx0aGlzfX0sZi5kaXJlY3Rvcnk9ZnVuY3Rpb24oQSxTKXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIEE9PT12b2lkIDA/IiI6dGhpcztpZihBPT09dm9pZCAwfHxBPT09ITApe2lmKCF0aGlzLl9wYXJ0cy5wYXRoJiYhdGhpcy5fcGFydHMuaG9zdG5hbWUpcmV0dXJuIiI7aWYodGhpcy5fcGFydHMucGF0aD09PSIvIilyZXR1cm4iLyI7dmFyIFA9dGhpcy5fcGFydHMucGF0aC5sZW5ndGgtdGhpcy5maWxlbmFtZSgpLmxlbmd0aC0xLEY9dGhpcy5fcGFydHMucGF0aC5zdWJzdHJpbmcoMCxQKXx8KHRoaXMuX3BhcnRzLmhvc3RuYW1lPyIvIjoiIik7cmV0dXJuIEE/aS5kZWNvZGVQYXRoKEYpOkZ9ZWxzZXt2YXIgaj10aGlzLl9wYXJ0cy5wYXRoLmxlbmd0aC10aGlzLmZpbGVuYW1lKCkubGVuZ3RoLEg9dGhpcy5fcGFydHMucGF0aC5zdWJzdHJpbmcoMCxqKSxrPW5ldyBSZWdFeHAoIl4iK2MoSCkpO3JldHVybiB0aGlzLmlzKCJyZWxhdGl2ZSIpfHwoQXx8KEE9Ii8iKSxBLmNoYXJBdCgwKSE9PSIvIiYmKEE9Ii8iK0EpKSxBJiZBLmNoYXJBdChBLmxlbmd0aC0xKSE9PSIvIiYmKEErPSIvIiksQT1pLnJlY29kZVBhdGgoQSksdGhpcy5fcGFydHMucGF0aD10aGlzLl9wYXJ0cy5wYXRoLnJlcGxhY2UoayxBKSx0aGlzLmJ1aWxkKCFTKSx0aGlzfX0sZi5maWxlbmFtZT1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKHR5cGVvZiBBIT0ic3RyaW5nIil7aWYoIXRoaXMuX3BhcnRzLnBhdGh8fHRoaXMuX3BhcnRzLnBhdGg9PT0iLyIpcmV0dXJuIiI7dmFyIFA9dGhpcy5fcGFydHMucGF0aC5sYXN0SW5kZXhPZigiLyIpLEY9dGhpcy5fcGFydHMucGF0aC5zdWJzdHJpbmcoUCsxKTtyZXR1cm4gQT9pLmRlY29kZVBhdGhTZWdtZW50KEYpOkZ9ZWxzZXt2YXIgaj0hMTtBLmNoYXJBdCgwKT09PSIvIiYmKEE9QS5zdWJzdHJpbmcoMSkpLEEubWF0Y2goL1wuP1wvLykmJihqPSEwKTt2YXIgSD1uZXcgUmVnRXhwKGModGhpcy5maWxlbmFtZSgpKSsiJCIpO3JldHVybiBBPWkucmVjb2RlUGF0aChBKSx0aGlzLl9wYXJ0cy5wYXRoPXRoaXMuX3BhcnRzLnBhdGgucmVwbGFjZShILEEpLGo/dGhpcy5ub3JtYWxpemVQYXRoKFMpOnRoaXMuYnVpbGQoIVMpLHRoaXN9fSxmLnN1ZmZpeD1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDB8fEE9PT0hMCl7aWYoIXRoaXMuX3BhcnRzLnBhdGh8fHRoaXMuX3BhcnRzLnBhdGg9PT0iLyIpcmV0dXJuIiI7dmFyIFA9dGhpcy5maWxlbmFtZSgpLEY9UC5sYXN0SW5kZXhPZigiLiIpLGosSDtyZXR1cm4gRj09PS0xPyIiOihqPVAuc3Vic3RyaW5nKEYrMSksSD0vXlthLXowLTklXSskL2kudGVzdChqKT9qOiIiLEE/aS5kZWNvZGVQYXRoU2VnbWVudChIKTpIKX1lbHNle0EuY2hhckF0KDApPT09Ii4iJiYoQT1BLnN1YnN0cmluZygxKSk7dmFyIGs9dGhpcy5zdWZmaXgoKSxLO2lmKGspQT9LPW5ldyBSZWdFeHAoYyhrKSsiJCIpOks9bmV3IFJlZ0V4cChjKCIuIitrKSsiJCIpO2Vsc2V7aWYoIUEpcmV0dXJuIHRoaXM7dGhpcy5fcGFydHMucGF0aCs9Ii4iK2kucmVjb2RlUGF0aChBKX1yZXR1cm4gSyYmKEE9aS5yZWNvZGVQYXRoKEEpLHRoaXMuX3BhcnRzLnBhdGg9dGhpcy5fcGFydHMucGF0aC5yZXBsYWNlKEssQSkpLHRoaXMuYnVpbGQoIVMpLHRoaXN9fSxmLnNlZ21lbnQ9ZnVuY3Rpb24oQSxTLFApe3ZhciBGPXRoaXMuX3BhcnRzLnVybj8iOiI6Ii8iLGo9dGhpcy5wYXRoKCksSD1qLnN1YnN0cmluZygwLDEpPT09Ii8iLGs9ai5zcGxpdChGKTtpZihBIT09dm9pZCAwJiZ0eXBlb2YgQSE9Im51bWJlciImJihQPVMsUz1BLEE9dm9pZCAwKSxBIT09dm9pZCAwJiZ0eXBlb2YgQSE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCdCYWQgc2VnbWVudCAiJytBKyciLCBtdXN0IGJlIDAtYmFzZWQgaW50ZWdlcicpO2lmKEgmJmsuc2hpZnQoKSxBPDAmJihBPU1hdGgubWF4KGsubGVuZ3RoK0EsMCkpLFM9PT12b2lkIDApcmV0dXJuIEE9PT12b2lkIDA/azprW0FdO2lmKEE9PT1udWxsfHxrW0FdPT09dm9pZCAwKWlmKHAoUykpe2s9W107Zm9yKHZhciBLPTAsWD1TLmxlbmd0aDtLPFg7SysrKSFTW0tdLmxlbmd0aCYmKCFrLmxlbmd0aHx8IWtbay5sZW5ndGgtMV0ubGVuZ3RoKXx8KGsubGVuZ3RoJiYha1trLmxlbmd0aC0xXS5sZW5ndGgmJmsucG9wKCksay5wdXNoKGcoU1tLXSkpKX1lbHNlKFN8fHR5cGVvZiBTPT0ic3RyaW5nIikmJihTPWcoUyksa1trLmxlbmd0aC0xXT09PSIiP2tbay5sZW5ndGgtMV09UzprLnB1c2goUykpO2Vsc2UgUz9rW0FdPWcoUyk6ay5zcGxpY2UoQSwxKTtyZXR1cm4gSCYmay51bnNoaWZ0KCIiKSx0aGlzLnBhdGgoay5qb2luKEYpLFApfSxmLnNlZ21lbnRDb2RlZD1mdW5jdGlvbihBLFMsUCl7dmFyIEYsaixIO2lmKHR5cGVvZiBBIT0ibnVtYmVyIiYmKFA9UyxTPUEsQT12b2lkIDApLFM9PT12b2lkIDApe2lmKEY9dGhpcy5zZWdtZW50KEEsUyxQKSwhcChGKSlGPUYhPT12b2lkIDA/aS5kZWNvZGUoRik6dm9pZCAwO2Vsc2UgZm9yKGo9MCxIPUYubGVuZ3RoO2o8SDtqKyspRltqXT1pLmRlY29kZShGW2pdKTtyZXR1cm4gRn1pZighcChTKSlTPXR5cGVvZiBTPT0ic3RyaW5nInx8UyBpbnN0YW5jZW9mIFN0cmluZz9pLmVuY29kZShTKTpTO2Vsc2UgZm9yKGo9MCxIPVMubGVuZ3RoO2o8SDtqKyspU1tqXT1pLmVuY29kZShTW2pdKTtyZXR1cm4gdGhpcy5zZWdtZW50KEEsUyxQKX07dmFyIFU9Zi5xdWVyeTtyZXR1cm4gZi5xdWVyeT1mdW5jdGlvbihBLFMpe2lmKEE9PT0hMClyZXR1cm4gaS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO2lmKHR5cGVvZiBBPT0iZnVuY3Rpb24iKXt2YXIgUD1pLnBhcnNlUXVlcnkodGhpcy5fcGFydHMucXVlcnksdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSksRj1BLmNhbGwodGhpcyxQKTtyZXR1cm4gdGhpcy5fcGFydHMucXVlcnk9aS5idWlsZFF1ZXJ5KEZ8fFAsdGhpcy5fcGFydHMuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLHRoaXMuYnVpbGQoIVMpLHRoaXN9ZWxzZSByZXR1cm4gQSE9PXZvaWQgMCYmdHlwZW9mIEEhPSJzdHJpbmciPyh0aGlzLl9wYXJ0cy5xdWVyeT1pLmJ1aWxkUXVlcnkoQSx0aGlzLl9wYXJ0cy5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMsdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSksdGhpcy5idWlsZCghUyksdGhpcyk6VS5jYWxsKHRoaXMsQSxTKX0sZi5zZXRRdWVyeT1mdW5jdGlvbihBLFMsUCl7dmFyIEY9aS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO2lmKHR5cGVvZiBBPT0ic3RyaW5nInx8QSBpbnN0YW5jZW9mIFN0cmluZylGW0FdPVMhPT12b2lkIDA/UzpudWxsO2Vsc2UgaWYodHlwZW9mIEE9PSJvYmplY3QiKWZvcih2YXIgaiBpbiBBKXUuY2FsbChBLGopJiYoRltqXT1BW2pdKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5hZGRRdWVyeSgpIGFjY2VwdHMgYW4gb2JqZWN0LCBzdHJpbmcgYXMgdGhlIG5hbWUgcGFyYW1ldGVyIik7cmV0dXJuIHRoaXMuX3BhcnRzLnF1ZXJ5PWkuYnVpbGRRdWVyeShGLHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSx0eXBlb2YgQSE9InN0cmluZyImJihQPVMpLHRoaXMuYnVpbGQoIVApLHRoaXN9LGYuYWRkUXVlcnk9ZnVuY3Rpb24oQSxTLFApe3ZhciBGPWkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtyZXR1cm4gaS5hZGRRdWVyeShGLEEsUz09PXZvaWQgMD9udWxsOlMpLHRoaXMuX3BhcnRzLnF1ZXJ5PWkuYnVpbGRRdWVyeShGLHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSx0eXBlb2YgQSE9InN0cmluZyImJihQPVMpLHRoaXMuYnVpbGQoIVApLHRoaXN9LGYucmVtb3ZlUXVlcnk9ZnVuY3Rpb24oQSxTLFApe3ZhciBGPWkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtyZXR1cm4gaS5yZW1vdmVRdWVyeShGLEEsUyksdGhpcy5fcGFydHMucXVlcnk9aS5idWlsZFF1ZXJ5KEYsdGhpcy5fcGFydHMuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLHR5cGVvZiBBIT0ic3RyaW5nIiYmKFA9UyksdGhpcy5idWlsZCghUCksdGhpc30sZi5oYXNRdWVyeT1mdW5jdGlvbihBLFMsUCl7dmFyIEY9aS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO3JldHVybiBpLmhhc1F1ZXJ5KEYsQSxTLFApfSxmLnNldFNlYXJjaD1mLnNldFF1ZXJ5LGYuYWRkU2VhcmNoPWYuYWRkUXVlcnksZi5yZW1vdmVTZWFyY2g9Zi5yZW1vdmVRdWVyeSxmLmhhc1NlYXJjaD1mLmhhc1F1ZXJ5LGYubm9ybWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcnRzLnVybj90aGlzLm5vcm1hbGl6ZVByb3RvY29sKCExKS5ub3JtYWxpemVQYXRoKCExKS5ub3JtYWxpemVRdWVyeSghMSkubm9ybWFsaXplRnJhZ21lbnQoITEpLmJ1aWxkKCk6dGhpcy5ub3JtYWxpemVQcm90b2NvbCghMSkubm9ybWFsaXplSG9zdG5hbWUoITEpLm5vcm1hbGl6ZVBvcnQoITEpLm5vcm1hbGl6ZVBhdGgoITEpLm5vcm1hbGl6ZVF1ZXJ5KCExKS5ub3JtYWxpemVGcmFnbWVudCghMSkuYnVpbGQoKX0sZi5ub3JtYWxpemVQcm90b2NvbD1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIHRoaXMuX3BhcnRzLnByb3RvY29sPT0ic3RyaW5nIiYmKHRoaXMuX3BhcnRzLnByb3RvY29sPXRoaXMuX3BhcnRzLnByb3RvY29sLnRvTG93ZXJDYXNlKCksdGhpcy5idWlsZCghQSkpLHRoaXN9LGYubm9ybWFsaXplSG9zdG5hbWU9ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX3BhcnRzLmhvc3RuYW1lJiYodGhpcy5pcygiSUROIikmJnQ/dGhpcy5fcGFydHMuaG9zdG5hbWU9dC50b0FTQ0lJKHRoaXMuX3BhcnRzLmhvc3RuYW1lKTp0aGlzLmlzKCJJUHY2IikmJmUmJih0aGlzLl9wYXJ0cy5ob3N0bmFtZT1lLmJlc3QodGhpcy5fcGFydHMuaG9zdG5hbWUpKSx0aGlzLl9wYXJ0cy5ob3N0bmFtZT10aGlzLl9wYXJ0cy5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLHRoaXMuYnVpbGQoIUEpKSx0aGlzfSxmLm5vcm1hbGl6ZVBvcnQ9ZnVuY3Rpb24oQSl7cmV0dXJuIHR5cGVvZiB0aGlzLl9wYXJ0cy5wcm90b2NvbD09InN0cmluZyImJnRoaXMuX3BhcnRzLnBvcnQ9PT1pLmRlZmF1bHRQb3J0c1t0aGlzLl9wYXJ0cy5wcm90b2NvbF0mJih0aGlzLl9wYXJ0cy5wb3J0PW51bGwsdGhpcy5idWlsZCghQSkpLHRoaXN9LGYubm9ybWFsaXplUGF0aD1mdW5jdGlvbihBKXt2YXIgUz10aGlzLl9wYXJ0cy5wYXRoO2lmKCFTKXJldHVybiB0aGlzO2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gdGhpcy5fcGFydHMucGF0aD1pLnJlY29kZVVyblBhdGgodGhpcy5fcGFydHMucGF0aCksdGhpcy5idWlsZCghQSksdGhpcztpZih0aGlzLl9wYXJ0cy5wYXRoPT09Ii8iKXJldHVybiB0aGlzO1M9aS5yZWNvZGVQYXRoKFMpO3ZhciBQLEY9IiIsaixIO2ZvcihTLmNoYXJBdCgwKSE9PSIvIiYmKFA9ITAsUz0iLyIrUyksKFMuc2xpY2UoLTMpPT09Ii8uLiJ8fFMuc2xpY2UoLTIpPT09Ii8uIikmJihTKz0iLyIpLFM9Uy5yZXBsYWNlKC8oXC8oXC5cLykrKXwoXC9cLiQpL2csIi8iKS5yZXBsYWNlKC9cL3syLH0vZywiLyIpLFAmJihGPVMuc3Vic3RyaW5nKDEpLm1hdGNoKC9eKFwuXC5cLykrLyl8fCIiLEYmJihGPUZbMF0pKTtqPVMuc2VhcmNoKC9cL1wuXC4oXC98JCkvKSxqIT09LTE7KXtpZihqPT09MCl7Uz1TLnN1YnN0cmluZygzKTtjb250aW51ZX1IPVMuc3Vic3RyaW5nKDAsaikubGFzdEluZGV4T2YoIi8iKSxIPT09LTEmJihIPWopLFM9Uy5zdWJzdHJpbmcoMCxIKStTLnN1YnN0cmluZyhqKzMpfXJldHVybiBQJiZ0aGlzLmlzKCJyZWxhdGl2ZSIpJiYoUz1GK1Muc3Vic3RyaW5nKDEpKSx0aGlzLl9wYXJ0cy5wYXRoPVMsdGhpcy5idWlsZCghQSksdGhpc30sZi5ub3JtYWxpemVQYXRobmFtZT1mLm5vcm1hbGl6ZVBhdGgsZi5ub3JtYWxpemVRdWVyeT1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIHRoaXMuX3BhcnRzLnF1ZXJ5PT0ic3RyaW5nIiYmKHRoaXMuX3BhcnRzLnF1ZXJ5Lmxlbmd0aD90aGlzLnF1ZXJ5KGkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSk6dGhpcy5fcGFydHMucXVlcnk9bnVsbCx0aGlzLmJ1aWxkKCFBKSksdGhpc30sZi5ub3JtYWxpemVGcmFnbWVudD1mdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5fcGFydHMuZnJhZ21lbnR8fCh0aGlzLl9wYXJ0cy5mcmFnbWVudD1udWxsLHRoaXMuYnVpbGQoIUEpKSx0aGlzfSxmLm5vcm1hbGl6ZVNlYXJjaD1mLm5vcm1hbGl6ZVF1ZXJ5LGYubm9ybWFsaXplSGFzaD1mLm5vcm1hbGl6ZUZyYWdtZW50LGYuaXNvODg1OT1mdW5jdGlvbigpe3ZhciBBPWkuZW5jb2RlLFM9aS5kZWNvZGU7aS5lbmNvZGU9ZXNjYXBlLGkuZGVjb2RlPWRlY29kZVVSSUNvbXBvbmVudDt0cnl7dGhpcy5ub3JtYWxpemUoKX1maW5hbGx5e2kuZW5jb2RlPUEsaS5kZWNvZGU9U31yZXR1cm4gdGhpc30sZi51bmljb2RlPWZ1bmN0aW9uKCl7dmFyIEE9aS5lbmNvZGUsUz1pLmRlY29kZTtpLmVuY29kZT1PLGkuZGVjb2RlPXVuZXNjYXBlO3RyeXt0aGlzLm5vcm1hbGl6ZSgpfWZpbmFsbHl7aS5lbmNvZGU9QSxpLmRlY29kZT1TfXJldHVybiB0aGlzfSxmLnJlYWRhYmxlPWZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5jbG9uZSgpO0EudXNlcm5hbWUoIiIpLnBhc3N3b3JkKCIiKS5ub3JtYWxpemUoKTt2YXIgUz0iIjtpZihBLl9wYXJ0cy5wcm90b2NvbCYmKFMrPUEuX3BhcnRzLnByb3RvY29sKyI6Ly8iKSxBLl9wYXJ0cy5ob3N0bmFtZSYmKEEuaXMoInB1bnljb2RlIikmJnQ/KFMrPXQudG9Vbmljb2RlKEEuX3BhcnRzLmhvc3RuYW1lKSxBLl9wYXJ0cy5wb3J0JiYoUys9IjoiK0EuX3BhcnRzLnBvcnQpKTpTKz1BLmhvc3QoKSksQS5fcGFydHMuaG9zdG5hbWUmJkEuX3BhcnRzLnBhdGgmJkEuX3BhcnRzLnBhdGguY2hhckF0KDApIT09Ii8iJiYoUys9Ii8iKSxTKz1BLnBhdGgoITApLEEuX3BhcnRzLnF1ZXJ5KXtmb3IodmFyIFA9IiIsRj0wLGo9QS5fcGFydHMucXVlcnkuc3BsaXQoIiYiKSxIPWoubGVuZ3RoO0Y8SDtGKyspe3ZhciBrPShqW0ZdfHwiIikuc3BsaXQoIj0iKTtQKz0iJiIraS5kZWNvZGVRdWVyeShrWzBdLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLnJlcGxhY2UoLyYvZywiJTI2Iiksa1sxXSE9PXZvaWQgMCYmKFArPSI9IitpLmRlY29kZVF1ZXJ5KGtbMV0sdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSkucmVwbGFjZSgvJi9nLCIlMjYiKSl9Uys9Ij8iK1Auc3Vic3RyaW5nKDEpfXJldHVybiBTKz1pLmRlY29kZVF1ZXJ5KEEuaGFzaCgpLCEwKSxTfSxmLmFic29sdXRlVG89ZnVuY3Rpb24oQSl7dmFyIFM9dGhpcy5jbG9uZSgpLFA9WyJwcm90b2NvbCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJob3N0bmFtZSIsInBvcnQiXSxGLGosSDtpZih0aGlzLl9wYXJ0cy51cm4pdGhyb3cgbmV3IEVycm9yKCJVUk5zIGRvIG5vdCBoYXZlIGFueSBnZW5lcmFsbHkgZGVmaW5lZCBoaWVyYXJjaGljYWwgY29tcG9uZW50cyIpO2lmKEEgaW5zdGFuY2VvZiBpfHwoQT1uZXcgaShBKSksUy5fcGFydHMucHJvdG9jb2x8fChTLl9wYXJ0cy5wcm90b2NvbD1BLl9wYXJ0cy5wcm90b2NvbCx0aGlzLl9wYXJ0cy5ob3N0bmFtZSkpcmV0dXJuIFM7Zm9yKGo9MDtIPVBbal07aisrKVMuX3BhcnRzW0hdPUEuX3BhcnRzW0hdO3JldHVybiBTLl9wYXJ0cy5wYXRoPyhTLl9wYXJ0cy5wYXRoLnN1YnN0cmluZygtMik9PT0iLi4iJiYoUy5fcGFydHMucGF0aCs9Ii8iKSxTLnBhdGgoKS5jaGFyQXQoMCkhPT0iLyImJihGPUEuZGlyZWN0b3J5KCksRj1GfHwoQS5wYXRoKCkuaW5kZXhPZigiLyIpPT09MD8iLyI6IiIpLFMuX3BhcnRzLnBhdGg9KEY/RisiLyI6IiIpK1MuX3BhcnRzLnBhdGgsUy5ub3JtYWxpemVQYXRoKCkpKTooUy5fcGFydHMucGF0aD1BLl9wYXJ0cy5wYXRoLFMuX3BhcnRzLnF1ZXJ5fHwoUy5fcGFydHMucXVlcnk9QS5fcGFydHMucXVlcnkpKSxTLmJ1aWxkKCksU30sZi5yZWxhdGl2ZVRvPWZ1bmN0aW9uKEEpe3ZhciBTPXRoaXMuY2xvbmUoKS5ub3JtYWxpemUoKSxQLEYsaixILGs7aWYoUy5fcGFydHMudXJuKXRocm93IG5ldyBFcnJvcigiVVJOcyBkbyBub3QgaGF2ZSBhbnkgZ2VuZXJhbGx5IGRlZmluZWQgaGllcmFyY2hpY2FsIGNvbXBvbmVudHMiKTtpZihBPW5ldyBpKEEpLm5vcm1hbGl6ZSgpLFA9Uy5fcGFydHMsRj1BLl9wYXJ0cyxIPVMucGF0aCgpLGs9QS5wYXRoKCksSC5jaGFyQXQoMCkhPT0iLyIpdGhyb3cgbmV3IEVycm9yKCJVUkkgaXMgYWxyZWFkeSByZWxhdGl2ZSIpO2lmKGsuY2hhckF0KDApIT09Ii8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNhbGN1bGF0ZSBhIFVSSSByZWxhdGl2ZSB0byBhbm90aGVyIHJlbGF0aXZlIFVSSSIpO2lmKFAucHJvdG9jb2w9PT1GLnByb3RvY29sJiYoUC5wcm90b2NvbD1udWxsKSxQLnVzZXJuYW1lIT09Ri51c2VybmFtZXx8UC5wYXNzd29yZCE9PUYucGFzc3dvcmR8fFAucHJvdG9jb2whPT1udWxsfHxQLnVzZXJuYW1lIT09bnVsbHx8UC5wYXNzd29yZCE9PW51bGwpcmV0dXJuIFMuYnVpbGQoKTtpZihQLmhvc3RuYW1lPT09Ri5ob3N0bmFtZSYmUC5wb3J0PT09Ri5wb3J0KVAuaG9zdG5hbWU9bnVsbCxQLnBvcnQ9bnVsbDtlbHNlIHJldHVybiBTLmJ1aWxkKCk7aWYoSD09PWspcmV0dXJuIFAucGF0aD0iIixTLmJ1aWxkKCk7aWYoaj1pLmNvbW1vblBhdGgoSCxrKSwhailyZXR1cm4gUy5idWlsZCgpO3ZhciBLPUYucGF0aC5zdWJzdHJpbmcoai5sZW5ndGgpLnJlcGxhY2UoL1teXC9dKiQvLCIiKS5yZXBsYWNlKC8uKj9cLy9nLCIuLi8iKTtyZXR1cm4gUC5wYXRoPUsrUC5wYXRoLnN1YnN0cmluZyhqLmxlbmd0aCl8fCIuLyIsUy5idWlsZCgpfSxmLmVxdWFscz1mdW5jdGlvbihBKXt2YXIgUz10aGlzLmNsb25lKCksUD1uZXcgaShBKSxGPXt9LGo9e30sSD17fSxrLEssWDtpZihTLm5vcm1hbGl6ZSgpLFAubm9ybWFsaXplKCksUy50b1N0cmluZygpPT09UC50b1N0cmluZygpKXJldHVybiEwO2lmKGs9Uy5xdWVyeSgpLEs9UC5xdWVyeSgpLFMucXVlcnkoIiIpLFAucXVlcnkoIiIpLFMudG9TdHJpbmcoKSE9PVAudG9TdHJpbmcoKXx8ay5sZW5ndGghPT1LLmxlbmd0aClyZXR1cm4hMTtGPWkucGFyc2VRdWVyeShrLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLGo9aS5wYXJzZVF1ZXJ5KEssdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSk7Zm9yKFggaW4gRilpZih1LmNhbGwoRixYKSl7aWYocChGW1hdKSl7aWYoIV8oRltYXSxqW1hdKSlyZXR1cm4hMX1lbHNlIGlmKEZbWF0hPT1qW1hdKXJldHVybiExO0hbWF09ITB9Zm9yKFggaW4gailpZih1LmNhbGwoaixYKSYmIUhbWF0pcmV0dXJuITE7cmV0dXJuITB9LGYucHJldmVudEludmFsaWRIb3N0bmFtZT1mdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5fcGFydHMucHJldmVudEludmFsaWRIb3N0bmFtZT0hIUEsdGhpc30sZi5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnM9ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycz0hIUEsdGhpc30sZi5lc2NhcGVRdWVyeVNwYWNlPWZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlPSEhQSx0aGlzfSxpfSl9KTtmdW5jdGlvbiBHeCh0KXtyZXR1cm4odC5sZW5ndGg9PT0wfHx0W3QubGVuZ3RoLTFdIT09Ii8iKSYmKHQ9YCR7dH0vYCksdH12YXIgUTEsSjE9WigoKT0+e1ExPUd4fSk7ZnVuY3Rpb24gdEEodCxlKXtpZih0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiB0O2U9eChlLCExKTtsZXQgbj1uZXcgdC5jb25zdHJ1Y3Rvcjtmb3IobGV0IG8gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG8pKXtsZXQgcj10W29dO2UmJihyPXRBKHIsZSkpLG5bb109cn1yZXR1cm4gbn12YXIgUWMsZUE9WigoKT0+e0l0KCk7UWM9dEF9KTtmdW5jdGlvbiBuQSh0LGUsbil7bj14KG4sITEpO2xldCBvPXt9LHI9aCh0KSxpPWgoZSkscyxmLHU7aWYocilmb3IocyBpbiB0KXQuaGFzT3duUHJvcGVydHkocykmJihmPXRbc10saSYmbiYmdHlwZW9mIGY9PSJvYmplY3QiJiZlLmhhc093blByb3BlcnR5KHMpPyh1PWVbc10sdHlwZW9mIHU9PSJvYmplY3QiP29bc109bkEoZix1LG4pOm9bc109Zik6b1tzXT1mKTtpZihpKWZvcihzIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShzKSYmIW8uaGFzT3duUHJvcGVydHkocykmJih1PWVbc10sb1tzXT11KTtyZXR1cm4gb312YXIgeXIseXA9WigoKT0+e0l0KCk7YXQoKTt5cj1uQX0pO2Z1bmN0aW9uIHp4KCl7bGV0IHQsZSxuPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG8scil7dD1vLGU9cn0pO3JldHVybntyZXNvbHZlOnQscmVqZWN0OmUscHJvbWlzZTpufX12YXIgcXMscmg9WigoKT0+e3FzPXp4fSk7ZnVuY3Rpb24gaWgodCxlKXtsZXQgbjtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PCJ1IiYmKG49ZG9jdW1lbnQpLGloLl9pbXBsZW1lbnRhdGlvbih0LGUsbil9dmFyIG9BLG1mLHNoPVooKCk9PntvQT1tbyhIcygpLDEpO0l0KCk7YXQoKTtIdCgpO2loLl9pbXBsZW1lbnRhdGlvbj1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInJlbGF0aXZlIHVyaSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl7aWYodHlwZW9mIG4+InUiKXJldHVybiB0O2U9eChuLmJhc2VVUkksbi5sb2NhdGlvbi5ocmVmKX1sZXQgbz1uZXcgb0EuZGVmYXVsdCh0KTtyZXR1cm4gby5zY2hlbWUoKSE9PSIiP28udG9TdHJpbmcoKTpvLmFic29sdXRlVG8oZSkudG9TdHJpbmcoKX07bWY9aWh9KTtmdW5jdGlvbiBqeCh0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ1cmkgaXMgcmVxdWlyZWQuIik7bGV0IG49IiIsbz10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIG8hPT0tMSYmKG49dC5zdWJzdHJpbmcoMCxvKzEpKSxlJiYodD1uZXcgckEuZGVmYXVsdCh0KSx0LnF1ZXJ5KCkubGVuZ3RoIT09MCYmKG4rPWA/JHt0LnF1ZXJ5KCl9YCksdC5mcmFnbWVudCgpLmxlbmd0aCE9PTAmJihuKz1gIyR7dC5mcmFnbWVudCgpfWApKSxufXZhciByQSxpQSxzQT1aKCgpPT57ckE9bW8oSHMoKSwxKTthdCgpO0h0KCk7aUE9anh9KTtmdW5jdGlvbiBIeCh0KXtpZighaCh0KSl0aHJvdyBuZXcgQigidXJpIGlzIHJlcXVpcmVkLiIpO2xldCBlPW5ldyBjQS5kZWZhdWx0KHQpO2Uubm9ybWFsaXplKCk7bGV0IG49ZS5wYXRoKCksbz1uLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIG8hPT0tMSYmKG49bi5zdWJzdHIobysxKSksbz1uLmxhc3RJbmRleE9mKCIuIiksbz09PS0xP249IiI6bj1uLnN1YnN0cihvKzEpLG59dmFyIGNBLGFBLGZBPVooKCk9PntjQT1tbyhIcygpLDEpO2F0KCk7SHQoKTthQT1IeH0pO2Z1bmN0aW9uIHF4KHQsZSxuKXtoKGUpfHwoZT10LndpZHRoKSxoKG4pfHwobj10LmhlaWdodCk7bGV0IG89dUFbZV07aChvKXx8KG89e30sdUFbZV09byk7bGV0IHI9b1tuXTtpZighaChyKSl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7aS53aWR0aD1lLGkuaGVpZ2h0PW4scj1pLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSksci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLG9bbl09cn1yZXR1cm4gci5kcmF3SW1hZ2UodCwwLDAsZSxuKSxyLmdldEltYWdlRGF0YSgwLDAsZSxuKS5kYXRhfXZhciB1QSxjaCxsQT1aKCgpPT57YXQoKTt1QT17fTtjaD1xeH0pO2Z1bmN0aW9uIFd4KHQpe3JldHVybiB5LnR5cGVPZi5zdHJpbmcoInVyaSIsdCksS3gudGVzdCh0KX12YXIgS3gsZ3AsYWg9WigoKT0+e1l0KCk7S3g9L15ibG9iOi9pO2dwPVd4fSk7ZnVuY3Rpb24gWHgodCl7aCh0aSl8fCh0aT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLHRpLmhyZWY9d2luZG93LmxvY2F0aW9uLmhyZWY7bGV0IGU9dGkuaG9zdCxuPXRpLnByb3RvY29sO3JldHVybiB0aS5ocmVmPXQsdGkuaHJlZj10aS5ocmVmLG4hPT10aS5wcm90b2NvbHx8ZSE9PXRpLmhvc3R9dmFyIHRpLHBBLGRBPVooKCk9PnthdCgpO3BBPVh4fSk7ZnVuY3Rpb24gJHgodCl7cmV0dXJuIHkudHlwZU9mLnN0cmluZygidXJpIix0KSxZeC50ZXN0KHQpfXZhciBZeCxBcCxmaD1aKCgpPT57WXQoKTtZeD0vXmRhdGE6L2k7QXA9JHh9KTtmdW5jdGlvbiBaeCh0KXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyZXR1cm4gZS5hc3luYz0hMCxlLnNyYz10LG5ldyBQcm9taXNlKChuLG8pPT57d2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQmJmUuc2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIsImFub255bW91cyIpO2xldCByPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD12b2lkIDAsci5yZW1vdmVDaGlsZChlKSxuKCl9LGUub25lcnJvcj1mdW5jdGlvbihpKXtvKGkpfSxyLmFwcGVuZENoaWxkKGUpfSl9dmFyIG1BLGhBPVooKCk9PnttQT1aeH0pO2Z1bmN0aW9uIFF4KHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJvYmogaXMgcmVxdWlyZWQuIik7bGV0IGU9IiI7Zm9yKGxldCBuIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShuKSl7bGV0IG89dFtuXSxyPWAke2VuY29kZVVSSUNvbXBvbmVudChuKX09YDtpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgaT0wLHM9by5sZW5ndGg7aTxzOysraSllKz1gJHtyK2VuY29kZVVSSUNvbXBvbmVudChvW2ldKX0mYDtlbHNlIGUrPWAke3IrZW5jb2RlVVJJQ29tcG9uZW50KG8pfSZgfXJldHVybiBlPWUuc2xpY2UoMCwtMSksZX12YXIgX0EseUE9WigoKT0+e2F0KCk7SHQoKTtfQT1ReH0pO2Z1bmN0aW9uIEp4KHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJxdWVyeVN0cmluZyBpcyByZXF1aXJlZC4iKTtsZXQgZT17fTtpZih0PT09IiIpcmV0dXJuIGU7bGV0IG49dC5yZXBsYWNlKC9cKy9nLCIlMjAiKS5zcGxpdCgvWyY7XS8pO2ZvcihsZXQgbz0wLHI9bi5sZW5ndGg7bzxyOysrbyl7bGV0IGk9bltvXS5zcGxpdCgiPSIpLHM9ZGVjb2RlVVJJQ29tcG9uZW50KGlbMF0pLGY9aVsxXTtoKGYpP2Y9ZGVjb2RlVVJJQ29tcG9uZW50KGYpOmY9IiI7bGV0IHU9ZVtzXTt0eXBlb2YgdT09InN0cmluZyI/ZVtzXT1bdSxmXTpBcnJheS5pc0FycmF5KHUpP3UucHVzaChmKTplW3NdPWZ9cmV0dXJuIGV9dmFyIGdBLEFBPVooKCk9PnthdCgpO0h0KCk7Z0E9Snh9KTt2YXIgdFAsUm4sYnA9WigoKT0+e3RQPXtVTklTU1VFRDowLElTU1VFRDoxLEFDVElWRToyLFJFQ0VJVkVEOjMsQ0FOQ0VMTEVEOjQsRkFJTEVEOjV9LFJuPU9iamVjdC5mcmVlemUodFApfSk7dmFyIGVQLGJBLHdBPVooKCk9PntlUD17VEVSUkFJTjowLElNQUdFUlk6MSxUSUxFUzNEOjIsT1RIRVI6M30sYkE9T2JqZWN0LmZyZWV6ZShlUCl9KTtmdW5jdGlvbiB3cCh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9eCh0LnRocm90dGxlQnlTZXJ2ZXIsITEpLG49eCh0LnRocm90dGxlLCExKTt0aGlzLnVybD10LnVybCx0aGlzLnJlcXVlc3RGdW5jdGlvbj10LnJlcXVlc3RGdW5jdGlvbix0aGlzLmNhbmNlbEZ1bmN0aW9uPXQuY2FuY2VsRnVuY3Rpb24sdGhpcy5wcmlvcml0eUZ1bmN0aW9uPXQucHJpb3JpdHlGdW5jdGlvbix0aGlzLnByaW9yaXR5PXgodC5wcmlvcml0eSwwKSx0aGlzLnRocm90dGxlPW4sdGhpcy50aHJvdHRsZUJ5U2VydmVyPWUsdGhpcy50eXBlPXgodC50eXBlLGJBLk9USEVSKSx0aGlzLnNlcnZlcktleT10LnNlcnZlcktleSx0aGlzLnN0YXRlPVJuLlVOSVNTVUVELHRoaXMuZGVmZXJyZWQ9dm9pZCAwLHRoaXMuY2FuY2VsbGVkPSExfXZhciBUQSxPQT1aKCgpPT57SXQoKTthdCgpO2JwKCk7d0EoKTt3cC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxsZWQ9ITB9O3dwLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KT8odC51cmw9dGhpcy51cmwsdC5yZXF1ZXN0RnVuY3Rpb249dGhpcy5yZXF1ZXN0RnVuY3Rpb24sdC5jYW5jZWxGdW5jdGlvbj10aGlzLmNhbmNlbEZ1bmN0aW9uLHQucHJpb3JpdHlGdW5jdGlvbj10aGlzLnByaW9yaXR5RnVuY3Rpb24sdC5wcmlvcml0eT10aGlzLnByaW9yaXR5LHQudGhyb3R0bGU9dGhpcy50aHJvdHRsZSx0LnRocm90dGxlQnlTZXJ2ZXI9dGhpcy50aHJvdHRsZUJ5U2VydmVyLHQudHlwZT10aGlzLnR5cGUsdC5zZXJ2ZXJLZXk9dGhpcy5zZXJ2ZXJLZXksdC5zdGF0ZT1Sbi5VTklTU1VFRCx0LmRlZmVycmVkPXZvaWQgMCx0LmNhbmNlbGxlZD0hMSx0KTpuZXcgd3AodGhpcyl9O1RBPXdwfSk7ZnVuY3Rpb24gblAodCl7bGV0IGU9e307aWYoIXQpcmV0dXJuIGU7bGV0IG49dC5zcGxpdChgXHIKYCk7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDsrK28pe2xldCByPW5bb10saT1yLmluZGV4T2YoIjogIik7aWYoaT4wKXtsZXQgcz1yLnN1YnN0cmluZygwLGkpLGY9ci5zdWJzdHJpbmcoaSsyKTtlW3NdPWZ9fXJldHVybiBlfXZhciBFQSxSQT1aKCgpPT57RUE9blB9KTtmdW5jdGlvbiBTQSh0LGUsbil7dGhpcy5zdGF0dXNDb2RlPXQsdGhpcy5yZXNwb25zZT1lLHRoaXMucmVzcG9uc2VIZWFkZXJzPW4sdHlwZW9mIHRoaXMucmVzcG9uc2VIZWFkZXJzPT0ic3RyaW5nIiYmKHRoaXMucmVzcG9uc2VIZWFkZXJzPUVBKHRoaXMucmVzcG9uc2VIZWFkZXJzKSl9dmFyIGhmLENBPVooKCk9PnthdCgpO1JBKCk7U0EucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7bGV0IHQ9IlJlcXVlc3QgaGFzIGZhaWxlZC4iO3JldHVybiBoKHRoaXMuc3RhdHVzQ29kZSkmJih0Kz1gIFN0YXR1cyBDb2RlOiAke3RoaXMuc3RhdHVzQ29kZX1gKSx0fTtoZj1TQX0pO2Z1bmN0aW9uIF9mKCl7dGhpcy5fbGlzdGVuZXJzPVtdLHRoaXMuX3Njb3Blcz1bXSx0aGlzLl90b1JlbW92ZT1bXSx0aGlzLl9pbnNpZGVSYWlzZUV2ZW50PSExfWZ1bmN0aW9uIG9QKHQsZSl7cmV0dXJuIGUtdH12YXIgeEEsUEE9WigoKT0+e1l0KCk7YXQoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhfZi5wcm90b3R5cGUse251bWJlck9mTGlzdGVuZXJzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzLmxlbmd0aC10aGlzLl90b1JlbW92ZS5sZW5ndGh9fX0pO19mLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2YuZnVuYygibGlzdGVuZXIiLHQpLHRoaXMuX2xpc3RlbmVycy5wdXNoKHQpLHRoaXMuX3Njb3Blcy5wdXNoKGUpO2xldCBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7bi5yZW1vdmVFdmVudExpc3RlbmVyKHQsZSl9fTtfZi5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLmZ1bmMoImxpc3RlbmVyIix0KTtsZXQgbj10aGlzLl9saXN0ZW5lcnMsbz10aGlzLl9zY29wZXMscj0tMTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKylpZihuW2ldPT09dCYmb1tpXT09PWUpe3I9aTticmVha31yZXR1cm4gciE9PS0xPyh0aGlzLl9pbnNpZGVSYWlzZUV2ZW50Pyh0aGlzLl90b1JlbW92ZS5wdXNoKHIpLG5bcl09dm9pZCAwLG9bcl09dm9pZCAwKToobi5zcGxpY2UociwxKSxvLnNwbGljZShyLDEpKSwhMCk6ITF9O19mLnByb3RvdHlwZS5yYWlzZUV2ZW50PWZ1bmN0aW9uKCl7dGhpcy5faW5zaWRlUmFpc2VFdmVudD0hMDtsZXQgdCxlPXRoaXMuX2xpc3RlbmVycyxuPXRoaXMuX3Njb3BlcyxvPWUubGVuZ3RoO2Zvcih0PTA7dDxvO3QrKyl7bGV0IGk9ZVt0XTtoKGkpJiZlW3RdLmFwcGx5KG5bdF0sYXJndW1lbnRzKX1sZXQgcj10aGlzLl90b1JlbW92ZTtpZihvPXIubGVuZ3RoLG8+MCl7Zm9yKHIuc29ydChvUCksdD0wO3Q8bzt0Kyspe2xldCBpPXJbdF07ZS5zcGxpY2UoaSwxKSxuLnNwbGljZShpLDEpfXIubGVuZ3RoPTB9dGhpcy5faW5zaWRlUmFpc2VFdmVudD0hMX07eEE9X2Z9KTtmdW5jdGlvbiBLcyh0KXt5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMiLHQpLHkuZGVmaW5lZCgib3B0aW9ucy5jb21wYXJhdG9yIix0LmNvbXBhcmF0b3IpLHRoaXMuX2NvbXBhcmF0b3I9dC5jb21wYXJhdG9yLHRoaXMuX2FycmF5PVtdLHRoaXMuX2xlbmd0aD0wLHRoaXMuX21heGltdW1MZW5ndGg9dm9pZCAwfWZ1bmN0aW9uIHVoKHQsZSxuKXtsZXQgbz10W2VdO3RbZV09dFtuXSx0W25dPW99dmFyIE1BLE5BPVooKCk9PntZdCgpO0l0KCk7YXQoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhLcy5wcm90b3R5cGUse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xlbmd0aH19LGludGVybmFsQXJyYXk6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnJheX19LG1heGltdW1MZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhpbXVtTGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIm1heGltdW1MZW5ndGgiLHQsMCk7bGV0IGU9dGhpcy5fbGVuZ3RoO2lmKHQ8ZSl7bGV0IG49dGhpcy5fYXJyYXk7Zm9yKGxldCBvPXQ7bzxlOysrbyluW29dPXZvaWQgMDt0aGlzLl9sZW5ndGg9dCxuLmxlbmd0aD10fXRoaXMuX21heGltdW1MZW5ndGg9dH19LGNvbXBhcmF0b3I6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21wYXJhdG9yfX19KTtLcy5wcm90b3R5cGUucmVzZXJ2ZT1mdW5jdGlvbih0KXt0PXgodCx0aGlzLl9sZW5ndGgpLHRoaXMuX2FycmF5Lmxlbmd0aD10fTtLcy5wcm90b3R5cGUuaGVhcGlmeT1mdW5jdGlvbih0KXt0PXgodCwwKTtsZXQgZT10aGlzLl9sZW5ndGgsbj10aGlzLl9jb21wYXJhdG9yLG89dGhpcy5fYXJyYXkscj0tMSxpPSEwO2Zvcig7aTspe2xldCBzPTIqKHQrMSksZj1zLTE7ZjxlJiZuKG9bZl0sb1t0XSk8MD9yPWY6cj10LHM8ZSYmbihvW3NdLG9bcl0pPDAmJihyPXMpLHIhPT10Pyh1aChvLHIsdCksdD1yKTppPSExfX07S3MucHJvdG90eXBlLnJlc29ydD1mdW5jdGlvbigpe2xldCB0PXRoaXMuX2xlbmd0aDtmb3IobGV0IGU9TWF0aC5jZWlsKHQvMik7ZT49MDstLWUpdGhpcy5oZWFwaWZ5KGUpfTtLcy5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQpe3kuZGVmaW5lZCgiZWxlbWVudCIsdCk7bGV0IGU9dGhpcy5fYXJyYXksbj10aGlzLl9jb21wYXJhdG9yLG89dGhpcy5fbWF4aW11bUxlbmd0aCxyPXRoaXMuX2xlbmd0aCsrO2ZvcihyPGUubGVuZ3RoP2Vbcl09dDplLnB1c2godCk7ciE9PTA7KXtsZXQgcz1NYXRoLmZsb29yKChyLTEpLzIpO2lmKG4oZVtyXSxlW3NdKTwwKXVoKGUscixzKSxyPXM7ZWxzZSBicmVha31sZXQgaTtyZXR1cm4gaChvKSYmdGhpcy5fbGVuZ3RoPm8mJihpPWVbb10sdGhpcy5fbGVuZ3RoPW8pLGl9O0tzLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24odCl7aWYodD14KHQsMCksdGhpcy5fbGVuZ3RoPT09MClyZXR1cm47eS50eXBlT2YubnVtYmVyLmxlc3NUaGFuKCJpbmRleCIsdCx0aGlzLl9sZW5ndGgpO2xldCBlPXRoaXMuX2FycmF5LG49ZVt0XTtyZXR1cm4gdWgoZSx0LC0tdGhpcy5fbGVuZ3RoKSx0aGlzLmhlYXBpZnkodCksZVt0aGlzLl9sZW5ndGhdPXZvaWQgMCxufTtNQT1Lc30pO2Z1bmN0aW9uIHJQKHQsZSl7cmV0dXJuIHQucHJpb3JpdHktZS5wcmlvcml0eX1mdW5jdGlvbiBibigpe31mdW5jdGlvbiBJQSh0KXtoKHQucHJpb3JpdHlGdW5jdGlvbikmJih0LnByaW9yaXR5PXQucHJpb3JpdHlGdW5jdGlvbigpKX1mdW5jdGlvbiB2QSh0KXtyZXR1cm4gdC5zdGF0ZT09PVJuLlVOSVNTVUVEJiYodC5zdGF0ZT1Sbi5JU1NVRUQsdC5kZWZlcnJlZD1xcygpKSx0LmRlZmVycmVkLnByb21pc2V9ZnVuY3Rpb24gc1AodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHQuc3RhdGU9PT1Sbi5DQU5DRUxMRUQpcmV0dXJuO2xldCBuPXQuZGVmZXJyZWQ7LS1qZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzLC0tUGlbdC5zZXJ2ZXJLZXldLE9wLnJhaXNlRXZlbnQoKSx0LnN0YXRlPVJuLlJFQ0VJVkVELHQuZGVmZXJyZWQ9dm9pZCAwLG4ucmVzb2x2ZShlKX19ZnVuY3Rpb24gY1AodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3Quc3RhdGUhPT1Sbi5DQU5DRUxMRUQmJigrK2plLm51bWJlck9mRmFpbGVkUmVxdWVzdHMsLS1qZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzLC0tUGlbdC5zZXJ2ZXJLZXldLE9wLnJhaXNlRXZlbnQoZSksdC5zdGF0ZT1Sbi5GQUlMRUQsdC5kZWZlcnJlZC5yZWplY3QoZSkpfX1mdW5jdGlvbiBEQSh0KXtsZXQgZT12QSh0KTtyZXR1cm4gdC5zdGF0ZT1Sbi5BQ1RJVkUsZWkucHVzaCh0KSwrK2plLm51bWJlck9mQWN0aXZlUmVxdWVzdHMsKytqZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzRXZlciwrK1BpW3Quc2VydmVyS2V5XSx0LnJlcXVlc3RGdW5jdGlvbigpLnRoZW4oc1AodCkpLmNhdGNoKGNQKHQpKSxlfWZ1bmN0aW9uIFdzKHQpe2xldCBlPXQuc3RhdGU9PT1Sbi5BQ1RJVkU7aWYodC5zdGF0ZT1Sbi5DQU5DRUxMRUQsKytqZS5udW1iZXJPZkNhbmNlbGxlZFJlcXVlc3RzLGgodC5kZWZlcnJlZCkpe2xldCBuPXQuZGVmZXJyZWQ7dC5kZWZlcnJlZD12b2lkIDAsbi5yZWplY3QoKX1lJiYoLS1qZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzLC0tUGlbdC5zZXJ2ZXJLZXldLCsramUubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0cyksaCh0LmNhbmNlbEZ1bmN0aW9uKSYmdC5jYW5jZWxGdW5jdGlvbigpfWZ1bmN0aW9uIGFQKCl7Ym4uZGVidWdTaG93U3RhdGlzdGljcyYmKGplLm51bWJlck9mQWN0aXZlUmVxdWVzdHM9PT0wJiZqZS5sYXN0TnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cz4wJiYoamUubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0cz4wJiYoY29uc29sZS5sb2coYE51bWJlciBvZiBhdHRlbXB0ZWQgcmVxdWVzdHM6ICR7amUubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0c31gKSxqZS5udW1iZXJPZkF0dGVtcHRlZFJlcXVlc3RzPTApLGplLm51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHM+MCYmKGNvbnNvbGUubG9nKGBOdW1iZXIgb2YgY2FuY2VsbGVkIHJlcXVlc3RzOiAke2plLm51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHN9YCksamUubnVtYmVyT2ZDYW5jZWxsZWRSZXF1ZXN0cz0wKSxqZS5udW1iZXJPZkNhbmNlbGxlZEFjdGl2ZVJlcXVlc3RzPjAmJihjb25zb2xlLmxvZyhgTnVtYmVyIG9mIGNhbmNlbGxlZCBhY3RpdmUgcmVxdWVzdHM6ICR7amUubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0c31gKSxqZS5udW1iZXJPZkNhbmNlbGxlZEFjdGl2ZVJlcXVlc3RzPTApLGplLm51bWJlck9mRmFpbGVkUmVxdWVzdHM+MCYmKGNvbnNvbGUubG9nKGBOdW1iZXIgb2YgZmFpbGVkIHJlcXVlc3RzOiAke2plLm51bWJlck9mRmFpbGVkUmVxdWVzdHN9YCksamUubnVtYmVyT2ZGYWlsZWRSZXF1ZXN0cz0wKSksamUubGFzdE51bWJlck9mQWN0aXZlUmVxdWVzdHM9amUubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cyl9dmFyIFRwLGplLEpjLE9vLGVpLFBpLGlQLE9wLEVwLExBPVooKCk9PntUcD1tbyhIcygpLDEpO1l0KCk7SXQoKTtyaCgpO2F0KCk7UEEoKTtOQSgpO2FoKCk7ZmgoKTticCgpO2plPXtudW1iZXJPZkF0dGVtcHRlZFJlcXVlc3RzOjAsbnVtYmVyT2ZBY3RpdmVSZXF1ZXN0czowLG51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHM6MCxudW1iZXJPZkNhbmNlbGxlZEFjdGl2ZVJlcXVlc3RzOjAsbnVtYmVyT2ZGYWlsZWRSZXF1ZXN0czowLG51bWJlck9mQWN0aXZlUmVxdWVzdHNFdmVyOjAsbGFzdE51bWJlck9mQWN0aXZlUmVxdWVzdHM6MH0sSmM9MjAsT289bmV3IE1BKHtjb21wYXJhdG9yOnJQfSk7T28ubWF4aW11bUxlbmd0aD1KYztPby5yZXNlcnZlKEpjKTtlaT1bXSxQaT17fSxpUD10eXBlb2YgZG9jdW1lbnQ8InUiP25ldyBUcC5kZWZhdWx0KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpOm5ldyBUcC5kZWZhdWx0LE9wPW5ldyB4QTtibi5tYXhpbXVtUmVxdWVzdHM9NTA7Ym4ubWF4aW11bVJlcXVlc3RzUGVyU2VydmVyPTY7Ym4ucmVxdWVzdHNCeVNlcnZlcj17ImFwaS5jZXNpdW0uY29tOjQ0MyI6MTgsImFzc2V0cy5pb24uY2VzaXVtLmNvbTo0NDMiOjE4LCJpYmFzZW1hcHMtYXBpLmFyY2dpcy5jb206NDQzIjoxOCwidGlsZS5nb29nbGVhcGlzLmNvbTo0NDMiOjE4LCJ0aWxlLm9wZW5zdHJlZXRtYXAub3JnOjQ0MyI6MTh9O2JuLnRocm90dGxlUmVxdWVzdHM9ITA7Ym4uZGVidWdTaG93U3RhdGlzdGljcz0hMTtibi5yZXF1ZXN0Q29tcGxldGVkRXZlbnQ9T3A7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYm4se3N0YXRpc3RpY3M6e2dldDpmdW5jdGlvbigpe3JldHVybiBqZX19LHByaW9yaXR5SGVhcExlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEpjfSxzZXQ6ZnVuY3Rpb24odCl7aWYodDxKYylmb3IoO09vLmxlbmd0aD50Oyl7bGV0IGU9T28ucG9wKCk7V3MoZSl9SmM9dCxPby5tYXhpbXVtTGVuZ3RoPXQsT28ucmVzZXJ2ZSh0KX19fSk7Ym4uc2VydmVySGFzT3BlblNsb3RzPWZ1bmN0aW9uKHQsZSl7ZT14KGUsMSk7bGV0IG49eChibi5yZXF1ZXN0c0J5U2VydmVyW3RdLGJuLm1heGltdW1SZXF1ZXN0c1BlclNlcnZlcik7cmV0dXJuIFBpW3RdK2U8PW59O2JuLmhlYXBIYXNPcGVuU2xvdHM9ZnVuY3Rpb24odCl7cmV0dXJuIE9vLmxlbmd0aCt0PD1KY307Ym4udXBkYXRlPWZ1bmN0aW9uKCl7bGV0IHQsZSxuPTAsbz1laS5sZW5ndGg7Zm9yKHQ9MDt0PG87Kyt0KXtpZihlPWVpW3RdLGUuY2FuY2VsbGVkJiZXcyhlKSxlLnN0YXRlIT09Um4uQUNUSVZFKXsrK247Y29udGludWV9bj4wJiYoZWlbdC1uXT1lKX1laS5sZW5ndGgtPW47bGV0IHI9T28uaW50ZXJuYWxBcnJheSxpPU9vLmxlbmd0aDtmb3IodD0wO3Q8aTsrK3QpSUEoclt0XSk7T28ucmVzb3J0KCk7bGV0IHM9TWF0aC5tYXgoYm4ubWF4aW11bVJlcXVlc3RzLWVpLmxlbmd0aCwwKSxmPTA7Zm9yKDtmPHMmJk9vLmxlbmd0aD4wOyl7aWYoZT1Pby5wb3AoKSxlLmNhbmNlbGxlZCl7V3MoZSk7Y29udGludWV9aWYoZS50aHJvdHRsZUJ5U2VydmVyJiYhYm4uc2VydmVySGFzT3BlblNsb3RzKGUuc2VydmVyS2V5KSl7V3MoZSk7Y29udGludWV9REEoZSksKytmfWFQKCl9O2JuLmdldFNlcnZlcktleT1mdW5jdGlvbih0KXt5LnR5cGVPZi5zdHJpbmcoInVybCIsdCk7bGV0IGU9bmV3IFRwLmRlZmF1bHQodCk7ZS5zY2hlbWUoKT09PSIiJiYoZT1lLmFic29sdXRlVG8oaVApLGUubm9ybWFsaXplKCkpO2xldCBuPWUuYXV0aG9yaXR5KCk7LzovLnRlc3Qobil8fChuPWAke259OiR7ZS5zY2hlbWUoKT09PSJodHRwcyI/IjQ0MyI6IjgwIn1gKTtsZXQgbz1QaVtuXTtyZXR1cm4gaChvKXx8KFBpW25dPTApLG59O2JuLnJlcXVlc3Q9ZnVuY3Rpb24odCl7aWYoeS50eXBlT2Yub2JqZWN0KCJyZXF1ZXN0Iix0KSx5LnR5cGVPZi5zdHJpbmcoInJlcXVlc3QudXJsIix0LnVybCkseS50eXBlT2YuZnVuYygicmVxdWVzdC5yZXF1ZXN0RnVuY3Rpb24iLHQucmVxdWVzdEZ1bmN0aW9uKSxBcCh0LnVybCl8fGdwKHQudXJsKSlyZXR1cm4gT3AucmFpc2VFdmVudCgpLHQuc3RhdGU9Um4uUkVDRUlWRUQsdC5yZXF1ZXN0RnVuY3Rpb24oKTtpZigrK2plLm51bWJlck9mQXR0ZW1wdGVkUmVxdWVzdHMsaCh0LnNlcnZlcktleSl8fCh0LnNlcnZlcktleT1ibi5nZXRTZXJ2ZXJLZXkodC51cmwpKSxibi50aHJvdHRsZVJlcXVlc3RzJiZ0LnRocm90dGxlQnlTZXJ2ZXImJiFibi5zZXJ2ZXJIYXNPcGVuU2xvdHModC5zZXJ2ZXJLZXkpKXJldHVybjtpZighYm4udGhyb3R0bGVSZXF1ZXN0c3x8IXQudGhyb3R0bGUpcmV0dXJuIERBKHQpO2lmKGVpLmxlbmd0aD49Ym4ubWF4aW11bVJlcXVlc3RzKXJldHVybjtJQSh0KTtsZXQgZT1Pby5pbnNlcnQodCk7aWYoaChlKSl7aWYoZT09PXQpcmV0dXJuO1dzKGUpfXJldHVybiB2QSh0KX07Ym4uY2xlYXJGb3JTcGVjcz1mdW5jdGlvbigpe2Zvcig7T28ubGVuZ3RoPjA7KXtsZXQgZT1Pby5wb3AoKTtXcyhlKX1sZXQgdD1laS5sZW5ndGg7Zm9yKGxldCBlPTA7ZTx0OysrZSlXcyhlaVtlXSk7ZWkubGVuZ3RoPTAsUGk9e30samUubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0cz0wLGplLm51bWJlck9mQWN0aXZlUmVxdWVzdHM9MCxqZS5udW1iZXJPZkNhbmNlbGxlZFJlcXVlc3RzPTAsamUubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0cz0wLGplLm51bWJlck9mRmFpbGVkUmVxdWVzdHM9MCxqZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzRXZlcj0wLGplLmxhc3ROdW1iZXJPZkFjdGl2ZVJlcXVlc3RzPTB9O2JuLm51bWJlck9mQWN0aXZlUmVxdWVzdHNCeVNlcnZlcj1mdW5jdGlvbih0KXtyZXR1cm4gUGlbdF19O2JuLnJlcXVlc3RIZWFwPU9vO0VwPWJufSk7ZnVuY3Rpb24gZlAodCl7bGV0IGU9bmV3IEZBLmRlZmF1bHQodCk7ZS5ub3JtYWxpemUoKTtsZXQgbj1lLmF1dGhvcml0eSgpO2lmKG4ubGVuZ3RoIT09MCl7aWYoZS5hdXRob3JpdHkobiksbi5pbmRleE9mKCJAIikhPT0tMSYmKG49bi5zcGxpdCgiQCIpWzFdKSxuLmluZGV4T2YoIjoiKT09PS0xKXtsZXQgbz1lLnNjaGVtZSgpO2lmKG8ubGVuZ3RoPT09MCYmKG89d2luZG93LmxvY2F0aW9uLnByb3RvY29sLG89by5zdWJzdHJpbmcoMCxvLmxlbmd0aC0xKSksbz09PSJodHRwIiluKz0iOjgwIjtlbHNlIGlmKG89PT0iaHR0cHMiKW4rPSI6NDQzIjtlbHNlIHJldHVybn1yZXR1cm4gbn19dmFyIEZBLHlmLHRhLGxoLEJBPVooKCk9PntGQT1tbyhIcygpLDEpO2F0KCk7SHQoKTt5Zj17fSx0YT17fTt5Zi5hZGQ9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigiaG9zdCBpcyByZXF1aXJlZC4iKTtpZighaChlKXx8ZTw9MCl0aHJvdyBuZXcgQigicG9ydCBpcyByZXF1aXJlZCB0byBiZSBncmVhdGVyIHRoYW4gMC4iKTtsZXQgbj1gJHt0LnRvTG93ZXJDYXNlKCl9OiR7ZX1gO2godGFbbl0pfHwodGFbbl09ITApfTt5Zi5yZW1vdmU9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigiaG9zdCBpcyByZXF1aXJlZC4iKTtpZighaChlKXx8ZTw9MCl0aHJvdyBuZXcgQigicG9ydCBpcyByZXF1aXJlZCB0byBiZSBncmVhdGVyIHRoYW4gMC4iKTtsZXQgbj1gJHt0LnRvTG93ZXJDYXNlKCl9OiR7ZX1gO2godGFbbl0pJiZkZWxldGUgdGFbbl19O3lmLmNvbnRhaW5zPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ1cmwgaXMgcmVxdWlyZWQuIik7bGV0IGU9ZlAodCk7cmV0dXJuISEoaChlKSYmaCh0YVtlXSkpfTt5Zi5jbGVhcj1mdW5jdGlvbigpe3RhPXt9fTtsaD15Zn0pO2Z1bmN0aW9uIGt0KHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx0eXBlb2YgdD09InN0cmluZyImJih0PXt1cmw6dH0pLHkudHlwZU9mLnN0cmluZygib3B0aW9ucy51cmwiLHQudXJsKSx0aGlzLl91cmw9dm9pZCAwLHRoaXMuX3RlbXBsYXRlVmFsdWVzPW5pKHQudGVtcGxhdGVWYWx1ZXMse30pLHRoaXMuX3F1ZXJ5UGFyYW1ldGVycz1uaSh0LnF1ZXJ5UGFyYW1ldGVycyx7fSksdGhpcy5oZWFkZXJzPW5pKHQuaGVhZGVycyx7fSksdGhpcy5yZXF1ZXN0PXgodC5yZXF1ZXN0LG5ldyBUQSksdGhpcy5wcm94eT10LnByb3h5LHRoaXMucmV0cnlDYWxsYmFjaz10LnJldHJ5Q2FsbGJhY2ssdGhpcy5yZXRyeUF0dGVtcHRzPXgodC5yZXRyeUF0dGVtcHRzLDApLHRoaXMuX3JldHJ5Q291bnQ9MCx4KHQucGFyc2VVcmwsITApP3RoaXMucGFyc2VVcmwodC51cmwsITAsITApOnRoaXMuX3VybD10LnVybCx0aGlzLl9jcmVkaXRzPXQuY3JlZGl0c31mdW5jdGlvbiBuaSh0LGUpe3JldHVybiBoKHQpP1FjKHQpOmV9ZnVuY3Rpb24gdVAodCl7cmV0dXJuIHQubGVuZ3RoPT09MD97fTp0LmluZGV4T2YoIj0iKT09PS0xP3tbdF06dm9pZCAwfTpnQSh0KX1mdW5jdGlvbiBTcCh0LGUsbil7aWYoIW4pcmV0dXJuIHlyKHQsZSk7bGV0IG89UWModCwhMCk7Zm9yKGxldCByIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShyKSl7bGV0IGk9b1tyXSxzPWVbcl07aChpKT8oQXJyYXkuaXNBcnJheShpKXx8KGk9b1tyXT1baV0pLG9bcl09aS5jb25jYXQocykpOm9bcl09QXJyYXkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31yZXR1cm4gb31mdW5jdGlvbiBsUCh0KXtsZXQgZT1PYmplY3Qua2V5cyh0KTtyZXR1cm4gZS5sZW5ndGg9PT0wPyIiOmUubGVuZ3RoPT09MSYmIWgodFtlWzBdXSk/YD8ke2VbMF19YDpgPyR7X0EodCl9YH1mdW5jdGlvbiBwaCh0KXtsZXQgZT10LnJlc291cmNlLG49dC5mbGlwWSxvPXQuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uLHI9dC5wcmVmZXJJbWFnZUJpdG1hcCxpPWUucmVxdWVzdDtpLnVybD1lLnVybCxpLnJlcXVlc3RGdW5jdGlvbj1mdW5jdGlvbigpe2xldCBmPSExOyFlLmlzRGF0YVVyaSYmIWUuaXNCbG9iVXJpJiYoZj1lLmlzQ3Jvc3NPcmlnaW5VcmwpO2xldCB1PXFzKCk7cmV0dXJuIGt0Ll9JbXBsZW1lbnRhdGlvbnMuY3JlYXRlSW1hZ2UoaSxmLHUsbixvLHIpLHUucHJvbWlzZX07bGV0IHM9RXAucmVxdWVzdChpKTtpZihoKHMpKXJldHVybiBzLmNhdGNoKGZ1bmN0aW9uKGYpe3JldHVybiBpLnN0YXRlIT09Um4uRkFJTEVEP1Byb21pc2UucmVqZWN0KGYpOmUucmV0cnlPbkVycm9yKGYpLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHU/KGkuc3RhdGU9Um4uVU5JU1NVRUQsaS5kZWZlcnJlZD12b2lkIDAscGgoe3Jlc291cmNlOmUsZmxpcFk6bixza2lwQ29sb3JTcGFjZUNvbnZlcnNpb246byxwcmVmZXJJbWFnZUJpdG1hcDpyfSkpOlByb21pc2UucmVqZWN0KGYpfSl9KX1mdW5jdGlvbiB6QSh0LGUsbil7bGV0IG89e307b1tlXT1uLHQuc2V0UXVlcnlQYXJhbWV0ZXJzKG8pO2xldCByPXQucmVxdWVzdCxpPXQudXJsO3IudXJsPWksci5yZXF1ZXN0RnVuY3Rpb249ZnVuY3Rpb24oKXtsZXQgZj1xcygpO3JldHVybiB3aW5kb3dbbl09ZnVuY3Rpb24odSl7Zi5yZXNvbHZlKHUpO3RyeXtkZWxldGUgd2luZG93W25dfWNhdGNoe3dpbmRvd1tuXT12b2lkIDB9fSxrdC5fSW1wbGVtZW50YXRpb25zLmxvYWRBbmRFeGVjdXRlU2NyaXB0KGksbixmKSxmLnByb21pc2V9O2xldCBzPUVwLnJlcXVlc3Qocik7aWYoaChzKSlyZXR1cm4gcy5jYXRjaChmdW5jdGlvbihmKXtyZXR1cm4gci5zdGF0ZSE9PVJuLkZBSUxFRD9Qcm9taXNlLnJlamVjdChmKTp0LnJldHJ5T25FcnJvcihmKS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1PyhyLnN0YXRlPVJuLlVOSVNTVUVELHIuZGVmZXJyZWQ9dm9pZCAwLHpBKHQsZSxuKSk6UHJvbWlzZS5yZWplY3QoZil9KX0pfWZ1bmN0aW9uIGRoKHQpe2lmKHQuc3RhdGU9PT1Sbi5JU1NVRUR8fHQuc3RhdGU9PT1Sbi5BQ1RJVkUpdGhyb3cgbmV3IGdlKCJUaGUgUmVzb3VyY2UgaXMgYWxyZWFkeSBiZWluZyBmZXRjaGVkLiIpO3Quc3RhdGU9Um4uVU5JU1NVRUQsdC5kZWZlcnJlZD12b2lkIDB9ZnVuY3Rpb24gUnAodCxlKXtsZXQgbj1kZWNvZGVVUklDb21wb25lbnQoZSk7cmV0dXJuIHQ/YXRvYihuKTpufWZ1bmN0aW9uIFVBKHQsZSl7bGV0IG49UnAodCxlKSxvPW5ldyBBcnJheUJ1ZmZlcihuLmxlbmd0aCkscj1uZXcgVWludDhBcnJheShvKTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKylyW2ldPW4uY2hhckNvZGVBdChpKTtyZXR1cm4gb31mdW5jdGlvbiBkUCh0LGUpe2U9eChlLCIiKTtsZXQgbj10WzFdLG89ISF0WzJdLHI9dFszXSxpLHM7c3dpdGNoKGUpe2Nhc2UiIjpjYXNlInRleHQiOnJldHVybiBScChvLHIpO2Nhc2UiYXJyYXlidWZmZXIiOnJldHVybiBVQShvLHIpO2Nhc2UiYmxvYiI6cmV0dXJuIGk9VUEobyxyKSxuZXcgQmxvYihbaV0se3R5cGU6bn0pO2Nhc2UiZG9jdW1lbnQiOnJldHVybiBzPW5ldyBET01QYXJzZXIscy5wYXJzZUZyb21TdHJpbmcoUnAobyxyKSxuKTtjYXNlImpzb24iOnJldHVybiBKU09OLnBhcnNlKFJwKG8scikpO2RlZmF1bHQ6dGhyb3cgbmV3IEIoYFVuaGFuZGxlZCByZXNwb25zZVR5cGU6ICR7ZX1gKX19ZnVuY3Rpb24gVkEodCxlKXtzd2l0Y2goZSl7Y2FzZSJ0ZXh0IjpyZXR1cm4gdC50b1N0cmluZygidXRmOCIpO2Nhc2UianNvbiI6cmV0dXJuIEpTT04ucGFyc2UodC50b1N0cmluZygidXRmOCIpKTtkZWZhdWx0OnJldHVybiBuZXcgVWludDhBcnJheSh0KS5idWZmZXJ9fWZ1bmN0aW9uIG1QKHQsZSxuLG8scixpLHMpe2xldCBmLHU7UHJvbWlzZS5hbGwoW2ltcG9ydCgidXJsIiksaW1wb3J0KCJ6bGliIildKS50aGVuKChbYyxsXSk9PihmPWMucGFyc2UodCksdT1sLGYucHJvdG9jb2w9PT0iaHR0cHM6Ij9pbXBvcnQoImh0dHBzIik6aW1wb3J0KCJodHRwIikpKS50aGVuKGM9PntsZXQgbD17cHJvdG9jb2w6Zi5wcm90b2NvbCxob3N0bmFtZTpmLmhvc3RuYW1lLHBvcnQ6Zi5wb3J0LHBhdGg6Zi5wYXRoLHF1ZXJ5OmYucXVlcnksbWV0aG9kOm4saGVhZGVyczpyfTtjLnJlcXVlc3QobCkub24oInJlc3BvbnNlIixmdW5jdGlvbihwKXtpZihwLnN0YXR1c0NvZGU8MjAwfHxwLnN0YXR1c0NvZGU+PTMwMCl7aS5yZWplY3QobmV3IGhmKHAuc3RhdHVzQ29kZSxwLHAuaGVhZGVycykpO3JldHVybn1sZXQgZD1bXTtwLm9uKCJkYXRhIixmdW5jdGlvbihtKXtkLnB1c2gobSl9KSxwLm9uKCJlbmQiLGZ1bmN0aW9uKCl7bGV0IG09QnVmZmVyLmNvbmNhdChkKTtwLmhlYWRlcnNbImNvbnRlbnQtZW5jb2RpbmciXT09PSJnemlwIj91Lmd1bnppcChtLGZ1bmN0aW9uKF8sZyl7Xz9pLnJlamVjdChuZXcgZ2UoIkVycm9yIGRlY29tcHJlc3NpbmcgcmVzcG9uc2UuIikpOmkucmVzb2x2ZShWQShnLGUpKX0pOmkucmVzb2x2ZShWQShtLGUpKX0pfSkub24oImVycm9yIixmdW5jdGlvbihwKXtpLnJlamVjdChuZXcgaGYpfSkuZW5kKCl9KX12YXIga0EsR0EsZWEscFAsaFAsb2ksZ2Y9WigoKT0+e2tBPW1vKEhzKCksMSk7SjEoKTtZdCgpO2VBKCk7eXAoKTtJdCgpO3JoKCk7YXQoKTtIdCgpO3NoKCk7c0EoKTtmQSgpO2xBKCk7YWgoKTtkQSgpO2ZoKCk7aEEoKTtXdCgpO3lBKCk7QUEoKTtPQSgpO0NBKCk7TEEoKTticCgpO0pyKCk7QkEoKTtHQT1mdW5jdGlvbigpe3RyeXtsZXQgdD1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIHQub3BlbigiR0VUIiwiIyIsITApLHQucmVzcG9uc2VUeXBlPSJibG9iIix0LnJlc3BvbnNlVHlwZT09PSJibG9iIn1jYXRjaHtyZXR1cm4hMX19KCk7a3QuY3JlYXRlSWZOZWVkZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBrdD90LmdldERlcml2ZWRSZXNvdXJjZSh7cmVxdWVzdDp0LnJlcXVlc3R9KTp0eXBlb2YgdCE9InN0cmluZyI/dDpuZXcga3Qoe3VybDp0fSl9O2t0LnN1cHBvcnRzSW1hZ2VCaXRtYXBPcHRpb25zPWZ1bmN0aW9uKCl7aWYoaChlYSkpcmV0dXJuIGVhO2lmKHR5cGVvZiBjcmVhdGVJbWFnZUJpdG1hcCE9ImZ1bmN0aW9uIilyZXR1cm4gZWE9UHJvbWlzZS5yZXNvbHZlKCExKSxlYTtsZXQgdD0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1FkMVBlQUFBQUJHZEJUVUVBQUU0ZzNyRWlEZ0FBQUNCalNGSk5BQUI2SmdBQWdJUUFBUG9BQUFDQTZBQUFkVEFBQU9wZ0FBQTZtQUFBRjNDY3VsRThBQUFBREVsRVFWUUkxMk5nNkdBQUFBRVVBSW5nRTNaaUFBQUFBRWxGVGtTdVFtQ0MiO3JldHVybiBlYT1rdC5mZXRjaEJsb2Ioe3VybDp0fSkudGhlbihmdW5jdGlvbihlKXtsZXQgbj17aW1hZ2VPcmllbnRhdGlvbjoiZmxpcFkiLHByZW11bHRpcGx5QWxwaGE6Im5vbmUiLGNvbG9yU3BhY2VDb252ZXJzaW9uOiJub25lIn07cmV0dXJuIFByb21pc2UuYWxsKFtjcmVhdGVJbWFnZUJpdG1hcChlLG4pLGNyZWF0ZUltYWdlQml0bWFwKGUpXSl9KS50aGVuKGZ1bmN0aW9uKGUpe2xldCBuPWNoKGVbMF0pLG89Y2goZVsxXSk7cmV0dXJuIG5bMV0hPT1vWzFdfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pLGVhfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhrdCx7aXNCbG9iU3VwcG9ydGVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gR0F9fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGt0LnByb3RvdHlwZSx7cXVlcnlQYXJhbWV0ZXJzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcXVlcnlQYXJhbWV0ZXJzfX0sdGVtcGxhdGVWYWx1ZXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90ZW1wbGF0ZVZhbHVlc319LHVybDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VXJsQ29tcG9uZW50KCEwLCEwKX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucGFyc2VVcmwodCwhMSwhMSl9fSxleHRlbnNpb246e2dldDpmdW5jdGlvbigpe3JldHVybiBhQSh0aGlzLl91cmwpfX0saXNEYXRhVXJpOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQXAodGhpcy5fdXJsKX19LGlzQmxvYlVyaTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGdwKHRoaXMuX3VybCl9fSxpc0Nyb3NzT3JpZ2luVXJsOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcEEodGhpcy5fdXJsKX19LGhhc0hlYWRlcnM6e2dldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpLmxlbmd0aD4wfX0sY3JlZGl0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWRpdHN9fX0pO2t0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFVybENvbXBvbmVudCghMCwhMCl9O2t0LnByb3RvdHlwZS5wYXJzZVVybD1mdW5jdGlvbih0LGUsbixvKXtsZXQgcj1uZXcga0EuZGVmYXVsdCh0KSxpPXVQKHIucXVlcnkoKSk7dGhpcy5fcXVlcnlQYXJhbWV0ZXJzPWU/U3AoaSx0aGlzLnF1ZXJ5UGFyYW1ldGVycyxuKTppLHIuc2VhcmNoKCIiKSxyLmZyYWdtZW50KCIiKSxoKG8pJiZyLnNjaGVtZSgpPT09IiImJihyPXIuYWJzb2x1dGVUbyhtZihvKSkpLHRoaXMuX3VybD1yLnRvU3RyaW5nKCl9O2t0LnByb3RvdHlwZS5nZXRVcmxDb21wb25lbnQ9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmlzRGF0YVVyaSlyZXR1cm4gdGhpcy5fdXJsO2xldCBuPXRoaXMuX3VybDt0JiYobj1gJHtufSR7bFAodGhpcy5xdWVyeVBhcmFtZXRlcnMpfWApLG49bi5yZXBsYWNlKC8lN0IvZywieyIpLnJlcGxhY2UoLyU3RC9nLCJ9Iik7bGV0IG89dGhpcy5fdGVtcGxhdGVWYWx1ZXM7cmV0dXJuIE9iamVjdC5rZXlzKG8pLmxlbmd0aD4wJiYobj1uLnJlcGxhY2UoL3soLio/KX0vZyxmdW5jdGlvbihyLGkpe2xldCBzPW9baV07cmV0dXJuIGgocyk/ZW5jb2RlVVJJQ29tcG9uZW50KHMpOnJ9KSksZSYmaCh0aGlzLnByb3h5KSYmKG49dGhpcy5wcm94eS5nZXRVUkwobikpLG59O2t0LnByb3RvdHlwZS5zZXRRdWVyeVBhcmFtZXRlcnM9ZnVuY3Rpb24odCxlKXtlP3RoaXMuX3F1ZXJ5UGFyYW1ldGVycz1TcCh0aGlzLl9xdWVyeVBhcmFtZXRlcnMsdCwhMSk6dGhpcy5fcXVlcnlQYXJhbWV0ZXJzPVNwKHQsdGhpcy5fcXVlcnlQYXJhbWV0ZXJzLCExKX07a3QucHJvdG90eXBlLmFwcGVuZFF1ZXJ5UGFyYW1ldGVycz1mdW5jdGlvbih0KXt0aGlzLl9xdWVyeVBhcmFtZXRlcnM9U3AodCx0aGlzLl9xdWVyeVBhcmFtZXRlcnMsITApfTtrdC5wcm90b3R5cGUuc2V0VGVtcGxhdGVWYWx1ZXM9ZnVuY3Rpb24odCxlKXtlP3RoaXMuX3RlbXBsYXRlVmFsdWVzPXlyKHRoaXMuX3RlbXBsYXRlVmFsdWVzLHQpOnRoaXMuX3RlbXBsYXRlVmFsdWVzPXlyKHQsdGhpcy5fdGVtcGxhdGVWYWx1ZXMpfTtrdC5wcm90b3R5cGUuZ2V0RGVyaXZlZFJlc291cmNlPWZ1bmN0aW9uKHQpe2xldCBlPXRoaXMuY2xvbmUoKTtpZihlLl9yZXRyeUNvdW50PTAsaCh0LnVybCkpe2xldCBuPXgodC5wcmVzZXJ2ZVF1ZXJ5UGFyYW1ldGVycywhMSk7ZS5wYXJzZVVybCh0LnVybCwhMCxuLHRoaXMuX3VybCl9cmV0dXJuIGgodC5xdWVyeVBhcmFtZXRlcnMpJiYoZS5fcXVlcnlQYXJhbWV0ZXJzPXlyKHQucXVlcnlQYXJhbWV0ZXJzLGUucXVlcnlQYXJhbWV0ZXJzKSksaCh0LnRlbXBsYXRlVmFsdWVzKSYmKGUuX3RlbXBsYXRlVmFsdWVzPXlyKHQudGVtcGxhdGVWYWx1ZXMsZS50ZW1wbGF0ZVZhbHVlcykpLGgodC5oZWFkZXJzKSYmKGUuaGVhZGVycz15cih0LmhlYWRlcnMsZS5oZWFkZXJzKSksaCh0LnByb3h5KSYmKGUucHJveHk9dC5wcm94eSksaCh0LnJlcXVlc3QpJiYoZS5yZXF1ZXN0PXQucmVxdWVzdCksaCh0LnJldHJ5Q2FsbGJhY2spJiYoZS5yZXRyeUNhbGxiYWNrPXQucmV0cnlDYWxsYmFjayksaCh0LnJldHJ5QXR0ZW1wdHMpJiYoZS5yZXRyeUF0dGVtcHRzPXQucmV0cnlBdHRlbXB0cyksZX07a3QucHJvdG90eXBlLnJldHJ5T25FcnJvcj1mdW5jdGlvbih0KXtsZXQgZT10aGlzLnJldHJ5Q2FsbGJhY2s7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiJ8fHRoaXMuX3JldHJ5Q291bnQ+PXRoaXMucmV0cnlBdHRlbXB0cylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCExKTtsZXQgbj10aGlzO3JldHVybiBQcm9taXNlLnJlc29sdmUoZSh0aGlzLHQpKS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybisrbi5fcmV0cnlDb3VudCxvfSl9O2t0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KT8odC5fdXJsPXRoaXMuX3VybCx0Ll9xdWVyeVBhcmFtZXRlcnM9UWModGhpcy5fcXVlcnlQYXJhbWV0ZXJzKSx0Ll90ZW1wbGF0ZVZhbHVlcz1RYyh0aGlzLl90ZW1wbGF0ZVZhbHVlcyksdC5oZWFkZXJzPVFjKHRoaXMuaGVhZGVycyksdC5wcm94eT10aGlzLnByb3h5LHQucmV0cnlDYWxsYmFjaz10aGlzLnJldHJ5Q2FsbGJhY2ssdC5yZXRyeUF0dGVtcHRzPXRoaXMucmV0cnlBdHRlbXB0cyx0Ll9yZXRyeUNvdW50PTAsdC5yZXF1ZXN0PXRoaXMucmVxdWVzdC5jbG9uZSgpLHQpOm5ldyBrdCh7dXJsOnRoaXMuX3VybCxxdWVyeVBhcmFtZXRlcnM6dGhpcy5xdWVyeVBhcmFtZXRlcnMsdGVtcGxhdGVWYWx1ZXM6dGhpcy50ZW1wbGF0ZVZhbHVlcyxoZWFkZXJzOnRoaXMuaGVhZGVycyxwcm94eTp0aGlzLnByb3h5LHJldHJ5Q2FsbGJhY2s6dGhpcy5yZXRyeUNhbGxiYWNrLHJldHJ5QXR0ZW1wdHM6dGhpcy5yZXRyeUF0dGVtcHRzLHJlcXVlc3Q6dGhpcy5yZXF1ZXN0LmNsb25lKCkscGFyc2VVcmw6ITEsY3JlZGl0czpoKHRoaXMuY3JlZGl0cyk/dGhpcy5jcmVkaXRzLnNsaWNlKCk6dm9pZCAwfSl9O2t0LnByb3RvdHlwZS5nZXRCYXNlVXJpPWZ1bmN0aW9uKHQpe3JldHVybiBpQSh0aGlzLmdldFVybENvbXBvbmVudCh0KSx0KX07a3QucHJvdG90eXBlLmFwcGVuZEZvcndhcmRTbGFzaD1mdW5jdGlvbigpe3RoaXMuX3VybD1RMSh0aGlzLl91cmwpfTtrdC5wcm90b3R5cGUuZmV0Y2hBcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIn0pfTtrdC5mZXRjaEFycmF5QnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2hBcnJheUJ1ZmZlcigpfTtrdC5wcm90b3R5cGUuZmV0Y2hCbG9iPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmV0Y2goe3Jlc3BvbnNlVHlwZToiYmxvYiJ9KX07a3QuZmV0Y2hCbG9iPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2hCbG9iKCl9O2t0LnByb3RvdHlwZS5mZXRjaEltYWdlPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT14KHQucHJlZmVySW1hZ2VCaXRtYXAsITEpLG49eCh0LnByZWZlckJsb2IsITEpLG89eCh0LmZsaXBZLCExKSxyPXgodC5za2lwQ29sb3JTcGFjZUNvbnZlcnNpb24sITEpO2lmKGRoKHRoaXMucmVxdWVzdCksIUdBfHx0aGlzLmlzRGF0YVVyaXx8dGhpcy5pc0Jsb2JVcml8fCF0aGlzLmhhc0hlYWRlcnMmJiFuKXJldHVybiBwaCh7cmVzb3VyY2U6dGhpcyxmbGlwWTpvLHNraXBDb2xvclNwYWNlQ29udmVyc2lvbjpyLHByZWZlckltYWdlQml0bWFwOmV9KTtsZXQgaT10aGlzLmZldGNoQmxvYigpO2lmKCFoKGkpKXJldHVybjtsZXQgcyxmLHUsYztyZXR1cm4ga3Quc3VwcG9ydHNJbWFnZUJpdG1hcE9wdGlvbnMoKS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBzPWwsZj1zJiZlLGl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKCFoKGwpKXJldHVybjtpZihjPWwsZilyZXR1cm4ga3QuY3JlYXRlSW1hZ2VCaXRtYXBGcm9tQmxvYihsLHtmbGlwWTpvLHByZW11bHRpcGx5QWxwaGE6ITEsc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOnJ9KTtsZXQgcD13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChsKTtyZXR1cm4gdT1uZXcga3Qoe3VybDpwfSkscGgoe3Jlc291cmNlOnUsZmxpcFk6byxza2lwQ29sb3JTcGFjZUNvbnZlcnNpb246cixwcmVmZXJJbWFnZUJpdG1hcDohMX0pfSkudGhlbihmdW5jdGlvbihsKXtpZihoKGwpKXJldHVybiBsLmJsb2I9YyxmfHx3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1LnVybCksbH0pLmNhdGNoKGZ1bmN0aW9uKGwpe3JldHVybiBoKHUpJiZ3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1LnVybCksbC5ibG9iPWMsUHJvbWlzZS5yZWplY3QobCl9KX07a3QuZmV0Y2hJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLmZldGNoSW1hZ2Uoe2ZsaXBZOnQuZmxpcFksc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOnQuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uLHByZWZlckJsb2I6dC5wcmVmZXJCbG9iLHByZWZlckltYWdlQml0bWFwOnQucHJlZmVySW1hZ2VCaXRtYXB9KX07a3QucHJvdG90eXBlLmZldGNoVGV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6InRleHQifSl9O2t0LmZldGNoVGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLmZldGNoVGV4dCgpfTtrdC5wcm90b3R5cGUuZmV0Y2hKc29uPWZ1bmN0aW9uKCl7bGV0IHQ9dGhpcy5mZXRjaCh7cmVzcG9uc2VUeXBlOiJ0ZXh0IixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sKi8qO3E9MC4wMSJ9fSk7aWYoaCh0KSlyZXR1cm4gdC50aGVuKGZ1bmN0aW9uKGUpe2lmKGgoZSkpcmV0dXJuIEpTT04ucGFyc2UoZSl9KX07a3QuZmV0Y2hKc29uPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2hKc29uKCl9O2t0LnByb3RvdHlwZS5mZXRjaFhNTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6ImRvY3VtZW50IixvdmVycmlkZU1pbWVUeXBlOiJ0ZXh0L3htbCJ9KX07a3QuZmV0Y2hYTUw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5mZXRjaFhNTCgpfTtrdC5wcm90b3R5cGUuZmV0Y2hKc29ucD1mdW5jdGlvbih0KXt0PXgodCwiY2FsbGJhY2siKSxkaCh0aGlzLnJlcXVlc3QpO2xldCBlO2RvIGU9YGxvYWRKc29ucCR7TS5uZXh0UmFuZG9tTnVtYmVyKCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiw4KX1gO3doaWxlKGgod2luZG93W2VdKSk7cmV0dXJuIHpBKHRoaXMsdCxlKX07a3QuZmV0Y2hKc29ucD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLmZldGNoSnNvbnAodC5jYWxsYmFja1BhcmFtZXRlck5hbWUpfTtrdC5wcm90b3R5cGUuX21ha2VSZXF1ZXN0PWZ1bmN0aW9uKHQpe2xldCBlPXRoaXM7ZGgoZS5yZXF1ZXN0KTtsZXQgbj1lLnJlcXVlc3Qsbz1lLnVybDtuLnVybD1vLG4ucmVxdWVzdEZ1bmN0aW9uPWZ1bmN0aW9uKCl7bGV0IGk9dC5yZXNwb25zZVR5cGUscz15cih0LmhlYWRlcnMsZS5oZWFkZXJzKSxmPXQub3ZlcnJpZGVNaW1lVHlwZSx1PXQubWV0aG9kLGM9dC5kYXRhLGw9cXMoKSxwPWt0Ll9JbXBsZW1lbnRhdGlvbnMubG9hZFdpdGhYaHIobyxpLHUsYyxzLGwsZik7cmV0dXJuIGgocCkmJmgocC5hYm9ydCkmJihuLmNhbmNlbEZ1bmN0aW9uPWZ1bmN0aW9uKCl7cC5hYm9ydCgpfSksbC5wcm9taXNlfTtsZXQgcj1FcC5yZXF1ZXN0KG4pO2lmKGgocikpcmV0dXJuIHIudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gbi5jYW5jZWxGdW5jdGlvbj12b2lkIDAsaX0pLmNhdGNoKGZ1bmN0aW9uKGkpe3JldHVybiBuLmNhbmNlbEZ1bmN0aW9uPXZvaWQgMCxuLnN0YXRlIT09Um4uRkFJTEVEP1Byb21pc2UucmVqZWN0KGkpOmUucmV0cnlPbkVycm9yKGkpLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHM/KG4uc3RhdGU9Um4uVU5JU1NVRUQsbi5kZWZlcnJlZD12b2lkIDAsZS5mZXRjaCh0KSk6UHJvbWlzZS5yZWplY3QoaSl9KX0pfTtwUD0vXmRhdGE6KC4qPykoO2Jhc2U2NCk/LCguKikkLztrdC5wcm90b3R5cGUuZmV0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bmkodCx7fSksdC5tZXRob2Q9IkdFVCIsdGhpcy5fbWFrZVJlcXVlc3QodCl9O2t0LmZldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2goe3Jlc3BvbnNlVHlwZTp0LnJlc3BvbnNlVHlwZSxvdmVycmlkZU1pbWVUeXBlOnQub3ZlcnJpZGVNaW1lVHlwZX0pfTtrdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0PW5pKHQse30pLHQubWV0aG9kPSJERUxFVEUiLHRoaXMuX21ha2VSZXF1ZXN0KHQpfTtrdC5kZWxldGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5kZWxldGUoe3Jlc3BvbnNlVHlwZTp0LnJlc3BvbnNlVHlwZSxvdmVycmlkZU1pbWVUeXBlOnQub3ZlcnJpZGVNaW1lVHlwZSxkYXRhOnQuZGF0YX0pfTtrdC5wcm90b3R5cGUuaGVhZD1mdW5jdGlvbih0KXtyZXR1cm4gdD1uaSh0LHt9KSx0Lm1ldGhvZD0iSEVBRCIsdGhpcy5fbWFrZVJlcXVlc3QodCl9O2t0LmhlYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5oZWFkKHtyZXNwb25zZVR5cGU6dC5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTp0Lm92ZXJyaWRlTWltZVR5cGV9KX07a3QucHJvdG90eXBlLm9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bmkodCx7fSksdC5tZXRob2Q9Ik9QVElPTlMiLHRoaXMuX21ha2VSZXF1ZXN0KHQpfTtrdC5vcHRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkub3B0aW9ucyh7cmVzcG9uc2VUeXBlOnQucmVzcG9uc2VUeXBlLG92ZXJyaWRlTWltZVR5cGU6dC5vdmVycmlkZU1pbWVUeXBlfSl9O2t0LnByb3RvdHlwZS5wb3N0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgiZGF0YSIsdCksZT1uaShlLHt9KSxlLm1ldGhvZD0iUE9TVCIsZS5kYXRhPXQsdGhpcy5fbWFrZVJlcXVlc3QoZSl9O2t0LnBvc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5wb3N0KHQuZGF0YSx7cmVzcG9uc2VUeXBlOnQucmVzcG9uc2VUeXBlLG92ZXJyaWRlTWltZVR5cGU6dC5vdmVycmlkZU1pbWVUeXBlfSl9O2t0LnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5kZWZpbmVkKCJkYXRhIix0KSxlPW5pKGUse30pLGUubWV0aG9kPSJQVVQiLGUuZGF0YT10LHRoaXMuX21ha2VSZXF1ZXN0KGUpfTtrdC5wdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5wdXQodC5kYXRhLHtyZXNwb25zZVR5cGU6dC5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTp0Lm92ZXJyaWRlTWltZVR5cGV9KX07a3QucHJvdG90eXBlLnBhdGNoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgiZGF0YSIsdCksZT1uaShlLHt9KSxlLm1ldGhvZD0iUEFUQ0giLGUuZGF0YT10LHRoaXMuX21ha2VSZXF1ZXN0KGUpfTtrdC5wYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLnBhdGNoKHQuZGF0YSx7cmVzcG9uc2VUeXBlOnQucmVzcG9uc2VUeXBlLG92ZXJyaWRlTWltZVR5cGU6dC5vdmVycmlkZU1pbWVUeXBlfSl9O2t0Ll9JbXBsZW1lbnRhdGlvbnM9e307a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkSW1hZ2VFbGVtZW50PWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1uZXcgSW1hZ2U7by5vbmxvYWQ9ZnVuY3Rpb24oKXtvLm5hdHVyYWxXaWR0aD09PTAmJm8ubmF0dXJhbEhlaWdodD09PTAmJm8ud2lkdGg9PT0wJiZvLmhlaWdodD09PTAmJihvLndpZHRoPTMwMCxvLmhlaWdodD0xNTApLG4ucmVzb2x2ZShvKX0sby5vbmVycm9yPWZ1bmN0aW9uKHIpe24ucmVqZWN0KHIpfSxlJiYobGguY29udGFpbnModCk/by5jcm9zc09yaWdpbj0idXNlLWNyZWRlbnRpYWxzIjpvLmNyb3NzT3JpZ2luPSIiKSxvLnNyYz10fTtrdC5fSW1wbGVtZW50YXRpb25zLmNyZWF0ZUltYWdlPWZ1bmN0aW9uKHQsZSxuLG8scixpKXtsZXQgcz10LnVybDtrdC5zdXBwb3J0c0ltYWdlQml0bWFwT3B0aW9ucygpLnRoZW4oZnVuY3Rpb24oZil7aWYoIShmJiZpKSl7a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkSW1hZ2VFbGVtZW50KHMsZSxuKTtyZXR1cm59bGV0IHU9ImJsb2IiLGM9IkdFVCIsbD1xcygpLHA9a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkV2l0aFhocihzLHUsYyx2b2lkIDAsdm9pZCAwLGwsdm9pZCAwLHZvaWQgMCx2b2lkIDApO3JldHVybiBoKHApJiZoKHAuYWJvcnQpJiYodC5jYW5jZWxGdW5jdGlvbj1mdW5jdGlvbigpe3AuYWJvcnQoKX0pLGwucHJvbWlzZS50aGVuKGZ1bmN0aW9uKGQpe2lmKCFoKGQpKXtuLnJlamVjdChuZXcgZ2UoYFN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgJHtzfSBidXQgaXQgY29udGFpbmVkIG5vIGNvbnRlbnQuYCkpO3JldHVybn1yZXR1cm4ga3QuY3JlYXRlSW1hZ2VCaXRtYXBGcm9tQmxvYihkLHtmbGlwWTpvLHByZW11bHRpcGx5QWxwaGE6ITEsc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOnJ9KX0pLnRoZW4oZnVuY3Rpb24oZCl7bi5yZXNvbHZlKGQpfSl9KS5jYXRjaChmdW5jdGlvbihmKXtuLnJlamVjdChmKX0pfTtrdC5jcmVhdGVJbWFnZUJpdG1hcEZyb21CbG9iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgib3B0aW9ucyIsZSkseS50eXBlT2YuYm9vbCgib3B0aW9ucy5mbGlwWSIsZS5mbGlwWSkseS50eXBlT2YuYm9vbCgib3B0aW9ucy5wcmVtdWx0aXBseUFscGhhIixlLnByZW11bHRpcGx5QWxwaGEpLHkudHlwZU9mLmJvb2woIm9wdGlvbnMuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uIixlLnNraXBDb2xvclNwYWNlQ29udmVyc2lvbiksY3JlYXRlSW1hZ2VCaXRtYXAodCx7aW1hZ2VPcmllbnRhdGlvbjplLmZsaXBZPyJmbGlwWSI6Im5vbmUiLHByZW11bHRpcGx5QWxwaGE6ZS5wcmVtdWx0aXBseUFscGhhPyJwcmVtdWx0aXBseSI6Im5vbmUiLGNvbG9yU3BhY2VDb252ZXJzaW9uOmUuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uPyJub25lIjoiZGVmYXVsdCJ9KX07aFA9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PiJ1IjtrdC5fSW1wbGVtZW50YXRpb25zLmxvYWRXaXRoWGhyPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2xldCBmPXBQLmV4ZWModCk7aWYoZiE9PW51bGwpe2kucmVzb2x2ZShkUChmLGUpKTtyZXR1cm59aWYoaFApe21QKHQsZSxuLG8scixpLHMpO3JldHVybn1sZXQgdT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYobGguY29udGFpbnModCkmJih1LndpdGhDcmVkZW50aWFscz0hMCksdS5vcGVuKG4sdCwhMCksaChzKSYmaCh1Lm92ZXJyaWRlTWltZVR5cGUpJiZ1Lm92ZXJyaWRlTWltZVR5cGUocyksaChyKSlmb3IobGV0IGwgaW4gcilyLmhhc093blByb3BlcnR5KGwpJiZ1LnNldFJlcXVlc3RIZWFkZXIobCxyW2xdKTtoKGUpJiYodS5yZXNwb25zZVR5cGU9ZSk7bGV0IGM9ITE7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIiYmKGM9dC5pbmRleE9mKCJmaWxlOi8vIik9PT0wfHx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmxvY2F0aW9uLm9yaWdpbj09PSJmaWxlOi8vIiksdS5vbmxvYWQ9ZnVuY3Rpb24oKXtpZigodS5zdGF0dXM8MjAwfHx1LnN0YXR1cz49MzAwKSYmIShjJiZ1LnN0YXR1cz09PTApKXtpLnJlamVjdChuZXcgaGYodS5zdGF0dXMsdS5yZXNwb25zZSx1LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSk7cmV0dXJufWxldCBsPXUucmVzcG9uc2UscD11LnJlc3BvbnNlVHlwZTtpZihuPT09IkhFQUQifHxuPT09Ik9QVElPTlMiKXtsZXQgbT11LmdldEFsbFJlc3BvbnNlSGVhZGVycygpLnRyaW0oKS5zcGxpdCgvW1xyXG5dKy8pLF89e307bS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2xldCBiPWcuc3BsaXQoIjogIiksTz1iLnNoaWZ0KCk7X1tPXT1iLmpvaW4oIjogIil9KSxpLnJlc29sdmUoXyk7cmV0dXJufWlmKHUuc3RhdHVzPT09MjA0KWkucmVzb2x2ZSgpO2Vsc2UgaWYoaChsKSYmKCFoKGUpfHxwPT09ZSkpaS5yZXNvbHZlKGwpO2Vsc2UgaWYoZT09PSJqc29uIiYmdHlwZW9mIGw9PSJzdHJpbmciKXRyeXtpLnJlc29sdmUoSlNPTi5wYXJzZShsKSl9Y2F0Y2goZCl7aS5yZWplY3QoZCl9ZWxzZShwPT09IiJ8fHA9PT0iZG9jdW1lbnQiKSYmaCh1LnJlc3BvbnNlWE1MKSYmdS5yZXNwb25zZVhNTC5oYXNDaGlsZE5vZGVzKCk/aS5yZXNvbHZlKHUucmVzcG9uc2VYTUwpOihwPT09IiJ8fHA9PT0idGV4dCIpJiZoKHUucmVzcG9uc2VUZXh0KT9pLnJlc29sdmUodS5yZXNwb25zZVRleHQpOmkucmVqZWN0KG5ldyBnZSgiSW52YWxpZCBYTUxIdHRwUmVxdWVzdCByZXNwb25zZSB0eXBlLiIpKX0sdS5vbmVycm9yPWZ1bmN0aW9uKGwpe2kucmVqZWN0KG5ldyBoZil9LHUuc2VuZChvKSx1fTtrdC5fSW1wbGVtZW50YXRpb25zLmxvYWRBbmRFeGVjdXRlU2NyaXB0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbUEodCxlKS5jYXRjaChmdW5jdGlvbihvKXtuLnJlamVjdChvKX0pfTtrdC5fRGVmYXVsdEltcGxlbWVudGF0aW9ucz17fTtrdC5fRGVmYXVsdEltcGxlbWVudGF0aW9ucy5jcmVhdGVJbWFnZT1rdC5fSW1wbGVtZW50YXRpb25zLmNyZWF0ZUltYWdlO2t0Ll9EZWZhdWx0SW1wbGVtZW50YXRpb25zLmxvYWRXaXRoWGhyPWt0Ll9JbXBsZW1lbnRhdGlvbnMubG9hZFdpdGhYaHI7a3QuX0RlZmF1bHRJbXBsZW1lbnRhdGlvbnMubG9hZEFuZEV4ZWN1dGVTY3JpcHQ9a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkQW5kRXhlY3V0ZVNjcmlwdDtrdC5ERUZBVUxUPU9iamVjdC5mcmVlemUobmV3IGt0KHt1cmw6dHlwZW9mIGRvY3VtZW50PiJ1Ij8iIjpkb2N1bWVudC5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMF19KSk7b2k9a3R9KTtmdW5jdGlvbiBiZih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5fZGF0ZXM9dm9pZCAwLHRoaXMuX3NhbXBsZXM9dm9pZCAwLHRoaXMuX2RhdGVDb2x1bW49LTEsdGhpcy5feFBvbGVXYW5kZXJSYWRpYW5zQ29sdW1uPS0xLHRoaXMuX3lQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbj0tMSx0aGlzLl91dDFNaW51c1V0Y1NlY29uZHNDb2x1bW49LTEsdGhpcy5feENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zQ29sdW1uPS0xLHRoaXMuX3lDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbj0tMSx0aGlzLl90YWlNaW51c1V0Y1NlY29uZHNDb2x1bW49LTEsdGhpcy5fY29sdW1uQ291bnQ9MCx0aGlzLl9sYXN0SW5kZXg9LTEsdGhpcy5fYWRkTmV3TGVhcFNlY29uZHM9eCh0LmFkZE5ld0xlYXBTZWNvbmRzLCEwKSxoKHQuZGF0YSk/akEodGhpcyx0LmRhdGEpOmpBKHRoaXMse2NvbHVtbk5hbWVzOlsiZGF0ZUlzbzg2MDEiLCJtb2RpZmllZEp1bGlhbkRhdGVVdGMiLCJ4UG9sZVdhbmRlclJhZGlhbnMiLCJ5UG9sZVdhbmRlclJhZGlhbnMiLCJ1dDFNaW51c1V0Y1NlY29uZHMiLCJsZW5ndGhPZkRheUNvcnJlY3Rpb25TZWNvbmRzIiwieENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zIiwieUNlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zIiwidGFpTWludXNVdGNTZWNvbmRzIl0sc2FtcGxlczpbXX0pfWZ1bmN0aW9uIF9QKHQsZSl7cmV0dXJuIGlvLmNvbXBhcmUodC5qdWxpYW5EYXRlLGUpfWZ1bmN0aW9uIGpBKHQsZSl7aWYoIWgoZS5jb2x1bW5OYW1lcykpdGhyb3cgbmV3IGdlKCJFcnJvciBpbiBsb2FkZWQgRU9QIGRhdGE6IFRoZSBjb2x1bW5OYW1lcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC4iKTtpZighaChlLnNhbXBsZXMpKXRocm93IG5ldyBnZSgiRXJyb3IgaW4gbG9hZGVkIEVPUCBkYXRhOiBUaGUgc2FtcGxlcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC4iKTtsZXQgbj1lLmNvbHVtbk5hbWVzLmluZGV4T2YoIm1vZGlmaWVkSnVsaWFuRGF0ZVV0YyIpLG89ZS5jb2x1bW5OYW1lcy5pbmRleE9mKCJ4UG9sZVdhbmRlclJhZGlhbnMiKSxyPWUuY29sdW1uTmFtZXMuaW5kZXhPZigieVBvbGVXYW5kZXJSYWRpYW5zIiksaT1lLmNvbHVtbk5hbWVzLmluZGV4T2YoInV0MU1pbnVzVXRjU2Vjb25kcyIpLHM9ZS5jb2x1bW5OYW1lcy5pbmRleE9mKCJ4Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnMiKSxmPWUuY29sdW1uTmFtZXMuaW5kZXhPZigieUNlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zIiksdT1lLmNvbHVtbk5hbWVzLmluZGV4T2YoInRhaU1pbnVzVXRjU2Vjb25kcyIpO2lmKG48MHx8bzwwfHxyPDB8fGk8MHx8czwwfHxmPDB8fHU8MCl0aHJvdyBuZXcgZ2UoIkVycm9yIGluIGxvYWRlZCBFT1AgZGF0YTogVGhlIGNvbHVtbk5hbWVzIHByb3BlcnR5IG11c3QgaW5jbHVkZSBtb2RpZmllZEp1bGlhbkRhdGVVdGMsIHhQb2xlV2FuZGVyUmFkaWFucywgeVBvbGVXYW5kZXJSYWRpYW5zLCB1dDFNaW51c1V0Y1NlY29uZHMsIHhDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFucywgeUNlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zLCBhbmQgdGFpTWludXNVdGNTZWNvbmRzIGNvbHVtbnMiKTtsZXQgYz10Ll9zYW1wbGVzPWUuc2FtcGxlcyxsPXQuX2RhdGVzPVtdO3QuX2RhdGVDb2x1bW49bix0Ll94UG9sZVdhbmRlclJhZGlhbnNDb2x1bW49byx0Ll95UG9sZVdhbmRlclJhZGlhbnNDb2x1bW49cix0Ll91dDFNaW51c1V0Y1NlY29uZHNDb2x1bW49aSx0Ll94Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW49cyx0Ll95Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW49Zix0Ll90YWlNaW51c1V0Y1NlY29uZHNDb2x1bW49dSx0Ll9jb2x1bW5Db3VudD1lLmNvbHVtbk5hbWVzLmxlbmd0aCx0Ll9sYXN0SW5kZXg9dm9pZCAwO2xldCBwLGQ9dC5fYWRkTmV3TGVhcFNlY29uZHM7Zm9yKGxldCBtPTAsXz1jLmxlbmd0aDttPF87bSs9dC5fY29sdW1uQ291bnQpe2xldCBnPWNbbStuXSxiPWNbbSt1XSxPPWcrX24uTU9ESUZJRURfSlVMSUFOX0RBVEVfRElGRkVSRU5DRSxUPW5ldyBpbyhPLGIsT2UuVEFJKTtpZihsLnB1c2goVCksZCl7aWYoYiE9PXAmJmgocCkpe2xldCBFPWlvLmxlYXBTZWNvbmRzLHc9anMoRSxULF9QKTtpZih3PDApe2xldCBDPW5ldyBXZShULGIpO0Uuc3BsaWNlKH53LDAsQyl9fXA9Yn19fWZ1bmN0aW9uIEhBKHQsZSxuLG8scil7bGV0IGk9bipvO3IueFBvbGVXYW5kZXI9ZVtpK3QuX3hQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0sci55UG9sZVdhbmRlcj1lW2krdC5feVBvbGVXYW5kZXJSYWRpYW5zQ29sdW1uXSxyLnhQb2xlT2Zmc2V0PWVbaSt0Ll94Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dLHIueVBvbGVPZmZzZXQ9ZVtpK3QuX3lDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbl0sci51dDFNaW51c1V0Yz1lW2krdC5fdXQxTWludXNVdGNTZWNvbmRzQ29sdW1uXX1mdW5jdGlvbiBBZih0LGUsbil7cmV0dXJuIGUrdCoobi1lKX1mdW5jdGlvbiBxQSh0LGUsbixvLHIsaSxzKXtsZXQgZj10Ll9jb2x1bW5Db3VudDtpZihpPmUubGVuZ3RoLTEpcmV0dXJuIHMueFBvbGVXYW5kZXI9MCxzLnlQb2xlV2FuZGVyPTAscy54UG9sZU9mZnNldD0wLHMueVBvbGVPZmZzZXQ9MCxzLnV0MU1pbnVzVXRjPTAscztsZXQgdT1lW3JdLGM9ZVtpXTtpZih1LmVxdWFscyhjKXx8by5lcXVhbHModSkpcmV0dXJuIEhBKHQsbixyLGYscykscztpZihvLmVxdWFscyhjKSlyZXR1cm4gSEEodCxuLGksZixzKSxzO2xldCBsPWlvLnNlY29uZHNEaWZmZXJlbmNlKG8sdSkvaW8uc2Vjb25kc0RpZmZlcmVuY2UoYyx1KSxwPXIqZixkPWkqZixtPW5bcCt0Ll91dDFNaW51c1V0Y1NlY29uZHNDb2x1bW5dLF89bltkK3QuX3V0MU1pbnVzVXRjU2Vjb25kc0NvbHVtbl0sZz1fLW07aWYoZz4uNXx8ZzwtLjUpe2xldCBiPW5bcCt0Ll90YWlNaW51c1V0Y1NlY29uZHNDb2x1bW5dLE89bltkK3QuX3RhaU1pbnVzVXRjU2Vjb25kc0NvbHVtbl07YiE9PU8mJihjLmVxdWFscyhvKT9tPV86Xy09Ty1iKX1yZXR1cm4gcy54UG9sZVdhbmRlcj1BZihsLG5bcCt0Ll94UG9sZVdhbmRlclJhZGlhbnNDb2x1bW5dLG5bZCt0Ll94UG9sZVdhbmRlclJhZGlhbnNDb2x1bW5dKSxzLnlQb2xlV2FuZGVyPUFmKGwsbltwK3QuX3lQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0sbltkK3QuX3lQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0pLHMueFBvbGVPZmZzZXQ9QWYobCxuW3ArdC5feENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zQ29sdW1uXSxuW2QrdC5feENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zQ29sdW1uXSkscy55UG9sZU9mZnNldD1BZihsLG5bcCt0Ll95Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dLG5bZCt0Ll95Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dKSxzLnV0MU1pbnVzVXRjPUFmKGwsbSxfKSxzfXZhciBLQSxXQT1aKCgpPT57Wm0oKTtZdCgpO0l0KCk7YXQoKTtRbSgpO2RwKCk7dGgoKTtnZigpO0pyKCk7Y3AoKTthcCgpO2JmLmZyb21Vcmw9YXN5bmMgZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoInVybCIsdCksZT14KGUseC5FTVBUWV9PQkpFQ1QpO2xldCBuPW9pLmNyZWF0ZUlmTmVlZGVkKHQpLG87dHJ5e289YXdhaXQgbi5mZXRjaEpzb24oKX1jYXRjaHt0aHJvdyBuZXcgZ2UoYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHJldHJpZXZpbmcgdGhlIEVPUCBkYXRhIGZyb20gdGhlIFVSTCAke24udXJsfS5gKX1yZXR1cm4gbmV3IGJmKHthZGROZXdMZWFwU2Vjb25kczplLmFkZE5ld0xlYXBTZWNvbmRzLGRhdGE6b30pfTtiZi5OT05FPU9iamVjdC5mcmVlemUoe2NvbXB1dGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gaChlKT8oZS54UG9sZVdhbmRlcj0wLGUueVBvbGVXYW5kZXI9MCxlLnhQb2xlT2Zmc2V0PTAsZS55UG9sZU9mZnNldD0wLGUudXQxTWludXNVdGM9MCk6ZT1uZXcgZGYoMCwwLDAsMCwwKSxlfX0pO2JmLnByb3RvdHlwZS5jb21wdXRlPWZ1bmN0aW9uKHQsZSl7aWYoIWgodGhpcy5fc2FtcGxlcykpcmV0dXJuO2lmKGgoZSl8fChlPW5ldyBkZigwLDAsMCwwLDApKSx0aGlzLl9zYW1wbGVzLmxlbmd0aD09PTApcmV0dXJuIGUueFBvbGVXYW5kZXI9MCxlLnlQb2xlV2FuZGVyPTAsZS54UG9sZU9mZnNldD0wLGUueVBvbGVPZmZzZXQ9MCxlLnV0MU1pbnVzVXRjPTAsZTtsZXQgbj10aGlzLl9kYXRlcyxvPXRoaXMuX2xhc3RJbmRleCxyPTAsaT0wO2lmKGgobykpe2xldCBmPW5bb10sdT1uW28rMV0sYz1pby5sZXNzVGhhbk9yRXF1YWxzKGYsdCksbD0haCh1KSxwPWx8fGlvLmdyZWF0ZXJUaGFuT3JFcXVhbHModSx0KTtpZihjJiZwKXJldHVybiByPW8sIWwmJnUuZXF1YWxzKHQpJiYrK3IsaT1yKzEscUEodGhpcyxuLHRoaXMuX3NhbXBsZXMsdCxyLGksZSksZX1sZXQgcz1qcyhuLHQsaW8uY29tcGFyZSx0aGlzLl9kYXRlQ29sdW1uKTtyZXR1cm4gcz49MD8oczxuLmxlbmd0aC0xJiZuW3MrMV0uZXF1YWxzKHQpJiYrK3Mscj1zLGk9cyk6KGk9fnMscj1pLTEscjwwJiYocj0wKSksdGhpcy5fbGFzdEluZGV4PXIscUEodGhpcyxuLHRoaXMuX3NhbXBsZXMsdCxyLGksZSksZX07S0E9YmZ9KTtmdW5jdGlvbiBFbyh0LGUsbil7dGhpcy5oZWFkaW5nPXgodCwwKSx0aGlzLnBpdGNoPXgoZSwwKSx0aGlzLnJvbGw9eChuLDApfXZhciBtaCxYQT1aKCgpPT57SXQoKTthdCgpO0h0KCk7V3QoKTtFby5mcm9tUXVhdGVybmlvbj1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJxdWF0ZXJuaW9uIGlzIHJlcXVpcmVkIik7aChlKXx8KGU9bmV3IEVvKTtsZXQgbj0yKih0LncqdC55LXQueip0LngpLG89MS0yKih0LngqdC54K3QueSp0LnkpLHI9MioodC53KnQueCt0LnkqdC56KSxpPTEtMioodC55KnQueSt0LnoqdC56KSxzPTIqKHQudyp0LnordC54KnQueSk7cmV0dXJuIGUuaGVhZGluZz0tTWF0aC5hdGFuMihzLGkpLGUucm9sbD1NYXRoLmF0YW4yKHIsbyksZS5waXRjaD0tTS5hc2luQ2xhbXBlZChuKSxlfTtFby5mcm9tRGVncmVlcz1mdW5jdGlvbih0LGUsbixvKXtpZighaCh0KSl0aHJvdyBuZXcgQigiaGVhZGluZyBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJwaXRjaCBpcyByZXF1aXJlZCIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJyb2xsIGlzIHJlcXVpcmVkIik7cmV0dXJuIGgobyl8fChvPW5ldyBFbyksby5oZWFkaW5nPXQqTS5SQURJQU5TX1BFUl9ERUdSRUUsby5waXRjaD1lKk0uUkFESUFOU19QRVJfREVHUkVFLG8ucm9sbD1uKk0uUkFESUFOU19QRVJfREVHUkVFLG99O0VvLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS5oZWFkaW5nPXQuaGVhZGluZyxlLnBpdGNoPXQucGl0Y2gsZS5yb2xsPXQucm9sbCxlKTpuZXcgRW8odC5oZWFkaW5nLHQucGl0Y2gsdC5yb2xsKX07RW8uZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0LmhlYWRpbmc9PT1lLmhlYWRpbmcmJnQucGl0Y2g9PT1lLnBpdGNoJiZ0LnJvbGw9PT1lLnJvbGx9O0VvLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZNLmVxdWFsc0Vwc2lsb24odC5oZWFkaW5nLGUuaGVhZGluZyxuLG8pJiZNLmVxdWFsc0Vwc2lsb24odC5waXRjaCxlLnBpdGNoLG4sbykmJk0uZXF1YWxzRXBzaWxvbih0LnJvbGwsZS5yb2xsLG4sbyl9O0VvLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gRW8uY2xvbmUodGhpcyx0KX07RW8ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gRW8uZXF1YWxzKHRoaXMsdCl9O0VvLnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gRW8uZXF1YWxzRXBzaWxvbih0aGlzLHQsZSxuKX07RW8ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMuaGVhZGluZ30sICR7dGhpcy5waXRjaH0sICR7dGhpcy5yb2xsfSlgfTttaD1Fb30pO2Z1bmN0aW9uIHlQKCl7bGV0IHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuOysrZSl7bGV0IG89dFtlXS5nZXRBdHRyaWJ1dGUoInNyYyIpLHI9JEEuZXhlYyhvKTtpZihyIT09bnVsbClyZXR1cm4gclsxXX19ZnVuY3Rpb24gWkEodCl7cmV0dXJuIHR5cGVvZiBkb2N1bWVudD4idSI/dDooaChDcCl8fChDcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLENwLmhyZWY9dCxDcC5ocmVmKX1mdW5jdGlvbiBRQSgpe2lmKGgoWHMpKXJldHVybiBYcztsZXQgdDtpZih0eXBlb2YgQ0VTSVVNX0JBU0VfVVJMPCJ1Ij90PUNFU0lVTV9CQVNFX1VSTDpoKFlBPy51cmwpP3Q9bWYoIi4iLFlBLnVybCk6dHlwZW9mIGRlZmluZT09Im9iamVjdCImJmgoZGVmaW5lLmFtZCkmJiFkZWZpbmUuYW1kLnRvVXJsVW5kZWZpbmVkJiZoKERvLnRvVXJsKT90PW1mKCIuLiIsWXMoIkNvcmUvYnVpbGRNb2R1bGVVcmwuanMiKSk6dD15UCgpLCFoKHQpKXRocm93IG5ldyBCKCJVbmFibGUgdG8gZGV0ZXJtaW5lIENlc2l1bSBiYXNlIFVSTCBhdXRvbWF0aWNhbGx5LCB0cnkgZGVmaW5pbmcgYSBnbG9iYWwgdmFyaWFibGUgY2FsbGVkIENFU0lVTV9CQVNFX1VSTC4iKTtyZXR1cm4gWHM9bmV3IG9pKHt1cmw6WkEodCl9KSxYcy5hcHBlbmRGb3J3YXJkU2xhc2goKSxYc31mdW5jdGlvbiBnUCh0KXtyZXR1cm4gWkEoRG8udG9VcmwoYC4uLyR7dH1gKSl9ZnVuY3Rpb24gSkEodCl7cmV0dXJuIFFBKCkuZ2V0RGVyaXZlZFJlc291cmNlKHt1cmw6dH0pLnVybH1mdW5jdGlvbiBZcyh0KXtyZXR1cm4gaCh4cCl8fCh0eXBlb2YgZGVmaW5lPT0ib2JqZWN0IiYmaChkZWZpbmUuYW1kKSYmIWRlZmluZS5hbWQudG9VcmxVbmRlZmluZWQmJmgoRG8udG9VcmwpP3hwPWdQOnhwPUpBKSx4cCh0KX12YXIgWUEsJEEsQ3AsWHMseHAsUHAsaGg9WigoKT0+e2F0KCk7SHQoKTtzaCgpO2dmKCk7WUE9e30sJEE9LygoPzouKlwvKXxeKUNlc2l1bVwuanMoPzpcP3xcI3wkKS87WXMuX2Nlc2l1bVNjcmlwdFJlZ2V4PSRBO1lzLl9idWlsZE1vZHVsZVVybEZyb21CYXNlVXJsPUpBO1lzLl9jbGVhckJhc2VSZXNvdXJjZT1mdW5jdGlvbigpe1hzPXZvaWQgMH07WXMuc2V0QmFzZVVybD1mdW5jdGlvbih0KXtYcz1vaS5ERUZBVUxULmdldERlcml2ZWRSZXNvdXJjZSh7dXJsOnR9KX07WXMuZ2V0Q2VzaXVtQmFzZVVybD1RQTtQcD1Zc30pO2Z1bmN0aW9uIEFQKHQsZSxuKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLnM9bn12YXIgTXAsX2g9WigoKT0+e01wPUFQfSk7ZnVuY3Rpb24gQWgodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHRoaXMuX3h5c0ZpbGVVcmxUZW1wbGF0ZT1vaS5jcmVhdGVJZk5lZWRlZCh0Lnh5c0ZpbGVVcmxUZW1wbGF0ZSksdGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyPXgodC5pbnRlcnBvbGF0aW9uT3JkZXIsOSksdGhpcy5fc2FtcGxlWmVyb0p1bGlhbkVwaGVtZXJpc0RhdGU9eCh0LnNhbXBsZVplcm9KdWxpYW5FcGhlbWVyaXNEYXRlLDI0NDIzOTY1ZS0xKSx0aGlzLl9zYW1wbGVaZXJvRGF0ZVRUPW5ldyBpbyh0aGlzLl9zYW1wbGVaZXJvSnVsaWFuRXBoZW1lcmlzRGF0ZSwwLE9lLlRBSSksdGhpcy5fc3RlcFNpemVEYXlzPXgodC5zdGVwU2l6ZURheXMsMSksdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGU9eCh0LnNhbXBsZXNQZXJYeXNGaWxlLDFlMyksdGhpcy5fdG90YWxTYW1wbGVzPXgodC50b3RhbFNhbXBsZXMsMjc0MjYpLHRoaXMuX3NhbXBsZXM9bmV3IEFycmF5KHRoaXMuX3RvdGFsU2FtcGxlcyozKSx0aGlzLl9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3M9W107bGV0IGU9dGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyLG49dGhpcy5fZGVub21pbmF0b3JzPW5ldyBBcnJheShlKzEpLG89dGhpcy5feFRhYmxlPW5ldyBBcnJheShlKzEpLHI9TWF0aC5wb3codGhpcy5fc3RlcFNpemVEYXlzLGUpO2ZvcihsZXQgaT0wO2k8PWU7KytpKXtuW2ldPXIsb1tpXT1pKnRoaXMuX3N0ZXBTaXplRGF5cztmb3IobGV0IHM9MDtzPD1lOysrcylzIT09aSYmKG5baV0qPWktcyk7bltpXT0xL25baV19dGhpcy5fd29yaz1uZXcgQXJyYXkoZSsxKSx0aGlzLl9jb2VmPW5ldyBBcnJheShlKzEpfWZ1bmN0aW9uIHloKHQsZSxuKXtsZXQgbz1iUDtyZXR1cm4gby5kYXlOdW1iZXI9ZSxvLnNlY29uZHNPZkRheT1uLGlvLmRheXNEaWZmZXJlbmNlKG8sdC5fc2FtcGxlWmVyb0RhdGVUVCl9ZnVuY3Rpb24gZ2godCxlKXtpZih0Ll9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3NbZV0pcmV0dXJuIHQuX2NodW5rRG93bmxvYWRzSW5Qcm9ncmVzc1tlXTtsZXQgbixvPXQuX3h5c0ZpbGVVcmxUZW1wbGF0ZTtoKG8pP249by5nZXREZXJpdmVkUmVzb3VyY2Uoe3RlbXBsYXRlVmFsdWVzOnswOmV9fSk6bj1uZXcgb2koe3VybDpQcChgQXNzZXRzL0lBVTIwMDZfWFlTL0lBVTIwMDZfWFlTXyR7ZX0uanNvbmApfSk7bGV0IHI9bi5mZXRjaEpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3QuX2NodW5rRG93bmxvYWRzSW5Qcm9ncmVzc1tlXT0hMTtsZXQgcz10Ll9zYW1wbGVzLGY9aS5zYW1wbGVzLHU9ZSp0Ll9zYW1wbGVzUGVyWHlzRmlsZSozO2ZvcihsZXQgYz0wLGw9Zi5sZW5ndGg7YzxsOysrYylzW3UrY109ZltjXX0pO3JldHVybiB0Ll9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3NbZV09cixyfXZhciBiUCx0YixlYj1aKCgpPT57aGgoKTtJdCgpO2F0KCk7X2goKTtkcCgpO2dmKCk7YXAoKTtiUD1uZXcgaW8oMCwwLE9lLlRBSSk7QWgucHJvdG90eXBlLnByZWxvYWQ9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9eWgodGhpcyx0LGUpLGk9eWgodGhpcyxuLG8pLHM9ci90aGlzLl9zdGVwU2l6ZURheXMtdGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyLzJ8MDtzPDAmJihzPTApO2xldCBmPWkvdGhpcy5fc3RlcFNpemVEYXlzLXRoaXMuX2ludGVycG9sYXRpb25PcmRlci8yfDArdGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyO2Y+PXRoaXMuX3RvdGFsU2FtcGxlcyYmKGY9dGhpcy5fdG90YWxTYW1wbGVzLTEpO2xldCB1PXMvdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGV8MCxjPWYvdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGV8MCxsPVtdO2ZvcihsZXQgcD11O3A8PWM7KytwKWwucHVzaChnaCh0aGlzLHApKTtyZXR1cm4gUHJvbWlzZS5hbGwobCl9O0FoLnByb3RvdHlwZS5jb21wdXRlWHlzUmFkaWFucz1mdW5jdGlvbih0LGUsbil7bGV0IG89eWgodGhpcyx0LGUpO2lmKG88MClyZXR1cm47bGV0IHI9by90aGlzLl9zdGVwU2l6ZURheXN8MDtpZihyPj10aGlzLl90b3RhbFNhbXBsZXMpcmV0dXJuO2xldCBpPXRoaXMuX2ludGVycG9sYXRpb25PcmRlcixzPXItKGkvMnwwKTtzPDAmJihzPTApO2xldCBmPXMraTtmPj10aGlzLl90b3RhbFNhbXBsZXMmJihmPXRoaXMuX3RvdGFsU2FtcGxlcy0xLHM9Zi1pLHM8MCYmKHM9MCkpO2xldCB1PSExLGM9dGhpcy5fc2FtcGxlcztpZihoKGNbcyozXSl8fChnaCh0aGlzLHMvdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGV8MCksdT0hMCksaChjW2YqM10pfHwoZ2godGhpcyxmL3RoaXMuX3NhbXBsZXNQZXJYeXNGaWxlfDApLHU9ITApLHUpcmV0dXJuO2gobik/KG4ueD0wLG4ueT0wLG4ucz0wKTpuPW5ldyBNcCgwLDAsMCk7bGV0IGw9by1zKnRoaXMuX3N0ZXBTaXplRGF5cyxwPXRoaXMuX3dvcmssZD10aGlzLl9kZW5vbWluYXRvcnMsbT10aGlzLl9jb2VmLF89dGhpcy5feFRhYmxlLGcsYjtmb3IoZz0wO2c8PWk7KytnKXBbZ109bC1fW2ddO2ZvcihnPTA7Zzw9aTsrK2cpe2ZvcihtW2ddPTEsYj0wO2I8PWk7KytiKWIhPT1nJiYobVtnXSo9cFtiXSk7bVtnXSo9ZFtnXTtsZXQgTz0ocytnKSozO24ueCs9bVtnXSpjW08rK10sbi55Kz1tW2ddKmNbTysrXSxuLnMrPW1bZ10qY1tPXX1yZXR1cm4gbn07dGI9QWh9KTt2YXIgRmUsYmgsbmEsd2gsWm8sb3MscnMsaXMsd1AsVFAsT1AsRVAsUlAsU1AsQ1AsbmIseFAsUFAsTVAsTlAsSVAsdlAsRFAsTFAsRlAsQlAsTnAsRWgsVVAsVlAsa1AsVGgsT2gsR1AselAsalAsSFAsb2IscmIsaWIscVAsS1AsUmgsc2IsZ3IsJHM9WigoKT0+e3plKCk7VXQoKTtocigpO3ZlKCk7WXQoKTtJdCgpO2F0KCk7SHQoKTtXQSgpO1FtKCk7WnQoKTtYQSgpO2ViKCk7X2goKTtkcCgpO1d0KCk7Rm4oKTtrbigpOyRvKCk7Y3AoKTtGZT17fSxiaD17dXA6e3NvdXRoOiJlYXN0Iixub3J0aDoid2VzdCIsd2VzdDoic291dGgiLGVhc3Q6Im5vcnRoIn0sZG93bjp7c291dGg6Indlc3QiLG5vcnRoOiJlYXN0Iix3ZXN0OiJub3J0aCIsZWFzdDoic291dGgifSxzb3V0aDp7dXA6Indlc3QiLGRvd246ImVhc3QiLHdlc3Q6ImRvd24iLGVhc3Q6InVwIn0sbm9ydGg6e3VwOiJlYXN0Iixkb3duOiJ3ZXN0Iix3ZXN0OiJ1cCIsZWFzdDoiZG93biJ9LHdlc3Q6e3VwOiJub3J0aCIsZG93bjoic291dGgiLG5vcnRoOiJkb3duIixzb3V0aDoidXAifSxlYXN0Ont1cDoic291dGgiLGRvd246Im5vcnRoIixub3J0aDoidXAiLHNvdXRoOiJkb3duIn19LG5hPXtub3J0aDpbLTEsMCwwXSxlYXN0OlswLDEsMF0sdXA6WzAsMCwxXSxzb3V0aDpbMSwwLDBdLHdlc3Q6WzAsLTEsMF0sZG93bjpbMCwwLC0xXX0sd2g9e30sWm89e2Vhc3Q6bmV3IGEsbm9ydGg6bmV3IGEsdXA6bmV3IGEsd2VzdDpuZXcgYSxzb3V0aDpuZXcgYSxkb3duOm5ldyBhfSxvcz1uZXcgYSxycz1uZXcgYSxpcz1uZXcgYTtGZS5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yPWZ1bmN0aW9uKHQsZSl7aWYoIWJoLmhhc093blByb3BlcnR5KHQpfHwhYmhbdF0uaGFzT3duUHJvcGVydHkoZSkpdGhyb3cgbmV3IEIoImZpcnN0QXhpcyBhbmQgc2Vjb25kQXhpcyBtdXN0IGJlIGVhc3QsIG5vcnRoLCB1cCwgd2VzdCwgc291dGggb3IgZG93bi4iKTtsZXQgbj1iaFt0XVtlXSxvLHI9dCtlO3JldHVybiBoKHdoW3JdKT9vPXdoW3JdOihvPWZ1bmN0aW9uKGkscyxmKXtpZighaChpKSl0aHJvdyBuZXcgQigib3JpZ2luIGlzIHJlcXVpcmVkLiIpO2lmKGgoZil8fChmPW5ldyBzdCksYS5lcXVhbHNFcHNpbG9uKGksYS5aRVJPLE0uRVBTSUxPTjE0KSlhLnVucGFjayhuYVt0XSwwLG9zKSxhLnVucGFjayhuYVtlXSwwLHJzKSxhLnVucGFjayhuYVtuXSwwLGlzKTtlbHNlIGlmKE0uZXF1YWxzRXBzaWxvbihpLngsMCxNLkVQU0lMT04xNCkmJk0uZXF1YWxzRXBzaWxvbihpLnksMCxNLkVQU0lMT04xNCkpe2xldCB1PU0uc2lnbihpLnopO2EudW5wYWNrKG5hW3RdLDAsb3MpLHQhPT0iZWFzdCImJnQhPT0id2VzdCImJmEubXVsdGlwbHlCeVNjYWxhcihvcyx1LG9zKSxhLnVucGFjayhuYVtlXSwwLHJzKSxlIT09ImVhc3QiJiZlIT09Indlc3QiJiZhLm11bHRpcGx5QnlTY2FsYXIocnMsdSxycyksYS51bnBhY2sobmFbbl0sMCxpcyksbiE9PSJlYXN0IiYmbiE9PSJ3ZXN0IiYmYS5tdWx0aXBseUJ5U2NhbGFyKGlzLHUsaXMpfWVsc2V7cz14KHMsJC5XR1M4NCkscy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoaSxaby51cCk7bGV0IHU9Wm8udXAsYz1aby5lYXN0O2MueD0taS55LGMueT1pLngsYy56PTAsYS5ub3JtYWxpemUoYyxaby5lYXN0KSxhLmNyb3NzKHUsYyxaby5ub3J0aCksYS5tdWx0aXBseUJ5U2NhbGFyKFpvLnVwLC0xLFpvLmRvd24pLGEubXVsdGlwbHlCeVNjYWxhcihaby5lYXN0LC0xLFpvLndlc3QpLGEubXVsdGlwbHlCeVNjYWxhcihaby5ub3J0aCwtMSxaby5zb3V0aCksb3M9Wm9bdF0scnM9Wm9bZV0saXM9Wm9bbl19cmV0dXJuIGZbMF09b3MueCxmWzFdPW9zLnksZlsyXT1vcy56LGZbM109MCxmWzRdPXJzLngsZls1XT1ycy55LGZbNl09cnMueixmWzddPTAsZls4XT1pcy54LGZbOV09aXMueSxmWzEwXT1pcy56LGZbMTFdPTAsZlsxMl09aS54LGZbMTNdPWkueSxmWzE0XT1pLnosZlsxNV09MSxmfSx3aFtyXT1vKSxvfTtGZS5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZT1GZS5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yKCJlYXN0Iiwibm9ydGgiKTtGZS5ub3J0aEVhc3REb3duVG9GaXhlZEZyYW1lPUZlLmxvY2FsRnJhbWVUb0ZpeGVkRnJhbWVHZW5lcmF0b3IoIm5vcnRoIiwiZWFzdCIpO0ZlLm5vcnRoVXBFYXN0VG9GaXhlZEZyYW1lPUZlLmxvY2FsRnJhbWVUb0ZpeGVkRnJhbWVHZW5lcmF0b3IoIm5vcnRoIiwidXAiKTtGZS5ub3J0aFdlc3RVcFRvRml4ZWRGcmFtZT1GZS5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yKCJub3J0aCIsIndlc3QiKTt3UD1uZXcgbmUsVFA9bmV3IGEoMSwxLDEpLE9QPW5ldyBzdDtGZS5oZWFkaW5nUGl0Y2hSb2xsVG9GaXhlZEZyYW1lPWZ1bmN0aW9uKHQsZSxuLG8scil7eS50eXBlT2Yub2JqZWN0KCJIZWFkaW5nUGl0Y2hSb2xsIixlKSxvPXgobyxGZS5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZSk7bGV0IGk9bmUuZnJvbUhlYWRpbmdQaXRjaFJvbGwoZSx3UCkscz1zdC5mcm9tVHJhbnNsYXRpb25RdWF0ZXJuaW9uUm90YXRpb25TY2FsZShhLlpFUk8saSxUUCxPUCk7cmV0dXJuIHI9byh0LG4sciksc3QubXVsdGlwbHkocixzLHIpfTtFUD1uZXcgc3QsUlA9bmV3IHR0O0ZlLmhlYWRpbmdQaXRjaFJvbGxRdWF0ZXJuaW9uPWZ1bmN0aW9uKHQsZSxuLG8scil7eS50eXBlT2Yub2JqZWN0KCJIZWFkaW5nUGl0Y2hSb2xsIixlKTtsZXQgaT1GZS5oZWFkaW5nUGl0Y2hSb2xsVG9GaXhlZEZyYW1lKHQsZSxuLG8sRVApLHM9c3QuZ2V0TWF0cml4MyhpLFJQKTtyZXR1cm4gbmUuZnJvbVJvdGF0aW9uTWF0cml4KHMscil9O1NQPW5ldyBhKDEsMSwxKSxDUD1uZXcgYSxuYj1uZXcgc3QseFA9bmV3IHN0LFBQPW5ldyB0dCxNUD1uZXcgbmU7RmUuZml4ZWRGcmFtZVRvSGVhZGluZ1BpdGNoUm9sbD1mdW5jdGlvbih0LGUsbixvKXt5LmRlZmluZWQoInRyYW5zZm9ybSIsdCksZT14KGUsJC5XR1M4NCksbj14KG4sRmUuZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUpLGgobyl8fChvPW5ldyBtaCk7bGV0IHI9c3QuZ2V0VHJhbnNsYXRpb24odCxDUCk7aWYoYS5lcXVhbHMocixhLlpFUk8pKXJldHVybiBvLmhlYWRpbmc9MCxvLnBpdGNoPTAsby5yb2xsPTAsbztsZXQgaT1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24obihyLGUsbmIpLG5iKSxzPXN0LnNldFNjYWxlKHQsU1AseFApO3M9c3Quc2V0VHJhbnNsYXRpb24ocyxhLlpFUk8scyksaT1zdC5tdWx0aXBseShpLHMsaSk7bGV0IGY9bmUuZnJvbVJvdGF0aW9uTWF0cml4KHN0LmdldE1hdHJpeDMoaSxQUCksTVApO3JldHVybiBmPW5lLm5vcm1hbGl6ZShmLGYpLG1oLmZyb21RdWF0ZXJuaW9uKGYsbyl9O05QPTYqMzYwMCs0MSo2MCs1MC41NDg0MSxJUD04NjQwMTg0ODEyODY2ZS02LHZQPS4wOTMxMDQsRFA9LTYyZS03LExQPTExNzcyNzU4Mzg0NjY4ZS0zMixGUD03MjkyMTE1ODU1M2UtMTUsQlA9TS5UV09fUEkvODY0MDAsTnA9bmV3IGlvO0ZlLmNvbXB1dGVUZW1lVG9Qc2V1ZG9GaXhlZE1hdHJpeD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJkYXRlIGlzIHJlcXVpcmVkLiIpO05wPWlvLmFkZFNlY29uZHModCwtaW8uY29tcHV0ZVRhaU1pbnVzVXRjKHQpLE5wKTtsZXQgbj1OcC5kYXlOdW1iZXIsbz1OcC5zZWNvbmRzT2ZEYXkscixpPW4tMjQ1MTU0NTtvPj00MzIwMD9yPShpKy41KS9fbi5EQVlTX1BFUl9KVUxJQU5fQ0VOVFVSWTpyPShpLS41KS9fbi5EQVlTX1BFUl9KVUxJQU5fQ0VOVFVSWTtsZXQgZj0oTlArciooSVArcioodlArcipEUCkpKSpCUCVNLlRXT19QSSx1PUZQK0xQKihuLTI0NTE1NDU1ZS0xKSxjPShvK19uLlNFQ09ORFNfUEVSX0RBWSouNSklX24uU0VDT05EU19QRVJfREFZLGw9Zit1KmMscD1NYXRoLmNvcyhsKSxkPU1hdGguc2luKGwpO3JldHVybiBoKGUpPyhlWzBdPXAsZVsxXT0tZCxlWzJdPTAsZVszXT1kLGVbNF09cCxlWzVdPTAsZVs2XT0wLGVbN109MCxlWzhdPTEsZSk6bmV3IHR0KHAsZCwwLC1kLHAsMCwwLDAsMSl9O0ZlLmlhdTIwMDZYeXNEYXRhPW5ldyB0YjtGZS5lYXJ0aE9yaWVudGF0aW9uUGFyYW1ldGVycz1LQS5OT05FO0VoPTMyLjE4NCxVUD0yNDUxNTQ1O0ZlLnByZWxvYWRJY3JmRml4ZWQ9ZnVuY3Rpb24odCl7bGV0IGU9dC5zdGFydC5kYXlOdW1iZXIsbj10LnN0YXJ0LnNlY29uZHNPZkRheStFaCxvPXQuc3RvcC5kYXlOdW1iZXIscj10LnN0b3Auc2Vjb25kc09mRGF5K0VoO3JldHVybiBGZS5pYXUyMDA2WHlzRGF0YS5wcmVsb2FkKGUsbixvLHIpfTtGZS5jb21wdXRlSWNyZlRvRml4ZWRNYXRyaXg9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigiZGF0ZSBpcyByZXF1aXJlZC4iKTtoKGUpfHwoZT1uZXcgdHQpO2xldCBuPUZlLmNvbXB1dGVGaXhlZFRvSWNyZk1hdHJpeCh0LGUpO2lmKGgobikpcmV0dXJuIHR0LnRyYW5zcG9zZShuLGUpfTtWUD1uZXcgTXAoMCwwLDApLGtQPW5ldyBkZigwLDAsMCwwLDAsMCksVGg9bmV3IHR0LE9oPW5ldyB0dDtGZS5jb21wdXRlRml4ZWRUb0ljcmZNYXRyaXg9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigiZGF0ZSBpcyByZXF1aXJlZC4iKTtoKGUpfHwoZT1uZXcgdHQpO2xldCBuPUZlLmVhcnRoT3JpZW50YXRpb25QYXJhbWV0ZXJzLmNvbXB1dGUodCxrUCk7aWYoIWgobikpcmV0dXJuO2xldCBvPXQuZGF5TnVtYmVyLHI9dC5zZWNvbmRzT2ZEYXkrRWgsaT1GZS5pYXUyMDA2WHlzRGF0YS5jb21wdXRlWHlzUmFkaWFucyhvLHIsVlApO2lmKCFoKGkpKXJldHVybjtsZXQgcz1pLngrbi54UG9sZU9mZnNldCxmPWkueStuLnlQb2xlT2Zmc2V0LHU9MS8oMStNYXRoLnNxcnQoMS1zKnMtZipmKSksYz1UaDtjWzBdPTEtdSpzKnMsY1szXT0tdSpzKmYsY1s2XT1zLGNbMV09LXUqcypmLGNbNF09MS11KmYqZixjWzddPWYsY1syXT0tcyxjWzVdPS1mLGNbOF09MS11KihzKnMrZipmKTtsZXQgbD10dC5mcm9tUm90YXRpb25aKC1pLnMsT2gpLHA9dHQubXVsdGlwbHkoYyxsLFRoKSxkPXQuZGF5TnVtYmVyLG09dC5zZWNvbmRzT2ZEYXktaW8uY29tcHV0ZVRhaU1pbnVzVXRjKHQpK24udXQxTWludXNVdGMsXz1kLTI0NTE1NDUsZz1tL19uLlNFQ09ORFNfUEVSX0RBWSxiPS43NzkwNTcyNzMyNjQrZysuMDAyNzM3ODExOTExMzU0NDgqKF8rZyk7Yj1iJTEqTS5UV09fUEk7bGV0IE89dHQuZnJvbVJvdGF0aW9uWihiLE9oKSxUPXR0Lm11bHRpcGx5KHAsTyxUaCksRT1NYXRoLmNvcyhuLnhQb2xlV2FuZGVyKSx3PU1hdGguY29zKG4ueVBvbGVXYW5kZXIpLEM9TWF0aC5zaW4obi54UG9sZVdhbmRlciksTj1NYXRoLnNpbihuLnlQb2xlV2FuZGVyKSxJPW8tVVArci9fbi5TRUNPTkRTX1BFUl9EQVk7SS89MzY1MjU7bGV0IEw9LTQ3ZS02KkkqTS5SQURJQU5TX1BFUl9ERUdSRUUvMzYwMCx2PU1hdGguY29zKEwpLEQ9TWF0aC5zaW4oTCksVT1PaDtyZXR1cm4gVVswXT1FKnYsVVsxXT1FKkQsVVsyXT1DLFVbM109LXcqRCtOKkMqdixVWzRdPXcqditOKkMqRCxVWzVdPS1OKkUsVVs2XT0tTipELXcqQyp2LFVbN109Tip2LXcqQypELFVbOF09dypFLHR0Lm11bHRpcGx5KFQsVSxlKX07R1A9bmV3IF9lO0ZlLnBvaW50VG9XaW5kb3dDb29yZGluYXRlcz1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gbz1GZS5wb2ludFRvR0xXaW5kb3dDb29yZGluYXRlcyh0LGUsbixvKSxvLnk9MiplWzVdLW8ueSxvfTtGZS5wb2ludFRvR0xXaW5kb3dDb29yZGluYXRlcz1mdW5jdGlvbih0LGUsbixvKXtpZighaCh0KSl0aHJvdyBuZXcgQigibW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigidmlld3BvcnRUcmFuc2Zvcm1hdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigicG9pbnQgaXMgcmVxdWlyZWQuIik7aChvKXx8KG89bmV3IG50KTtsZXQgcj1HUDtyZXR1cm4gc3QubXVsdGlwbHlCeVZlY3Rvcih0LF9lLmZyb21FbGVtZW50cyhuLngsbi55LG4ueiwxLHIpLHIpLF9lLm11bHRpcGx5QnlTY2FsYXIociwxL3IudyxyKSxzdC5tdWx0aXBseUJ5VmVjdG9yKGUscixyKSxudC5mcm9tQ2FydGVzaWFuNChyLG8pfTt6UD1uZXcgYSxqUD1uZXcgYSxIUD1uZXcgYTtGZS5yb3RhdGlvbk1hdHJpeEZyb21Qb3NpdGlvblZlbG9jaXR5PWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJwb3NpdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigidmVsb2NpdHkgaXMgcmVxdWlyZWQuIik7bGV0IHI9eChuLCQuV0dTODQpLmdlb2RldGljU3VyZmFjZU5vcm1hbCh0LHpQKSxpPWEuY3Jvc3MoZSxyLGpQKTthLmVxdWFsc0Vwc2lsb24oaSxhLlpFUk8sTS5FUFNJTE9ONikmJihpPWEuY2xvbmUoYS5VTklUX1gsaSkpO2xldCBzPWEuY3Jvc3MoaSxlLEhQKTtyZXR1cm4gYS5ub3JtYWxpemUocyxzKSxhLmNyb3NzKGUscyxpKSxhLm5lZ2F0ZShpLGkpLGEubm9ybWFsaXplKGksaSksaChvKXx8KG89bmV3IHR0KSxvWzBdPWUueCxvWzFdPWUueSxvWzJdPWUueixvWzNdPWkueCxvWzRdPWkueSxvWzVdPWkueixvWzZdPXMueCxvWzddPXMueSxvWzhdPXMueixvfTtvYj1uZXcgc3QoMCwwLDEsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDAsMSkscmI9bmV3IGN0LGliPW5ldyBhLHFQPW5ldyBhLEtQPW5ldyB0dCxSaD1uZXcgc3Qsc2I9bmV3IHN0O0ZlLmJhc2lzVG8yRD1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInByb2plY3Rpb24gaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoIm1hdHJpeCBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigicmVzdWx0IGlzIHJlcXVpcmVkLiIpO2xldCBvPXN0LmdldFRyYW5zbGF0aW9uKGUscVApLHI9dC5lbGxpcHNvaWQsaT1yLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG8scmIpLHM9dC5wcm9qZWN0KGksaWIpO2EuZnJvbUVsZW1lbnRzKHMueixzLngscy55LHMpO2xldCBmPUZlLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKG8scixSaCksdT1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oZixzYiksYz1zdC5nZXRNYXRyaXgzKGUsS1ApLGw9c3QubXVsdGlwbHlCeU1hdHJpeDModSxjLG4pO3JldHVybiBzdC5tdWx0aXBseShvYixsLG4pLHN0LnNldFRyYW5zbGF0aW9uKG4scyxuKSxufTtGZS53Z3M4NFRvMkRNb2RlbE1hdHJpeD1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInByb2plY3Rpb24gaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImNlbnRlciBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigicmVzdWx0IGlzIHJlcXVpcmVkLiIpO2xldCBvPXQuZWxsaXBzb2lkLHI9RmUuZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUoZSxvLFJoKSxpPXN0LmludmVyc2VUcmFuc2Zvcm1hdGlvbihyLHNiKSxzPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxyYiksZj10LnByb2plY3QocyxpYik7YS5mcm9tRWxlbWVudHMoZi56LGYueCxmLnksZik7bGV0IHU9c3QuZnJvbVRyYW5zbGF0aW9uKGYsUmgpO3JldHVybiBzdC5tdWx0aXBseShvYixpLG4pLHN0Lm11bHRpcGx5KHUsbixuKSxufTtncj1GZX0pO2Z1bmN0aW9uIFNoKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMuYXR0cmlidXRlcyIsdC5hdHRyaWJ1dGVzKSx0aGlzLmF0dHJpYnV0ZXM9dC5hdHRyaWJ1dGVzLHRoaXMuaW5kaWNlcz10LmluZGljZXMsdGhpcy5wcmltaXRpdmVUeXBlPXgodC5wcmltaXRpdmVUeXBlLEx0LlRSSUFOR0xFUyksdGhpcy5ib3VuZGluZ1NwaGVyZT10LmJvdW5kaW5nU3BoZXJlLHRoaXMuZ2VvbWV0cnlUeXBlPXgodC5nZW9tZXRyeVR5cGUsU2kuTk9ORSksdGhpcy5ib3VuZGluZ1NwaGVyZUNWPXQuYm91bmRpbmdTcGhlcmVDVix0aGlzLm9mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZX12YXIgV1AsWFAsY2IsWVAsJFAsWlAsUVAsSlAsdDMsZTMsRnQsWGU9WigoKT0+e3plKCk7VXQoKTt2ZSgpO1l0KCk7SXQoKTthdCgpO0h0KCk7V2woKTtmZigpO0ZuKCk7a24oKTt0bigpOyRvKCk7QW4oKTskcygpO1NoLmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzPWZ1bmN0aW9uKHQpe3kudHlwZU9mLm9iamVjdCgiZ2VvbWV0cnkiLHQpO2xldCBlPS0xO2ZvcihsZXQgbiBpbiB0LmF0dHJpYnV0ZXMpaWYodC5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KG4pJiZoKHQuYXR0cmlidXRlc1tuXSkmJmgodC5hdHRyaWJ1dGVzW25dLnZhbHVlcykpe2xldCBvPXQuYXR0cmlidXRlc1tuXSxyPW8udmFsdWVzLmxlbmd0aC9vLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGU7aWYoZSE9PXImJmUhPT0tMSl0aHJvdyBuZXcgQigiQWxsIGF0dHJpYnV0ZSBsaXN0cyBtdXN0IGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIGF0dHJpYnV0ZXMuIik7ZT1yfXJldHVybiBlfTtXUD1uZXcgY3QsWFA9bmV3IGEsY2I9bmV3IHN0LFlQPVtuZXcgY3QsbmV3IGN0LG5ldyBjdF0sJFA9W25ldyBudCxuZXcgbnQsbmV3IG50XSxaUD1bbmV3IG50LG5ldyBudCxuZXcgbnRdLFFQPW5ldyBhLEpQPW5ldyBuZSx0Mz1uZXcgc3QsZTM9bmV3IFhvO1NoLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzPWZ1bmN0aW9uKHQsZSxuLG8pe2xldCByLGk9UHQuY2VudGVyKG8sV1ApLHM9Y3QudG9DYXJ0ZXNpYW4oaSxuLFhQKSxmPWdyLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKHMsbixjYiksdT1zdC5pbnZlcnNlKGYsY2IpLGM9JFAsbD1ZUDtsWzBdLmxvbmdpdHVkZT1vLndlc3QsbFswXS5sYXRpdHVkZT1vLnNvdXRoLGxbMV0ubG9uZ2l0dWRlPW8ud2VzdCxsWzFdLmxhdGl0dWRlPW8ubm9ydGgsbFsyXS5sb25naXR1ZGU9by5lYXN0LGxbMl0ubGF0aXR1ZGU9by5zb3V0aDtsZXQgcD1RUDtmb3Iocj0wO3I8MztyKyspY3QudG9DYXJ0ZXNpYW4obFtyXSxuLHApLHA9c3QubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IodSxwLHApLGNbcl0ueD1wLngsY1tyXS55PXAueTtsZXQgZD1uZS5mcm9tQXhpc0FuZ2xlKGEuVU5JVF9aLC1lLEpQKSxtPXR0LmZyb21RdWF0ZXJuaW9uKGQsdDMpLF89dC5sZW5ndGgsZz1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksYj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksTz1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksVD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Zm9yKHI9MDtyPF87cisrKXA9c3QubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IodSx0W3JdLHApLHA9dHQubXVsdGlwbHlCeVZlY3RvcihtLHAscCksZz1NYXRoLm1pbihnLHAueCksYj1NYXRoLm1pbihiLHAueSksTz1NYXRoLm1heChPLHAueCksVD1NYXRoLm1heChULHAueSk7bGV0IEU9WG8uZnJvbVJvdGF0aW9uKGUsZTMpLHc9WlA7d1swXS54PWcsd1swXS55PWIsd1sxXS54PWcsd1sxXS55PVQsd1syXS54PU8sd1syXS55PWI7bGV0IEM9Y1swXSxOPWNbMl0ueC1DLngsST1jWzFdLnktQy55O2ZvcihyPTA7cjwzO3IrKyl7bGV0IEE9d1tyXTtYby5tdWx0aXBseUJ5VmVjdG9yKEUsQSxBKSxBLng9KEEueC1DLngpL04sQS55PShBLnktQy55KS9JfWxldCBMPXdbMF0sdj13WzFdLEQ9d1syXSxVPW5ldyBBcnJheSg2KTtyZXR1cm4gbnQucGFjayhMLFUpLG50LnBhY2sodixVLDIpLG50LnBhY2soRCxVLDQpLFV9O0Z0PVNofSk7ZnVuY3Rpb24gbjModCl7aWYodD14KHQseC5FTVBUWV9PQkpFQ1QpLCFoKHQuY29tcG9uZW50RGF0YXR5cGUpKXRocm93IG5ldyBCKCJvcHRpb25zLmNvbXBvbmVudERhdGF0eXBlIGlzIHJlcXVpcmVkLiIpO2lmKCFoKHQuY29tcG9uZW50c1BlckF0dHJpYnV0ZSkpdGhyb3cgbmV3IEIoIm9wdGlvbnMuY29tcG9uZW50c1BlckF0dHJpYnV0ZSBpcyByZXF1aXJlZC4iKTtpZih0LmNvbXBvbmVudHNQZXJBdHRyaWJ1dGU8MXx8dC5jb21wb25lbnRzUGVyQXR0cmlidXRlPjQpdGhyb3cgbmV3IEIoIm9wdGlvbnMuY29tcG9uZW50c1BlckF0dHJpYnV0ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNC4iKTtpZighaCh0LnZhbHVlcykpdGhyb3cgbmV3IEIoIm9wdGlvbnMudmFsdWVzIGlzIHJlcXVpcmVkLiIpO3RoaXMuY29tcG9uZW50RGF0YXR5cGU9dC5jb21wb25lbnREYXRhdHlwZSx0aGlzLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGU9dC5jb21wb25lbnRzUGVyQXR0cmlidXRlLHRoaXMubm9ybWFsaXplPXgodC5ub3JtYWxpemUsITEpLHRoaXMudmFsdWVzPXQudmFsdWVzfXZhciBydCxZZT1aKCgpPT57SXQoKTthdCgpO0h0KCk7cnQ9bjN9KTtmdW5jdGlvbiBvMyh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5wb3NpdGlvbj10LnBvc2l0aW9uLHRoaXMubm9ybWFsPXQubm9ybWFsLHRoaXMuc3Q9dC5zdCx0aGlzLmJpdGFuZ2VudD10LmJpdGFuZ2VudCx0aGlzLnRhbmdlbnQ9dC50YW5nZW50LHRoaXMuY29sb3I9dC5jb2xvcn12YXIgcmUsYW49WigoKT0+e0l0KCk7cmU9bzN9KTt2YXIgSGUsYWIsZmI9WigoKT0+e3plKCk7VXQoKTtocigpO1l0KCk7SHQoKTtmZigpO0ZuKCk7a24oKTtIZT17U0NBTEFSOiJTQ0FMQVIiLFZFQzI6IlZFQzIiLFZFQzM6IlZFQzMiLFZFQzQ6IlZFQzQiLE1BVDI6Ik1BVDIiLE1BVDM6Ik1BVDMiLE1BVDQ6Ik1BVDQifTtIZS5nZXRNYXRoVHlwZT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBIZS5TQ0FMQVI6cmV0dXJuIE51bWJlcjtjYXNlIEhlLlZFQzI6cmV0dXJuIG50O2Nhc2UgSGUuVkVDMzpyZXR1cm4gYTtjYXNlIEhlLlZFQzQ6cmV0dXJuIF9lO2Nhc2UgSGUuTUFUMjpyZXR1cm4gWG87Y2FzZSBIZS5NQVQzOnJldHVybiB0dDtjYXNlIEhlLk1BVDQ6cmV0dXJuIHN0O2RlZmF1bHQ6dGhyb3cgbmV3IEIoImF0dHJpYnV0ZVR5cGUgaXMgbm90IGEgdmFsaWQgdmFsdWUuIil9fTtIZS5nZXROdW1iZXJPZkNvbXBvbmVudHM9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UgSGUuU0NBTEFSOnJldHVybiAxO2Nhc2UgSGUuVkVDMjpyZXR1cm4gMjtjYXNlIEhlLlZFQzM6cmV0dXJuIDM7Y2FzZSBIZS5WRUM0OmNhc2UgSGUuTUFUMjpyZXR1cm4gNDtjYXNlIEhlLk1BVDM6cmV0dXJuIDk7Y2FzZSBIZS5NQVQ0OnJldHVybiAxNjtkZWZhdWx0OnRocm93IG5ldyBCKCJhdHRyaWJ1dGVUeXBlIGlzIG5vdCBhIHZhbGlkIHZhbHVlLiIpfX07SGUuZ2V0QXR0cmlidXRlTG9jYXRpb25Db3VudD1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBIZS5TQ0FMQVI6Y2FzZSBIZS5WRUMyOmNhc2UgSGUuVkVDMzpjYXNlIEhlLlZFQzQ6cmV0dXJuIDE7Y2FzZSBIZS5NQVQyOnJldHVybiAyO2Nhc2UgSGUuTUFUMzpyZXR1cm4gMztjYXNlIEhlLk1BVDQ6cmV0dXJuIDQ7ZGVmYXVsdDp0aHJvdyBuZXcgQigiYXR0cmlidXRlVHlwZSBpcyBub3QgYSB2YWxpZCB2YWx1ZS4iKX19O0hlLmdldEdsc2xUeXBlPWZ1bmN0aW9uKHQpe3N3aXRjaCh5LnR5cGVPZi5zdHJpbmcoImF0dHJpYnV0ZVR5cGUiLHQpLHQpe2Nhc2UgSGUuU0NBTEFSOnJldHVybiJmbG9hdCI7Y2FzZSBIZS5WRUMyOnJldHVybiJ2ZWMyIjtjYXNlIEhlLlZFQzM6cmV0dXJuInZlYzMiO2Nhc2UgSGUuVkVDNDpyZXR1cm4idmVjNCI7Y2FzZSBIZS5NQVQyOnJldHVybiJtYXQyIjtjYXNlIEhlLk1BVDM6cmV0dXJuIm1hdDMiO2Nhc2UgSGUuTUFUNDpyZXR1cm4ibWF0NCI7ZGVmYXVsdDp0aHJvdyBuZXcgQigiYXR0cmlidXRlVHlwZSBpcyBub3QgYSB2YWxpZCB2YWx1ZS4iKX19O2FiPU9iamVjdC5mcmVlemUoSGUpfSk7ZnVuY3Rpb24gSXAodCl7cmV0dXJuIHBiWzBdPXQscGJbMF19ZnVuY3Rpb24gQ2godCl7cmV0dXJuIHQ+PjFeLSh0JjEpfXZhciB1YixsYixlbix3ZixwYix4aCxubixzcz1aKCgpPT57emUoKTtVdCgpO0RlKCk7WXQoKTthdCgpO0h0KCk7V3QoKTtmYigpO3ViPTEvMjU2LGxiPTI1Nixlbj17fTtlbi5vY3RFbmNvZGVJblJhbmdlPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoInZlY3RvciIsdCkseS5kZWZpbmVkKCJyZXN1bHQiLG4pO2xldCBvPWEubWFnbml0dWRlU3F1YXJlZCh0KTtpZihNYXRoLmFicyhvLTEpPk0uRVBTSUxPTjYpdGhyb3cgbmV3IEIoInZlY3RvciBtdXN0IGJlIG5vcm1hbGl6ZWQuIik7aWYobi54PXQueC8oTWF0aC5hYnModC54KStNYXRoLmFicyh0LnkpK01hdGguYWJzKHQueikpLG4ueT10LnkvKE1hdGguYWJzKHQueCkrTWF0aC5hYnModC55KStNYXRoLmFicyh0LnopKSx0Lno8MCl7bGV0IHI9bi54LGk9bi55O24ueD0oMS1NYXRoLmFicyhpKSkqTS5zaWduTm90WmVybyhyKSxuLnk9KDEtTWF0aC5hYnMocikpKk0uc2lnbk5vdFplcm8oaSl9cmV0dXJuIG4ueD1NLnRvU05vcm0obi54LGUpLG4ueT1NLnRvU05vcm0obi55LGUpLG59O2VuLm9jdEVuY29kZT1mdW5jdGlvbih0LGUpe3JldHVybiBlbi5vY3RFbmNvZGVJblJhbmdlKHQsMjU1LGUpfTt3Zj1uZXcgbnQscGI9bmV3IFVpbnQ4QXJyYXkoMSk7ZW4ub2N0RW5jb2RlVG9DYXJ0ZXNpYW40PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVuLm9jdEVuY29kZUluUmFuZ2UodCw2NTUzNSx3ZiksZS54PUlwKHdmLngqdWIpLGUueT1JcCh3Zi54KSxlLno9SXAod2YueSp1YiksZS53PUlwKHdmLnkpLGV9O2VuLm9jdERlY29kZUluUmFuZ2U9ZnVuY3Rpb24odCxlLG4sbyl7aWYoeS5kZWZpbmVkKCJyZXN1bHQiLG8pLHQ8MHx8dD5ufHxlPDB8fGU+bil0aHJvdyBuZXcgQihgeCBhbmQgeSBtdXN0IGJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgaW50ZWdlcnMgYmV0d2VlbiAwIGFuZCAke259YCk7aWYoby54PU0uZnJvbVNOb3JtKHQsbiksby55PU0uZnJvbVNOb3JtKGUsbiksby56PTEtKE1hdGguYWJzKG8ueCkrTWF0aC5hYnMoby55KSksby56PDApe2xldCByPW8ueDtvLng9KDEtTWF0aC5hYnMoby55KSkqTS5zaWduTm90WmVybyhyKSxvLnk9KDEtTWF0aC5hYnMocikpKk0uc2lnbk5vdFplcm8oby55KX1yZXR1cm4gYS5ub3JtYWxpemUobyxvKX07ZW4ub2N0RGVjb2RlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZW4ub2N0RGVjb2RlSW5SYW5nZSh0LGUsMjU1LG4pfTtlbi5vY3REZWNvZGVGcm9tQ2FydGVzaWFuND1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiZW5jb2RlZCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXQueCxvPXQueSxyPXQueixpPXQudztpZihuPDB8fG4+MjU1fHxvPDB8fG8+MjU1fHxyPDB8fHI+MjU1fHxpPDB8fGk+MjU1KXRocm93IG5ldyBCKCJ4LCB5LCB6LCBhbmQgdyBtdXN0IGJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgaW50ZWdlcnMgYmV0d2VlbiAwIGFuZCAyNTUiKTtsZXQgcz1uKmxiK28sZj1yKmxiK2k7cmV0dXJuIGVuLm9jdERlY29kZUluUmFuZ2UocyxmLDY1NTM1LGUpfTtlbi5vY3RQYWNrRmxvYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkuZGVmaW5lZCgiZW5jb2RlZCIsdCksMjU2KnQueCt0Lnl9O3hoPW5ldyBudDtlbi5vY3RFbmNvZGVGbG9hdD1mdW5jdGlvbih0KXtyZXR1cm4gZW4ub2N0RW5jb2RlKHQseGgpLGVuLm9jdFBhY2tGbG9hdCh4aCl9O2VuLm9jdERlY29kZUZsb2F0PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJ2YWx1ZSIsdCk7bGV0IG49dC8yNTYsbz1NYXRoLmZsb29yKG4pLHI9KG4tbykqMjU2O3JldHVybiBlbi5vY3REZWNvZGUobyxyLGUpfTtlbi5vY3RQYWNrPWZ1bmN0aW9uKHQsZSxuLG8pe3kuZGVmaW5lZCgidjEiLHQpLHkuZGVmaW5lZCgidjIiLGUpLHkuZGVmaW5lZCgidjMiLG4pLHkuZGVmaW5lZCgicmVzdWx0IixvKTtsZXQgcj1lbi5vY3RFbmNvZGVGbG9hdCh0KSxpPWVuLm9jdEVuY29kZUZsb2F0KGUpLHM9ZW4ub2N0RW5jb2RlKG4seGgpO3JldHVybiBvLng9NjU1MzYqcy54K3Isby55PTY1NTM2KnMueStpLG99O2VuLm9jdFVucGFjaz1mdW5jdGlvbih0LGUsbixvKXt5LmRlZmluZWQoInBhY2tlZCIsdCkseS5kZWZpbmVkKCJ2MSIsZSkseS5kZWZpbmVkKCJ2MiIsbikseS5kZWZpbmVkKCJ2MyIsbyk7bGV0IHI9dC54LzY1NTM2LGk9TWF0aC5mbG9vcihyKSxzPShyLWkpKjY1NTM2O3I9dC55LzY1NTM2O2xldCBmPU1hdGguZmxvb3IociksdT0oci1mKSo2NTUzNjtlbi5vY3REZWNvZGVGbG9hdChzLGUpLGVuLm9jdERlY29kZUZsb2F0KHUsbiksZW4ub2N0RGVjb2RlKGksZixvKX07ZW4uY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXM9ZnVuY3Rpb24odCl7eS5kZWZpbmVkKCJ0ZXh0dXJlQ29vcmRpbmF0ZXMiLHQpO2xldCBlPXQueCo0MDk1fDAsbj10LnkqNDA5NXwwO3JldHVybiA0MDk2KmUrbn07ZW4uZGVjb21wcmVzc1RleHR1cmVDb29yZGluYXRlcz1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY29tcHJlc3NlZCIsdCkseS5kZWZpbmVkKCJyZXN1bHQiLGUpO2xldCBuPXQvNDA5NixvPU1hdGguZmxvb3Iobik7cmV0dXJuIGUueD1vLzQwOTUsZS55PSh0LW8qNDA5NikvNDA5NSxlfTtlbi56aWdaYWdEZWx0YURlY29kZT1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJ1QnVmZmVyIix0KSx5LmRlZmluZWQoInZCdWZmZXIiLGUpLHkudHlwZU9mLm51bWJlci5lcXVhbHMoInVCdWZmZXIubGVuZ3RoIiwidkJ1ZmZlci5sZW5ndGgiLHQubGVuZ3RoLGUubGVuZ3RoKSxoKG4pJiZ5LnR5cGVPZi5udW1iZXIuZXF1YWxzKCJ1QnVmZmVyLmxlbmd0aCIsImhlaWdodEJ1ZmZlci5sZW5ndGgiLHQubGVuZ3RoLG4ubGVuZ3RoKTtsZXQgbz10Lmxlbmd0aCxyPTAsaT0wLHM9MDtmb3IobGV0IGY9MDtmPG87KytmKXIrPUNoKHRbZl0pLGkrPUNoKGVbZl0pLHRbZl09cixlW2ZdPWksaChuKSYmKHMrPUNoKG5bZl0pLG5bZl09cyl9O2VuLmRlcXVhbnRpemU9ZnVuY3Rpb24odCxlLG4sbyl7eS5kZWZpbmVkKCJ0eXBlZEFycmF5Iix0KSx5LmRlZmluZWQoImNvbXBvbmVudERhdGF0eXBlIixlKSx5LmRlZmluZWQoInR5cGUiLG4pLHkuZGVmaW5lZCgiY291bnQiLG8pO2xldCByPWFiLmdldE51bWJlck9mQ29tcG9uZW50cyhuKSxpO3N3aXRjaChlKXtjYXNlIG90LkJZVEU6aT0xMjc7YnJlYWs7Y2FzZSBvdC5VTlNJR05FRF9CWVRFOmk9MjU1O2JyZWFrO2Nhc2Ugb3QuU0hPUlQ6aT0zMjc2NzticmVhaztjYXNlIG90LlVOU0lHTkVEX1NIT1JUOmk9NjU1MzU7YnJlYWs7Y2FzZSBvdC5JTlQ6aT0yMTQ3NDgzNjQ3O2JyZWFrO2Nhc2Ugb3QuVU5TSUdORURfSU5UOmk9NDI5NDk2NzI5NTticmVhaztkZWZhdWx0OnRocm93IG5ldyBCKGBDYW5ub3QgZGVxdWFudGl6ZSBjb21wb25lbnQgZGF0YXR5cGU6ICR7ZX1gKX1sZXQgcz1uZXcgRmxvYXQzMkFycmF5KG8qcik7Zm9yKGxldCBmPTA7ZjxvO2YrKylmb3IobGV0IHU9MDt1PHI7dSsrKXtsZXQgYz1mKnIrdTtzW2NdPU1hdGgubWF4KHRbY10vaSwtMSl9cmV0dXJuIHN9O2VuLmRlY29kZVJHQjU2NT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgidHlwZWRBcnJheSIsdCk7bGV0IG49dC5sZW5ndGgqMztoKGUpJiZ5LnR5cGVPZi5udW1iZXIuZXF1YWxzKCJyZXN1bHQubGVuZ3RoIiwidHlwZWRBcnJheS5sZW5ndGggKiAzIixlLmxlbmd0aCxuKTtsZXQgbz10Lmxlbmd0aDtoKGUpfHwoZT1uZXcgRmxvYXQzMkFycmF5KG8qMykpO2xldCByPTMyLTEsaT02NC0xLHM9MS8zMSxmPTEvNjM7Zm9yKGxldCB1PTA7dTxvO3UrKyl7bGV0IGM9dFt1XSxsPWM+PjExLHA9Yz4+NSZpLGQ9YyZyLG09Myp1O2VbbV09bCpzLGVbbSsxXT1wKmYsZVttKzJdPWQqc31yZXR1cm4gZX07bm49ZW59KTtmdW5jdGlvbiByMyh0LGUsbixvLHIpe3kuZGVmaW5lZCgicG9pbnQiLHQpLHkuZGVmaW5lZCgicDAiLGUpLHkuZGVmaW5lZCgicDEiLG4pLHkuZGVmaW5lZCgicDIiLG8pLGgocil8fChyPW5ldyBhKTtsZXQgaSxzLGYsdSxjLGwscCxkO2lmKGgoZS56KSl7aWYoYS5lcXVhbHNFcHNpbG9uKHQsZSxNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1gscik7aWYoYS5lcXVhbHNFcHNpbG9uKHQsbixNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1kscik7aWYoYS5lcXVhbHNFcHNpbG9uKHQsbyxNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1oscik7aT1hLnN1YnRyYWN0KG4sZSxkYikscz1hLnN1YnRyYWN0KG8sZSxtYiksZj1hLnN1YnRyYWN0KHQsZSxoYiksdT1hLmRvdChpLGkpLGM9YS5kb3QoaSxzKSxsPWEuZG90KGksZikscD1hLmRvdChzLHMpLGQ9YS5kb3QocyxmKX1lbHNle2lmKG50LmVxdWFsc0Vwc2lsb24odCxlLE0uRVBTSUxPTjE0KSlyZXR1cm4gYS5jbG9uZShhLlVOSVRfWCxyKTtpZihudC5lcXVhbHNFcHNpbG9uKHQsbixNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1kscik7aWYobnQuZXF1YWxzRXBzaWxvbih0LG8sTS5FUFNJTE9OMTQpKXJldHVybiBhLmNsb25lKGEuVU5JVF9aLHIpO2k9bnQuc3VidHJhY3QobixlLGRiKSxzPW50LnN1YnRyYWN0KG8sZSxtYiksZj1udC5zdWJ0cmFjdCh0LGUsaGIpLHU9bnQuZG90KGksaSksYz1udC5kb3QoaSxzKSxsPW50LmRvdChpLGYpLHA9bnQuZG90KHMscyksZD1udC5kb3QocyxmKX1yLnk9cCpsLWMqZCxyLno9dSpkLWMqbDtsZXQgbT11KnAtYypjO2lmKG0hPT0wKXJldHVybiByLnkvPW0sci56Lz1tLHIueD0xLXIueS1yLnoscn12YXIgZGIsbWIsaGIsX2IseWI9WigoKT0+e3plKCk7VXQoKTtZdCgpO2F0KCk7V3QoKTtkYj1uZXcgYSxtYj1uZXcgYSxoYj1uZXcgYTtfYj1yM30pO2Z1bmN0aW9uIHJpKCl7dGhpcy5oaWdoPWEuY2xvbmUoYS5aRVJPKSx0aGlzLmxvdz1hLmNsb25lKGEuWkVSTyl9dmFyIE1pLFBoLFpzLE1oPVooKCk9PntVdCgpO1l0KCk7YXQoKTtyaS5lbmNvZGU9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5udW1iZXIoInZhbHVlIix0KSxoKGUpfHwoZT17aGlnaDowLGxvdzowfSk7bGV0IG47cmV0dXJuIHQ+PTA/KG49TWF0aC5mbG9vcih0LzY1NTM2KSo2NTUzNixlLmhpZ2g9bixlLmxvdz10LW4pOihuPU1hdGguZmxvb3IoLXQvNjU1MzYpKjY1NTM2LGUuaGlnaD0tbixlLmxvdz10K24pLGV9O01pPXtoaWdoOjAsbG93OjB9O3JpLmZyb21DYXJ0ZXNpYW49ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksaChlKXx8KGU9bmV3IHJpKTtsZXQgbj1lLmhpZ2gsbz1lLmxvdztyZXR1cm4gcmkuZW5jb2RlKHQueCxNaSksbi54PU1pLmhpZ2gsby54PU1pLmxvdyxyaS5lbmNvZGUodC55LE1pKSxuLnk9TWkuaGlnaCxvLnk9TWkubG93LHJpLmVuY29kZSh0LnosTWkpLG4uej1NaS5oaWdoLG8uej1NaS5sb3csZX07UGg9bmV3IHJpO3JpLndyaXRlRWxlbWVudHM9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiY2FydGVzaWFuQXJyYXkiLGUpLHkudHlwZU9mLm51bWJlcigiaW5kZXgiLG4pLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsbiwwKSxyaS5mcm9tQ2FydGVzaWFuKHQsUGgpO2xldCBvPVBoLmhpZ2gscj1QaC5sb3c7ZVtuXT1vLngsZVtuKzFdPW8ueSxlW24rMl09by56LGVbbiszXT1yLngsZVtuKzRdPXIueSxlW24rNV09ci56fTtacz1yaX0pO3ZhciBKbixEdCwkZT1aKCgpPT57YXQoKTtIdCgpO1d0KCk7a3MoKTtKbj17VU5TSUdORURfQllURTpxdC5VTlNJR05FRF9CWVRFLFVOU0lHTkVEX1NIT1JUOnF0LlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDpxdC5VTlNJR05FRF9JTlR9O0puLmdldFNpemVJbkJ5dGVzPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIEpuLlVOU0lHTkVEX0JZVEU6cmV0dXJuIFVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBKbi5VTlNJR05FRF9TSE9SVDpyZXR1cm4gVWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBKbi5VTlNJR05FRF9JTlQ6cmV0dXJuIFVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UfXRocm93IG5ldyBCKCJpbmRleERhdGF0eXBlIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgdmFsaWQgSW5kZXhEYXRhdHlwZSBjb25zdGFudC4iKX07Sm4uZnJvbVNpemVJbkJ5dGVzPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIDI6cmV0dXJuIEpuLlVOU0lHTkVEX1NIT1JUO2Nhc2UgNDpyZXR1cm4gSm4uVU5TSUdORURfSU5UO2Nhc2UgMTpyZXR1cm4gSm4uVU5TSUdORURfQllURTtkZWZhdWx0OnRocm93IG5ldyBCKCJTaXplIGluIGJ5dGVzIGNhbm5vdCBiZSBtYXBwZWQgdG8gYW4gSW5kZXhEYXRhdHlwZSIpfX07Sm4udmFsaWRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJih0PT09Sm4uVU5TSUdORURfQllURXx8dD09PUpuLlVOU0lHTkVEX1NIT1JUfHx0PT09Sm4uVU5TSUdORURfSU5UKX07Sm4uY3JlYXRlVHlwZWRBcnJheT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJudW1iZXJPZlZlcnRpY2VzIGlzIHJlcXVpcmVkLiIpO3JldHVybiB0Pj1NLlNJWFRZX0ZPVVJfS0lMT0JZVEVTP25ldyBVaW50MzJBcnJheShlKTpuZXcgVWludDE2QXJyYXkoZSl9O0puLmNyZWF0ZVR5cGVkQXJyYXlGcm9tQXJyYXlCdWZmZXI9ZnVuY3Rpb24odCxlLG4sbyl7aWYoIWgodCkpdGhyb3cgbmV3IEIoIm51bWJlck9mVmVydGljZXMgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoInNvdXJjZUFycmF5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJieXRlT2Zmc2V0IGlzIHJlcXVpcmVkLiIpO3JldHVybiB0Pj1NLlNJWFRZX0ZPVVJfS0lMT0JZVEVTP25ldyBVaW50MzJBcnJheShlLG4sbyk6bmV3IFVpbnQxNkFycmF5KGUsbixvKX07Sm4uZnJvbVR5cGVkQXJyYXk9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIEpuLlVOU0lHTkVEX0JZVEU7aWYodCBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KXJldHVybiBKbi5VTlNJR05FRF9TSE9SVDtpZih0IGluc3RhbmNlb2YgVWludDMyQXJyYXkpcmV0dXJuIEpuLlVOU0lHTkVEX0lOVDt0aHJvdyBuZXcgQigiYXJyYXkgbXVzdCBiZSBhIFVpbnQ4QXJyYXksIFVpbnQxNkFycmF5LCBvciBVaW50MzJBcnJheS4iKX07RHQ9T2JqZWN0LmZyZWV6ZShKbil9KTtmdW5jdGlvbiBnYih0LGUsbil7bGV0IG89dCtlO3JldHVybiBNLnNpZ24odCkhPT1NLnNpZ24oZSkmJk1hdGguYWJzKG8vTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKTxuPzA6b312YXIgTmgsQXIsdnA9WigoKT0+e0h0KCk7V3QoKTtOaD17fTtOaC5jb21wdXRlRGlzY3JpbWluYW50PWZ1bmN0aW9uKHQsZSxuKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEIoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBCKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgQigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtyZXR1cm4gZSplLTQqdCpufTtOaC5jb21wdXRlUmVhbFJvb3RzPWZ1bmN0aW9uKHQsZSxuKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEIoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBCKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgQigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtsZXQgbztpZih0PT09MClyZXR1cm4gZT09PTA/W106Wy1uL2VdO2lmKGU9PT0wKXtpZihuPT09MClyZXR1cm5bMCwwXTtsZXQgdT1NYXRoLmFicyhuKSxjPU1hdGguYWJzKHQpO2lmKHU8YyYmdS9jPE0uRVBTSUxPTjE0KXJldHVyblswLDBdO2lmKHU+YyYmYy91PE0uRVBTSUxPTjE0KXJldHVybltdO2lmKG89LW4vdCxvPDApcmV0dXJuW107bGV0IGw9TWF0aC5zcXJ0KG8pO3JldHVyblstbCxsXX1lbHNlIGlmKG49PT0wKXJldHVybiBvPS1lL3QsbzwwP1tvLDBdOlswLG9dO2xldCByPWUqZSxpPTQqdCpuLHM9Z2IociwtaSxNLkVQU0lMT04xNCk7aWYoczwwKXJldHVybltdO2xldCBmPS0uNSpnYihlLE0uc2lnbihlKSpNYXRoLnNxcnQocyksTS5FUFNJTE9OMTQpO3JldHVybiBlPjA/W2YvdCxuL2ZdOltuL2YsZi90XX07QXI9Tmh9KTtmdW5jdGlvbiBJaCh0LGUsbixvKXtsZXQgcj10LGk9ZS8zLHM9bi8zLGY9byx1PXIqcyxjPWkqZixsPWkqaSxwPXMqcyxkPXIqcy1sLG09cipmLWkqcyxfPWkqZi1wLGc9NCpkKl8tbSptLGIsTztpZihnPDApe2xldCBSLFEsZnQ7bCpjPj11KnA/KFI9cixRPWQsZnQ9LTIqaSpkK3IqbSk6KFI9ZixRPV8sZnQ9LWYqbSsyKnMqXyk7bGV0IGd0PS0oZnQ8MD8tMToxKSpNYXRoLmFicyhSKSpNYXRoLnNxcnQoLWcpO089LWZ0K2d0O2xldCBpdD1PLzIsTnQ9aXQ8MD8tTWF0aC5wb3coLWl0LDEvMyk6TWF0aC5wb3coaXQsMS8zKSxPdD1PPT09Z3Q/LU50Oi1RL050O3JldHVybiBiPVE8PTA/TnQrT3Q6LWZ0LyhOdCpOdCtPdCpPdCtRKSxsKmM+PXUqcD9bKGItaSkvcl06Wy1mLyhiK3MpXX1sZXQgVD1kLEU9LTIqaSpkK3IqbSx3PV8sQz0tZiptKzIqcypfLE49TWF0aC5zcXJ0KGcpLEk9TWF0aC5zcXJ0KDMpLzIsTD1NYXRoLmFicyhNYXRoLmF0YW4yKHIqTiwtRSkvMyk7Yj0yKk1hdGguc3FydCgtVCk7bGV0IHY9TWF0aC5jb3MoTCk7Tz1iKnY7bGV0IEQ9YiooLXYvMi1JKk1hdGguc2luKEwpKSxVPU8rRD4yKmk/Ty1pOkQtaSxBPXIsUz1VL0E7TD1NYXRoLmFicyhNYXRoLmF0YW4yKGYqTiwtQykvMyksYj0yKk1hdGguc3FydCgtdyksdj1NYXRoLmNvcyhMKSxPPWIqdixEPWIqKC12LzItSSpNYXRoLnNpbihMKSk7bGV0IFA9LWYsRj1PK0Q8MipzP08rczpEK3Msaj1QL0YsSD1BKkYsaz0tVSpGLUEqUCxLPVUqUCxYPShzKmstaSpLKS8oLWkqaytzKkgpO3JldHVybiBTPD1YP1M8PWo/WDw9aj9bUyxYLGpdOltTLGosWF06W2osUyxYXTpTPD1qP1tYLFMsal06WDw9aj9bWCxqLFNdOltqLFgsU119dmFyIHZoLERwLEFiPVooKCk9PntIdCgpO3ZwKCk7dmg9e307dmguY29tcHV0ZURpc2NyaW1pbmFudD1mdW5jdGlvbih0LGUsbixvKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEIoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBCKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgQigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgbyE9Im51bWJlciIpdGhyb3cgbmV3IEIoImQgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7bGV0IHI9dCp0LGk9ZSplLHM9bipuLGY9bypvO3JldHVybiAxOCp0KmUqbipvK2kqcy0yNypyKmYtNCoodCpzKm4raSplKm8pfTt2aC5jb21wdXRlUmVhbFJvb3RzPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKHR5cGVvZiB0IT0ibnVtYmVyIil0aHJvdyBuZXcgQigiYSBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgZSE9Im51bWJlciIpdGhyb3cgbmV3IEIoImIgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIG4hPSJudW1iZXIiKXRocm93IG5ldyBCKCJjIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBvIT0ibnVtYmVyIil0aHJvdyBuZXcgQigiZCBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtsZXQgcixpO2lmKHQ9PT0wKXJldHVybiBBci5jb21wdXRlUmVhbFJvb3RzKGUsbixvKTtpZihlPT09MCl7aWYobj09PTApe2lmKG89PT0wKXJldHVyblswLDAsMF07aT0tby90O2xldCBzPWk8MD8tTWF0aC5wb3coLWksMS8zKTpNYXRoLnBvdyhpLDEvMyk7cmV0dXJuW3MscyxzXX1lbHNlIGlmKG89PT0wKXJldHVybiByPUFyLmNvbXB1dGVSZWFsUm9vdHModCwwLG4pLHIuTGVuZ3RoPT09MD9bMF06W3JbMF0sMCxyWzFdXTtyZXR1cm4gSWgodCwwLG4sbyl9ZWxzZXtpZihuPT09MClyZXR1cm4gbz09PTA/KGk9LWUvdCxpPDA/W2ksMCwwXTpbMCwwLGldKTpJaCh0LGUsMCxvKTtpZihvPT09MClyZXR1cm4gcj1Bci5jb21wdXRlUmVhbFJvb3RzKHQsZSxuKSxyLmxlbmd0aD09PTA/WzBdOnJbMV08PTA/W3JbMF0sclsxXSwwXTpyWzBdPj0wP1swLHJbMF0sclsxXV06W3JbMF0sMCxyWzFdXX1yZXR1cm4gSWgodCxlLG4sbyl9O0RwPXZofSk7ZnVuY3Rpb24gQnIodCxlLG4sbyl7bGV0IHI9dCp0LGk9ZS0zKnIvOCxzPW4tZSp0LzIrcip0LzgsZj1vLW4qdC80K2Uqci8xNi0zKnIqci8yNTYsdT1EcC5jb21wdXRlUmVhbFJvb3RzKDEsMippLGkqaS00KmYsLXMqcyk7aWYodS5sZW5ndGg+MCl7bGV0IGM9LXQvNCxsPXVbdS5sZW5ndGgtMV07aWYoTWF0aC5hYnMobCk8TS5FUFNJTE9OMTQpe2xldCBwPUFyLmNvbXB1dGVSZWFsUm9vdHMoMSxpLGYpO2lmKHAubGVuZ3RoPT09Mil7bGV0IGQ9cFswXSxtPXBbMV0sXztpZihkPj0wJiZtPj0wKXtsZXQgZz1NYXRoLnNxcnQoZCksYj1NYXRoLnNxcnQobSk7cmV0dXJuW2MtYixjLWcsYytnLGMrYl19ZWxzZXtpZihkPj0wJiZtPDApcmV0dXJuIF89TWF0aC5zcXJ0KGQpLFtjLV8sYytfXTtpZihkPDAmJm0+PTApcmV0dXJuIF89TWF0aC5zcXJ0KG0pLFtjLV8sYytfXX19cmV0dXJuW119ZWxzZSBpZihsPjApe2xldCBwPU1hdGguc3FydChsKSxkPShpK2wtcy9wKS8yLG09KGkrbCtzL3ApLzIsXz1Bci5jb21wdXRlUmVhbFJvb3RzKDEscCxkKSxnPUFyLmNvbXB1dGVSZWFsUm9vdHMoMSwtcCxtKTtyZXR1cm4gXy5sZW5ndGghPT0wPyhfWzBdKz1jLF9bMV0rPWMsZy5sZW5ndGghPT0wPyhnWzBdKz1jLGdbMV0rPWMsX1sxXTw9Z1swXT9bX1swXSxfWzFdLGdbMF0sZ1sxXV06Z1sxXTw9X1swXT9bZ1swXSxnWzFdLF9bMF0sX1sxXV06X1swXT49Z1swXSYmX1sxXTw9Z1sxXT9bZ1swXSxfWzBdLF9bMV0sZ1sxXV06Z1swXT49X1swXSYmZ1sxXTw9X1sxXT9bX1swXSxnWzBdLGdbMV0sX1sxXV06X1swXT5nWzBdJiZfWzBdPGdbMV0/W2dbMF0sX1swXSxnWzFdLF9bMV1dOltfWzBdLGdbMF0sX1sxXSxnWzFdXSk6Xyk6Zy5sZW5ndGghPT0wPyhnWzBdKz1jLGdbMV0rPWMsZyk6W119fXJldHVybltdfWZ1bmN0aW9uIFRmKHQsZSxuLG8pe2xldCByPW4qbixpPWUqZSxzPXQqdCxmPS0yKmUsdT1uKnQraS00Km8sYz1zKm8tbiplKnQrcixsPURwLmNvbXB1dGVSZWFsUm9vdHMoMSxmLHUsYyk7aWYobC5sZW5ndGg+MCl7bGV0IHA9bFswXSxkPWUtcCxtPWQqZCxfPXQvMixnPWQvMixiPW0tNCpvLE89bSs0Kk1hdGguYWJzKG8pLFQ9cy00KnAsRT1zKzQqTWF0aC5hYnMocCksdyxDO2lmKHA8MHx8YipFPFQqTyl7bGV0IEE9TWF0aC5zcXJ0KFQpO3c9QS8yLEM9QT09PTA/MDoodCpnLW4pL0F9ZWxzZXtsZXQgQT1NYXRoLnNxcnQoYik7dz1BPT09MD8wOih0KmctbikvQSxDPUEvMn1sZXQgTixJO189PT0wJiZ3PT09MD8oTj0wLEk9MCk6TS5zaWduKF8pPT09TS5zaWduKHcpPyhOPV8rdyxJPXAvTik6KEk9Xy13LE49cC9JKTtsZXQgTCx2O2c9PT0wJiZDPT09MD8oTD0wLHY9MCk6TS5zaWduKGcpPT09TS5zaWduKEMpPyhMPWcrQyx2PW8vTCk6KHY9Zy1DLEw9by92KTtsZXQgRD1Bci5jb21wdXRlUmVhbFJvb3RzKDEsTixMKSxVPUFyLmNvbXB1dGVSZWFsUm9vdHMoMSxJLHYpO2lmKEQubGVuZ3RoIT09MClyZXR1cm4gVS5sZW5ndGghPT0wP0RbMV08PVVbMF0/W0RbMF0sRFsxXSxVWzBdLFVbMV1dOlVbMV08PURbMF0/W1VbMF0sVVsxXSxEWzBdLERbMV1dOkRbMF0+PVVbMF0mJkRbMV08PVVbMV0/W1VbMF0sRFswXSxEWzFdLFVbMV1dOlVbMF0+PURbMF0mJlVbMV08PURbMV0/W0RbMF0sVVswXSxVWzFdLERbMV1dOkRbMF0+VVswXSYmRFswXTxVWzFdP1tVWzBdLERbMF0sVVsxXSxEWzFdXTpbRFswXSxVWzBdLERbMV0sVVsxXV06RDtpZihVLmxlbmd0aCE9PTApcmV0dXJuIFV9cmV0dXJuW119dmFyIERoLGJiLHdiPVooKCk9PntBYigpO0h0KCk7V3QoKTt2cCgpO0RoPXt9O0RoLmNvbXB1dGVEaXNjcmltaW5hbnQ9ZnVuY3Rpb24odCxlLG4sbyxyKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEIoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBCKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgQigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgbyE9Im51bWJlciIpdGhyb3cgbmV3IEIoImQgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBCKCJlIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2xldCBpPXQqdCxzPWkqdCxmPWUqZSx1PWYqZSxjPW4qbixsPWMqbixwPW8qbyxkPXAqbyxtPXIqcixfPW0qcjtyZXR1cm4gZipjKnAtNCp1KmQtNCp0KmwqcCsxOCp0KmUqbipkLTI3KmkqcCpwKzI1NipzKl8rciooMTgqdSpuKm8tNCpmKmwrMTYqdCpjKmMtODAqdCplKmMqby02KnQqZipwKzE0NCppKm4qcCkrbSooMTQ0KnQqZipuLTI3KmYqZi0xMjgqaSpjLTE5MippKmUqbyl9O0RoLmNvbXB1dGVSZWFsUm9vdHM9ZnVuY3Rpb24odCxlLG4sbyxyKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEIoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBCKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgQigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgbyE9Im51bWJlciIpdGhyb3cgbmV3IEIoImQgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBCKCJlIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKE1hdGguYWJzKHQpPE0uRVBTSUxPTjE1KXJldHVybiBEcC5jb21wdXRlUmVhbFJvb3RzKGUsbixvLHIpO2xldCBpPWUvdCxzPW4vdCxmPW8vdCx1PXIvdCxjPWk8MD8xOjA7c3dpdGNoKGMrPXM8MD9jKzE6YyxjKz1mPDA/YysxOmMsYys9dTwwP2MrMTpjLGMpe2Nhc2UgMDpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxOnJldHVybiBUZihpLHMsZix1KTtjYXNlIDI6cmV0dXJuIFRmKGkscyxmLHUpO2Nhc2UgMzpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSA0OnJldHVybiBCcihpLHMsZix1KTtjYXNlIDU6cmV0dXJuIFRmKGkscyxmLHUpO2Nhc2UgNjpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSA3OnJldHVybiBCcihpLHMsZix1KTtjYXNlIDg6cmV0dXJuIFRmKGkscyxmLHUpO2Nhc2UgOTpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxMDpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxMTpyZXR1cm4gVGYoaSxzLGYsdSk7Y2FzZSAxMjpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxMzpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxNDpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxNTpyZXR1cm4gQnIoaSxzLGYsdSk7ZGVmYXVsdDpyZXR1cm59fTtiYj1EaH0pO2Z1bmN0aW9uIExwKHQsZSl7ZT1hLmNsb25lKHgoZSxhLlpFUk8pKSxhLmVxdWFscyhlLGEuWkVSTyl8fGEubm9ybWFsaXplKGUsZSksdGhpcy5vcmlnaW49YS5jbG9uZSh4KHQsYS5aRVJPKSksdGhpcy5kaXJlY3Rpb249ZX12YXIgUXMsRnA9WigoKT0+e1V0KCk7WXQoKTtJdCgpO2F0KCk7THAuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLm9yaWdpbj1hLmNsb25lKHQub3JpZ2luKSxlLmRpcmVjdGlvbj1hLmNsb25lKHQuZGlyZWN0aW9uKSxlKTpuZXcgTHAodC5vcmlnaW4sdC5kaXJlY3Rpb24pfTtMcC5nZXRQb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicmF5Iix0KSx5LnR5cGVPZi5udW1iZXIoInQiLGUpLGgobil8fChuPW5ldyBhKSxuPWEubXVsdGlwbHlCeVNjYWxhcih0LmRpcmVjdGlvbixlLG4pLGEuYWRkKHQub3JpZ2luLG4sbil9O1FzPUxwfSk7ZnVuY3Rpb24gYTModCxlLG4sbyl7bGV0IHI9ZSplLTQqdCpuO2lmKHI8MClyZXR1cm47aWYocj4wKXtsZXQgcz0xLygyKnQpLGY9TWF0aC5zcXJ0KHIpLHU9KC1lK2YpKnMsYz0oLWUtZikqcztyZXR1cm4gdTxjPyhvLnJvb3QwPXUsby5yb290MT1jKTooby5yb290MD1jLG8ucm9vdDE9dSksb31sZXQgaT0tZS8oMip0KTtpZihpIT09MClyZXR1cm4gby5yb290MD1vLnJvb3QxPWksb31mdW5jdGlvbiBNYih0LGUsbil7aChuKXx8KG49bmV3IFFyKTtsZXQgbz10Lm9yaWdpbixyPXQuZGlyZWN0aW9uLGk9ZS5jZW50ZXIscz1lLnJhZGl1cyplLnJhZGl1cyxmPWEuc3VidHJhY3QobyxpLFBiKSx1PWEuZG90KHIsciksYz0yKmEuZG90KHIsZiksbD1hLm1hZ25pdHVkZVNxdWFyZWQoZiktcyxwPWEzKHUsYyxsLGYzKTtpZihoKHApKXJldHVybiBuLnN0YXJ0PXAucm9vdDAsbi5zdG9wPXAucm9vdDEsbn1mdW5jdGlvbiBKcyh0LGUsbil7bGV0IG89dCtlO3JldHVybiBNLnNpZ24odCkhPT1NLnNpZ24oZSkmJk1hdGguYWJzKG8vTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKTxuPzA6b31mdW5jdGlvbiBkMyh0LGUsbixvLHIpe2xldCBpPW8qbyxzPXIqcixmPSh0W3R0LkNPTFVNTjFST1cxXS10W3R0LkNPTFVNTjJST1cyXSkqcyx1PXIqKG8qSnModFt0dC5DT0xVTU4xUk9XMF0sdFt0dC5DT0xVTU4wUk9XMV0sTS5FUFNJTE9OMTUpK2UueSksYz10W3R0LkNPTFVNTjBST1cwXSppK3RbdHQuQ09MVU1OMlJPVzJdKnMrbyplLngrbixsPXMqSnModFt0dC5DT0xVTU4yUk9XMV0sdFt0dC5DT0xVTU4xUk9XMl0sTS5FUFNJTE9OMTUpLHA9cioobypKcyh0W3R0LkNPTFVNTjJST1cwXSx0W3R0LkNPTFVNTjBST1cyXSkrZS56KSxkLG09W107aWYocD09PTAmJmw9PT0wKXtpZihkPUFyLmNvbXB1dGVSZWFsUm9vdHMoZix1LGMpLGQubGVuZ3RoPT09MClyZXR1cm4gbTtsZXQgTD1kWzBdLHY9TWF0aC5zcXJ0KE1hdGgubWF4KDEtTCpMLDApKTtpZihtLnB1c2gobmV3IGEobyxyKkwsciotdikpLG0ucHVzaChuZXcgYShvLHIqTCxyKnYpKSxkLmxlbmd0aD09PTIpe2xldCBEPWRbMV0sVT1NYXRoLnNxcnQoTWF0aC5tYXgoMS1EKkQsMCkpO20ucHVzaChuZXcgYShvLHIqRCxyKi1VKSksbS5wdXNoKG5ldyBhKG8scipELHIqVSkpfXJldHVybiBtfWxldCBfPXAqcCxnPWwqbCxiPWYqZixPPXAqbCxUPWIrZyxFPTIqKHUqZitPKSx3PTIqYypmK3UqdS1nK18sQz0yKihjKnUtTyksTj1jKmMtXztpZihUPT09MCYmRT09PTAmJnc9PT0wJiZDPT09MClyZXR1cm4gbTtkPWJiLmNvbXB1dGVSZWFsUm9vdHMoVCxFLHcsQyxOKTtsZXQgST1kLmxlbmd0aDtpZihJPT09MClyZXR1cm4gbTtmb3IobGV0IEw9MDtMPEk7KytMKXtsZXQgdj1kW0xdLEQ9dip2LFU9TWF0aC5tYXgoMS1ELDApLEE9TWF0aC5zcXJ0KFUpLFM7TS5zaWduKGYpPT09TS5zaWduKGMpP1M9SnMoZipEK2MsdSp2LE0uRVBTSUxPTjEyKTpNLnNpZ24oYyk9PT1NLnNpZ24odSp2KT9TPUpzKGYqRCx1KnYrYyxNLkVQU0lMT04xMik6Uz1KcyhmKkQrdSp2LGMsTS5FUFNJTE9OMTIpO2xldCBQPUpzKGwqdixwLE0uRVBTSUxPTjE1KSxGPVMqUDtGPDA/bS5wdXNoKG5ldyBhKG8scip2LHIqQSkpOkY+MD9tLnB1c2gobmV3IGEobyxyKnYsciotQSkpOkEhPT0wPyhtLnB1c2gobmV3IGEobyxyKnYsciotQSkpLG0ucHVzaChuZXcgYShvLHIqdixyKkEpKSwrK0wpOm0ucHVzaChuZXcgYShvLHIqdixyKkEpKX1yZXR1cm4gbX12YXIgU24saTMsczMsUGIsVGIsT2IsYzMsZjMsdTMsbDMscDMsTGgsRWIsUmIsQnAsbTMsaDMsXzMseTMsZzMsQTMsU2IsQ2IseGIsYjMsdzMsVDMsX28sdGM9WigoKT0+e1V0KCk7dmUoKTtJdCgpO2F0KCk7SHQoKTtqbCgpO1d0KCk7Rm4oKTt2cCgpO3diKCk7RnAoKTtTbj17fTtTbi5yYXlQbGFuZT1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInJheSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigicGxhbmUgaXMgcmVxdWlyZWQuIik7aChuKXx8KG49bmV3IGEpO2xldCBvPXQub3JpZ2luLHI9dC5kaXJlY3Rpb24saT1lLm5vcm1hbCxzPWEuZG90KGkscik7aWYoTWF0aC5hYnMocyk8TS5FUFNJTE9OMTUpcmV0dXJuO2xldCBmPSgtZS5kaXN0YW5jZS1hLmRvdChpLG8pKS9zO2lmKCEoZjwwKSlyZXR1cm4gbj1hLm11bHRpcGx5QnlTY2FsYXIocixmLG4pLGEuYWRkKG8sbixuKX07aTM9bmV3IGEsczM9bmV3IGEsUGI9bmV3IGEsVGI9bmV3IGEsT2I9bmV3IGE7U24ucmF5VHJpYW5nbGVQYXJhbWV0cmljPWZ1bmN0aW9uKHQsZSxuLG8scil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInJheSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigicDAgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoInAxIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBCKCJwMiBpcyByZXF1aXJlZC4iKTtyPXgociwhMSk7bGV0IGk9dC5vcmlnaW4scz10LmRpcmVjdGlvbixmPWEuc3VidHJhY3QobixlLGkzKSx1PWEuc3VidHJhY3QobyxlLHMzKSxjPWEuY3Jvc3Mocyx1LFBiKSxsPWEuZG90KGYsYykscCxkLG0sXyxnO2lmKHIpe2lmKGw8TS5FUFNJTE9ONnx8KHA9YS5zdWJ0cmFjdChpLGUsVGIpLG09YS5kb3QocCxjKSxtPDB8fG0+bCl8fChkPWEuY3Jvc3MocCxmLE9iKSxfPWEuZG90KHMsZCksXzwwfHxtK18+bCkpcmV0dXJuO2c9YS5kb3QodSxkKS9sfWVsc2V7aWYoTWF0aC5hYnMobCk8TS5FUFNJTE9ONilyZXR1cm47bGV0IGI9MS9sO2lmKHA9YS5zdWJ0cmFjdChpLGUsVGIpLG09YS5kb3QocCxjKSpiLG08MHx8bT4xfHwoZD1hLmNyb3NzKHAsZixPYiksXz1hLmRvdChzLGQpKmIsXzwwfHxtK18+MSkpcmV0dXJuO2c9YS5kb3QodSxkKSpifXJldHVybiBnfTtTbi5yYXlUcmlhbmdsZT1mdW5jdGlvbih0LGUsbixvLHIsaSl7bGV0IHM9U24ucmF5VHJpYW5nbGVQYXJhbWV0cmljKHQsZSxuLG8scik7aWYoISghaChzKXx8czwwKSlyZXR1cm4gaChpKXx8KGk9bmV3IGEpLGEubXVsdGlwbHlCeVNjYWxhcih0LmRpcmVjdGlvbixzLGkpLGEuYWRkKHQub3JpZ2luLGksaSl9O2MzPW5ldyBRcztTbi5saW5lU2VnbWVudFRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ2MCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigidjEgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoInAwIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBCKCJwMSBpcyByZXF1aXJlZC4iKTtpZighaChyKSl0aHJvdyBuZXcgQigicDIgaXMgcmVxdWlyZWQuIik7bGV0IGY9YzM7YS5jbG9uZSh0LGYub3JpZ2luKSxhLnN1YnRyYWN0KGUsdCxmLmRpcmVjdGlvbiksYS5ub3JtYWxpemUoZi5kaXJlY3Rpb24sZi5kaXJlY3Rpb24pO2xldCB1PVNuLnJheVRyaWFuZ2xlUGFyYW1ldHJpYyhmLG4sbyxyLGkpO2lmKCEoIWgodSl8fHU8MHx8dT5hLmRpc3RhbmNlKHQsZSkpKXJldHVybiBoKHMpfHwocz1uZXcgYSksYS5tdWx0aXBseUJ5U2NhbGFyKGYuZGlyZWN0aW9uLHUscyksYS5hZGQoZi5vcmlnaW4scyxzKX07ZjM9e3Jvb3QwOjAscm9vdDE6MH07U24ucmF5U3BoZXJlPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigicmF5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJzcGhlcmUgaXMgcmVxdWlyZWQuIik7aWYobj1NYih0LGUsbiksISghaChuKXx8bi5zdG9wPDApKXJldHVybiBuLnN0YXJ0PU1hdGgubWF4KG4uc3RhcnQsMCksbn07dTM9bmV3IFFzO1NuLmxpbmVTZWdtZW50U3BoZXJlPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJwMCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigicDEgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoInNwaGVyZSBpcyByZXF1aXJlZC4iKTtsZXQgcj11MzthLmNsb25lKHQsci5vcmlnaW4pO2xldCBpPWEuc3VidHJhY3QoZSx0LHIuZGlyZWN0aW9uKSxzPWEubWFnbml0dWRlKGkpO2lmKGEubm9ybWFsaXplKGksaSksbz1NYihyLG4sbyksISghaChvKXx8by5zdG9wPDB8fG8uc3RhcnQ+cykpcmV0dXJuIG8uc3RhcnQ9TWF0aC5tYXgoby5zdGFydCwwKSxvLnN0b3A9TWF0aC5taW4oby5zdG9wLHMpLG99O2wzPW5ldyBhLHAzPW5ldyBhO1NuLnJheUVsbGlwc29pZD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJyYXkgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImVsbGlwc29pZCBpcyByZXF1aXJlZC4iKTtsZXQgbj1lLm9uZU92ZXJSYWRpaSxvPWEubXVsdGlwbHlDb21wb25lbnRzKG4sdC5vcmlnaW4sbDMpLHI9YS5tdWx0aXBseUNvbXBvbmVudHMobix0LmRpcmVjdGlvbixwMyksaT1hLm1hZ25pdHVkZVNxdWFyZWQobykscz1hLmRvdChvLHIpLGYsdSxjLGwscDtpZihpPjEpe2lmKHM+PTApcmV0dXJuO2xldCBkPXMqcztpZihmPWktMSx1PWEubWFnbml0dWRlU3F1YXJlZChyKSxjPXUqZixkPGMpcmV0dXJuO2lmKGQ+Yyl7bD1zKnMtYyxwPS1zK01hdGguc3FydChsKTtsZXQgXz1wL3UsZz1mL3A7cmV0dXJuIF88Zz9uZXcgUXIoXyxnKTp7c3RhcnQ6ZyxzdG9wOl99fWxldCBtPU1hdGguc3FydChmL3UpO3JldHVybiBuZXcgUXIobSxtKX1lbHNlIGlmKGk8MSlyZXR1cm4gZj1pLTEsdT1hLm1hZ25pdHVkZVNxdWFyZWQociksYz11KmYsbD1zKnMtYyxwPS1zK01hdGguc3FydChsKSxuZXcgUXIoMCxwL3UpO2lmKHM8MClyZXR1cm4gdT1hLm1hZ25pdHVkZVNxdWFyZWQociksbmV3IFFyKDAsLXMvdSl9O0xoPW5ldyBhLEViPW5ldyBhLFJiPW5ldyBhLEJwPW5ldyBhLG0zPW5ldyBhLGgzPW5ldyB0dCxfMz1uZXcgdHQseTM9bmV3IHR0LGczPW5ldyB0dCxBMz1uZXcgdHQsU2I9bmV3IHR0LENiPW5ldyB0dCx4Yj1uZXcgYSxiMz1uZXcgYSx3Mz1uZXcgY3Q7U24uZ3JhemluZ0FsdGl0dWRlTG9jYXRpb249ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigicmF5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJlbGxpcHNvaWQgaXMgcmVxdWlyZWQuIik7bGV0IG49dC5vcmlnaW4sbz10LmRpcmVjdGlvbjtpZighYS5lcXVhbHMobixhLlpFUk8pKXtsZXQgTj1lLmdlb2RldGljU3VyZmFjZU5vcm1hbChuLExoKTtpZihhLmRvdChvLE4pPj0wKXJldHVybiBufWxldCByPWgodGhpcy5yYXlFbGxpcHNvaWQodCxlKSksaT1lLnRyYW5zZm9ybVBvc2l0aW9uVG9TY2FsZWRTcGFjZShvLExoKSxzPWEubm9ybWFsaXplKGksaSksZj1hLm1vc3RPcnRob2dvbmFsQXhpcyhpLEJwKSx1PWEubm9ybWFsaXplKGEuY3Jvc3MoZixzLEViKSxFYiksYz1hLm5vcm1hbGl6ZShhLmNyb3NzKHMsdSxSYiksUmIpLGw9aDM7bFswXT1zLngsbFsxXT1zLnksbFsyXT1zLnosbFszXT11LngsbFs0XT11LnksbFs1XT11LnosbFs2XT1jLngsbFs3XT1jLnksbFs4XT1jLno7bGV0IHA9dHQudHJhbnNwb3NlKGwsXzMpLGQ9dHQuZnJvbVNjYWxlKGUucmFkaWkseTMpLG09dHQuZnJvbVNjYWxlKGUub25lT3ZlclJhZGlpLGczKSxfPUEzO19bMF09MCxfWzFdPS1vLnosX1syXT1vLnksX1szXT1vLnosX1s0XT0wLF9bNV09LW8ueCxfWzZdPS1vLnksX1s3XT1vLngsX1s4XT0wO2xldCBnPXR0Lm11bHRpcGx5KHR0Lm11bHRpcGx5KHAsbSxTYiksXyxTYiksYj10dC5tdWx0aXBseSh0dC5tdWx0aXBseShnLGQsQ2IpLGwsQ2IpLE89dHQubXVsdGlwbHlCeVZlY3RvcihnLG4sbTMpLFQ9ZDMoYixhLm5lZ2F0ZShPLExoKSwwLDAsMSksRSx3LEM9VC5sZW5ndGg7aWYoQz4wKXtsZXQgTj1hLmNsb25lKGEuWkVSTyxiMyksST1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Zm9yKGxldCB2PTA7djxDOysrdil7RT10dC5tdWx0aXBseUJ5VmVjdG9yKGQsdHQubXVsdGlwbHlCeVZlY3RvcihsLFRbdl0seGIpLHhiKTtsZXQgRD1hLm5vcm1hbGl6ZShhLnN1YnRyYWN0KEUsbixCcCksQnApLFU9YS5kb3QoRCxvKTtVPkkmJihJPVUsTj1hLmNsb25lKEUsTikpfWxldCBMPWUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoTix3Myk7cmV0dXJuIEk9TS5jbGFtcChJLDAsMSksdz1hLm1hZ25pdHVkZShhLnN1YnRyYWN0KE4sbixCcCkpKk1hdGguc3FydCgxLUkqSSksdz1yPy13OncsTC5oZWlnaHQ9dyxlLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEwsbmV3IGEpfX07VDM9bmV3IGE7U24ubGluZVNlZ21lbnRQbGFuZT1mdW5jdGlvbih0LGUsbixvKXtpZighaCh0KSl0aHJvdyBuZXcgQigiZW5kUG9pbnQwIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJlbmRQb2ludDEgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoInBsYW5lIGlzIHJlcXVpcmVkLiIpO2gobyl8fChvPW5ldyBhKTtsZXQgcj1hLnN1YnRyYWN0KGUsdCxUMyksaT1uLm5vcm1hbCxzPWEuZG90KGkscik7aWYoTWF0aC5hYnMocyk8TS5FUFNJTE9ONilyZXR1cm47bGV0IGY9YS5kb3QoaSx0KSx1PS0obi5kaXN0YW5jZStmKS9zO2lmKCEodTwwfHx1PjEpKXJldHVybiBhLm11bHRpcGx5QnlTY2FsYXIocix1LG8pLGEuYWRkKHQsbyxvKSxvfTtTbi50cmlhbmdsZVBsYW5lSW50ZXJzZWN0aW9uPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpfHwhaChlKXx8IWgobil8fCFoKG8pKXRocm93IG5ldyBCKCJwMCwgcDEsIHAyLCBhbmQgcGxhbmUgYXJlIHJlcXVpcmVkLiIpO2xldCByPW8ubm9ybWFsLGk9by5kaXN0YW5jZSxzPWEuZG90KHIsdCkraTwwLGY9YS5kb3QocixlKStpPDAsdT1hLmRvdChyLG4pK2k8MCxjPTA7Yys9cz8xOjAsYys9Zj8xOjAsYys9dT8xOjA7bGV0IGwscDtpZigoYz09PTF8fGM9PT0yKSYmKGw9bmV3IGEscD1uZXcgYSksYz09PTEpe2lmKHMpcmV0dXJuIFNuLmxpbmVTZWdtZW50UGxhbmUodCxlLG8sbCksU24ubGluZVNlZ21lbnRQbGFuZSh0LG4sbyxwKSx7cG9zaXRpb25zOlt0LGUsbixsLHBdLGluZGljZXM6WzAsMyw0LDEsMiw0LDEsNCwzXX07aWYoZilyZXR1cm4gU24ubGluZVNlZ21lbnRQbGFuZShlLG4sbyxsKSxTbi5saW5lU2VnbWVudFBsYW5lKGUsdCxvLHApLHtwb3NpdGlvbnM6W3QsZSxuLGwscF0saW5kaWNlczpbMSwzLDQsMiwwLDQsMiw0LDNdfTtpZih1KXJldHVybiBTbi5saW5lU2VnbWVudFBsYW5lKG4sdCxvLGwpLFNuLmxpbmVTZWdtZW50UGxhbmUobixlLG8scCkse3Bvc2l0aW9uczpbdCxlLG4sbCxwXSxpbmRpY2VzOlsyLDMsNCwwLDEsNCwwLDQsM119fWVsc2UgaWYoYz09PTIpaWYocylpZihmKXtpZighdSlyZXR1cm4gU24ubGluZVNlZ21lbnRQbGFuZSh0LG4sbyxsKSxTbi5saW5lU2VnbWVudFBsYW5lKGUsbixvLHApLHtwb3NpdGlvbnM6W3QsZSxuLGwscF0saW5kaWNlczpbMCwxLDQsMCw0LDMsMiwzLDRdfX1lbHNlIHJldHVybiBTbi5saW5lU2VnbWVudFBsYW5lKG4sZSxvLGwpLFNuLmxpbmVTZWdtZW50UGxhbmUodCxlLG8scCkse3Bvc2l0aW9uczpbdCxlLG4sbCxwXSxpbmRpY2VzOlsyLDAsNCwyLDQsMywxLDMsNF19O2Vsc2UgcmV0dXJuIFNuLmxpbmVTZWdtZW50UGxhbmUoZSx0LG8sbCksU24ubGluZVNlZ21lbnRQbGFuZShuLHQsbyxwKSx7cG9zaXRpb25zOlt0LGUsbixsLHBdLGluZGljZXM6WzEsMiw0LDEsNCwzLDAsMyw0XX19O19vPVNufSk7ZnVuY3Rpb24gdG8odCxlKXtpZih5LnR5cGVPZi5vYmplY3QoIm5vcm1hbCIsdCksIU0uZXF1YWxzRXBzaWxvbihhLm1hZ25pdHVkZSh0KSwxLE0uRVBTSUxPTjYpKXRocm93IG5ldyBCKCJub3JtYWwgbXVzdCBiZSBub3JtYWxpemVkLiIpO3kudHlwZU9mLm51bWJlcigiZGlzdGFuY2UiLGUpLHRoaXMubm9ybWFsPWEuY2xvbmUodCksdGhpcy5kaXN0YW5jZT1lfXZhciBPMyxFMyxSMyxTMyxDMyxvbixjcz1aKCgpPT57VXQoKTtocigpO1l0KCk7YXQoKTtIdCgpO1d0KCk7a24oKTt0by5mcm9tUG9pbnROb3JtYWw9ZnVuY3Rpb24odCxlLG4pe2lmKHkudHlwZU9mLm9iamVjdCgicG9pbnQiLHQpLHkudHlwZU9mLm9iamVjdCgibm9ybWFsIixlKSwhTS5lcXVhbHNFcHNpbG9uKGEubWFnbml0dWRlKGUpLDEsTS5FUFNJTE9ONikpdGhyb3cgbmV3IEIoIm5vcm1hbCBtdXN0IGJlIG5vcm1hbGl6ZWQuIik7bGV0IG89LWEuZG90KGUsdCk7cmV0dXJuIGgobik/KGEuY2xvbmUoZSxuLm5vcm1hbCksbi5kaXN0YW5jZT1vLG4pOm5ldyB0byhlLG8pfTtPMz1uZXcgYTt0by5mcm9tQ2FydGVzaWFuND1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY29lZmZpY2llbnRzIix0KTtsZXQgbj1hLmZyb21DYXJ0ZXNpYW40KHQsTzMpLG89dC53O2lmKCFNLmVxdWFsc0Vwc2lsb24oYS5tYWduaXR1ZGUobiksMSxNLkVQU0lMT042KSl0aHJvdyBuZXcgQigibm9ybWFsIG11c3QgYmUgbm9ybWFsaXplZC4iKTtyZXR1cm4gaChlKT8oYS5jbG9uZShuLGUubm9ybWFsKSxlLmRpc3RhbmNlPW8sZSk6bmV3IHRvKG4sbyl9O3RvLmdldFBvaW50RGlzdGFuY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJwbGFuZSIsdCkseS50eXBlT2Yub2JqZWN0KCJwb2ludCIsZSksYS5kb3QodC5ub3JtYWwsZSkrdC5kaXN0YW5jZX07RTM9bmV3IGE7dG8ucHJvamVjdFBvaW50T250b1BsYW5lPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInBsYW5lIix0KSx5LnR5cGVPZi5vYmplY3QoInBvaW50IixlKSxoKG4pfHwobj1uZXcgYSk7bGV0IG89dG8uZ2V0UG9pbnREaXN0YW5jZSh0LGUpLHI9YS5tdWx0aXBseUJ5U2NhbGFyKHQubm9ybWFsLG8sRTMpO3JldHVybiBhLnN1YnRyYWN0KGUscixuKX07UjM9bmV3IHN0LFMzPW5ldyBfZSxDMz1uZXcgYTt0by50cmFuc2Zvcm09ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgicGxhbmUiLHQpLHkudHlwZU9mLm9iamVjdCgidHJhbnNmb3JtIixlKTtsZXQgbz10Lm5vcm1hbCxyPXQuZGlzdGFuY2UsaT1zdC5pbnZlcnNlVHJhbnNwb3NlKGUsUjMpLHM9X2UuZnJvbUVsZW1lbnRzKG8ueCxvLnksby56LHIsUzMpO3M9c3QubXVsdGlwbHlCeVZlY3RvcihpLHMscyk7bGV0IGY9YS5mcm9tQ2FydGVzaWFuNChzLEMzKTtyZXR1cm4gcz1fZS5kaXZpZGVCeVNjYWxhcihzLGEubWFnbml0dWRlKGYpLHMpLHRvLmZyb21DYXJ0ZXNpYW40KHMsbil9O3RvLmNsb25lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicGxhbmUiLHQpLGgoZSk/KGEuY2xvbmUodC5ub3JtYWwsZS5ub3JtYWwpLGUuZGlzdGFuY2U9dC5kaXN0YW5jZSxlKTpuZXcgdG8odC5ub3JtYWwsdC5kaXN0YW5jZSl9O3RvLmVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHQuZGlzdGFuY2U9PT1lLmRpc3RhbmNlJiZhLmVxdWFscyh0Lm5vcm1hbCxlLm5vcm1hbCl9O3RvLk9SSUdJTl9YWV9QTEFORT1PYmplY3QuZnJlZXplKG5ldyB0byhhLlVOSVRfWiwwKSk7dG8uT1JJR0lOX1laX1BMQU5FPU9iamVjdC5mcmVlemUobmV3IHRvKGEuVU5JVF9YLDApKTt0by5PUklHSU5fWlhfUExBTkU9T2JqZWN0LmZyZWV6ZShuZXcgdG8oYS5VTklUX1ksMCkpO29uPXRvfSk7dmFyIEZoLE5iLEliPVooKCk9PntJdCgpO2F0KCk7SHQoKTtGaD17fTtGaC5jYWxjdWxhdGVBQ01SPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LmluZGljZXMsbj10Lm1heGltdW1JbmRleCxvPXgodC5jYWNoZVNpemUsMjQpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJpbmRpY2VzIGlzIHJlcXVpcmVkLiIpO2xldCByPWUubGVuZ3RoO2lmKHI8M3x8ciUzIT09MCl0aHJvdyBuZXcgQigiaW5kaWNlcyBsZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRocmVlLiIpO2lmKG48PTApdGhyb3cgbmV3IEIoIm1heGltdW1JbmRleCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO2lmKG88Myl0aHJvdyBuZXcgQigiY2FjaGVTaXplIG11c3QgYmUgZ3JlYXRlciB0aGFuIHR3by4iKTtpZighaChuKSl7bj0wO2xldCBmPTAsdT1lW2ZdO2Zvcig7ZjxyOyl1Pm4mJihuPXUpLCsrZix1PWVbZl19bGV0IGk9W107Zm9yKGxldCBmPTA7ZjxuKzE7ZisrKWlbZl09MDtsZXQgcz1vKzE7Zm9yKGxldCBmPTA7ZjxyOysrZilzLWlbZVtmXV0+byYmKGlbZVtmXV09cywrK3MpO3JldHVybihzLW8rMSkvKHIvMyl9O0ZoLnRpcHNpZnk9ZnVuY3Rpb24odCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQuaW5kaWNlcyxuPXQubWF4aW11bUluZGV4LG89eCh0LmNhY2hlU2l6ZSwyNCkscjtmdW5jdGlvbiBpKFUsQSxTLFApe2Zvcig7QS5sZW5ndGg+PTE7KXtsZXQgRj1BW0EubGVuZ3RoLTFdO2lmKEEuc3BsaWNlKEEubGVuZ3RoLTEsMSksVVtGXS5udW1MaXZlVHJpYW5nbGVzPjApcmV0dXJuIEZ9Zm9yKDtyPFA7KXtpZihVW3JdLm51bUxpdmVUcmlhbmdsZXM+MClyZXR1cm4rK3Isci0xOysrcn1yZXR1cm4tMX1mdW5jdGlvbiBzKFUsQSxTLFAsRixqLEgpe2xldCBrPS0xLEssWD0tMSxSPTA7Zm9yKDtSPFMubGVuZ3RoOyl7bGV0IFE9U1tSXTtQW1FdLm51bUxpdmVUcmlhbmdsZXMmJihLPTAsRi1QW1FdLnRpbWVTdGFtcCsyKlBbUV0ubnVtTGl2ZVRyaWFuZ2xlczw9QSYmKEs9Ri1QW1FdLnRpbWVTdGFtcCksKEs+WHx8WD09PS0xKSYmKFg9SyxrPVEpKSwrK1J9cmV0dXJuIGs9PT0tMT9pKFAsaixVLEgpOmt9aWYoIWgoZSkpdGhyb3cgbmV3IEIoImluZGljZXMgaXMgcmVxdWlyZWQuIik7bGV0IGY9ZS5sZW5ndGg7aWYoZjwzfHxmJTMhPT0wKXRocm93IG5ldyBCKCJpbmRpY2VzIGxlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhyZWUuIik7aWYobjw9MCl0aHJvdyBuZXcgQigibWF4aW11bUluZGV4IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7aWYobzwzKXRocm93IG5ldyBCKCJjYWNoZVNpemUgbXVzdCBiZSBncmVhdGVyIHRoYW4gdHdvLiIpO2xldCB1PTAsYz0wLGw9ZVtjXSxwPWY7aWYoaChuKSl1PW4rMTtlbHNle2Zvcig7YzxwOylsPnUmJih1PWwpLCsrYyxsPWVbY107aWYodT09PS0xKXJldHVybiAwOysrdX1sZXQgZD1bXSxtO2ZvcihtPTA7bTx1O20rKylkW21dPXtudW1MaXZlVHJpYW5nbGVzOjAsdGltZVN0YW1wOjAsdmVydGV4VHJpYW5nbGVzOltdfTtjPTA7bGV0IF89MDtmb3IoO2M8cDspZFtlW2NdXS52ZXJ0ZXhUcmlhbmdsZXMucHVzaChfKSwrK2RbZVtjXV0ubnVtTGl2ZVRyaWFuZ2xlcyxkW2VbYysxXV0udmVydGV4VHJpYW5nbGVzLnB1c2goXyksKytkW2VbYysxXV0ubnVtTGl2ZVRyaWFuZ2xlcyxkW2VbYysyXV0udmVydGV4VHJpYW5nbGVzLnB1c2goXyksKytkW2VbYysyXV0ubnVtTGl2ZVRyaWFuZ2xlcywrK18sYys9MztsZXQgZz0wLGI9bysxO3I9MTtsZXQgTz1bXSxUPVtdLEUsdyxDPTAsTj1bXSxJPWYvMyxMPVtdO2ZvcihtPTA7bTxJO20rKylMW21dPSExO2xldCB2LEQ7Zm9yKDtnIT09LTE7KXtPPVtdLHc9ZFtnXSxEPXcudmVydGV4VHJpYW5nbGVzLmxlbmd0aDtmb3IobGV0IFU9MDtVPEQ7KytVKWlmKF89dy52ZXJ0ZXhUcmlhbmdsZXNbVV0sIUxbX10pe0xbX109ITAsYz1fK18rXztmb3IobGV0IEE9MDtBPDM7KytBKXY9ZVtjXSxPLnB1c2godiksVC5wdXNoKHYpLE5bQ109diwrK0MsRT1kW3ZdLC0tRS5udW1MaXZlVHJpYW5nbGVzLGItRS50aW1lU3RhbXA+byYmKEUudGltZVN0YW1wPWIsKytiKSwrK2N9Zz1zKGUsbyxPLGQsYixULHUpfXJldHVybiBOfTtOYj1GaH0pO2Z1bmN0aW9uIEhwKHQsZSxuLG8scil7dFtlKytdPW4sdFtlKytdPW8sdFtlKytdPW8sdFtlKytdPXIsdFtlKytdPXIsdFtlXT1ufWZ1bmN0aW9uIHgzKHQpe2xldCBlPXQubGVuZ3RoLG49ZS8zKjYsbz1EdC5jcmVhdGVUeXBlZEFycmF5KGUsbikscj0wO2ZvcihsZXQgaT0wO2k8ZTtpKz0zLHIrPTYpSHAobyxyLHRbaV0sdFtpKzFdLHRbaSsyXSk7cmV0dXJuIG99ZnVuY3Rpb24gUDModCl7bGV0IGU9dC5sZW5ndGg7aWYoZT49Myl7bGV0IG49KGUtMikqNixvPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSxuKTtIcChvLDAsdFswXSx0WzFdLHRbMl0pO2xldCByPTY7Zm9yKGxldCBpPTM7aTxlOysraSxyKz02KUhwKG8scix0W2ktMV0sdFtpXSx0W2ktMl0pO3JldHVybiBvfXJldHVybiBuZXcgVWludDE2QXJyYXl9ZnVuY3Rpb24gTTModCl7aWYodC5sZW5ndGg+MCl7bGV0IGU9dC5sZW5ndGgtMSxuPShlLTEpKjYsbz1EdC5jcmVhdGVUeXBlZEFycmF5KGUsbikscj10WzBdLGk9MDtmb3IobGV0IHM9MTtzPGU7KytzLGkrPTYpSHAobyxpLHIsdFtzXSx0W3MrMV0pO3JldHVybiBvfXJldHVybiBuZXcgVWludDE2QXJyYXl9ZnVuY3Rpb24gdmIodCl7bGV0IGU9e307Zm9yKGxldCBuIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShuKSYmaCh0W25dKSYmaCh0W25dLnZhbHVlcykpe2xldCBvPXRbbl07ZVtuXT1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm8uY29tcG9uZW50RGF0YXR5cGUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpvLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsbm9ybWFsaXplOm8ubm9ybWFsaXplLHZhbHVlczpbXX0pfXJldHVybiBlfWZ1bmN0aW9uIE4zKHQsZSxuKXtmb3IobGV0IG8gaW4gZSlpZihlLmhhc093blByb3BlcnR5KG8pJiZoKGVbb10pJiZoKGVbb10udmFsdWVzKSl7bGV0IHI9ZVtvXTtmb3IobGV0IGk9MDtpPHIuY29tcG9uZW50c1BlckF0dHJpYnV0ZTsrK2kpdFtvXS52YWx1ZXMucHVzaChyLnZhbHVlc1tuKnIuY29tcG9uZW50c1BlckF0dHJpYnV0ZStpXSl9fWZ1bmN0aW9uIFVoKHQsZSl7aWYoaChlKSl7bGV0IG49ZS52YWx1ZXMsbz1uLmxlbmd0aDtmb3IobGV0IHI9MDtyPG87cis9MylhLnVucGFjayhuLHIsVnIpLHN0Lm11bHRpcGx5QnlQb2ludCh0LFZyLFZyKSxhLnBhY2soVnIsbixyKX19ZnVuY3Rpb24gVmgodCxlKXtpZihoKGUpKXtsZXQgbj1lLnZhbHVlcyxvPW4ubGVuZ3RoO2ZvcihsZXQgcj0wO3I8bztyKz0zKWEudW5wYWNrKG4scixWciksdHQubXVsdGlwbHlCeVZlY3Rvcih0LFZyLFZyKSxWcj1hLm5vcm1hbGl6ZShWcixWciksYS5wYWNrKFZyLG4scil9fWZ1bmN0aW9uIHYzKHQsZSl7bGV0IG49dC5sZW5ndGgsbz17fSxyPXRbMF1bZV0uYXR0cmlidXRlcyxpO2ZvcihpIGluIHIpaWYoci5oYXNPd25Qcm9wZXJ0eShpKSYmaChyW2ldKSYmaChyW2ldLnZhbHVlcykpe2xldCBzPXJbaV0sZj1zLnZhbHVlcy5sZW5ndGgsdT0hMDtmb3IobGV0IGM9MTtjPG47KytjKXtsZXQgbD10W2NdW2VdLmF0dHJpYnV0ZXNbaV07aWYoIWgobCl8fHMuY29tcG9uZW50RGF0YXR5cGUhPT1sLmNvbXBvbmVudERhdGF0eXBlfHxzLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUhPT1sLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGV8fHMubm9ybWFsaXplIT09bC5ub3JtYWxpemUpe3U9ITE7YnJlYWt9Zis9bC52YWx1ZXMubGVuZ3RofXUmJihvW2ldPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6cy5jb21wb25lbnREYXRhdHlwZSxjb21wb25lbnRzUGVyQXR0cmlidXRlOnMuY29tcG9uZW50c1BlckF0dHJpYnV0ZSxub3JtYWxpemU6cy5ub3JtYWxpemUsdmFsdWVzOm90LmNyZWF0ZVR5cGVkQXJyYXkocy5jb21wb25lbnREYXRhdHlwZSxmKX0pKX1yZXR1cm4gb31mdW5jdGlvbiBraCh0LGUpe2xldCBuPXQubGVuZ3RoLG8scixpLHMsZj10WzBdLm1vZGVsTWF0cml4LHU9aCh0WzBdW2VdLmluZGljZXMpLGM9dFswXVtlXS5wcmltaXRpdmVUeXBlO2ZvcihyPTE7cjxuOysrcil7aWYoIXN0LmVxdWFscyh0W3JdLm1vZGVsTWF0cml4LGYpKXRocm93IG5ldyBCKCJBbGwgaW5zdGFuY2VzIG11c3QgaGF2ZSB0aGUgc2FtZSBtb2RlbE1hdHJpeC4iKTtpZihoKHRbcl1bZV0uaW5kaWNlcykhPT11KXRocm93IG5ldyBCKCJBbGwgaW5zdGFuY2UgZ2VvbWV0cmllcyBtdXN0IGhhdmUgYW4gaW5kaWNlcyBvciBub3QgaGF2ZSBvbmUuIik7aWYodFtyXVtlXS5wcmltaXRpdmVUeXBlIT09Yyl0aHJvdyBuZXcgQigiQWxsIGluc3RhbmNlIGdlb21ldHJpZXMgbXVzdCBoYXZlIHRoZSBzYW1lIHByaW1pdGl2ZVR5cGUuIil9bGV0IGw9djModCxlKSxwLGQsbTtmb3IobyBpbiBsKWlmKGwuaGFzT3duUHJvcGVydHkobykpZm9yKHA9bFtvXS52YWx1ZXMscz0wLHI9MDtyPG47KytyKWZvcihkPXRbcl1bZV0uYXR0cmlidXRlc1tvXS52YWx1ZXMsbT1kLmxlbmd0aCxpPTA7aTxtOysraSlwW3MrK109ZFtpXTtsZXQgXztpZih1KXtsZXQgVD0wO2ZvcihyPTA7cjxuOysrcilUKz10W3JdW2VdLmluZGljZXMubGVuZ3RoO2xldCBFPUZ0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKG5ldyBGdCh7YXR0cmlidXRlczpsLHByaW1pdGl2ZVR5cGU6THQuUE9JTlRTfSkpLHc9RHQuY3JlYXRlVHlwZWRBcnJheShFLFQpLEM9MCxOPTA7Zm9yKHI9MDtyPG47KytyKXtsZXQgST10W3JdW2VdLmluZGljZXMsTD1JLmxlbmd0aDtmb3Iocz0wO3M8TDsrK3Mpd1tDKytdPU4rSVtzXTtOKz1GdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0W3JdW2VdKX1fPXd9bGV0IGc9bmV3IGEsYj0wLE87Zm9yKHI9MDtyPG47KytyKXtpZihPPXRbcl1bZV0uYm91bmRpbmdTcGhlcmUsIWgoTykpe2c9dm9pZCAwO2JyZWFrfWEuYWRkKE8uY2VudGVyLGcsZyl9aWYoaChnKSlmb3IoYS5kaXZpZGVCeVNjYWxhcihnLG4sZykscj0wO3I8bjsrK3Ipe089dFtyXVtlXS5ib3VuZGluZ1NwaGVyZTtsZXQgVD1hLm1hZ25pdHVkZShhLnN1YnRyYWN0KE8uY2VudGVyLGcsRDMpKStPLnJhZGl1cztUPmImJihiPVQpfXJldHVybiBuZXcgRnQoe2F0dHJpYnV0ZXM6bCxpbmRpY2VzOl8scHJpbWl0aXZlVHlwZTpjLGJvdW5kaW5nU3BoZXJlOmgoZyk/bmV3IHl0KGcsYik6dm9pZCAwfSl9ZnVuY3Rpb24gQjModCl7aWYoaCh0LmluZGljZXMpKXJldHVybiB0O2xldCBlPUZ0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKHQpO2lmKGU8Myl0aHJvdyBuZXcgQigiVGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBtdXN0IGJlIGF0IGxlYXN0IHRocmVlLiIpO2lmKGUlMyE9PTApdGhyb3cgbmV3IEIoIlRoZSBudW1iZXIgb2YgdmVydGljZXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRocmVlLiIpO2xldCBuPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSxlKTtmb3IobGV0IG89MDtvPGU7KytvKW5bb109bztyZXR1cm4gdC5pbmRpY2VzPW4sdH1mdW5jdGlvbiBVMyh0KXtsZXQgZT1GdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0KTtpZihlPDMpdGhyb3cgbmV3IEIoIlRoZSBudW1iZXIgb2YgdmVydGljZXMgbXVzdCBiZSBhdCBsZWFzdCB0aHJlZS4iKTtsZXQgbj1EdC5jcmVhdGVUeXBlZEFycmF5KGUsKGUtMikqMyk7blswXT0xLG5bMV09MCxuWzJdPTI7bGV0IG89Mztmb3IobGV0IHI9MztyPGU7KytyKW5bbysrXT1yLTEsbltvKytdPTAsbltvKytdPXI7cmV0dXJuIHQuaW5kaWNlcz1uLHQucHJpbWl0aXZlVHlwZT1MdC5UUklBTkdMRVMsdH1mdW5jdGlvbiBWMyh0KXtsZXQgZT1GdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0KTtpZihlPDMpdGhyb3cgbmV3IEIoIlRoZSBudW1iZXIgb2YgdmVydGljZXMgbXVzdCBiZSBhdCBsZWFzdCAzLiIpO2xldCBuPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSwoZS0yKSozKTtuWzBdPTAsblsxXT0xLG5bMl09MixlPjMmJihuWzNdPTAsbls0XT0yLG5bNV09Myk7bGV0IG89Njtmb3IobGV0IHI9MztyPGUtMTtyKz0yKW5bbysrXT1yLG5bbysrXT1yLTEsbltvKytdPXIrMSxyKzI8ZSYmKG5bbysrXT1yLG5bbysrXT1yKzEsbltvKytdPXIrMik7cmV0dXJuIHQuaW5kaWNlcz1uLHQucHJpbWl0aXZlVHlwZT1MdC5UUklBTkdMRVMsdH1mdW5jdGlvbiBrMyh0KXtpZihoKHQuaW5kaWNlcykpcmV0dXJuIHQ7bGV0IGU9RnQuY29tcHV0ZU51bWJlck9mVmVydGljZXModCk7aWYoZTwyKXRocm93IG5ldyBCKCJUaGUgbnVtYmVyIG9mIHZlcnRpY2VzIG11c3QgYmUgYXQgbGVhc3QgdHdvLiIpO2lmKGUlMiE9PTApdGhyb3cgbmV3IEIoIlRoZSBudW1iZXIgb2YgdmVydGljZXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDIuIik7bGV0IG49RHQuY3JlYXRlVHlwZWRBcnJheShlLGUpO2ZvcihsZXQgbz0wO288ZTsrK28pbltvXT1vO3JldHVybiB0LmluZGljZXM9bix0fWZ1bmN0aW9uIEczKHQpe2xldCBlPUZ0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKHQpO2lmKGU8Mil0aHJvdyBuZXcgQigiVGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBtdXN0IGJlIGF0IGxlYXN0IHR3by4iKTtsZXQgbj1EdC5jcmVhdGVUeXBlZEFycmF5KGUsKGUtMSkqMik7blswXT0wLG5bMV09MTtsZXQgbz0yO2ZvcihsZXQgcj0yO3I8ZTsrK3IpbltvKytdPXItMSxuW28rK109cjtyZXR1cm4gdC5pbmRpY2VzPW4sdC5wcmltaXRpdmVUeXBlPUx0LkxJTkVTLHR9ZnVuY3Rpb24gejModCl7bGV0IGU9RnQuY29tcHV0ZU51bWJlck9mVmVydGljZXModCk7aWYoZTwyKXRocm93IG5ldyBCKCJUaGUgbnVtYmVyIG9mIHZlcnRpY2VzIG11c3QgYmUgYXQgbGVhc3QgdHdvLiIpO2xldCBuPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSxlKjIpO25bMF09MCxuWzFdPTE7bGV0IG89Mjtmb3IobGV0IHI9MjtyPGU7KytyKW5bbysrXT1yLTEsbltvKytdPXI7cmV0dXJuIG5bbysrXT1lLTEsbltvXT0wLHQuaW5kaWNlcz1uLHQucHJpbWl0aXZlVHlwZT1MdC5MSU5FUyx0fWZ1bmN0aW9uIGozKHQpe3N3aXRjaCh0LnByaW1pdGl2ZVR5cGUpe2Nhc2UgTHQuVFJJQU5HTEVfRkFOOnJldHVybiBVMyh0KTtjYXNlIEx0LlRSSUFOR0xFX1NUUklQOnJldHVybiBWMyh0KTtjYXNlIEx0LlRSSUFOR0xFUzpyZXR1cm4gQjModCk7Y2FzZSBMdC5MSU5FX1NUUklQOnJldHVybiBHMyh0KTtjYXNlIEx0LkxJTkVfTE9PUDpyZXR1cm4gejModCk7Y2FzZSBMdC5MSU5FUzpyZXR1cm4gazModCl9cmV0dXJuIHR9ZnVuY3Rpb24gYXModCxlKXtNYXRoLmFicyh0LnkpPE0uRVBTSUxPTjYmJihlP3QueT0tTS5FUFNJTE9ONjp0Lnk9TS5FUFNJTE9ONil9ZnVuY3Rpb24gSDModCxlLG4pe2lmKHQueSE9PTAmJmUueSE9PTAmJm4ueSE9PTApe2FzKHQsdC55PDApLGFzKGUsZS55PDApLGFzKG4sbi55PDApO3JldHVybn1sZXQgbz1NYXRoLmFicyh0LnkpLHI9TWF0aC5hYnMoZS55KSxpPU1hdGguYWJzKG4ueSkscztvPnI/bz5pP3M9TS5zaWduKHQueSk6cz1NLnNpZ24obi55KTpyPmk/cz1NLnNpZ24oZS55KTpzPU0uc2lnbihuLnkpO2xldCBmPXM8MDthcyh0LGYpLGFzKGUsZiksYXMobixmKX1mdW5jdGlvbiB3cih0LGUsbixvKXthLmFkZCh0LGEubXVsdGlwbHlCeVNjYWxhcihhLnN1YnRyYWN0KGUsdCxVYiksdC55Lyh0LnktZS55KSxVYiksbiksYS5jbG9uZShuLG8pLGFzKG4sITApLGFzKG8sITEpfWZ1bmN0aW9uIHEzKHQsZSxuKXtpZih0Lng+PTB8fGUueD49MHx8bi54Pj0wKXJldHVybjtIMyh0LGUsbik7bGV0IG89dC55PDAscj1lLnk8MCxpPW4ueTwwLHM9MDtzKz1vPzE6MCxzKz1yPzE6MCxzKz1pPzE6MDtsZXQgZj1HaC5pbmRpY2VzO3M9PT0xPyhmWzFdPTMsZlsyXT00LGZbNV09NixmWzddPTYsZls4XT01LG8/KHdyKHQsZSxlYyxvYyksd3IodCxuLG5jLHJjKSxmWzBdPTAsZlszXT0xLGZbNF09MixmWzZdPTEpOnI/KHdyKGUsbixlYyxvYyksd3IoZSx0LG5jLHJjKSxmWzBdPTEsZlszXT0yLGZbNF09MCxmWzZdPTIpOmkmJih3cihuLHQsZWMsb2MpLHdyKG4sZSxuYyxyYyksZlswXT0yLGZbM109MCxmWzRdPTEsZls2XT0wKSk6cz09PTImJihmWzJdPTQsZls0XT00LGZbNV09MyxmWzddPTUsZls4XT02LG8/cj9pfHwod3Iobix0LGVjLG9jKSx3cihuLGUsbmMscmMpLGZbMF09MCxmWzFdPTEsZlszXT0wLGZbNl09Mik6KHdyKGUsbixlYyxvYyksd3IoZSx0LG5jLHJjKSxmWzBdPTIsZlsxXT0wLGZbM109MixmWzZdPTEpOih3cih0LGUsZWMsb2MpLHdyKHQsbixuYyxyYyksZlswXT0xLGZbMV09MixmWzNdPTEsZls2XT0wKSk7bGV0IHU9R2gucG9zaXRpb25zO3JldHVybiB1WzBdPXQsdVsxXT1lLHVbMl09bix1Lmxlbmd0aD0zLChzPT09MXx8cz09PTIpJiYodVszXT1lYyx1WzRdPW5jLHVbNV09b2MsdVs2XT1yYyx1Lmxlbmd0aD03KSxHaH1mdW5jdGlvbiBWYih0LGUpe2xldCBuPXQuYXR0cmlidXRlcztpZihuLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGg9PT0wKXJldHVybjtmb3IobGV0IHIgaW4gbilpZihuLmhhc093blByb3BlcnR5KHIpJiZoKG5bcl0pJiZoKG5bcl0udmFsdWVzKSl7bGV0IGk9bltyXTtpLnZhbHVlcz1vdC5jcmVhdGVUeXBlZEFycmF5KGkuY29tcG9uZW50RGF0YXR5cGUsaS52YWx1ZXMpfWxldCBvPUZ0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKHQpO3JldHVybiB0LmluZGljZXM9RHQuY3JlYXRlVHlwZWRBcnJheShvLHQuaW5kaWNlcyksZSYmKHQuYm91bmRpbmdTcGhlcmU9eXQuZnJvbVZlcnRpY2VzKG4ucG9zaXRpb24udmFsdWVzKSksdH1mdW5jdGlvbiBzYSh0KXtsZXQgZT10LmF0dHJpYnV0ZXMsbj17fTtmb3IobGV0IG8gaW4gZSlpZihlLmhhc093blByb3BlcnR5KG8pJiZoKGVbb10pJiZoKGVbb10udmFsdWVzKSl7bGV0IHI9ZVtvXTtuW29dPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6ci5jb21wb25lbnREYXRhdHlwZSxjb21wb25lbnRzUGVyQXR0cmlidXRlOnIuY29tcG9uZW50c1BlckF0dHJpYnV0ZSxub3JtYWxpemU6ci5ub3JtYWxpemUsdmFsdWVzOltdfSl9cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpuLGluZGljZXM6W10scHJpbWl0aXZlVHlwZTp0LnByaW1pdGl2ZVR5cGV9KX1mdW5jdGlvbiBxaCh0LGUsbil7bGV0IG89aCh0Lmdlb21ldHJ5LmJvdW5kaW5nU3BoZXJlKTtlPVZiKGUsbyksbj1WYihuLG8pLGgobikmJiFoKGUpP3QuZ2VvbWV0cnk9bjohaChuKSYmaChlKT90Lmdlb21ldHJ5PWU6KHQud2VzdEhlbWlzcGhlcmVHZW9tZXRyeT1lLHQuZWFzdEhlbWlzcGhlcmVHZW9tZXRyeT1uLHQuZ2VvbWV0cnk9dm9pZCAwKX1mdW5jdGlvbiBLaCh0LGUpe2xldCBuPW5ldyB0LG89bmV3IHQscj1uZXcgdDtyZXR1cm4gZnVuY3Rpb24oaSxzLGYsdSxjLGwscCxkKXtsZXQgbT10LmZyb21BcnJheShjLGkqZSxuKSxfPXQuZnJvbUFycmF5KGMscyplLG8pLGc9dC5mcm9tQXJyYXkoYyxmKmUscik7dC5tdWx0aXBseUJ5U2NhbGFyKG0sdS54LG0pLHQubXVsdGlwbHlCeVNjYWxhcihfLHUueSxfKSx0Lm11bHRpcGx5QnlTY2FsYXIoZyx1LnosZyk7bGV0IGI9dC5hZGQobSxfLG0pO3QuYWRkKGIsZyxiKSxkJiZ0Lm5vcm1hbGl6ZShiLGIpLHQucGFjayhiLGwscCplKX19ZnVuY3Rpb24gR3AodCxlLG4sbyxyLGkscyxmLHUsYyxsLHAsZCxtLF8sZyl7aWYoIWgoaSkmJiFoKHMpJiYhaChmKSYmIWgodSkmJiFoKGMpJiZtPT09MClyZXR1cm47bGV0IGI9YS5mcm9tQXJyYXkocix0KjMsUmYpLE89YS5mcm9tQXJyYXkocixlKjMsemgpLFQ9YS5mcm9tQXJyYXkocixuKjMsamgpLEU9X2IobyxiLE8sVCxYMyk7aWYoaChFKSl7aWYoaChpKSYmanAodCxlLG4sRSxpLHAubm9ybWFsLnZhbHVlcyxnLCEwKSxoKGMpKXtsZXQgdz1hLmZyb21BcnJheShjLHQqMyxSZiksQz1hLmZyb21BcnJheShjLGUqMyx6aCksTj1hLmZyb21BcnJheShjLG4qMyxqaCk7YS5tdWx0aXBseUJ5U2NhbGFyKHcsRS54LHcpLGEubXVsdGlwbHlCeVNjYWxhcihDLEUueSxDKSxhLm11bHRpcGx5QnlTY2FsYXIoTixFLnosTik7bGV0IEk7IWEuZXF1YWxzKHcsYS5aRVJPKXx8IWEuZXF1YWxzKEMsYS5aRVJPKXx8IWEuZXF1YWxzKE4sYS5aRVJPKT8oST1hLmFkZCh3LEMsdyksYS5hZGQoSSxOLEkpLGEubm9ybWFsaXplKEksSSkpOihJPVJmLEkueD0wLEkueT0wLEkuej0wKSxhLnBhY2soSSxwLmV4dHJ1ZGVEaXJlY3Rpb24udmFsdWVzLGcqMyl9aWYoaChsKSYmVzModCxlLG4sRSxsLHAuYXBwbHlPZmZzZXQudmFsdWVzLGcpLGgocykmJmpwKHQsZSxuLEUscyxwLnRhbmdlbnQudmFsdWVzLGcsITApLGgoZikmJmpwKHQsZSxuLEUsZixwLmJpdGFuZ2VudC52YWx1ZXMsZywhMCksaCh1KSYmcWIodCxlLG4sRSx1LHAuc3QudmFsdWVzLGcpLG0+MClmb3IobGV0IHc9MDt3PG07dysrKXtsZXQgQz1kW3ddO1kzKHQsZSxuLEUsZyxfW0NdLHBbQ10pfX19ZnVuY3Rpb24gWTModCxlLG4sbyxyLGkscyl7bGV0IGY9aS5jb21wb25lbnRzUGVyQXR0cmlidXRlLHU9aS52YWx1ZXMsYz1zLnZhbHVlcztzd2l0Y2goZil7Y2FzZSA0OkszKHQsZSxuLG8sdSxjLHIsITEpO2JyZWFrO2Nhc2UgMzpqcCh0LGUsbixvLHUsYyxyLCExKTticmVhaztjYXNlIDI6cWIodCxlLG4sbyx1LGMsciwhMSk7YnJlYWs7ZGVmYXVsdDpjW3JdPXVbdF0qby54K3VbZV0qby55K3Vbbl0qby56fX1mdW5jdGlvbiBpaSh0LGUsbixvLHIsaSl7bGV0IHM9dC5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzM7aWYociE9PS0xKXtsZXQgZj1vW3JdLHU9bltmXTtyZXR1cm4gdT09PS0xPyhuW2ZdPXMsdC5wb3NpdGlvbi52YWx1ZXMucHVzaChpLngsaS55LGkueiksZS5wdXNoKHMpLHMpOihlLnB1c2godSksdSl9cmV0dXJuIHQucG9zaXRpb24udmFsdWVzLnB1c2goaS54LGkueSxpLnopLGUucHVzaChzKSxzfWZ1bmN0aW9uIGtiKHQpe2xldCBlPXQuZ2VvbWV0cnksbj1lLmF0dHJpYnV0ZXMsbz1uLnBvc2l0aW9uLnZhbHVlcyxyPWgobi5ub3JtYWwpP24ubm9ybWFsLnZhbHVlczp2b2lkIDAsaT1oKG4uYml0YW5nZW50KT9uLmJpdGFuZ2VudC52YWx1ZXM6dm9pZCAwLHM9aChuLnRhbmdlbnQpP24udGFuZ2VudC52YWx1ZXM6dm9pZCAwLGY9aChuLnN0KT9uLnN0LnZhbHVlczp2b2lkIDAsdT1oKG4uZXh0cnVkZURpcmVjdGlvbik/bi5leHRydWRlRGlyZWN0aW9uLnZhbHVlczp2b2lkIDAsYz1oKG4uYXBwbHlPZmZzZXQpP24uYXBwbHlPZmZzZXQudmFsdWVzOnZvaWQgMCxsPWUuaW5kaWNlcyxwPVtdO2ZvcihsZXQgSSBpbiBuKW4uaGFzT3duUHJvcGVydHkoSSkmJiEkM1tJXSYmaChuW0ldKSYmcC5wdXNoKEkpO2xldCBkPXAubGVuZ3RoLG09c2EoZSksXz1zYShlKSxnLGIsTyxULEUsdz1bXTt3Lmxlbmd0aD1vLmxlbmd0aC8zO2xldCBDPVtdO2ZvcihDLmxlbmd0aD1vLmxlbmd0aC8zLEU9MDtFPHcubGVuZ3RoOysrRSl3W0VdPS0xLENbRV09LTE7bGV0IE49bC5sZW5ndGg7Zm9yKEU9MDtFPE47RSs9Myl7bGV0IEk9bFtFXSxMPWxbRSsxXSx2PWxbRSsyXSxEPWEuZnJvbUFycmF5KG8sSSozKSxVPWEuZnJvbUFycmF5KG8sTCozKSxBPWEuZnJvbUFycmF5KG8sdiozKSxTPXEzKEQsVSxBKTtpZihoKFMpJiZTLnBvc2l0aW9ucy5sZW5ndGg+Myl7bGV0IFA9Uy5wb3NpdGlvbnMsRj1TLmluZGljZXMsaj1GLmxlbmd0aDtmb3IobGV0IEg9MDtIPGo7KytIKXtsZXQgaz1GW0hdLEs9UFtrXTtLLnk8MD8oZz1fLmF0dHJpYnV0ZXMsYj1fLmluZGljZXMsTz13KTooZz1tLmF0dHJpYnV0ZXMsYj1tLmluZGljZXMsTz1DKSxUPWlpKGcsYixPLGwsazwzP0UrazotMSxLKSxHcChJLEwsdixLLG8scixzLGksZix1LGMsZyxwLGQsbixUKX19ZWxzZSBoKFMpJiYoRD1TLnBvc2l0aW9uc1swXSxVPVMucG9zaXRpb25zWzFdLEE9Uy5wb3NpdGlvbnNbMl0pLEQueTwwPyhnPV8uYXR0cmlidXRlcyxiPV8uaW5kaWNlcyxPPXcpOihnPW0uYXR0cmlidXRlcyxiPW0uaW5kaWNlcyxPPUMpLFQ9aWkoZyxiLE8sbCxFLEQpLEdwKEksTCx2LEQsbyxyLHMsaSxmLHUsYyxnLHAsZCxuLFQpLFQ9aWkoZyxiLE8sbCxFKzEsVSksR3AoSSxMLHYsVSxvLHIscyxpLGYsdSxjLGcscCxkLG4sVCksVD1paShnLGIsTyxsLEUrMixBKSxHcChJLEwsdixBLG8scixzLGksZix1LGMsZyxwLGQsbixUKX1xaCh0LF8sbSl9ZnVuY3Rpb24gaWEodCxlLG4sbyxyLGkscyl7aWYoIWgocykpcmV0dXJuO2xldCBmPWEuZnJvbUFycmF5KG8sdCozLFJmKTthLmVxdWFsc0Vwc2lsb24oZixuLE0uRVBTSUxPTjEwKT9pLmFwcGx5T2Zmc2V0LnZhbHVlc1tyXT1zW3RdOmkuYXBwbHlPZmZzZXQudmFsdWVzW3JdPXNbZV19ZnVuY3Rpb24gR2IodCl7bGV0IGU9dC5nZW9tZXRyeSxuPWUuYXR0cmlidXRlcyxvPW4ucG9zaXRpb24udmFsdWVzLHI9aChuLmFwcGx5T2Zmc2V0KT9uLmFwcGx5T2Zmc2V0LnZhbHVlczp2b2lkIDAsaT1lLmluZGljZXMscz1zYShlKSxmPXNhKGUpLHUsYz1pLmxlbmd0aCxsPVtdO2wubGVuZ3RoPW8ubGVuZ3RoLzM7bGV0IHA9W107Zm9yKHAubGVuZ3RoPW8ubGVuZ3RoLzMsdT0wO3U8bC5sZW5ndGg7Kyt1KWxbdV09LTEscFt1XT0tMTtmb3IodT0wO3U8Yzt1Kz0yKXtsZXQgZD1pW3VdLG09aVt1KzFdLF89YS5mcm9tQXJyYXkobyxkKjMsUmYpLGc9YS5mcm9tQXJyYXkobyxtKjMsemgpLGI7TWF0aC5hYnMoXy55KTxNLkVQU0lMT042JiYoXy55PDA/Xy55PS1NLkVQU0lMT042Ol8ueT1NLkVQU0lMT042KSxNYXRoLmFicyhnLnkpPE0uRVBTSUxPTjYmJihnLnk8MD9nLnk9LU0uRVBTSUxPTjY6Zy55PU0uRVBTSUxPTjYpO2xldCBPPXMuYXR0cmlidXRlcyxUPXMuaW5kaWNlcyxFPXAsdz1mLmF0dHJpYnV0ZXMsQz1mLmluZGljZXMsTj1sLEk9X28ubGluZVNlZ21lbnRQbGFuZShfLGcsS2IsamgpO2lmKGgoSSkpe2xldCBMPWEubXVsdGlwbHlCeVNjYWxhcihhLlVOSVRfWSw1Kk0uRVBTSUxPTjksWjMpO18ueTwwJiYoYS5uZWdhdGUoTCxMKSxPPWYuYXR0cmlidXRlcyxUPWYuaW5kaWNlcyxFPWwsdz1zLmF0dHJpYnV0ZXMsQz1zLmluZGljZXMsTj1wKTtsZXQgdj1hLmFkZChJLEwsUTMpO2I9aWkoTyxULEUsaSx1LF8pLGlhKGQsbSxfLG8sYixPLHIpLGI9aWkoTyxULEUsaSwtMSx2KSxpYShkLG0sdixvLGIsTyxyKSxhLm5lZ2F0ZShMLEwpLGEuYWRkKEksTCx2KSxiPWlpKHcsQyxOLGksLTEsdiksaWEoZCxtLHYsbyxiLHcsciksYj1paSh3LEMsTixpLHUrMSxnKSxpYShkLG0sZyxvLGIsdyxyKX1lbHNle2xldCBMLHYsRDtfLnk8MD8oTD1mLmF0dHJpYnV0ZXMsdj1mLmluZGljZXMsRD1sKTooTD1zLmF0dHJpYnV0ZXMsdj1zLmluZGljZXMsRD1wKSxiPWlpKEwsdixELGksdSxfKSxpYShkLG0sXyxvLGIsTCxyKSxiPWlpKEwsdixELGksdSsxLGcpLGlhKGQsbSxnLG8sYixMLHIpfX1xaCh0LGYscyl9ZnVuY3Rpb24gSGIodCl7bGV0IGU9dC5hdHRyaWJ1dGVzLG49ZS5wb3NpdGlvbi52YWx1ZXMsbz1lLnByZXZQb3NpdGlvbi52YWx1ZXMscj1lLm5leHRQb3NpdGlvbi52YWx1ZXMsaT1uLmxlbmd0aDtmb3IobGV0IHM9MDtzPGk7cys9Myl7bGV0IGY9YS51bnBhY2sobixzLFdiKTtpZihmLng+MCljb250aW51ZTtsZXQgdT1hLnVucGFjayhvLHMsWGIpOyhmLnk8MCYmdS55PjB8fGYueT4wJiZ1Lnk8MCkmJihzLTM+MD8ob1tzXT1uW3MtM10sb1tzKzFdPW5bcy0yXSxvW3MrMl09bltzLTFdKTphLnBhY2soZixvLHMpKTtsZXQgYz1hLnVucGFjayhyLHMsSGgpOyhmLnk8MCYmYy55PjB8fGYueT4wJiZjLnk8MCkmJihzKzM8aT8ocltzXT1uW3MrM10scltzKzFdPW5bcys0XSxyW3MrMl09bltzKzVdKTphLnBhY2soZixyLHMpKX19ZnVuY3Rpb24gck0odCl7bGV0IGU9dC5nZW9tZXRyeSxuPWUuYXR0cmlidXRlcyxvPW4ucG9zaXRpb24udmFsdWVzLHI9bi5wcmV2UG9zaXRpb24udmFsdWVzLGk9bi5uZXh0UG9zaXRpb24udmFsdWVzLHM9bi5leHBhbmRBbmRXaWR0aC52YWx1ZXMsZj1oKG4uc3QpP24uc3QudmFsdWVzOnZvaWQgMCx1PWgobi5jb2xvcik/bi5jb2xvci52YWx1ZXM6dm9pZCAwLGM9c2EoZSksbD1zYShlKSxwLGQsbSxfPSExLGc9by5sZW5ndGgvMztmb3IocD0wO3A8ZztwKz00KXtsZXQgYj1wLE89cCsyLFQ9YS5mcm9tQXJyYXkobyxiKjMsV2IpLEU9YS5mcm9tQXJyYXkobyxPKjMsWGIpO2lmKE1hdGguYWJzKFQueSk8enApZm9yKFQueT16cCooRS55PDA/LTE6MSksb1twKjMrMV09VC55LG9bKHArMSkqMysxXT1ULnksZD1iKjM7ZDxiKjMrNCozO2QrPTMpcltkXT1vW3AqM10scltkKzFdPW9bcCozKzFdLHJbZCsyXT1vW3AqMysyXTtpZihNYXRoLmFicyhFLnkpPHpwKWZvcihFLnk9enAqKFQueTwwPy0xOjEpLG9bKHArMikqMysxXT1FLnksb1socCszKSozKzFdPUUueSxkPWIqMztkPGIqMys0KjM7ZCs9MylpW2RdPW9bKHArMikqM10saVtkKzFdPW9bKHArMikqMysxXSxpW2QrMl09b1socCsyKSozKzJdO2xldCB3PWMuYXR0cmlidXRlcyxDPWMuaW5kaWNlcyxOPWwuYXR0cmlidXRlcyxJPWwuaW5kaWNlcyxMPV9vLmxpbmVTZWdtZW50UGxhbmUoVCxFLEtiLHRNKTtpZihoKEwpKXtfPSEwO2xldCB2PWEubXVsdGlwbHlCeVNjYWxhcihhLlVOSVRfWSxvTSxlTSk7VC55PDAmJihhLm5lZ2F0ZSh2LHYpLHc9bC5hdHRyaWJ1dGVzLEM9bC5pbmRpY2VzLE49Yy5hdHRyaWJ1dGVzLEk9Yy5pbmRpY2VzKTtsZXQgRD1hLmFkZChMLHYsbk0pO3cucG9zaXRpb24udmFsdWVzLnB1c2goVC54LFQueSxULnosVC54LFQueSxULnopLHcucG9zaXRpb24udmFsdWVzLnB1c2goRC54LEQueSxELnopLHcucG9zaXRpb24udmFsdWVzLnB1c2goRC54LEQueSxELnopLHcucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKHJbYiozXSxyW2IqMysxXSxyW2IqMysyXSksdy5wcmV2UG9zaXRpb24udmFsdWVzLnB1c2gocltiKjMrM10scltiKjMrNF0scltiKjMrNV0pLHcucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKFQueCxULnksVC56LFQueCxULnksVC56KSx3Lm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChELngsRC55LEQueiksdy5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2goRC54LEQueSxELnopLHcubmV4dFBvc2l0aW9uLnZhbHVlcy5wdXNoKEQueCxELnksRC56KSx3Lm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChELngsRC55LEQueiksYS5uZWdhdGUodix2KSxhLmFkZChMLHYsRCksTi5wb3NpdGlvbi52YWx1ZXMucHVzaChELngsRC55LEQueiksTi5wb3NpdGlvbi52YWx1ZXMucHVzaChELngsRC55LEQueiksTi5wb3NpdGlvbi52YWx1ZXMucHVzaChFLngsRS55LEUueixFLngsRS55LEUueiksTi5wcmV2UG9zaXRpb24udmFsdWVzLnB1c2goRC54LEQueSxELnopLE4ucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKEQueCxELnksRC56KSxOLnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChELngsRC55LEQueiksTi5wcmV2UG9zaXRpb24udmFsdWVzLnB1c2goRC54LEQueSxELnopLE4ubmV4dFBvc2l0aW9uLnZhbHVlcy5wdXNoKEUueCxFLnksRS56LEUueCxFLnksRS56KSxOLm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChpW08qM10saVtPKjMrMV0saVtPKjMrMl0pLE4ubmV4dFBvc2l0aW9uLnZhbHVlcy5wdXNoKGlbTyozKzNdLGlbTyozKzRdLGlbTyozKzVdKTtsZXQgVT1udC5mcm9tQXJyYXkocyxiKjIsemIpLEE9TWF0aC5hYnMoVS55KTt3LmV4cGFuZEFuZFdpZHRoLnZhbHVlcy5wdXNoKC0xLEEsMSxBKSx3LmV4cGFuZEFuZFdpZHRoLnZhbHVlcy5wdXNoKC0xLC1BLDEsLUEpLE4uZXhwYW5kQW5kV2lkdGgudmFsdWVzLnB1c2goLTEsQSwxLEEpLE4uZXhwYW5kQW5kV2lkdGgudmFsdWVzLnB1c2goLTEsLUEsMSwtQSk7bGV0IFM9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QoTCxULEhoKSk7aWYoUy89YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QoRSxULEhoKSksaCh1KSl7bGV0IFA9X2UuZnJvbUFycmF5KHUsYio0LGpiKSxGPV9lLmZyb21BcnJheSh1LE8qNCxqYiksaj1NLmxlcnAoUC54LEYueCxTKSxIPU0ubGVycChQLnksRi55LFMpLGs9TS5sZXJwKFAueixGLnosUyksSz1NLmxlcnAoUC53LEYudyxTKTtmb3IoZD1iKjQ7ZDxiKjQrMio0OysrZCl3LmNvbG9yLnZhbHVlcy5wdXNoKHVbZF0pO2Zvcih3LmNvbG9yLnZhbHVlcy5wdXNoKGosSCxrLEspLHcuY29sb3IudmFsdWVzLnB1c2goaixILGssSyksTi5jb2xvci52YWx1ZXMucHVzaChqLEgsayxLKSxOLmNvbG9yLnZhbHVlcy5wdXNoKGosSCxrLEspLGQ9Tyo0O2Q8Tyo0KzIqNDsrK2QpTi5jb2xvci52YWx1ZXMucHVzaCh1W2RdKX1pZihoKGYpKXtsZXQgUD1udC5mcm9tQXJyYXkoZixiKjIsemIpLEY9bnQuZnJvbUFycmF5KGYsKHArMykqMixKMyksaj1NLmxlcnAoUC54LEYueCxTKTtmb3IoZD1iKjI7ZDxiKjIrMioyOysrZCl3LnN0LnZhbHVlcy5wdXNoKGZbZF0pO2Zvcih3LnN0LnZhbHVlcy5wdXNoKGosUC55KSx3LnN0LnZhbHVlcy5wdXNoKGosRi55KSxOLnN0LnZhbHVlcy5wdXNoKGosUC55KSxOLnN0LnZhbHVlcy5wdXNoKGosRi55KSxkPU8qMjtkPE8qMisyKjI7KytkKU4uc3QudmFsdWVzLnB1c2goZltkXSl9bT13LnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgvMy00LEMucHVzaChtLG0rMixtKzEpLEMucHVzaChtKzEsbSsyLG0rMyksbT1OLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgvMy00LEkucHVzaChtLG0rMixtKzEpLEkucHVzaChtKzEsbSsyLG0rMyl9ZWxzZXtsZXQgdixEO2ZvcihULnk8MD8odj1sLmF0dHJpYnV0ZXMsRD1sLmluZGljZXMpOih2PWMuYXR0cmlidXRlcyxEPWMuaW5kaWNlcyksdi5wb3NpdGlvbi52YWx1ZXMucHVzaChULngsVC55LFQueiksdi5wb3NpdGlvbi52YWx1ZXMucHVzaChULngsVC55LFQueiksdi5wb3NpdGlvbi52YWx1ZXMucHVzaChFLngsRS55LEUueiksdi5wb3NpdGlvbi52YWx1ZXMucHVzaChFLngsRS55LEUueiksZD1wKjM7ZDxwKjMrNCozOysrZCl2LnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChyW2RdKSx2Lm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChpW2RdKTtmb3IoZD1wKjI7ZDxwKjIrNCoyOysrZCl2LmV4cGFuZEFuZFdpZHRoLnZhbHVlcy5wdXNoKHNbZF0pLGgoZikmJnYuc3QudmFsdWVzLnB1c2goZltkXSk7aWYoaCh1KSlmb3IoZD1wKjQ7ZDxwKjQrNCo0OysrZCl2LmNvbG9yLnZhbHVlcy5wdXNoKHVbZF0pO209di5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMtNCxELnB1c2gobSxtKzIsbSsxKSxELnB1c2gobSsxLG0rMixtKzMpfX1fJiYoSGIobCksSGIoYykpLHFoKHQsbCxjKX12YXIgTG8sRGIsSTMsQmgsVnIsVXAsVnAsRDMsYnIsT2Ysb2EscmEsTDMsTGIsRjMsRWYsVXIsRmIsQmIsa3AsVWIsZWMsbmMsb2MscmMsR2gsSzMsanAscWIsVzMsUmYsemgsamgsWDMsJDMsS2IsWjMsUTMsemIsSjMsV2IsWGIsSGgsdE0sZU0sbk0samIsb00senAsQmUsc2k9WigoKT0+e3NzKCk7eWIoKTtQZSgpO3plKCk7VXQoKTtocigpO3ZlKCk7RGUoKTtJdCgpO2F0KCk7SHQoKTtNaCgpO1JpKCk7WGUoKTtZZSgpO1dsKCk7JGUoKTtWcygpO3RjKCk7V3QoKTtGbigpO2tuKCk7Y3MoKTt0bigpO0liKCk7TG89e307TG8udG9XaXJlZnJhbWU9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImdlb21ldHJ5IGlzIHJlcXVpcmVkLiIpO2xldCBlPXQuaW5kaWNlcztpZihoKGUpKXtzd2l0Y2godC5wcmltaXRpdmVUeXBlKXtjYXNlIEx0LlRSSUFOR0xFUzp0LmluZGljZXM9eDMoZSk7YnJlYWs7Y2FzZSBMdC5UUklBTkdMRV9TVFJJUDp0LmluZGljZXM9UDMoZSk7YnJlYWs7Y2FzZSBMdC5UUklBTkdMRV9GQU46dC5pbmRpY2VzPU0zKGUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEIoImdlb21ldHJ5LnByaW1pdGl2ZVR5cGUgbXVzdCBiZSBUUklBTkdMRVMsIFRSSUFOR0xFX1NUUklQLCBvciBUUklBTkdMRV9GQU4uIil9dC5wcmltaXRpdmVUeXBlPUx0LkxJTkVTfXJldHVybiB0fTtMby5jcmVhdGVMaW5lU2VnbWVudHNGb3JWZWN0b3JzPWZ1bmN0aW9uKHQsZSxuKXtpZihlPXgoZSwibm9ybWFsIiksIWgodCkpdGhyb3cgbmV3IEIoImdlb21ldHJ5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKHQuYXR0cmlidXRlcy5wb3NpdGlvbikpdGhyb3cgbmV3IEIoImdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24gaXMgcmVxdWlyZWQuIik7aWYoIWgodC5hdHRyaWJ1dGVzW2VdKSl0aHJvdyBuZXcgQihgZ2VvbWV0cnkuYXR0cmlidXRlcyBtdXN0IGhhdmUgYW4gYXR0cmlidXRlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgYXR0cmlidXRlTmFtZSBwYXJhbWV0ZXIsICR7ZX0uYCk7bj14KG4sMWU0KTtsZXQgbz10LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHI9dC5hdHRyaWJ1dGVzW2VdLnZhbHVlcyxpPW8ubGVuZ3RoLHM9bmV3IEZsb2F0NjRBcnJheSgyKmkpLGY9MDtmb3IobGV0IGw9MDtsPGk7bCs9MylzW2YrK109b1tsXSxzW2YrK109b1tsKzFdLHNbZisrXT1vW2wrMl0sc1tmKytdPW9bbF0rcltsXSpuLHNbZisrXT1vW2wrMV0rcltsKzFdKm4sc1tmKytdPW9bbCsyXStyW2wrMl0qbjtsZXQgdSxjPXQuYm91bmRpbmdTcGhlcmU7cmV0dXJuIGgoYykmJih1PW5ldyB5dChjLmNlbnRlcixjLnJhZGl1cytuKSksbmV3IEZ0KHthdHRyaWJ1dGVzOntwb3NpdGlvbjpuZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnN9KX0scHJpbWl0aXZlVHlwZTpMdC5MSU5FUyxib3VuZGluZ1NwaGVyZTp1fSl9O0xvLmNyZWF0ZUF0dHJpYnV0ZUxvY2F0aW9ucz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigiZ2VvbWV0cnkgaXMgcmVxdWlyZWQuIik7bGV0IGU9WyJwb3NpdGlvbiIsInBvc2l0aW9uSGlnaCIsInBvc2l0aW9uTG93IiwicG9zaXRpb24zREhpZ2giLCJwb3NpdGlvbjNETG93IiwicG9zaXRpb24yREhpZ2giLCJwb3NpdGlvbjJETG93IiwicGlja0NvbG9yIiwibm9ybWFsIiwic3QiLCJ0YW5nZW50IiwiYml0YW5nZW50IiwiZXh0cnVkZURpcmVjdGlvbiIsImNvbXByZXNzZWRBdHRyaWJ1dGVzIl0sbj10LmF0dHJpYnV0ZXMsbz17fSxyPTAsaSxzPWUubGVuZ3RoO2ZvcihpPTA7aTxzOysraSl7bGV0IGY9ZVtpXTtoKG5bZl0pJiYob1tmXT1yKyspfWZvcihsZXQgZiBpbiBuKW4uaGFzT3duUHJvcGVydHkoZikmJiFoKG9bZl0pJiYob1tmXT1yKyspO3JldHVybiBvfTtMby5yZW9yZGVyRm9yUHJlVmVydGV4Q2FjaGU9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImdlb21ldHJ5IGlzIHJlcXVpcmVkLiIpO2xldCBlPUZ0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKHQpLG49dC5pbmRpY2VzO2lmKGgobikpe2xldCBvPW5ldyBJbnQzMkFycmF5KGUpO2ZvcihsZXQgZD0wO2Q8ZTtkKyspb1tkXT0tMTtsZXQgcj1uLGk9ci5sZW5ndGgscz1EdC5jcmVhdGVUeXBlZEFycmF5KGUsaSksZj0wLHU9MCxjPTAsbDtmb3IoO2Y8aTspbD1vW3JbZl1dLGwhPT0tMT9zW3VdPWw6KGw9cltmXSxvW2xdPWMsc1t1XT1jLCsrYyksKytmLCsrdTt0LmluZGljZXM9cztsZXQgcD10LmF0dHJpYnV0ZXM7Zm9yKGxldCBkIGluIHApaWYocC5oYXNPd25Qcm9wZXJ0eShkKSYmaChwW2RdKSYmaChwW2RdLnZhbHVlcykpe2xldCBtPXBbZF0sXz1tLnZhbHVlcyxnPTAsYj1tLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsTz1vdC5jcmVhdGVUeXBlZEFycmF5KG0uY29tcG9uZW50RGF0YXR5cGUsYypiKTtmb3IoO2c8ZTspe2xldCBUPW9bZ107aWYoVCE9PS0xKWZvcihsZXQgRT0wO0U8YjtFKyspT1tiKlQrRV09X1tiKmcrRV07KytnfW0udmFsdWVzPU99fXJldHVybiB0fTtMby5yZW9yZGVyRm9yUG9zdFZlcnRleENhY2hlPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImdlb21ldHJ5IGlzIHJlcXVpcmVkLiIpO2xldCBuPXQuaW5kaWNlcztpZih0LnByaW1pdGl2ZVR5cGU9PT1MdC5UUklBTkdMRVMmJmgobikpe2xldCBvPW4ubGVuZ3RoLHI9MDtmb3IobGV0IGk9MDtpPG87aSsrKW5baV0+ciYmKHI9bltpXSk7dC5pbmRpY2VzPU5iLnRpcHNpZnkoe2luZGljZXM6bixtYXhpbXVtSW5kZXg6cixjYWNoZVNpemU6ZX0pfXJldHVybiB0fTtMby5maXRUb1Vuc2lnbmVkU2hvcnRJbmRpY2VzPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtpZihoKHQuaW5kaWNlcykmJnQucHJpbWl0aXZlVHlwZSE9PUx0LlRSSUFOR0xFUyYmdC5wcmltaXRpdmVUeXBlIT09THQuTElORVMmJnQucHJpbWl0aXZlVHlwZSE9PUx0LlBPSU5UUyl0aHJvdyBuZXcgQigiZ2VvbWV0cnkucHJpbWl0aXZlVHlwZSBtdXN0IGVxdWFsIHRvIFByaW1pdGl2ZVR5cGUuVFJJQU5HTEVTLCBQcmltaXRpdmVUeXBlLkxJTkVTLCBvciBQcmltaXRpdmVUeXBlLlBPSU5UUy4iKTtsZXQgZT1bXSxuPUZ0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKHQpO2lmKGgodC5pbmRpY2VzKSYmbj49TS5TSVhUWV9GT1VSX0tJTE9CWVRFUyl7bGV0IG89W10scj1bXSxpPTAscz12Yih0LmF0dHJpYnV0ZXMpLGY9dC5pbmRpY2VzLHU9Zi5sZW5ndGgsYzt0LnByaW1pdGl2ZVR5cGU9PT1MdC5UUklBTkdMRVM/Yz0zOnQucHJpbWl0aXZlVHlwZT09PUx0LkxJTkVTP2M9Mjp0LnByaW1pdGl2ZVR5cGU9PT1MdC5QT0lOVFMmJihjPTEpO2ZvcihsZXQgbD0wO2w8dTtsKz1jKXtmb3IobGV0IHA9MDtwPGM7KytwKXtsZXQgZD1mW2wrcF0sbT1vW2RdO2gobSl8fChtPWkrKyxvW2RdPW0sTjMocyx0LmF0dHJpYnV0ZXMsZCkpLHIucHVzaChtKX1pK2M+PU0uU0lYVFlfRk9VUl9LSUxPQllURVMmJihlLnB1c2gobmV3IEZ0KHthdHRyaWJ1dGVzOnMsaW5kaWNlczpyLHByaW1pdGl2ZVR5cGU6dC5wcmltaXRpdmVUeXBlLGJvdW5kaW5nU3BoZXJlOnQuYm91bmRpbmdTcGhlcmUsYm91bmRpbmdTcGhlcmVDVjp0LmJvdW5kaW5nU3BoZXJlQ1Z9KSksbz1bXSxyPVtdLGk9MCxzPXZiKHQuYXR0cmlidXRlcykpfXIubGVuZ3RoIT09MCYmZS5wdXNoKG5ldyBGdCh7YXR0cmlidXRlczpzLGluZGljZXM6cixwcmltaXRpdmVUeXBlOnQucHJpbWl0aXZlVHlwZSxib3VuZGluZ1NwaGVyZTp0LmJvdW5kaW5nU3BoZXJlLGJvdW5kaW5nU3BoZXJlQ1Y6dC5ib3VuZGluZ1NwaGVyZUNWfSkpfWVsc2UgZS5wdXNoKHQpO3JldHVybiBlfTtEYj1uZXcgYSxJMz1uZXcgY3Q7TG8ucHJvamVjdFRvMkQ9ZnVuY3Rpb24odCxlLG4sbyxyKXtpZighaCh0KSl0aHJvdyBuZXcgQigiZ2VvbWV0cnkgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImF0dHJpYnV0ZU5hbWUgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoImF0dHJpYnV0ZU5hbWUzRCBpcyByZXF1aXJlZC4iKTtpZighaChvKSl0aHJvdyBuZXcgQigiYXR0cmlidXRlTmFtZTJEIGlzIHJlcXVpcmVkLiIpO2lmKCFoKHQuYXR0cmlidXRlc1tlXSkpdGhyb3cgbmV3IEIoYGdlb21ldHJ5IG11c3QgaGF2ZSBhdHRyaWJ1dGUgbWF0Y2hpbmcgdGhlIGF0dHJpYnV0ZU5hbWUgYXJndW1lbnQ6ICR7ZX0uYCk7aWYodC5hdHRyaWJ1dGVzW2VdLmNvbXBvbmVudERhdGF0eXBlIT09b3QuRE9VQkxFKXRocm93IG5ldyBCKCJUaGUgYXR0cmlidXRlIGNvbXBvbmVudERhdGF0eXBlIG11c3QgYmUgQ29tcG9uZW50RGF0YXR5cGUuRE9VQkxFLiIpO2xldCBpPXQuYXR0cmlidXRlc1tlXTtyPWgocik/cjpuZXcgUW47bGV0IHM9ci5lbGxpcHNvaWQsZj1pLnZhbHVlcyx1PW5ldyBGbG9hdDY0QXJyYXkoZi5sZW5ndGgpLGM9MDtmb3IobGV0IGw9MDtsPGYubGVuZ3RoO2wrPTMpe2xldCBwPWEuZnJvbUFycmF5KGYsbCxEYiksZD1zLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHAsSTMpO2lmKCFoKGQpKXRocm93IG5ldyBCKGBDb3VsZCBub3QgcHJvamVjdCBwb2ludCAoJHtwLnh9LCAke3AueX0sICR7cC56fSkgdG8gMkQuYCk7bGV0IG09ci5wcm9qZWN0KGQsRGIpO3VbYysrXT1tLngsdVtjKytdPW0ueSx1W2MrK109bS56fXJldHVybiB0LmF0dHJpYnV0ZXNbbl09aSx0LmF0dHJpYnV0ZXNbb109bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczp1fSksZGVsZXRlIHQuYXR0cmlidXRlc1tlXSx0fTtCaD17aGlnaDowLGxvdzowfTtMby5lbmNvZGVBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4sbyl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImdlb21ldHJ5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJhdHRyaWJ1dGVOYW1lIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJhdHRyaWJ1dGVIaWdoTmFtZSBpcyByZXF1aXJlZC4iKTtpZighaChvKSl0aHJvdyBuZXcgQigiYXR0cmlidXRlTG93TmFtZSBpcyByZXF1aXJlZC4iKTtpZighaCh0LmF0dHJpYnV0ZXNbZV0pKXRocm93IG5ldyBCKGBnZW9tZXRyeSBtdXN0IGhhdmUgYXR0cmlidXRlIG1hdGNoaW5nIHRoZSBhdHRyaWJ1dGVOYW1lIGFyZ3VtZW50OiAke2V9LmApO2lmKHQuYXR0cmlidXRlc1tlXS5jb21wb25lbnREYXRhdHlwZSE9PW90LkRPVUJMRSl0aHJvdyBuZXcgQigiVGhlIGF0dHJpYnV0ZSBjb21wb25lbnREYXRhdHlwZSBtdXN0IGJlIENvbXBvbmVudERhdGF0eXBlLkRPVUJMRS4iKTtsZXQgcj10LmF0dHJpYnV0ZXNbZV0saT1yLnZhbHVlcyxzPWkubGVuZ3RoLGY9bmV3IEZsb2F0MzJBcnJheShzKSx1PW5ldyBGbG9hdDMyQXJyYXkocyk7Zm9yKGxldCBsPTA7bDxzOysrbClacy5lbmNvZGUoaVtsXSxCaCksZltsXT1CaC5oaWdoLHVbbF09QmgubG93O2xldCBjPXIuY29tcG9uZW50c1BlckF0dHJpYnV0ZTtyZXR1cm4gdC5hdHRyaWJ1dGVzW25dPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpjLHZhbHVlczpmfSksdC5hdHRyaWJ1dGVzW29dPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpjLHZhbHVlczp1fSksZGVsZXRlIHQuYXR0cmlidXRlc1tlXSx0fTtWcj1uZXcgYTtVcD1uZXcgc3QsVnA9bmV3IHR0O0xvLnRyYW5zZm9ybVRvV29ybGRDb29yZGluYXRlcz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigiaW5zdGFuY2UgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5tb2RlbE1hdHJpeDtpZihzdC5lcXVhbHMoZSxzdC5JREVOVElUWSkpcmV0dXJuIHQ7bGV0IG49dC5nZW9tZXRyeS5hdHRyaWJ1dGVzO1VoKGUsbi5wb3NpdGlvbiksVWgoZSxuLnByZXZQb3NpdGlvbiksVWgoZSxuLm5leHRQb3NpdGlvbiksKGgobi5ub3JtYWwpfHxoKG4udGFuZ2VudCl8fGgobi5iaXRhbmdlbnQpKSYmKHN0LmludmVyc2UoZSxVcCksc3QudHJhbnNwb3NlKFVwLFVwKSxzdC5nZXRNYXRyaXgzKFVwLFZwKSxWaChWcCxuLm5vcm1hbCksVmgoVnAsbi50YW5nZW50KSxWaChWcCxuLmJpdGFuZ2VudCkpO2xldCBvPXQuZ2VvbWV0cnkuYm91bmRpbmdTcGhlcmU7cmV0dXJuIGgobykmJih0Lmdlb21ldHJ5LmJvdW5kaW5nU3BoZXJlPXl0LnRyYW5zZm9ybShvLGUsbykpLHQubW9kZWxNYXRyaXg9c3QuY2xvbmUoc3QuSURFTlRJVFkpLHR9O0QzPW5ldyBhO0xvLmNvbWJpbmVJbnN0YW5jZXM9ZnVuY3Rpb24odCl7aWYoIWgodCl8fHQubGVuZ3RoPDEpdGhyb3cgbmV3IEIoImluc3RhbmNlcyBpcyByZXF1aXJlZCBhbmQgbXVzdCBoYXZlIGxlbmd0aCBncmVhdGVyIHRoYW4gemVyby4iKTtsZXQgZT1bXSxuPVtdLG89dC5sZW5ndGg7Zm9yKGxldCBpPTA7aTxvOysraSl7bGV0IHM9dFtpXTtoKHMuZ2VvbWV0cnkpP2UucHVzaChzKTpoKHMud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJmgocy5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmbi5wdXNoKHMpfWxldCByPVtdO3JldHVybiBlLmxlbmd0aD4wJiZyLnB1c2goa2goZSwiZ2VvbWV0cnkiKSksbi5sZW5ndGg+MCYmKHIucHVzaChraChuLCJ3ZXN0SGVtaXNwaGVyZUdlb21ldHJ5IikpLHIucHVzaChraChuLCJlYXN0SGVtaXNwaGVyZUdlb21ldHJ5IikpKSxyfTticj1uZXcgYSxPZj1uZXcgYSxvYT1uZXcgYSxyYT1uZXcgYTtMby5jb21wdXRlTm9ybWFsPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtpZighaCh0LmF0dHJpYnV0ZXMucG9zaXRpb24pfHwhaCh0LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzKSl0aHJvdyBuZXcgQigiZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMgaXMgcmVxdWlyZWQuIik7aWYoIWgodC5pbmRpY2VzKSl0aHJvdyBuZXcgQigiZ2VvbWV0cnkuaW5kaWNlcyBpcyByZXF1aXJlZC4iKTtpZih0LmluZGljZXMubGVuZ3RoPDJ8fHQuaW5kaWNlcy5sZW5ndGglMyE9PTApdGhyb3cgbmV3IEIoImdlb21ldHJ5LmluZGljZXMgbGVuZ3RoIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAgYW5kIGJlIGEgbXVsdGlwbGUgb2YgMy4iKTtpZih0LnByaW1pdGl2ZVR5cGUhPT1MdC5UUklBTkdMRVMpdGhyb3cgbmV3IEIoImdlb21ldHJ5LnByaW1pdGl2ZVR5cGUgbXVzdCBiZSBQcmltaXRpdmVUeXBlLlRSSUFOR0xFUy4iKTtsZXQgZT10LmluZGljZXMsbj10LmF0dHJpYnV0ZXMsbz1uLnBvc2l0aW9uLnZhbHVlcyxyPW4ucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLGk9ZS5sZW5ndGgscz1uZXcgQXJyYXkociksZj1uZXcgQXJyYXkoaS8zKSx1PW5ldyBBcnJheShpKSxjO2ZvcihjPTA7YzxyO2MrKylzW2NdPXtpbmRleE9mZnNldDowLGNvdW50OjAsY3VycmVudENvdW50OjB9O2xldCBsPTA7Zm9yKGM9MDtjPGk7Yys9Myl7bGV0IF89ZVtjXSxnPWVbYysxXSxiPWVbYysyXSxPPV8qMyxUPWcqMyxFPWIqMztPZi54PW9bT10sT2YueT1vW08rMV0sT2Yuej1vW08rMl0sb2EueD1vW1RdLG9hLnk9b1tUKzFdLG9hLno9b1tUKzJdLHJhLng9b1tFXSxyYS55PW9bRSsxXSxyYS56PW9bRSsyXSxzW19dLmNvdW50Kyssc1tnXS5jb3VudCsrLHNbYl0uY291bnQrKyxhLnN1YnRyYWN0KG9hLE9mLG9hKSxhLnN1YnRyYWN0KHJhLE9mLHJhKSxmW2xdPWEuY3Jvc3Mob2EscmEsbmV3IGEpLGwrK31sZXQgcD0wO2ZvcihjPTA7YzxyO2MrKylzW2NdLmluZGV4T2Zmc2V0Kz1wLHArPXNbY10uY291bnQ7bD0wO2xldCBkO2ZvcihjPTA7YzxpO2MrPTMpe2Q9c1tlW2NdXTtsZXQgXz1kLmluZGV4T2Zmc2V0K2QuY3VycmVudENvdW50O3VbX109bCxkLmN1cnJlbnRDb3VudCsrLGQ9c1tlW2MrMV1dLF89ZC5pbmRleE9mZnNldCtkLmN1cnJlbnRDb3VudCx1W19dPWwsZC5jdXJyZW50Q291bnQrKyxkPXNbZVtjKzJdXSxfPWQuaW5kZXhPZmZzZXQrZC5jdXJyZW50Q291bnQsdVtfXT1sLGQuY3VycmVudENvdW50KyssbCsrfWxldCBtPW5ldyBGbG9hdDMyQXJyYXkociozKTtmb3IoYz0wO2M8cjtjKyspe2xldCBfPWMqMztpZihkPXNbY10sYS5jbG9uZShhLlpFUk8sYnIpLGQuY291bnQ+MCl7Zm9yKGw9MDtsPGQuY291bnQ7bCsrKWEuYWRkKGJyLGZbdVtkLmluZGV4T2Zmc2V0K2xdXSxicik7YS5lcXVhbHNFcHNpbG9uKGEuWkVSTyxicixNLkVQU0lMT04xMCkmJmEuY2xvbmUoZlt1W2QuaW5kZXhPZmZzZXRdXSxicil9YS5lcXVhbHNFcHNpbG9uKGEuWkVSTyxicixNLkVQU0lMT04xMCkmJihici56PTEpLGEubm9ybWFsaXplKGJyLGJyKSxtW19dPWJyLngsbVtfKzFdPWJyLnksbVtfKzJdPWJyLnp9cmV0dXJuIHQuYXR0cmlidXRlcy5ub3JtYWw9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm19KSx0fTtMMz1uZXcgYSxMYj1uZXcgYSxGMz1uZXcgYTtMby5jb21wdXRlVGFuZ2VudEFuZEJpdGFuZ2VudD1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigiZ2VvbWV0cnkgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5hdHRyaWJ1dGVzLG49dC5pbmRpY2VzO2lmKCFoKGUucG9zaXRpb24pfHwhaChlLnBvc2l0aW9uLnZhbHVlcykpdGhyb3cgbmV3IEIoImdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUubm9ybWFsKXx8IWgoZS5ub3JtYWwudmFsdWVzKSl0aHJvdyBuZXcgQigiZ2VvbWV0cnkuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUuc3QpfHwhaChlLnN0LnZhbHVlcykpdGhyb3cgbmV3IEIoImdlb21ldHJ5LmF0dHJpYnV0ZXMuc3QudmFsdWVzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJnZW9tZXRyeS5pbmRpY2VzIGlzIHJlcXVpcmVkLiIpO2lmKG4ubGVuZ3RoPDJ8fG4ubGVuZ3RoJTMhPT0wKXRocm93IG5ldyBCKCJnZW9tZXRyeS5pbmRpY2VzIGxlbmd0aCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIGFuZCBiZSBhIG11bHRpcGxlIG9mIDMuIik7aWYodC5wcmltaXRpdmVUeXBlIT09THQuVFJJQU5HTEVTKXRocm93IG5ldyBCKCJnZW9tZXRyeS5wcmltaXRpdmVUeXBlIG11c3QgYmUgUHJpbWl0aXZlVHlwZS5UUklBTkdMRVMuIik7bGV0IG89dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxyPXQuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzLGk9dC5hdHRyaWJ1dGVzLnN0LnZhbHVlcyxzPXQuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMsZj1uLmxlbmd0aCx1PW5ldyBBcnJheShzKjMpLGM7Zm9yKGM9MDtjPHUubGVuZ3RoO2MrKyl1W2NdPTA7bGV0IGwscCxkO2ZvcihjPTA7YzxmO2MrPTMpe2xldCBnPW5bY10sYj1uW2MrMV0sTz1uW2MrMl07bD1nKjMscD1iKjMsZD1PKjM7bGV0IFQ9ZyoyLEU9YioyLHc9TyoyLEM9b1tsXSxOPW9bbCsxXSxJPW9bbCsyXSxMPWlbVF0sdj1pW1QrMV0sRD1pW0UrMV0tdixVPWlbdysxXS12LEE9MS8oKGlbRV0tTCkqVS0oaVt3XS1MKSpEKSxTPShVKihvW3BdLUMpLUQqKG9bZF0tQykpKkEsUD0oVSoob1twKzFdLU4pLUQqKG9bZCsxXS1OKSkqQSxGPShVKihvW3ArMl0tSSktRCoob1tkKzJdLUkpKSpBO3VbbF0rPVMsdVtsKzFdKz1QLHVbbCsyXSs9Rix1W3BdKz1TLHVbcCsxXSs9UCx1W3ArMl0rPUYsdVtkXSs9Uyx1W2QrMV0rPVAsdVtkKzJdKz1GfWxldCBtPW5ldyBGbG9hdDMyQXJyYXkocyozKSxfPW5ldyBGbG9hdDMyQXJyYXkocyozKTtmb3IoYz0wO2M8cztjKyspe2w9YyozLHA9bCsxLGQ9bCsyO2xldCBnPWEuZnJvbUFycmF5KHIsbCxMMyksYj1hLmZyb21BcnJheSh1LGwsRjMpLE89YS5kb3QoZyxiKTthLm11bHRpcGx5QnlTY2FsYXIoZyxPLExiKSxhLm5vcm1hbGl6ZShhLnN1YnRyYWN0KGIsTGIsYiksYiksbVtsXT1iLngsbVtwXT1iLnksbVtkXT1iLnosYS5ub3JtYWxpemUoYS5jcm9zcyhnLGIsYiksYiksX1tsXT1iLngsX1twXT1iLnksX1tkXT1iLnp9cmV0dXJuIHQuYXR0cmlidXRlcy50YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczptfSksdC5hdHRyaWJ1dGVzLmJpdGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6X30pLHR9O0VmPW5ldyBudCxVcj1uZXcgYSxGYj1uZXcgYSxCYj1uZXcgYSxrcD1uZXcgbnQ7TG8uY29tcHJlc3NWZXJ0aWNlcz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigiZ2VvbWV0cnkgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5hdHRyaWJ1dGVzLmV4dHJ1ZGVEaXJlY3Rpb24sbixvO2lmKGgoZSkpe2xldCBOPWUudmFsdWVzO289Ti5sZW5ndGgvMztsZXQgST1uZXcgRmxvYXQzMkFycmF5KG8qMiksTD0wO2ZvcihuPTA7bjxvOysrbil7aWYoYS5mcm9tQXJyYXkoTixuKjMsVXIpLGEuZXF1YWxzKFVyLGEuWkVSTykpe0wrPTI7Y29udGludWV9a3A9bm4ub2N0RW5jb2RlSW5SYW5nZShVciw2NTUzNSxrcCksSVtMKytdPWtwLngsSVtMKytdPWtwLnl9cmV0dXJuIHQuYXR0cmlidXRlcy5jb21wcmVzc2VkQXR0cmlidXRlcz1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6SX0pLGRlbGV0ZSB0LmF0dHJpYnV0ZXMuZXh0cnVkZURpcmVjdGlvbix0fWxldCByPXQuYXR0cmlidXRlcy5ub3JtYWwsaT10LmF0dHJpYnV0ZXMuc3Qscz1oKHIpLGY9aChpKTtpZighcyYmIWYpcmV0dXJuIHQ7bGV0IHU9dC5hdHRyaWJ1dGVzLnRhbmdlbnQsYz10LmF0dHJpYnV0ZXMuYml0YW5nZW50LGw9aCh1KSxwPWgoYyksZCxtLF8sZztzJiYoZD1yLnZhbHVlcyksZiYmKG09aS52YWx1ZXMpLGwmJihfPXUudmFsdWVzKSxwJiYoZz1jLnZhbHVlcyksbz0ocz9kLmxlbmd0aDptLmxlbmd0aCkvKHM/MzoyKTtsZXQgVD1vLEU9ZiYmcz8yOjE7RSs9bHx8cD8xOjAsVCo9RTtsZXQgdz1uZXcgRmxvYXQzMkFycmF5KFQpLEM9MDtmb3Iobj0wO248bzsrK24pe2YmJihudC5mcm9tQXJyYXkobSxuKjIsRWYpLHdbQysrXT1ubi5jb21wcmVzc1RleHR1cmVDb29yZGluYXRlcyhFZikpO2xldCBOPW4qMztzJiZoKF8pJiZoKGcpPyhhLmZyb21BcnJheShkLE4sVXIpLGEuZnJvbUFycmF5KF8sTixGYiksYS5mcm9tQXJyYXkoZyxOLEJiKSxubi5vY3RQYWNrKFVyLEZiLEJiLEVmKSx3W0MrK109RWYueCx3W0MrK109RWYueSk6KHMmJihhLmZyb21BcnJheShkLE4sVXIpLHdbQysrXT1ubi5vY3RFbmNvZGVGbG9hdChVcikpLGwmJihhLmZyb21BcnJheShfLE4sVXIpLHdbQysrXT1ubi5vY3RFbmNvZGVGbG9hdChVcikpLHAmJihhLmZyb21BcnJheShnLE4sVXIpLHdbQysrXT1ubi5vY3RFbmNvZGVGbG9hdChVcikpKX1yZXR1cm4gdC5hdHRyaWJ1dGVzLmNvbXByZXNzZWRBdHRyaWJ1dGVzPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpFLHZhbHVlczp3fSkscyYmZGVsZXRlIHQuYXR0cmlidXRlcy5ub3JtYWwsZiYmZGVsZXRlIHQuYXR0cmlidXRlcy5zdCxwJiZkZWxldGUgdC5hdHRyaWJ1dGVzLmJpdGFuZ2VudCxsJiZkZWxldGUgdC5hdHRyaWJ1dGVzLnRhbmdlbnQsdH07VWI9bmV3IGE7ZWM9bmV3IGEsbmM9bmV3IGEsb2M9bmV3IGEscmM9bmV3IGEsR2g9e3Bvc2l0aW9uczpuZXcgQXJyYXkoNyksaW5kaWNlczpuZXcgQXJyYXkoMyozKX07SzM9S2goX2UsNCksanA9S2goYSwzKSxxYj1LaChudCwyKSxXMz1mdW5jdGlvbih0LGUsbixvLHIsaSxzKXtsZXQgZj1yW3RdKm8ueCx1PXJbZV0qby55LGM9cltuXSpvLno7aVtzXT1mK3UrYz5NLkVQU0lMT042PzE6MH0sUmY9bmV3IGEsemg9bmV3IGEsamg9bmV3IGEsWDM9bmV3IGE7JDM9e3Bvc2l0aW9uOiEwLG5vcm1hbDohMCxiaXRhbmdlbnQ6ITAsdGFuZ2VudDohMCxzdDohMCxleHRydWRlRGlyZWN0aW9uOiEwLGFwcGx5T2Zmc2V0OiEwfTtLYj1vbi5mcm9tUG9pbnROb3JtYWwoYS5aRVJPLGEuVU5JVF9ZKSxaMz1uZXcgYSxRMz1uZXcgYTt6Yj1uZXcgbnQsSjM9bmV3IG50LFdiPW5ldyBhLFhiPW5ldyBhLEhoPW5ldyBhLHRNPW5ldyBhLGVNPW5ldyBhLG5NPW5ldyBhLGpiPW5ldyBfZTtvTT01Kk0uRVBTSUxPTjksenA9TS5FUFNJTE9ONjtMby5zcGxpdExvbmdpdHVkZT1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigiaW5zdGFuY2UgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5nZW9tZXRyeSxuPWUuYm91bmRpbmdTcGhlcmU7aWYoaChuKSYmKG4uY2VudGVyLngtbi5yYWRpdXM+MHx8eXQuaW50ZXJzZWN0UGxhbmUobixvbi5PUklHSU5fWlhfUExBTkUpIT09RW4uSU5URVJTRUNUSU5HKSlyZXR1cm4gdDtpZihlLmdlb21ldHJ5VHlwZSE9PVNpLk5PTkUpc3dpdGNoKGUuZ2VvbWV0cnlUeXBlKXtjYXNlIFNpLlBPTFlMSU5FUzpyTSh0KTticmVhaztjYXNlIFNpLlRSSUFOR0xFUzprYih0KTticmVhaztjYXNlIFNpLkxJTkVTOkdiKHQpO2JyZWFrfWVsc2UgajMoZSksZS5wcmltaXRpdmVUeXBlPT09THQuVFJJQU5HTEVTP2tiKHQpOmUucHJpbWl0aXZlVHlwZT09PUx0LkxJTkVTJiZHYih0KTtyZXR1cm4gdH07QmU9TG99KTtmdW5jdGlvbiBTZih0LGUsbil7dD14KHQsMCksZT14KGUsMCksbj14KG4sMCksdGhpcy52YWx1ZT1uZXcgRmxvYXQzMkFycmF5KFt0LGUsbl0pfXZhciBZYiwkYj1aKCgpPT57WXQoKTtEZSgpO0l0KCk7YXQoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhTZi5wcm90b3R5cGUse2NvbXBvbmVudERhdGF0eXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb3QuRkxPQVR9fSxjb21wb25lbnRzUGVyQXR0cmlidXRlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gM319LG5vcm1hbGl6ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITF9fX0pO1NmLmZyb21DYXJ0ZXNpYW4zPWZ1bmN0aW9uKHQpe3JldHVybiB5LmRlZmluZWQoIm9mZnNldCIsdCksbmV3IFNmKHQueCx0LnksdC56KX07U2YudG9WYWx1ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoIm9mZnNldCIsdCksaChlKXx8KGU9bmV3IEZsb2F0MzJBcnJheShbdC54LHQueSx0LnpdKSksZVswXT10LngsZVsxXT10LnksZVsyXT10LnosZX07WWI9U2Z9KTtmdW5jdGlvbiBRbyh0KXt0aGlzLl9lbGxpcHNvaWQ9eCh0LCQuV0dTODQpLHRoaXMuX3NlbWltYWpvckF4aXM9dGhpcy5fZWxsaXBzb2lkLm1heGltdW1SYWRpdXMsdGhpcy5fb25lT3ZlclNlbWltYWpvckF4aXM9MS90aGlzLl9zZW1pbWFqb3JBeGlzfXZhciBlbyxpYz1aKCgpPT57VXQoKTt2ZSgpO0l0KCk7YXQoKTtIdCgpO1p0KCk7V3QoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhRby5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc29pZH19fSk7UW8ubWVyY2F0b3JBbmdsZVRvR2VvZGV0aWNMYXRpdHVkZT1mdW5jdGlvbih0KXtyZXR1cm4gTS5QSV9PVkVSX1RXTy0yKk1hdGguYXRhbihNYXRoLmV4cCgtdCkpfTtRby5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlPWZ1bmN0aW9uKHQpe3Q+UW8uTWF4aW11bUxhdGl0dWRlP3Q9UW8uTWF4aW11bUxhdGl0dWRlOnQ8LVFvLk1heGltdW1MYXRpdHVkZSYmKHQ9LVFvLk1heGltdW1MYXRpdHVkZSk7bGV0IGU9TWF0aC5zaW4odCk7cmV0dXJuIC41Kk1hdGgubG9nKCgxK2UpLygxLWUpKX07UW8uTWF4aW11bUxhdGl0dWRlPVFvLm1lcmNhdG9yQW5nbGVUb0dlb2RldGljTGF0aXR1ZGUoTWF0aC5QSSk7UW8ucHJvdG90eXBlLnByb2plY3Q9ZnVuY3Rpb24odCxlKXtsZXQgbj10aGlzLl9zZW1pbWFqb3JBeGlzLG89dC5sb25naXR1ZGUqbixyPVFvLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUodC5sYXRpdHVkZSkqbixpPXQuaGVpZ2h0O3JldHVybiBoKGUpPyhlLng9byxlLnk9cixlLno9aSxlKTpuZXcgYShvLHIsaSl9O1FvLnByb3RvdHlwZS51bnByb2plY3Q9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigiY2FydGVzaWFuIGlzIHJlcXVpcmVkIik7bGV0IG49dGhpcy5fb25lT3ZlclNlbWltYWpvckF4aXMsbz10LngqbixyPVFvLm1lcmNhdG9yQW5nbGVUb0dlb2RldGljTGF0aXR1ZGUodC55Km4pLGk9dC56O3JldHVybiBoKGUpPyhlLmxvbmdpdHVkZT1vLGUubGF0aXR1ZGU9cixlLmhlaWdodD1pLGUpOm5ldyBjdChvLHIsaSl9O2VvPVFvfSk7ZnVuY3Rpb24gaU0odCxlLG4pe2xldCBvPSFuLHI9dC5sZW5ndGgsaTtpZighbyYmcj4xKXtsZXQgcz10WzBdLm1vZGVsTWF0cml4O2ZvcihpPTE7aTxyOysraSlpZighc3QuZXF1YWxzKHMsdFtpXS5tb2RlbE1hdHJpeCkpe289ITA7YnJlYWt9fWlmKG8pZm9yKGk9MDtpPHI7KytpKWgodFtpXS5nZW9tZXRyeSkmJkJlLnRyYW5zZm9ybVRvV29ybGRDb29yZGluYXRlcyh0W2ldKTtlbHNlIHN0Lm11bHRpcGx5VHJhbnNmb3JtYXRpb24oZSx0WzBdLm1vZGVsTWF0cml4LGUpfWZ1bmN0aW9uIFdoKHQsZSl7bGV0IG49dC5hdHRyaWJ1dGVzLG89bi5wb3NpdGlvbixyPW8udmFsdWVzLmxlbmd0aC9vLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGU7bi5iYXRjaElkPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpuZXcgRmxvYXQzMkFycmF5KHIpfSk7bGV0IGk9bi5iYXRjaElkLnZhbHVlcztmb3IobGV0IHM9MDtzPHI7KytzKWlbc109ZX1mdW5jdGlvbiBzTSh0KXtsZXQgZT10Lmxlbmd0aDtmb3IobGV0IG49MDtuPGU7KytuKXtsZXQgbz10W25dO2goby5nZW9tZXRyeSk/V2goby5nZW9tZXRyeSxuKTpoKG8ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJmgoby5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmKFdoKG8ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSxuKSxXaChvLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnksbikpfX1mdW5jdGlvbiBjTSh0KXtsZXQgZT10Lmluc3RhbmNlcyxuPXQucHJvamVjdGlvbixvPXQuZWxlbWVudEluZGV4VWludFN1cHBvcnRlZCxyPXQuc2NlbmUzRE9ubHksaT10LnZlcnRleENhY2hlT3B0aW1pemUscz10LmNvbXByZXNzVmVydGljZXMsZj10Lm1vZGVsTWF0cml4LHUsYyxsLHA9ZS5sZW5ndGg7Zm9yKHU9MDt1PHA7Kyt1KWlmKGgoZVt1XS5nZW9tZXRyeSkpe2w9ZVt1XS5nZW9tZXRyeS5wcmltaXRpdmVUeXBlO2JyZWFrfWZvcih1PTE7dTxwOysrdSlpZihoKGVbdV0uZ2VvbWV0cnkpJiZlW3VdLmdlb21ldHJ5LnByaW1pdGl2ZVR5cGUhPT1sKXRocm93IG5ldyBCKCJBbGwgaW5zdGFuY2UgZ2VvbWV0cmllcyBtdXN0IGhhdmUgdGhlIHNhbWUgcHJpbWl0aXZlVHlwZS4iKTtpZihpTShlLGYsciksIXIpZm9yKHU9MDt1PHA7Kyt1KWgoZVt1XS5nZW9tZXRyeSkmJkJlLnNwbGl0TG9uZ2l0dWRlKGVbdV0pO2lmKHNNKGUpLGkpZm9yKHU9MDt1PHA7Kyt1KXtsZXQgbT1lW3VdO2gobS5nZW9tZXRyeSk/KEJlLnJlb3JkZXJGb3JQb3N0VmVydGV4Q2FjaGUobS5nZW9tZXRyeSksQmUucmVvcmRlckZvclByZVZlcnRleENhY2hlKG0uZ2VvbWV0cnkpKTpoKG0ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJmgobS5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmKEJlLnJlb3JkZXJGb3JQb3N0VmVydGV4Q2FjaGUobS53ZXN0SGVtaXNwaGVyZUdlb21ldHJ5KSxCZS5yZW9yZGVyRm9yUHJlVmVydGV4Q2FjaGUobS53ZXN0SGVtaXNwaGVyZUdlb21ldHJ5KSxCZS5yZW9yZGVyRm9yUG9zdFZlcnRleENhY2hlKG0uZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSksQmUucmVvcmRlckZvclByZVZlcnRleENhY2hlKG0uZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSkpfWxldCBkPUJlLmNvbWJpbmVJbnN0YW5jZXMoZSk7Zm9yKHA9ZC5sZW5ndGgsdT0wO3U8cDsrK3Upe2M9ZFt1XTtsZXQgbT1jLmF0dHJpYnV0ZXM7aWYocilmb3IobGV0IF8gaW4gbSltLmhhc093blByb3BlcnR5KF8pJiZtW19dLmNvbXBvbmVudERhdGF0eXBlPT09b3QuRE9VQkxFJiZCZS5lbmNvZGVBdHRyaWJ1dGUoYyxfLGAke199M0RIaWdoYCxgJHtffTNETG93YCk7ZWxzZSBmb3IobGV0IF8gaW4gbSlpZihtLmhhc093blByb3BlcnR5KF8pJiZtW19dLmNvbXBvbmVudERhdGF0eXBlPT09b3QuRE9VQkxFKXtsZXQgZz1gJHtffTNEYCxiPWAke199MkRgO0JlLnByb2plY3RUbzJEKGMsXyxnLGIsbiksaChjLmJvdW5kaW5nU3BoZXJlKSYmXz09PSJwb3NpdGlvbiImJihjLmJvdW5kaW5nU3BoZXJlQ1Y9eXQuZnJvbVZlcnRpY2VzKGMuYXR0cmlidXRlcy5wb3NpdGlvbjJELnZhbHVlcykpLEJlLmVuY29kZUF0dHJpYnV0ZShjLGcsYCR7Z31IaWdoYCxgJHtnfUxvd2ApLEJlLmVuY29kZUF0dHJpYnV0ZShjLGIsYCR7Yn1IaWdoYCxgJHtifUxvd2ApfXMmJkJlLmNvbXByZXNzVmVydGljZXMoYyl9aWYoIW8pe2xldCBtPVtdO2ZvcihwPWQubGVuZ3RoLHU9MDt1PHA7Kyt1KWM9ZFt1XSxtPW0uY29uY2F0KEJlLmZpdFRvVW5zaWduZWRTaG9ydEluZGljZXMoYykpO2Q9bX1yZXR1cm4gZH1mdW5jdGlvbiBYaCh0LGUsbixvKXtsZXQgcixpLHMsZj1vLmxlbmd0aC0xO2lmKGY+PTApe2xldCBjPW9bZl07cj1jLm9mZnNldCtjLmNvdW50LHM9Yy5pbmRleCxpPW5bc10uaW5kaWNlcy5sZW5ndGh9ZWxzZSByPTAscz0wLGk9bltzXS5pbmRpY2VzLmxlbmd0aDtsZXQgdT10Lmxlbmd0aDtmb3IobGV0IGM9MDtjPHU7KytjKXtsZXQgcD10W2NdW2VdO2lmKCFoKHApKWNvbnRpbnVlO2xldCBkPXAuaW5kaWNlcy5sZW5ndGg7citkPmkmJihyPTAsaT1uWysrc10uaW5kaWNlcy5sZW5ndGgpLG8ucHVzaCh7aW5kZXg6cyxvZmZzZXQ6cixjb3VudDpkfSkscis9ZH19ZnVuY3Rpb24gYU0odCxlKXtsZXQgbj1bXTtyZXR1cm4gWGgodCwiZ2VvbWV0cnkiLGUsbiksWGgodCwid2VzdEhlbWlzcGhlcmVHZW9tZXRyeSIsZSxuKSxYaCh0LCJlYXN0SGVtaXNwaGVyZUdlb21ldHJ5IixlLG4pLG59ZnVuY3Rpb24gZk0odCxlKXtsZXQgbj10LmF0dHJpYnV0ZXM7Zm9yKGxldCBvIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShvKSl7bGV0IHI9bltvXTtoKHIpJiZoKHIudmFsdWVzKSYmZS5wdXNoKHIudmFsdWVzLmJ1ZmZlcil9aCh0LmluZGljZXMpJiZlLnB1c2godC5pbmRpY2VzLmJ1ZmZlcil9ZnVuY3Rpb24gdU0odCxlKXtsZXQgbj10Lmxlbmd0aDtmb3IobGV0IG89MDtvPG47KytvKWZNKHRbb10sZSl9ZnVuY3Rpb24gbE0odCl7bGV0IGU9MSxuPXQubGVuZ3RoO2ZvcihsZXQgbz0wO288bjtvKyspe2xldCByPXRbb107aWYoKytlLCFoKHIpKWNvbnRpbnVlO2xldCBpPXIuYXR0cmlidXRlcztlKz03KzIqeXQucGFja2VkTGVuZ3RoKyhoKHIuaW5kaWNlcyk/ci5pbmRpY2VzLmxlbmd0aDowKTtmb3IobGV0IHMgaW4gaSlpZihpLmhhc093blByb3BlcnR5KHMpJiZoKGlbc10pKXtsZXQgZj1pW3NdO2UrPTUrZi52YWx1ZXMubGVuZ3RofX1yZXR1cm4gZX1mdW5jdGlvbiBwTSh0LGUpe2xldCBuPXQubGVuZ3RoLG89bmV3IEZsb2F0NjRBcnJheSgxK24qMTkpLHI9MDtvW3IrK109bjtmb3IobGV0IGk9MDtpPG47aSsrKXtsZXQgcz10W2ldO2lmKHN0LnBhY2socy5tb2RlbE1hdHJpeCxvLHIpLHIrPXN0LnBhY2tlZExlbmd0aCxoKHMuYXR0cmlidXRlcykmJmgocy5hdHRyaWJ1dGVzLm9mZnNldCkpe2xldCBmPXMuYXR0cmlidXRlcy5vZmZzZXQudmFsdWU7b1tyXT1mWzBdLG9bcisxXT1mWzFdLG9bcisyXT1mWzJdfXIrPTN9cmV0dXJuIGUucHVzaChvLmJ1ZmZlciksb31mdW5jdGlvbiBkTSh0KXtsZXQgZT10LG49bmV3IEFycmF5KGVbMF0pLG89MCxyPTE7Zm9yKDtyPGUubGVuZ3RoOyl7bGV0IGk9c3QudW5wYWNrKGUscikscztyKz1zdC5wYWNrZWRMZW5ndGgsaChlW3JdKSYmKHM9e29mZnNldDpuZXcgWWIoZVtyXSxlW3IrMV0sZVtyKzJdKX0pLHIrPTMsbltvKytdPXttb2RlbE1hdHJpeDppLGF0dHJpYnV0ZXM6c319cmV0dXJuIG59ZnVuY3Rpb24gWmIodCl7bGV0IGU9dC5sZW5ndGgsbj0xKyh5dC5wYWNrZWRMZW5ndGgrMSkqZSxvPW5ldyBGbG9hdDMyQXJyYXkobikscj0wO29bcisrXT1lO2ZvcihsZXQgaT0wO2k8ZTsrK2kpe2xldCBzPXRbaV07aChzKT8ob1tyKytdPTEseXQucGFjayh0W2ldLG8scikpOm9bcisrXT0wLHIrPXl0LnBhY2tlZExlbmd0aH1yZXR1cm4gb31mdW5jdGlvbiBRYih0KXtsZXQgZT1uZXcgQXJyYXkodFswXSksbj0wLG89MTtmb3IoO288dC5sZW5ndGg7KXRbbysrXT09PTEmJihlW25dPXl0LnVucGFjayh0LG8pKSwrK24sbys9eXQucGFja2VkTGVuZ3RoO3JldHVybiBlfXZhciBOaSxjYSxZaD1aKCgpPT57UGUoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO1p0KCk7UmkoKTtYZSgpO1llKCk7YW4oKTtzaSgpOyRlKCk7a24oKTskYigpO2ljKCk7Tmk9e307TmkuY29tYmluZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlLG4sbz10Lmluc3RhbmNlcyxyPW8ubGVuZ3RoLGkscyxmPSExO3I+MCYmKGU9Y00odCksZS5sZW5ndGg+MCYmKG49QmUuY3JlYXRlQXR0cmlidXRlTG9jYXRpb25zKGVbMF0pLHQuY3JlYXRlUGlja09mZnNldHMmJihpPWFNKG8sZSkpKSxoKG9bMF0uYXR0cmlidXRlcykmJmgob1swXS5hdHRyaWJ1dGVzLm9mZnNldCkmJihzPW5ldyBBcnJheShyKSxmPSEwKSk7bGV0IHU9bmV3IEFycmF5KHIpLGM9bmV3IEFycmF5KHIpO2ZvcihsZXQgbD0wO2w8cjsrK2wpe2xldCBwPW9bbF0sZD1wLmdlb21ldHJ5O2goZCkmJih1W2xdPWQuYm91bmRpbmdTcGhlcmUsY1tsXT1kLmJvdW5kaW5nU3BoZXJlQ1YsZiYmKHNbbF09cC5nZW9tZXRyeS5vZmZzZXRBdHRyaWJ1dGUpKTtsZXQgbT1wLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnksXz1wLndlc3RIZW1pc3BoZXJlR2VvbWV0cnk7aChtKSYmaChfKSYmKGgobS5ib3VuZGluZ1NwaGVyZSkmJmgoXy5ib3VuZGluZ1NwaGVyZSkmJih1W2xdPXl0LnVuaW9uKG0uYm91bmRpbmdTcGhlcmUsXy5ib3VuZGluZ1NwaGVyZSkpLGgobS5ib3VuZGluZ1NwaGVyZUNWKSYmaChfLmJvdW5kaW5nU3BoZXJlQ1YpJiYoY1tsXT15dC51bmlvbihtLmJvdW5kaW5nU3BoZXJlQ1YsXy5ib3VuZGluZ1NwaGVyZUNWKSkpfXJldHVybntnZW9tZXRyaWVzOmUsbW9kZWxNYXRyaXg6dC5tb2RlbE1hdHJpeCxhdHRyaWJ1dGVMb2NhdGlvbnM6bixwaWNrT2Zmc2V0czppLG9mZnNldEluc3RhbmNlRXh0ZW5kOnMsYm91bmRpbmdTcGhlcmVzOnUsYm91bmRpbmdTcGhlcmVzQ1Y6Y319O05pLnBhY2tDcmVhdGVHZW9tZXRyeVJlc3VsdHM9ZnVuY3Rpb24odCxlKXtsZXQgbj1uZXcgRmxvYXQ2NEFycmF5KGxNKHQpKSxvPVtdLHI9e30saT10Lmxlbmd0aCxzPTA7bltzKytdPWk7Zm9yKGxldCBmPTA7ZjxpO2YrKyl7bGV0IHU9dFtmXSxjPWgodSk7aWYobltzKytdPWM/MTowLCFjKWNvbnRpbnVlO25bcysrXT11LnByaW1pdGl2ZVR5cGUsbltzKytdPXUuZ2VvbWV0cnlUeXBlLG5bcysrXT14KHUub2Zmc2V0QXR0cmlidXRlLC0xKTtsZXQgbD1oKHUuYm91bmRpbmdTcGhlcmUpPzE6MDtuW3MrK109bCxsJiZ5dC5wYWNrKHUuYm91bmRpbmdTcGhlcmUsbixzKSxzKz15dC5wYWNrZWRMZW5ndGg7bGV0IHA9aCh1LmJvdW5kaW5nU3BoZXJlQ1YpPzE6MDtuW3MrK109cCxwJiZ5dC5wYWNrKHUuYm91bmRpbmdTcGhlcmVDVixuLHMpLHMrPXl0LnBhY2tlZExlbmd0aDtsZXQgZD11LmF0dHJpYnV0ZXMsbT1bXTtmb3IobGV0IGcgaW4gZClkLmhhc093blByb3BlcnR5KGcpJiZoKGRbZ10pJiYobS5wdXNoKGcpLGgocltnXSl8fChyW2ddPW8ubGVuZ3RoLG8ucHVzaChnKSkpO25bcysrXT1tLmxlbmd0aDtmb3IobGV0IGc9MDtnPG0ubGVuZ3RoO2crKyl7bGV0IGI9bVtnXSxPPWRbYl07bltzKytdPXJbYl0sbltzKytdPU8uY29tcG9uZW50RGF0YXR5cGUsbltzKytdPU8uY29tcG9uZW50c1BlckF0dHJpYnV0ZSxuW3MrK109Ty5ub3JtYWxpemU/MTowLG5bcysrXT1PLnZhbHVlcy5sZW5ndGgsbi5zZXQoTy52YWx1ZXMscykscys9Ty52YWx1ZXMubGVuZ3RofWxldCBfPWgodS5pbmRpY2VzKT91LmluZGljZXMubGVuZ3RoOjA7bltzKytdPV8sXz4wJiYobi5zZXQodS5pbmRpY2VzLHMpLHMrPV8pfXJldHVybiBlLnB1c2gobi5idWZmZXIpLHtzdHJpbmdUYWJsZTpvLHBhY2tlZERhdGE6bn19O05pLnVucGFja0NyZWF0ZUdlb21ldHJ5UmVzdWx0cz1mdW5jdGlvbih0KXtsZXQgZT10LnN0cmluZ1RhYmxlLG49dC5wYWNrZWREYXRhLG8scj1uZXcgQXJyYXkoblswXSksaT0wLHM9MTtmb3IoO3M8bi5sZW5ndGg7KXtpZighKG5bcysrXT09PTEpKXtyW2krK109dm9pZCAwO2NvbnRpbnVlfWxldCB1PW5bcysrXSxjPW5bcysrXSxsPW5bcysrXTtsPT09LTEmJihsPXZvaWQgMCk7bGV0IHAsZDtuW3MrK109PT0xJiYocD15dC51bnBhY2sobixzKSkscys9eXQucGFja2VkTGVuZ3RoLG5bcysrXT09PTEmJihkPXl0LnVucGFjayhuLHMpKSxzKz15dC5wYWNrZWRMZW5ndGg7bGV0IGcsYixPLFQ9bmV3IHJlLEU9bltzKytdO2ZvcihvPTA7bzxFO28rKyl7bGV0IEM9ZVtuW3MrK11dLE49bltzKytdO089bltzKytdO2xldCBJPW5bcysrXSE9PTA7Zz1uW3MrK10sYj1vdC5jcmVhdGVUeXBlZEFycmF5KE4sZyk7Zm9yKGxldCBMPTA7TDxnO0wrKyliW0xdPW5bcysrXTtUW0NdPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6Tixjb21wb25lbnRzUGVyQXR0cmlidXRlOk8sbm9ybWFsaXplOkksdmFsdWVzOmJ9KX1sZXQgdztpZihnPW5bcysrXSxnPjApe2xldCBDPWIubGVuZ3RoL087Zm9yKHc9RHQuY3JlYXRlVHlwZWRBcnJheShDLGcpLG89MDtvPGc7bysrKXdbb109bltzKytdfXJbaSsrXT1uZXcgRnQoe3ByaW1pdGl2ZVR5cGU6dSxnZW9tZXRyeVR5cGU6Yyxib3VuZGluZ1NwaGVyZTpwLGJvdW5kaW5nU3BoZXJlQ1Y6ZCxpbmRpY2VzOncsYXR0cmlidXRlczpULG9mZnNldEF0dHJpYnV0ZTpsfSl9cmV0dXJuIHJ9O05pLnBhY2tDb21iaW5lR2VvbWV0cnlQYXJhbWV0ZXJzPWZ1bmN0aW9uKHQsZSl7bGV0IG49dC5jcmVhdGVHZW9tZXRyeVJlc3VsdHMsbz1uLmxlbmd0aDtmb3IobGV0IHI9MDtyPG87cisrKWUucHVzaChuW3JdLnBhY2tlZERhdGEuYnVmZmVyKTtyZXR1cm57Y3JlYXRlR2VvbWV0cnlSZXN1bHRzOnQuY3JlYXRlR2VvbWV0cnlSZXN1bHRzLHBhY2tlZEluc3RhbmNlczpwTSh0Lmluc3RhbmNlcyxlKSxlbGxpcHNvaWQ6dC5lbGxpcHNvaWQsaXNHZW9ncmFwaGljOnQucHJvamVjdGlvbiBpbnN0YW5jZW9mIFFuLGVsZW1lbnRJbmRleFVpbnRTdXBwb3J0ZWQ6dC5lbGVtZW50SW5kZXhVaW50U3VwcG9ydGVkLHNjZW5lM0RPbmx5OnQuc2NlbmUzRE9ubHksdmVydGV4Q2FjaGVPcHRpbWl6ZTp0LnZlcnRleENhY2hlT3B0aW1pemUsY29tcHJlc3NWZXJ0aWNlczp0LmNvbXByZXNzVmVydGljZXMsbW9kZWxNYXRyaXg6dC5tb2RlbE1hdHJpeCxjcmVhdGVQaWNrT2Zmc2V0czp0LmNyZWF0ZVBpY2tPZmZzZXRzfX07TmkudW5wYWNrQ29tYmluZUdlb21ldHJ5UGFyYW1ldGVycz1mdW5jdGlvbih0KXtsZXQgZT1kTSh0LnBhY2tlZEluc3RhbmNlcyksbj10LmNyZWF0ZUdlb21ldHJ5UmVzdWx0cyxvPW4ubGVuZ3RoLHI9MDtmb3IobGV0IGY9MDtmPG87ZisrKXtsZXQgdT1OaS51bnBhY2tDcmVhdGVHZW9tZXRyeVJlc3VsdHMobltmXSksYz11Lmxlbmd0aDtmb3IobGV0IGw9MDtsPGM7bCsrKXtsZXQgcD11W2xdLGQ9ZVtyXTtkLmdlb21ldHJ5PXAsKytyfX1sZXQgaT0kLmNsb25lKHQuZWxsaXBzb2lkKSxzPXQuaXNHZW9ncmFwaGljP25ldyBRbihpKTpuZXcgZW8oaSk7cmV0dXJue2luc3RhbmNlczplLGVsbGlwc29pZDppLHByb2plY3Rpb246cyxlbGVtZW50SW5kZXhVaW50U3VwcG9ydGVkOnQuZWxlbWVudEluZGV4VWludFN1cHBvcnRlZCxzY2VuZTNET25seTp0LnNjZW5lM0RPbmx5LHZlcnRleENhY2hlT3B0aW1pemU6dC52ZXJ0ZXhDYWNoZU9wdGltaXplLGNvbXByZXNzVmVydGljZXM6dC5jb21wcmVzc1ZlcnRpY2VzLG1vZGVsTWF0cml4OnN0LmNsb25lKHQubW9kZWxNYXRyaXgpLGNyZWF0ZVBpY2tPZmZzZXRzOnQuY3JlYXRlUGlja09mZnNldHN9fTtOaS5wYWNrQ29tYmluZUdlb21ldHJ5UmVzdWx0cz1mdW5jdGlvbih0LGUpe2godC5nZW9tZXRyaWVzKSYmdU0odC5nZW9tZXRyaWVzLGUpO2xldCBuPVpiKHQuYm91bmRpbmdTcGhlcmVzKSxvPVpiKHQuYm91bmRpbmdTcGhlcmVzQ1YpO3JldHVybiBlLnB1c2gobi5idWZmZXIsby5idWZmZXIpLHtnZW9tZXRyaWVzOnQuZ2VvbWV0cmllcyxhdHRyaWJ1dGVMb2NhdGlvbnM6dC5hdHRyaWJ1dGVMb2NhdGlvbnMsbW9kZWxNYXRyaXg6dC5tb2RlbE1hdHJpeCxwaWNrT2Zmc2V0czp0LnBpY2tPZmZzZXRzLG9mZnNldEluc3RhbmNlRXh0ZW5kOnQub2Zmc2V0SW5zdGFuY2VFeHRlbmQsYm91bmRpbmdTcGhlcmVzOm4sYm91bmRpbmdTcGhlcmVzQ1Y6b319O05pLnVucGFja0NvbWJpbmVHZW9tZXRyeVJlc3VsdHM9ZnVuY3Rpb24odCl7cmV0dXJue2dlb21ldHJpZXM6dC5nZW9tZXRyaWVzLGF0dHJpYnV0ZUxvY2F0aW9uczp0LmF0dHJpYnV0ZUxvY2F0aW9ucyxtb2RlbE1hdHJpeDp0Lm1vZGVsTWF0cml4LHBpY2tPZmZzZXRzOnQucGlja09mZnNldHMsb2Zmc2V0SW5zdGFuY2VFeHRlbmQ6dC5vZmZzZXRJbnN0YW5jZUV4dGVuZCxib3VuZGluZ1NwaGVyZXM6UWIodC5ib3VuZGluZ1NwaGVyZXMpLGJvdW5kaW5nU3BoZXJlc0NWOlFiKHQuYm91bmRpbmdTcGhlcmVzQ1YpfX07Y2E9Tml9KTtmdW5jdGlvbiBtTSh0KXtsZXQgZSxuPXQubmFtZSxvPXQubWVzc2FnZTtoKG4pJiZoKG8pP2U9YCR7bn06ICR7b31gOmU9dC50b1N0cmluZygpO2xldCByPXQuc3RhY2s7cmV0dXJuIGgocikmJihlKz1gCiR7cn1gKSxlfXZhciBKYix0dz1aKCgpPT57YXQoKTtKYj1tTX0pO3ZhciAkaD17fTttZSgkaCx7ZGVmYXVsdDooKT0+UWV9KTtmdW5jdGlvbiBoTSh0KXthc3luYyBmdW5jdGlvbiBlKHtkYXRhOm99KXtsZXQgcj1bXSxpPXtpZDpvLmlkLHJlc3VsdDp2b2lkIDAsZXJyb3I6dm9pZCAwfTtzZWxmLkNFU0lVTV9CQVNFX1VSTD1vLmJhc2VVcmw7dHJ5e2xldCBzPWF3YWl0IHQoby5wYXJhbWV0ZXJzLHIpO2kucmVzdWx0PXN9Y2F0Y2gocyl7cyBpbnN0YW5jZW9mIEVycm9yP2kuZXJyb3I9e25hbWU6cy5uYW1lLG1lc3NhZ2U6cy5tZXNzYWdlLHN0YWNrOnMuc3RhY2t9OmkuZXJyb3I9c31vLmNhblRyYW5zZmVyQXJyYXlCdWZmZXJ8fChyLmxlbmd0aD0wKTt0cnl7cG9zdE1lc3NhZ2UoaSxyKX1jYXRjaChzKXtpLnJlc3VsdD12b2lkIDAsaS5lcnJvcj1gcG9zdE1lc3NhZ2UgZmFpbGVkIHdpdGggZXJyb3I6ICR7SmIocyl9CiAgd2l0aCByZXNwb25zZU1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkoaSl9YCxwb3N0TWVzc2FnZShpKX19ZnVuY3Rpb24gbihvKXtwb3N0TWVzc2FnZSh7aWQ6by5kYXRhPy5pZCxlcnJvcjpgcG9zdE1lc3NhZ2UgZmFpbGVkIHdpdGggZXJyb3I6ICR7SlNPTi5zdHJpbmdpZnkobyl9YH0pfXJldHVybiBzZWxmLm9ubWVzc2FnZT1lLHNlbGYub25tZXNzYWdlZXJyb3I9bixzZWxmfXZhciBRZSxzbz1aKCgpPT57dHcoKTtRZT1oTX0pO3ZhciBaaD17fTttZShaaCx7ZGVmYXVsdDooKT0+eU19KTtmdW5jdGlvbiBfTSh0LGUpe2xldCBuPWNhLnVucGFja0NvbWJpbmVHZW9tZXRyeVBhcmFtZXRlcnModCksbz1jYS5jb21iaW5lR2VvbWV0cnkobik7cmV0dXJuIGNhLnBhY2tDb21iaW5lR2VvbWV0cnlSZXN1bHRzKG8sZSl9dmFyIHlNLFFoPVooKCk9PntZaCgpO3NvKCk7eU09UWUoX00pfSk7dmFyIGdNLGFlLEZvPVooKCk9PntnTT17Tk9ORTowLFRPUDoxLEFMTDoyfSxhZT1PYmplY3QuZnJlZXplKGdNKX0pO2Z1bmN0aW9uIEduKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx0aGlzLnBvc2l0aW9uPXgodC5wb3NpdGlvbiwhMSksdGhpcy5ub3JtYWw9eCh0Lm5vcm1hbCwhMSksdGhpcy5zdD14KHQuc3QsITEpLHRoaXMuYml0YW5nZW50PXgodC5iaXRhbmdlbnQsITEpLHRoaXMudGFuZ2VudD14KHQudGFuZ2VudCwhMSksdGhpcy5jb2xvcj14KHQuY29sb3IsITEpfXZhciBsdCxSbz1aKCgpPT57SXQoKTthdCgpO0h0KCk7R24uUE9TSVRJT05fT05MWT1PYmplY3QuZnJlZXplKG5ldyBHbih7cG9zaXRpb246ITB9KSk7R24uUE9TSVRJT05fQU5EX05PUk1BTD1PYmplY3QuZnJlZXplKG5ldyBHbih7cG9zaXRpb246ITAsbm9ybWFsOiEwfSkpO0duLlBPU0lUSU9OX05PUk1BTF9BTkRfU1Q9T2JqZWN0LmZyZWV6ZShuZXcgR24oe3Bvc2l0aW9uOiEwLG5vcm1hbDohMCxzdDohMH0pKTtHbi5QT1NJVElPTl9BTkRfU1Q9T2JqZWN0LmZyZWV6ZShuZXcgR24oe3Bvc2l0aW9uOiEwLHN0OiEwfSkpO0duLlBPU0lUSU9OX0FORF9DT0xPUj1PYmplY3QuZnJlZXplKG5ldyBHbih7cG9zaXRpb246ITAsY29sb3I6ITB9KSk7R24uQUxMPU9iamVjdC5mcmVlemUobmV3IEduKHtwb3NpdGlvbjohMCxub3JtYWw6ITAsc3Q6ITAsdGFuZ2VudDohMCxiaXRhbmdlbnQ6ITB9KSk7R24uREVGQVVMVD1Hbi5QT1NJVElPTl9OT1JNQUxfQU5EX1NUO0duLnBhY2tlZExlbmd0aD02O0duLnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO3JldHVybiBuPXgobiwwKSxlW24rK109dC5wb3NpdGlvbj8xOjAsZVtuKytdPXQubm9ybWFsPzE6MCxlW24rK109dC5zdD8xOjAsZVtuKytdPXQudGFuZ2VudD8xOjAsZVtuKytdPXQuYml0YW5nZW50PzE6MCxlW25dPXQuY29sb3I/MTowLGV9O0duLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImFycmF5IGlzIHJlcXVpcmVkIik7cmV0dXJuIGU9eChlLDApLGgobil8fChuPW5ldyBHbiksbi5wb3NpdGlvbj10W2UrK109PT0xLG4ubm9ybWFsPXRbZSsrXT09PTEsbi5zdD10W2UrK109PT0xLG4udGFuZ2VudD10W2UrK109PT0xLG4uYml0YW5nZW50PXRbZSsrXT09PTEsbi5jb2xvcj10W2VdPT09MSxufTtHbi5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSl8fChlPW5ldyBHbiksZS5wb3NpdGlvbj10LnBvc2l0aW9uLGUubm9ybWFsPXQubm9ybWFsLGUuc3Q9dC5zdCxlLnRhbmdlbnQ9dC50YW5nZW50LGUuYml0YW5nZW50PXQuYml0YW5nZW50LGUuY29sb3I9dC5jb2xvcixlfTtsdD1Hbn0pO2Z1bmN0aW9uIGlyKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10Lm1pbmltdW0sbj10Lm1heGltdW07aWYoeS50eXBlT2Yub2JqZWN0KCJtaW4iLGUpLHkudHlwZU9mLm9iamVjdCgibWF4IixuKSxoKHQub2Zmc2V0QXR0cmlidXRlKSYmdC5vZmZzZXRBdHRyaWJ1dGU9PT1hZS5UT1ApdGhyb3cgbmV3IEIoIkdlb21ldHJ5T2Zmc2V0QXR0cmlidXRlLlRPUCBpcyBub3QgYSBzdXBwb3J0ZWQgb3B0aW9ucy5vZmZzZXRBdHRyaWJ1dGUgZm9yIHRoaXMgZ2VvbWV0cnkuIik7bGV0IG89eCh0LnZlcnRleEZvcm1hdCxsdC5ERUZBVUxUKTt0aGlzLl9taW5pbXVtPWEuY2xvbmUoZSksdGhpcy5fbWF4aW11bT1hLmNsb25lKG4pLHRoaXMuX3ZlcnRleEZvcm1hdD1vLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVCb3hHZW9tZXRyeSJ9dmFyIEFNLG53LG93LHJ3LGV3LEpoLENmLHQwPVooKCk9PntQZSgpO1V0KCk7WXQoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO1hlKCk7WWUoKTthbigpO0ZvKCk7dG4oKTtSbygpO0FNPW5ldyBhO2lyLmZyb21EaW1lbnNpb25zPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LmRpbWVuc2lvbnM7eS50eXBlT2Yub2JqZWN0KCJkaW1lbnNpb25zIixlKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiZGltZW5zaW9ucy54IixlLngsMCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImRpbWVuc2lvbnMueSIsZS55LDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJkaW1lbnNpb25zLnoiLGUueiwwKTtsZXQgbj1hLm11bHRpcGx5QnlTY2FsYXIoZSwuNSxuZXcgYSk7cmV0dXJuIG5ldyBpcih7bWluaW11bTphLm5lZ2F0ZShuLG5ldyBhKSxtYXhpbXVtOm4sdmVydGV4Rm9ybWF0OnQudmVydGV4Rm9ybWF0LG9mZnNldEF0dHJpYnV0ZTp0Lm9mZnNldEF0dHJpYnV0ZX0pfTtpci5mcm9tQXhpc0FsaWduZWRCb3VuZGluZ0JveD1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJib3VuZGluZ0JveCIsdCksbmV3IGlyKHttaW5pbXVtOnQubWluaW11bSxtYXhpbXVtOnQubWF4aW11bX0pfTtpci5wYWNrZWRMZW5ndGg9MiphLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGgrMTtpci5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksYS5wYWNrKHQuX21pbmltdW0sZSxuKSxhLnBhY2sodC5fbWF4aW11bSxlLG4rYS5wYWNrZWRMZW5ndGgpLGx0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbisyKmEucGFja2VkTGVuZ3RoKSxlW24rMiphLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGhdPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlfTtudz1uZXcgYSxvdz1uZXcgYSxydz1uZXcgbHQsZXc9e21pbmltdW06bncsbWF4aW11bTpvdyx2ZXJ0ZXhGb3JtYXQ6cncsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07aXIudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz1hLnVucGFjayh0LGUsbncpLHI9YS51bnBhY2sodCxlK2EucGFja2VkTGVuZ3RoLG93KSxpPWx0LnVucGFjayh0LGUrMiphLnBhY2tlZExlbmd0aCxydykscz10W2UrMiphLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGhdO3JldHVybiBoKG4pPyhuLl9taW5pbXVtPWEuY2xvbmUobyxuLl9taW5pbXVtKSxuLl9tYXhpbXVtPWEuY2xvbmUocixuLl9tYXhpbXVtKSxuLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUoaSxuLl92ZXJ0ZXhGb3JtYXQpLG4uX29mZnNldEF0dHJpYnV0ZT1zPT09LTE/dm9pZCAwOnMsbik6KGV3Lm9mZnNldEF0dHJpYnV0ZT1zPT09LTE/dm9pZCAwOnMsbmV3IGlyKGV3KSl9O2lyLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX21pbmltdW0sbj10Ll9tYXhpbXVtLG89dC5fdmVydGV4Rm9ybWF0O2lmKGEuZXF1YWxzKGUsbikpcmV0dXJuO2xldCByPW5ldyByZSxpLHM7aWYoby5wb3NpdGlvbiYmKG8uc3R8fG8ubm9ybWFsfHxvLnRhbmdlbnR8fG8uYml0YW5nZW50KSl7aWYoby5wb3NpdGlvbiYmKHM9bmV3IEZsb2F0NjRBcnJheSg2KjQqMyksc1swXT1lLngsc1sxXT1lLnksc1syXT1uLnosc1szXT1uLngsc1s0XT1lLnksc1s1XT1uLnosc1s2XT1uLngsc1s3XT1uLnksc1s4XT1uLnosc1s5XT1lLngsc1sxMF09bi55LHNbMTFdPW4ueixzWzEyXT1lLngsc1sxM109ZS55LHNbMTRdPWUueixzWzE1XT1uLngsc1sxNl09ZS55LHNbMTddPWUueixzWzE4XT1uLngsc1sxOV09bi55LHNbMjBdPWUueixzWzIxXT1lLngsc1syMl09bi55LHNbMjNdPWUueixzWzI0XT1uLngsc1syNV09ZS55LHNbMjZdPWUueixzWzI3XT1uLngsc1syOF09bi55LHNbMjldPWUueixzWzMwXT1uLngsc1szMV09bi55LHNbMzJdPW4ueixzWzMzXT1uLngsc1szNF09ZS55LHNbMzVdPW4ueixzWzM2XT1lLngsc1szN109ZS55LHNbMzhdPWUueixzWzM5XT1lLngsc1s0MF09bi55LHNbNDFdPWUueixzWzQyXT1lLngsc1s0M109bi55LHNbNDRdPW4ueixzWzQ1XT1lLngsc1s0Nl09ZS55LHNbNDddPW4ueixzWzQ4XT1lLngsc1s0OV09bi55LHNbNTBdPWUueixzWzUxXT1uLngsc1s1Ml09bi55LHNbNTNdPWUueixzWzU0XT1uLngsc1s1NV09bi55LHNbNTZdPW4ueixzWzU3XT1lLngsc1s1OF09bi55LHNbNTldPW4ueixzWzYwXT1lLngsc1s2MV09ZS55LHNbNjJdPWUueixzWzYzXT1uLngsc1s2NF09ZS55LHNbNjVdPWUueixzWzY2XT1uLngsc1s2N109ZS55LHNbNjhdPW4ueixzWzY5XT1lLngsc1s3MF09ZS55LHNbNzFdPW4ueixyLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6c30pKSxvLm5vcm1hbCl7bGV0IGM9bmV3IEZsb2F0MzJBcnJheSg3Mik7Y1swXT0wLGNbMV09MCxjWzJdPTEsY1szXT0wLGNbNF09MCxjWzVdPTEsY1s2XT0wLGNbN109MCxjWzhdPTEsY1s5XT0wLGNbMTBdPTAsY1sxMV09MSxjWzEyXT0wLGNbMTNdPTAsY1sxNF09LTEsY1sxNV09MCxjWzE2XT0wLGNbMTddPS0xLGNbMThdPTAsY1sxOV09MCxjWzIwXT0tMSxjWzIxXT0wLGNbMjJdPTAsY1syM109LTEsY1syNF09MSxjWzI1XT0wLGNbMjZdPTAsY1syN109MSxjWzI4XT0wLGNbMjldPTAsY1szMF09MSxjWzMxXT0wLGNbMzJdPTAsY1szM109MSxjWzM0XT0wLGNbMzVdPTAsY1szNl09LTEsY1szN109MCxjWzM4XT0wLGNbMzldPS0xLGNbNDBdPTAsY1s0MV09MCxjWzQyXT0tMSxjWzQzXT0wLGNbNDRdPTAsY1s0NV09LTEsY1s0Nl09MCxjWzQ3XT0wLGNbNDhdPTAsY1s0OV09MSxjWzUwXT0wLGNbNTFdPTAsY1s1Ml09MSxjWzUzXT0wLGNbNTRdPTAsY1s1NV09MSxjWzU2XT0wLGNbNTddPTAsY1s1OF09MSxjWzU5XT0wLGNbNjBdPTAsY1s2MV09LTEsY1s2Ml09MCxjWzYzXT0wLGNbNjRdPS0xLGNbNjVdPTAsY1s2Nl09MCxjWzY3XT0tMSxjWzY4XT0wLGNbNjldPTAsY1s3MF09LTEsY1s3MV09MCxyLm5vcm1hbD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Y30pfWlmKG8uc3Qpe2xldCBjPW5ldyBGbG9hdDMyQXJyYXkoNDgpO2NbMF09MCxjWzFdPTAsY1syXT0xLGNbM109MCxjWzRdPTEsY1s1XT0xLGNbNl09MCxjWzddPTEsY1s4XT0xLGNbOV09MCxjWzEwXT0wLGNbMTFdPTAsY1sxMl09MCxjWzEzXT0xLGNbMTRdPTEsY1sxNV09MSxjWzE2XT0wLGNbMTddPTAsY1sxOF09MSxjWzE5XT0wLGNbMjBdPTEsY1syMV09MSxjWzIyXT0wLGNbMjNdPTEsY1syNF09MSxjWzI1XT0wLGNbMjZdPTAsY1syN109MCxjWzI4XT0wLGNbMjldPTEsY1szMF09MSxjWzMxXT0xLGNbMzJdPTEsY1szM109MCxjWzM0XT0wLGNbMzVdPTAsY1szNl09MCxjWzM3XT0xLGNbMzhdPTEsY1szOV09MSxjWzQwXT0wLGNbNDFdPTAsY1s0Ml09MSxjWzQzXT0wLGNbNDRdPTEsY1s0NV09MSxjWzQ2XT0wLGNbNDddPTEsci5zdD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6Y30pfWlmKG8udGFuZ2VudCl7bGV0IGM9bmV3IEZsb2F0MzJBcnJheSg3Mik7Y1swXT0xLGNbMV09MCxjWzJdPTAsY1szXT0xLGNbNF09MCxjWzVdPTAsY1s2XT0xLGNbN109MCxjWzhdPTAsY1s5XT0xLGNbMTBdPTAsY1sxMV09MCxjWzEyXT0tMSxjWzEzXT0wLGNbMTRdPTAsY1sxNV09LTEsY1sxNl09MCxjWzE3XT0wLGNbMThdPS0xLGNbMTldPTAsY1syMF09MCxjWzIxXT0tMSxjWzIyXT0wLGNbMjNdPTAsY1syNF09MCxjWzI1XT0xLGNbMjZdPTAsY1syN109MCxjWzI4XT0xLGNbMjldPTAsY1szMF09MCxjWzMxXT0xLGNbMzJdPTAsY1szM109MCxjWzM0XT0xLGNbMzVdPTAsY1szNl09MCxjWzM3XT0tMSxjWzM4XT0wLGNbMzldPTAsY1s0MF09LTEsY1s0MV09MCxjWzQyXT0wLGNbNDNdPS0xLGNbNDRdPTAsY1s0NV09MCxjWzQ2XT0tMSxjWzQ3XT0wLGNbNDhdPS0xLGNbNDldPTAsY1s1MF09MCxjWzUxXT0tMSxjWzUyXT0wLGNbNTNdPTAsY1s1NF09LTEsY1s1NV09MCxjWzU2XT0wLGNbNTddPS0xLGNbNThdPTAsY1s1OV09MCxjWzYwXT0xLGNbNjFdPTAsY1s2Ml09MCxjWzYzXT0xLGNbNjRdPTAsY1s2NV09MCxjWzY2XT0xLGNbNjddPTAsY1s2OF09MCxjWzY5XT0xLGNbNzBdPTAsY1s3MV09MCxyLnRhbmdlbnQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX1pZihvLmJpdGFuZ2VudCl7bGV0IGM9bmV3IEZsb2F0MzJBcnJheSg3Mik7Y1swXT0wLGNbMV09MSxjWzJdPTAsY1szXT0wLGNbNF09MSxjWzVdPTAsY1s2XT0wLGNbN109MSxjWzhdPTAsY1s5XT0wLGNbMTBdPTEsY1sxMV09MCxjWzEyXT0wLGNbMTNdPTEsY1sxNF09MCxjWzE1XT0wLGNbMTZdPTEsY1sxN109MCxjWzE4XT0wLGNbMTldPTEsY1syMF09MCxjWzIxXT0wLGNbMjJdPTEsY1syM109MCxjWzI0XT0wLGNbMjVdPTAsY1syNl09MSxjWzI3XT0wLGNbMjhdPTAsY1syOV09MSxjWzMwXT0wLGNbMzFdPTAsY1szMl09MSxjWzMzXT0wLGNbMzRdPTAsY1szNV09MSxjWzM2XT0wLGNbMzddPTAsY1szOF09MSxjWzM5XT0wLGNbNDBdPTAsY1s0MV09MSxjWzQyXT0wLGNbNDNdPTAsY1s0NF09MSxjWzQ1XT0wLGNbNDZdPTAsY1s0N109MSxjWzQ4XT0wLGNbNDldPTAsY1s1MF09MSxjWzUxXT0wLGNbNTJdPTAsY1s1M109MSxjWzU0XT0wLGNbNTVdPTAsY1s1Nl09MSxjWzU3XT0wLGNbNThdPTAsY1s1OV09MSxjWzYwXT0wLGNbNjFdPTAsY1s2Ml09MSxjWzYzXT0wLGNbNjRdPTAsY1s2NV09MSxjWzY2XT0wLGNbNjddPTAsY1s2OF09MSxjWzY5XT0wLGNbNzBdPTAsY1s3MV09MSxyLmJpdGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Y30pfWk9bmV3IFVpbnQxNkFycmF5KDYqMiozKSxpWzBdPTAsaVsxXT0xLGlbMl09MixpWzNdPTAsaVs0XT0yLGlbNV09MyxpWzZdPTQrMixpWzddPTQrMSxpWzhdPTQrMCxpWzldPTQrMyxpWzEwXT00KzIsaVsxMV09NCswLGlbMTJdPTgrMCxpWzEzXT04KzEsaVsxNF09OCsyLGlbMTVdPTgrMCxpWzE2XT04KzIsaVsxN109OCszLGlbMThdPTEyKzIsaVsxOV09MTIrMSxpWzIwXT0xMiswLGlbMjFdPTEyKzMsaVsyMl09MTIrMixpWzIzXT0xMiswLGlbMjRdPTE2KzIsaVsyNV09MTYrMSxpWzI2XT0xNiswLGlbMjddPTE2KzMsaVsyOF09MTYrMixpWzI5XT0xNiswLGlbMzBdPTIwKzAsaVszMV09MjArMSxpWzMyXT0yMCsyLGlbMzNdPTIwKzAsaVszNF09MjArMixpWzM1XT0yMCszfWVsc2Ugcz1uZXcgRmxvYXQ2NEFycmF5KDgqMyksc1swXT1lLngsc1sxXT1lLnksc1syXT1lLnosc1szXT1uLngsc1s0XT1lLnksc1s1XT1lLnosc1s2XT1uLngsc1s3XT1uLnksc1s4XT1lLnosc1s5XT1lLngsc1sxMF09bi55LHNbMTFdPWUueixzWzEyXT1lLngsc1sxM109ZS55LHNbMTRdPW4ueixzWzE1XT1uLngsc1sxNl09ZS55LHNbMTddPW4ueixzWzE4XT1uLngsc1sxOV09bi55LHNbMjBdPW4ueixzWzIxXT1lLngsc1syMl09bi55LHNbMjNdPW4ueixyLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6c30pLGk9bmV3IFVpbnQxNkFycmF5KDYqMiozKSxpWzBdPTQsaVsxXT01LGlbMl09NixpWzNdPTQsaVs0XT02LGlbNV09NyxpWzZdPTEsaVs3XT0wLGlbOF09MyxpWzldPTEsaVsxMF09MyxpWzExXT0yLGlbMTJdPTEsaVsxM109NixpWzE0XT01LGlbMTVdPTEsaVsxNl09MixpWzE3XT02LGlbMThdPTIsaVsxOV09MyxpWzIwXT03LGlbMjFdPTIsaVsyMl09NyxpWzIzXT02LGlbMjRdPTMsaVsyNV09MCxpWzI2XT00LGlbMjddPTMsaVsyOF09NCxpWzI5XT03LGlbMzBdPTAsaVszMV09MSxpWzMyXT01LGlbMzNdPTAsaVszNF09NSxpWzM1XT00O2xldCBmPWEuc3VidHJhY3QobixlLEFNKSx1PWEubWFnbml0dWRlKGYpKi41O2lmKGgodC5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IGM9cy5sZW5ndGgsbD10Ll9vZmZzZXRBdHRyaWJ1dGU9PT1hZS5OT05FPzA6MSxwPW5ldyBVaW50OEFycmF5KGMvMykuZmlsbChsKTtyLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnB9KX1yZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOnIsaW5kaWNlczppLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOm5ldyB5dChhLlpFUk8sdSksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtpci5nZXRVbml0Qm94PWZ1bmN0aW9uKCl7cmV0dXJuIGgoSmgpfHwoSmg9aXIuY3JlYXRlR2VvbWV0cnkoaXIuZnJvbURpbWVuc2lvbnMoe2RpbWVuc2lvbnM6bmV3IGEoMSwxLDEpLHZlcnRleEZvcm1hdDpsdC5QT1NJVElPTl9PTkxZfSkpKSxKaH07Q2Y9aXJ9KTt2YXIgZTA9e307bWUoZTAse2RlZmF1bHQ6KCk9PndNfSk7ZnVuY3Rpb24gYk0odCxlKXtyZXR1cm4gaChlKSYmKHQ9Q2YudW5wYWNrKHQsZSkpLENmLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciB3TSxuMD1aKCgpPT57dDAoKTthdCgpO3dNPWJNfSk7ZnVuY3Rpb24gY2kodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQubWluaW11bSxuPXQubWF4aW11bTtpZih5LnR5cGVPZi5vYmplY3QoIm1pbiIsZSkseS50eXBlT2Yub2JqZWN0KCJtYXgiLG4pLGgodC5vZmZzZXRBdHRyaWJ1dGUpJiZ0Lm9mZnNldEF0dHJpYnV0ZT09PWFlLlRPUCl0aHJvdyBuZXcgQigiR2VvbWV0cnlPZmZzZXRBdHRyaWJ1dGUuVE9QIGlzIG5vdCBhIHN1cHBvcnRlZCBvcHRpb25zLm9mZnNldEF0dHJpYnV0ZSBmb3IgdGhpcyBnZW9tZXRyeS4iKTt0aGlzLl9taW49YS5jbG9uZShlKSx0aGlzLl9tYXg9YS5jbG9uZShuKSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQm94T3V0bGluZUdlb21ldHJ5In12YXIgVE0sc3csY3csaXcsbzAsYXc9WigoKT0+e1BlKCk7VXQoKTtZdCgpO0RlKCk7SXQoKTthdCgpO0h0KCk7WGUoKTtZZSgpO2FuKCk7Rm8oKTt0bigpO1RNPW5ldyBhO2NpLmZyb21EaW1lbnNpb25zPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LmRpbWVuc2lvbnM7eS50eXBlT2Yub2JqZWN0KCJkaW1lbnNpb25zIixlKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiZGltZW5zaW9ucy54IixlLngsMCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImRpbWVuc2lvbnMueSIsZS55LDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJkaW1lbnNpb25zLnoiLGUueiwwKTtsZXQgbj1hLm11bHRpcGx5QnlTY2FsYXIoZSwuNSxuZXcgYSk7cmV0dXJuIG5ldyBjaSh7bWluaW11bTphLm5lZ2F0ZShuLG5ldyBhKSxtYXhpbXVtOm4sb2Zmc2V0QXR0cmlidXRlOnQub2Zmc2V0QXR0cmlidXRlfSl9O2NpLmZyb21BeGlzQWxpZ25lZEJvdW5kaW5nQm94PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImJvdW5kaW5kQm94Iix0KSxuZXcgY2koe21pbmltdW06dC5taW5pbXVtLG1heGltdW06dC5tYXhpbXVtfSl9O2NpLnBhY2tlZExlbmd0aD0yKmEucGFja2VkTGVuZ3RoKzE7Y2kucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGEucGFjayh0Ll9taW4sZSxuKSxhLnBhY2sodC5fbWF4LGUsbithLnBhY2tlZExlbmd0aCksZVtuK2EucGFja2VkTGVuZ3RoKjJdPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlfTtzdz1uZXcgYSxjdz1uZXcgYSxpdz17bWluaW11bTpzdyxtYXhpbXVtOmN3LG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O2NpLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89YS51bnBhY2sodCxlLHN3KSxyPWEudW5wYWNrKHQsZSthLnBhY2tlZExlbmd0aCxjdyksaT10W2UrYS5wYWNrZWRMZW5ndGgqMl07cmV0dXJuIGgobik/KG4uX21pbj1hLmNsb25lKG8sbi5fbWluKSxuLl9tYXg9YS5jbG9uZShyLG4uX21heCksbi5fb2Zmc2V0QXR0cmlidXRlPWk9PT0tMT92b2lkIDA6aSxuKTooaXcub2Zmc2V0QXR0cmlidXRlPWk9PT0tMT92b2lkIDA6aSxuZXcgY2koaXcpKX07Y2kuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fbWluLG49dC5fbWF4O2lmKGEuZXF1YWxzKGUsbikpcmV0dXJuO2xldCBvPW5ldyByZSxyPW5ldyBVaW50MTZBcnJheSgxMioyKSxpPW5ldyBGbG9hdDY0QXJyYXkoOCozKTtpWzBdPWUueCxpWzFdPWUueSxpWzJdPWUueixpWzNdPW4ueCxpWzRdPWUueSxpWzVdPWUueixpWzZdPW4ueCxpWzddPW4ueSxpWzhdPWUueixpWzldPWUueCxpWzEwXT1uLnksaVsxMV09ZS56LGlbMTJdPWUueCxpWzEzXT1lLnksaVsxNF09bi56LGlbMTVdPW4ueCxpWzE2XT1lLnksaVsxN109bi56LGlbMThdPW4ueCxpWzE5XT1uLnksaVsyMF09bi56LGlbMjFdPWUueCxpWzIyXT1uLnksaVsyM109bi56LG8ucG9zaXRpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczppfSksclswXT00LHJbMV09NSxyWzJdPTUsclszXT02LHJbNF09NixyWzVdPTcscls2XT03LHJbN109NCxyWzhdPTAscls5XT0xLHJbMTBdPTEsclsxMV09MixyWzEyXT0yLHJbMTNdPTMsclsxNF09MyxyWzE1XT0wLHJbMTZdPTAsclsxN109NCxyWzE4XT0xLHJbMTldPTUsclsyMF09MixyWzIxXT02LHJbMjJdPTMsclsyM109NztsZXQgcz1hLnN1YnRyYWN0KG4sZSxUTSksZj1hLm1hZ25pdHVkZShzKSouNTtpZihoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCB1PWkubGVuZ3RoLGM9dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjEsbD1uZXcgVWludDhBcnJheSh1LzMpLmZpbGwoYyk7by5hcHBseU9mZnNldD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpsfSl9cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpvLGluZGljZXM6cixwcmltaXRpdmVUeXBlOkx0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOm5ldyB5dChhLlpFUk8sZiksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtvMD1jaX0pO3ZhciByMD17fTttZShyMCx7ZGVmYXVsdDooKT0+RU19KTtmdW5jdGlvbiBPTSh0LGUpe3JldHVybiBoKGUpJiYodD1vMC51bnBhY2sodCxlKSksbzAuY3JlYXRlR2VvbWV0cnkodCl9dmFyIEVNLGkwPVooKCk9PnthdygpO2F0KCk7RU09T019KTtmdW5jdGlvbiBhYSh0LGUsbixvLHIsaSxzLGYsdSxjKXtsZXQgbD10K2U7YS5tdWx0aXBseUJ5U2NhbGFyKG8sTWF0aC5jb3MobCkscXApLGEubXVsdGlwbHlCeVNjYWxhcihuLE1hdGguc2luKGwpLGZ3KSxhLmFkZChxcCxmdyxxcCk7bGV0IHA9TWF0aC5jb3ModCk7cD1wKnA7bGV0IGQ9TWF0aC5zaW4odCk7ZD1kKmQ7bGV0IF89aS9NYXRoLnNxcnQocypwK3IqZCkvZjtyZXR1cm4gbmUuZnJvbUF4aXNBbmdsZShxcCxfLHV3KSx0dC5mcm9tUXVhdGVybmlvbih1dyxsdyksdHQubXVsdGlwbHlCeVZlY3Rvcihsdyx1LGMpLGEubm9ybWFsaXplKGMsYyksYS5tdWx0aXBseUJ5U2NhbGFyKGMsZixjKSxjfXZhciBjMCxxcCxmdyx1dyxsdyxwdyxkdyxzMCxSTSxTTSxDTSx4TSxrcixhMD1aKCgpPT57VXQoKTtXdCgpO0ZuKCk7JG8oKTtjMD17fSxxcD1uZXcgYSxmdz1uZXcgYSx1dz1uZXcgbmUsbHc9bmV3IHR0O3B3PW5ldyBhLGR3PW5ldyBhLHMwPW5ldyBhLFJNPW5ldyBhO2MwLnJhaXNlUG9zaXRpb25zVG9IZWlnaHQ9ZnVuY3Rpb24odCxlLG4pe2xldCBvPWUuZWxsaXBzb2lkLHI9ZS5oZWlnaHQsaT1lLmV4dHJ1ZGVkSGVpZ2h0LHM9bj90Lmxlbmd0aC8zKjI6dC5sZW5ndGgvMyxmPW5ldyBGbG9hdDY0QXJyYXkocyozKSx1PXQubGVuZ3RoLGM9bj91OjA7Zm9yKGxldCBsPTA7bDx1O2wrPTMpe2xldCBwPWwrMSxkPWwrMixtPWEuZnJvbUFycmF5KHQsbCxwdyk7by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKG0sbSk7bGV0IF89YS5jbG9uZShtLGR3KSxnPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKG0sUk0pLGI9YS5tdWx0aXBseUJ5U2NhbGFyKGcscixzMCk7YS5hZGQobSxiLG0pLG4mJihhLm11bHRpcGx5QnlTY2FsYXIoZyxpLGIpLGEuYWRkKF8sYixfKSxmW2wrY109Xy54LGZbcCtjXT1fLnksZltkK2NdPV8ueiksZltsXT1tLngsZltwXT1tLnksZltkXT1tLnp9cmV0dXJuIGZ9O1NNPW5ldyBhLENNPW5ldyBhLHhNPW5ldyBhO2MwLmNvbXB1dGVFbGxpcHNlUG9zaXRpb25zPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10LnNlbWlNaW5vckF4aXMscj10LnNlbWlNYWpvckF4aXMsaT10LnJvdGF0aW9uLHM9dC5jZW50ZXIsZj10LmdyYW51bGFyaXR5KjgsdT1vKm8sYz1yKnIsbD1yKm8scD1hLm1hZ25pdHVkZShzKSxkPWEubm9ybWFsaXplKHMsU00pLG09YS5jcm9zcyhhLlVOSVRfWixzLENNKTttPWEubm9ybWFsaXplKG0sbSk7bGV0IF89YS5jcm9zcyhkLG0seE0pLGc9MStNYXRoLmNlaWwoTS5QSV9PVkVSX1RXTy9mKSxiPU0uUElfT1ZFUl9UV08vKGctMSksTz1NLlBJX09WRVJfVFdPLWcqYjtPPDAmJihnLT1NYXRoLmNlaWwoTWF0aC5hYnMoTykvYikpO2xldCBUPTIqKGcqKGcrMikpLEU9ZT9uZXcgQXJyYXkoVCozKTp2b2lkIDAsdz0wLEM9cHcsTj1kdyxJPWcqNCozLEw9SS0xLHY9MCxEPW4/bmV3IEFycmF5KEkpOnZvaWQgMCxVLEEsUyxQLEY7Zm9yKE89TS5QSV9PVkVSX1RXTyxDPWFhKE8saSxfLG0sdSxsLGMscCxkLEMpLGUmJihFW3crK109Qy54LEVbdysrXT1DLnksRVt3KytdPUMueiksbiYmKERbTC0tXT1DLnosRFtMLS1dPUMueSxEW0wtLV09Qy54KSxPPU0uUElfT1ZFUl9UV08tYixVPTE7VTxnKzE7KytVKXtpZihDPWFhKE8saSxfLG0sdSxsLGMscCxkLEMpLE49YWEoTWF0aC5QSS1PLGksXyxtLHUsbCxjLHAsZCxOKSxlKXtmb3IoRVt3KytdPUMueCxFW3crK109Qy55LEVbdysrXT1DLnosUz0yKlUrMixBPTE7QTxTLTE7KytBKVA9QS8oUy0xKSxGPWEubGVycChDLE4sUCxzMCksRVt3KytdPUYueCxFW3crK109Ri55LEVbdysrXT1GLno7RVt3KytdPU4ueCxFW3crK109Ti55LEVbdysrXT1OLnp9biYmKERbTC0tXT1DLnosRFtMLS1dPUMueSxEW0wtLV09Qy54LERbdisrXT1OLngsRFt2KytdPU4ueSxEW3YrK109Ti56KSxPPU0uUElfT1ZFUl9UV08tKFUrMSkqYn1mb3IoVT1nO1U+MTstLVUpe2lmKE89TS5QSV9PVkVSX1RXTy0oVS0xKSpiLEM9YWEoLU8saSxfLG0sdSxsLGMscCxkLEMpLE49YWEoTytNYXRoLlBJLGksXyxtLHUsbCxjLHAsZCxOKSxlKXtmb3IoRVt3KytdPUMueCxFW3crK109Qy55LEVbdysrXT1DLnosUz0yKihVLTEpKzIsQT0xO0E8Uy0xOysrQSlQPUEvKFMtMSksRj1hLmxlcnAoQyxOLFAsczApLEVbdysrXT1GLngsRVt3KytdPUYueSxFW3crK109Ri56O0VbdysrXT1OLngsRVt3KytdPU4ueSxFW3crK109Ti56fW4mJihEW0wtLV09Qy56LERbTC0tXT1DLnksRFtMLS1dPUMueCxEW3YrK109Ti54LERbdisrXT1OLnksRFt2KytdPU4ueil9Tz1NLlBJX09WRVJfVFdPLEM9YWEoLU8saSxfLG0sdSxsLGMscCxkLEMpO2xldCBqPXt9O3JldHVybiBlJiYoRVt3KytdPUMueCxFW3crK109Qy55LEVbdysrXT1DLnosai5wb3NpdGlvbnM9RSxqLm51bVB0cz1nKSxuJiYoRFtMLS1dPUMueixEW0wtLV09Qy55LERbTC0tXT1DLngsai5vdXRlclBvc2l0aW9ucz1EKSxqfTtrcj1jMH0pO2Z1bmN0aW9uIFBNKHQpe2lmKHQ9eCh0LHguRU1QVFlfT0JKRUNUKSwhaCh0Lmdlb21ldHJ5KSl0aHJvdyBuZXcgQigib3B0aW9ucy5nZW9tZXRyeSBpcyByZXF1aXJlZC4iKTt0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpcy5tb2RlbE1hdHJpeD1zdC5jbG9uZSh4KHQubW9kZWxNYXRyaXgsc3QuSURFTlRJVFkpKSx0aGlzLmlkPXQuaWQsdGhpcy5waWNrUHJpbWl0aXZlPXQucGlja1ByaW1pdGl2ZSx0aGlzLmF0dHJpYnV0ZXM9eCh0LmF0dHJpYnV0ZXMse30pLHRoaXMud2VzdEhlbWlzcGhlcmVHZW9tZXRyeT12b2lkIDAsdGhpcy5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5PXZvaWQgMH12YXIgY28sc2M9WigoKT0+e0l0KCk7YXQoKTtIdCgpO2tuKCk7Y289UE19KTtmdW5jdGlvbiBUdyh0LGUsbil7bGV0IG89ZS52ZXJ0ZXhGb3JtYXQscj1lLmNlbnRlcixpPWUuc2VtaU1ham9yQXhpcyxzPWUuc2VtaU1pbm9yQXhpcyxmPWUuZWxsaXBzb2lkLHU9ZS5zdFJvdGF0aW9uLGM9bj90Lmxlbmd0aC8zKjI6dC5sZW5ndGgvMyxsPWUuc2hhZG93Vm9sdW1lLHA9by5zdD9uZXcgRmxvYXQzMkFycmF5KGMqMik6dm9pZCAwLGQ9by5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShjKjMpOnZvaWQgMCxtPW8udGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGMqMyk6dm9pZCAwLF89by5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShjKjMpOnZvaWQgMCxnPWw/bmV3IEZsb2F0MzJBcnJheShjKjMpOnZvaWQgMCxiPTAsTz1fdyxUPXl3LEU9Z3csdz1uZXcgUW4oZiksQz13LnByb2plY3QoZi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhyLFhwKSxBdyksTj1mLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UocixmYSk7Zi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoTixOKTtsZXQgST1odyxMPU1NO2lmKHUhPT0wKXtsZXQgRj1uZS5mcm9tQXhpc0FuZ2xlKE4sdSxsMCk7ST10dC5mcm9tUXVhdGVybmlvbihGLEkpLEY9bmUuZnJvbUF4aXNBbmdsZShOLC11LGwwKSxMPXR0LmZyb21RdWF0ZXJuaW9uKEYsTCl9ZWxzZSBJPXR0LmNsb25lKHR0LklERU5USVRZLEkpLEw9dHQuY2xvbmUodHQuSURFTlRJVFksTCk7bGV0IHY9bnQuZnJvbUVsZW1lbnRzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksYncpLEQ9bnQuZnJvbUVsZW1lbnRzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksd3cpLFU9dC5sZW5ndGgsQT1uP1U6MCxTPUEvMyoyO2ZvcihsZXQgRj0wO0Y8VTtGKz0zKXtsZXQgaj1GKzEsSD1GKzIsaz1hLmZyb21BcnJheSh0LEYsZmEpO2lmKG8uc3Qpe2xldCBLPXR0Lm11bHRpcGx5QnlWZWN0b3IoSSxrLGYwKSxYPXcucHJvamVjdChmLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKEssWHApLHUwKTthLnN1YnRyYWN0KFgsQyxYKSxZbi54PShYLngraSkvKDIqaSksWW4ueT0oWC55K3MpLygyKnMpLHYueD1NYXRoLm1pbihZbi54LHYueCksdi55PU1hdGgubWluKFluLnksdi55KSxELng9TWF0aC5tYXgoWW4ueCxELngpLEQueT1NYXRoLm1heChZbi55LEQueSksbiYmKHBbYitTXT1Zbi54LHBbYisxK1NdPVluLnkpLHBbYisrXT1Zbi54LHBbYisrXT1Zbi55fShvLm5vcm1hbHx8by50YW5nZW50fHxvLmJpdGFuZ2VudHx8bCkmJihPPWYuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGssTyksbCYmKGdbRitBXT0tTy54LGdbaitBXT0tTy55LGdbSCtBXT0tTy56KSwoby5ub3JtYWx8fG8udGFuZ2VudHx8by5iaXRhbmdlbnQpJiYoKG8udGFuZ2VudHx8by5iaXRhbmdlbnQpJiYoVD1hLm5vcm1hbGl6ZShhLmNyb3NzKGEuVU5JVF9aLE8sVCksVCksdHQubXVsdGlwbHlCeVZlY3RvcihMLFQsVCkpLG8ubm9ybWFsJiYoZFtGXT1PLngsZFtqXT1PLnksZFtIXT1PLnosbiYmKGRbRitBXT0tTy54LGRbaitBXT0tTy55LGRbSCtBXT0tTy56KSksby50YW5nZW50JiYobVtGXT1ULngsbVtqXT1ULnksbVtIXT1ULnosbiYmKG1bRitBXT0tVC54LG1baitBXT0tVC55LG1bSCtBXT0tVC56KSksby5iaXRhbmdlbnQmJihFPWEubm9ybWFsaXplKGEuY3Jvc3MoTyxULEUpLEUpLF9bRl09RS54LF9bal09RS55LF9bSF09RS56LG4mJihfW0YrQV09RS54LF9baitBXT1FLnksX1tIK0FdPUUueikpKSl9aWYoby5zdCl7VT1wLmxlbmd0aDtmb3IobGV0IEY9MDtGPFU7Ris9MilwW0ZdPShwW0ZdLXYueCkvKEQueC12LngpLHBbRisxXT0ocFtGKzFdLXYueSkvKEQueS12LnkpfWxldCBQPW5ldyByZTtpZihvLnBvc2l0aW9uKXtsZXQgRj1rci5yYWlzZVBvc2l0aW9uc1RvSGVpZ2h0KHQsZSxuKTtQLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Rn0pfWlmKG8uc3QmJihQLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpwfSkpLG8ubm9ybWFsJiYoUC5ub3JtYWw9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmR9KSksby50YW5nZW50JiYoUC50YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczptfSkpLG8uYml0YW5nZW50JiYoUC5iaXRhbmdlbnQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOl99KSksbCYmKFAuZXh0cnVkZURpcmVjdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Z30pKSxuJiZoKGUub2Zmc2V0QXR0cmlidXRlKSl7bGV0IEY9bmV3IFVpbnQ4QXJyYXkoYyk7aWYoZS5vZmZzZXRBdHRyaWJ1dGU9PT1hZS5UT1ApRj1GLmZpbGwoMSwwLGMvMik7ZWxzZXtsZXQgaj1lLm9mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxO0Y9Ri5maWxsKGopfVAuYXBwbHlPZmZzZXQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6Rn0pfXJldHVybiBQfWZ1bmN0aW9uIE93KHQpe2xldCBlPW5ldyBBcnJheSgxMioodCoodCsxKSktNiksbj0wLG8scixpLHMsZjtmb3Iobz0wLGk9MSxzPTA7czwzO3MrKyllW24rK109aSsrLGVbbisrXT1vLGVbbisrXT1pO2ZvcihzPTI7czx0KzE7KytzKXtmb3IoaT1zKihzKzEpLTEsbz0ocy0xKSpzLTEsZVtuKytdPWkrKyxlW24rK109byxlW24rK109aSxyPTIqcyxmPTA7ZjxyLTE7KytmKWVbbisrXT1pLGVbbisrXT1vKyssZVtuKytdPW8sZVtuKytdPWkrKyxlW24rK109byxlW24rK109aTtlW24rK109aSsrLGVbbisrXT1vLGVbbisrXT1pfWZvcihyPXQqMiwrK2ksKytvLHM9MDtzPHItMTsrK3MpZVtuKytdPWksZVtuKytdPW8rKyxlW24rK109byxlW24rK109aSsrLGVbbisrXT1vLGVbbisrXT1pO2ZvcihlW24rK109aSxlW24rK109bysrLGVbbisrXT1vLGVbbisrXT1pKyssZVtuKytdPW8rKyxlW24rK109bywrK28scz10LTE7cz4xOy0tcyl7Zm9yKGVbbisrXT1vKyssZVtuKytdPW8sZVtuKytdPWkscj0yKnMsZj0wO2Y8ci0xOysrZillW24rK109aSxlW24rK109bysrLGVbbisrXT1vLGVbbisrXT1pKyssZVtuKytdPW8sZVtuKytdPWk7ZVtuKytdPW8rKyxlW24rK109bysrLGVbbisrXT1pKyt9Zm9yKHM9MDtzPDM7cysrKWVbbisrXT1vKyssZVtuKytdPW8sZVtuKytdPWk7cmV0dXJuIGV9ZnVuY3Rpb24gTk0odCl7bGV0IGU9dC5jZW50ZXI7Y2M9YS5tdWx0aXBseUJ5U2NhbGFyKHQuZWxsaXBzb2lkLmdlb2RldGljU3VyZmFjZU5vcm1hbChlLGNjKSx0LmhlaWdodCxjYyksY2M9YS5hZGQoZSxjYyxjYyk7bGV0IG49bmV3IHl0KGNjLHQuc2VtaU1ham9yQXhpcyksbz1rci5jb21wdXRlRWxsaXBzZVBvc2l0aW9ucyh0LCEwLCExKSxyPW8ucG9zaXRpb25zLGk9by5udW1QdHMscz1UdyhyLHQsITEpLGY9T3coaSk7cmV0dXJuIGY9RHQuY3JlYXRlVHlwZWRBcnJheShyLmxlbmd0aC8zLGYpLHtib3VuZGluZ1NwaGVyZTpuLGF0dHJpYnV0ZXM6cyxpbmRpY2VzOmZ9fWZ1bmN0aW9uIElNKHQsZSl7bGV0IG49ZS52ZXJ0ZXhGb3JtYXQsbz1lLmNlbnRlcixyPWUuc2VtaU1ham9yQXhpcyxpPWUuc2VtaU1pbm9yQXhpcyxzPWUuZWxsaXBzb2lkLGY9ZS5oZWlnaHQsdT1lLmV4dHJ1ZGVkSGVpZ2h0LGM9ZS5zdFJvdGF0aW9uLGw9dC5sZW5ndGgvMyoyLHA9bmV3IEZsb2F0NjRBcnJheShsKjMpLGQ9bi5zdD9uZXcgRmxvYXQzMkFycmF5KGwqMik6dm9pZCAwLG09bi5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShsKjMpOnZvaWQgMCxfPW4udGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGwqMyk6dm9pZCAwLGc9bi5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShsKjMpOnZvaWQgMCxiPWUuc2hhZG93Vm9sdW1lLE89Yj9uZXcgRmxvYXQzMkFycmF5KGwqMyk6dm9pZCAwLFQ9MCxFPV93LHc9eXcsQz1ndyxOPW5ldyBRbihzKSxJPU4ucHJvamVjdChzLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG8sWHApLEF3KSxMPXMuc2NhbGVUb0dlb2RldGljU3VyZmFjZShvLGZhKTtzLmdlb2RldGljU3VyZmFjZU5vcm1hbChMLEwpO2xldCB2PW5lLmZyb21BeGlzQW5nbGUoTCxjLGwwKSxEPXR0LmZyb21RdWF0ZXJuaW9uKHYsaHcpLFU9bnQuZnJvbUVsZW1lbnRzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksYncpLEE9bnQuZnJvbUVsZW1lbnRzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksd3cpLFM9dC5sZW5ndGgsUD1TLzMqMjtmb3IobGV0IGo9MDtqPFM7ais9Myl7bGV0IEg9aisxLGs9aisyLEs9YS5mcm9tQXJyYXkodCxqLGZhKSxYO2lmKG4uc3Qpe2xldCBRPXR0Lm11bHRpcGx5QnlWZWN0b3IoRCxLLGYwKSxmdD1OLnByb2plY3Qocy5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhRLFhwKSx1MCk7YS5zdWJ0cmFjdChmdCxJLGZ0KSxZbi54PShmdC54K3IpLygyKnIpLFluLnk9KGZ0LnkraSkvKDIqaSksVS54PU1hdGgubWluKFluLngsVS54KSxVLnk9TWF0aC5taW4oWW4ueSxVLnkpLEEueD1NYXRoLm1heChZbi54LEEueCksQS55PU1hdGgubWF4KFluLnksQS55KSxkW1QrUF09WW4ueCxkW1QrMStQXT1Zbi55LGRbVCsrXT1Zbi54LGRbVCsrXT1Zbi55fUs9cy5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKEssSyksWD1hLmNsb25lKEssZjApLEU9cy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoSyxFKSxiJiYoT1tqK1NdPS1FLngsT1tIK1NdPS1FLnksT1trK1NdPS1FLnopO2xldCBSPWEubXVsdGlwbHlCeVNjYWxhcihFLGYsbXcpO2lmKEs9YS5hZGQoSyxSLEspLFI9YS5tdWx0aXBseUJ5U2NhbGFyKEUsdSxSKSxYPWEuYWRkKFgsUixYKSxuLnBvc2l0aW9uJiYocFtqK1NdPVgueCxwW0grU109WC55LHBbaytTXT1YLnoscFtqXT1LLngscFtIXT1LLnkscFtrXT1LLnopLG4ubm9ybWFsfHxuLnRhbmdlbnR8fG4uYml0YW5nZW50KXtDPWEuY2xvbmUoRSxDKTtsZXQgUT1hLmZyb21BcnJheSh0LChqKzMpJVMsbXcpO2Euc3VidHJhY3QoUSxLLFEpO2xldCBmdD1hLnN1YnRyYWN0KFgsSyx1MCk7RT1hLm5vcm1hbGl6ZShhLmNyb3NzKGZ0LFEsRSksRSksbi5ub3JtYWwmJihtW2pdPUUueCxtW0hdPUUueSxtW2tdPUUueixtW2orU109RS54LG1bSCtTXT1FLnksbVtrK1NdPUUueiksbi50YW5nZW50JiYodz1hLm5vcm1hbGl6ZShhLmNyb3NzKEMsRSx3KSx3KSxfW2pdPXcueCxfW0hdPXcueSxfW2tdPXcueixfW2orU109dy54LF9baisxK1NdPXcueSxfW2orMitTXT13LnopLG4uYml0YW5nZW50JiYoZ1tqXT1DLngsZ1tIXT1DLnksZ1trXT1DLnosZ1tqK1NdPUMueCxnW0grU109Qy55LGdbaytTXT1DLnopfX1pZihuLnN0KXtTPWQubGVuZ3RoO2ZvcihsZXQgaj0wO2o8UztqKz0yKWRbal09KGRbal0tVS54KS8oQS54LVUueCksZFtqKzFdPShkW2orMV0tVS55KS8oQS55LVUueSl9bGV0IEY9bmV3IHJlO2lmKG4ucG9zaXRpb24mJihGLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cH0pKSxuLnN0JiYoRi5zdD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6ZH0pKSxuLm5vcm1hbCYmKEYubm9ybWFsPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczptfSkpLG4udGFuZ2VudCYmKEYudGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6X30pKSxuLmJpdGFuZ2VudCYmKEYuYml0YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpnfSkpLGImJihGLmV4dHJ1ZGVEaXJlY3Rpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOk99KSksaChlLm9mZnNldEF0dHJpYnV0ZSkpe2xldCBqPW5ldyBVaW50OEFycmF5KGwpO2lmKGUub2Zmc2V0QXR0cmlidXRlPT09YWUuVE9QKWo9ai5maWxsKDEsMCxsLzIpO2Vsc2V7bGV0IEg9ZS5vZmZzZXRBdHRyaWJ1dGU9PT1hZS5OT05FPzA6MTtqPWouZmlsbChIKX1GLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmp9KX1yZXR1cm4gRn1mdW5jdGlvbiB2TSh0KXtsZXQgZT10Lmxlbmd0aC8zLG49RHQuY3JlYXRlVHlwZWRBcnJheShlLGUqNiksbz0wO2ZvcihsZXQgcj0wO3I8ZTtyKyspe2xldCBpPXIscz1yK2UsZj0oaSsxKSVlLHU9ZitlO25bbysrXT1pLG5bbysrXT1zLG5bbysrXT1mLG5bbysrXT1mLG5bbysrXT1zLG5bbysrXT11fXJldHVybiBufWZ1bmN0aW9uIERNKHQpe2xldCBlPXQuY2VudGVyLG49dC5lbGxpcHNvaWQsbz10LnNlbWlNYWpvckF4aXMscj1hLm11bHRpcGx5QnlTY2FsYXIobi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZSxmYSksdC5oZWlnaHQsZmEpO0twLmNlbnRlcj1hLmFkZChlLHIsS3AuY2VudGVyKSxLcC5yYWRpdXM9byxyPWEubXVsdGlwbHlCeVNjYWxhcihuLmdlb2RldGljU3VyZmFjZU5vcm1hbChlLHIpLHQuZXh0cnVkZWRIZWlnaHQsciksV3AuY2VudGVyPWEuYWRkKGUscixXcC5jZW50ZXIpLFdwLnJhZGl1cz1vO2xldCBpPWtyLmNvbXB1dGVFbGxpcHNlUG9zaXRpb25zKHQsITAsITApLHM9aS5wb3NpdGlvbnMsZj1pLm51bVB0cyx1PWkub3V0ZXJQb3NpdGlvbnMsYz15dC51bmlvbihLcCxXcCksbD1UdyhzLHQsITApLHA9T3coZiksZD1wLmxlbmd0aDtwLmxlbmd0aD1kKjI7bGV0IG09cy5sZW5ndGgvMztmb3IobGV0IHc9MDt3PGQ7dys9MylwW3crZF09cFt3KzJdK20scFt3KzErZF09cFt3KzFdK20scFt3KzIrZF09cFt3XSttO2xldCBfPUR0LmNyZWF0ZVR5cGVkQXJyYXkobSoyLzMscCksZz1uZXcgRnQoe2F0dHJpYnV0ZXM6bCxpbmRpY2VzOl8scHJpbWl0aXZlVHlwZTpMdC5UUklBTkdMRVN9KSxiPUlNKHUsdCk7cD12TSh1KTtsZXQgTz1EdC5jcmVhdGVUeXBlZEFycmF5KHUubGVuZ3RoKjIvMyxwKSxUPW5ldyBGdCh7YXR0cmlidXRlczpiLGluZGljZXM6TyxwcmltaXRpdmVUeXBlOkx0LlRSSUFOR0xFU30pLEU9QmUuY29tYmluZUluc3RhbmNlcyhbbmV3IGNvKHtnZW9tZXRyeTpnfSksbmV3IGNvKHtnZW9tZXRyeTpUfSldKTtyZXR1cm57Ym91bmRpbmdTcGhlcmU6YyxhdHRyaWJ1dGVzOkVbMF0uYXR0cmlidXRlcyxpbmRpY2VzOkVbMF0uaW5kaWNlc319ZnVuY3Rpb24gRXcodCxlLG4sbyxyLGkscyl7bGV0IHU9a3IuY29tcHV0ZUVsbGlwc2VQb3NpdGlvbnMoe2NlbnRlcjp0LHNlbWlNYWpvckF4aXM6ZSxzZW1pTWlub3JBeGlzOm4scm90YXRpb246byxncmFudWxhcml0eTpyfSwhMSwhMCkub3V0ZXJQb3NpdGlvbnMsYz11Lmxlbmd0aC8zLGw9bmV3IEFycmF5KGMpO2ZvcihsZXQgZD0wO2Q8YzsrK2QpbFtkXT1hLmZyb21BcnJheSh1LGQqMyk7bGV0IHA9UHQuZnJvbUNhcnRlc2lhbkFycmF5KGwsaSxzKTtyZXR1cm4gcC53aWR0aD5NLlBJJiYocC5ub3J0aD1wLm5vcnRoPjA/TS5QSV9PVkVSX1RXTy1NLkVQU0lMT043OnAubm9ydGgscC5zb3V0aD1wLnNvdXRoPDA/TS5FUFNJTE9ONy1NLlBJX09WRVJfVFdPOnAuc291dGgscC5lYXN0PU0uUEkscC53ZXN0PS1NLlBJKSxwfWZ1bmN0aW9uIGZpKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LmNlbnRlcixuPXgodC5lbGxpcHNvaWQsJC5XR1M4NCksbz10LnNlbWlNYWpvckF4aXMscj10LnNlbWlNaW5vckF4aXMsaT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLHM9eCh0LnZlcnRleEZvcm1hdCxsdC5ERUZBVUxUKTtpZih5LmRlZmluZWQoIm9wdGlvbnMuY2VudGVyIixlKSx5LnR5cGVPZi5udW1iZXIoIm9wdGlvbnMuc2VtaU1ham9yQXhpcyIsbykseS50eXBlT2YubnVtYmVyKCJvcHRpb25zLnNlbWlNaW5vckF4aXMiLHIpLG88cil0aHJvdyBuZXcgQigic2VtaU1ham9yQXhpcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2VtaU1pbm9yQXhpcy4iKTtpZihpPD0wKXRocm93IG5ldyBCKCJncmFudWxhcml0eSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO2xldCBmPXgodC5oZWlnaHQsMCksdT14KHQuZXh0cnVkZWRIZWlnaHQsZik7dGhpcy5fY2VudGVyPWEuY2xvbmUoZSksdGhpcy5fc2VtaU1ham9yQXhpcz1vLHRoaXMuX3NlbWlNaW5vckF4aXM9cix0aGlzLl9lbGxpcHNvaWQ9JC5jbG9uZShuKSx0aGlzLl9yb3RhdGlvbj14KHQucm90YXRpb24sMCksdGhpcy5fc3RSb3RhdGlvbj14KHQuc3RSb3RhdGlvbiwwKSx0aGlzLl9oZWlnaHQ9TWF0aC5tYXgodSxmKSx0aGlzLl9ncmFudWxhcml0eT1pLHRoaXMuX3ZlcnRleEZvcm1hdD1sdC5jbG9uZShzKSx0aGlzLl9leHRydWRlZEhlaWdodD1NYXRoLm1pbih1LGYpLHRoaXMuX3NoYWRvd1ZvbHVtZT14KHQuc2hhZG93Vm9sdW1lLCExKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVFbGxpcHNlR2VvbWV0cnkiLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl9yZWN0YW5nbGU9dm9pZCAwLHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9dm9pZCAwfWZ1bmN0aW9uIExNKHQpe2xldCBlPS10Ll9zdFJvdGF0aW9uO2lmKGU9PT0wKXJldHVyblswLDAsMCwxLDEsMF07bGV0IG89a3IuY29tcHV0ZUVsbGlwc2VQb3NpdGlvbnMoe2NlbnRlcjp0Ll9jZW50ZXIsc2VtaU1ham9yQXhpczp0Ll9zZW1pTWFqb3JBeGlzLHNlbWlNaW5vckF4aXM6dC5fc2VtaU1pbm9yQXhpcyxyb3RhdGlvbjp0Ll9yb3RhdGlvbixncmFudWxhcml0eTp0Ll9ncmFudWxhcml0eX0sITEsITApLm91dGVyUG9zaXRpb25zLHI9by5sZW5ndGgvMyxpPW5ldyBBcnJheShyKTtmb3IobGV0IHU9MDt1PHI7Kyt1KWlbdV09YS5mcm9tQXJyYXkobyx1KjMpO2xldCBzPXQuX2VsbGlwc29pZCxmPXQucmVjdGFuZ2xlO3JldHVybiBGdC5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cyhpLGUscyxmKX12YXIgZmEsZjAsdTAsbXcsWW4saHcsTU0sbDAsX3cseXcsZ3csWHAsQXcsYncsd3csY2MsS3AsV3AsUncsU3csQ3csYWksR3IscDA9WigoKT0+e1BlKCk7emUoKTtVdCgpO3ZlKCk7WXQoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO2EwKCk7WnQoKTtSaSgpO1hlKCk7WWUoKTthbigpO3NjKCk7Rm8oKTtzaSgpOyRlKCk7V3QoKTtGbigpO3RuKCk7JG8oKTtBbigpO1JvKCk7ZmE9bmV3IGEsZjA9bmV3IGEsdTA9bmV3IGEsbXc9bmV3IGEsWW49bmV3IG50LGh3PW5ldyB0dCxNTT1uZXcgdHQsbDA9bmV3IG5lLF93PW5ldyBhLHl3PW5ldyBhLGd3PW5ldyBhLFhwPW5ldyBjdCxBdz1uZXcgYSxidz1uZXcgbnQsd3c9bmV3IG50O2NjPW5ldyBhO0twPW5ldyB5dCxXcD1uZXcgeXQ7ZmkucGFja2VkTGVuZ3RoPWEucGFja2VkTGVuZ3RoKyQucGFja2VkTGVuZ3RoK2x0LnBhY2tlZExlbmd0aCs5O2ZpLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxhLnBhY2sodC5fY2VudGVyLGUsbiksbis9YS5wYWNrZWRMZW5ndGgsJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGx0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9bHQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll9zZW1pTWFqb3JBeGlzLGVbbisrXT10Ll9zZW1pTWlub3JBeGlzLGVbbisrXT10Ll9yb3RhdGlvbixlW24rK109dC5fc3RSb3RhdGlvbixlW24rK109dC5faGVpZ2h0LGVbbisrXT10Ll9ncmFudWxhcml0eSxlW24rK109dC5fZXh0cnVkZWRIZWlnaHQsZVtuKytdPXQuX3NoYWRvd1ZvbHVtZT8xOjAsZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07Unc9bmV3IGEsU3c9bmV3ICQsQ3c9bmV3IGx0LGFpPXtjZW50ZXI6UncsZWxsaXBzb2lkOlN3LHZlcnRleEZvcm1hdDpDdyxzZW1pTWFqb3JBeGlzOnZvaWQgMCxzZW1pTWlub3JBeGlzOnZvaWQgMCxyb3RhdGlvbjp2b2lkIDAsc3RSb3RhdGlvbjp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsZXh0cnVkZWRIZWlnaHQ6dm9pZCAwLHNoYWRvd1ZvbHVtZTp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07ZmkudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz1hLnVucGFjayh0LGUsUncpO2UrPWEucGFja2VkTGVuZ3RoO2xldCByPSQudW5wYWNrKHQsZSxTdyk7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IGk9bHQudW5wYWNrKHQsZSxDdyk7ZSs9bHQucGFja2VkTGVuZ3RoO2xldCBzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXSxjPXRbZSsrXSxsPXRbZSsrXSxwPXRbZSsrXSxkPXRbZSsrXSxtPXRbZSsrXT09PTEsXz10W2VdO3JldHVybiBoKG4pPyhuLl9jZW50ZXI9YS5jbG9uZShvLG4uX2NlbnRlciksbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3ZlcnRleEZvcm1hdD1sdC5jbG9uZShpLG4uX3ZlcnRleEZvcm1hdCksbi5fc2VtaU1ham9yQXhpcz1zLG4uX3NlbWlNaW5vckF4aXM9ZixuLl9yb3RhdGlvbj11LG4uX3N0Um90YXRpb249YyxuLl9oZWlnaHQ9bCxuLl9ncmFudWxhcml0eT1wLG4uX2V4dHJ1ZGVkSGVpZ2h0PWQsbi5fc2hhZG93Vm9sdW1lPW0sbi5fb2Zmc2V0QXR0cmlidXRlPV89PT0tMT92b2lkIDA6XyxuKTooYWkuaGVpZ2h0PWwsYWkuZXh0cnVkZWRIZWlnaHQ9ZCxhaS5ncmFudWxhcml0eT1wLGFpLnN0Um90YXRpb249YyxhaS5yb3RhdGlvbj11LGFpLnNlbWlNYWpvckF4aXM9cyxhaS5zZW1pTWlub3JBeGlzPWYsYWkuc2hhZG93Vm9sdW1lPW0sYWkub2Zmc2V0QXR0cmlidXRlPV89PT0tMT92b2lkIDA6XyxuZXcgZmkoYWkpKX07ZmkuY29tcHV0ZVJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgbj10LmNlbnRlcixvPXgodC5lbGxpcHNvaWQsJC5XR1M4NCkscj10LnNlbWlNYWpvckF4aXMsaT10LnNlbWlNaW5vckF4aXMscz14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLGY9eCh0LnJvdGF0aW9uLDApO2lmKHkuZGVmaW5lZCgib3B0aW9ucy5jZW50ZXIiLG4pLHkudHlwZU9mLm51bWJlcigib3B0aW9ucy5zZW1pTWFqb3JBeGlzIixyKSx5LnR5cGVPZi5udW1iZXIoIm9wdGlvbnMuc2VtaU1pbm9yQXhpcyIsaSkscjxpKXRocm93IG5ldyBCKCJzZW1pTWFqb3JBeGlzIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZW1pTWlub3JBeGlzLiIpO2lmKHM8PTApdGhyb3cgbmV3IEIoImdyYW51bGFyaXR5IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7cmV0dXJuIEV3KG4scixpLGYscyxvLGUpfTtmaS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtpZih0Ll9zZW1pTWFqb3JBeGlzPD0wfHx0Ll9zZW1pTWlub3JBeGlzPD0wKXJldHVybjtsZXQgZT10Ll9oZWlnaHQsbj10Ll9leHRydWRlZEhlaWdodCxvPSFNLmVxdWFsc0Vwc2lsb24oZSxuLDAsTS5FUFNJTE9OMik7dC5fY2VudGVyPXQuX2VsbGlwc29pZC5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHQuX2NlbnRlcix0Ll9jZW50ZXIpO2xldCByPXtjZW50ZXI6dC5fY2VudGVyLHNlbWlNYWpvckF4aXM6dC5fc2VtaU1ham9yQXhpcyxzZW1pTWlub3JBeGlzOnQuX3NlbWlNaW5vckF4aXMsZWxsaXBzb2lkOnQuX2VsbGlwc29pZCxyb3RhdGlvbjp0Ll9yb3RhdGlvbixoZWlnaHQ6ZSxncmFudWxhcml0eTp0Ll9ncmFudWxhcml0eSx2ZXJ0ZXhGb3JtYXQ6dC5fdmVydGV4Rm9ybWF0LHN0Um90YXRpb246dC5fc3RSb3RhdGlvbn0saTtpZihvKXIuZXh0cnVkZWRIZWlnaHQ9bixyLnNoYWRvd1ZvbHVtZT10Ll9zaGFkb3dWb2x1bWUsci5vZmZzZXRBdHRyaWJ1dGU9dC5fb2Zmc2V0QXR0cmlidXRlLGk9RE0ocik7ZWxzZSBpZihpPU5NKHIpLGgodC5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IHM9aS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgsZj10Ll9vZmZzZXRBdHRyaWJ1dGU9PT1hZS5OT05FPzA6MSx1PW5ldyBVaW50OEFycmF5KHMvMykuZmlsbChmKTtpLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6dX0pfXJldHVybiBuZXcgRnQoe2F0dHJpYnV0ZXM6aS5hdHRyaWJ1dGVzLGluZGljZXM6aS5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOmkuYm91bmRpbmdTcGhlcmUsb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtmaS5jcmVhdGVTaGFkb3dWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuX2dyYW51bGFyaXR5LHI9dC5fZWxsaXBzb2lkLGk9ZShvLHIpLHM9bihvLHIpO3JldHVybiBuZXcgZmkoe2NlbnRlcjp0Ll9jZW50ZXIsc2VtaU1ham9yQXhpczp0Ll9zZW1pTWFqb3JBeGlzLHNlbWlNaW5vckF4aXM6dC5fc2VtaU1pbm9yQXhpcyxlbGxpcHNvaWQ6cixyb3RhdGlvbjp0Ll9yb3RhdGlvbixzdFJvdGF0aW9uOnQuX3N0Um90YXRpb24sZ3JhbnVsYXJpdHk6byxleHRydWRlZEhlaWdodDppLGhlaWdodDpzLHZlcnRleEZvcm1hdDpsdC5QT1NJVElPTl9PTkxZLHNoYWRvd1ZvbHVtZTohMH0pfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhmaS5wcm90b3R5cGUse3JlY3RhbmdsZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5fcmVjdGFuZ2xlKXx8KHRoaXMuX3JlY3RhbmdsZT1Fdyh0aGlzLl9jZW50ZXIsdGhpcy5fc2VtaU1ham9yQXhpcyx0aGlzLl9zZW1pTWlub3JBeGlzLHRoaXMuX3JvdGF0aW9uLHRoaXMuX2dyYW51bGFyaXR5LHRoaXMuX2VsbGlwc29pZCkpLHRoaXMuX3JlY3RhbmdsZX19LHRleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBoKHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHMpfHwodGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cz1MTSh0aGlzKSksdGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50c319fSk7R3I9Zml9KTtmdW5jdGlvbiBJaSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5yYWRpdXM7eS50eXBlT2YubnVtYmVyKCJyYWRpdXMiLGUpO2xldCBuPXtjZW50ZXI6dC5jZW50ZXIsc2VtaU1ham9yQXhpczplLHNlbWlNaW5vckF4aXM6ZSxlbGxpcHNvaWQ6dC5lbGxpcHNvaWQsaGVpZ2h0OnQuaGVpZ2h0LGV4dHJ1ZGVkSGVpZ2h0OnQuZXh0cnVkZWRIZWlnaHQsZ3JhbnVsYXJpdHk6dC5ncmFudWxhcml0eSx2ZXJ0ZXhGb3JtYXQ6dC52ZXJ0ZXhGb3JtYXQsc3RSb3RhdGlvbjp0LnN0Um90YXRpb24sc2hhZG93Vm9sdW1lOnQuc2hhZG93Vm9sdW1lfTt0aGlzLl9lbGxpcHNlR2VvbWV0cnk9bmV3IEdyKG4pLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUNpcmNsZUdlb21ldHJ5In12YXIgRk0sU28sZDAseHc9WigoKT0+e1V0KCk7WXQoKTtJdCgpO2F0KCk7cDAoKTtadCgpO1JvKCk7SWkucGFja2VkTGVuZ3RoPUdyLnBhY2tlZExlbmd0aDtJaS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCksR3IucGFjayh0Ll9lbGxpcHNlR2VvbWV0cnksZSxuKX07Rk09bmV3IEdyKHtjZW50ZXI6bmV3IGEsc2VtaU1ham9yQXhpczoxLHNlbWlNaW5vckF4aXM6MX0pLFNvPXtjZW50ZXI6bmV3IGEscmFkaXVzOnZvaWQgMCxlbGxpcHNvaWQ6JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxoZWlnaHQ6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsdmVydGV4Rm9ybWF0Om5ldyBsdCxzdFJvdGF0aW9uOnZvaWQgMCxzZW1pTWFqb3JBeGlzOnZvaWQgMCxzZW1pTWlub3JBeGlzOnZvaWQgMCxzaGFkb3dWb2x1bWU6dm9pZCAwfTtJaS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2xldCBvPUdyLnVucGFjayh0LGUsRk0pO3JldHVybiBTby5jZW50ZXI9YS5jbG9uZShvLl9jZW50ZXIsU28uY2VudGVyKSxTby5lbGxpcHNvaWQ9JC5jbG9uZShvLl9lbGxpcHNvaWQsU28uZWxsaXBzb2lkKSxTby5oZWlnaHQ9by5faGVpZ2h0LFNvLmV4dHJ1ZGVkSGVpZ2h0PW8uX2V4dHJ1ZGVkSGVpZ2h0LFNvLmdyYW51bGFyaXR5PW8uX2dyYW51bGFyaXR5LFNvLnZlcnRleEZvcm1hdD1sdC5jbG9uZShvLl92ZXJ0ZXhGb3JtYXQsU28udmVydGV4Rm9ybWF0KSxTby5zdFJvdGF0aW9uPW8uX3N0Um90YXRpb24sU28uc2hhZG93Vm9sdW1lPW8uX3NoYWRvd1ZvbHVtZSxoKG4pPyhTby5zZW1pTWFqb3JBeGlzPW8uX3NlbWlNYWpvckF4aXMsU28uc2VtaU1pbm9yQXhpcz1vLl9zZW1pTWlub3JBeGlzLG4uX2VsbGlwc2VHZW9tZXRyeT1uZXcgR3IoU28pLG4pOihTby5yYWRpdXM9by5fc2VtaU1ham9yQXhpcyxuZXcgSWkoU28pKX07SWkuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7cmV0dXJuIEdyLmNyZWF0ZUdlb21ldHJ5KHQuX2VsbGlwc2VHZW9tZXRyeSl9O0lpLmNyZWF0ZVNoYWRvd1ZvbHVtZT1mdW5jdGlvbih0LGUsbil7bGV0IG89dC5fZWxsaXBzZUdlb21ldHJ5Ll9ncmFudWxhcml0eSxyPXQuX2VsbGlwc2VHZW9tZXRyeS5fZWxsaXBzb2lkLGk9ZShvLHIpLHM9bihvLHIpO3JldHVybiBuZXcgSWkoe2NlbnRlcjp0Ll9lbGxpcHNlR2VvbWV0cnkuX2NlbnRlcixyYWRpdXM6dC5fZWxsaXBzZUdlb21ldHJ5Ll9zZW1pTWFqb3JBeGlzLGVsbGlwc29pZDpyLHN0Um90YXRpb246dC5fZWxsaXBzZUdlb21ldHJ5Ll9zdFJvdGF0aW9uLGdyYW51bGFyaXR5Om8sZXh0cnVkZWRIZWlnaHQ6aSxoZWlnaHQ6cyx2ZXJ0ZXhGb3JtYXQ6bHQuUE9TSVRJT05fT05MWSxzaGFkb3dWb2x1bWU6ITB9KX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoSWkucHJvdG90eXBlLHtyZWN0YW5nbGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGxpcHNlR2VvbWV0cnkucmVjdGFuZ2xlfX0sdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc2VHZW9tZXRyeS50ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzfX19KTtkMD1JaX0pO3ZhciBtMD17fTttZShtMCx7ZGVmYXVsdDooKT0+VU19KTtmdW5jdGlvbiBCTSh0LGUpe3JldHVybiBoKGUpJiYodD1kMC51bnBhY2sodCxlKSksdC5fZWxsaXBzZUdlb21ldHJ5Ll9jZW50ZXI9YS5jbG9uZSh0Ll9lbGxpcHNlR2VvbWV0cnkuX2NlbnRlciksdC5fZWxsaXBzZUdlb21ldHJ5Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNlR2VvbWV0cnkuX2VsbGlwc29pZCksZDAuY3JlYXRlR2VvbWV0cnkodCl9dmFyIFVNLGgwPVooKCk9PntVdCgpO3h3KCk7YXQoKTtadCgpO1VNPUJNfSk7ZnVuY3Rpb24gVk0odCl7bGV0IGU9dC5jZW50ZXI7YWM9YS5tdWx0aXBseUJ5U2NhbGFyKHQuZWxsaXBzb2lkLmdlb2RldGljU3VyZmFjZU5vcm1hbChlLGFjKSx0LmhlaWdodCxhYyksYWM9YS5hZGQoZSxhYyxhYyk7bGV0IG49bmV3IHl0KGFjLHQuc2VtaU1ham9yQXhpcyksbz1rci5jb21wdXRlRWxsaXBzZVBvc2l0aW9ucyh0LCExLCEwKS5vdXRlclBvc2l0aW9ucyxyPW5ldyByZSh7cG9zaXRpb246bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczprci5yYWlzZVBvc2l0aW9uc1RvSGVpZ2h0KG8sdCwhMSl9KX0pLGk9by5sZW5ndGgvMyxzPUR0LmNyZWF0ZVR5cGVkQXJyYXkoaSxpKjIpLGY9MDtmb3IobGV0IHU9MDt1PGk7Kyt1KXNbZisrXT11LHNbZisrXT0odSsxKSVpO3JldHVybntib3VuZGluZ1NwaGVyZTpuLGF0dHJpYnV0ZXM6cixpbmRpY2VzOnN9fWZ1bmN0aW9uIGtNKHQpe2xldCBlPXQuY2VudGVyLG49dC5lbGxpcHNvaWQsbz10LnNlbWlNYWpvckF4aXMscj1hLm11bHRpcGx5QnlTY2FsYXIobi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZSxQdyksdC5oZWlnaHQsUHcpO1lwLmNlbnRlcj1hLmFkZChlLHIsWXAuY2VudGVyKSxZcC5yYWRpdXM9byxyPWEubXVsdGlwbHlCeVNjYWxhcihuLmdlb2RldGljU3VyZmFjZU5vcm1hbChlLHIpLHQuZXh0cnVkZWRIZWlnaHQsciksJHAuY2VudGVyPWEuYWRkKGUsciwkcC5jZW50ZXIpLCRwLnJhZGl1cz1vO2xldCBpPWtyLmNvbXB1dGVFbGxpcHNlUG9zaXRpb25zKHQsITEsITApLm91dGVyUG9zaXRpb25zLHM9bmV3IHJlKHtwb3NpdGlvbjpuZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmtyLnJhaXNlUG9zaXRpb25zVG9IZWlnaHQoaSx0LCEwKX0pfSk7aT1zLnBvc2l0aW9uLnZhbHVlcztsZXQgZj15dC51bmlvbihZcCwkcCksdT1pLmxlbmd0aC8zO2lmKGgodC5vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgXz1uZXcgVWludDhBcnJheSh1KTtpZih0Lm9mZnNldEF0dHJpYnV0ZT09PWFlLlRPUClfPV8uZmlsbCgxLDAsdS8yKTtlbHNle2xldCBnPXQub2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjE7Xz1fLmZpbGwoZyl9cy5hcHBseU9mZnNldD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpffSl9bGV0IGM9eCh0Lm51bWJlck9mVmVydGljYWxMaW5lcywxNik7Yz1NLmNsYW1wKGMsMCx1LzIpO2xldCBsPUR0LmNyZWF0ZVR5cGVkQXJyYXkodSx1KjIrYyoyKTt1Lz0yO2xldCBwPTAsZDtmb3IoZD0wO2Q8dTsrK2QpbFtwKytdPWQsbFtwKytdPShkKzEpJXUsbFtwKytdPWQrdSxsW3ArK109KGQrMSkldSt1O2xldCBtO2lmKGM+MCl7bGV0IF89TWF0aC5taW4oYyx1KTttPU1hdGgucm91bmQodS9fKTtsZXQgZz1NYXRoLm1pbihtKmMsdSk7Zm9yKGQ9MDtkPGc7ZCs9bSlsW3ArK109ZCxsW3ArK109ZCt1fXJldHVybntib3VuZGluZ1NwaGVyZTpmLGF0dHJpYnV0ZXM6cyxpbmRpY2VzOmx9fWZ1bmN0aW9uIHVhKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LmNlbnRlcixuPXgodC5lbGxpcHNvaWQsJC5XR1M4NCksbz10LnNlbWlNYWpvckF4aXMscj10LnNlbWlNaW5vckF4aXMsaT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJjZW50ZXIgaXMgcmVxdWlyZWQuIik7aWYoIWgobykpdGhyb3cgbmV3IEIoInNlbWlNYWpvckF4aXMgaXMgcmVxdWlyZWQuIik7aWYoIWgocikpdGhyb3cgbmV3IEIoInNlbWlNaW5vckF4aXMgaXMgcmVxdWlyZWQuIik7aWYobzxyKXRocm93IG5ldyBCKCJzZW1pTWFqb3JBeGlzIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZW1pTWlub3JBeGlzLiIpO2lmKGk8PTApdGhyb3cgbmV3IEIoImdyYW51bGFyaXR5IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7bGV0IHM9eCh0LmhlaWdodCwwKSxmPXgodC5leHRydWRlZEhlaWdodCxzKTt0aGlzLl9jZW50ZXI9YS5jbG9uZShlKSx0aGlzLl9zZW1pTWFqb3JBeGlzPW8sdGhpcy5fc2VtaU1pbm9yQXhpcz1yLHRoaXMuX2VsbGlwc29pZD0kLmNsb25lKG4pLHRoaXMuX3JvdGF0aW9uPXgodC5yb3RhdGlvbiwwKSx0aGlzLl9oZWlnaHQ9TWF0aC5tYXgoZixzKSx0aGlzLl9ncmFudWxhcml0eT1pLHRoaXMuX2V4dHJ1ZGVkSGVpZ2h0PU1hdGgubWluKGYscyksdGhpcy5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPU1hdGgubWF4KHgodC5udW1iZXJPZlZlcnRpY2FsTGluZXMsMTYpLDApLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVFbGxpcHNlT3V0bGluZUdlb21ldHJ5In12YXIgUHcsYWMsWXAsJHAsTXcsTncsdmksenIsXzA9WigoKT0+e1BlKCk7VXQoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO2EwKCk7WnQoKTtYZSgpO1llKCk7YW4oKTtGbygpOyRlKCk7V3QoKTt0bigpO1B3PW5ldyBhLGFjPW5ldyBhO1lwPW5ldyB5dCwkcD1uZXcgeXQ7dWEucGFja2VkTGVuZ3RoPWEucGFja2VkTGVuZ3RoKyQucGFja2VkTGVuZ3RoKzg7dWEucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInZhbHVlIGlzIHJlcXVpcmVkIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImFycmF5IGlzIHJlcXVpcmVkIik7cmV0dXJuIG49eChuLDApLGEucGFjayh0Ll9jZW50ZXIsZSxuKSxuKz1hLnBhY2tlZExlbmd0aCwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX3NlbWlNYWpvckF4aXMsZVtuKytdPXQuX3NlbWlNaW5vckF4aXMsZVtuKytdPXQuX3JvdGF0aW9uLGVbbisrXT10Ll9oZWlnaHQsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9leHRydWRlZEhlaWdodCxlW24rK109dC5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O013PW5ldyBhLE53PW5ldyAkLHZpPXtjZW50ZXI6TXcsZWxsaXBzb2lkOk53LHNlbWlNYWpvckF4aXM6dm9pZCAwLHNlbWlNaW5vckF4aXM6dm9pZCAwLHJvdGF0aW9uOnZvaWQgMCxoZWlnaHQ6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMCxleHRydWRlZEhlaWdodDp2b2lkIDAsbnVtYmVyT2ZWZXJ0aWNhbExpbmVzOnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTt1YS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvPWEudW5wYWNrKHQsZSxNdyk7ZSs9YS5wYWNrZWRMZW5ndGg7bGV0IHI9JC51bnBhY2sodCxlLE53KTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgaT10W2UrK10scz10W2UrK10sZj10W2UrK10sdT10W2UrK10sYz10W2UrK10sbD10W2UrK10scD10W2UrK10sZD10W2VdO3JldHVybiBoKG4pPyhuLl9jZW50ZXI9YS5jbG9uZShvLG4uX2NlbnRlciksbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3NlbWlNYWpvckF4aXM9aSxuLl9zZW1pTWlub3JBeGlzPXMsbi5fcm90YXRpb249ZixuLl9oZWlnaHQ9dSxuLl9ncmFudWxhcml0eT1jLG4uX2V4dHJ1ZGVkSGVpZ2h0PWwsbi5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPXAsbi5fb2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCxuKToodmkuaGVpZ2h0PXUsdmkuZXh0cnVkZWRIZWlnaHQ9bCx2aS5ncmFudWxhcml0eT1jLHZpLnJvdGF0aW9uPWYsdmkuc2VtaU1ham9yQXhpcz1pLHZpLnNlbWlNaW5vckF4aXM9cyx2aS5udW1iZXJPZlZlcnRpY2FsTGluZXM9cCx2aS5vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG5ldyB1YSh2aSkpfTt1YS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtpZih0Ll9zZW1pTWFqb3JBeGlzPD0wfHx0Ll9zZW1pTWlub3JBeGlzPD0wKXJldHVybjtsZXQgZT10Ll9oZWlnaHQsbj10Ll9leHRydWRlZEhlaWdodCxvPSFNLmVxdWFsc0Vwc2lsb24oZSxuLDAsTS5FUFNJTE9OMik7dC5fY2VudGVyPXQuX2VsbGlwc29pZC5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHQuX2NlbnRlcix0Ll9jZW50ZXIpO2xldCByPXtjZW50ZXI6dC5fY2VudGVyLHNlbWlNYWpvckF4aXM6dC5fc2VtaU1ham9yQXhpcyxzZW1pTWlub3JBeGlzOnQuX3NlbWlNaW5vckF4aXMsZWxsaXBzb2lkOnQuX2VsbGlwc29pZCxyb3RhdGlvbjp0Ll9yb3RhdGlvbixoZWlnaHQ6ZSxncmFudWxhcml0eTp0Ll9ncmFudWxhcml0eSxudW1iZXJPZlZlcnRpY2FsTGluZXM6dC5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzfSxpO2lmKG8pci5leHRydWRlZEhlaWdodD1uLHIub2Zmc2V0QXR0cmlidXRlPXQuX29mZnNldEF0dHJpYnV0ZSxpPWtNKHIpO2Vsc2UgaWYoaT1WTShyKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBzPWkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLGY9dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjEsdT1uZXcgVWludDhBcnJheShzLzMpLmZpbGwoZik7aS5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnV9KX1yZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOmkuYXR0cmlidXRlcyxpbmRpY2VzOmkuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkx0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOmkuYm91bmRpbmdTcGhlcmUsb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTt6cj11YX0pO2Z1bmN0aW9uIGxhKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnJhZGl1czt5LnR5cGVPZi5udW1iZXIoInJhZGl1cyIsZSk7bGV0IG49e2NlbnRlcjp0LmNlbnRlcixzZW1pTWFqb3JBeGlzOmUsc2VtaU1pbm9yQXhpczplLGVsbGlwc29pZDp0LmVsbGlwc29pZCxoZWlnaHQ6dC5oZWlnaHQsZXh0cnVkZWRIZWlnaHQ6dC5leHRydWRlZEhlaWdodCxncmFudWxhcml0eTp0LmdyYW51bGFyaXR5LG51bWJlck9mVmVydGljYWxMaW5lczp0Lm51bWJlck9mVmVydGljYWxMaW5lc307dGhpcy5fZWxsaXBzZUdlb21ldHJ5PW5ldyB6cihuKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDaXJjbGVPdXRsaW5lR2VvbWV0cnkifXZhciBHTSxzcix5MCxJdz1aKCgpPT57VXQoKTtZdCgpO0l0KCk7YXQoKTtfMCgpO1p0KCk7bGEucGFja2VkTGVuZ3RoPXpyLnBhY2tlZExlbmd0aDtsYS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCksenIucGFjayh0Ll9lbGxpcHNlR2VvbWV0cnksZSxuKX07R009bmV3IHpyKHtjZW50ZXI6bmV3IGEsc2VtaU1ham9yQXhpczoxLHNlbWlNaW5vckF4aXM6MX0pLHNyPXtjZW50ZXI6bmV3IGEscmFkaXVzOnZvaWQgMCxlbGxpcHNvaWQ6JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxoZWlnaHQ6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsbnVtYmVyT2ZWZXJ0aWNhbExpbmVzOnZvaWQgMCxzZW1pTWFqb3JBeGlzOnZvaWQgMCxzZW1pTWlub3JBeGlzOnZvaWQgMH07bGEudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz16ci51bnBhY2sodCxlLEdNKTtyZXR1cm4gc3IuY2VudGVyPWEuY2xvbmUoby5fY2VudGVyLHNyLmNlbnRlciksc3IuZWxsaXBzb2lkPSQuY2xvbmUoby5fZWxsaXBzb2lkLHNyLmVsbGlwc29pZCksc3IuaGVpZ2h0PW8uX2hlaWdodCxzci5leHRydWRlZEhlaWdodD1vLl9leHRydWRlZEhlaWdodCxzci5ncmFudWxhcml0eT1vLl9ncmFudWxhcml0eSxzci5udW1iZXJPZlZlcnRpY2FsTGluZXM9by5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzLGgobik/KHNyLnNlbWlNYWpvckF4aXM9by5fc2VtaU1ham9yQXhpcyxzci5zZW1pTWlub3JBeGlzPW8uX3NlbWlNaW5vckF4aXMsbi5fZWxsaXBzZUdlb21ldHJ5PW5ldyB6cihzciksbik6KHNyLnJhZGl1cz1vLl9zZW1pTWFqb3JBeGlzLG5ldyBsYShzcikpfTtsYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtyZXR1cm4genIuY3JlYXRlR2VvbWV0cnkodC5fZWxsaXBzZUdlb21ldHJ5KX07eTA9bGF9KTt2YXIgZzA9e307bWUoZzAse2RlZmF1bHQ6KCk9PmpNfSk7ZnVuY3Rpb24gek0odCxlKXtyZXR1cm4gaChlKSYmKHQ9eTAudW5wYWNrKHQsZSkpLHQuX2VsbGlwc2VHZW9tZXRyeS5fY2VudGVyPWEuY2xvbmUodC5fZWxsaXBzZUdlb21ldHJ5Ll9jZW50ZXIpLHQuX2VsbGlwc2VHZW9tZXRyeS5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzZUdlb21ldHJ5Ll9lbGxpcHNvaWQpLHkwLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBqTSxBMD1aKCgpPT57VXQoKTtJdygpO2F0KCk7WnQoKTtqTT16TX0pO2Z1bmN0aW9uIEhNKHQsZSxuLG8pe2lmKHkuZGVmaW5lZCgiZXF1YWxzRXBzaWxvbiIsZSksIWgodCkpcmV0dXJuO249eChuLCExKTtsZXQgcj1oKG8pLGk9dC5sZW5ndGg7aWYoaTwyKXJldHVybiB0O2xldCBzLGY9dFswXSx1LGMsbD0wLHA9LTE7Zm9yKHM9MTtzPGk7KytzKXU9dFtzXSxlKGYsdSx2dyk/KGgoYyl8fChjPXQuc2xpY2UoMCxzKSxsPXMtMSxwPTApLHImJm8ucHVzaChzKSk6KGgoYykmJihjLnB1c2godSksbD1zLHImJihwPW8ubGVuZ3RoKSksZj11KTtyZXR1cm4gbiYmZSh0WzBdLHRbaS0xXSx2dykmJihyJiYoaChjKT9vLnNwbGljZShwLDAsbCk6by5wdXNoKGktMSkpLGgoYyk/Yy5sZW5ndGgtPTE6Yz10LnNsaWNlKDAsLTEpKSxoKGMpP2M6dH12YXIgdncsQ24sanI9WigoKT0+e1l0KCk7SXQoKTthdCgpO1d0KCk7dnc9TS5FUFNJTE9OMTA7Q249SE19KTtmdW5jdGlvbiBObih0LGUsbixvKXt0aGlzLng9eCh0LDApLHRoaXMueT14KGUsMCksdGhpcy53aWR0aD14KG4sMCksdGhpcy5oZWlnaHQ9eChvLDApfXZhciBxTSxLTSxXTSxIcix4Zj1aKCgpPT57emUoKTt2ZSgpO1l0KCk7SXQoKTthdCgpO1JpKCk7VnMoKTtBbigpO05uLnBhY2tlZExlbmd0aD00O05uLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxlW24rK109dC54LGVbbisrXT10LnksZVtuKytdPXQud2lkdGgsZVtuXT10LmhlaWdodCxlfTtObi51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgTm4pLG4ueD10W2UrK10sbi55PXRbZSsrXSxuLndpZHRoPXRbZSsrXSxuLmhlaWdodD10W2VdLG59O05uLmZyb21Qb2ludHM9ZnVuY3Rpb24odCxlKXtpZihoKGUpfHwoZT1uZXcgTm4pLCFoKHQpfHx0Lmxlbmd0aD09PTApcmV0dXJuIGUueD0wLGUueT0wLGUud2lkdGg9MCxlLmhlaWdodD0wLGU7bGV0IG49dC5sZW5ndGgsbz10WzBdLngscj10WzBdLnksaT10WzBdLngscz10WzBdLnk7Zm9yKGxldCBmPTE7ZjxuO2YrKyl7bGV0IHU9dFtmXSxjPXUueCxsPXUueTtvPU1hdGgubWluKGMsbyksaT1NYXRoLm1heChjLGkpLHI9TWF0aC5taW4obCxyKSxzPU1hdGgubWF4KGwscyl9cmV0dXJuIGUueD1vLGUueT1yLGUud2lkdGg9aS1vLGUuaGVpZ2h0PXMtcixlfTtxTT1uZXcgUW4sS009bmV3IGN0LFdNPW5ldyBjdDtObi5mcm9tUmVjdGFuZ2xlPWZ1bmN0aW9uKHQsZSxuKXtpZihoKG4pfHwobj1uZXcgTm4pLCFoKHQpKXJldHVybiBuLng9MCxuLnk9MCxuLndpZHRoPTAsbi5oZWlnaHQ9MCxuO2U9eChlLHFNKTtsZXQgbz1lLnByb2plY3QoUHQuc291dGh3ZXN0KHQsS00pKSxyPWUucHJvamVjdChQdC5ub3J0aGVhc3QodCxXTSkpO3JldHVybiBudC5zdWJ0cmFjdChyLG8sciksbi54PW8ueCxuLnk9by55LG4ud2lkdGg9ci54LG4uaGVpZ2h0PXIueSxufTtObi5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGUueD10LngsZS55PXQueSxlLndpZHRoPXQud2lkdGgsZS5oZWlnaHQ9dC5oZWlnaHQsZSk6bmV3IE5uKHQueCx0LnksdC53aWR0aCx0LmhlaWdodCl9O05uLnVuaW9uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLGgobil8fChuPW5ldyBObik7bGV0IG89TWF0aC5taW4odC54LGUueCkscj1NYXRoLm1pbih0LnksZS55KSxpPU1hdGgubWF4KHQueCt0LndpZHRoLGUueCtlLndpZHRoKSxzPU1hdGgubWF4KHQueSt0LmhlaWdodCxlLnkrZS5oZWlnaHQpO3JldHVybiBuLng9byxuLnk9cixuLndpZHRoPWktbyxuLmhlaWdodD1zLXIsbn07Tm4uZXhwYW5kPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCkseS50eXBlT2Yub2JqZWN0KCJwb2ludCIsZSksbj1Obi5jbG9uZSh0LG4pO2xldCBvPWUueC1uLngscj1lLnktbi55O3JldHVybiBvPm4ud2lkdGg/bi53aWR0aD1vOm88MCYmKG4ud2lkdGgtPW8sbi54PWUueCkscj5uLmhlaWdodD9uLmhlaWdodD1yOnI8MCYmKG4uaGVpZ2h0LT1yLG4ueT1lLnkpLG59O05uLmludGVyc2VjdD1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSk7bGV0IG49dC54LG89dC55LHI9ZS54LGk9ZS55O3JldHVybiBuPnIrZS53aWR0aHx8bit0LndpZHRoPHJ8fG8rdC5oZWlnaHQ8aXx8bz5pK2UuaGVpZ2h0P0VuLk9VVFNJREU6RW4uSU5URVJTRUNUSU5HfTtObi5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQueD09PWUueCYmdC55PT09ZS55JiZ0LndpZHRoPT09ZS53aWR0aCYmdC5oZWlnaHQ9PT1lLmhlaWdodH07Tm4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBObi5jbG9uZSh0aGlzLHQpfTtObi5wcm90b3R5cGUuaW50ZXJzZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBObi5pbnRlcnNlY3QodGhpcyx0KX07Tm4ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gTm4uZXF1YWxzKHRoaXMsdCl9O0hyPU5ufSk7ZnVuY3Rpb24gQm8odCxlLG4pe3RoaXMubWluaW11bT1hLmNsb25lKHgodCxhLlpFUk8pKSx0aGlzLm1heGltdW09YS5jbG9uZSh4KGUsYS5aRVJPKSksaChuKT9uPWEuY2xvbmUobik6bj1hLm1pZHBvaW50KHRoaXMubWluaW11bSx0aGlzLm1heGltdW0sbmV3IGEpLHRoaXMuY2VudGVyPW59dmFyIFpwLERpLFBmPVooKCk9PntVdCgpO1l0KCk7SXQoKTthdCgpO1ZzKCk7Qm8uZnJvbUNvcm5lcnM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoIm1pbmltdW0iLHQpLHkuZGVmaW5lZCgibWF4aW11bSIsZSksaChuKXx8KG49bmV3IEJvKSxuLm1pbmltdW09YS5jbG9uZSh0LG4ubWluaW11bSksbi5tYXhpbXVtPWEuY2xvbmUoZSxuLm1heGltdW0pLG4uY2VudGVyPWEubWlkcG9pbnQodCxlLG4uY2VudGVyKSxufTtCby5mcm9tUG9pbnRzPWZ1bmN0aW9uKHQsZSl7aWYoaChlKXx8KGU9bmV3IEJvKSwhaCh0KXx8dC5sZW5ndGg9PT0wKXJldHVybiBlLm1pbmltdW09YS5jbG9uZShhLlpFUk8sZS5taW5pbXVtKSxlLm1heGltdW09YS5jbG9uZShhLlpFUk8sZS5tYXhpbXVtKSxlLmNlbnRlcj1hLmNsb25lKGEuWkVSTyxlLmNlbnRlciksZTtsZXQgbj10WzBdLngsbz10WzBdLnkscj10WzBdLnosaT10WzBdLngscz10WzBdLnksZj10WzBdLnosdT10Lmxlbmd0aDtmb3IobGV0IHA9MTtwPHU7cCsrKXtsZXQgZD10W3BdLG09ZC54LF89ZC55LGc9ZC56O249TWF0aC5taW4obSxuKSxpPU1hdGgubWF4KG0saSksbz1NYXRoLm1pbihfLG8pLHM9TWF0aC5tYXgoXyxzKSxyPU1hdGgubWluKGcsciksZj1NYXRoLm1heChnLGYpfWxldCBjPWUubWluaW11bTtjLng9bixjLnk9byxjLno9cjtsZXQgbD1lLm1heGltdW07cmV0dXJuIGwueD1pLGwueT1zLGwuej1mLGUuY2VudGVyPWEubWlkcG9pbnQoYyxsLGUuY2VudGVyKSxlfTtCby5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGUubWluaW11bT1hLmNsb25lKHQubWluaW11bSxlLm1pbmltdW0pLGUubWF4aW11bT1hLmNsb25lKHQubWF4aW11bSxlLm1heGltdW0pLGUuY2VudGVyPWEuY2xvbmUodC5jZW50ZXIsZS5jZW50ZXIpLGUpOm5ldyBCbyh0Lm1pbmltdW0sdC5tYXhpbXVtLHQuY2VudGVyKX07Qm8uZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZhLmVxdWFscyh0LmNlbnRlcixlLmNlbnRlcikmJmEuZXF1YWxzKHQubWluaW11bSxlLm1pbmltdW0pJiZhLmVxdWFscyh0Lm1heGltdW0sZS5tYXhpbXVtKX07WnA9bmV3IGE7Qm8uaW50ZXJzZWN0UGxhbmU9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImJveCIsdCkseS5kZWZpbmVkKCJwbGFuZSIsZSksWnA9YS5zdWJ0cmFjdCh0Lm1heGltdW0sdC5taW5pbXVtLFpwKTtsZXQgbj1hLm11bHRpcGx5QnlTY2FsYXIoWnAsLjUsWnApLG89ZS5ub3JtYWwscj1uLngqTWF0aC5hYnMoby54KStuLnkqTWF0aC5hYnMoby55KStuLnoqTWF0aC5hYnMoby56KSxpPWEuZG90KHQuY2VudGVyLG8pK2UuZGlzdGFuY2U7cmV0dXJuIGktcj4wP0VuLklOU0lERTppK3I8MD9Fbi5PVVRTSURFOkVuLklOVEVSU0VDVElOR307Qm8ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBCby5jbG9uZSh0aGlzLHQpfTtCby5wcm90b3R5cGUuaW50ZXJzZWN0UGxhbmU9ZnVuY3Rpb24odCl7cmV0dXJuIEJvLmludGVyc2VjdFBsYW5lKHRoaXMsdCl9O0JvLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIEJvLmVxdWFscyh0aGlzLHQpfTtEaT1Cb30pO2Z1bmN0aW9uIHVpKHQsZSl7aWYoeS5kZWZpbmVkKCJvcmlnaW4iLHQpLGU9eChlLCQuV0dTODQpLHQ9ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHQpLCFoKHQpKXRocm93IG5ldyBCKCJvcmlnaW4gbXVzdCBub3QgYmUgYXQgdGhlIGNlbnRlciBvZiB0aGUgZWxsaXBzb2lkLiIpO2xldCBuPWdyLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKHQsZSk7dGhpcy5fZWxsaXBzb2lkPWUsdGhpcy5fb3JpZ2luPXQsdGhpcy5feEF4aXM9YS5mcm9tQ2FydGVzaWFuNChzdC5nZXRDb2x1bW4obiwwLGIwKSksdGhpcy5feUF4aXM9YS5mcm9tQ2FydGVzaWFuNChzdC5nZXRDb2x1bW4obiwxLGIwKSk7bGV0IG89YS5mcm9tQ2FydGVzaWFuNChzdC5nZXRDb2x1bW4obiwyLGIwKSk7dGhpcy5fcGxhbmU9b24uZnJvbVBvaW50Tm9ybWFsKHQsbyl9dmFyIGIwLFhNLER3LFFwLFlNLHlvLHBhPVooKCk9PntQZigpO3plKCk7VXQoKTtocigpO1l0KCk7SXQoKTthdCgpO0h0KCk7WnQoKTt0YygpO2tuKCk7Y3MoKTtGcCgpOyRzKCk7YjA9bmV3IF9lO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHVpLnByb3RvdHlwZSx7ZWxsaXBzb2lkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfX0sb3JpZ2luOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3JpZ2lufX0scGxhbmU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGFuZX19LHhBeGlzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5feEF4aXN9fSx5QXhpczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3lBeGlzfX0sekF4aXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGFuZS5ub3JtYWx9fX0pO1hNPW5ldyBEaTt1aS5mcm9tUG9pbnRzPWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJjYXJ0ZXNpYW5zIix0KTtsZXQgbj1EaS5mcm9tUG9pbnRzKHQsWE0pO3JldHVybiBuZXcgdWkobi5jZW50ZXIsZSl9O0R3PW5ldyBRcyxRcD1uZXcgYTt1aS5wcm90b3R5cGUucHJvamVjdFBvaW50T250b1BsYW5lPWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJjYXJ0ZXNpYW4iLHQpO2xldCBuPUR3O24ub3JpZ2luPXQsYS5ub3JtYWxpemUodCxuLmRpcmVjdGlvbik7bGV0IG89X28ucmF5UGxhbmUobix0aGlzLl9wbGFuZSxRcCk7aWYoaChvKXx8KGEubmVnYXRlKG4uZGlyZWN0aW9uLG4uZGlyZWN0aW9uKSxvPV9vLnJheVBsYW5lKG4sdGhpcy5fcGxhbmUsUXApKSxoKG8pKXtsZXQgcj1hLnN1YnRyYWN0KG8sdGhpcy5fb3JpZ2luLG8pLGk9YS5kb3QodGhpcy5feEF4aXMscikscz1hLmRvdCh0aGlzLl95QXhpcyxyKTtyZXR1cm4gaChlKT8oZS54PWksZS55PXMsZSk6bmV3IG50KGkscyl9fTt1aS5wcm90b3R5cGUucHJvamVjdFBvaW50c09udG9QbGFuZT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFucyIsdCksaChlKXx8KGU9W10pO2xldCBuPTAsbz10Lmxlbmd0aDtmb3IobGV0IHI9MDtyPG87cisrKXtsZXQgaT10aGlzLnByb2plY3RQb2ludE9udG9QbGFuZSh0W3JdLGVbbl0pO2goaSkmJihlW25dPWksbisrKX1yZXR1cm4gZS5sZW5ndGg9bixlfTt1aS5wcm90b3R5cGUucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFuIix0KSxoKGUpfHwoZT1uZXcgbnQpO2xldCBuPUR3O24ub3JpZ2luPXQsYS5jbG9uZSh0aGlzLl9wbGFuZS5ub3JtYWwsbi5kaXJlY3Rpb24pO2xldCBvPV9vLnJheVBsYW5lKG4sdGhpcy5fcGxhbmUsUXApO2gobyl8fChhLm5lZ2F0ZShuLmRpcmVjdGlvbixuLmRpcmVjdGlvbiksbz1fby5yYXlQbGFuZShuLHRoaXMuX3BsYW5lLFFwKSk7bGV0IHI9YS5zdWJ0cmFjdChvLHRoaXMuX29yaWdpbixvKSxpPWEuZG90KHRoaXMuX3hBeGlzLHIpLHM9YS5kb3QodGhpcy5feUF4aXMscik7cmV0dXJuIGUueD1pLGUueT1zLGV9O3VpLnByb3RvdHlwZS5wcm9qZWN0UG9pbnRzVG9OZWFyZXN0T25QbGFuZT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFucyIsdCksaChlKXx8KGU9W10pO2xldCBuPXQubGVuZ3RoO2UubGVuZ3RoPW47Zm9yKGxldCBvPTA7bzxuO28rKyllW29dPXRoaXMucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZSh0W29dLGVbb10pO3JldHVybiBlfTtZTT1uZXcgYTt1aS5wcm90b3R5cGUucHJvamVjdFBvaW50T250b0VsbGlwc29pZD1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFuIix0KSxoKGUpfHwoZT1uZXcgYSk7bGV0IG49dGhpcy5fZWxsaXBzb2lkLG89dGhpcy5fb3JpZ2luLHI9dGhpcy5feEF4aXMsaT10aGlzLl95QXhpcyxzPVlNO3JldHVybiBhLm11bHRpcGx5QnlTY2FsYXIocix0LngscyksZT1hLmFkZChvLHMsZSksYS5tdWx0aXBseUJ5U2NhbGFyKGksdC55LHMpLGEuYWRkKGUscyxlKSxuLnNjYWxlVG9HZW9jZW50cmljU3VyZmFjZShlLGUpLGV9O3VpLnByb3RvdHlwZS5wcm9qZWN0UG9pbnRzT250b0VsbGlwc29pZD1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFucyIsdCk7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uOmU9bmV3IEFycmF5KG4pO2ZvcihsZXQgbz0wO288bjsrK28pZVtvXT10aGlzLnByb2plY3RQb2ludE9udG9FbGxpcHNvaWQodFtvXSxlW29dKTtyZXR1cm4gZX07eW89dWl9KTtmdW5jdGlvbiBMZSh0LGUpe3RoaXMuY2VudGVyPWEuY2xvbmUoeCh0LGEuWkVSTykpLHRoaXMuaGFsZkF4ZXM9dHQuY2xvbmUoeChlLHR0LlpFUk8pKX1mdW5jdGlvbiBMdyh0LGUsbixvLHIsaSxzLGYsdSxjLGwpe2lmKCFoKHIpfHwhaChpKXx8IWgocyl8fCFoKGYpfHwhaCh1KXx8IWgoYykpdGhyb3cgbmV3IEIoImFsbCBleHRlbnRzIChtaW5pbXVtL21heGltdW0gWC9ZL1opIGFyZSByZXF1aXJlZC4iKTtoKGwpfHwobD1uZXcgTGUpO2xldCBwPWwuaGFsZkF4ZXM7dHQuc2V0Q29sdW1uKHAsMCxlLHApLHR0LnNldENvbHVtbihwLDEsbixwKSx0dC5zZXRDb2x1bW4ocCwyLG8scCk7bGV0IGQ9a3c7ZC54PShyK2kpLzIsZC55PShzK2YpLzIsZC56PSh1K2MpLzI7bGV0IG09ck47bS54PShpLXIpLzIsbS55PShmLXMpLzIsbS56PShjLXUpLzI7bGV0IF89bC5jZW50ZXI7cmV0dXJuIGQ9dHQubXVsdGlwbHlCeVZlY3RvcihwLGQsZCksYS5hZGQodCxkLF8pLHR0Lm11bHRpcGx5QnlTY2FsZShwLG0scCksbH12YXIgJE0sWk0sUU0sSk0sdE4sZU4sbk4sb04sa3csck4sRncsaU4sc04sY04sYU4sZk4sdU4sbE4sQncscE4sVXcsZE4sbU4saE4sX04seU4sZ04sQU4sYk4sd04sVE4sT04sRU4sUk4sU04sQ04sR3csencsancseE4sVncsUE4sTU4sTk4sSU4sdk4sRE4sTE4sRk4sQ28sZGE9WigoKT0+e1BlKCk7emUoKTtVdCgpO3ZlKCk7WXQoKTtJdCgpO2F0KCk7SHQoKTtadCgpO3BhKCk7VnMoKTtqbCgpO1d0KCk7Rm4oKTtrbigpO2NzKCk7QW4oKTtMZS5wYWNrZWRMZW5ndGg9YS5wYWNrZWRMZW5ndGgrdHQucGFja2VkTGVuZ3RoO0xlLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxhLnBhY2sodC5jZW50ZXIsZSxuKSx0dC5wYWNrKHQuaGFsZkF4ZXMsZSxuK2EucGFja2VkTGVuZ3RoKSxlfTtMZS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgTGUpLGEudW5wYWNrKHQsZSxuLmNlbnRlciksdHQudW5wYWNrKHQsZSthLnBhY2tlZExlbmd0aCxuLmhhbGZBeGVzKSxufTskTT1uZXcgYSxaTT1uZXcgYSxRTT1uZXcgYSxKTT1uZXcgYSx0Tj1uZXcgYSxlTj1uZXcgYSxuTj1uZXcgdHQsb049e3VuaXRhcnk6bmV3IHR0LGRpYWdvbmFsOm5ldyB0dH07TGUuZnJvbVBvaW50cz1mdW5jdGlvbih0LGUpe2lmKGgoZSl8fChlPW5ldyBMZSksIWgodCl8fHQubGVuZ3RoPT09MClyZXR1cm4gZS5oYWxmQXhlcz10dC5aRVJPLGUuY2VudGVyPWEuWkVSTyxlO2xldCBuLG89dC5sZW5ndGgscj1hLmNsb25lKHRbMF0sJE0pO2ZvcihuPTE7bjxvO24rKylhLmFkZChyLHRbbl0scik7bGV0IGk9MS9vO2EubXVsdGlwbHlCeVNjYWxhcihyLGkscik7bGV0IHM9MCxmPTAsdT0wLGM9MCxsPTAscD0wLGQ7Zm9yKG49MDtuPG87bisrKWQ9YS5zdWJ0cmFjdCh0W25dLHIsWk0pLHMrPWQueCpkLngsZis9ZC54KmQueSx1Kz1kLngqZC56LGMrPWQueSpkLnksbCs9ZC55KmQueixwKz1kLnoqZC56O3MqPWksZio9aSx1Kj1pLGMqPWksbCo9aSxwKj1pO2xldCBtPW5OO21bMF09cyxtWzFdPWYsbVsyXT11LG1bM109ZixtWzRdPWMsbVs1XT1sLG1bNl09dSxtWzddPWwsbVs4XT1wO2xldCBfPXR0LmNvbXB1dGVFaWdlbkRlY29tcG9zaXRpb24obSxvTiksZz10dC5jbG9uZShfLnVuaXRhcnksZS5oYWxmQXhlcyksYj10dC5nZXRDb2x1bW4oZywwLEpNKSxPPXR0LmdldENvbHVtbihnLDEsdE4pLFQ9dHQuZ2V0Q29sdW1uKGcsMixlTiksRT0tTnVtYmVyLk1BWF9WQUxVRSx3PS1OdW1iZXIuTUFYX1ZBTFVFLEM9LU51bWJlci5NQVhfVkFMVUUsTj1OdW1iZXIuTUFYX1ZBTFVFLEk9TnVtYmVyLk1BWF9WQUxVRSxMPU51bWJlci5NQVhfVkFMVUU7Zm9yKG49MDtuPG87bisrKWQ9dFtuXSxFPU1hdGgubWF4KGEuZG90KGIsZCksRSksdz1NYXRoLm1heChhLmRvdChPLGQpLHcpLEM9TWF0aC5tYXgoYS5kb3QoVCxkKSxDKSxOPU1hdGgubWluKGEuZG90KGIsZCksTiksST1NYXRoLm1pbihhLmRvdChPLGQpLEkpLEw9TWF0aC5taW4oYS5kb3QoVCxkKSxMKTtiPWEubXVsdGlwbHlCeVNjYWxhcihiLC41KihOK0UpLGIpLE89YS5tdWx0aXBseUJ5U2NhbGFyKE8sLjUqKEkrdyksTyksVD1hLm11bHRpcGx5QnlTY2FsYXIoVCwuNSooTCtDKSxUKTtsZXQgdj1hLmFkZChiLE8sZS5jZW50ZXIpO2EuYWRkKHYsVCx2KTtsZXQgRD1RTTtyZXR1cm4gRC54PUUtTixELnk9dy1JLEQuej1DLUwsYS5tdWx0aXBseUJ5U2NhbGFyKEQsLjUsRCksdHQubXVsdGlwbHlCeVNjYWxlKGUuaGFsZkF4ZXMsRCxlLmhhbGZBeGVzKSxlfTtrdz1uZXcgYSxyTj1uZXcgYTtGdz1uZXcgY3QsaU49bmV3IGEsc049bmV3IGN0LGNOPW5ldyBjdCxhTj1uZXcgY3QsZk49bmV3IGN0LHVOPW5ldyBjdCxsTj1uZXcgYSxCdz1uZXcgYSxwTj1uZXcgYSxVdz1uZXcgYSxkTj1uZXcgYSxtTj1uZXcgbnQsaE49bmV3IG50LF9OPW5ldyBudCx5Tj1uZXcgbnQsZ049bmV3IG50LEFOPW5ldyBhLGJOPW5ldyBhLHdOPW5ldyBhLFROPW5ldyBhLE9OPW5ldyBudCxFTj1uZXcgYSxSTj1uZXcgYSxTTj1uZXcgYSxDTj1uZXcgb24oYS5VTklUX1gsMCk7TGUuZnJvbVJlY3RhbmdsZT1mdW5jdGlvbih0LGUsbixvLHIpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJyZWN0YW5nbGUgaXMgcmVxdWlyZWQiKTtpZih0LndpZHRoPDB8fHQud2lkdGg+TS5UV09fUEkpdGhyb3cgbmV3IEIoIlJlY3RhbmdsZSB3aWR0aCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMiAqIHBpIik7aWYodC5oZWlnaHQ8MHx8dC5oZWlnaHQ+TS5QSSl0aHJvdyBuZXcgQigiUmVjdGFuZ2xlIGhlaWdodCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgcGkiKTtpZihoKG8pJiYhTS5lcXVhbHNFcHNpbG9uKG8ucmFkaWkueCxvLnJhZGlpLnksTS5FUFNJTE9OMTUpKXRocm93IG5ldyBCKCJFbGxpcHNvaWQgbXVzdCBiZSBhbiBlbGxpcHNvaWQgb2YgcmV2b2x1dGlvbiAocmFkaWkueCA9PSByYWRpaS55KSIpO2U9eChlLDApLG49eChuLDApLG89eChvLCQuV0dTODQpO2xldCBpLHMsZix1LGMsbCxwO2lmKHQud2lkdGg8PU0uUEkpe2xldCBJPVB0LmNlbnRlcih0LEZ3KSxMPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oSSxpTiksdj1uZXcgeW8oTCxvKTtwPXYucGxhbmU7bGV0IEQ9SS5sb25naXR1ZGUsVT10LnNvdXRoPDAmJnQubm9ydGg+MD8wOkkubGF0aXR1ZGUsQT1jdC5mcm9tUmFkaWFucyhELHQubm9ydGgsbixzTiksUz1jdC5mcm9tUmFkaWFucyh0Lndlc3QsdC5ub3J0aCxuLGNOKSxQPWN0LmZyb21SYWRpYW5zKHQud2VzdCxVLG4sYU4pLEY9Y3QuZnJvbVJhZGlhbnModC53ZXN0LHQuc291dGgsbixmTiksaj1jdC5mcm9tUmFkaWFucyhELHQuc291dGgsbix1TiksSD1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEEsbE4pLGs9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihTLEJ3KSxLPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oUCxwTiksWD1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEYsVXcpLFI9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihqLGROKSxRPXYucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZShILG1OKSxmdD12LnByb2plY3RQb2ludFRvTmVhcmVzdE9uUGxhbmUoayxoTikscHQ9di5wcm9qZWN0UG9pbnRUb05lYXJlc3RPblBsYW5lKEssX04pLGd0PXYucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZShYLHlOKSxpdD12LnByb2plY3RQb2ludFRvTmVhcmVzdE9uUGxhbmUoUixnTik7cmV0dXJuIGk9TWF0aC5taW4oZnQueCxwdC54LGd0LngpLHM9LWksdT1NYXRoLm1heChmdC55LFEueSksZj1NYXRoLm1pbihndC55LGl0LnkpLFMuaGVpZ2h0PUYuaGVpZ2h0PWUsaz1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKFMsQncpLFg9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihGLFV3KSxjPU1hdGgubWluKG9uLmdldFBvaW50RGlzdGFuY2UocCxrKSxvbi5nZXRQb2ludERpc3RhbmNlKHAsWCkpLGw9bixMdyh2Lm9yaWdpbix2LnhBeGlzLHYueUF4aXMsdi56QXhpcyxpLHMsZix1LGMsbCxyKX1sZXQgZD10LnNvdXRoPjAsbT10Lm5vcnRoPDAsXz1kP3Quc291dGg6bT90Lm5vcnRoOjAsZz1QdC5jZW50ZXIodCxGdykubG9uZ2l0dWRlLGI9YS5mcm9tUmFkaWFucyhnLF8sbixvLEFOKTtiLno9MDtsZXQgVD1NYXRoLmFicyhiLngpPE0uRVBTSUxPTjEwJiZNYXRoLmFicyhiLnkpPE0uRVBTSUxPTjEwP2EuVU5JVF9YOmEubm9ybWFsaXplKGIsYk4pLEU9YS5VTklUX1osdz1hLmNyb3NzKFQsRSx3Tik7cD1vbi5mcm9tUG9pbnROb3JtYWwoYixULENOKTtsZXQgQz1hLmZyb21SYWRpYW5zKGcrTS5QSV9PVkVSX1RXTyxfLG4sbyxUTik7cz1hLmRvdChvbi5wcm9qZWN0UG9pbnRPbnRvUGxhbmUocCxDLE9OKSx3KSxpPS1zLHU9YS5mcm9tUmFkaWFucygwLHQubm9ydGgsbT9lOm4sbyxFTikueixmPWEuZnJvbVJhZGlhbnMoMCx0LnNvdXRoLGQ/ZTpuLG8sUk4pLno7bGV0IE49YS5mcm9tUmFkaWFucyh0LmVhc3QsXyxuLG8sU04pO3JldHVybiBjPW9uLmdldFBvaW50RGlzdGFuY2UocCxOKSxsPTAsTHcoYix3LEUsVCxpLHMsZix1LGMsbCxyKX07TGUuZnJvbVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidHJhbnNmb3JtYXRpb24iLHQpLGgoZSl8fChlPW5ldyBMZSksZS5jZW50ZXI9c3QuZ2V0VHJhbnNsYXRpb24odCxlLmNlbnRlciksZS5oYWxmQXhlcz1zdC5nZXRNYXRyaXgzKHQsZS5oYWxmQXhlcyksZS5oYWxmQXhlcz10dC5tdWx0aXBseUJ5U2NhbGFyKGUuaGFsZkF4ZXMsLjUsZS5oYWxmQXhlcyksZX07TGUuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhhLmNsb25lKHQuY2VudGVyLGUuY2VudGVyKSx0dC5jbG9uZSh0LmhhbGZBeGVzLGUuaGFsZkF4ZXMpLGUpOm5ldyBMZSh0LmNlbnRlcix0LmhhbGZBeGVzKX07TGUuaW50ZXJzZWN0UGxhbmU9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigiYm94IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJwbGFuZSBpcyByZXF1aXJlZC4iKTtsZXQgbj10LmNlbnRlcixvPWUubm9ybWFsLHI9dC5oYWxmQXhlcyxpPW8ueCxzPW8ueSxmPW8ueix1PU1hdGguYWJzKGkqclt0dC5DT0xVTU4wUk9XMF0rcypyW3R0LkNPTFVNTjBST1cxXStmKnJbdHQuQ09MVU1OMFJPVzJdKStNYXRoLmFicyhpKnJbdHQuQ09MVU1OMVJPVzBdK3Mqclt0dC5DT0xVTU4xUk9XMV0rZipyW3R0LkNPTFVNTjFST1cyXSkrTWF0aC5hYnMoaSpyW3R0LkNPTFVNTjJST1cwXStzKnJbdHQuQ09MVU1OMlJPVzFdK2Yqclt0dC5DT0xVTU4yUk9XMl0pLGM9YS5kb3QobyxuKStlLmRpc3RhbmNlO3JldHVybiBjPD0tdT9Fbi5PVVRTSURFOmM+PXU/RW4uSU5TSURFOkVuLklOVEVSU0VDVElOR307R3c9bmV3IGEsenc9bmV3IGEsanc9bmV3IGEseE49bmV3IGEsVnc9bmV3IGEsUE49bmV3IGE7TGUuZGlzdGFuY2VTcXVhcmVkVG89ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgQigiYm94IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJjYXJ0ZXNpYW4gaXMgcmVxdWlyZWQuIik7bGV0IG49YS5zdWJ0cmFjdChlLHQuY2VudGVyLGt3KSxvPXQuaGFsZkF4ZXMscj10dC5nZXRDb2x1bW4obywwLEd3KSxpPXR0LmdldENvbHVtbihvLDEsencpLHM9dHQuZ2V0Q29sdW1uKG8sMixqdyksZj1hLm1hZ25pdHVkZShyKSx1PWEubWFnbml0dWRlKGkpLGM9YS5tYWduaXR1ZGUocyksbD0hMCxwPSEwLGQ9ITA7Zj4wP2EuZGl2aWRlQnlTY2FsYXIocixmLHIpOmw9ITEsdT4wP2EuZGl2aWRlQnlTY2FsYXIoaSx1LGkpOnA9ITEsYz4wP2EuZGl2aWRlQnlTY2FsYXIocyxjLHMpOmQ9ITE7bGV0IG09IWwrIXArIWQsXyxnLGI7aWYobT09PTEpe2xldCB3PXI7Xz1pLGc9cyxwP2R8fCh3PXMsZz1yKToodz1pLF89ciksYj1hLmNyb3NzKF8sZyxWdyksdz09PXI/cj1iOnc9PT1pP2k9Yjp3PT09cyYmKHM9Yil9ZWxzZSBpZihtPT09Mil7Xz1yLHA/Xz1pOmQmJihfPXMpO2xldCB3PWEuVU5JVF9ZO3cuZXF1YWxzRXBzaWxvbihfLE0uRVBTSUxPTjMpJiYodz1hLlVOSVRfWCksZz1hLmNyb3NzKF8sdyx4TiksYS5ub3JtYWxpemUoZyxnKSxiPWEuY3Jvc3MoXyxnLFZ3KSxhLm5vcm1hbGl6ZShiLGIpLF89PT1yPyhpPWcscz1iKTpfPT09aT8ocz1nLHI9Yik6Xz09PXMmJihyPWcsaT1iKX1lbHNlIG09PT0zJiYocj1hLlVOSVRfWCxpPWEuVU5JVF9ZLHM9YS5VTklUX1opO2xldCBPPVBOO08ueD1hLmRvdChuLHIpLE8ueT1hLmRvdChuLGkpLE8uej1hLmRvdChuLHMpO2xldCBUPTAsRTtyZXR1cm4gTy54PC1mPyhFPU8ueCtmLFQrPUUqRSk6Ty54PmYmJihFPU8ueC1mLFQrPUUqRSksTy55PC11PyhFPU8ueSt1LFQrPUUqRSk6Ty55PnUmJihFPU8ueS11LFQrPUUqRSksTy56PC1jPyhFPU8ueitjLFQrPUUqRSk6Ty56PmMmJihFPU8uei1jLFQrPUUqRSksVH07TU49bmV3IGEsTk49bmV3IGE7TGUuY29tcHV0ZVBsYW5lRGlzdGFuY2VzPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJib3ggaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoInBvc2l0aW9uIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJkaXJlY3Rpb24gaXMgcmVxdWlyZWQuIik7aChvKXx8KG89bmV3IFFyKTtsZXQgcj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksaT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkscz10LmNlbnRlcixmPXQuaGFsZkF4ZXMsdT10dC5nZXRDb2x1bW4oZiwwLEd3KSxjPXR0LmdldENvbHVtbihmLDEsencpLGw9dHQuZ2V0Q29sdW1uKGYsMixqdykscD1hLmFkZCh1LGMsTU4pO2EuYWRkKHAsbCxwKSxhLmFkZChwLHMscCk7bGV0IGQ9YS5zdWJ0cmFjdChwLGUsTk4pLG09YS5kb3QobixkKTtyZXR1cm4gcj1NYXRoLm1pbihtLHIpLGk9TWF0aC5tYXgobSxpKSxhLmFkZChzLHUscCksYS5hZGQocCxjLHApLGEuc3VidHJhY3QocCxsLHApLGEuc3VidHJhY3QocCxlLGQpLG09YS5kb3QobixkKSxyPU1hdGgubWluKG0sciksaT1NYXRoLm1heChtLGkpLGEuYWRkKHMsdSxwKSxhLnN1YnRyYWN0KHAsYyxwKSxhLmFkZChwLGwscCksYS5zdWJ0cmFjdChwLGUsZCksbT1hLmRvdChuLGQpLHI9TWF0aC5taW4obSxyKSxpPU1hdGgubWF4KG0saSksYS5hZGQocyx1LHApLGEuc3VidHJhY3QocCxjLHApLGEuc3VidHJhY3QocCxsLHApLGEuc3VidHJhY3QocCxlLGQpLG09YS5kb3QobixkKSxyPU1hdGgubWluKG0sciksaT1NYXRoLm1heChtLGkpLGEuc3VidHJhY3Qocyx1LHApLGEuYWRkKHAsYyxwKSxhLmFkZChwLGwscCksYS5zdWJ0cmFjdChwLGUsZCksbT1hLmRvdChuLGQpLHI9TWF0aC5taW4obSxyKSxpPU1hdGgubWF4KG0saSksYS5zdWJ0cmFjdChzLHUscCksYS5hZGQocCxjLHApLGEuc3VidHJhY3QocCxsLHApLGEuc3VidHJhY3QocCxlLGQpLG09YS5kb3QobixkKSxyPU1hdGgubWluKG0sciksaT1NYXRoLm1heChtLGkpLGEuc3VidHJhY3Qocyx1LHApLGEuc3VidHJhY3QocCxjLHApLGEuYWRkKHAsbCxwKSxhLnN1YnRyYWN0KHAsZSxkKSxtPWEuZG90KG4sZCkscj1NYXRoLm1pbihtLHIpLGk9TWF0aC5tYXgobSxpKSxhLnN1YnRyYWN0KHMsdSxwKSxhLnN1YnRyYWN0KHAsYyxwKSxhLnN1YnRyYWN0KHAsbCxwKSxhLnN1YnRyYWN0KHAsZSxkKSxtPWEuZG90KG4sZCkscj1NYXRoLm1pbihtLHIpLGk9TWF0aC5tYXgobSxpKSxvLnN0YXJ0PXIsby5zdG9wPWksb307SU49bmV3IGEsdk49bmV3IGEsRE49bmV3IGE7TGUuY29tcHV0ZUNvcm5lcnM9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImJveCIsdCksaChlKXx8KGU9W25ldyBhLG5ldyBhLG5ldyBhLG5ldyBhLG5ldyBhLG5ldyBhLG5ldyBhLG5ldyBhXSk7bGV0IG49dC5jZW50ZXIsbz10LmhhbGZBeGVzLHI9dHQuZ2V0Q29sdW1uKG8sMCxJTiksaT10dC5nZXRDb2x1bW4obywxLHZOKSxzPXR0LmdldENvbHVtbihvLDIsRE4pO3JldHVybiBhLmNsb25lKG4sZVswXSksYS5zdWJ0cmFjdChlWzBdLHIsZVswXSksYS5zdWJ0cmFjdChlWzBdLGksZVswXSksYS5zdWJ0cmFjdChlWzBdLHMsZVswXSksYS5jbG9uZShuLGVbMV0pLGEuc3VidHJhY3QoZVsxXSxyLGVbMV0pLGEuc3VidHJhY3QoZVsxXSxpLGVbMV0pLGEuYWRkKGVbMV0scyxlWzFdKSxhLmNsb25lKG4sZVsyXSksYS5zdWJ0cmFjdChlWzJdLHIsZVsyXSksYS5hZGQoZVsyXSxpLGVbMl0pLGEuc3VidHJhY3QoZVsyXSxzLGVbMl0pLGEuY2xvbmUobixlWzNdKSxhLnN1YnRyYWN0KGVbM10scixlWzNdKSxhLmFkZChlWzNdLGksZVszXSksYS5hZGQoZVszXSxzLGVbM10pLGEuY2xvbmUobixlWzRdKSxhLmFkZChlWzRdLHIsZVs0XSksYS5zdWJ0cmFjdChlWzRdLGksZVs0XSksYS5zdWJ0cmFjdChlWzRdLHMsZVs0XSksYS5jbG9uZShuLGVbNV0pLGEuYWRkKGVbNV0scixlWzVdKSxhLnN1YnRyYWN0KGVbNV0saSxlWzVdKSxhLmFkZChlWzVdLHMsZVs1XSksYS5jbG9uZShuLGVbNl0pLGEuYWRkKGVbNl0scixlWzZdKSxhLmFkZChlWzZdLGksZVs2XSksYS5zdWJ0cmFjdChlWzZdLHMsZVs2XSksYS5jbG9uZShuLGVbN10pLGEuYWRkKGVbN10scixlWzddKSxhLmFkZChlWzddLGksZVs3XSksYS5hZGQoZVs3XSxzLGVbN10pLGV9O0xOPW5ldyB0dDtMZS5jb21wdXRlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImJveCIsdCksaChlKXx8KGU9bmV3IHN0KTtsZXQgbj10LmNlbnRlcixvPXR0Lm11bHRpcGx5QnlVbmlmb3JtU2NhbGUodC5oYWxmQXhlcywyLExOKTtyZXR1cm4gc3QuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24obyxuLGUpfTtGTj1uZXcgeXQ7TGUuaXNPY2NsdWRlZD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJib3ggaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoIm9jY2x1ZGVyIGlzIHJlcXVpcmVkLiIpO2xldCBuPXl0LmZyb21PcmllbnRlZEJvdW5kaW5nQm94KHQsRk4pO3JldHVybiFlLmlzQm91bmRpbmdTcGhlcmVWaXNpYmxlKG4pfTtMZS5wcm90b3R5cGUuaW50ZXJzZWN0UGxhbmU9ZnVuY3Rpb24odCl7cmV0dXJuIExlLmludGVyc2VjdFBsYW5lKHRoaXMsdCl9O0xlLnByb3RvdHlwZS5kaXN0YW5jZVNxdWFyZWRUbz1mdW5jdGlvbih0KXtyZXR1cm4gTGUuZGlzdGFuY2VTcXVhcmVkVG8odGhpcyx0KX07TGUucHJvdG90eXBlLmNvbXB1dGVQbGFuZURpc3RhbmNlcz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIExlLmNvbXB1dGVQbGFuZURpc3RhbmNlcyh0aGlzLHQsZSxuKX07TGUucHJvdG90eXBlLmNvbXB1dGVDb3JuZXJzPWZ1bmN0aW9uKHQpe3JldHVybiBMZS5jb21wdXRlQ29ybmVycyh0aGlzLHQpfTtMZS5wcm90b3R5cGUuY29tcHV0ZVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBMZS5jb21wdXRlVHJhbnNmb3JtYXRpb24odGhpcyx0KX07TGUucHJvdG90eXBlLmlzT2NjbHVkZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIExlLmlzT2NjbHVkZWQodGhpcyx0KX07TGUuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZhLmVxdWFscyh0LmNlbnRlcixlLmNlbnRlcikmJnR0LmVxdWFscyh0LmhhbGZBeGVzLGUuaGFsZkF4ZXMpfTtMZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIExlLmNsb25lKHRoaXMsdCl9O0xlLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIExlLmVxdWFscyh0aGlzLHQpfTtDbz1MZX0pO2Z1bmN0aW9uIFh3KHQsZSxuLG8scil7bGV0IGk9YS5zdWJ0cmFjdCh0LGUsQk4pLHM9YS5kb3QobixpKSxmPWEuZG90KG8saSk7cmV0dXJuIG50LmZyb21FbGVtZW50cyhzLGYscil9dmFyIE1mLEJOLEh3LHF3LEt3LFd3LG1hLHcwPVooKCk9Pnt6ZSgpO1V0KCk7WXQoKTtGbigpO2RhKCk7TWY9e30sQk49bmV3IGEsSHc9bmV3IGEscXc9bmV3IGEsS3c9bmV3IGEsV3c9bmV3IENvO01mLnZhbGlkT3V0bGluZT1mdW5jdGlvbih0KXt5LmRlZmluZWQoInBvc2l0aW9ucyIsdCk7bGV0IG49Q28uZnJvbVBvaW50cyh0LFd3KS5oYWxmQXhlcyxvPXR0LmdldENvbHVtbihuLDAsSHcpLHI9dHQuZ2V0Q29sdW1uKG4sMSxxdyksaT10dC5nZXRDb2x1bW4obiwyLEt3KSxzPWEubWFnbml0dWRlKG8pLGY9YS5tYWduaXR1ZGUociksdT1hLm1hZ25pdHVkZShpKTtyZXR1cm4hKHM9PT0wJiYoZj09PTB8fHU9PT0wKXx8Zj09PTAmJnU9PT0wKX07TWYuY29tcHV0ZVByb2plY3RUbzJEQXJndW1lbnRzPWZ1bmN0aW9uKHQsZSxuLG8pe3kuZGVmaW5lZCgicG9zaXRpb25zIix0KSx5LmRlZmluZWQoImNlbnRlclJlc3VsdCIsZSkseS5kZWZpbmVkKCJwbGFuZUF4aXMxUmVzdWx0IixuKSx5LmRlZmluZWQoInBsYW5lQXhpczJSZXN1bHQiLG8pO2xldCByPUNvLmZyb21Qb2ludHModCxXdyksaT1yLmhhbGZBeGVzLHM9dHQuZ2V0Q29sdW1uKGksMCxIdyksZj10dC5nZXRDb2x1bW4oaSwxLHF3KSx1PXR0LmdldENvbHVtbihpLDIsS3cpLGM9YS5tYWduaXR1ZGUocyksbD1hLm1hZ25pdHVkZShmKSxwPWEubWFnbml0dWRlKHUpLGQ9TWF0aC5taW4oYyxsLHApO2lmKGM9PT0wJiYobD09PTB8fHA9PT0wKXx8bD09PTAmJnA9PT0wKXJldHVybiExO2xldCBtLF87cmV0dXJuKGQ9PT1sfHxkPT09cCkmJihtPXMpLGQ9PT1jP209ZjpkPT09cCYmKF89ZiksKGQ9PT1jfHxkPT09bCkmJihfPXUpLGEubm9ybWFsaXplKG0sbiksYS5ub3JtYWxpemUoXyxvKSxhLmNsb25lKHIuY2VudGVyLGUpLCEwfTtNZi5jcmVhdGVQcm9qZWN0UG9pbnRzVG8yREZ1bmN0aW9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24obyl7bGV0IHI9bmV3IEFycmF5KG8ubGVuZ3RoKTtmb3IobGV0IGk9MDtpPG8ubGVuZ3RoO2krKylyW2ldPVh3KG9baV0sdCxlLG4pO3JldHVybiByfX07TWYuY3JlYXRlUHJvamVjdFBvaW50VG8yREZ1bmN0aW9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24obyxyKXtyZXR1cm4gWHcobyx0LGUsbixyKX19O21hPU1mfSk7dmFyIFVOLHVlLGZjPVooKCk9PntVTj17Tk9ORTowLEdFT0RFU0lDOjEsUkhVTUI6Mn0sdWU9T2JqZWN0LmZyZWV6ZShVTil9KTtmdW5jdGlvbiBPMCh0LGUsbil7aWYodD09PTApcmV0dXJuIGUqbjtsZXQgbz10KnQscj1vKm8saT1yKm8scz1pKm8sZj1zKm8sdT1mKm8sYz1uLGw9TWF0aC5zaW4oMipjKSxwPU1hdGguc2luKDQqYyksZD1NYXRoLnNpbig2KmMpLG09TWF0aC5zaW4oOCpjKSxfPU1hdGguc2luKDEwKmMpLGc9TWF0aC5zaW4oMTIqYyk7cmV0dXJuIGUqKCgxLW8vNC0zKnIvNjQtNSppLzI1Ni0xNzUqcy8xNjM4NC00NDEqZi82NTUzNi00ODUxKnUvMTA0ODU3NikqYy0oMypvLzgrMypyLzMyKzQ1KmkvMTAyNCsxMDUqcy80MDk2KzIyMDUqZi8xMzEwNzIrNjIzNyp1LzUyNDI4OCkqbCsoMTUqci8yNTYrNDUqaS8xMDI0KzUyNSpzLzE2Mzg0KzE1NzUqZi82NTUzNisxNTU5MjUqdS84Mzg4NjA4KSpwLSgzNSppLzMwNzIrMTc1KnMvMTIyODgrMzY3NSpmLzI2MjE0NCsxMzQ3NSp1LzEwNDg1NzYpKmQrKDMxNSpzLzEzMTA3MisyMjA1KmYvNTI0Mjg4KzQzNjU5KnUvODM4ODYwOCkqbS0oNjkzKmYvMTMxMDcyMCs2MjM3KnUvNTI0Mjg4MCkqXysxMDAxKnUvODM4ODYwOCpnKX1mdW5jdGlvbiBWTih0LGUsbil7bGV0IG89dC9uO2lmKGU9PT0wKXJldHVybiBvO2xldCByPW8qbyxpPXIqbyxzPWkqbyxmPWUsdT1mKmYsYz11KnUsbD1jKnUscD1sKnUsZD1wKnUsbT1kKnUsXz1NYXRoLnNpbigyKm8pLGc9TWF0aC5jb3MoMipvKSxiPU1hdGguc2luKDQqbyksTz1NYXRoLmNvcyg0Km8pLFQ9TWF0aC5zaW4oNipvKSxFPU1hdGguY29zKDYqbyksdz1NYXRoLnNpbig4Km8pLEM9TWF0aC5jb3MoOCpvKSxOPU1hdGguc2luKDEwKm8pLEk9TWF0aC5jb3MoMTAqbyksTD1NYXRoLnNpbigxMipvKTtyZXR1cm4gbytvKnUvNCs3Km8qYy82NCsxNSpvKmwvMjU2KzU3OSpvKnAvMTYzODQrMTUxNSpvKmQvNjU1MzYrMTY4MzcqbyptLzEwNDg1NzYrKDMqbypjLzE2KzQ1Km8qbC8yNTYtbyooMzIqci01NjEpKnAvNDA5Ni1vKigyMzIqci0xNjc3KSpkLzE2Mzg0K28qKDM5OTk4NS05MDU2MCpyKzUxMipzKSptLzUyNDI4ODApKmcrKDIxKm8qbC8yNTYrNDgzKm8qcC80MDk2LW8qKDIyNCpyLTE5NjkpKmQvMTYzODQtbyooMzMxNTIqci0xMTI1OTkpKm0vMTA0ODU3NikqTysoMTUxKm8qcC80MDk2KzQ2ODEqbypkLzY1NTM2KzE0NzkqbyptLzE2Mzg0LTQ1MyppKm0vMzI3NjgpKkUrKDEwOTcqbypkLzY1NTM2KzQyNzgzKm8qbS8xMDQ4NTc2KSpDKzgwMTEqbyptLzEwNDg1NzYqSSsoMyp1LzgrMypjLzE2KzIxMypsLzIwNDgtMypyKmwvNjQrMjU1KnAvNDA5Ni0zMypyKnAvNTEyKzIwODYxKmQvNTI0Mjg4LTMzKnIqZC81MTIrcypkLzEwMjQrMjgyNzMqbS8xMDQ4NTc2LTQ3MSpyKm0vODE5Mis5KnMqbS80MDk2KSpfKygyMSpjLzI1NisyMSpsLzI1Nis1MzMqcC84MTkyLTIxKnIqcC81MTIrMTk3KmQvNDA5Ni0zMTUqcipkLzQwOTYrNTg0MDM5Km0vMTY3NzcyMTYtMTI1MTcqciptLzEzMTA3Mis3KnMqbS8yMDQ4KSpiKygxNTEqbC82MTQ0KzE1MSpwLzQwOTYrNTAxOSpkLzEzMTA3Mi00NTMqcipkLzE2Mzg0KzI2OTY1Km0vNzg2NDMyLTg2MDcqciptLzEzMTA3MikqVCsoMTA5NypwLzEzMTA3MisxMDk3KmQvNjU1MzYrMjI1Nzk3Km0vMTA0ODU3NjAtMTA5NypyKm0vNjU1MzYpKncrKDgwMTEqZC8yNjIxNDQwKzgwMTEqbS8xMDQ4NTc2KSpOKzI5MzM5MyptLzI1MTY1ODI0MCpMfWZ1bmN0aW9uIGhhKHQsZSl7aWYodD09PTApcmV0dXJuIE1hdGgubG9nKE1hdGgudGFuKC41KihNLlBJX09WRVJfVFdPK2UpKSk7bGV0IG49dCpNYXRoLnNpbihlKTtyZXR1cm4gTWF0aC5sb2coTWF0aC50YW4oLjUqKE0uUElfT1ZFUl9UV08rZSkpKS10LzIqTWF0aC5sb2coKDErbikvKDEtbikpfWZ1bmN0aW9uIGtOKHQsZSxuLG8scil7bGV0IGk9aGEodC5fZWxsaXB0aWNpdHksbikscz1oYSh0Ll9lbGxpcHRpY2l0eSxyKTtyZXR1cm4gTWF0aC5hdGFuMihNLm5lZ2F0aXZlUGlUb1BpKG8tZSkscy1pKX1mdW5jdGlvbiBHTih0LGUsbixvLHIsaSxzKXtsZXQgZj10Ll9oZWFkaW5nLHU9aS1vLGM9MDtpZihNLmVxdWFsc0Vwc2lsb24oTWF0aC5hYnMoZiksTS5QSV9PVkVSX1RXTyxNLkVQU0lMT044KSlpZihlPT09biljPWUqTWF0aC5jb3MocikqTS5uZWdhdGl2ZVBpVG9QaSh1KTtlbHNle2xldCBsPU1hdGguc2luKHIpO2M9ZSpNYXRoLmNvcyhyKSpNLm5lZ2F0aXZlUGlUb1BpKHUpL01hdGguc3FydCgxLXQuX2VsbGlwdGljaXR5U3F1YXJlZCpsKmwpfWVsc2V7bGV0IGw9TzAodC5fZWxsaXB0aWNpdHksZSxyKTtjPShPMCh0Ll9lbGxpcHRpY2l0eSxlLHMpLWwpL01hdGguY29zKGYpfXJldHVybiBNYXRoLmFicyhjKX1mdW5jdGlvbiBZdyh0LGUsbixvKXtsZXQgcj1hLm5vcm1hbGl6ZShvLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGUsVDApLHpOKSxpPWEubm9ybWFsaXplKG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4obixUMCksVDApO3kudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ2YWx1ZSIsTWF0aC5hYnMoTWF0aC5hYnMoYS5hbmdsZUJldHdlZW4ocixpKSktTWF0aC5QSSksLjAxMjUpO2xldCBzPW8ubWF4aW11bVJhZGl1cyxmPW8ubWluaW11bVJhZGl1cyx1PXMqcyxjPWYqZjt0Ll9lbGxpcHRpY2l0eVNxdWFyZWQ9KHUtYykvdSx0Ll9lbGxpcHRpY2l0eT1NYXRoLnNxcnQodC5fZWxsaXB0aWNpdHlTcXVhcmVkKSx0Ll9zdGFydD1jdC5jbG9uZShlLHQuX3N0YXJ0KSx0Ll9zdGFydC5oZWlnaHQ9MCx0Ll9lbmQ9Y3QuY2xvbmUobix0Ll9lbmQpLHQuX2VuZC5oZWlnaHQ9MCx0Ll9oZWFkaW5nPWtOKHQsZS5sb25naXR1ZGUsZS5sYXRpdHVkZSxuLmxvbmdpdHVkZSxuLmxhdGl0dWRlKSx0Ll9kaXN0YW5jZT1HTih0LG8ubWF4aW11bVJhZGl1cyxvLm1pbmltdW1SYWRpdXMsZS5sb25naXR1ZGUsZS5sYXRpdHVkZSxuLmxvbmdpdHVkZSxuLmxhdGl0dWRlKX1mdW5jdGlvbiAkdyh0LGUsbixvLHIsaSl7aWYobj09PTApcmV0dXJuIGN0LmNsb25lKHQsaSk7bGV0IHM9cipyLGYsdSxjO2lmKE1hdGguYWJzKE0uUElfT1ZFUl9UV08tTWF0aC5hYnMoZSkpPk0uRVBTSUxPTjgpe2xldCBsPU8wKHIsbyx0LmxhdGl0dWRlKSxwPW4qTWF0aC5jb3MoZSksZD1sK3A7aWYodT1WTihkLHIsbyksTWF0aC5hYnMoZSk8TS5FUFNJTE9OMTApZj1NLm5lZ2F0aXZlUGlUb1BpKHQubG9uZ2l0dWRlKTtlbHNle2xldCBtPWhhKHIsdC5sYXRpdHVkZSksXz1oYShyLHUpO2M9TWF0aC50YW4oZSkqKF8tbSksZj1NLm5lZ2F0aXZlUGlUb1BpKHQubG9uZ2l0dWRlK2MpfX1lbHNle3U9dC5sYXRpdHVkZTtsZXQgbDtpZihyPT09MClsPW8qTWF0aC5jb3ModC5sYXRpdHVkZSk7ZWxzZXtsZXQgcD1NYXRoLnNpbih0LmxhdGl0dWRlKTtsPW8qTWF0aC5jb3ModC5sYXRpdHVkZSkvTWF0aC5zcXJ0KDEtcypwKnApfWM9bi9sLGU+MD9mPU0ubmVnYXRpdmVQaVRvUGkodC5sb25naXR1ZGUrYyk6Zj1NLm5lZ2F0aXZlUGlUb1BpKHQubG9uZ2l0dWRlLWMpfXJldHVybiBoKGkpPyhpLmxvbmdpdHVkZT1mLGkubGF0aXR1ZGU9dSxpLmhlaWdodD0wLGkpOm5ldyBjdChmLHUsMCl9ZnVuY3Rpb24gTGkodCxlLG4pe2xldCBvPXgobiwkLldHUzg0KTt0aGlzLl9lbGxpcHNvaWQ9byx0aGlzLl9zdGFydD1uZXcgY3QsdGhpcy5fZW5kPW5ldyBjdCx0aGlzLl9oZWFkaW5nPXZvaWQgMCx0aGlzLl9kaXN0YW5jZT12b2lkIDAsdGhpcy5fZWxsaXB0aWNpdHk9dm9pZCAwLHRoaXMuX2VsbGlwdGljaXR5U3F1YXJlZD12b2lkIDAsaCh0KSYmaChlKSYmWXcodGhpcyx0LGUsbyl9dmFyIHpOLFQwLEpvLE5mPVooKCk9PntVdCgpO3ZlKCk7WXQoKTtJdCgpO2F0KCk7SHQoKTtadCgpO1d0KCk7ek49bmV3IGEsVDA9bmV3IGE7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoTGkucHJvdG90eXBlLHtlbGxpcHNvaWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGxpcHNvaWR9fSxzdXJmYWNlRGlzdGFuY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiB5LmRlZmluZWQoImRpc3RhbmNlIix0aGlzLl9kaXN0YW5jZSksdGhpcy5fZGlzdGFuY2V9fSxzdGFydDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXJ0fX0sZW5kOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5kfX0saGVhZGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVmaW5lZCgiZGlzdGFuY2UiLHRoaXMuX2Rpc3RhbmNlKSx0aGlzLl9oZWFkaW5nfX19KTtMaS5mcm9tU3RhcnRIZWFkaW5nRGlzdGFuY2U9ZnVuY3Rpb24odCxlLG4sbyxyKXt5LmRlZmluZWQoInN0YXJ0Iix0KSx5LmRlZmluZWQoImhlYWRpbmciLGUpLHkuZGVmaW5lZCgiZGlzdGFuY2UiLG4pLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbigiZGlzdGFuY2UiLG4sMCk7bGV0IGk9eChvLCQuV0dTODQpLHM9aS5tYXhpbXVtUmFkaXVzLGY9aS5taW5pbXVtUmFkaXVzLHU9cypzLGM9ZipmLGw9TWF0aC5zcXJ0KCh1LWMpL3UpO2U9TS5uZWdhdGl2ZVBpVG9QaShlKTtsZXQgcD0kdyh0LGUsbixpLm1heGltdW1SYWRpdXMsbCk7cmV0dXJuIWgocil8fGgobykmJiFvLmVxdWFscyhyLmVsbGlwc29pZCk/bmV3IExpKHQscCxpKTooci5zZXRFbmRQb2ludHModCxwKSxyKX07TGkucHJvdG90eXBlLnNldEVuZFBvaW50cz1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgic3RhcnQiLHQpLHkuZGVmaW5lZCgiZW5kIixlKSxZdyh0aGlzLHQsZSx0aGlzLl9lbGxpcHNvaWQpfTtMaS5wcm90b3R5cGUuaW50ZXJwb2xhdGVVc2luZ0ZyYWN0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZSh0KnRoaXMuX2Rpc3RhbmNlLGUpfTtMaS5wcm90b3R5cGUuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZT1mdW5jdGlvbih0LGUpe2lmKHkudHlwZU9mLm51bWJlcigiZGlzdGFuY2UiLHQpLCFoKHRoaXMuX2Rpc3RhbmNlKXx8dGhpcy5fZGlzdGFuY2U9PT0wKXRocm93IG5ldyBCKCJFbGxpcHNvaWRSaHVtYkxpbmUgbXVzdCBoYXZlIGRpc3RpbmN0IHN0YXJ0IGFuZCBlbmQgc2V0LiIpO3JldHVybiAkdyh0aGlzLl9zdGFydCx0aGlzLl9oZWFkaW5nLHQsdGhpcy5fZWxsaXBzb2lkLm1heGltdW1SYWRpdXMsdGhpcy5fZWxsaXB0aWNpdHksZSl9O0xpLnByb3RvdHlwZS5maW5kSW50ZXJzZWN0aW9uV2l0aExvbmdpdHVkZT1mdW5jdGlvbih0LGUpe2lmKHkudHlwZU9mLm51bWJlcigiaW50ZXJzZWN0aW9uTG9uZ2l0dWRlIix0KSwhaCh0aGlzLl9kaXN0YW5jZSl8fHRoaXMuX2Rpc3RhbmNlPT09MCl0aHJvdyBuZXcgQigiRWxsaXBzb2lkUmh1bWJMaW5lIG11c3QgaGF2ZSBkaXN0aW5jdCBzdGFydCBhbmQgZW5kIHNldC4iKTtsZXQgbj10aGlzLl9lbGxpcHRpY2l0eSxvPXRoaXMuX2hlYWRpbmcscj1NYXRoLmFicyhvKSxpPXRoaXMuX3N0YXJ0O2lmKHQ9TS5uZWdhdGl2ZVBpVG9QaSh0KSxNLmVxdWFsc0Vwc2lsb24oTWF0aC5hYnModCksTWF0aC5QSSxNLkVQU0lMT04xNCkmJih0PU0uc2lnbihpLmxvbmdpdHVkZSkqTWF0aC5QSSksaChlKXx8KGU9bmV3IGN0KSxNYXRoLmFicyhNLlBJX09WRVJfVFdPLXIpPD1NLkVQU0lMT044KXJldHVybiBlLmxvbmdpdHVkZT10LGUubGF0aXR1ZGU9aS5sYXRpdHVkZSxlLmhlaWdodD0wLGU7aWYoTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKE0uUElfT1ZFUl9UV08tciksTS5QSV9PVkVSX1RXTyxNLkVQU0lMT044KSlyZXR1cm4gTS5lcXVhbHNFcHNpbG9uKHQsaS5sb25naXR1ZGUsTS5FUFNJTE9OMTIpP3ZvaWQgMDooZS5sb25naXR1ZGU9dCxlLmxhdGl0dWRlPU0uUElfT1ZFUl9UV08qTS5zaWduKE0uUElfT1ZFUl9UV08tbyksZS5oZWlnaHQ9MCxlKTtsZXQgcz1pLmxhdGl0dWRlLGY9bipNYXRoLnNpbihzKSx1PU1hdGgudGFuKC41KihNLlBJX09WRVJfVFdPK3MpKSpNYXRoLmV4cCgodC1pLmxvbmdpdHVkZSkvTWF0aC50YW4obykpLGM9KDErZikvKDEtZiksbD1pLmxhdGl0dWRlLHA7ZG97cD1sO2xldCBkPW4qTWF0aC5zaW4ocCksbT0oMStkKS8oMS1kKTtsPTIqTWF0aC5hdGFuKHUqTWF0aC5wb3cobS9jLG4vMikpLU0uUElfT1ZFUl9UV099d2hpbGUoIU0uZXF1YWxzRXBzaWxvbihsLHAsTS5FUFNJTE9OMTIpKTtyZXR1cm4gZS5sb25naXR1ZGU9dCxlLmxhdGl0dWRlPWwsZS5oZWlnaHQ9MCxlfTtMaS5wcm90b3R5cGUuZmluZEludGVyc2VjdGlvbldpdGhMYXRpdHVkZT1mdW5jdGlvbih0LGUpe2lmKHkudHlwZU9mLm51bWJlcigiaW50ZXJzZWN0aW9uTGF0aXR1ZGUiLHQpLCFoKHRoaXMuX2Rpc3RhbmNlKXx8dGhpcy5fZGlzdGFuY2U9PT0wKXRocm93IG5ldyBCKCJFbGxpcHNvaWRSaHVtYkxpbmUgbXVzdCBoYXZlIGRpc3RpbmN0IHN0YXJ0IGFuZCBlbmQgc2V0LiIpO2xldCBuPXRoaXMuX2VsbGlwdGljaXR5LG89dGhpcy5faGVhZGluZyxyPXRoaXMuX3N0YXJ0O2lmKE0uZXF1YWxzRXBzaWxvbihNYXRoLmFicyhvKSxNLlBJX09WRVJfVFdPLE0uRVBTSUxPTjgpKXJldHVybjtsZXQgaT1oYShuLHIubGF0aXR1ZGUpLHM9aGEobix0KSxmPU1hdGgudGFuKG8pKihzLWkpLHU9TS5uZWdhdGl2ZVBpVG9QaShyLmxvbmdpdHVkZStmKTtyZXR1cm4gaChlKT8oZS5sb25naXR1ZGU9dSxlLmxhdGl0dWRlPXQsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodSx0LDApfTtKbz1MaX0pO2Z1bmN0aW9uIGpOKHQsZSl7dGhpcy5wb3NpdGlvbnM9aCh0KT90OltdLHRoaXMuaG9sZXM9aChlKT9lOltdfXZhciBadyxRdz1aKCgpPT57YXQoKTtadz1qTn0pO3ZhciBvVD1Vbigob1gsQzApPT57InVzZSBzdHJpY3QiO0MwLmV4cG9ydHM9ZWQ7QzAuZXhwb3J0cy5kZWZhdWx0PWVkO2Z1bmN0aW9uIGVkKHQsZSxuKXtuPW58fDI7dmFyIG89ZSYmZS5sZW5ndGgscj1vP2VbMF0qbjp0Lmxlbmd0aCxpPXRUKHQsMCxyLG4sITApLHM9W107aWYoIWl8fGkubmV4dD09PWkucHJldilyZXR1cm4gczt2YXIgZix1LGMsbCxwLGQsbTtpZihvJiYoaT1YTih0LGUsaSxuKSksdC5sZW5ndGg+ODAqbil7Zj1jPXRbMF0sdT1sPXRbMV07Zm9yKHZhciBfPW47XzxyO18rPW4pcD10W19dLGQ9dFtfKzFdLHA8ZiYmKGY9cCksZDx1JiYodT1kKSxwPmMmJihjPXApLGQ+bCYmKGw9ZCk7bT1NYXRoLm1heChjLWYsbC11KSxtPW0hPT0wPzMyNzY3L206MH1yZXR1cm4gSWYoaSxzLG4sZix1LG0sMCksc31mdW5jdGlvbiB0VCh0LGUsbixvLHIpe3ZhciBpLHM7aWYocj09PVMwKHQsZSxuLG8pPjApZm9yKGk9ZTtpPG47aSs9bylzPUp3KGksdFtpXSx0W2krMV0scyk7ZWxzZSBmb3IoaT1uLW87aT49ZTtpLT1vKXM9SncoaSx0W2ldLHRbaSsxXSxzKTtyZXR1cm4gcyYmbmQocyxzLm5leHQpJiYoRGYocykscz1zLm5leHQpLHN9ZnVuY3Rpb24gdWModCxlKXtpZighdClyZXR1cm4gdDtlfHwoZT10KTt2YXIgbj10LG87ZG8gaWYobz0hMSwhbi5zdGVpbmVyJiYobmQobixuLm5leHQpfHxJbihuLnByZXYsbixuLm5leHQpPT09MCkpe2lmKERmKG4pLG49ZT1uLnByZXYsbj09PW4ubmV4dClicmVhaztvPSEwfWVsc2Ugbj1uLm5leHQ7d2hpbGUob3x8biE9PWUpO3JldHVybiBlfWZ1bmN0aW9uIElmKHQsZSxuLG8scixpLHMpe2lmKHQpeyFzJiZpJiZKTih0LG8scixpKTtmb3IodmFyIGY9dCx1LGM7dC5wcmV2IT09dC5uZXh0Oyl7aWYodT10LnByZXYsYz10Lm5leHQsaT9xTih0LG8scixpKTpITih0KSl7ZS5wdXNoKHUuaS9ufDApLGUucHVzaCh0LmkvbnwwKSxlLnB1c2goYy5pL258MCksRGYodCksdD1jLm5leHQsZj1jLm5leHQ7Y29udGludWV9aWYodD1jLHQ9PT1mKXtzP3M9PT0xPyh0PUtOKHVjKHQpLGUsbiksSWYodCxlLG4sbyxyLGksMikpOnM9PT0yJiZXTih0LGUsbixvLHIsaSk6SWYodWModCksZSxuLG8scixpLDEpO2JyZWFrfX19fWZ1bmN0aW9uIEhOKHQpe3ZhciBlPXQucHJldixuPXQsbz10Lm5leHQ7aWYoSW4oZSxuLG8pPj0wKXJldHVybiExO2Zvcih2YXIgcj1lLngsaT1uLngscz1vLngsZj1lLnksdT1uLnksYz1vLnksbD1yPGk/cjxzP3I6czppPHM/aTpzLHA9Zjx1P2Y8Yz9mOmM6dTxjP3U6YyxkPXI+aT9yPnM/cjpzOmk+cz9pOnMsbT1mPnU/Zj5jP2Y6Yzp1PmM/dTpjLF89by5uZXh0O18hPT1lOyl7aWYoXy54Pj1sJiZfLng8PWQmJl8ueT49cCYmXy55PD1tJiZfYShyLGYsaSx1LHMsYyxfLngsXy55KSYmSW4oXy5wcmV2LF8sXy5uZXh0KT49MClyZXR1cm4hMTtfPV8ubmV4dH1yZXR1cm4hMH1mdW5jdGlvbiBxTih0LGUsbixvKXt2YXIgcj10LnByZXYsaT10LHM9dC5uZXh0O2lmKEluKHIsaSxzKT49MClyZXR1cm4hMTtmb3IodmFyIGY9ci54LHU9aS54LGM9cy54LGw9ci55LHA9aS55LGQ9cy55LG09Zjx1P2Y8Yz9mOmM6dTxjP3U6YyxfPWw8cD9sPGQ/bDpkOnA8ZD9wOmQsZz1mPnU/Zj5jP2Y6Yzp1PmM/dTpjLGI9bD5wP2w+ZD9sOmQ6cD5kP3A6ZCxPPUUwKG0sXyxlLG4sbyksVD1FMChnLGIsZSxuLG8pLEU9dC5wcmV2Wix3PXQubmV4dFo7RSYmRS56Pj1PJiZ3JiZ3Lno8PVQ7KXtpZihFLng+PW0mJkUueDw9ZyYmRS55Pj1fJiZFLnk8PWImJkUhPT1yJiZFIT09cyYmX2EoZixsLHUscCxjLGQsRS54LEUueSkmJkluKEUucHJldixFLEUubmV4dCk+PTB8fChFPUUucHJldlosdy54Pj1tJiZ3Lng8PWcmJncueT49XyYmdy55PD1iJiZ3IT09ciYmdyE9PXMmJl9hKGYsbCx1LHAsYyxkLHcueCx3LnkpJiZJbih3LnByZXYsdyx3Lm5leHQpPj0wKSlyZXR1cm4hMTt3PXcubmV4dFp9Zm9yKDtFJiZFLno+PU87KXtpZihFLng+PW0mJkUueDw9ZyYmRS55Pj1fJiZFLnk8PWImJkUhPT1yJiZFIT09cyYmX2EoZixsLHUscCxjLGQsRS54LEUueSkmJkluKEUucHJldixFLEUubmV4dCk+PTApcmV0dXJuITE7RT1FLnByZXZafWZvcig7dyYmdy56PD1UOyl7aWYody54Pj1tJiZ3Lng8PWcmJncueT49XyYmdy55PD1iJiZ3IT09ciYmdyE9PXMmJl9hKGYsbCx1LHAsYyxkLHcueCx3LnkpJiZJbih3LnByZXYsdyx3Lm5leHQpPj0wKXJldHVybiExO3c9dy5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBLTih0LGUsbil7dmFyIG89dDtkb3t2YXIgcj1vLnByZXYsaT1vLm5leHQubmV4dDshbmQocixpKSYmZVQocixvLG8ubmV4dCxpKSYmdmYocixpKSYmdmYoaSxyKSYmKGUucHVzaChyLmkvbnwwKSxlLnB1c2goby5pL258MCksZS5wdXNoKGkuaS9ufDApLERmKG8pLERmKG8ubmV4dCksbz10PWkpLG89by5uZXh0fXdoaWxlKG8hPT10KTtyZXR1cm4gdWMobyl9ZnVuY3Rpb24gV04odCxlLG4sbyxyLGkpe3ZhciBzPXQ7ZG97Zm9yKHZhciBmPXMubmV4dC5uZXh0O2YhPT1zLnByZXY7KXtpZihzLmkhPT1mLmkmJm5JKHMsZikpe3ZhciB1PW5UKHMsZik7cz11YyhzLHMubmV4dCksdT11Yyh1LHUubmV4dCksSWYocyxlLG4sbyxyLGksMCksSWYodSxlLG4sbyxyLGksMCk7cmV0dXJufWY9Zi5uZXh0fXM9cy5uZXh0fXdoaWxlKHMhPT10KX1mdW5jdGlvbiBYTih0LGUsbixvKXt2YXIgcj1bXSxpLHMsZix1LGM7Zm9yKGk9MCxzPWUubGVuZ3RoO2k8cztpKyspZj1lW2ldKm8sdT1pPHMtMT9lW2krMV0qbzp0Lmxlbmd0aCxjPXRUKHQsZix1LG8sITEpLGM9PT1jLm5leHQmJihjLnN0ZWluZXI9ITApLHIucHVzaChlSShjKSk7Zm9yKHIuc29ydChZTiksaT0wO2k8ci5sZW5ndGg7aSsrKW49JE4ocltpXSxuKTtyZXR1cm4gbn1mdW5jdGlvbiBZTih0LGUpe3JldHVybiB0LngtZS54fWZ1bmN0aW9uICROKHQsZSl7dmFyIG49Wk4odCxlKTtpZighbilyZXR1cm4gZTt2YXIgbz1uVChuLHQpO3JldHVybiB1YyhvLG8ubmV4dCksdWMobixuLm5leHQpfWZ1bmN0aW9uIFpOKHQsZSl7dmFyIG49ZSxvPXQueCxyPXQueSxpPS0xLzAscztkb3tpZihyPD1uLnkmJnI+PW4ubmV4dC55JiZuLm5leHQueSE9PW4ueSl7dmFyIGY9bi54KyhyLW4ueSkqKG4ubmV4dC54LW4ueCkvKG4ubmV4dC55LW4ueSk7aWYoZjw9byYmZj5pJiYoaT1mLHM9bi54PG4ubmV4dC54P246bi5uZXh0LGY9PT1vKSlyZXR1cm4gc31uPW4ubmV4dH13aGlsZShuIT09ZSk7aWYoIXMpcmV0dXJuIG51bGw7dmFyIHU9cyxjPXMueCxsPXMueSxwPTEvMCxkO249cztkbyBvPj1uLngmJm4ueD49YyYmbyE9PW4ueCYmX2EocjxsP286aSxyLGMsbCxyPGw/aTpvLHIsbi54LG4ueSkmJihkPU1hdGguYWJzKHItbi55KS8oby1uLngpLHZmKG4sdCkmJihkPHB8fGQ9PT1wJiYobi54PnMueHx8bi54PT09cy54JiZRTihzLG4pKSkmJihzPW4scD1kKSksbj1uLm5leHQ7d2hpbGUobiE9PXUpO3JldHVybiBzfWZ1bmN0aW9uIFFOKHQsZSl7cmV0dXJuIEluKHQucHJldix0LGUucHJldik8MCYmSW4oZS5uZXh0LHQsdC5uZXh0KTwwfWZ1bmN0aW9uIEpOKHQsZSxuLG8pe3ZhciByPXQ7ZG8gci56PT09MCYmKHIuej1FMChyLngsci55LGUsbixvKSksci5wcmV2Wj1yLnByZXYsci5uZXh0Wj1yLm5leHQscj1yLm5leHQ7d2hpbGUociE9PXQpO3IucHJldloubmV4dFo9bnVsbCxyLnByZXZaPW51bGwsdEkocil9ZnVuY3Rpb24gdEkodCl7dmFyIGUsbixvLHIsaSxzLGYsdSxjPTE7ZG97Zm9yKG49dCx0PW51bGwsaT1udWxsLHM9MDtuOyl7Zm9yKHMrKyxvPW4sZj0wLGU9MDtlPGMmJihmKyssbz1vLm5leHRaLCEhbyk7ZSsrKTtmb3IodT1jO2Y+MHx8dT4wJiZvOylmIT09MCYmKHU9PT0wfHwhb3x8bi56PD1vLnopPyhyPW4sbj1uLm5leHRaLGYtLSk6KHI9byxvPW8ubmV4dFosdS0tKSxpP2kubmV4dFo9cjp0PXIsci5wcmV2Wj1pLGk9cjtuPW99aS5uZXh0Wj1udWxsLGMqPTJ9d2hpbGUocz4xKTtyZXR1cm4gdH1mdW5jdGlvbiBFMCh0LGUsbixvLHIpe3JldHVybiB0PSh0LW4pKnJ8MCxlPShlLW8pKnJ8MCx0PSh0fHQ8PDgpJjE2NzExOTM1LHQ9KHR8dDw8NCkmMjUyNjQ1MTM1LHQ9KHR8dDw8MikmODU4OTkzNDU5LHQ9KHR8dDw8MSkmMTQzMTY1NTc2NSxlPShlfGU8PDgpJjE2NzExOTM1LGU9KGV8ZTw8NCkmMjUyNjQ1MTM1LGU9KGV8ZTw8MikmODU4OTkzNDU5LGU9KGV8ZTw8MSkmMTQzMTY1NTc2NSx0fGU8PDF9ZnVuY3Rpb24gZUkodCl7dmFyIGU9dCxuPXQ7ZG8oZS54PG4ueHx8ZS54PT09bi54JiZlLnk8bi55KSYmKG49ZSksZT1lLm5leHQ7d2hpbGUoZSE9PXQpO3JldHVybiBufWZ1bmN0aW9uIF9hKHQsZSxuLG8scixpLHMsZil7cmV0dXJuKHItcykqKGUtZik+PSh0LXMpKihpLWYpJiYodC1zKSooby1mKT49KG4tcykqKGUtZikmJihuLXMpKihpLWYpPj0oci1zKSooby1mKX1mdW5jdGlvbiBuSSh0LGUpe3JldHVybiB0Lm5leHQuaSE9PWUuaSYmdC5wcmV2LmkhPT1lLmkmJiFvSSh0LGUpJiYodmYodCxlKSYmdmYoZSx0KSYmckkodCxlKSYmKEluKHQucHJldix0LGUucHJldil8fEluKHQsZS5wcmV2LGUpKXx8bmQodCxlKSYmSW4odC5wcmV2LHQsdC5uZXh0KT4wJiZJbihlLnByZXYsZSxlLm5leHQpPjApfWZ1bmN0aW9uIEluKHQsZSxuKXtyZXR1cm4oZS55LXQueSkqKG4ueC1lLngpLShlLngtdC54KSoobi55LWUueSl9ZnVuY3Rpb24gbmQodCxlKXtyZXR1cm4gdC54PT09ZS54JiZ0Lnk9PT1lLnl9ZnVuY3Rpb24gZVQodCxlLG4sbyl7dmFyIHI9dGQoSW4odCxlLG4pKSxpPXRkKEluKHQsZSxvKSkscz10ZChJbihuLG8sdCkpLGY9dGQoSW4obixvLGUpKTtyZXR1cm4hIShyIT09aSYmcyE9PWZ8fHI9PT0wJiZKcCh0LG4sZSl8fGk9PT0wJiZKcCh0LG8sZSl8fHM9PT0wJiZKcChuLHQsbyl8fGY9PT0wJiZKcChuLGUsbykpfWZ1bmN0aW9uIEpwKHQsZSxuKXtyZXR1cm4gZS54PD1NYXRoLm1heCh0Lngsbi54KSYmZS54Pj1NYXRoLm1pbih0Lngsbi54KSYmZS55PD1NYXRoLm1heCh0Lnksbi55KSYmZS55Pj1NYXRoLm1pbih0Lnksbi55KX1mdW5jdGlvbiB0ZCh0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9ZnVuY3Rpb24gb0kodCxlKXt2YXIgbj10O2Rve2lmKG4uaSE9PXQuaSYmbi5uZXh0LmkhPT10LmkmJm4uaSE9PWUuaSYmbi5uZXh0LmkhPT1lLmkmJmVUKG4sbi5uZXh0LHQsZSkpcmV0dXJuITA7bj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiExfWZ1bmN0aW9uIHZmKHQsZSl7cmV0dXJuIEluKHQucHJldix0LHQubmV4dCk8MD9Jbih0LGUsdC5uZXh0KT49MCYmSW4odCx0LnByZXYsZSk+PTA6SW4odCxlLHQucHJldik8MHx8SW4odCx0Lm5leHQsZSk8MH1mdW5jdGlvbiBySSh0LGUpe3ZhciBuPXQsbz0hMSxyPSh0LngrZS54KS8yLGk9KHQueStlLnkpLzI7ZG8gbi55PmkhPW4ubmV4dC55PmkmJm4ubmV4dC55IT09bi55JiZyPChuLm5leHQueC1uLngpKihpLW4ueSkvKG4ubmV4dC55LW4ueSkrbi54JiYobz0hbyksbj1uLm5leHQ7d2hpbGUobiE9PXQpO3JldHVybiBvfWZ1bmN0aW9uIG5UKHQsZSl7dmFyIG49bmV3IFIwKHQuaSx0LngsdC55KSxvPW5ldyBSMChlLmksZS54LGUueSkscj10Lm5leHQsaT1lLnByZXY7cmV0dXJuIHQubmV4dD1lLGUucHJldj10LG4ubmV4dD1yLHIucHJldj1uLG8ubmV4dD1uLG4ucHJldj1vLGkubmV4dD1vLG8ucHJldj1pLG99ZnVuY3Rpb24gSncodCxlLG4sbyl7dmFyIHI9bmV3IFIwKHQsZSxuKTtyZXR1cm4gbz8oci5uZXh0PW8ubmV4dCxyLnByZXY9byxvLm5leHQucHJldj1yLG8ubmV4dD1yKTooci5wcmV2PXIsci5uZXh0PXIpLHJ9ZnVuY3Rpb24gRGYodCl7dC5uZXh0LnByZXY9dC5wcmV2LHQucHJldi5uZXh0PXQubmV4dCx0LnByZXZaJiYodC5wcmV2Wi5uZXh0Wj10Lm5leHRaKSx0Lm5leHRaJiYodC5uZXh0Wi5wcmV2Wj10LnByZXZaKX1mdW5jdGlvbiBSMCh0LGUsbil7dGhpcy5pPXQsdGhpcy54PWUsdGhpcy55PW4sdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy56PTAsdGhpcy5wcmV2Wj1udWxsLHRoaXMubmV4dFo9bnVsbCx0aGlzLnN0ZWluZXI9ITF9ZWQuZGV2aWF0aW9uPWZ1bmN0aW9uKHQsZSxuLG8pe3ZhciByPWUmJmUubGVuZ3RoLGk9cj9lWzBdKm46dC5sZW5ndGgscz1NYXRoLmFicyhTMCh0LDAsaSxuKSk7aWYocilmb3IodmFyIGY9MCx1PWUubGVuZ3RoO2Y8dTtmKyspe3ZhciBjPWVbZl0qbixsPWY8dS0xP2VbZisxXSpuOnQubGVuZ3RoO3MtPU1hdGguYWJzKFMwKHQsYyxsLG4pKX12YXIgcD0wO2ZvcihmPTA7ZjxvLmxlbmd0aDtmKz0zKXt2YXIgZD1vW2ZdKm4sbT1vW2YrMV0qbixfPW9bZisyXSpuO3ArPU1hdGguYWJzKCh0W2RdLXRbX10pKih0W20rMV0tdFtkKzFdKS0odFtkXS10W21dKSoodFtfKzFdLXRbZCsxXSkpfXJldHVybiBzPT09MCYmcD09PTA/MDpNYXRoLmFicygocC1zKS9zKX07ZnVuY3Rpb24gUzAodCxlLG4sbyl7Zm9yKHZhciByPTAsaT1lLHM9bi1vO2k8bjtpKz1vKXIrPSh0W3NdLXRbaV0pKih0W2krMV0rdFtzKzFdKSxzPWk7cmV0dXJuIHJ9ZWQuZmxhdHRlbj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dFswXVswXS5sZW5ndGgsbj17dmVydGljZXM6W10saG9sZXM6W10sZGltZW5zaW9uczplfSxvPTAscj0wO3I8dC5sZW5ndGg7cisrKXtmb3IodmFyIGk9MDtpPHRbcl0ubGVuZ3RoO2krKylmb3IodmFyIHM9MDtzPGU7cysrKW4udmVydGljZXMucHVzaCh0W3JdW2ldW3NdKTtyPjAmJihvKz10W3ItMV0ubGVuZ3RoLG4uaG9sZXMucHVzaChvKSl9cmV0dXJuIG59fSk7dmFyIG9kLHhvLGxjPVooKCk9PntrcygpO29kPXtDTE9DS1dJU0U6cXQuQ1csQ09VTlRFUl9DTE9DS1dJU0U6cXQuQ0NXfTtvZC52YWxpZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdD09PW9kLkNMT0NLV0lTRXx8dD09PW9kLkNPVU5URVJfQ0xPQ0tXSVNFfTt4bz1PYmplY3QuZnJlZXplKG9kKX0pO3ZhciBjVCxpSSxzSSxmcyxhVCxmVCx1VCxyVCxpVCxzVCxGaSxsVCxwVCxkVCx5YSxjSSxhSSxmSSx4MCxTZSxxcj1aKCgpPT57Y1Q9bW8ob1QoKSwxKTt6ZSgpO1V0KCk7dmUoKTtZdCgpO0RlKCk7SXQoKTthdCgpO1p0KCk7TmYoKTtYZSgpO1llKCk7V3QoKTt0bigpO2xjKCk7aUk9bmV3IGEsc0k9bmV3IGEsZnM9e307ZnMuY29tcHV0ZUFyZWEyRD1mdW5jdGlvbih0KXt5LmRlZmluZWQoInBvc2l0aW9ucyIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoInBvc2l0aW9ucy5sZW5ndGgiLHQubGVuZ3RoLDMpO2xldCBlPXQubGVuZ3RoLG49MDtmb3IobGV0IG89ZS0xLHI9MDtyPGU7bz1yKyspe2xldCBpPXRbb10scz10W3JdO24rPWkueCpzLnktcy54KmkueX1yZXR1cm4gbiouNX07ZnMuY29tcHV0ZVdpbmRpbmdPcmRlcjJEPWZ1bmN0aW9uKHQpe3JldHVybiBmcy5jb21wdXRlQXJlYTJEKHQpPjA/eG8uQ09VTlRFUl9DTE9DS1dJU0U6eG8uQ0xPQ0tXSVNFfTtmcy50cmlhbmd1bGF0ZT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgicG9zaXRpb25zIix0KTtsZXQgbj1udC5wYWNrQXJyYXkodCk7cmV0dXJuKDAsY1QuZGVmYXVsdCkobixlLDIpfTthVD1uZXcgYSxmVD1uZXcgYSx1VD1uZXcgYSxyVD1uZXcgYSxpVD1uZXcgYSxzVD1uZXcgYSxGaT1uZXcgYSxsVD1uZXcgbnQscFQ9bmV3IG50LGRUPW5ldyBudCx5YT1uZXcgbnQ7ZnMuY29tcHV0ZVN1YmRpdmlzaW9uPWZ1bmN0aW9uKHQsZSxuLG8scil7cj14KHIsTS5SQURJQU5TX1BFUl9ERUdSRUUpO2xldCBpPWgobyk7eS50eXBlT2Yub2JqZWN0KCJlbGxpcHNvaWQiLHQpLHkuZGVmaW5lZCgicG9zaXRpb25zIixlKSx5LmRlZmluZWQoImluZGljZXMiLG4pLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRpY2VzLmxlbmd0aCIsbi5sZW5ndGgsMykseS50eXBlT2YubnVtYmVyLmVxdWFscygiaW5kaWNlcy5sZW5ndGggJSAzIiwiMCIsbi5sZW5ndGglMywwKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW4oImdyYW51bGFyaXR5IixyLDApO2xldCBzPW4uc2xpY2UoMCksZix1PWUubGVuZ3RoLGM9bmV3IEFycmF5KHUqMyksbD1uZXcgQXJyYXkodSoyKSxwPTAsZD0wO2ZvcihmPTA7Zjx1O2YrKyl7bGV0IEU9ZVtmXTtpZihjW3ArK109RS54LGNbcCsrXT1FLnksY1twKytdPUUueixpKXtsZXQgdz1vW2ZdO2xbZCsrXT13LngsbFtkKytdPXcueX19bGV0IG09W10sXz17fSxnPXQubWF4aW11bVJhZGl1cyxiPU0uY2hvcmRMZW5ndGgocixnKSxPPWIqYjtmb3IoO3MubGVuZ3RoPjA7KXtsZXQgRT1zLnBvcCgpLHc9cy5wb3AoKSxDPXMucG9wKCksTj1hLmZyb21BcnJheShjLEMqMyxhVCksST1hLmZyb21BcnJheShjLHcqMyxmVCksTD1hLmZyb21BcnJheShjLEUqMyx1VCksdixELFU7aSYmKHY9bnQuZnJvbUFycmF5KGwsQyoyLGxUKSxEPW50LmZyb21BcnJheShsLHcqMixwVCksVT1udC5mcm9tQXJyYXkobCxFKjIsZFQpKTtsZXQgQT1hLm11bHRpcGx5QnlTY2FsYXIoYS5ub3JtYWxpemUoTixyVCksZyxyVCksUz1hLm11bHRpcGx5QnlTY2FsYXIoYS5ub3JtYWxpemUoSSxpVCksZyxpVCksUD1hLm11bHRpcGx5QnlTY2FsYXIoYS5ub3JtYWxpemUoTCxzVCksZyxzVCksRj1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChBLFMsRmkpKSxqPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KFMsUCxGaSkpLEg9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QoUCxBLEZpKSksaz1NYXRoLm1heChGLGosSCksSyxYLFI7az5PP0Y9PT1rPyhLPWAke01hdGgubWluKEMsdyl9ICR7TWF0aC5tYXgoQyx3KX1gLGY9X1tLXSxoKGYpfHwoWD1hLmFkZChOLEksRmkpLGEubXVsdGlwbHlCeVNjYWxhcihYLC41LFgpLGMucHVzaChYLngsWC55LFgueiksZj1jLmxlbmd0aC8zLTEsX1tLXT1mLGkmJihSPW50LmFkZCh2LEQseWEpLG50Lm11bHRpcGx5QnlTY2FsYXIoUiwuNSxSKSxsLnB1c2goUi54LFIueSkpKSxzLnB1c2goQyxmLEUpLHMucHVzaChmLHcsRSkpOmo9PT1rPyhLPWAke01hdGgubWluKHcsRSl9ICR7TWF0aC5tYXgodyxFKX1gLGY9X1tLXSxoKGYpfHwoWD1hLmFkZChJLEwsRmkpLGEubXVsdGlwbHlCeVNjYWxhcihYLC41LFgpLGMucHVzaChYLngsWC55LFgueiksZj1jLmxlbmd0aC8zLTEsX1tLXT1mLGkmJihSPW50LmFkZChELFUseWEpLG50Lm11bHRpcGx5QnlTY2FsYXIoUiwuNSxSKSxsLnB1c2goUi54LFIueSkpKSxzLnB1c2godyxmLEMpLHMucHVzaChmLEUsQykpOkg9PT1rJiYoSz1gJHtNYXRoLm1pbihFLEMpfSAke01hdGgubWF4KEUsQyl9YCxmPV9bS10saChmKXx8KFg9YS5hZGQoTCxOLEZpKSxhLm11bHRpcGx5QnlTY2FsYXIoWCwuNSxYKSxjLnB1c2goWC54LFgueSxYLnopLGY9Yy5sZW5ndGgvMy0xLF9bS109ZixpJiYoUj1udC5hZGQoVSx2LHlhKSxudC5tdWx0aXBseUJ5U2NhbGFyKFIsLjUsUiksbC5wdXNoKFIueCxSLnkpKSkscy5wdXNoKEUsZix3KSxzLnB1c2goZixDLHcpKToobS5wdXNoKEMpLG0ucHVzaCh3KSxtLnB1c2goRSkpfWxldCBUPXthdHRyaWJ1dGVzOntwb3NpdGlvbjpuZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX0saW5kaWNlczptLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTfTtyZXR1cm4gaSYmKFQuYXR0cmlidXRlcy5zdD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6bH0pKSxuZXcgRnQoVCl9O2NJPW5ldyBjdCxhST1uZXcgY3QsZkk9bmV3IGN0LHgwPW5ldyBjdDtmcy5jb21wdXRlUmh1bWJMaW5lU3ViZGl2aXNpb249ZnVuY3Rpb24odCxlLG4sbyxyKXtyPXgocixNLlJBRElBTlNfUEVSX0RFR1JFRSk7bGV0IGk9aChvKTt5LnR5cGVPZi5vYmplY3QoImVsbGlwc29pZCIsdCkseS5kZWZpbmVkKCJwb3NpdGlvbnMiLGUpLHkuZGVmaW5lZCgiaW5kaWNlcyIsbikseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGljZXMubGVuZ3RoIixuLmxlbmd0aCwzKSx5LnR5cGVPZi5udW1iZXIuZXF1YWxzKCJpbmRpY2VzLmxlbmd0aCAlIDMiLCIwIixuLmxlbmd0aCUzLDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbigiZ3JhbnVsYXJpdHkiLHIsMCk7bGV0IHM9bi5zbGljZSgwKSxmLHU9ZS5sZW5ndGgsYz1uZXcgQXJyYXkodSozKSxsPW5ldyBBcnJheSh1KjIpLHA9MCxkPTA7Zm9yKGY9MDtmPHU7ZisrKXtsZXQgQz1lW2ZdO2lmKGNbcCsrXT1DLngsY1twKytdPUMueSxjW3ArK109Qy56LGkpe2xldCBOPW9bZl07bFtkKytdPU4ueCxsW2QrK109Ti55fX1sZXQgbT1bXSxfPXt9LGc9dC5tYXhpbXVtUmFkaXVzLGI9TS5jaG9yZExlbmd0aChyLGcpLE89bmV3IEpvKHZvaWQgMCx2b2lkIDAsdCksVD1uZXcgSm8odm9pZCAwLHZvaWQgMCx0KSxFPW5ldyBKbyh2b2lkIDAsdm9pZCAwLHQpO2Zvcig7cy5sZW5ndGg+MDspe2xldCBDPXMucG9wKCksTj1zLnBvcCgpLEk9cy5wb3AoKSxMPWEuZnJvbUFycmF5KGMsSSozLGFUKSx2PWEuZnJvbUFycmF5KGMsTiozLGZUKSxEPWEuZnJvbUFycmF5KGMsQyozLHVUKSxVLEEsUztpJiYoVT1udC5mcm9tQXJyYXkobCxJKjIsbFQpLEE9bnQuZnJvbUFycmF5KGwsTioyLHBUKSxTPW50LmZyb21BcnJheShsLEMqMixkVCkpO2xldCBQPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoTCxjSSksRj10LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHYsYUkpLGo9dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhELGZJKTtPLnNldEVuZFBvaW50cyhQLEYpO2xldCBIPU8uc3VyZmFjZURpc3RhbmNlO1Quc2V0RW5kUG9pbnRzKEYsaik7bGV0IGs9VC5zdXJmYWNlRGlzdGFuY2U7RS5zZXRFbmRQb2ludHMoaixQKTtsZXQgSz1FLnN1cmZhY2VEaXN0YW5jZSxYPU1hdGgubWF4KEgsayxLKSxSLFEsZnQscHQsZ3Q7WD5iP0g9PT1YPyhSPWAke01hdGgubWluKEksTil9ICR7TWF0aC5tYXgoSSxOKX1gLGY9X1tSXSxoKGYpfHwoUT1PLmludGVycG9sYXRlVXNpbmdGcmFjdGlvbiguNSx4MCksZnQ9KFAuaGVpZ2h0K0YuaGVpZ2h0KSouNSxwdD1hLmZyb21SYWRpYW5zKFEubG9uZ2l0dWRlLFEubGF0aXR1ZGUsZnQsdCxGaSksYy5wdXNoKHB0LngscHQueSxwdC56KSxmPWMubGVuZ3RoLzMtMSxfW1JdPWYsaSYmKGd0PW50LmFkZChVLEEseWEpLG50Lm11bHRpcGx5QnlTY2FsYXIoZ3QsLjUsZ3QpLGwucHVzaChndC54LGd0LnkpKSkscy5wdXNoKEksZixDKSxzLnB1c2goZixOLEMpKTprPT09WD8oUj1gJHtNYXRoLm1pbihOLEMpfSAke01hdGgubWF4KE4sQyl9YCxmPV9bUl0saChmKXx8KFE9VC5pbnRlcnBvbGF0ZVVzaW5nRnJhY3Rpb24oLjUseDApLGZ0PShGLmhlaWdodCtqLmhlaWdodCkqLjUscHQ9YS5mcm9tUmFkaWFucyhRLmxvbmdpdHVkZSxRLmxhdGl0dWRlLGZ0LHQsRmkpLGMucHVzaChwdC54LHB0LnkscHQueiksZj1jLmxlbmd0aC8zLTEsX1tSXT1mLGkmJihndD1udC5hZGQoQSxTLHlhKSxudC5tdWx0aXBseUJ5U2NhbGFyKGd0LC41LGd0KSxsLnB1c2goZ3QueCxndC55KSkpLHMucHVzaChOLGYsSSkscy5wdXNoKGYsQyxJKSk6Sz09PVgmJihSPWAke01hdGgubWluKEMsSSl9ICR7TWF0aC5tYXgoQyxJKX1gLGY9X1tSXSxoKGYpfHwoUT1FLmludGVycG9sYXRlVXNpbmdGcmFjdGlvbiguNSx4MCksZnQ9KGouaGVpZ2h0K1AuaGVpZ2h0KSouNSxwdD1hLmZyb21SYWRpYW5zKFEubG9uZ2l0dWRlLFEubGF0aXR1ZGUsZnQsdCxGaSksYy5wdXNoKHB0LngscHQueSxwdC56KSxmPWMubGVuZ3RoLzMtMSxfW1JdPWYsaSYmKGd0PW50LmFkZChTLFUseWEpLG50Lm11bHRpcGx5QnlTY2FsYXIoZ3QsLjUsZ3QpLGwucHVzaChndC54LGd0LnkpKSkscy5wdXNoKEMsZixOKSxzLnB1c2goZixJLE4pKToobS5wdXNoKEkpLG0ucHVzaChOKSxtLnB1c2goQykpfWxldCB3PXthdHRyaWJ1dGVzOntwb3NpdGlvbjpuZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX0saW5kaWNlczptLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTfTtyZXR1cm4gaSYmKHcuYXR0cmlidXRlcy5zdD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6bH0pKSxuZXcgRnQodyl9O2ZzLnNjYWxlVG9HZW9kZXRpY0hlaWdodD1mdW5jdGlvbih0LGUsbixvKXtuPXgobiwkLldHUzg0KTtsZXQgcj1pSSxpPXNJO2lmKGU9eChlLDApLG89eChvLCEwKSxoKHQpKXtsZXQgcz10Lmxlbmd0aDtmb3IobGV0IGY9MDtmPHM7Zis9MylhLmZyb21BcnJheSh0LGYsaSksbyYmKGk9bi5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGksaSkpLGUhPT0wJiYocj1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChpLHIpLGEubXVsdGlwbHlCeVNjYWxhcihyLGUsciksYS5hZGQoaSxyLGkpKSx0W2ZdPWkueCx0W2YrMV09aS55LHRbZisyXT1pLnp9cmV0dXJuIHR9O1NlPWZzfSk7ZnVuY3Rpb24gdXMoKXt0aGlzLl9hcnJheT1bXSx0aGlzLl9vZmZzZXQ9MCx0aGlzLl9sZW5ndGg9MH12YXIgUDAsbVQ9WigoKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHVzLnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGVuZ3RofX19KTt1cy5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbih0KXt0aGlzLl9hcnJheS5wdXNoKHQpLHRoaXMuX2xlbmd0aCsrfTt1cy5wcm90b3R5cGUuZGVxdWV1ZT1mdW5jdGlvbigpe2lmKHRoaXMuX2xlbmd0aD09PTApcmV0dXJuO2xldCB0PXRoaXMuX2FycmF5LGU9dGhpcy5fb2Zmc2V0LG49dFtlXTtyZXR1cm4gdFtlXT12b2lkIDAsZSsrLGU+MTAmJmUqMj50Lmxlbmd0aCYmKHRoaXMuX2FycmF5PXQuc2xpY2UoZSksZT0wKSx0aGlzLl9vZmZzZXQ9ZSx0aGlzLl9sZW5ndGgtLSxufTt1cy5wcm90b3R5cGUucGVlaz1mdW5jdGlvbigpe2lmKHRoaXMuX2xlbmd0aCE9PTApcmV0dXJuIHRoaXMuX2FycmF5W3RoaXMuX29mZnNldF19O3VzLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXJyYXkuaW5kZXhPZih0KSE9PS0xfTt1cy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9hcnJheS5sZW5ndGg9dGhpcy5fb2Zmc2V0PXRoaXMuX2xlbmd0aD0wfTt1cy5wcm90b3R5cGUuc29ydD1mdW5jdGlvbih0KXt0aGlzLl9vZmZzZXQ+MCYmKHRoaXMuX2FycmF5PXRoaXMuX2FycmF5LnNsaWNlKHRoaXMuX29mZnNldCksdGhpcy5fb2Zmc2V0PTApLHRoaXMuX2FycmF5LnNvcnQodCl9O1AwPXVzfSk7ZnVuY3Rpb24geVQodCxlLG4sbyl7cmV0dXJuIG50LnN1YnRyYWN0KGUsdCxwYyksbnQubXVsdGlwbHlCeVNjYWxhcihwYyxuL28scGMpLG50LmFkZCh0LHBjLHBjKSxbcGMueCxwYy55XX1mdW5jdGlvbiB1SSh0LGUsbixvKXtyZXR1cm4gYS5zdWJ0cmFjdChlLHQsbHMpLGEubXVsdGlwbHlCeVNjYWxhcihscyxuL28sbHMpLGEuYWRkKHQsbHMsbHMpLFtscy54LGxzLnksbHMuel19ZnVuY3Rpb24gZ0kodCxlLG4pe2xldCBvPW4uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModCxpZCkscj1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUsc2QpO2lmKE1hdGguc2lnbihvLmxhdGl0dWRlKT09PU1hdGguc2lnbihyLmxhdGl0dWRlKSlyZXR1cm47cmQuc2V0RW5kUG9pbnRzKG8scik7bGV0IGk9cmQuZmluZEludGVyc2VjdGlvbldpdGhMYXRpdHVkZSgwLHlJKTtpZighaChpKSlyZXR1cm47bGV0IHM9TWF0aC5taW4oby5sb25naXR1ZGUsci5sb25naXR1ZGUpLGY9TWF0aC5tYXgoby5sb25naXR1ZGUsci5sb25naXR1ZGUpO2lmKE1hdGguYWJzKGYtcyk+TS5QSSl7bGV0IHU9cztzPWYsZj11fWlmKCEoaS5sb25naXR1ZGU8c3x8aS5sb25naXR1ZGU+ZikpcmV0dXJuIG4uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oaSl9ZnVuY3Rpb24gQUkodCxlLG4sbyl7aWYobz09PXVlLlJIVU1CKXJldHVybiBnSSh0LGUsbik7bGV0IHI9X28ubGluZVNlZ21lbnRQbGFuZSh0LGUsb24uT1JJR0lOX1hZX1BMQU5FKTtpZihoKHIpKXJldHVybiBuLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UocixyKX1mdW5jdGlvbiB3SSh0LGUsbil7bGV0IG89W10scixpLHMsZix1LGM9MDtmb3IoO2M8dC5sZW5ndGg7KXtyPXRbY10saT10WyhjKzEpJXQubGVuZ3RoXSxzPU0uc2lnbihyLnopLGY9TS5zaWduKGkueik7bGV0IGw9cD0+ZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhwLGJJKS5sb25naXR1ZGU7aWYocz09PTApby5wdXNoKHtwb3NpdGlvbjpjLHR5cGU6cyx2aXNpdGVkOiExLG5leHQ6Zix0aGV0YTpsKHIpfSk7ZWxzZSBpZihmIT09MCl7aWYodT1BSShyLGksZSxuKSwrK2MsIWgodSkpY29udGludWU7dC5zcGxpY2UoYywwLHUpLG8ucHVzaCh7cG9zaXRpb246Yyx0eXBlOnMsdmlzaXRlZDohMSxuZXh0OmYsdGhldGE6bCh1KX0pfSsrY31yZXR1cm4gb31mdW5jdGlvbiBnVCh0LGUsbixvLHIsaSxzKXtsZXQgZj1bXSx1PWksYz1wPT5kPT5kLnBvc2l0aW9uPT09cCxsPVtdO2Rve2xldCBwPW5bdV07Zi5wdXNoKHApO2xldCBkPW8uZmluZEluZGV4KGModSkpLG09b1tkXTtpZighaChtKSl7Kyt1O2NvbnRpbnVlfWxldHt2aXNpdGVkOl8sdHlwZTpnLG5leHQ6Yn09bTtpZihtLnZpc2l0ZWQ9ITAsZz09PTApe2lmKGI9PT0wKXtsZXQgdz1vW2QtKHM/MTotMSldO2lmKHc/LnBvc2l0aW9uPT09dSsxKXcudmlzaXRlZD0hMDtlbHNleysrdTtjb250aW51ZX19aWYoIV8mJnMmJmI+MHx8aT09PXUmJiFzJiZiPDApeysrdTtjb250aW51ZX19aWYoIShzP2c+PTA6Zzw9MCkpeysrdTtjb250aW51ZX1ffHxsLnB1c2godSk7bGV0IFQ9ZCsocz8xOi0xKSxFPW9bVF07aWYoIWgoRSkpeysrdTtjb250aW51ZX11PUUucG9zaXRpb259d2hpbGUodTxuLmxlbmd0aCYmdT49MCYmdSE9PWkmJmYubGVuZ3RoPG4ubGVuZ3RoKTt0LnNwbGljZShlLHIsZik7Zm9yKGxldCBwIG9mIGwpZT1nVCh0LCsrZSxuLG8sMCxwLCFzKTtyZXR1cm4gZX12YXIgd24scGMsbHMsaWQsc2QsbEkscEkscmQsZEksbUksaEksX0kseUksYkksVEksT0ksRUksUkksaFQsX1QsU0ksQ0kseWUsTGY9WigoKT0+e2ZjKCk7anIoKTt6ZSgpO1V0KCk7dmUoKTtEZSgpO0l0KCk7YXQoKTtadCgpO05mKCk7WGUoKTtZZSgpO2FuKCk7c2koKTskZSgpO3RjKCk7V3QoKTtGbigpO2NzKCk7UXcoKTtxcigpO3RuKCk7JG8oKTttVCgpO2xjKCk7d249e307d24uY29tcHV0ZUhpZXJhcmNoeVBhY2tlZExlbmd0aD1mdW5jdGlvbih0LGUpe2xldCBuPTAsbz1bdF07Zm9yKDtvLmxlbmd0aD4wOyl7bGV0IHI9by5wb3AoKTtpZighaChyKSljb250aW51ZTtuKz0yO2xldCBpPXIucG9zaXRpb25zLHM9ci5ob2xlcztpZihoKGkpJiZpLmxlbmd0aD4wJiYobis9aS5sZW5ndGgqZS5wYWNrZWRMZW5ndGgpLGgocykpe2xldCBmPXMubGVuZ3RoO2ZvcihsZXQgdT0wO3U8ZjsrK3Upby5wdXNoKHNbdV0pfX1yZXR1cm4gbn07d24ucGFja1BvbHlnb25IaWVyYXJjaHk9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9W3RdO2Zvcig7ci5sZW5ndGg+MDspe2xldCBpPXIucG9wKCk7aWYoIWgoaSkpY29udGludWU7bGV0IHM9aS5wb3NpdGlvbnMsZj1pLmhvbGVzO2lmKGVbbisrXT1oKHMpP3MubGVuZ3RoOjAsZVtuKytdPWgoZik/Zi5sZW5ndGg6MCxoKHMpKXtsZXQgdT1zLmxlbmd0aDtmb3IobGV0IGM9MDtjPHU7KytjLG4rPW8ucGFja2VkTGVuZ3RoKW8ucGFjayhzW2NdLGUsbil9aWYoaChmKSl7bGV0IHU9Zi5sZW5ndGg7Zm9yKGxldCBjPTA7Yzx1OysrYylyLnB1c2goZltjXSl9fXJldHVybiBufTt3bi51bnBhY2tQb2x5Z29uSGllcmFyY2h5PWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10W2UrK10scj10W2UrK10saT1uZXcgQXJyYXkobykscz1yPjA/bmV3IEFycmF5KHIpOnZvaWQgMDtmb3IobGV0IGY9MDtmPG87KytmLGUrPW4ucGFja2VkTGVuZ3RoKWlbZl09bi51bnBhY2sodCxlKTtmb3IobGV0IGY9MDtmPHI7KytmKXNbZl09d24udW5wYWNrUG9seWdvbkhpZXJhcmNoeSh0LGUsbiksZT1zW2ZdLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIHNbZl0uc3RhcnRpbmdJbmRleDtyZXR1cm57cG9zaXRpb25zOmksaG9sZXM6cyxzdGFydGluZ0luZGV4OmV9fTtwYz1uZXcgbnQ7bHM9bmV3IGE7d24uc3ViZGl2aWRlTGluZUNvdW50PWZ1bmN0aW9uKHQsZSxuKXtsZXQgcj1hLmRpc3RhbmNlKHQsZSkvbixpPU1hdGgubWF4KDAsTWF0aC5jZWlsKE0ubG9nMihyKSkpO3JldHVybiBNYXRoLnBvdygyLGkpfTtpZD1uZXcgY3Qsc2Q9bmV3IGN0LGxJPW5ldyBjdCxwST1uZXcgYSxyZD1uZXcgSm87d24uc3ViZGl2aWRlUmh1bWJMaW5lQ291bnQ9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhlLGlkKSxpPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMobixzZCksZj1uZXcgSm8ocixpLHQpLnN1cmZhY2VEaXN0YW5jZS9vLHU9TWF0aC5tYXgoMCxNYXRoLmNlaWwoTS5sb2cyKGYpKSk7cmV0dXJuIE1hdGgucG93KDIsdSl9O3duLnN1YmRpdmlkZVRleGNvb3JkTGluZT1mdW5jdGlvbih0LGUsbixvLHIsaSl7bGV0IHM9d24uc3ViZGl2aWRlTGluZUNvdW50KG4sbyxyKSxmPW50LmRpc3RhbmNlKHQsZSksdT1mL3MsYz1pO2MubGVuZ3RoPXMqMjtsZXQgbD0wO2ZvcihsZXQgcD0wO3A8cztwKyspe2xldCBkPXlUKHQsZSxwKnUsZik7Y1tsKytdPWRbMF0sY1tsKytdPWRbMV19cmV0dXJuIGN9O3duLnN1YmRpdmlkZUxpbmU9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9d24uc3ViZGl2aWRlTGluZUNvdW50KHQsZSxuKSxpPWEuZGlzdGFuY2UodCxlKSxzPWkvcjtoKG8pfHwobz1bXSk7bGV0IGY9bztmLmxlbmd0aD1yKjM7bGV0IHU9MDtmb3IobGV0IGM9MDtjPHI7YysrKXtsZXQgbD11SSh0LGUsYypzLGkpO2ZbdSsrXT1sWzBdLGZbdSsrXT1sWzFdLGZbdSsrXT1sWzJdfXJldHVybiBmfTt3bi5zdWJkaXZpZGVUZXhjb29yZFJodW1iTGluZT1mdW5jdGlvbih0LGUsbixvLHIsaSxzKXtsZXQgZj1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG8saWQpLHU9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhyLHNkKTtyZC5zZXRFbmRQb2ludHMoZix1KTtsZXQgYz1yZC5zdXJmYWNlRGlzdGFuY2UvaSxsPU1hdGgubWF4KDAsTWF0aC5jZWlsKE0ubG9nMihjKSkpLHA9TWF0aC5wb3coMixsKSxkPW50LmRpc3RhbmNlKHQsZSksbT1kL3AsXz1zO18ubGVuZ3RoPXAqMjtsZXQgZz0wO2ZvcihsZXQgYj0wO2I8cDtiKyspe2xldCBPPXlUKHQsZSxiKm0sZCk7X1tnKytdPU9bMF0sX1tnKytdPU9bMV19cmV0dXJuIF99O3duLnN1YmRpdmlkZVJodW1iTGluZT1mdW5jdGlvbih0LGUsbixvLHIpe2xldCBpPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxpZCkscz10LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG4sc2QpLGY9bmV3IEpvKGkscyx0KSx1PWYuc3VyZmFjZURpc3RhbmNlL28sYz1NYXRoLm1heCgwLE1hdGguY2VpbChNLmxvZzIodSkpKSxsPU1hdGgucG93KDIsYykscD1mLnN1cmZhY2VEaXN0YW5jZS9sO2gocil8fChyPVtdKTtsZXQgZD1yO2QubGVuZ3RoPWwqMztsZXQgbT0wO2ZvcihsZXQgXz0wO188bDtfKyspe2xldCBnPWYuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZShfKnAsbEkpLGI9dC5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihnLHBJKTtkW20rK109Yi54LGRbbSsrXT1iLnksZFttKytdPWIuen1yZXR1cm4gZH07ZEk9bmV3IGEsbUk9bmV3IGEsaEk9bmV3IGEsX0k9bmV3IGE7d24uc2NhbGVUb0dlb2RldGljSGVpZ2h0RXh0cnVkZWQ9ZnVuY3Rpb24odCxlLG4sbyxyKXtvPXgobywkLldHUzg0KTtsZXQgaT1kSSxzPW1JLGY9aEksdT1fSTtpZihoKHQpJiZoKHQuYXR0cmlidXRlcykmJmgodC5hdHRyaWJ1dGVzLnBvc2l0aW9uKSl7bGV0IGM9dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxsPWMubGVuZ3RoLzI7Zm9yKGxldCBwPTA7cDxsO3ArPTMpYS5mcm9tQXJyYXkoYyxwLGYpLG8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGYsaSksdT1vLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoZix1KSxzPWEubXVsdGlwbHlCeVNjYWxhcihpLG4scykscz1hLmFkZCh1LHMscyksY1twK2xdPXMueCxjW3ArMStsXT1zLnksY1twKzIrbF09cy56LHImJih1PWEuY2xvbmUoZix1KSkscz1hLm11bHRpcGx5QnlTY2FsYXIoaSxlLHMpLHM9YS5hZGQodSxzLHMpLGNbcF09cy54LGNbcCsxXT1zLnksY1twKzJdPXMuen1yZXR1cm4gdH07d24ucG9seWdvbk91dGxpbmVzRnJvbUhpZXJhcmNoeT1mdW5jdGlvbih0LGUsbil7bGV0IG89W10scj1uZXcgUDA7ci5lbnF1ZXVlKHQpO2xldCBpLHMsZjtmb3IoO3IubGVuZ3RoIT09MDspe2xldCB1PXIuZGVxdWV1ZSgpLGM9dS5wb3NpdGlvbnM7aWYoZSlmb3IoZj1jLmxlbmd0aCxpPTA7aTxmO2krKyluLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoY1tpXSxjW2ldKTtpZihjPUNuKGMsYS5lcXVhbHNFcHNpbG9uLCEwKSxjLmxlbmd0aDwzKWNvbnRpbnVlO2xldCBsPXUuaG9sZXM/dS5ob2xlcy5sZW5ndGg6MDtmb3IoaT0wO2k8bDtpKyspe2xldCBwPXUuaG9sZXNbaV0sZD1wLnBvc2l0aW9ucztpZihlKWZvcihmPWQubGVuZ3RoLHM9MDtzPGY7KytzKW4uc2NhbGVUb0dlb2RldGljU3VyZmFjZShkW3NdLGRbc10pO2lmKGQ9Q24oZCxhLmVxdWFsc0Vwc2lsb24sITApLGQubGVuZ3RoPDMpY29udGludWU7by5wdXNoKGQpO2xldCBtPTA7Zm9yKGgocC5ob2xlcykmJihtPXAuaG9sZXMubGVuZ3RoKSxzPTA7czxtO3MrKylyLmVucXVldWUocC5ob2xlc1tzXSl9by5wdXNoKGMpfXJldHVybiBvfTt5ST1uZXcgY3Q7Ykk9bmV3IGN0O3duLnNwbGl0UG9seWdvbnNPbkVxdWF0b3I9ZnVuY3Rpb24odCxlLG4sbyl7aChvKXx8KG89W10pLG8uc3BsaWNlKDAsMCwuLi50KSxvLmxlbmd0aD10Lmxlbmd0aDtsZXQgcj0wO2Zvcig7cjxvLmxlbmd0aDspe2xldCBpPW9bcl0scz1pLnNsaWNlKCk7aWYoaS5sZW5ndGg8Myl7b1tyXT1zLCsrcjtjb250aW51ZX1sZXQgZj13SShzLGUsbik7aWYocy5sZW5ndGg9PT1pLmxlbmd0aHx8Zi5sZW5ndGg8PTEpe29bcl09cywrK3I7Y29udGludWV9Zi5zb3J0KChjLGwpPT5jLnRoZXRhLWwudGhldGEpO2xldCB1PXNbMF0uej49MDtyPWdUKG8scixzLGYsMSwwLHUpfXJldHVybiBvfTt3bi5wb2x5Z29uc0Zyb21IaWVyYXJjaHk9ZnVuY3Rpb24odCxlLG4sbyxyLGkpe2xldCBzPVtdLGY9W10sdT1uZXcgUDA7dS5lbnF1ZXVlKHQpO2xldCBjPWgoaSk7Zm9yKDt1Lmxlbmd0aCE9PTA7KXtsZXQgbD11LmRlcXVldWUoKSxwPWwucG9zaXRpb25zLGQ9bC5ob2xlcyxtLF87aWYobylmb3IoXz1wLmxlbmd0aCxtPTA7bTxfO20rKylyLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UocFttXSxwW21dKTtpZihlfHwocD1DbihwLGEuZXF1YWxzRXBzaWxvbiwhMCkpLHAubGVuZ3RoPDMpY29udGludWU7bGV0IGc9bihwKTtpZighaChnKSljb250aW51ZTtsZXQgYj1bXSxPPVNlLmNvbXB1dGVXaW5kaW5nT3JkZXIyRChnKTtpZihPPT09eG8uQ0xPQ0tXSVNFJiYoZy5yZXZlcnNlKCkscD1wLnNsaWNlKCkucmV2ZXJzZSgpKSxjKXtjPSExO2xldCBOPVtwXTtpZihOPWkoTixOKSxOLmxlbmd0aD4xKXtmb3IobGV0IEkgb2YgTil1LmVucXVldWUobmV3IFp3KEksZCkpO2NvbnRpbnVlfX1sZXQgVD1wLnNsaWNlKCksRT1oKGQpP2QubGVuZ3RoOjAsdz1bXSxDO2ZvcihtPTA7bTxFO20rKyl7bGV0IE49ZFttXSxJPU4ucG9zaXRpb25zO2lmKG8pZm9yKF89SS5sZW5ndGgsQz0wO0M8XzsrK0Mpci5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKElbQ10sSVtDXSk7aWYoZXx8KEk9Q24oSSxhLmVxdWFsc0Vwc2lsb24sITApKSxJLmxlbmd0aDwzKWNvbnRpbnVlO2xldCBMPW4oSSk7aWYoIWgoTCkpY29udGludWU7Tz1TZS5jb21wdXRlV2luZGluZ09yZGVyMkQoTCksTz09PXhvLkNMT0NLV0lTRSYmKEwucmV2ZXJzZSgpLEk9SS5zbGljZSgpLnJldmVyc2UoKSksdy5wdXNoKEkpLGIucHVzaChULmxlbmd0aCksVD1ULmNvbmNhdChJKSxnPWcuY29uY2F0KEwpO2xldCB2PTA7Zm9yKGgoTi5ob2xlcykmJih2PU4uaG9sZXMubGVuZ3RoKSxDPTA7Qzx2O0MrKyl1LmVucXVldWUoTi5ob2xlc1tDXSl9cy5wdXNoKHtvdXRlclJpbmc6cCxob2xlczp3fSksZi5wdXNoKHtwb3NpdGlvbnM6VCxwb3NpdGlvbnMyRDpnLGhvbGVzOmJ9KX1yZXR1cm57aGllcmFyY2h5OnMscG9seWdvbnM6Zn19O1RJPW5ldyBudCxPST1uZXcgYSxFST1uZXcgbmUsUkk9bmV3IHR0O3duLmNvbXB1dGVCb3VuZGluZ1JlY3RhbmdsZT1mdW5jdGlvbih0LGUsbixvLHIpe2xldCBpPW5lLmZyb21BeGlzQW5nbGUodCxvLEVJKSxzPXR0LmZyb21RdWF0ZXJuaW9uKGksUkkpLGY9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGM9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGw9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHA9bi5sZW5ndGg7Zm9yKGxldCBkPTA7ZDxwOysrZCl7bGV0IG09YS5jbG9uZShuW2RdLE9JKTt0dC5tdWx0aXBseUJ5VmVjdG9yKHMsbSxtKTtsZXQgXz1lKG0sVEkpO2goXykmJihmPU1hdGgubWluKGYsXy54KSx1PU1hdGgubWF4KHUsXy54KSxjPU1hdGgubWluKGMsXy55KSxsPU1hdGgubWF4KGwsXy55KSl9cmV0dXJuIHIueD1mLHIueT1jLHIud2lkdGg9dS1mLHIuaGVpZ2h0PWwtYyxyfTt3bi5jcmVhdGVHZW9tZXRyeUZyb21Qb3NpdGlvbnM9ZnVuY3Rpb24odCxlLG4sbyxyLGkscyl7bGV0IGY9U2UudHJpYW5ndWxhdGUoZS5wb3NpdGlvbnMyRCxlLmhvbGVzKTtmLmxlbmd0aDwzJiYoZj1bMCwxLDJdKTtsZXQgdT1lLnBvc2l0aW9ucyxjPWgobiksbD1jP24ucG9zaXRpb25zOnZvaWQgMDtpZihyKXtsZXQgcD11Lmxlbmd0aCxkPW5ldyBBcnJheShwKjMpLG09MDtmb3IobGV0IGI9MDtiPHA7YisrKXtsZXQgTz11W2JdO2RbbSsrXT1PLngsZFttKytdPU8ueSxkW20rK109Ty56fWxldCBfPXthdHRyaWJ1dGVzOntwb3NpdGlvbjpuZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmR9KX0saW5kaWNlczpmLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTfTtjJiYoXy5hdHRyaWJ1dGVzLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpudC5wYWNrQXJyYXkobCl9KSk7bGV0IGc9bmV3IEZ0KF8pO3JldHVybiBpLm5vcm1hbD9CZS5jb21wdXRlTm9ybWFsKGcpOmd9aWYocz09PXVlLkdFT0RFU0lDKXJldHVybiBTZS5jb21wdXRlU3ViZGl2aXNpb24odCx1LGYsbCxvKTtpZihzPT09dWUuUkhVTUIpcmV0dXJuIFNlLmNvbXB1dGVSaHVtYkxpbmVTdWJkaXZpc2lvbih0LHUsZixsLG8pfTtoVD1bXSxfVD1bXSxTST1uZXcgYSxDST1uZXcgYTt3bi5jb21wdXRlV2FsbEdlb21ldHJ5PWZ1bmN0aW9uKHQsZSxuLG8scixpKXtsZXQgcyxmLHUsYyxsLHAsZCxtLF8sZz10Lmxlbmd0aCxiPTAsTz0wLFQ9aChlKSxFPVQ/ZS5wb3NpdGlvbnM6dm9pZCAwO2lmKHIpZm9yKGY9ZyozKjIscz1uZXcgQXJyYXkoZioyKSxUJiYoXz1nKjIqMixtPW5ldyBBcnJheShfKjIpKSx1PTA7dTxnO3UrKyljPXRbdV0sbD10Wyh1KzEpJWddLHNbYl09c1tiK2ZdPWMueCwrK2Isc1tiXT1zW2IrZl09Yy55LCsrYixzW2JdPXNbYitmXT1jLnosKytiLHNbYl09c1tiK2ZdPWwueCwrK2Isc1tiXT1zW2IrZl09bC55LCsrYixzW2JdPXNbYitmXT1sLnosKytiLFQmJihwPUVbdV0sZD1FWyh1KzEpJWddLG1bT109bVtPK19dPXAueCwrK08sbVtPXT1tW08rX109cC55LCsrTyxtW09dPW1bTytfXT1kLngsKytPLG1bT109bVtPK19dPWQueSwrK08pO2Vsc2V7bGV0IEw9TS5jaG9yZExlbmd0aChvLG4ubWF4aW11bVJhZGl1cyksdj0wO2lmKGk9PT11ZS5HRU9ERVNJQylmb3IodT0wO3U8Zzt1Kyspdis9d24uc3ViZGl2aWRlTGluZUNvdW50KHRbdV0sdFsodSsxKSVnXSxMKTtlbHNlIGlmKGk9PT11ZS5SSFVNQilmb3IodT0wO3U8Zzt1Kyspdis9d24uc3ViZGl2aWRlUmh1bWJMaW5lQ291bnQobix0W3VdLHRbKHUrMSklZ10sTCk7Zm9yKGY9KHYrZykqMyxzPW5ldyBBcnJheShmKjIpLFQmJihfPSh2K2cpKjIsbT1uZXcgQXJyYXkoXyoyKSksdT0wO3U8Zzt1Kyspe2M9dFt1XSxsPXRbKHUrMSklZ107bGV0IEQsVTtUJiYocD1FW3VdLGQ9RVsodSsxKSVnXSksaT09PXVlLkdFT0RFU0lDPyhEPXduLnN1YmRpdmlkZUxpbmUoYyxsLEwsX1QpLFQmJihVPXduLnN1YmRpdmlkZVRleGNvb3JkTGluZShwLGQsYyxsLEwsaFQpKSk6aT09PXVlLlJIVU1CJiYoRD13bi5zdWJkaXZpZGVSaHVtYkxpbmUobixjLGwsTCxfVCksVCYmKFU9d24uc3ViZGl2aWRlVGV4Y29vcmRSaHVtYkxpbmUocCxkLG4sYyxsLEwsaFQpKSk7bGV0IEE9RC5sZW5ndGg7Zm9yKGxldCBTPTA7UzxBOysrUywrK2Ipc1tiXT1EW1NdLHNbYitmXT1EW1NdO2lmKHNbYl09bC54LHNbYitmXT1sLngsKytiLHNbYl09bC55LHNbYitmXT1sLnksKytiLHNbYl09bC56LHNbYitmXT1sLnosKytiLFQpe2xldCBTPVUubGVuZ3RoO2ZvcihsZXQgUD0wO1A8UzsrK1AsKytPKW1bT109VVtQXSxtW08rX109VVtQXTttW09dPWQueCxtW08rX109ZC54LCsrTyxtW09dPWQueSxtW08rX109ZC55LCsrT319fWc9cy5sZW5ndGg7bGV0IHc9RHQuY3JlYXRlVHlwZWRBcnJheShnLzMsZy10Lmxlbmd0aCo2KSxDPTA7Zm9yKGcvPTYsdT0wO3U8Zzt1Kyspe2xldCBMPXUsdj1MKzEsRD1MK2csVT1EKzE7Yz1hLmZyb21BcnJheShzLEwqMyxTSSksbD1hLmZyb21BcnJheShzLHYqMyxDSSksIWEuZXF1YWxzRXBzaWxvbihjLGwsTS5FUFNJTE9OMTAsTS5FUFNJTE9OMTApJiYod1tDKytdPUwsd1tDKytdPUQsd1tDKytdPXYsd1tDKytdPXYsd1tDKytdPUQsd1tDKytdPVUpfWxldCBOPXthdHRyaWJ1dGVzOm5ldyByZSh7cG9zaXRpb246bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpzfSl9KSxpbmRpY2VzOncscHJpbWl0aXZlVHlwZTpMdC5UUklBTkdMRVN9O3JldHVybiBUJiYoTi5hdHRyaWJ1dGVzLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczptfSkpLG5ldyBGdChOKX07eWU9d259KTtmdW5jdGlvbiBrSSh0LGUsbixvLHIsaSxzLGYsdSl7bGV0IGM9dC5wb3NpdGlvbnMsbD1TZS50cmlhbmd1bGF0ZSh0LnBvc2l0aW9uczJELHQuaG9sZXMpO2wubGVuZ3RoPDMmJihsPVswLDEsMl0pO2xldCBwPUR0LmNyZWF0ZVR5cGVkQXJyYXkoYy5sZW5ndGgsbC5sZW5ndGgpO3Auc2V0KGwpO2xldCBkPUJJO2lmKG8hPT0wKXtsZXQgVT1uZS5mcm9tQXhpc0FuZ2xlKHMsbyxBVCk7aWYoZD10dC5mcm9tUXVhdGVybmlvbihVLGQpLGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpe1U9bmUuZnJvbUF4aXNBbmdsZShzLC1vLEFUKTtsZXQgQT10dC5mcm9tUXVhdGVybmlvbihVLFVJKTtmPWEubm9ybWFsaXplKHR0Lm11bHRpcGx5QnlWZWN0b3IoQSxmLGYpLGYpLGUuYml0YW5nZW50JiYodT1hLm5vcm1hbGl6ZShhLmNyb3NzKHMsZix1KSx1KSl9fWVsc2UgZD10dC5jbG9uZSh0dC5JREVOVElUWSxkKTtsZXQgbT1OSTtlLnN0JiYobS54PW4ueCxtLnk9bi55KTtsZXQgXz1jLmxlbmd0aCxnPV8qMyxiPW5ldyBGbG9hdDY0QXJyYXkoZyksTz1lLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KGcpOnZvaWQgMCxUPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGcpOnZvaWQgMCxFPWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoZyk6dm9pZCAwLHc9ZS5zdD9uZXcgRmxvYXQzMkFycmF5KF8qMik6dm9pZCAwLEM9MCxOPTAsST0wLEw9MCx2PTA7Zm9yKGxldCBVPTA7VTxfO1UrKyl7bGV0IEE9Y1tVXTtpZihiW0MrK109QS54LGJbQysrXT1BLnksYltDKytdPUEueixlLnN0KWlmKGgocikmJnIucG9zaXRpb25zLmxlbmd0aD09PV8pd1t2KytdPXIucG9zaXRpb25zW1VdLngsd1t2KytdPXIucG9zaXRpb25zW1VdLnk7ZWxzZXtsZXQgUz10dC5tdWx0aXBseUJ5VmVjdG9yKGQsQSx4SSksUD1pKFMsTUkpO250LnN1YnRyYWN0KFAsbSxQKTtsZXQgRj1NLmNsYW1wKFAueC9uLndpZHRoLDAsMSksaj1NLmNsYW1wKFAueS9uLmhlaWdodCwwLDEpO3dbdisrXT1GLHdbdisrXT1qfWUubm9ybWFsJiYoT1tOKytdPXMueCxPW04rK109cy55LE9bTisrXT1zLnopLGUudGFuZ2VudCYmKFRbTCsrXT1mLngsVFtMKytdPWYueSxUW0wrK109Zi56KSxlLmJpdGFuZ2VudCYmKEVbSSsrXT11LngsRVtJKytdPXUueSxFW0krK109dS56KX1sZXQgRD1uZXcgcmU7cmV0dXJuIGUucG9zaXRpb24mJihELnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Yn0pKSxlLm5vcm1hbCYmKEQubm9ybWFsPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpPfSkpLGUudGFuZ2VudCYmKEQudGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6VH0pKSxlLmJpdGFuZ2VudCYmKEQuYml0YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpFfSkpLGUuc3QmJihELnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczp3fSkpLG5ldyBGdCh7YXR0cmlidXRlczpELGluZGljZXM6cCxwcmltaXRpdmVUeXBlOkx0LlRSSUFOR0xFU30pfWZ1bmN0aW9uIGRjKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvbHlnb25IaWVyYXJjaHksbj10LnRleHR1cmVDb29yZGluYXRlczt5LmRlZmluZWQoIm9wdGlvbnMucG9seWdvbkhpZXJhcmNoeSIsZSk7bGV0IG89eCh0LnZlcnRleEZvcm1hdCxsdC5ERUZBVUxUKTt0aGlzLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUobyksdGhpcy5fcG9seWdvbkhpZXJhcmNoeT1lLHRoaXMuX3N0Um90YXRpb249eCh0LnN0Um90YXRpb24sMCksdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoeCh0LmVsbGlwc29pZCwkLldHUzg0KSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQ29wbGFuYXJQb2x5Z29uR2VvbWV0cnkiLHRoaXMuX3RleHR1cmVDb29yZGluYXRlcz1uLHRoaXMucGFja2VkTGVuZ3RoPXllLmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgoZSxhKStsdC5wYWNrZWRMZW5ndGgrJC5wYWNrZWRMZW5ndGgrKGgobik/eWUuY29tcHV0ZUhpZXJhcmNoeVBhY2tlZExlbmd0aChuLG50KToxKSsyfXZhciB4SSxQSSxNSSxOSSxJSSx2SSxESSxGZixMSSxGSSxBVCxCSSxVSSxWSSxHSSx6SSxqSSxNMCxiVD1aKCgpPT57anIoKTt4ZigpO1BlKCk7emUoKTtVdCgpO1l0KCk7RGUoKTt3MCgpO0l0KCk7YXQoKTtadCgpO1hlKCk7WWUoKTthbigpO3NjKCk7c2koKTskZSgpO1d0KCk7Rm4oKTtMZigpO3FyKCk7dG4oKTskbygpO1JvKCk7eEk9bmV3IGEsUEk9bmV3IEhyLE1JPW5ldyBudCxOST1uZXcgbnQsSUk9bmV3IGEsdkk9bmV3IGEsREk9bmV3IGEsRmY9bmV3IGEsTEk9bmV3IGEsRkk9bmV3IGEsQVQ9bmV3IG5lLEJJPW5ldyB0dCxVST1uZXcgdHQsVkk9bmV3IGE7ZGMuZnJvbVBvc2l0aW9ucz1mdW5jdGlvbih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCkseS5kZWZpbmVkKCJvcHRpb25zLnBvc2l0aW9ucyIsdC5wb3NpdGlvbnMpO2xldCBlPXtwb2x5Z29uSGllcmFyY2h5Ontwb3NpdGlvbnM6dC5wb3NpdGlvbnN9LHZlcnRleEZvcm1hdDp0LnZlcnRleEZvcm1hdCxzdFJvdGF0aW9uOnQuc3RSb3RhdGlvbixlbGxpcHNvaWQ6dC5lbGxpcHNvaWQsdGV4dHVyZUNvb3JkaW5hdGVzOnQudGV4dHVyZUNvb3JkaW5hdGVzfTtyZXR1cm4gbmV3IGRjKGUpfTtkYy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksbj15ZS5wYWNrUG9seWdvbkhpZXJhcmNoeSh0Ll9wb2x5Z29uSGllcmFyY2h5LGUsbixhKSwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsbHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1sdC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX3N0Um90YXRpb24saCh0Ll90ZXh0dXJlQ29vcmRpbmF0ZXMpP249eWUucGFja1BvbHlnb25IaWVyYXJjaHkodC5fdGV4dHVyZUNvb3JkaW5hdGVzLGUsbixudCk6ZVtuKytdPS0xLGVbbisrXT10LnBhY2tlZExlbmd0aCxlfTtHST0kLmNsb25lKCQuVU5JVF9TUEhFUkUpLHpJPW5ldyBsdCxqST17cG9seWdvbkhpZXJhcmNoeTp7fX07ZGMudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz15ZS51bnBhY2tQb2x5Z29uSGllcmFyY2h5KHQsZSxhKTtlPW8uc3RhcnRpbmdJbmRleCxkZWxldGUgby5zdGFydGluZ0luZGV4O2xldCByPSQudW5wYWNrKHQsZSxHSSk7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IGk9bHQudW5wYWNrKHQsZSx6SSk7ZSs9bHQucGFja2VkTGVuZ3RoO2xldCBzPXRbZSsrXSxmPXRbZV09PT0tMT92b2lkIDA6eWUudW5wYWNrUG9seWdvbkhpZXJhcmNoeSh0LGUsbnQpO2goZik/KGU9Zi5zdGFydGluZ0luZGV4LGRlbGV0ZSBmLnN0YXJ0aW5nSW5kZXgpOmUrKztsZXQgdT10W2UrK107cmV0dXJuIGgobil8fChuPW5ldyBkYyhqSSkpLG4uX3BvbHlnb25IaWVyYXJjaHk9byxuLl9lbGxpcHNvaWQ9JC5jbG9uZShyLG4uX2VsbGlwc29pZCksbi5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKGksbi5fdmVydGV4Rm9ybWF0KSxuLl9zdFJvdGF0aW9uPXMsbi5fdGV4dHVyZUNvb3JkaW5hdGVzPWYsbi5wYWNrZWRMZW5ndGg9dSxufTtkYy5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll92ZXJ0ZXhGb3JtYXQsbj10Ll9wb2x5Z29uSGllcmFyY2h5LG89dC5fc3RSb3RhdGlvbixyPXQuX3RleHR1cmVDb29yZGluYXRlcyxpPWgocikscz1uLnBvc2l0aW9ucztpZihzPUNuKHMsYS5lcXVhbHNFcHNpbG9uLCEwKSxzLmxlbmd0aDwzKXJldHVybjtsZXQgZj1JSSx1PXZJLGM9REksbD1MSSxwPUZJO2lmKCFtYS5jb21wdXRlUHJvamVjdFRvMkRBcmd1bWVudHMocyxGZixsLHApKXJldHVybjtpZihmPWEuY3Jvc3MobCxwLGYpLGY9YS5ub3JtYWxpemUoZixmKSwhYS5lcXVhbHNFcHNpbG9uKEZmLGEuWkVSTyxNLkVQU0lMT042KSl7bGV0IHY9dC5fZWxsaXBzb2lkLmdlb2RldGljU3VyZmFjZU5vcm1hbChGZixWSSk7YS5kb3QoZix2KTwwJiYoZj1hLm5lZ2F0ZShmLGYpLGw9YS5uZWdhdGUobCxsKSl9bGV0IG09bWEuY3JlYXRlUHJvamVjdFBvaW50c1RvMkRGdW5jdGlvbihGZixsLHApLF89bWEuY3JlYXRlUHJvamVjdFBvaW50VG8yREZ1bmN0aW9uKEZmLGwscCk7ZS50YW5nZW50JiYodT1hLmNsb25lKGwsdSkpLGUuYml0YW5nZW50JiYoYz1hLmNsb25lKHAsYykpO2xldCBnPXllLnBvbHlnb25zRnJvbUhpZXJhcmNoeShuLGksbSwhMSksYj1nLmhpZXJhcmNoeSxPPWcucG9seWdvbnMsVD1mdW5jdGlvbih2KXtyZXR1cm4gdn0sRT1pP3llLnBvbHlnb25zRnJvbUhpZXJhcmNoeShyLCEwLFQsITEpLnBvbHlnb25zOnZvaWQgMDtpZihiLmxlbmd0aD09PTApcmV0dXJuO3M9YlswXS5vdXRlclJpbmc7bGV0IHc9eXQuZnJvbVBvaW50cyhzKSxDPXllLmNvbXB1dGVCb3VuZGluZ1JlY3RhbmdsZShmLF8scyxvLFBJKSxOPVtdO2ZvcihsZXQgdj0wO3Y8Ty5sZW5ndGg7disrKXtsZXQgRD1uZXcgY28oe2dlb21ldHJ5OmtJKE9bdl0sZSxDLG8saT9FW3ZdOnZvaWQgMCxfLGYsdSxjKX0pO04ucHVzaChEKX1sZXQgST1CZS5jb21iaW5lSW5zdGFuY2VzKE4pWzBdO0kuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9bmV3IEZsb2F0NjRBcnJheShJLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzKSxJLmluZGljZXM9RHQuY3JlYXRlVHlwZWRBcnJheShJLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLEkuaW5kaWNlcyk7bGV0IEw9SS5hdHRyaWJ1dGVzO3JldHVybiBlLnBvc2l0aW9ufHxkZWxldGUgTC5wb3NpdGlvbixuZXcgRnQoe2F0dHJpYnV0ZXM6TCxpbmRpY2VzOkkuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkkucHJpbWl0aXZlVHlwZSxib3VuZGluZ1NwaGVyZTp3fSl9O00wPWRjfSk7dmFyIE4wPXt9O21lKE4wLHtkZWZhdWx0OigpPT5xSX0pO2Z1bmN0aW9uIEhJKHQsZSl7cmV0dXJuIGgoZSkmJih0PU0wLnVucGFjayh0LGUpKSxNMC5jcmVhdGVHZW9tZXRyeSh0KX12YXIgcUksSTA9WigoKT0+e2JUKCk7YXQoKTtxST1ISX0pO2Z1bmN0aW9uIEtJKHQpe2xldCBlPXQubGVuZ3RoLG49bmV3IEZsb2F0NjRBcnJheShlKjMpLG89RHQuY3JlYXRlVHlwZWRBcnJheShlLGUqMikscj0wLGk9MDtmb3IobGV0IGY9MDtmPGU7ZisrKXtsZXQgdT10W2ZdO25bcisrXT11LngsbltyKytdPXUueSxuW3IrK109dS56LG9baSsrXT1mLG9baSsrXT0oZisxKSVlfWxldCBzPW5ldyByZSh7cG9zaXRpb246bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpufSl9KTtyZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOnMsaW5kaWNlczpvLHByaW1pdGl2ZVR5cGU6THQuTElORVN9KX1mdW5jdGlvbiBtYyh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5wb2x5Z29uSGllcmFyY2h5O3kuZGVmaW5lZCgib3B0aW9ucy5wb2x5Z29uSGllcmFyY2h5IixlKSx0aGlzLl9wb2x5Z29uSGllcmFyY2h5PWUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQ29wbGFuYXJQb2x5Z29uT3V0bGluZUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD15ZS5jb21wdXRlSGllcmFyY2h5UGFja2VkTGVuZ3RoKGUsYSkrMX12YXIgV0ksdjAsd1Q9WigoKT0+e2pyKCk7UGUoKTtVdCgpO1l0KCk7RGUoKTt3MCgpO0l0KCk7YXQoKTtYZSgpO1llKCk7YW4oKTtzYygpO3NpKCk7JGUoKTtMZigpO3RuKCk7bWMuZnJvbVBvc2l0aW9ucz1mdW5jdGlvbih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCkseS5kZWZpbmVkKCJvcHRpb25zLnBvc2l0aW9ucyIsdC5wb3NpdGlvbnMpO2xldCBlPXtwb2x5Z29uSGllcmFyY2h5Ontwb3NpdGlvbnM6dC5wb3NpdGlvbnN9fTtyZXR1cm4gbmV3IG1jKGUpfTttYy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksbj15ZS5wYWNrUG9seWdvbkhpZXJhcmNoeSh0Ll9wb2x5Z29uSGllcmFyY2h5LGUsbixhKSxlW25dPXQucGFja2VkTGVuZ3RoLGV9O1dJPXtwb2x5Z29uSGllcmFyY2h5Ont9fTttYy51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApO2xldCBvPXllLnVucGFja1BvbHlnb25IaWVyYXJjaHkodCxlLGEpO2U9by5zdGFydGluZ0luZGV4LGRlbGV0ZSBvLnN0YXJ0aW5nSW5kZXg7bGV0IHI9dFtlXTtyZXR1cm4gaChuKXx8KG49bmV3IG1jKFdJKSksbi5fcG9seWdvbkhpZXJhcmNoeT1vLG4ucGFja2VkTGVuZ3RoPXIsbn07bWMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fcG9seWdvbkhpZXJhcmNoeSxuPWUucG9zaXRpb25zO2lmKG49Q24obixhLmVxdWFsc0Vwc2lsb24sITApLG4ubGVuZ3RoPDN8fCFtYS52YWxpZE91dGxpbmUobikpcmV0dXJuO2xldCByPXllLnBvbHlnb25PdXRsaW5lc0Zyb21IaWVyYXJjaHkoZSwhMSk7aWYoci5sZW5ndGg9PT0wKXJldHVybjtsZXQgaT1bXTtmb3IobGV0IHU9MDt1PHIubGVuZ3RoO3UrKyl7bGV0IGM9bmV3IGNvKHtnZW9tZXRyeTpLSShyW3VdKX0pO2kucHVzaChjKX1sZXQgcz1CZS5jb21iaW5lSW5zdGFuY2VzKGkpWzBdLGY9eXQuZnJvbVBvaW50cyhlLnBvc2l0aW9ucyk7cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpzLmF0dHJpYnV0ZXMsaW5kaWNlczpzLmluZGljZXMscHJpbWl0aXZlVHlwZTpzLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6Zn0pfTt2MD1tY30pO3ZhciBEMD17fTttZShEMCx7ZGVmYXVsdDooKT0+WUl9KTtmdW5jdGlvbiBYSSh0LGUpe3JldHVybiBoKGUpJiYodD12MC51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSx2MC5jcmVhdGVHZW9tZXRyeSh0KX12YXIgWUksTDA9WigoKT0+e3dUKCk7YXQoKTtadCgpO1lJPVhJfSk7dmFyICRJLGZuLGhjPVooKCk9PnskST17Uk9VTkRFRDowLE1JVEVSRUQ6MSxCRVZFTEVEOjJ9LGZuPU9iamVjdC5mcmVlemUoJEkpfSk7ZnVuY3Rpb24gWkkodCl7bGV0IGU9dC5fdVNxdWFyZWQsbj10Ll9lbGxpcHNvaWQubWF4aW11bVJhZGl1cyxvPXQuX2VsbGlwc29pZC5taW5pbXVtUmFkaXVzLHI9KG4tbykvbixpPU1hdGguY29zKHQuX3N0YXJ0SGVhZGluZykscz1NYXRoLnNpbih0Ll9zdGFydEhlYWRpbmcpLGY9KDEtcikqTWF0aC50YW4odC5fc3RhcnQubGF0aXR1ZGUpLHU9MS9NYXRoLnNxcnQoMStmKmYpLGM9dSpmLGw9TWF0aC5hdGFuMihmLGkpLHA9dSpzLGQ9cCpwLG09MS1kLF89TWF0aC5zcXJ0KG0pLGc9ZS80LGI9ZypnLE89YipnLFQ9YipiLEU9MStnLTMqYi80KzUqTy80LTE3NSpULzY0LHc9MS1nKzE1KmIvOC0zNSpPLzgsQz0xLTMqZyszNSpiLzQsTj0xLTUqZyxJPUUqbC13Kk1hdGguc2luKDIqbCkqZy8yLUMqTWF0aC5zaW4oNCpsKSpiLzE2LU4qTWF0aC5zaW4oNipsKSpPLzQ4LU1hdGguc2luKDgqbCkqNSpULzUxMixMPXQuX2NvbnN0YW50cztMLmE9bixMLmI9byxMLmY9cixMLmNvc2luZUhlYWRpbmc9aSxMLnNpbmVIZWFkaW5nPXMsTC50YW5VPWYsTC5jb3NpbmVVPXUsTC5zaW5lVT1jLEwuc2lnbWE9bCxMLnNpbmVBbHBoYT1wLEwuc2luZVNxdWFyZWRBbHBoYT1kLEwuY29zaW5lU3F1YXJlZEFscGhhPW0sTC5jb3NpbmVBbHBoYT1fLEwudTJPdmVyND1nLEwudTRPdmVyMTY9YixMLnU2T3ZlcjY0PU8sTC51OE92ZXIyNTY9VCxMLmEwPUUsTC5hMT13LEwuYTI9QyxMLmEzPU4sTC5kaXN0YW5jZVJhdGlvPUl9ZnVuY3Rpb24gUUkodCxlKXtyZXR1cm4gdCplKig0K3QqKDQtMyplKSkvMTZ9ZnVuY3Rpb24gVFQodCxlLG4sbyxyLGkscyl7bGV0IGY9UUkodCxuKTtyZXR1cm4oMS1mKSp0KmUqKG8rZipyKihzK2YqaSooMipzKnMtMSkpKX1mdW5jdGlvbiBKSSh0LGUsbixvLHIsaSxzKXtsZXQgZj0oZS1uKS9lLHU9aS1vLGM9TWF0aC5hdGFuKCgxLWYpKk1hdGgudGFuKHIpKSxsPU1hdGguYXRhbigoMS1mKSpNYXRoLnRhbihzKSkscD1NYXRoLmNvcyhjKSxkPU1hdGguc2luKGMpLG09TWF0aC5jb3MobCksXz1NYXRoLnNpbihsKSxnPXAqbSxiPXAqXyxPPWQqXyxUPWQqbSxFPXUsdz1NLlRXT19QSSxDPU1hdGguY29zKEUpLE49TWF0aC5zaW4oRSksSSxMLHYsRCxVO2Rve0M9TWF0aC5jb3MoRSksTj1NYXRoLnNpbihFKTtsZXQgWD1iLVQqQzt2PU1hdGguc3FydChtKm0qTipOK1gqWCksTD1PK2cqQyxJPU1hdGguYXRhbjIodixMKTtsZXQgUjt2PT09MD8oUj0wLEQ9MSk6KFI9ZypOL3YsRD0xLVIqUiksdz1FLFU9TC0yKk8vRCxpc0Zpbml0ZShVKXx8KFU9MCksRT11K1RUKGYsUixELEksdixMLFUpfXdoaWxlKE1hdGguYWJzKEUtdyk+TS5FUFNJTE9OMTIpO2xldCBBPUQqKGUqZS1uKm4pLyhuKm4pLFM9MStBKig0MDk2K0EqKEEqKDMyMC0xNzUqQSktNzY4KSkvMTYzODQsUD1BKigyNTYrQSooQSooNzQtNDcqQSktMTI4KSkvMTAyNCxGPVUqVSxqPVAqdiooVStQKihMKigyKkYtMSktUCpVKig0KnYqdi0zKSooNCpGLTMpLzYpLzQpLEg9bipTKihJLWopLGs9TWF0aC5hdGFuMihtKk4sYi1UKkMpLEs9TWF0aC5hdGFuMihwKk4sYipDLVQpO3QuX2Rpc3RhbmNlPUgsdC5fc3RhcnRIZWFkaW5nPWssdC5fZW5kSGVhZGluZz1LLHQuX3VTcXVhcmVkPUF9ZnVuY3Rpb24gT1QodCxlLG4sbyl7bGV0IHI9YS5ub3JtYWxpemUoby5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihlLEYwKSx0diksaT1hLm5vcm1hbGl6ZShvLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKG4sRjApLEYwKTt5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygidmFsdWUiLE1hdGguYWJzKE1hdGguYWJzKGEuYW5nbGVCZXR3ZWVuKHIsaSkpLU1hdGguUEkpLC4wMTI1KSxKSSh0LG8ubWF4aW11bVJhZGl1cyxvLm1pbmltdW1SYWRpdXMsZS5sb25naXR1ZGUsZS5sYXRpdHVkZSxuLmxvbmdpdHVkZSxuLmxhdGl0dWRlKSx0Ll9zdGFydD1jdC5jbG9uZShlLHQuX3N0YXJ0KSx0Ll9lbmQ9Y3QuY2xvbmUobix0Ll9lbmQpLHQuX3N0YXJ0LmhlaWdodD0wLHQuX2VuZC5oZWlnaHQ9MCxaSSh0KX1mdW5jdGlvbiBCZih0LGUsbil7bGV0IG89eChuLCQuV0dTODQpO3RoaXMuX2VsbGlwc29pZD1vLHRoaXMuX3N0YXJ0PW5ldyBjdCx0aGlzLl9lbmQ9bmV3IGN0LHRoaXMuX2NvbnN0YW50cz17fSx0aGlzLl9zdGFydEhlYWRpbmc9dm9pZCAwLHRoaXMuX2VuZEhlYWRpbmc9dm9pZCAwLHRoaXMuX2Rpc3RhbmNlPXZvaWQgMCx0aGlzLl91U3F1YXJlZD12b2lkIDAsaCh0KSYmaChlKSYmT1QodGhpcyx0LGUsbyl9dmFyIHR2LEYwLF9jLGNkPVooKCk9PntVdCgpO3ZlKCk7WXQoKTtJdCgpO2F0KCk7WnQoKTtXdCgpO3R2PW5ldyBhLEYwPW5ldyBhO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEJmLnByb3RvdHlwZSx7ZWxsaXBzb2lkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfX0sc3VyZmFjZURpc3RhbmNlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geS5kZWZpbmVkKCJkaXN0YW5jZSIsdGhpcy5fZGlzdGFuY2UpLHRoaXMuX2Rpc3RhbmNlfX0sc3RhcnQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGFydH19LGVuZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuZH19LHN0YXJ0SGVhZGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVmaW5lZCgiZGlzdGFuY2UiLHRoaXMuX2Rpc3RhbmNlKSx0aGlzLl9zdGFydEhlYWRpbmd9fSxlbmRIZWFkaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geS5kZWZpbmVkKCJkaXN0YW5jZSIsdGhpcy5fZGlzdGFuY2UpLHRoaXMuX2VuZEhlYWRpbmd9fX0pO0JmLnByb3RvdHlwZS5zZXRFbmRQb2ludHM9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoInN0YXJ0Iix0KSx5LmRlZmluZWQoImVuZCIsZSksT1QodGhpcyx0LGUsdGhpcy5fZWxsaXBzb2lkKX07QmYucHJvdG90eXBlLmludGVycG9sYXRlVXNpbmdGcmFjdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmludGVycG9sYXRlVXNpbmdTdXJmYWNlRGlzdGFuY2UodGhpcy5fZGlzdGFuY2UqdCxlKX07QmYucHJvdG90eXBlLmludGVycG9sYXRlVXNpbmdTdXJmYWNlRGlzdGFuY2U9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImRpc3RhbmNlIix0aGlzLl9kaXN0YW5jZSk7bGV0IG49dGhpcy5fY29uc3RhbnRzLG89bi5kaXN0YW5jZVJhdGlvK3Qvbi5iLHI9TWF0aC5jb3MoMipvKSxpPU1hdGguY29zKDQqbykscz1NYXRoLmNvcyg2Km8pLGY9TWF0aC5zaW4oMipvKSx1PU1hdGguc2luKDQqbyksYz1NYXRoLnNpbig2Km8pLGw9TWF0aC5zaW4oOCpvKSxwPW8qbyxkPW8qcCxtPW4udThPdmVyMjU2LF89bi51Mk92ZXI0LGc9bi51Nk92ZXI2NCxiPW4udTRPdmVyMTYsTz0yKmQqbSpyLzMrbyooMS1fKzcqYi80LTE1KmcvNCs1NzkqbS82NC0oYi0xNSpnLzQrMTg3Km0vMTYpKnItKDUqZy80LTExNSptLzE2KSppLTI5Km0qcy8xNikrKF8vMi1iKzcxKmcvMzItODUqbS8xNikqZisoNSpiLzE2LTUqZy80KzM4MyptLzk2KSp1LXAqKChnLTExKm0vMikqZis1Km0qdS8yKSsoMjkqZy85Ni0yOSptLzE2KSpjKzUzOSptKmwvMTUzNixUPU1hdGguYXNpbihNYXRoLnNpbihPKSpuLmNvc2luZUFscGhhKSxFPU1hdGguYXRhbihuLmEvbi5iKk1hdGgudGFuKFQpKTtPPU8tbi5zaWdtYTtsZXQgdz1NYXRoLmNvcygyKm4uc2lnbWErTyksQz1NYXRoLnNpbihPKSxOPU1hdGguY29zKE8pLEk9bi5jb3NpbmVVKk4sTD1uLnNpbmVVKkMsRD1NYXRoLmF0YW4yKEMqbi5zaW5lSGVhZGluZyxJLUwqbi5jb3NpbmVIZWFkaW5nKS1UVChuLmYsbi5zaW5lQWxwaGEsbi5jb3NpbmVTcXVhcmVkQWxwaGEsTyxDLE4sdyk7cmV0dXJuIGgoZSk/KGUubG9uZ2l0dWRlPXRoaXMuX3N0YXJ0LmxvbmdpdHVkZStELGUubGF0aXR1ZGU9RSxlLmhlaWdodD0wLGUpOm5ldyBjdCh0aGlzLl9zdGFydC5sb25naXR1ZGUrRCxFLDApfTtfYz1CZn0pO2Z1bmN0aW9uIENUKHQsZSxuKXtsZXQgbz1VMDtvLmxlbmd0aD10O2xldCByO2lmKGU9PT1uKXtmb3Iocj0wO3I8dDtyKyspb1tyXT1lO3JldHVybiBvfWxldCBzPShuLWUpL3Q7Zm9yKHI9MDtyPHQ7cisrKXtsZXQgZj1lK3IqcztvW3JdPWZ9cmV0dXJuIG99ZnVuY3Rpb24gZnYodCxlLG4sbyxyLGkscyxmKXtsZXQgdT1vLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UodCxWMCksYz1vLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoZSxhdiksbD1Vby5udW1iZXJPZlBvaW50cyh0LGUsbikscD1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHUsZmQpLGQ9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhjLGFkKSxtPUNUKGwscixpKTtCMC5zZXRFbmRQb2ludHMocCxkKTtsZXQgXz1CMC5zdXJmYWNlRGlzdGFuY2UvbCxnPWY7cC5oZWlnaHQ9cjtsZXQgYj1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHAscHMpO2EucGFjayhiLHMsZyksZys9Mztmb3IobGV0IE89MTtPPGw7TysrKXtsZXQgVD1CMC5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlKE8qXyxhZCk7VC5oZWlnaHQ9bVtPXSxiPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oVCxwcyksYS5wYWNrKGIscyxnKSxnKz0zfXJldHVybiBnfWZ1bmN0aW9uIHV2KHQsZSxuLG8scixpLHMsZil7bGV0IHU9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyh0LGZkKSxjPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxhZCksbD1Vby5udW1iZXJPZlBvaW50c1JodW1iTGluZSh1LGMsbik7dS5oZWlnaHQ9MCxjLmhlaWdodD0wO2xldCBwPUNUKGwscixpKTtVZi5lbGxpcHNvaWQuZXF1YWxzKG8pfHwoVWY9bmV3IEpvKHZvaWQgMCx2b2lkIDAsbykpLFVmLnNldEVuZFBvaW50cyh1LGMpO2xldCBkPVVmLnN1cmZhY2VEaXN0YW5jZS9sLG09Zjt1LmhlaWdodD1yO2xldCBfPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4odSxwcyk7YS5wYWNrKF8scyxtKSxtKz0zO2ZvcihsZXQgZz0xO2c8bDtnKyspe2xldCBiPVVmLmludGVycG9sYXRlVXNpbmdTdXJmYWNlRGlzdGFuY2UoZypkLGFkKTtiLmhlaWdodD1wW2ddLF89by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihiLHBzKSxhLnBhY2soXyxzLG0pLG0rPTN9cmV0dXJuIG19dmFyIFVvLGV2LG52LG92LEVULHJ2LFJULGl2LHN2LGN2LFUwLGZkLGFkLHBzLFYwLGF2LEIwLFVmLFNULGx2LHluLGdhPVooKCk9PntVdCgpO3ZlKCk7SXQoKTthdCgpO0h0KCk7WnQoKTtjZCgpO05mKCk7dGMoKTtXdCgpO2tuKCk7Y3MoKTtVbz17fTtVby5udW1iZXJPZlBvaW50cz1mdW5jdGlvbih0LGUsbil7bGV0IG89YS5kaXN0YW5jZSh0LGUpO3JldHVybiBNYXRoLmNlaWwoby9uKX07VW8ubnVtYmVyT2ZQb2ludHNSaHVtYkxpbmU9ZnVuY3Rpb24odCxlLG4pe2xldCBvPU1hdGgucG93KHQubG9uZ2l0dWRlLWUubG9uZ2l0dWRlLDIpK01hdGgucG93KHQubGF0aXR1ZGUtZS5sYXRpdHVkZSwyKTtyZXR1cm4gTWF0aC5tYXgoMSxNYXRoLmNlaWwoTWF0aC5zcXJ0KG8vKG4qbikpKSl9O2V2PW5ldyBjdDtVby5leHRyYWN0SGVpZ2h0cz1mdW5jdGlvbih0LGUpe2xldCBuPXQubGVuZ3RoLG89bmV3IEFycmF5KG4pO2ZvcihsZXQgcj0wO3I8bjtyKyspe2xldCBpPXRbcl07b1tyXT1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGksZXYpLmhlaWdodH1yZXR1cm4gb307bnY9bmV3IHN0LG92PW5ldyBhLEVUPW5ldyBhLHJ2PW5ldyBvbihhLlVOSVRfWCwwKSxSVD1uZXcgYSxpdj1uZXcgb24oYS5VTklUX1gsMCksc3Y9bmV3IGEsY3Y9bmV3IGEsVTA9W107ZmQ9bmV3IGN0LGFkPW5ldyBjdCxwcz1uZXcgYSxWMD1uZXcgYSxhdj1uZXcgYSxCMD1uZXcgX2MsVWY9bmV3IEpvO1VvLndyYXBMb25naXR1ZGU9ZnVuY3Rpb24odCxlKXtsZXQgbj1bXSxvPVtdO2lmKGgodCkmJnQubGVuZ3RoPjApe2U9eChlLHN0LklERU5USVRZKTtsZXQgcj1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oZSxudiksaT1zdC5tdWx0aXBseUJ5UG9pbnQocixhLlpFUk8sb3YpLHM9YS5ub3JtYWxpemUoc3QubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IocixhLlVOSVRfWSxFVCksRVQpLGY9b24uZnJvbVBvaW50Tm9ybWFsKGkscyxydiksdT1hLm5vcm1hbGl6ZShzdC5tdWx0aXBseUJ5UG9pbnRBc1ZlY3RvcihyLGEuVU5JVF9YLFJUKSxSVCksYz1vbi5mcm9tUG9pbnROb3JtYWwoaSx1LGl2KSxsPTE7bi5wdXNoKGEuY2xvbmUodFswXSkpO2xldCBwPW5bMF0sZD10Lmxlbmd0aDtmb3IobGV0IG09MTttPGQ7KyttKXtsZXQgXz10W21dO2lmKG9uLmdldFBvaW50RGlzdGFuY2UoYyxwKTwwfHxvbi5nZXRQb2ludERpc3RhbmNlKGMsXyk8MCl7bGV0IGc9X28ubGluZVNlZ21lbnRQbGFuZShwLF8sZixzdik7aWYoaChnKSl7bGV0IGI9YS5tdWx0aXBseUJ5U2NhbGFyKHMsNWUtOSxjdik7b24uZ2V0UG9pbnREaXN0YW5jZShmLHApPDAmJmEubmVnYXRlKGIsYiksbi5wdXNoKGEuYWRkKGcsYixuZXcgYSkpLG8ucHVzaChsKzEpLGEubmVnYXRlKGIsYiksbi5wdXNoKGEuYWRkKGcsYixuZXcgYSkpLGw9MX19bi5wdXNoKGEuY2xvbmUodFttXSkpLGwrKyxwPV99by5wdXNoKGwpfXJldHVybntwb3NpdGlvbnM6bixsZW5ndGhzOm99fTtVby5nZW5lcmF0ZUFyYz1mdW5jdGlvbih0KXtoKHQpfHwodD17fSk7bGV0IGU9dC5wb3NpdGlvbnM7aWYoIWgoZSkpdGhyb3cgbmV3IEIoIm9wdGlvbnMucG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO2xldCBuPWUubGVuZ3RoLG89eCh0LmVsbGlwc29pZCwkLldHUzg0KSxyPXgodC5oZWlnaHQsMCksaT1BcnJheS5pc0FycmF5KHIpO2lmKG48MSlyZXR1cm5bXTtpZihuPT09MSl7bGV0IGc9by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGVbMF0sVjApO2lmKHI9aT9yWzBdOnIsciE9PTApe2xldCBiPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGcscHMpO2EubXVsdGlwbHlCeVNjYWxhcihiLHIsYiksYS5hZGQoZyxiLGcpfXJldHVybltnLngsZy55LGcuel19bGV0IHM9dC5taW5EaXN0YW5jZTtpZighaChzKSl7bGV0IGc9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKTtzPU0uY2hvcmRMZW5ndGgoZyxvLm1heGltdW1SYWRpdXMpfWxldCBmPTAsdTtmb3IodT0wO3U8bi0xO3UrKylmKz1Vby5udW1iZXJPZlBvaW50cyhlW3VdLGVbdSsxXSxzKTtsZXQgYz0oZisxKSozLGw9bmV3IEFycmF5KGMpLHA9MDtmb3IodT0wO3U8bi0xO3UrKyl7bGV0IGc9ZVt1XSxiPWVbdSsxXSxPPWk/clt1XTpyLFQ9aT9yW3UrMV06cjtwPWZ2KGcsYixzLG8sTyxULGwscCl9VTAubGVuZ3RoPTA7bGV0IGQ9ZVtuLTFdLG09by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhkLGZkKTttLmhlaWdodD1pP3Jbbi0xXTpyO2xldCBfPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4obSxwcyk7cmV0dXJuIGEucGFjayhfLGwsYy0zKSxsfTtTVD1uZXcgY3QsbHY9bmV3IGN0O1VvLmdlbmVyYXRlUmh1bWJBcmM9ZnVuY3Rpb24odCl7aCh0KXx8KHQ9e30pO2xldCBlPXQucG9zaXRpb25zO2lmKCFoKGUpKXRocm93IG5ldyBCKCJvcHRpb25zLnBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTtsZXQgbj1lLmxlbmd0aCxvPXgodC5lbGxpcHNvaWQsJC5XR1M4NCkscj14KHQuaGVpZ2h0LDApLGk9QXJyYXkuaXNBcnJheShyKTtpZihuPDEpcmV0dXJuW107aWYobj09PTEpe2xldCBPPW8uc2NhbGVUb0dlb2RldGljU3VyZmFjZShlWzBdLFYwKTtpZihyPWk/clswXTpyLHIhPT0wKXtsZXQgVD1vLmdlb2RldGljU3VyZmFjZU5vcm1hbChPLHBzKTthLm11bHRpcGx5QnlTY2FsYXIoVCxyLFQpLGEuYWRkKE8sVCxPKX1yZXR1cm5bTy54LE8ueSxPLnpdfWxldCBzPXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksZj0wLHUsYz1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGVbMF0sU1QpLGw7Zm9yKHU9MDt1PG4tMTt1KyspbD1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGVbdSsxXSxsdiksZis9VW8ubnVtYmVyT2ZQb2ludHNSaHVtYkxpbmUoYyxsLHMpLGM9Y3QuY2xvbmUobCxTVCk7bGV0IHA9KGYrMSkqMyxkPW5ldyBBcnJheShwKSxtPTA7Zm9yKHU9MDt1PG4tMTt1Kyspe2xldCBPPWVbdV0sVD1lW3UrMV0sRT1pP3JbdV06cix3PWk/clt1KzFdOnI7bT11dihPLFQscyxvLEUsdyxkLG0pfVUwLmxlbmd0aD0wO2xldCBfPWVbbi0xXSxnPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoXyxmZCk7Zy5oZWlnaHQ9aT9yW24tMV06cjtsZXQgYj1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGcscHMpO3JldHVybiBhLnBhY2soYixkLHAtMyksZH07VW8uZ2VuZXJhdGVDYXJ0ZXNpYW5BcmM9ZnVuY3Rpb24odCl7bGV0IGU9VW8uZ2VuZXJhdGVBcmModCksbj1lLmxlbmd0aC8zLG89bmV3IEFycmF5KG4pO2ZvcihsZXQgcj0wO3I8bjtyKyspb1tyXT1hLnVucGFjayhlLHIqMyk7cmV0dXJuIG99O1VvLmdlbmVyYXRlQ2FydGVzaWFuUmh1bWJBcmM9ZnVuY3Rpb24odCl7bGV0IGU9VW8uZ2VuZXJhdGVSaHVtYkFyYyh0KSxuPWUubGVuZ3RoLzMsbz1uZXcgQXJyYXkobik7Zm9yKGxldCByPTA7cjxuO3IrKylvW3JdPWEudW5wYWNrKGUsciozKTtyZXR1cm4gb307eW49VW99KTtmdW5jdGlvbiBWZih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJpZGVudGlmaWVyIGlzIHJlcXVpcmVkLiIpO2goeFRbdF0pfHwoeFRbdF09ITAsY29uc29sZS53YXJuKHgoZSx0KSkpfXZhciB4VCxBYSx1ZD1aKCgpPT57SXQoKTthdCgpO0h0KCk7eFQ9e307VmYuZ2VvbWV0cnlPdXRsaW5lcz0iRW50aXR5IGdlb21ldHJ5IG91dGxpbmVzIGFyZSB1bnN1cHBvcnRlZCBvbiB0ZXJyYWluLiBPdXRsaW5lcyB3aWxsIGJlIGRpc2FibGVkLiBUbyBlbmFibGUgb3V0bGluZXMsIGRpc2FibGUgZ2VvbWV0cnkgdGVycmFpbiBjbGFtcGluZyBieSBleHBsaWNpdGx5IHNldHRpbmcgaGVpZ2h0IHRvIDAuIjtWZi5nZW9tZXRyeVpJbmRleD0iRW50aXR5IGdlb21ldHJ5IHdpdGggekluZGV4IGFyZSB1bnN1cHBvcnRlZCB3aGVuIGhlaWdodCBvciBleHRydWRlZEhlaWdodCBhcmUgZGVmaW5lZC4gIHpJbmRleCB3aWxsIGJlIGlnbm9yZWQiO1ZmLmdlb21ldHJ5SGVpZ2h0UmVmZXJlbmNlPSJFbnRpdHkgY29ycmlkb3IsIGVsbGlwc2UsIHBvbHlnb24gb3IgcmVjdGFuZ2xlIHdpdGggaGVpZ2h0UmVmZXJlbmNlIG11c3QgYWxzbyBoYXZlIGEgZGVmaW5lZCBoZWlnaHQuICBoZWlnaHRSZWZlcmVuY2Ugd2lsbCBiZSBpZ25vcmVkIjtWZi5nZW9tZXRyeUV4dHJ1ZGVkSGVpZ2h0UmVmZXJlbmNlPSJFbnRpdHkgY29ycmlkb3IsIGVsbGlwc2UsIHBvbHlnb24gb3IgcmVjdGFuZ2xlIHdpdGggZXh0cnVkZWRIZWlnaHRSZWZlcmVuY2UgbXVzdCBhbHNvIGhhdmUgYSBkZWZpbmVkIGV4dHJ1ZGVkSGVpZ2h0LiAgZXh0cnVkZWRIZWlnaHRSZWZlcmVuY2Ugd2lsbCBiZSBpZ25vcmVkIjtBYT1WZn0pO2Z1bmN0aW9uIHd2KHQsZSl7bGV0IG49bmV3IEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl7bGV0IHI9dFtvXTtrMD1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHIsazApLG5bb109azAuaGVpZ2h0LHRbb109ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHIscil9cmV0dXJuIG59ZnVuY3Rpb24gRzAodCxlLG4sbyl7bGV0IHI9dFswXSxpPXRbMV0scz1hLmFuZ2xlQmV0d2VlbihyLGkpLGY9TWF0aC5jZWlsKHMvbyksdT1uZXcgQXJyYXkoZiksYztpZihlPT09bil7Zm9yKGM9MDtjPGY7YysrKXVbY109ZTtyZXR1cm4gdS5wdXNoKG4pLHV9bGV0IHA9KG4tZSkvZjtmb3IoYz0xO2M8ZjtjKyspe2xldCBkPWUrYypwO3VbY109ZH1yZXR1cm4gdVswXT1lLHUucHVzaChuKSx1fWZ1bmN0aW9uIFR2KHQsZSxuLG8pe2xldCByPW5ldyB5byhuLG8pLGk9ci5wcm9qZWN0UG9pbnRPbnRvUGxhbmUoYS5hZGQobix0LHBkKSxwZCkscz1yLnByb2plY3RQb2ludE9udG9QbGFuZShhLmFkZChuLGUsZGQpLGRkKSxmPW50LmFuZ2xlQmV0d2VlbihpLHMpO3JldHVybiBzLngqaS55LXMueSppLng+PTA/LWY6Zn1mdW5jdGlvbiBCaSh0LGUsbixvLHIsaSxzLGYpe2xldCB1PVN2LGM9Q3Y7eWM9Z3IuZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUodCxyLHljKSx1PXN0Lm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKHljLE92LHUpLHU9YS5ub3JtYWxpemUodSx1KTtsZXQgbD1Udih1LGUsdCxyKTt6MD10dC5mcm9tUm90YXRpb25aKGwsejApLFBULno9aSx5Yz1zdC5tdWx0aXBseVRyYW5zZm9ybWF0aW9uKHljLHN0LmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKHowLFBULEV2KSx5Yyk7bGV0IHA9UnY7cFswXT1zO2ZvcihsZXQgZD0wO2Q8ZjtkKyspZm9yKGxldCBtPTA7bTxuLmxlbmd0aDttKz0zKWM9YS5mcm9tQXJyYXkobixtLGMpLGM9dHQubXVsdGlwbHlCeVZlY3RvcihwLGMsYyksYz1zdC5tdWx0aXBseUJ5UG9pbnQoeWMsYyxjKSxvLnB1c2goYy54LGMueSxjLnopO3JldHVybiBvfWZ1bmN0aW9uIGowKHQsZSxuLG8scixpLHMpe2ZvcihsZXQgZj0wO2Y8dC5sZW5ndGg7Zis9Myl7bGV0IHU9YS5mcm9tQXJyYXkodCxmLHh2KTtvPUJpKHUsZSxuLG8scixpW2YvM10scywxKX1yZXR1cm4gb31mdW5jdGlvbiBQdih0LGUpe2xldCBuPXQubGVuZ3RoLG89bmV3IEFycmF5KG4qNikscj0wLGk9ZS54K2Uud2lkdGgvMixzPWUueStlLmhlaWdodC8yLGY9dFswXTtvW3IrK109Zi54LWksb1tyKytdPTAsb1tyKytdPWYueS1zO2ZvcihsZXQgdT0xO3U8bjt1Kyspe2Y9dFt1XTtsZXQgYz1mLngtaSxsPWYueS1zO29bcisrXT1jLG9bcisrXT0wLG9bcisrXT1sLG9bcisrXT1jLG9bcisrXT0wLG9bcisrXT1sfXJldHVybiBmPXRbMF0sb1tyKytdPWYueC1pLG9bcisrXT0wLG9bcisrXT1mLnktcyxvfWZ1bmN0aW9uIE1UKHQsZSl7bGV0IG49dC5sZW5ndGgsbz1uZXcgQXJyYXkobiozKSxyPTAsaT1lLngrZS53aWR0aC8yLHM9ZS55K2UuaGVpZ2h0LzI7Zm9yKGxldCBmPTA7ZjxuO2YrKylvW3IrK109dFtmXS54LWksb1tyKytdPTAsb1tyKytdPXRbZl0ueS1zO3JldHVybiBvfWZ1bmN0aW9uIERUKHQsZSxuLG8scixpLHMsZix1LGMpe2xldCBsPWEuYW5nbGVCZXR3ZWVuKGEuc3VidHJhY3QoZSx0LGJhKSxhLnN1YnRyYWN0KG4sdCxsZCkpLHA9bz09PWZuLkJFVkVMRUQ/MDpNYXRoLmNlaWwobC9NLnRvUmFkaWFucyg1KSksZDtyP2Q9dHQuZnJvbVF1YXRlcm5pb24obmUuZnJvbUF4aXNBbmdsZShhLm5lZ2F0ZSh0LGJhKSxsLyhwKzEpLE5UKSx2VCk6ZD10dC5mcm9tUXVhdGVybmlvbihuZS5mcm9tQXhpc0FuZ2xlKHQsbC8ocCsxKSxOVCksdlQpO2xldCBtLF87aWYoZT1hLmNsb25lKGUsSVQpLHA+MCl7bGV0IGc9Yz8yOjE7Zm9yKGxldCBiPTA7YjxwO2IrKyllPXR0Lm11bHRpcGx5QnlWZWN0b3IoZCxlLGUpLG09YS5zdWJ0cmFjdChlLHQsYmEpLG09YS5ub3JtYWxpemUobSxtKSxyfHwobT1hLm5lZ2F0ZShtLG0pKSxfPWkuc2NhbGVUb0dlb2RldGljU3VyZmFjZShlLGxkKSxzPUJpKF8sbSxmLHMsaSx1LDEsZyl9ZWxzZSBtPWEuc3VidHJhY3QoZSx0LGJhKSxtPWEubm9ybWFsaXplKG0sbSkscnx8KG09YS5uZWdhdGUobSxtKSksXz1pLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoZSxsZCkscz1CaShfLG0sZixzLGksdSwxLDEpLG49YS5jbG9uZShuLElUKSxtPWEuc3VidHJhY3Qobix0LGJhKSxtPWEubm9ybWFsaXplKG0sbSkscnx8KG09YS5uZWdhdGUobSxtKSksXz1pLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UobixsZCkscz1CaShfLG0sZixzLGksdSwxLDEpO3JldHVybiBzfXZhciBhbyxwdixkdixtdixodixfdix5dixndixBdixidixiYSxsZCxrZixrMCxwZCxkZCxPdix5YyxFdix6MCxSdixTdixDdixQVCx4dixOVCxJVCx2VCxNdixOdixkcyxtZD1aKCgpPT57emUoKTtVdCgpO2hyKCk7dmUoKTtoYygpO3BhKCk7V3QoKTtGbigpO2tuKCk7Z2EoKTskbygpOyRzKCk7dWQoKTthbz1bbmV3IGEsbmV3IGFdLHB2PW5ldyBhLGR2PW5ldyBhLG12PW5ldyBhLGh2PW5ldyBhLF92PW5ldyBhLHl2PW5ldyBhLGd2PW5ldyBhLEF2PW5ldyBhLGJ2PW5ldyBhLGJhPW5ldyBhLGxkPW5ldyBhLGtmPXt9LGswPW5ldyBjdDtwZD1uZXcgYSxkZD1uZXcgYTtPdj1uZXcgYSgtMSwwLDApLHljPW5ldyBzdCxFdj1uZXcgc3QsejA9bmV3IHR0LFJ2PXR0LklERU5USVRZLmNsb25lKCksU3Y9bmV3IGEsQ3Y9bmV3IF9lLFBUPW5ldyBhO3h2PW5ldyBhO05UPW5ldyBuZSxJVD1uZXcgYSx2VD1uZXcgdHQ7a2YucmVtb3ZlRHVwbGljYXRlc0Zyb21TaGFwZT1mdW5jdGlvbih0KXtsZXQgZT10Lmxlbmd0aCxuPVtdO2ZvcihsZXQgbz1lLTEscj0wO3I8ZTtvPXIrKyl7bGV0IGk9dFtvXSxzPXRbcl07bnQuZXF1YWxzKGkscyl8fG4ucHVzaChzKX1yZXR1cm4gbn07a2YuYW5nbGVJc0dyZWF0ZXJUaGFuUGk9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9bmV3IHlvKG4sbyksaT1yLnByb2plY3RQb2ludE9udG9QbGFuZShhLmFkZChuLHQscGQpLHBkKSxzPXIucHJvamVjdFBvaW50T250b1BsYW5lKGEuYWRkKG4sZSxkZCksZGQpO3JldHVybiBzLngqaS55LXMueSppLng+PTB9O012PW5ldyBhLE52PW5ldyBhO2tmLmNvbXB1dGVQb3NpdGlvbnM9ZnVuY3Rpb24odCxlLG4sbyxyKXtsZXQgaT1vLl9lbGxpcHNvaWQscz13dih0LGkpLGY9by5fZ3JhbnVsYXJpdHksdT1vLl9jb3JuZXJUeXBlLGM9cj9QdihlLG4pOk1UKGUsbiksbD1yP01UKGUsbik6dm9pZCAwLHA9bi5oZWlnaHQvMixkPW4ud2lkdGgvMixtPXQubGVuZ3RoLF89W10sZz1yP1tdOnZvaWQgMCxiPXB2LE89ZHYsVD1tdixFPWh2LHc9X3YsQz15dixOPWd2LEk9QXYsTD1idix2PXRbMF0sRD10WzFdO0U9aS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwodixFKSxiPWEuc3VidHJhY3QoRCx2LGIpLGI9YS5ub3JtYWxpemUoYixiKSxJPWEuY3Jvc3MoRSxiLEkpLEk9YS5ub3JtYWxpemUoSSxJKTtsZXQgVT1zWzBdLEE9c1sxXTtyJiYoZz1CaSh2LEksbCxnLGksVStwLDEsMSkpLEw9YS5jbG9uZSh2LEwpLHY9RCxPPWEubmVnYXRlKGIsTyk7bGV0IFMsUDtmb3IobGV0IEg9MTtIPG0tMTtIKyspe2xldCBrPXI/MjoxO2lmKEQ9dFtIKzFdLHYuZXF1YWxzKEQpKXtBYSgiUG9zaXRpb25zIGFyZSB0b28gY2xvc2UgYW5kIGFyZSBjb25zaWRlcmVkIGVxdWl2YWxlbnQgd2l0aCByb3VuZGluZyBlcnJvci4iKTtjb250aW51ZX1iPWEuc3VidHJhY3QoRCx2LGIpLGI9YS5ub3JtYWxpemUoYixiKSxUPWEuYWRkKGIsTyxUKSxUPWEubm9ybWFsaXplKFQsVCksRT1pLmdlb2RldGljU3VyZmFjZU5vcm1hbCh2LEUpO2xldCBLPWEubXVsdGlwbHlCeVNjYWxhcihFLGEuZG90KGIsRSksTXYpO2Euc3VidHJhY3QoYixLLEspLGEubm9ybWFsaXplKEssSyk7bGV0IFg9YS5tdWx0aXBseUJ5U2NhbGFyKEUsYS5kb3QoTyxFKSxOdik7aWYoYS5zdWJ0cmFjdChPLFgsWCksYS5ub3JtYWxpemUoWCxYKSwhTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKGEuZG90KEssWCkpLDEsTS5FUFNJTE9ONykpe1Q9YS5jcm9zcyhULEUsVCksVD1hLmNyb3NzKEUsVCxUKSxUPWEubm9ybWFsaXplKFQsVCk7bGV0IFE9MS9NYXRoLm1heCguMjUsYS5tYWduaXR1ZGUoYS5jcm9zcyhULE8sYmEpKSksZnQ9a2YuYW5nbGVJc0dyZWF0ZXJUaGFuUGkoYixPLHYsaSk7ZnQ/KHc9YS5hZGQodixhLm11bHRpcGx5QnlTY2FsYXIoVCxRKmQsVCksdyksQz1hLmFkZCh3LGEubXVsdGlwbHlCeVNjYWxhcihJLGQsQyksQyksYW9bMF09YS5jbG9uZShMLGFvWzBdKSxhb1sxXT1hLmNsb25lKEMsYW9bMV0pLFM9RzAoYW8sVStwLEErcCxmKSxQPXluLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6YW8sZ3JhbnVsYXJpdHk6ZixlbGxpcHNvaWQ6aX0pLF89ajAoUCxJLGMsXyxpLFMsMSksST1hLmNyb3NzKEUsYixJKSxJPWEubm9ybWFsaXplKEksSSksTj1hLmFkZCh3LGEubXVsdGlwbHlCeVNjYWxhcihJLGQsTiksTiksdT09PWZuLlJPVU5ERUR8fHU9PT1mbi5CRVZFTEVEP0RUKHcsQyxOLHUsZnQsaSxfLGMsQStwLHIpOihUPWEubmVnYXRlKFQsVCksXz1CaSh2LFQsYyxfLGksQStwLFEsaykpLEw9YS5jbG9uZShOLEwpKToodz1hLmFkZCh2LGEubXVsdGlwbHlCeVNjYWxhcihULFEqZCxUKSx3KSxDPWEuYWRkKHcsYS5tdWx0aXBseUJ5U2NhbGFyKEksLWQsQyksQyksYW9bMF09YS5jbG9uZShMLGFvWzBdKSxhb1sxXT1hLmNsb25lKEMsYW9bMV0pLFM9RzAoYW8sVStwLEErcCxmKSxQPXluLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6YW8sZ3JhbnVsYXJpdHk6ZixlbGxpcHNvaWQ6aX0pLF89ajAoUCxJLGMsXyxpLFMsMSksST1hLmNyb3NzKEUsYixJKSxJPWEubm9ybWFsaXplKEksSSksTj1hLmFkZCh3LGEubXVsdGlwbHlCeVNjYWxhcihJLC1kLE4pLE4pLHU9PT1mbi5ST1VOREVEfHx1PT09Zm4uQkVWRUxFRD9EVCh3LEMsTix1LGZ0LGksXyxjLEErcCxyKTpfPUJpKHYsVCxjLF8saSxBK3AsUSxrKSxMPWEuY2xvbmUoTixMKSksTz1hLm5lZ2F0ZShiLE8pfWVsc2UgXz1CaShMLEksYyxfLGksVStwLDEsMSksTD12O1U9QSxBPXNbSCsxXSx2PUR9YW9bMF09YS5jbG9uZShMLGFvWzBdKSxhb1sxXT1hLmNsb25lKHYsYW9bMV0pLFM9RzAoYW8sVStwLEErcCxmKSxQPXluLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6YW8sZ3JhbnVsYXJpdHk6ZixlbGxpcHNvaWQ6aX0pLF89ajAoUCxJLGMsXyxpLFMsMSksciYmKGc9QmkodixJLGwsZyxpLEErcCwxLDEpKSxtPV8ubGVuZ3RoO2xldCBGPXI/bStnLmxlbmd0aDptLGo9bmV3IEZsb2F0NjRBcnJheShGKTtyZXR1cm4gai5zZXQoXyksciYmai5zZXQoZyxtKSxqfTtkcz1rZn0pO2Z1bmN0aW9uIGhkKHQsZSxuLG8scil7bGV0IGk9YS5hbmdsZUJldHdlZW4oYS5zdWJ0cmFjdChlLHQsd2EpLGEuc3VidHJhY3Qobix0LFZUKSkscz1vPT09Zm4uQkVWRUxFRD8xOk1hdGguY2VpbChpL00udG9SYWRpYW5zKDUpKSsxLGY9cyozLHU9bmV3IEFycmF5KGYpO3VbZi0zXT1uLngsdVtmLTJdPW4ueSx1W2YtMV09bi56O2xldCBjO3I/Yz10dC5mcm9tUXVhdGVybmlvbihuZS5mcm9tQXhpc0FuZ2xlKGEubmVnYXRlKHQsd2EpLGkvcyxGVCksQlQpOmM9dHQuZnJvbVF1YXRlcm5pb24obmUuZnJvbUF4aXNBbmdsZSh0LGkvcyxGVCksQlQpO2xldCBsPTA7ZT1hLmNsb25lKGUsd2EpO2ZvcihsZXQgcD0wO3A8cztwKyspZT10dC5tdWx0aXBseUJ5VmVjdG9yKGMsZSxlKSx1W2wrK109ZS54LHVbbCsrXT1lLnksdVtsKytdPWUuejtyZXR1cm4gdX1mdW5jdGlvbiBrdih0KXtsZXQgZT1rVCxuPUdULG89elQscj10WzFdO249YS5mcm9tQXJyYXkodFsxXSxyLmxlbmd0aC0zLG4pLG89YS5mcm9tQXJyYXkodFswXSwwLG8pLGU9YS5taWRwb2ludChuLG8sZSk7bGV0IGk9aGQoZSxuLG8sZm4uUk9VTkRFRCwhMSkscz10Lmxlbmd0aC0xLGY9dFtzLTFdO3I9dFtzXSxuPWEuZnJvbUFycmF5KGYsZi5sZW5ndGgtMyxuKSxvPWEuZnJvbUFycmF5KHIsMCxvKSxlPWEubWlkcG9pbnQobixvLGUpO2xldCB1PWhkKGUsbixvLGZuLlJPVU5ERUQsITEpO3JldHVybltpLHVdfWZ1bmN0aW9uIFVUKHQsZSxuLG8pe2xldCByPXdhO3JldHVybiBvP3I9YS5hZGQodCxlLHIpOihlPWEubmVnYXRlKGUsZSkscj1hLmFkZCh0LGUscikpLFtyLngsci55LHIueixuLngsbi55LG4uel19ZnVuY3Rpb24gSDAodCxlLG4sbyl7bGV0IHI9bmV3IEFycmF5KHQubGVuZ3RoKSxpPW5ldyBBcnJheSh0Lmxlbmd0aCkscz1hLm11bHRpcGx5QnlTY2FsYXIoZSxuLHdhKSxmPWEubmVnYXRlKHMsVlQpLHU9MCxjPXQubGVuZ3RoLTE7Zm9yKGxldCBsPTA7bDx0Lmxlbmd0aDtsKz0zKXtsZXQgcD1hLmZyb21BcnJheSh0LGwsSXYpLGQ9YS5hZGQocCxmLExUKTtyW3UrK109ZC54LHJbdSsrXT1kLnksclt1KytdPWQuejtsZXQgbT1hLmFkZChwLHMsTFQpO2lbYy0tXT1tLnosaVtjLS1dPW0ueSxpW2MtLV09bS54fXJldHVybiBvLnB1c2gocixpKSxvfXZhciBxMCx3YSxWVCxJdixMVCxWbyxrVCxHVCx6VCx2dixEdixMdixGdixCdixVdixWdixGVCxCVCxHdix6dixxZSxLMD1aKCgpPT57VXQoKTtoYygpO2F0KCk7V3QoKTtGbigpO2dhKCk7bWQoKTskbygpO3EwPXt9LHdhPW5ldyBhLFZUPW5ldyBhLEl2PW5ldyBhLExUPW5ldyBhLFZvPVtuZXcgYSxuZXcgYV0sa1Q9bmV3IGEsR1Q9bmV3IGEselQ9bmV3IGEsdnY9bmV3IGEsRHY9bmV3IGEsTHY9bmV3IGEsRnY9bmV3IGEsQnY9bmV3IGEsVXY9bmV3IGEsVnY9bmV3IGEsRlQ9bmV3IG5lLEJUPW5ldyB0dDtxMC5hZGRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9ZS54LGk9ZS55LHM9ZS56O2gobikmJih0W25dPXIsdFtuKzFdPWksdFtuKzJdPXMpLGgobykmJih0W29dPXMsdFtvLTFdPWksdFtvLTJdPXIpfTtHdj1uZXcgYSx6dj1uZXcgYTtxMC5jb21wdXRlUG9zaXRpb25zPWZ1bmN0aW9uKHQpe2xldCBlPXQuZ3JhbnVsYXJpdHksbj10LnBvc2l0aW9ucyxvPXQuZWxsaXBzb2lkLHI9dC53aWR0aC8yLGk9dC5jb3JuZXJUeXBlLHM9dC5zYXZlQXR0cmlidXRlcyxmPWtULHU9R1QsYz16VCxsPXZ2LHA9RHYsZD1MdixtPUZ2LF89QnYsZz1VdixiPVZ2LE89W10sVD1zP1tdOnZvaWQgMCxFPXM/W106dm9pZCAwLHc9blswXSxDPW5bMV07dT1hLm5vcm1hbGl6ZShhLnN1YnRyYWN0KEMsdyx1KSx1KSxmPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHcsZiksbD1hLm5vcm1hbGl6ZShhLmNyb3NzKGYsdSxsKSxsKSxzJiYoVC5wdXNoKGwueCxsLnksbC56KSxFLnB1c2goZi54LGYueSxmLnopKSxtPWEuY2xvbmUodyxtKSx3PUMsYz1hLm5lZ2F0ZSh1LGMpO2xldCBOLEk9W10sTCx2PW4ubGVuZ3RoO2ZvcihMPTE7TDx2LTE7TCsrKXtmPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHcsZiksQz1uW0wrMV0sdT1hLm5vcm1hbGl6ZShhLnN1YnRyYWN0KEMsdyx1KSx1KSxwPWEubm9ybWFsaXplKGEuYWRkKHUsYyxwKSxwKTtsZXQgVT1hLm11bHRpcGx5QnlTY2FsYXIoZixhLmRvdCh1LGYpLEd2KTthLnN1YnRyYWN0KHUsVSxVKSxhLm5vcm1hbGl6ZShVLFUpO2xldCBBPWEubXVsdGlwbHlCeVNjYWxhcihmLGEuZG90KGMsZiksenYpO2lmKGEuc3VidHJhY3QoYyxBLEEpLGEubm9ybWFsaXplKEEsQSksIU0uZXF1YWxzRXBzaWxvbihNYXRoLmFicyhhLmRvdChVLEEpKSwxLE0uRVBTSUxPTjcpKXtwPWEuY3Jvc3MocCxmLHApLHA9YS5jcm9zcyhmLHAscCkscD1hLm5vcm1hbGl6ZShwLHApO2xldCBQPXIvTWF0aC5tYXgoLjI1LGEubWFnbml0dWRlKGEuY3Jvc3MocCxjLHdhKSkpLEY9ZHMuYW5nbGVJc0dyZWF0ZXJUaGFuUGkodSxjLHcsbyk7cD1hLm11bHRpcGx5QnlTY2FsYXIocCxQLHApLEY/KF89YS5hZGQodyxwLF8pLGI9YS5hZGQoXyxhLm11bHRpcGx5QnlTY2FsYXIobCxyLGIpLGIpLGc9YS5hZGQoXyxhLm11bHRpcGx5QnlTY2FsYXIobCxyKjIsZyksZyksVm9bMF09YS5jbG9uZShtLFZvWzBdKSxWb1sxXT1hLmNsb25lKGIsVm9bMV0pLE49eW4uZ2VuZXJhdGVBcmMoe3Bvc2l0aW9uczpWbyxncmFudWxhcml0eTplLGVsbGlwc29pZDpvfSksTz1IMChOLGwscixPKSxzJiYoVC5wdXNoKGwueCxsLnksbC56KSxFLnB1c2goZi54LGYueSxmLnopKSxkPWEuY2xvbmUoZyxkKSxsPWEubm9ybWFsaXplKGEuY3Jvc3MoZix1LGwpLGwpLGc9YS5hZGQoXyxhLm11bHRpcGx5QnlTY2FsYXIobCxyKjIsZyksZyksbT1hLmFkZChfLGEubXVsdGlwbHlCeVNjYWxhcihsLHIsbSksbSksaT09PWZuLlJPVU5ERUR8fGk9PT1mbi5CRVZFTEVEP0kucHVzaCh7bGVmdFBvc2l0aW9uczpoZChfLGQsZyxpLEYpfSk6SS5wdXNoKHtsZWZ0UG9zaXRpb25zOlVUKHcsYS5uZWdhdGUocCxwKSxnLEYpfSkpOihnPWEuYWRkKHcscCxnKSxiPWEuYWRkKGcsYS5uZWdhdGUoYS5tdWx0aXBseUJ5U2NhbGFyKGwscixiKSxiKSxiKSxfPWEuYWRkKGcsYS5uZWdhdGUoYS5tdWx0aXBseUJ5U2NhbGFyKGwscioyLF8pLF8pLF8pLFZvWzBdPWEuY2xvbmUobSxWb1swXSksVm9bMV09YS5jbG9uZShiLFZvWzFdKSxOPXluLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6Vm8sZ3JhbnVsYXJpdHk6ZSxlbGxpcHNvaWQ6b30pLE89SDAoTixsLHIsTykscyYmKFQucHVzaChsLngsbC55LGwueiksRS5wdXNoKGYueCxmLnksZi56KSksZD1hLmNsb25lKF8sZCksbD1hLm5vcm1hbGl6ZShhLmNyb3NzKGYsdSxsKSxsKSxfPWEuYWRkKGcsYS5uZWdhdGUoYS5tdWx0aXBseUJ5U2NhbGFyKGwscioyLF8pLF8pLF8pLG09YS5hZGQoZyxhLm5lZ2F0ZShhLm11bHRpcGx5QnlTY2FsYXIobCxyLG0pLG0pLG0pLGk9PT1mbi5ST1VOREVEfHxpPT09Zm4uQkVWRUxFRD9JLnB1c2goe3JpZ2h0UG9zaXRpb25zOmhkKGcsZCxfLGksRil9KTpJLnB1c2goe3JpZ2h0UG9zaXRpb25zOlVUKHcscCxfLEYpfSkpLGM9YS5uZWdhdGUodSxjKX13PUN9Zj1vLmdlb2RldGljU3VyZmFjZU5vcm1hbCh3LGYpLFZvWzBdPWEuY2xvbmUobSxWb1swXSksVm9bMV09YS5jbG9uZSh3LFZvWzFdKSxOPXluLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6Vm8sZ3JhbnVsYXJpdHk6ZSxlbGxpcHNvaWQ6b30pLE89SDAoTixsLHIsTykscyYmKFQucHVzaChsLngsbC55LGwueiksRS5wdXNoKGYueCxmLnksZi56KSk7bGV0IEQ7cmV0dXJuIGk9PT1mbi5ST1VOREVEJiYoRD1rdihPKSkse3Bvc2l0aW9uczpPLGNvcm5lcnM6SSxsZWZ0czpULG5vcm1hbHM6RSxlbmRQb3NpdGlvbnM6RH19O3FlPXEwfSk7ZnVuY3Rpb24gWFQodCxlKXtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl0W25dPWUuc2NhbGVUb0dlb2RldGljU3VyZmFjZSh0W25dLHRbbl0pO3JldHVybiB0fWZ1bmN0aW9uIEtyKHQsZSxuLG8scixpKXtsZXQgcz10Lm5vcm1hbHMsZj10LnRhbmdlbnRzLHU9dC5iaXRhbmdlbnRzLGM9YS5ub3JtYWxpemUoYS5jcm9zcyhuLGUsbXMpLG1zKTtpLm5vcm1hbCYmcWUuYWRkQXR0cmlidXRlKHMsZSxvLHIpLGkudGFuZ2VudCYmcWUuYWRkQXR0cmlidXRlKGYsYyxvLHIpLGkuYml0YW5nZW50JiZxZS5hZGRBdHRyaWJ1dGUodSxuLG8scil9ZnVuY3Rpb24gWVQodCxlLG4pe2xldCBvPXQucG9zaXRpb25zLHI9dC5jb3JuZXJzLGk9dC5lbmRQb3NpdGlvbnMscz10LmxlZnRzLGY9dC5ub3JtYWxzLHU9bmV3IHJlLGMsbD0wLHA9MCxkLG09MCxfO2ZvcihkPTA7ZDxvLmxlbmd0aDtkKz0yKV89b1tkXS5sZW5ndGgtMyxsKz1fLG0rPV8qMixwKz1vW2QrMV0ubGVuZ3RoLTM7Zm9yKGwrPTMscCs9MyxkPTA7ZDxyLmxlbmd0aDtkKyspe2M9cltkXTtsZXQgaXQ9cltkXS5sZWZ0UG9zaXRpb25zO2goaXQpPyhfPWl0Lmxlbmd0aCxsKz1fLG0rPV8pOihfPXJbZF0ucmlnaHRQb3NpdGlvbnMubGVuZ3RoLHArPV8sbSs9Xyl9bGV0IGc9aChpKSxiO2cmJihiPWlbMF0ubGVuZ3RoLTMsbCs9YixwKz1iLGIvPTMsbSs9Yio2KTtsZXQgTz1sK3AsVD1uZXcgRmxvYXQ2NEFycmF5KE8pLEU9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShPKTp2b2lkIDAsdz1lLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShPKTp2b2lkIDAsQz1lLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KE8pOnZvaWQgMCxOPXtub3JtYWxzOkUsdGFuZ2VudHM6dyxiaXRhbmdlbnRzOkN9LEk9MCxMPU8tMSx2LEQsVSxBLFM9cVQsUD1LVCxGLGosSD1iLzIsaz1EdC5jcmVhdGVUeXBlZEFycmF5KE8vMyxtKSxLPTA7aWYoZyl7aj1fZCxGPXlkO2xldCBpdD1pWzBdO2ZvcihTPWEuZnJvbUFycmF5KGYsMCxTKSxQPWEuZnJvbUFycmF5KHMsMCxQKSxkPTA7ZDxIO2QrKylqPWEuZnJvbUFycmF5KGl0LChILTEtZCkqMyxqKSxGPWEuZnJvbUFycmF5KGl0LChIK2QpKjMsRikscWUuYWRkQXR0cmlidXRlKFQsRixJKSxxZS5hZGRBdHRyaWJ1dGUoVCxqLHZvaWQgMCxMKSxLcihOLFMsUCxJLEwsZSksRD1JLzMsQT1EKzEsdj0oTC0yKS8zLFU9di0xLGtbSysrXT12LGtbSysrXT1ELGtbSysrXT1VLGtbSysrXT1VLGtbSysrXT1ELGtbSysrXT1BLEkrPTMsTC09M31sZXQgWD0wLFI9MCxRPW9bWCsrXSxmdD1vW1grK107VC5zZXQoUSxJKSxULnNldChmdCxMLWZ0Lmxlbmd0aCsxKSxQPWEuZnJvbUFycmF5KHMsUixQKTtsZXQgcHQsZ3Q7Zm9yKF89ZnQubGVuZ3RoLTMsZD0wO2Q8XztkKz0zKXB0PW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGEuZnJvbUFycmF5KFEsZCxtcyksbXMpLGd0PW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGEuZnJvbUFycmF5KGZ0LF8tZCxUYSksVGEpLFM9YS5ub3JtYWxpemUoYS5hZGQocHQsZ3QsUyksUyksS3IoTixTLFAsSSxMLGUpLEQ9SS8zLEE9RCsxLHY9KEwtMikvMyxVPXYtMSxrW0srK109dixrW0srK109RCxrW0srK109VSxrW0srK109VSxrW0srK109RCxrW0srK109QSxJKz0zLEwtPTM7Zm9yKHB0PW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGEuZnJvbUFycmF5KFEsXyxtcyksbXMpLGd0PW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGEuZnJvbUFycmF5KGZ0LF8sVGEpLFRhKSxTPWEubm9ybWFsaXplKGEuYWRkKHB0LGd0LFMpLFMpLFIrPTMsZD0wO2Q8ci5sZW5ndGg7ZCsrKXtsZXQgaXQ7Yz1yW2RdO2xldCBOdD1jLmxlZnRQb3NpdGlvbnMsT3Q9Yy5yaWdodFBvc2l0aW9ucyx4dCxfdCxkdD1XVCxWdD1fZCx6dD15ZDtpZihTPWEuZnJvbUFycmF5KGYsUixTKSxoKE50KSl7Zm9yKEtyKE4sUyxQLHZvaWQgMCxMLGUpLEwtPTMseHQ9QSxfdD1VLGl0PTA7aXQ8TnQubGVuZ3RoLzM7aXQrKylkdD1hLmZyb21BcnJheShOdCxpdCozLGR0KSxrW0srK109eHQsa1tLKytdPV90LWl0LTEsa1tLKytdPV90LWl0LHFlLmFkZEF0dHJpYnV0ZShULGR0LHZvaWQgMCxMKSxWdD1hLmZyb21BcnJheShULChfdC1pdC0xKSozLFZ0KSx6dD1hLmZyb21BcnJheShULHh0KjMsenQpLFA9YS5ub3JtYWxpemUoYS5zdWJ0cmFjdChWdCx6dCxQKSxQKSxLcihOLFMsUCx2b2lkIDAsTCxlKSxMLT0zO2R0PWEuZnJvbUFycmF5KFQseHQqMyxkdCksVnQ9YS5zdWJ0cmFjdChhLmZyb21BcnJheShULF90KjMsVnQpLGR0LFZ0KSx6dD1hLnN1YnRyYWN0KGEuZnJvbUFycmF5KFQsKF90LWl0KSozLHp0KSxkdCx6dCksUD1hLm5vcm1hbGl6ZShhLmFkZChWdCx6dCxQKSxQKSxLcihOLFMsUCxJLHZvaWQgMCxlKSxJKz0zfWVsc2V7Zm9yKEtyKE4sUyxQLEksdm9pZCAwLGUpLEkrPTMseHQ9VSxfdD1BLGl0PTA7aXQ8T3QubGVuZ3RoLzM7aXQrKylkdD1hLmZyb21BcnJheShPdCxpdCozLGR0KSxrW0srK109eHQsa1tLKytdPV90K2l0LGtbSysrXT1fdCtpdCsxLHFlLmFkZEF0dHJpYnV0ZShULGR0LEkpLFZ0PWEuZnJvbUFycmF5KFQseHQqMyxWdCksenQ9YS5mcm9tQXJyYXkoVCwoX3QraXQpKjMsenQpLFA9YS5ub3JtYWxpemUoYS5zdWJ0cmFjdChWdCx6dCxQKSxQKSxLcihOLFMsUCxJLHZvaWQgMCxlKSxJKz0zO2R0PWEuZnJvbUFycmF5KFQseHQqMyxkdCksVnQ9YS5zdWJ0cmFjdChhLmZyb21BcnJheShULChfdCtpdCkqMyxWdCksZHQsVnQpLHp0PWEuc3VidHJhY3QoYS5mcm9tQXJyYXkoVCxfdCozLHp0KSxkdCx6dCksUD1hLm5vcm1hbGl6ZShhLm5lZ2F0ZShhLmFkZCh6dCxWdCxQKSxQKSxQKSxLcihOLFMsUCx2b2lkIDAsTCxlKSxMLT0zfWZvcihRPW9bWCsrXSxmdD1vW1grK10sUS5zcGxpY2UoMCwzKSxmdC5zcGxpY2UoZnQubGVuZ3RoLTMsMyksVC5zZXQoUSxJKSxULnNldChmdCxMLWZ0Lmxlbmd0aCsxKSxfPWZ0Lmxlbmd0aC0zLFIrPTMsUD1hLmZyb21BcnJheShzLFIsUCksaXQ9MDtpdDxmdC5sZW5ndGg7aXQrPTMpcHQ9bi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoYS5mcm9tQXJyYXkoUSxpdCxtcyksbXMpLGd0PW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGEuZnJvbUFycmF5KGZ0LF8taXQsVGEpLFRhKSxTPWEubm9ybWFsaXplKGEuYWRkKHB0LGd0LFMpLFMpLEtyKE4sUyxQLEksTCxlKSxBPUkvMyxEPUEtMSxVPShMLTIpLzMsdj1VKzEsa1tLKytdPXYsa1tLKytdPUQsa1tLKytdPVUsa1tLKytdPVUsa1tLKytdPUQsa1tLKytdPUEsSSs9MyxMLT0zO0ktPTMsTCs9M31pZihTPWEuZnJvbUFycmF5KGYsZi5sZW5ndGgtMyxTKSxLcihOLFMsUCxJLEwsZSksZyl7SSs9MyxMLT0zLGo9X2QsRj15ZDtsZXQgaXQ9aVsxXTtmb3IoZD0wO2Q8SDtkKyspaj1hLmZyb21BcnJheShpdCwoYi1kLTEpKjMsaiksRj1hLmZyb21BcnJheShpdCxkKjMsRikscWUuYWRkQXR0cmlidXRlKFQsaix2b2lkIDAsTCkscWUuYWRkQXR0cmlidXRlKFQsRixJKSxLcihOLFMsUCxJLEwsZSksQT1JLzMsRD1BLTEsVT0oTC0yKS8zLHY9VSsxLGtbSysrXT12LGtbSysrXT1ELGtbSysrXT1VLGtbSysrXT1VLGtbSysrXT1ELGtbSysrXT1BLEkrPTMsTC09M31pZih1LnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6VH0pLGUuc3Qpe2xldCBpdD1uZXcgRmxvYXQzMkFycmF5KE8vMyoyKSxOdCxPdCx4dD0wO2lmKGcpe2wvPTMscC89MztsZXQgX3Q9TWF0aC5QSS8oYisxKTtPdD0xLyhsLWIrMSksTnQ9MS8ocC1iKzEpO2xldCBkdCxWdD1iLzI7Zm9yKGQ9VnQrMTtkPGIrMTtkKyspZHQ9TS5QSV9PVkVSX1RXTytfdCpkLGl0W3h0KytdPU50KigxK01hdGguY29zKGR0KSksaXRbeHQrK109LjUqKDErTWF0aC5zaW4oZHQpKTtmb3IoZD0xO2Q8cC1iKzE7ZCsrKWl0W3h0KytdPWQqTnQsaXRbeHQrK109MDtmb3IoZD1iO2Q+VnQ7ZC0tKWR0PU0uUElfT1ZFUl9UV08tZCpfdCxpdFt4dCsrXT0xLU50KigxK01hdGguY29zKGR0KSksaXRbeHQrK109LjUqKDErTWF0aC5zaW4oZHQpKTtmb3IoZD1WdDtkPjA7ZC0tKWR0PU0uUElfT1ZFUl9UV08tX3QqZCxpdFt4dCsrXT0xLU90KigxK01hdGguY29zKGR0KSksaXRbeHQrK109LjUqKDErTWF0aC5zaW4oZHQpKTtmb3IoZD1sLWI7ZD4wO2QtLSlpdFt4dCsrXT1kKk90LGl0W3h0KytdPTE7Zm9yKGQ9MTtkPFZ0KzE7ZCsrKWR0PU0uUElfT1ZFUl9UV08rX3QqZCxpdFt4dCsrXT1PdCooMStNYXRoLmNvcyhkdCkpLGl0W3h0KytdPS41KigxK01hdGguc2luKGR0KSl9ZWxzZXtmb3IobC89MyxwLz0zLE90PTEvKGwtMSksTnQ9MS8ocC0xKSxkPTA7ZDxwO2QrKylpdFt4dCsrXT1kKk50LGl0W3h0KytdPTA7Zm9yKGQ9bDtkPjA7ZC0tKWl0W3h0KytdPShkLTEpKk90LGl0W3h0KytdPTF9dS5zdD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6aXR9KX1yZXR1cm4gZS5ub3JtYWwmJih1Lm5vcm1hbD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Ti5ub3JtYWxzfSkpLGUudGFuZ2VudCYmKHUudGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Ti50YW5nZW50c30pKSxlLmJpdGFuZ2VudCYmKHUuYml0YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpOLmJpdGFuZ2VudHN9KSkse2F0dHJpYnV0ZXM6dSxpbmRpY2VzOmt9fWZ1bmN0aW9uIEh2KHQsZSl7aWYoIWUubm9ybWFsJiYhZS50YW5nZW50JiYhZS5iaXRhbmdlbnQmJiFlLnN0KXJldHVybiB0O2xldCBuPXQucG9zaXRpb24udmFsdWVzLG8scjsoZS5ub3JtYWx8fGUuYml0YW5nZW50KSYmKG89dC5ub3JtYWwudmFsdWVzLHI9dC5iaXRhbmdlbnQudmFsdWVzKTtsZXQgaT10LnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgvMTgscz1pKjMsZj1pKjIsdT1zKjIsYztpZihlLm5vcm1hbHx8ZS5iaXRhbmdlbnR8fGUudGFuZ2VudCl7bGV0IGw9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShzKjYpOnZvaWQgMCxwPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHMqNik6dm9pZCAwLGQ9ZS5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShzKjYpOnZvaWQgMCxtPXFULF89S1QsZz1fZCxiPXlkLE89anYsVD1XVCxFPXU7Zm9yKGM9MDtjPHM7Yys9Myl7bGV0IHc9RSt1O209YS5mcm9tQXJyYXkobixjLG0pLF89YS5mcm9tQXJyYXkobixjK3MsXyksZz1hLmZyb21BcnJheShuLChjKzMpJXMsZyksXz1hLnN1YnRyYWN0KF8sbSxfKSxnPWEuc3VidHJhY3QoZyxtLGcpLGI9YS5ub3JtYWxpemUoYS5jcm9zcyhfLGcsYiksYiksZS5ub3JtYWwmJihxZS5hZGRBdHRyaWJ1dGUobCxiLHcpLHFlLmFkZEF0dHJpYnV0ZShsLGIsdyszKSxxZS5hZGRBdHRyaWJ1dGUobCxiLEUpLHFlLmFkZEF0dHJpYnV0ZShsLGIsRSszKSksKGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpJiYoVD1hLmZyb21BcnJheShvLGMsVCksZS5iaXRhbmdlbnQmJihxZS5hZGRBdHRyaWJ1dGUoZCxULHcpLHFlLmFkZEF0dHJpYnV0ZShkLFQsdyszKSxxZS5hZGRBdHRyaWJ1dGUoZCxULEUpLHFlLmFkZEF0dHJpYnV0ZShkLFQsRSszKSksZS50YW5nZW50JiYoTz1hLm5vcm1hbGl6ZShhLmNyb3NzKFQsYixPKSxPKSxxZS5hZGRBdHRyaWJ1dGUocCxPLHcpLHFlLmFkZEF0dHJpYnV0ZShwLE8sdyszKSxxZS5hZGRBdHRyaWJ1dGUocCxPLEUpLHFlLmFkZEF0dHJpYnV0ZShwLE8sRSszKSkpLEUrPTZ9aWYoZS5ub3JtYWwpe2ZvcihsLnNldChvKSxjPTA7YzxzO2MrPTMpbFtjK3NdPS1vW2NdLGxbYytzKzFdPS1vW2MrMV0sbFtjK3MrMl09LW9bYysyXTt0Lm5vcm1hbC52YWx1ZXM9bH1lbHNlIHQubm9ybWFsPXZvaWQgMDtpZihlLmJpdGFuZ2VudD8oZC5zZXQociksZC5zZXQocixzKSx0LmJpdGFuZ2VudC52YWx1ZXM9ZCk6dC5iaXRhbmdlbnQ9dm9pZCAwLGUudGFuZ2VudCl7bGV0IHc9dC50YW5nZW50LnZhbHVlcztwLnNldCh3KSxwLnNldCh3LHMpLHQudGFuZ2VudC52YWx1ZXM9cH19aWYoZS5zdCl7bGV0IGw9dC5zdC52YWx1ZXMscD1uZXcgRmxvYXQzMkFycmF5KGYqNik7cC5zZXQobCkscC5zZXQobCxmKTtsZXQgZD1mKjI7Zm9yKGxldCBtPTA7bTwyO20rKyl7Zm9yKHBbZCsrXT1sWzBdLHBbZCsrXT1sWzFdLGM9MjtjPGY7Yys9Mil7bGV0IF89bFtjXSxnPWxbYysxXTtwW2QrK109XyxwW2QrK109ZyxwW2QrK109XyxwW2QrK109Z31wW2QrK109bFswXSxwW2QrK109bFsxXX10LnN0LnZhbHVlcz1wfXJldHVybiB0fWZ1bmN0aW9uIFcwKHQsZSxuKXtuW2UrK109dFswXSxuW2UrK109dFsxXSxuW2UrK109dFsyXTtmb3IobGV0IG89MztvPHQubGVuZ3RoO28rPTMpe2xldCByPXRbb10saT10W28rMV0scz10W28rMl07bltlKytdPXIsbltlKytdPWksbltlKytdPXMsbltlKytdPXIsbltlKytdPWksbltlKytdPXN9cmV0dXJuIG5bZSsrXT10WzBdLG5bZSsrXT10WzFdLG5bZSsrXT10WzJdLG59ZnVuY3Rpb24gcXYodCxlKXtsZXQgbj1uZXcgbHQoe3Bvc2l0aW9uOmUucG9zaXRpb24sbm9ybWFsOmUubm9ybWFsfHxlLmJpdGFuZ2VudHx8dC5zaGFkb3dWb2x1bWUsdGFuZ2VudDplLnRhbmdlbnQsYml0YW5nZW50OmUubm9ybWFsfHxlLmJpdGFuZ2VudCxzdDplLnN0fSksbz10LmVsbGlwc29pZCxyPXFlLmNvbXB1dGVQb3NpdGlvbnModCksaT1ZVChyLG4sbykscz10LmhlaWdodCxmPXQuZXh0cnVkZWRIZWlnaHQsdT1pLmF0dHJpYnV0ZXMsYz1pLmluZGljZXMsbD11LnBvc2l0aW9uLnZhbHVlcyxwPWwubGVuZ3RoLGQ9bmV3IEZsb2F0NjRBcnJheShwKjYpLG09bmV3IEZsb2F0NjRBcnJheShwKTttLnNldChsKTtsZXQgXz1uZXcgRmxvYXQ2NEFycmF5KHAqNCk7bD1TZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQobCxzLG8pLF89VzAobCwwLF8pLG09U2Uuc2NhbGVUb0dlb2RldGljSGVpZ2h0KG0sZixvKSxfPVcwKG0scCoyLF8pLGQuc2V0KGwpLGQuc2V0KG0scCksZC5zZXQoXyxwKjIpLHUucG9zaXRpb24udmFsdWVzPWQsdT1Idih1LGUpO2xldCBnLGI9cC8zO2lmKHQuc2hhZG93Vm9sdW1lKXtsZXQgdj11Lm5vcm1hbC52YWx1ZXM7cD12Lmxlbmd0aDtsZXQgRD1uZXcgRmxvYXQzMkFycmF5KHAqNik7Zm9yKGc9MDtnPHA7ZysrKXZbZ109LXZbZ107RC5zZXQodixwKSxEPVcwKHYscCo0LEQpLHUuZXh0cnVkZURpcmVjdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6RH0pLGUubm9ybWFsfHwodS5ub3JtYWw9dm9pZCAwKX1pZihoKHQub2Zmc2V0QXR0cmlidXRlKSl7bGV0IHY9bmV3IFVpbnQ4QXJyYXkoYio2KTtpZih0Lm9mZnNldEF0dHJpYnV0ZT09PWFlLlRPUCl2PXYuZmlsbCgxLDAsYikuZmlsbCgxLGIqMixiKjQpO2Vsc2V7bGV0IEQ9dC5vZmZzZXRBdHRyaWJ1dGU9PT1hZS5OT05FPzA6MTt2PXYuZmlsbChEKX11LmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnZ9KX1sZXQgTz1jLmxlbmd0aCxUPWIrYixFPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZC5sZW5ndGgvMyxPKjIrVCozKTtFLnNldChjKTtsZXQgdz1PO2ZvcihnPTA7ZzxPO2crPTMpe2xldCB2PWNbZ10sRD1jW2crMV0sVT1jW2crMl07RVt3KytdPVUrYixFW3crK109RCtiLEVbdysrXT12K2J9bGV0IEMsTixJLEw7Zm9yKGc9MDtnPFQ7Zys9MilDPWcrVCxOPUMrVCxJPUMrMSxMPU4rMSxFW3crK109QyxFW3crK109TixFW3crK109SSxFW3crK109SSxFW3crK109TixFW3crK109TDtyZXR1cm57YXR0cmlidXRlczp1LGluZGljZXM6RX19ZnVuY3Rpb24gSFQodCxlLG4sbyxyLGkpe2xldCBzPWEuc3VidHJhY3QoZSx0LGpUKTthLm5vcm1hbGl6ZShzLHMpO2xldCBmPW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHQsR2YpLHU9YS5jcm9zcyhzLGYsalQpO2EubXVsdGlwbHlCeVNjYWxhcih1LG8sdSk7bGV0IGM9ci5sYXRpdHVkZSxsPXIubG9uZ2l0dWRlLHA9aS5sYXRpdHVkZSxkPWkubG9uZ2l0dWRlO2EuYWRkKHQsdSxHZiksbi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhHZixPcik7bGV0IG09T3IubGF0aXR1ZGUsXz1Pci5sb25naXR1ZGU7Yz1NYXRoLm1pbihjLG0pLGw9TWF0aC5taW4obCxfKSxwPU1hdGgubWF4KHAsbSksZD1NYXRoLm1heChkLF8pLGEuc3VidHJhY3QodCx1LEdmKSxuLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKEdmLE9yKSxtPU9yLmxhdGl0dWRlLF89T3IubG9uZ2l0dWRlLGM9TWF0aC5taW4oYyxtKSxsPU1hdGgubWluKGwsXykscD1NYXRoLm1heChwLG0pLGQ9TWF0aC5tYXgoZCxfKSxyLmxhdGl0dWRlPWMsci5sb25naXR1ZGU9bCxpLmxhdGl0dWRlPXAsaS5sb25naXR1ZGU9ZH1mdW5jdGlvbiAkVCh0LGUsbixvLHIpe3Q9WFQodCxlKTtsZXQgaT1Dbih0LGEuZXF1YWxzRXBzaWxvbikscz1pLmxlbmd0aDtpZihzPDJ8fG48PTApcmV0dXJuIG5ldyBQdDtsZXQgZj1uKi41O3RyLmxhdGl0dWRlPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0ci5sb25naXR1ZGU9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGVyLmxhdGl0dWRlPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxlci5sb25naXR1ZGU9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2xldCB1LGM7aWYobz09PWZuLlJPVU5ERUQpe2xldCBkPWlbMF07YS5zdWJ0cmFjdChkLGlbMV0sVHIpLGEubm9ybWFsaXplKFRyLFRyKSxhLm11bHRpcGx5QnlTY2FsYXIoVHIsZixUciksYS5hZGQoZCxUcix6ZiksZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyh6ZixPciksdT1Pci5sYXRpdHVkZSxjPU9yLmxvbmdpdHVkZSx0ci5sYXRpdHVkZT1NYXRoLm1pbih0ci5sYXRpdHVkZSx1KSx0ci5sb25naXR1ZGU9TWF0aC5taW4odHIubG9uZ2l0dWRlLGMpLGVyLmxhdGl0dWRlPU1hdGgubWF4KGVyLmxhdGl0dWRlLHUpLGVyLmxvbmdpdHVkZT1NYXRoLm1heChlci5sb25naXR1ZGUsYyl9Zm9yKGxldCBkPTA7ZDxzLTE7KytkKUhUKGlbZF0saVtkKzFdLGUsZix0cixlcik7bGV0IGw9aVtzLTFdO2Euc3VidHJhY3QobCxpW3MtMl0sVHIpLGEubm9ybWFsaXplKFRyLFRyKSxhLm11bHRpcGx5QnlTY2FsYXIoVHIsZixUciksYS5hZGQobCxUcix6ZiksSFQobCx6ZixlLGYsdHIsZXIpLG89PT1mbi5ST1VOREVEJiYoZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyh6ZixPciksdT1Pci5sYXRpdHVkZSxjPU9yLmxvbmdpdHVkZSx0ci5sYXRpdHVkZT1NYXRoLm1pbih0ci5sYXRpdHVkZSx1KSx0ci5sb25naXR1ZGU9TWF0aC5taW4odHIubG9uZ2l0dWRlLGMpLGVyLmxhdGl0dWRlPU1hdGgubWF4KGVyLmxhdGl0dWRlLHUpLGVyLmxvbmdpdHVkZT1NYXRoLm1heChlci5sb25naXR1ZGUsYykpO2xldCBwPWgocik/cjpuZXcgUHQ7cmV0dXJuIHAubm9ydGg9ZXIubGF0aXR1ZGUscC5zb3V0aD10ci5sYXRpdHVkZSxwLmVhc3Q9ZXIubG9uZ2l0dWRlLHAud2VzdD10ci5sb25naXR1ZGUscH1mdW5jdGlvbiBWaSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5wb3NpdGlvbnMsbj10LndpZHRoO3kuZGVmaW5lZCgib3B0aW9ucy5wb3NpdGlvbnMiLGUpLHkuZGVmaW5lZCgib3B0aW9ucy53aWR0aCIsbik7bGV0IG89eCh0LmhlaWdodCwwKSxyPXgodC5leHRydWRlZEhlaWdodCxvKTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9lbGxpcHNvaWQ9JC5jbG9uZSh4KHQuZWxsaXBzb2lkLCQuV0dTODQpKSx0aGlzLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUoeCh0LnZlcnRleEZvcm1hdCxsdC5ERUZBVUxUKSksdGhpcy5fd2lkdGg9bix0aGlzLl9oZWlnaHQ9TWF0aC5tYXgobyxyKSx0aGlzLl9leHRydWRlZEhlaWdodD1NYXRoLm1pbihvLHIpLHRoaXMuX2Nvcm5lclR5cGU9eCh0LmNvcm5lclR5cGUsZm4uUk9VTkRFRCksdGhpcy5fZ3JhbnVsYXJpdHk9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSx0aGlzLl9zaGFkb3dWb2x1bWU9eCh0LnNoYWRvd1ZvbHVtZSwhMSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQ29ycmlkb3JHZW9tZXRyeSIsdGhpcy5fb2Zmc2V0QXR0cmlidXRlPXQub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3JlY3RhbmdsZT12b2lkIDAsdGhpcy5wYWNrZWRMZW5ndGg9MStlLmxlbmd0aCphLnBhY2tlZExlbmd0aCskLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGgrN312YXIgcVQsS1QsX2QseWQsanYsV1QsbXMsVGEsalQsR2YsT3IsVHIsemYsdHIsZXIsWlQsUVQsVWksWDAsSlQ9WigoKT0+e2pyKCk7UGUoKTtVdCgpO3ZlKCk7WXQoKTtEZSgpO2hjKCk7SzAoKTtJdCgpO2F0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTtGbygpOyRlKCk7V3QoKTtxcigpO3RuKCk7QW4oKTtSbygpO3FUPW5ldyBhLEtUPW5ldyBhLF9kPW5ldyBhLHlkPW5ldyBhLGp2PW5ldyBhLFdUPW5ldyBhLG1zPW5ldyBhLFRhPW5ldyBhO2pUPW5ldyBhLEdmPW5ldyBhLE9yPW5ldyBjdDtUcj1uZXcgYSx6Zj1uZXcgYSx0cj1uZXcgY3QsZXI9bmV3IGN0O1ZpLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApO2xldCBvPXQuX3Bvc2l0aW9ucyxyPW8ubGVuZ3RoO2VbbisrXT1yO2ZvcihsZXQgaT0wO2k8cjsrK2ksbis9YS5wYWNrZWRMZW5ndGgpYS5wYWNrKG9baV0sZSxuKTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGx0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9bHQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll93aWR0aCxlW24rK109dC5faGVpZ2h0LGVbbisrXT10Ll9leHRydWRlZEhlaWdodCxlW24rK109dC5fY29ybmVyVHlwZSxlW24rK109dC5fZ3JhbnVsYXJpdHksZVtuKytdPXQuX3NoYWRvd1ZvbHVtZT8xOjAsZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07WlQ9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxRVD1uZXcgbHQsVWk9e3Bvc2l0aW9uczp2b2lkIDAsZWxsaXBzb2lkOlpULHZlcnRleEZvcm1hdDpRVCx3aWR0aDp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxleHRydWRlZEhlaWdodDp2b2lkIDAsY29ybmVyVHlwZTp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwLHNoYWRvd1ZvbHVtZTp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07VmkudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz10W2UrK10scj1uZXcgQXJyYXkobyk7Zm9yKGxldCBfPTA7XzxvOysrXyxlKz1hLnBhY2tlZExlbmd0aClyW19dPWEudW5wYWNrKHQsZSk7bGV0IGk9JC51bnBhY2sodCxlLFpUKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgcz1sdC51bnBhY2sodCxlLFFUKTtlKz1sdC5wYWNrZWRMZW5ndGg7bGV0IGY9dFtlKytdLHU9dFtlKytdLGM9dFtlKytdLGw9dFtlKytdLHA9dFtlKytdLGQ9dFtlKytdPT09MSxtPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1yLG4uX2VsbGlwc29pZD0kLmNsb25lKGksbi5fZWxsaXBzb2lkKSxuLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUocyxuLl92ZXJ0ZXhGb3JtYXQpLG4uX3dpZHRoPWYsbi5faGVpZ2h0PXUsbi5fZXh0cnVkZWRIZWlnaHQ9YyxuLl9jb3JuZXJUeXBlPWwsbi5fZ3JhbnVsYXJpdHk9cCxuLl9zaGFkb3dWb2x1bWU9ZCxuLl9vZmZzZXRBdHRyaWJ1dGU9bT09PS0xP3ZvaWQgMDptLG4pOihVaS5wb3NpdGlvbnM9cixVaS53aWR0aD1mLFVpLmhlaWdodD11LFVpLmV4dHJ1ZGVkSGVpZ2h0PWMsVWkuY29ybmVyVHlwZT1sLFVpLmdyYW51bGFyaXR5PXAsVWkuc2hhZG93Vm9sdW1lPWQsVWkub2Zmc2V0QXR0cmlidXRlPW09PT0tMT92b2lkIDA6bSxuZXcgVmkoVWkpKX07VmkuY29tcHV0ZVJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgbj10LnBvc2l0aW9ucyxvPXQud2lkdGg7eS5kZWZpbmVkKCJvcHRpb25zLnBvc2l0aW9ucyIsbikseS5kZWZpbmVkKCJvcHRpb25zLndpZHRoIixvKTtsZXQgcj14KHQuZWxsaXBzb2lkLCQuV0dTODQpLGk9eCh0LmNvcm5lclR5cGUsZm4uUk9VTkRFRCk7cmV0dXJuICRUKG4scixvLGksZSl9O1ZpLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPXQuX3dpZHRoLG89dC5fZWxsaXBzb2lkO2U9WFQoZSxvKTtsZXQgcj1DbihlLGEuZXF1YWxzRXBzaWxvbik7aWYoci5sZW5ndGg8Mnx8bjw9MClyZXR1cm47bGV0IGk9dC5faGVpZ2h0LHM9dC5fZXh0cnVkZWRIZWlnaHQsZj0hTS5lcXVhbHNFcHNpbG9uKGkscywwLE0uRVBTSUxPTjIpLHU9dC5fdmVydGV4Rm9ybWF0LGM9e2VsbGlwc29pZDpvLHBvc2l0aW9uczpyLHdpZHRoOm4sY29ybmVyVHlwZTp0Ll9jb3JuZXJUeXBlLGdyYW51bGFyaXR5OnQuX2dyYW51bGFyaXR5LHNhdmVBdHRyaWJ1dGVzOiEwfSxsO2lmKGYpYy5oZWlnaHQ9aSxjLmV4dHJ1ZGVkSGVpZ2h0PXMsYy5zaGFkb3dWb2x1bWU9dC5fc2hhZG93Vm9sdW1lLGMub2Zmc2V0QXR0cmlidXRlPXQuX29mZnNldEF0dHJpYnV0ZSxsPXF2KGMsdSk7ZWxzZXtsZXQgbT1xZS5jb21wdXRlUG9zaXRpb25zKGMpO2lmKGw9WVQobSx1LG8pLGwuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9U2Uuc2NhbGVUb0dlb2RldGljSGVpZ2h0KGwuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsaSxvKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBfPXQuX29mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxLGc9bC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgsYj1uZXcgVWludDhBcnJheShnLzMpLmZpbGwoXyk7bC5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmJ9KX19bGV0IHA9bC5hdHRyaWJ1dGVzLGQ9eXQuZnJvbVZlcnRpY2VzKHAucG9zaXRpb24udmFsdWVzLHZvaWQgMCwzKTtyZXR1cm4gdS5wb3NpdGlvbnx8KGwuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9dm9pZCAwKSxuZXcgRnQoe2F0dHJpYnV0ZXM6cCxpbmRpY2VzOmwuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkx0LlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTpkLG9mZnNldEF0dHJpYnV0ZTp0Ll9vZmZzZXRBdHRyaWJ1dGV9KX07VmkuY3JlYXRlU2hhZG93Vm9sdW1lPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10Ll9ncmFudWxhcml0eSxyPXQuX2VsbGlwc29pZCxpPWUobyxyKSxzPW4obyxyKTtyZXR1cm4gbmV3IFZpKHtwb3NpdGlvbnM6dC5fcG9zaXRpb25zLHdpZHRoOnQuX3dpZHRoLGNvcm5lclR5cGU6dC5fY29ybmVyVHlwZSxlbGxpcHNvaWQ6cixncmFudWxhcml0eTpvLGV4dHJ1ZGVkSGVpZ2h0OmksaGVpZ2h0OnMsdmVydGV4Rm9ybWF0Omx0LlBPU0lUSU9OX09OTFksc2hhZG93Vm9sdW1lOiEwfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFZpLnByb3RvdHlwZSx7cmVjdGFuZ2xlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzLl9yZWN0YW5nbGUpfHwodGhpcy5fcmVjdGFuZ2xlPSRUKHRoaXMuX3Bvc2l0aW9ucyx0aGlzLl9lbGxpcHNvaWQsdGhpcy5fd2lkdGgsdGhpcy5fY29ybmVyVHlwZSkpLHRoaXMuX3JlY3RhbmdsZX19LHRleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM6e2dldDpmdW5jdGlvbigpe3JldHVyblswLDAsMCwxLDEsMF19fX0pO1gwPVZpfSk7dmFyIFkwPXt9O21lKFkwLHtkZWZhdWx0OigpPT5Xdn0pO2Z1bmN0aW9uIEt2KHQsZSl7cmV0dXJuIGgoZSkmJih0PVgwLnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLFgwLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBXdiwkMD1aKCgpPT57SlQoKTthdCgpO1p0KCk7V3Y9S3Z9KTtmdW5jdGlvbiBZdih0LGUpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXRbbl09ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHRbbl0sdFtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gbk8odCxlKXtsZXQgbj1bXSxvPXQucG9zaXRpb25zLHI9dC5jb3JuZXJzLGk9dC5lbmRQb3NpdGlvbnMscz1uZXcgcmUsZix1PTAsYz0wLGwscD0wLGQ7Zm9yKGw9MDtsPG8ubGVuZ3RoO2wrPTIpZD1vW2xdLmxlbmd0aC0zLHUrPWQscCs9ZC8zKjQsYys9b1tsKzFdLmxlbmd0aC0zO2Zvcih1Kz0zLGMrPTMsbD0wO2w8ci5sZW5ndGg7bCsrKXtmPXJbbF07bGV0IEY9cltsXS5sZWZ0UG9zaXRpb25zO2goRik/KGQ9Ri5sZW5ndGgsdSs9ZCxwKz1kLzMqMik6KGQ9cltsXS5yaWdodFBvc2l0aW9ucy5sZW5ndGgsYys9ZCxwKz1kLzMqMil9bGV0IG09aChpKSxfO20mJihfPWlbMF0ubGVuZ3RoLTMsdSs9XyxjKz1fLF8vPTMscCs9Xyo0KTtsZXQgZz11K2MsYj1uZXcgRmxvYXQ2NEFycmF5KGcpLE89MCxUPWctMSxFLHcsQyxOLEksTCx2PV8vMixEPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZy8zLHArNCksVT0wO2lmKERbVSsrXT1PLzMsRFtVKytdPShULTIpLzMsbSl7bi5wdXNoKE8vMyksTD10TyxJPWVPO2xldCBGPWlbMF07Zm9yKGw9MDtsPHY7bCsrKUw9YS5mcm9tQXJyYXkoRiwodi0xLWwpKjMsTCksST1hLmZyb21BcnJheShGLCh2K2wpKjMsSSkscWUuYWRkQXR0cmlidXRlKGIsSSxPKSxxZS5hZGRBdHRyaWJ1dGUoYixMLHZvaWQgMCxUKSx3PU8vMyxOPXcrMSxFPShULTIpLzMsQz1FLTEsRFtVKytdPUUsRFtVKytdPUMsRFtVKytdPXcsRFtVKytdPU4sTys9MyxULT0zfWxldCBBPTAsUz1vW0ErK10sUD1vW0ErK107Zm9yKGIuc2V0KFMsTyksYi5zZXQoUCxULVAubGVuZ3RoKzEpLGQ9UC5sZW5ndGgtMyxuLnB1c2goTy8zLChULTIpLzMpLGw9MDtsPGQ7bCs9Myl3PU8vMyxOPXcrMSxFPShULTIpLzMsQz1FLTEsRFtVKytdPUUsRFtVKytdPUMsRFtVKytdPXcsRFtVKytdPU4sTys9MyxULT0zO2ZvcihsPTA7bDxyLmxlbmd0aDtsKyspe2xldCBGO2Y9cltsXTtsZXQgaj1mLmxlZnRQb3NpdGlvbnMsSD1mLnJpZ2h0UG9zaXRpb25zLGssSz1YdjtpZihoKGopKXtmb3IoVC09MyxrPUMsbi5wdXNoKE4pLEY9MDtGPGoubGVuZ3RoLzM7RisrKUs9YS5mcm9tQXJyYXkoaixGKjMsSyksRFtVKytdPWstRi0xLERbVSsrXT1rLUYscWUuYWRkQXR0cmlidXRlKGIsSyx2b2lkIDAsVCksVC09MztuLnB1c2goay1NYXRoLmZsb29yKGoubGVuZ3RoLzYpKSxlPT09Zm4uQkVWRUxFRCYmbi5wdXNoKChULTIpLzMrMSksTys9M31lbHNle2ZvcihPKz0zLGs9TixuLnB1c2goQyksRj0wO0Y8SC5sZW5ndGgvMztGKyspSz1hLmZyb21BcnJheShILEYqMyxLKSxEW1UrK109aytGLERbVSsrXT1rK0YrMSxxZS5hZGRBdHRyaWJ1dGUoYixLLE8pLE8rPTM7bi5wdXNoKGsrTWF0aC5mbG9vcihILmxlbmd0aC82KSksZT09PWZuLkJFVkVMRUQmJm4ucHVzaChPLzMtMSksVC09M31mb3IoUz1vW0ErK10sUD1vW0ErK10sUy5zcGxpY2UoMCwzKSxQLnNwbGljZShQLmxlbmd0aC0zLDMpLGIuc2V0KFMsTyksYi5zZXQoUCxULVAubGVuZ3RoKzEpLGQ9UC5sZW5ndGgtMyxGPTA7RjxQLmxlbmd0aDtGKz0zKU49Ty8zLHc9Ti0xLEM9KFQtMikvMyxFPUMrMSxEW1UrK109RSxEW1UrK109QyxEW1UrK109dyxEW1UrK109TixPKz0zLFQtPTM7Ty09MyxUKz0zLG4ucHVzaChPLzMsKFQtMikvMyl9aWYobSl7Tys9MyxULT0zLEw9dE8sST1lTztsZXQgRj1pWzFdO2ZvcihsPTA7bDx2O2wrKylMPWEuZnJvbUFycmF5KEYsKF8tbC0xKSozLEwpLEk9YS5mcm9tQXJyYXkoRixsKjMsSSkscWUuYWRkQXR0cmlidXRlKGIsTCx2b2lkIDAsVCkscWUuYWRkQXR0cmlidXRlKGIsSSxPKSxOPU8vMyx3PU4tMSxDPShULTIpLzMsRT1DKzEsRFtVKytdPUUsRFtVKytdPUMsRFtVKytdPXcsRFtVKytdPU4sTys9MyxULT0zO24ucHVzaChPLzMpfWVsc2Ugbi5wdXNoKE8vMywoVC0yKS8zKTtyZXR1cm4gRFtVKytdPU8vMyxEW1UrK109KFQtMikvMyxzLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Yn0pLHthdHRyaWJ1dGVzOnMsaW5kaWNlczpELHdhbGxJbmRpY2VzOm59fWZ1bmN0aW9uICR2KHQpe2xldCBlPXQuZWxsaXBzb2lkLG49cWUuY29tcHV0ZVBvc2l0aW9ucyh0KSxvPW5PKG4sdC5jb3JuZXJUeXBlKSxyPW8ud2FsbEluZGljZXMsaT10LmhlaWdodCxzPXQuZXh0cnVkZWRIZWlnaHQsZj1vLmF0dHJpYnV0ZXMsdT1vLmluZGljZXMsYz1mLnBvc2l0aW9uLnZhbHVlcyxsPWMubGVuZ3RoLHA9bmV3IEZsb2F0NjRBcnJheShsKTtwLnNldChjKTtsZXQgZD1uZXcgRmxvYXQ2NEFycmF5KGwqMik7aWYoYz1TZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQoYyxpLGUpLHA9U2Uuc2NhbGVUb0dlb2RldGljSGVpZ2h0KHAscyxlKSxkLnNldChjKSxkLnNldChwLGwpLGYucG9zaXRpb24udmFsdWVzPWQsbC89MyxoKHQub2Zmc2V0QXR0cmlidXRlKSl7bGV0IEU9bmV3IFVpbnQ4QXJyYXkobCoyKTtpZih0Lm9mZnNldEF0dHJpYnV0ZT09PWFlLlRPUClFPUUuZmlsbCgxLDAsbCk7ZWxzZXtsZXQgdz10Lm9mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxO0U9RS5maWxsKHcpfWYuYXBwbHlPZmZzZXQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6RX0pfWxldCBtLF89dS5sZW5ndGgsZz1EdC5jcmVhdGVUeXBlZEFycmF5KGQubGVuZ3RoLzMsKF8rci5sZW5ndGgpKjIpO2cuc2V0KHUpO2xldCBiPV87Zm9yKG09MDttPF87bSs9Mil7bGV0IEU9dVttXSx3PXVbbSsxXTtnW2IrK109RStsLGdbYisrXT13K2x9bGV0IE8sVDtmb3IobT0wO208ci5sZW5ndGg7bSsrKU89clttXSxUPU8rbCxnW2IrK109TyxnW2IrK109VDtyZXR1cm57YXR0cmlidXRlczpmLGluZGljZXM6Z319ZnVuY3Rpb24gamYodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucG9zaXRpb25zLG49dC53aWR0aDt5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMucG9zaXRpb25zIixlKSx5LnR5cGVPZi5udW1iZXIoIm9wdGlvbnMud2lkdGgiLG4pO2xldCBvPXgodC5oZWlnaHQsMCkscj14KHQuZXh0cnVkZWRIZWlnaHQsbyk7dGhpcy5fcG9zaXRpb25zPWUsdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoeCh0LmVsbGlwc29pZCwkLldHUzg0KSksdGhpcy5fd2lkdGg9bix0aGlzLl9oZWlnaHQ9TWF0aC5tYXgobyxyKSx0aGlzLl9leHRydWRlZEhlaWdodD1NYXRoLm1pbihvLHIpLHRoaXMuX2Nvcm5lclR5cGU9eCh0LmNvcm5lclR5cGUsZm4uUk9VTkRFRCksdGhpcy5fZ3JhbnVsYXJpdHk9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQ29ycmlkb3JPdXRsaW5lR2VvbWV0cnkiLHRoaXMucGFja2VkTGVuZ3RoPTErZS5sZW5ndGgqYS5wYWNrZWRMZW5ndGgrJC5wYWNrZWRMZW5ndGgrNn12YXIgdE8sZU8sWHYsb08saHMsWjAsck89WigoKT0+e2pyKCk7UGUoKTtVdCgpO1l0KCk7RGUoKTtoYygpO0swKCk7SXQoKTthdCgpO1p0KCk7WGUoKTtZZSgpO2FuKCk7Rm8oKTskZSgpO1d0KCk7cXIoKTt0bigpO3RPPW5ldyBhLGVPPW5ldyBhLFh2PW5ldyBhO2pmLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkudHlwZU9mLm9iamVjdCgiYXJyYXkiLGUpLG49eChuLDApO2xldCBvPXQuX3Bvc2l0aW9ucyxyPW8ubGVuZ3RoO2VbbisrXT1yO2ZvcihsZXQgaT0wO2k8cjsrK2ksbis9YS5wYWNrZWRMZW5ndGgpYS5wYWNrKG9baV0sZSxuKTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll93aWR0aCxlW24rK109dC5faGVpZ2h0LGVbbisrXT10Ll9leHRydWRlZEhlaWdodCxlW24rK109dC5fY29ybmVyVHlwZSxlW24rK109dC5fZ3JhbnVsYXJpdHksZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07b089JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxocz17cG9zaXRpb25zOnZvaWQgMCxlbGxpcHNvaWQ6b08sd2lkdGg6dm9pZCAwLGhlaWdodDp2b2lkIDAsZXh0cnVkZWRIZWlnaHQ6dm9pZCAwLGNvcm5lclR5cGU6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtqZi51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgiYXJyYXkiLHQpLGU9eChlLDApO2xldCBvPXRbZSsrXSxyPW5ldyBBcnJheShvKTtmb3IobGV0IGQ9MDtkPG87KytkLGUrPWEucGFja2VkTGVuZ3RoKXJbZF09YS51bnBhY2sodCxlKTtsZXQgaT0kLnVucGFjayh0LGUsb08pO2UrPSQucGFja2VkTGVuZ3RoO2xldCBzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXSxjPXRbZSsrXSxsPXRbZSsrXSxwPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1yLG4uX2VsbGlwc29pZD0kLmNsb25lKGksbi5fZWxsaXBzb2lkKSxuLl93aWR0aD1zLG4uX2hlaWdodD1mLG4uX2V4dHJ1ZGVkSGVpZ2h0PXUsbi5fY29ybmVyVHlwZT1jLG4uX2dyYW51bGFyaXR5PWwsbi5fb2Zmc2V0QXR0cmlidXRlPXA9PT0tMT92b2lkIDA6cCxuKTooaHMucG9zaXRpb25zPXIsaHMud2lkdGg9cyxocy5oZWlnaHQ9Zixocy5leHRydWRlZEhlaWdodD11LGhzLmNvcm5lclR5cGU9Yyxocy5ncmFudWxhcml0eT1sLGhzLm9mZnNldEF0dHJpYnV0ZT1wPT09LTE/dm9pZCAwOnAsbmV3IGpmKGhzKSl9O2pmLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPXQuX3dpZHRoLG89dC5fZWxsaXBzb2lkO2U9WXYoZSxvKTtsZXQgcj1DbihlLGEuZXF1YWxzRXBzaWxvbik7aWYoci5sZW5ndGg8Mnx8bjw9MClyZXR1cm47bGV0IGk9dC5faGVpZ2h0LHM9dC5fZXh0cnVkZWRIZWlnaHQsZj0hTS5lcXVhbHNFcHNpbG9uKGkscywwLE0uRVBTSUxPTjIpLHU9e2VsbGlwc29pZDpvLHBvc2l0aW9uczpyLHdpZHRoOm4sY29ybmVyVHlwZTp0Ll9jb3JuZXJUeXBlLGdyYW51bGFyaXR5OnQuX2dyYW51bGFyaXR5LHNhdmVBdHRyaWJ1dGVzOiExfSxjO2lmKGYpdS5oZWlnaHQ9aSx1LmV4dHJ1ZGVkSGVpZ2h0PXMsdS5vZmZzZXRBdHRyaWJ1dGU9dC5fb2Zmc2V0QXR0cmlidXRlLGM9JHYodSk7ZWxzZXtsZXQgZD1xZS5jb21wdXRlUG9zaXRpb25zKHUpO2lmKGM9bk8oZCx1LmNvcm5lclR5cGUpLGMuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9U2Uuc2NhbGVUb0dlb2RldGljSGVpZ2h0KGMuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsaSxvKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBtPWMuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLF89dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjEsZz1uZXcgVWludDhBcnJheShtLzMpLmZpbGwoXyk7Yy5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmd9KX19bGV0IGw9Yy5hdHRyaWJ1dGVzLHA9eXQuZnJvbVZlcnRpY2VzKGwucG9zaXRpb24udmFsdWVzLHZvaWQgMCwzKTtyZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOmwsaW5kaWNlczpjLmluZGljZXMscHJpbWl0aXZlVHlwZTpMdC5MSU5FUyxib3VuZGluZ1NwaGVyZTpwLG9mZnNldEF0dHJpYnV0ZTp0Ll9vZmZzZXRBdHRyaWJ1dGV9KX07WjA9amZ9KTt2YXIgUTA9e307bWUoUTAse2RlZmF1bHQ6KCk9PlF2fSk7ZnVuY3Rpb24gWnYodCxlKXtyZXR1cm4gaChlKSYmKHQ9WjAudW5wYWNrKHQsZSkpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksWjAuY3JlYXRlR2VvbWV0cnkodCl9dmFyIFF2LEowPVooKCk9PntyTygpO2F0KCk7WnQoKTtRdj1adn0pO3ZhciBpTyxnZCx0Xz1aKCgpPT57V3QoKTtpTz17fTtpTy5jb21wdXRlUG9zaXRpb25zPWZ1bmN0aW9uKHQsZSxuLG8scil7bGV0IGk9dCouNSxzPS1pLGY9bytvLHU9cj8yKmY6ZixjPW5ldyBGbG9hdDY0QXJyYXkodSozKSxsLHA9MCxkPTAsbT1yP2YqMzowLF89cj8oZitvKSozOm8qMztmb3IobD0wO2w8bztsKyspe2xldCBnPWwvbypNLlRXT19QSSxiPU1hdGguY29zKGcpLE89TWF0aC5zaW4oZyksVD1iKm4sRT1PKm4sdz1iKmUsQz1PKmU7Y1tkK21dPVQsY1tkK20rMV09RSxjW2QrbSsyXT1zLGNbZCtfXT13LGNbZCtfKzFdPUMsY1tkK18rMl09aSxkKz0zLHImJihjW3ArK109VCxjW3ArK109RSxjW3ArK109cyxjW3ArK109dyxjW3ArK109QyxjW3ArK109aSl9cmV0dXJuIGN9O2dkPWlPfSk7ZnVuY3Rpb24ga2kodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQubGVuZ3RoLG49dC50b3BSYWRpdXMsbz10LmJvdHRvbVJhZGl1cyxyPXgodC52ZXJ0ZXhGb3JtYXQsbHQuREVGQVVMVCksaT14KHQuc2xpY2VzLDEyOCk7aWYoIWgoZSkpdGhyb3cgbmV3IEIoIm9wdGlvbnMubGVuZ3RoIG11c3QgYmUgZGVmaW5lZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigib3B0aW9ucy50b3BSYWRpdXMgbXVzdCBiZSBkZWZpbmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBCKCJvcHRpb25zLmJvdHRvbVJhZGl1cyBtdXN0IGJlIGRlZmluZWQuIik7aWYoaTwzKXRocm93IG5ldyBCKCJvcHRpb25zLnNsaWNlcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAzLiIpO2lmKGgodC5vZmZzZXRBdHRyaWJ1dGUpJiZ0Lm9mZnNldEF0dHJpYnV0ZT09PWFlLlRPUCl0aHJvdyBuZXcgQigiR2VvbWV0cnlPZmZzZXRBdHRyaWJ1dGUuVE9QIGlzIG5vdCBhIHN1cHBvcnRlZCBvcHRpb25zLm9mZnNldEF0dHJpYnV0ZSBmb3IgdGhpcyBnZW9tZXRyeS4iKTt0aGlzLl9sZW5ndGg9ZSx0aGlzLl90b3BSYWRpdXM9bix0aGlzLl9ib3R0b21SYWRpdXM9byx0aGlzLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUociksdGhpcy5fc2xpY2VzPWksdGhpcy5fb2Zmc2V0QXR0cmlidXRlPXQub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUN5bGluZGVyR2VvbWV0cnkifXZhciBlXyxKdix0RCxlRCxuRCxzTyxPYSxuXyxIZixvXz1aKCgpPT57UGUoKTt6ZSgpO1V0KCk7RGUoKTt0XygpO0l0KCk7YXQoKTtIdCgpO1hlKCk7WWUoKTthbigpO0ZvKCk7JGUoKTtXdCgpO3RuKCk7Um8oKTtlXz1uZXcgbnQsSnY9bmV3IGEsdEQ9bmV3IGEsZUQ9bmV3IGEsbkQ9bmV3IGE7a2kucGFja2VkTGVuZ3RoPWx0LnBhY2tlZExlbmd0aCs1O2tpLnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO3JldHVybiBuPXgobiwwKSxsdC5wYWNrKHQuX3ZlcnRleEZvcm1hdCxlLG4pLG4rPWx0LnBhY2tlZExlbmd0aCxlW24rK109dC5fbGVuZ3RoLGVbbisrXT10Ll90b3BSYWRpdXMsZVtuKytdPXQuX2JvdHRvbVJhZGl1cyxlW24rK109dC5fc2xpY2VzLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O3NPPW5ldyBsdCxPYT17dmVydGV4Rm9ybWF0OnNPLGxlbmd0aDp2b2lkIDAsdG9wUmFkaXVzOnZvaWQgMCxib3R0b21SYWRpdXM6dm9pZCAwLHNsaWNlczp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07a2kudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtlPXgoZSwwKTtsZXQgbz1sdC51bnBhY2sodCxlLHNPKTtlKz1sdC5wYWNrZWRMZW5ndGg7bGV0IHI9dFtlKytdLGk9dFtlKytdLHM9dFtlKytdLGY9dFtlKytdLHU9dFtlXTtyZXR1cm4gaChuKT8obi5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKG8sbi5fdmVydGV4Rm9ybWF0KSxuLl9sZW5ndGg9cixuLl90b3BSYWRpdXM9aSxuLl9ib3R0b21SYWRpdXM9cyxuLl9zbGljZXM9ZixuLl9vZmZzZXRBdHRyaWJ1dGU9dT09PS0xP3ZvaWQgMDp1LG4pOihPYS5sZW5ndGg9cixPYS50b3BSYWRpdXM9aSxPYS5ib3R0b21SYWRpdXM9cyxPYS5zbGljZXM9ZixPYS5vZmZzZXRBdHRyaWJ1dGU9dT09PS0xP3ZvaWQgMDp1LG5ldyBraShPYSkpfTtraS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll9sZW5ndGgsbj10Ll90b3BSYWRpdXMsbz10Ll9ib3R0b21SYWRpdXMscj10Ll92ZXJ0ZXhGb3JtYXQsaT10Ll9zbGljZXM7aWYoZTw9MHx8bjwwfHxvPDB8fG49PT0wJiZvPT09MClyZXR1cm47bGV0IHM9aStpLGY9aStzLHU9cytzLGM9Z2QuY29tcHV0ZVBvc2l0aW9ucyhlLG4sbyxpLCEwKSxsPXIuc3Q/bmV3IEZsb2F0MzJBcnJheSh1KjIpOnZvaWQgMCxwPXIubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkodSozKTp2b2lkIDAsZD1yLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheSh1KjMpOnZvaWQgMCxtPXIuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkodSozKTp2b2lkIDAsXyxnPXIubm9ybWFsfHxyLnRhbmdlbnR8fHIuYml0YW5nZW50O2lmKGcpe2xldCBJPXIudGFuZ2VudHx8ci5iaXRhbmdlbnQsTD0wLHY9MCxEPTAsVT1NYXRoLmF0YW4yKG8tbixlKSxBPUp2O0Euej1NYXRoLnNpbihVKTtsZXQgUz1NYXRoLmNvcyhVKSxQPWVELEY9dEQ7Zm9yKF89MDtfPGk7XysrKXtsZXQgaj1fL2kqTS5UV09fUEksSD1TKk1hdGguY29zKGopLGs9UypNYXRoLnNpbihqKTtnJiYoQS54PUgsQS55PWssSSYmKFA9YS5ub3JtYWxpemUoYS5jcm9zcyhhLlVOSVRfWixBLFApLFApKSxyLm5vcm1hbCYmKHBbTCsrXT1BLngscFtMKytdPUEueSxwW0wrK109QS56LHBbTCsrXT1BLngscFtMKytdPUEueSxwW0wrK109QS56KSxyLnRhbmdlbnQmJihkW3YrK109UC54LGRbdisrXT1QLnksZFt2KytdPVAueixkW3YrK109UC54LGRbdisrXT1QLnksZFt2KytdPVAueiksci5iaXRhbmdlbnQmJihGPWEubm9ybWFsaXplKGEuY3Jvc3MoQSxQLEYpLEYpLG1bRCsrXT1GLngsbVtEKytdPUYueSxtW0QrK109Ri56LG1bRCsrXT1GLngsbVtEKytdPUYueSxtW0QrK109Ri56KSl9Zm9yKF89MDtfPGk7XysrKXIubm9ybWFsJiYocFtMKytdPTAscFtMKytdPTAscFtMKytdPS0xKSxyLnRhbmdlbnQmJihkW3YrK109MSxkW3YrK109MCxkW3YrK109MCksci5iaXRhbmdlbnQmJihtW0QrK109MCxtW0QrK109LTEsbVtEKytdPTApO2ZvcihfPTA7XzxpO18rKylyLm5vcm1hbCYmKHBbTCsrXT0wLHBbTCsrXT0wLHBbTCsrXT0xKSxyLnRhbmdlbnQmJihkW3YrK109MSxkW3YrK109MCxkW3YrK109MCksci5iaXRhbmdlbnQmJihtW0QrK109MCxtW0QrK109MSxtW0QrK109MCl9bGV0IGI9MTIqaS0xMixPPUR0LmNyZWF0ZVR5cGVkQXJyYXkodSxiKSxUPTAsRT0wO2ZvcihfPTA7XzxpLTE7XysrKU9bVCsrXT1FLE9bVCsrXT1FKzIsT1tUKytdPUUrMyxPW1QrK109RSxPW1QrK109RSszLE9bVCsrXT1FKzEsRSs9Mjtmb3IoT1tUKytdPXMtMixPW1QrK109MCxPW1QrK109MSxPW1QrK109cy0yLE9bVCsrXT0xLE9bVCsrXT1zLTEsXz0xO188aS0xO18rKylPW1QrK109cytfKzEsT1tUKytdPXMrXyxPW1QrK109cztmb3IoXz0xO188aS0xO18rKylPW1QrK109ZixPW1QrK109ZitfLE9bVCsrXT1mK18rMTtsZXQgdz0wO2lmKHIuc3Qpe2xldCBJPU1hdGgubWF4KG4sbyk7Zm9yKF89MDtfPHU7XysrKXtsZXQgTD1hLmZyb21BcnJheShjLF8qMyxuRCk7bFt3KytdPShMLngrSSkvKDIqSSksbFt3KytdPShMLnkrSSkvKDIqSSl9fWxldCBDPW5ldyByZTtyLnBvc2l0aW9uJiYoQy5wb3NpdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KSksci5ub3JtYWwmJihDLm5vcm1hbD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cH0pKSxyLnRhbmdlbnQmJihDLnRhbmdlbnQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmR9KSksci5iaXRhbmdlbnQmJihDLmJpdGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pKSxyLnN0JiYoQy5zdD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6bH0pKSxlXy54PWUqLjUsZV8ueT1NYXRoLm1heChvLG4pO2xldCBOPW5ldyB5dChhLlpFUk8sbnQubWFnbml0dWRlKGVfKSk7aWYoaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtlPWMubGVuZ3RoO2xldCBJPXQuX29mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxLEw9bmV3IFVpbnQ4QXJyYXkoZS8zKS5maWxsKEkpO0MuYXBwbHlPZmZzZXQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6TH0pfXJldHVybiBuZXcgRnQoe2F0dHJpYnV0ZXM6QyxpbmRpY2VzOk8scHJpbWl0aXZlVHlwZTpMdC5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6TixvZmZzZXRBdHRyaWJ1dGU6dC5fb2Zmc2V0QXR0cmlidXRlfSl9O2tpLmdldFVuaXRDeWxpbmRlcj1mdW5jdGlvbigpe3JldHVybiBoKG5fKXx8KG5fPWtpLmNyZWF0ZUdlb21ldHJ5KG5ldyBraSh7dG9wUmFkaXVzOjEsYm90dG9tUmFkaXVzOjEsbGVuZ3RoOjEsdmVydGV4Rm9ybWF0Omx0LlBPU0lUSU9OX09OTFl9KSkpLG5ffTtIZj1raX0pO3ZhciByXz17fTttZShyXyx7ZGVmYXVsdDooKT0+ckR9KTtmdW5jdGlvbiBvRCh0LGUpe3JldHVybiBoKGUpJiYodD1IZi51bnBhY2sodCxlKSksSGYuY3JlYXRlR2VvbWV0cnkodCl9dmFyIHJELGlfPVooKCk9PntvXygpO2F0KCk7ckQ9b0R9KTtmdW5jdGlvbiBFYSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5sZW5ndGgsbj10LnRvcFJhZGl1cyxvPXQuYm90dG9tUmFkaXVzLHI9eCh0LnNsaWNlcywxMjgpLGk9TWF0aC5tYXgoeCh0Lm51bWJlck9mVmVydGljYWxMaW5lcywxNiksMCk7aWYoeS50eXBlT2YubnVtYmVyKCJvcHRpb25zLnBvc2l0aW9ucyIsZSkseS50eXBlT2YubnVtYmVyKCJvcHRpb25zLnRvcFJhZGl1cyIsbikseS50eXBlT2YubnVtYmVyKCJvcHRpb25zLmJvdHRvbVJhZGl1cyIsbykseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIm9wdGlvbnMuc2xpY2VzIixyLDMpLGgodC5vZmZzZXRBdHRyaWJ1dGUpJiZ0Lm9mZnNldEF0dHJpYnV0ZT09PWFlLlRPUCl0aHJvdyBuZXcgQigiR2VvbWV0cnlPZmZzZXRBdHRyaWJ1dGUuVE9QIGlzIG5vdCBhIHN1cHBvcnRlZCBvcHRpb25zLm9mZnNldEF0dHJpYnV0ZSBmb3IgdGhpcyBnZW9tZXRyeS4iKTt0aGlzLl9sZW5ndGg9ZSx0aGlzLl90b3BSYWRpdXM9bix0aGlzLl9ib3R0b21SYWRpdXM9byx0aGlzLl9zbGljZXM9cix0aGlzLl9udW1iZXJPZlZlcnRpY2FsTGluZXM9aSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQ3lsaW5kZXJPdXRsaW5lR2VvbWV0cnkifXZhciBzXyxnYyxjXyxjTz1aKCgpPT57UGUoKTt6ZSgpO1V0KCk7WXQoKTtEZSgpO3RfKCk7SXQoKTthdCgpO0h0KCk7WGUoKTtZZSgpO2FuKCk7Rm8oKTskZSgpO3RuKCk7c189bmV3IG50O0VhLnBhY2tlZExlbmd0aD02O0VhLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxlW24rK109dC5fbGVuZ3RoLGVbbisrXT10Ll90b3BSYWRpdXMsZVtuKytdPXQuX2JvdHRvbVJhZGl1cyxlW24rK109dC5fc2xpY2VzLGVbbisrXT10Ll9udW1iZXJPZlZlcnRpY2FsTGluZXMsZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07Z2M9e2xlbmd0aDp2b2lkIDAsdG9wUmFkaXVzOnZvaWQgMCxib3R0b21SYWRpdXM6dm9pZCAwLHNsaWNlczp2b2lkIDAsbnVtYmVyT2ZWZXJ0aWNhbExpbmVzOnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtFYS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApO2xldCBvPXRbZSsrXSxyPXRbZSsrXSxpPXRbZSsrXSxzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZV07cmV0dXJuIGgobik/KG4uX2xlbmd0aD1vLG4uX3RvcFJhZGl1cz1yLG4uX2JvdHRvbVJhZGl1cz1pLG4uX3NsaWNlcz1zLG4uX251bWJlck9mVmVydGljYWxMaW5lcz1mLG4uX29mZnNldEF0dHJpYnV0ZT11PT09LTE/dm9pZCAwOnUsbik6KGdjLmxlbmd0aD1vLGdjLnRvcFJhZGl1cz1yLGdjLmJvdHRvbVJhZGl1cz1pLGdjLnNsaWNlcz1zLGdjLm51bWJlck9mVmVydGljYWxMaW5lcz1mLGdjLm9mZnNldEF0dHJpYnV0ZT11PT09LTE/dm9pZCAwOnUsbmV3IEVhKGdjKSl9O0VhLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX2xlbmd0aCxuPXQuX3RvcFJhZGl1cyxvPXQuX2JvdHRvbVJhZGl1cyxyPXQuX3NsaWNlcyxpPXQuX251bWJlck9mVmVydGljYWxMaW5lcztpZihlPD0wfHxuPDB8fG88MHx8bj09PTAmJm89PT0wKXJldHVybjtsZXQgcz1yKjIsZj1nZC5jb21wdXRlUG9zaXRpb25zKGUsbixvLHIsITEpLHU9cioyLGM7aWYoaT4wKXtsZXQgZz1NYXRoLm1pbihpLHIpO2M9TWF0aC5yb3VuZChyL2cpLHUrPWd9bGV0IGw9RHQuY3JlYXRlVHlwZWRBcnJheShzLHUqMikscD0wLGQ7Zm9yKGQ9MDtkPHItMTtkKyspbFtwKytdPWQsbFtwKytdPWQrMSxsW3ArK109ZCtyLGxbcCsrXT1kKzErcjtpZihsW3ArK109ci0xLGxbcCsrXT0wLGxbcCsrXT1yK3ItMSxsW3ArK109cixpPjApZm9yKGQ9MDtkPHI7ZCs9YylsW3ArK109ZCxsW3ArK109ZCtyO2xldCBtPW5ldyByZTttLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Zn0pLHNfLng9ZSouNSxzXy55PU1hdGgubWF4KG8sbik7bGV0IF89bmV3IHl0KGEuWkVSTyxudC5tYWduaXR1ZGUoc18pKTtpZihoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2U9Zi5sZW5ndGg7bGV0IGc9dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjEsYj1uZXcgVWludDhBcnJheShlLzMpLmZpbGwoZyk7bS5hcHBseU9mZnNldD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpifSl9cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczptLGluZGljZXM6bCxwcmltaXRpdmVUeXBlOkx0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOl8sb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtjXz1FYX0pO3ZhciBhXz17fTttZShhXyx7ZGVmYXVsdDooKT0+c0R9KTtmdW5jdGlvbiBpRCh0LGUpe3JldHVybiBoKGUpJiYodD1jXy51bnBhY2sodCxlKSksY18uY3JlYXRlR2VvbWV0cnkodCl9dmFyIHNELGZfPVooKCk9PntjTygpO2F0KCk7c0Q9aUR9KTt2YXIgdV89e307bWUodV8se2RlZmF1bHQ6KCk9PmFEfSk7ZnVuY3Rpb24gY0QodCxlKXtyZXR1cm4gaChlKSYmKHQ9R3IudW5wYWNrKHQsZSkpLHQuX2NlbnRlcj1hLmNsb25lKHQuX2NlbnRlciksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxHci5jcmVhdGVHZW9tZXRyeSh0KX12YXIgYUQsbF89WigoKT0+e1V0KCk7YXQoKTtwMCgpO1p0KCk7YUQ9Y0R9KTt2YXIgcF89e307bWUocF8se2RlZmF1bHQ6KCk9PnVEfSk7ZnVuY3Rpb24gZkQodCxlKXtyZXR1cm4gaChlKSYmKHQ9enIudW5wYWNrKHQsZSkpLHQuX2NlbnRlcj1hLmNsb25lKHQuX2NlbnRlciksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSx6ci5jcmVhdGVHZW9tZXRyeSh0KX12YXIgdUQsZF89WigoKT0+e1V0KCk7YXQoKTtfMCgpO1p0KCk7dUQ9ZkR9KTtmdW5jdGlvbiBHaSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9eCh0LnJhZGlpLF9EKSxuPXgodC5pbm5lclJhZGlpLGUpLG89eCh0Lm1pbmltdW1DbG9jaywwKSxyPXgodC5tYXhpbXVtQ2xvY2ssTS5UV09fUEkpLGk9eCh0Lm1pbmltdW1Db25lLDApLHM9eCh0Lm1heGltdW1Db25lLE0uUEkpLGY9TWF0aC5yb3VuZCh4KHQuc3RhY2tQYXJ0aXRpb25zLDY0KSksdT1NYXRoLnJvdW5kKHgodC5zbGljZVBhcnRpdGlvbnMsNjQpKSxjPXgodC52ZXJ0ZXhGb3JtYXQsbHQuREVGQVVMVCk7aWYodTwzKXRocm93IG5ldyBCKCJvcHRpb25zLnNsaWNlUGFydGl0aW9ucyBjYW5ub3QgYmUgbGVzcyB0aGFuIHRocmVlLiIpO2lmKGY8Myl0aHJvdyBuZXcgQigib3B0aW9ucy5zdGFja1BhcnRpdGlvbnMgY2Fubm90IGJlIGxlc3MgdGhhbiB0aHJlZS4iKTt0aGlzLl9yYWRpaT1hLmNsb25lKGUpLHRoaXMuX2lubmVyUmFkaWk9YS5jbG9uZShuKSx0aGlzLl9taW5pbXVtQ2xvY2s9byx0aGlzLl9tYXhpbXVtQ2xvY2s9cix0aGlzLl9taW5pbXVtQ29uZT1pLHRoaXMuX21heGltdW1Db25lPXMsdGhpcy5fc3RhY2tQYXJ0aXRpb25zPWYsdGhpcy5fc2xpY2VQYXJ0aXRpb25zPXUsdGhpcy5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKGMpLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVFbGxpcHNvaWRHZW9tZXRyeSJ9dmFyIGxELHBELGRELG1ELGhELF9ELGFPLGZPLHVPLGxPLHBPLF9zLG1fLGNyLEFkPVooKCk9PntQZSgpO3plKCk7VXQoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO1p0KCk7WGUoKTtZZSgpO2FuKCk7Rm8oKTskZSgpO1d0KCk7dG4oKTtSbygpO2xEPW5ldyBhLHBEPW5ldyBhLGREPW5ldyBhLG1EPW5ldyBhLGhEPW5ldyBhLF9EPW5ldyBhKDEsMSwxKSxhTz1NYXRoLmNvcyxmTz1NYXRoLnNpbjtHaS5wYWNrZWRMZW5ndGg9MiphLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGgrNztHaS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtyZXR1cm4gbj14KG4sMCksYS5wYWNrKHQuX3JhZGlpLGUsbiksbis9YS5wYWNrZWRMZW5ndGgsYS5wYWNrKHQuX2lubmVyUmFkaWksZSxuKSxuKz1hLnBhY2tlZExlbmd0aCxsdC5wYWNrKHQuX3ZlcnRleEZvcm1hdCxlLG4pLG4rPWx0LnBhY2tlZExlbmd0aCxlW24rK109dC5fbWluaW11bUNsb2NrLGVbbisrXT10Ll9tYXhpbXVtQ2xvY2ssZVtuKytdPXQuX21pbmltdW1Db25lLGVbbisrXT10Ll9tYXhpbXVtQ29uZSxlW24rK109dC5fc3RhY2tQYXJ0aXRpb25zLGVbbisrXT10Ll9zbGljZVBhcnRpdGlvbnMsZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07dU89bmV3IGEsbE89bmV3IGEscE89bmV3IGx0LF9zPXtyYWRpaTp1Tyxpbm5lclJhZGlpOmxPLHZlcnRleEZvcm1hdDpwTyxtaW5pbXVtQ2xvY2s6dm9pZCAwLG1heGltdW1DbG9jazp2b2lkIDAsbWluaW11bUNvbmU6dm9pZCAwLG1heGltdW1Db25lOnZvaWQgMCxzdGFja1BhcnRpdGlvbnM6dm9pZCAwLHNsaWNlUGFydGl0aW9uczp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07R2kudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtlPXgoZSwwKTtsZXQgbz1hLnVucGFjayh0LGUsdU8pO2UrPWEucGFja2VkTGVuZ3RoO2xldCByPWEudW5wYWNrKHQsZSxsTyk7ZSs9YS5wYWNrZWRMZW5ndGg7bGV0IGk9bHQudW5wYWNrKHQsZSxwTyk7ZSs9bHQucGFja2VkTGVuZ3RoO2xldCBzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXSxjPXRbZSsrXSxsPXRbZSsrXSxwPXRbZSsrXSxkPXRbZV07cmV0dXJuIGgobik/KG4uX3JhZGlpPWEuY2xvbmUobyxuLl9yYWRpaSksbi5faW5uZXJSYWRpaT1hLmNsb25lKHIsbi5faW5uZXJSYWRpaSksbi5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKGksbi5fdmVydGV4Rm9ybWF0KSxuLl9taW5pbXVtQ2xvY2s9cyxuLl9tYXhpbXVtQ2xvY2s9ZixuLl9taW5pbXVtQ29uZT11LG4uX21heGltdW1Db25lPWMsbi5fc3RhY2tQYXJ0aXRpb25zPWwsbi5fc2xpY2VQYXJ0aXRpb25zPXAsbi5fb2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCxuKTooX3MubWluaW11bUNsb2NrPXMsX3MubWF4aW11bUNsb2NrPWYsX3MubWluaW11bUNvbmU9dSxfcy5tYXhpbXVtQ29uZT1jLF9zLnN0YWNrUGFydGl0aW9ucz1sLF9zLnNsaWNlUGFydGl0aW9ucz1wLF9zLm9mZnNldEF0dHJpYnV0ZT1kPT09LTE/dm9pZCAwOmQsbmV3IEdpKF9zKSl9O0dpLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3JhZGlpO2lmKGUueDw9MHx8ZS55PD0wfHxlLno8PTApcmV0dXJuO2xldCBuPXQuX2lubmVyUmFkaWk7aWYobi54PD0wfHxuLnk8PTB8fG4uejw9MClyZXR1cm47bGV0IG89dC5fbWluaW11bUNsb2NrLHI9dC5fbWF4aW11bUNsb2NrLGk9dC5fbWluaW11bUNvbmUscz10Ll9tYXhpbXVtQ29uZSxmPXQuX3ZlcnRleEZvcm1hdCx1PXQuX3NsaWNlUGFydGl0aW9ucysxLGM9dC5fc3RhY2tQYXJ0aXRpb25zKzE7dT1NYXRoLnJvdW5kKHUqTWF0aC5hYnMoci1vKS9NLlRXT19QSSksYz1NYXRoLnJvdW5kKGMqTWF0aC5hYnMocy1pKS9NLlBJKSx1PDImJih1PTIpLGM8MiYmKGM9Mik7bGV0IGwscCxkPTAsbT1baV0sXz1bb107Zm9yKGw9MDtsPGM7bCsrKW0ucHVzaChpK2wqKHMtaSkvKGMtMSkpO2ZvcihtLnB1c2gocykscD0wO3A8dTtwKyspXy5wdXNoKG8rcCooci1vKS8odS0xKSk7Xy5wdXNoKHIpO2xldCBnPW0ubGVuZ3RoLGI9Xy5sZW5ndGgsTz0wLFQ9MSxFPW4ueCE9PWUueHx8bi55IT09ZS55fHxuLnohPT1lLnosdz0hMSxDPSExLE49ITE7RSYmKFQ9MixpPjAmJih3PSEwLE8rPXUtMSksczxNYXRoLlBJJiYoQz0hMCxPKz11LTEpLChyLW8pJU0uVFdPX1BJPyhOPSEwLE8rPShjLTEpKjIrMSk6Tys9MSk7bGV0IEk9YipnKlQsTD1uZXcgRmxvYXQ2NEFycmF5KEkqMyksdj1uZXcgQXJyYXkoSSkuZmlsbCghMSksRD1uZXcgQXJyYXkoSSkuZmlsbCghMSksVT11KmMqVCxBPTYqKFUrTysxLSh1K2MpKlQpLFM9RHQuY3JlYXRlVHlwZWRBcnJheShVLEEpLFA9Zi5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShJKjMpOnZvaWQgMCxGPWYudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KEkqMyk6dm9pZCAwLGo9Zi5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShJKjMpOnZvaWQgMCxIPWYuc3Q/bmV3IEZsb2F0MzJBcnJheShJKjIpOnZvaWQgMCxrPW5ldyBBcnJheShnKSxLPW5ldyBBcnJheShnKTtmb3IobD0wO2w8ZztsKyspa1tsXT1mTyhtW2xdKSxLW2xdPWFPKG1bbF0pO2xldCBYPW5ldyBBcnJheShiKSxSPW5ldyBBcnJheShiKTtmb3IocD0wO3A8YjtwKyspUltwXT1hTyhfW3BdKSxYW3BdPWZPKF9bcF0pO2ZvcihsPTA7bDxnO2wrKylmb3IocD0wO3A8YjtwKyspTFtkKytdPWUueCprW2xdKlJbcF0sTFtkKytdPWUueSprW2xdKlhbcF0sTFtkKytdPWUueipLW2xdO2xldCBRPUkvMjtpZihFKWZvcihsPTA7bDxnO2wrKylmb3IocD0wO3A8YjtwKyspTFtkKytdPW4ueCprW2xdKlJbcF0sTFtkKytdPW4ueSprW2xdKlhbcF0sTFtkKytdPW4ueipLW2xdLHZbUV09ITAsbD4wJiZsIT09Zy0xJiZwIT09MCYmcCE9PWItMSYmKERbUV09ITApLFErKztkPTA7bGV0IGZ0LHB0O2ZvcihsPTE7bDxnLTI7bCsrKWZvcihmdD1sKmIscHQ9KGwrMSkqYixwPTE7cDxiLTI7cCsrKVNbZCsrXT1wdCtwLFNbZCsrXT1wdCtwKzEsU1tkKytdPWZ0K3ArMSxTW2QrK109cHQrcCxTW2QrK109ZnQrcCsxLFNbZCsrXT1mdCtwO2lmKEUpe2xldCBwZT1nKmI7Zm9yKGw9MTtsPGctMjtsKyspZm9yKGZ0PXBlK2wqYixwdD1wZSsobCsxKSpiLHA9MTtwPGItMjtwKyspU1tkKytdPXB0K3AsU1tkKytdPWZ0K3AsU1tkKytdPWZ0K3ArMSxTW2QrK109cHQrcCxTW2QrK109ZnQrcCsxLFNbZCsrXT1wdCtwKzF9bGV0IGd0LGl0O2lmKEUpe2lmKHcpZm9yKGl0PWcqYixsPTE7bDxiLTI7bCsrKVNbZCsrXT1sLFNbZCsrXT1sKzEsU1tkKytdPWl0K2wrMSxTW2QrK109bCxTW2QrK109aXQrbCsxLFNbZCsrXT1pdCtsO2lmKEMpZm9yKGd0PWcqYi1iLGl0PWcqYipULWIsbD0xO2w8Yi0yO2wrKylTW2QrK109Z3QrbCsxLFNbZCsrXT1ndCtsLFNbZCsrXT1pdCtsLFNbZCsrXT1ndCtsKzEsU1tkKytdPWl0K2wsU1tkKytdPWl0K2wrMX1pZihOKXtmb3IobD0xO2w8Zy0yO2wrKylpdD1iKmcrYipsLGd0PWIqbCxTW2QrK109aXQsU1tkKytdPWd0K2IsU1tkKytdPWd0LFNbZCsrXT1pdCxTW2QrK109aXQrYixTW2QrK109Z3QrYjtmb3IobD0xO2w8Zy0yO2wrKylpdD1iKmcrYioobCsxKS0xLGd0PWIqKGwrMSktMSxTW2QrK109Z3QrYixTW2QrK109aXQsU1tkKytdPWd0LFNbZCsrXT1ndCtiLFNbZCsrXT1pdCtiLFNbZCsrXT1pdH1sZXQgTnQ9bmV3IHJlO2YucG9zaXRpb24mJihOdC5wb3NpdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkx9KSk7bGV0IE90PTAseHQ9MCxfdD0wLGR0PTAsVnQ9SS8yLHp0LGhlPSQuZnJvbUNhcnRlc2lhbjMoZSksY2U9JC5mcm9tQ2FydGVzaWFuMyhuKTtpZihmLnN0fHxmLm5vcm1hbHx8Zi50YW5nZW50fHxmLmJpdGFuZ2VudCl7Zm9yKGw9MDtsPEk7bCsrKXt6dD12W2xdP2NlOmhlO2xldCBwZT1hLmZyb21BcnJheShMLGwqMyxsRCksZmU9enQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHBlLHBEKTtpZihEW2xdJiZhLm5lZ2F0ZShmZSxmZSksZi5zdCl7bGV0IFF0PW50Lm5lZ2F0ZShmZSxoRCk7SFtPdCsrXT1NYXRoLmF0YW4yKFF0LnksUXQueCkvTS5UV09fUEkrLjUsSFtPdCsrXT1NYXRoLmFzaW4oZmUueikvTWF0aC5QSSsuNX1pZihmLm5vcm1hbCYmKFBbeHQrK109ZmUueCxQW3h0KytdPWZlLnksUFt4dCsrXT1mZS56KSxmLnRhbmdlbnR8fGYuYml0YW5nZW50KXtsZXQgUXQ9ZEQsSnQ9MCx4ZTtpZih2W2xdJiYoSnQ9VnQpLCF3JiZsPj1KdCYmbDxKdCtiKjI/eGU9YS5VTklUX1g6eGU9YS5VTklUX1osYS5jcm9zcyh4ZSxmZSxRdCksYS5ub3JtYWxpemUoUXQsUXQpLGYudGFuZ2VudCYmKEZbX3QrK109UXQueCxGW190KytdPVF0LnksRltfdCsrXT1RdC56KSxmLmJpdGFuZ2VudCl7bGV0IEFlPWEuY3Jvc3MoZmUsUXQsbUQpO2Eubm9ybWFsaXplKEFlLEFlKSxqW2R0KytdPUFlLngsaltkdCsrXT1BZS55LGpbZHQrK109QWUuen19fWYuc3QmJihOdC5zdD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6SH0pKSxmLm5vcm1hbCYmKE50Lm5vcm1hbD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6UH0pKSxmLnRhbmdlbnQmJihOdC50YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpGfSkpLGYuYml0YW5nZW50JiYoTnQuYml0YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpqfSkpfWlmKGgodC5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IHBlPUwubGVuZ3RoLGZlPXQuX29mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxLFF0PW5ldyBVaW50OEFycmF5KHBlLzMpLmZpbGwoZmUpO050LmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOlF0fSl9cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpOdCxpbmRpY2VzOlMscHJpbWl0aXZlVHlwZTpMdC5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6eXQuZnJvbUVsbGlwc29pZChoZSksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtHaS5nZXRVbml0RWxsaXBzb2lkPWZ1bmN0aW9uKCl7cmV0dXJuIGgobV8pfHwobV89R2kuY3JlYXRlR2VvbWV0cnkobmV3IEdpKHtyYWRpaTpuZXcgYSgxLDEsMSksdmVydGV4Rm9ybWF0Omx0LlBPU0lUSU9OX09OTFl9KSkpLG1ffTtjcj1HaX0pO3ZhciBoXz17fTttZShoXyx7ZGVmYXVsdDooKT0+Z0R9KTtmdW5jdGlvbiB5RCh0LGUpe3JldHVybiBoKGUpJiYodD1jci51bnBhY2sodCxlKSksY3IuY3JlYXRlR2VvbWV0cnkodCl9dmFyIGdELF9fPVooKCk9PnthdCgpO0FkKCk7Z0Q9eUR9KTtmdW5jdGlvbiBSYSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9eCh0LnJhZGlpLEFEKSxuPXgodC5pbm5lclJhZGlpLGUpLG89eCh0Lm1pbmltdW1DbG9jaywwKSxyPXgodC5tYXhpbXVtQ2xvY2ssTS5UV09fUEkpLGk9eCh0Lm1pbmltdW1Db25lLDApLHM9eCh0Lm1heGltdW1Db25lLE0uUEkpLGY9TWF0aC5yb3VuZCh4KHQuc3RhY2tQYXJ0aXRpb25zLDEwKSksdT1NYXRoLnJvdW5kKHgodC5zbGljZVBhcnRpdGlvbnMsOCkpLGM9TWF0aC5yb3VuZCh4KHQuc3ViZGl2aXNpb25zLDEyOCkpO2lmKGY8MSl0aHJvdyBuZXcgQigib3B0aW9ucy5zdGFja1BhcnRpdGlvbnMgY2Fubm90IGJlIGxlc3MgdGhhbiAxIik7aWYodTwwKXRocm93IG5ldyBCKCJvcHRpb25zLnNsaWNlUGFydGl0aW9ucyBjYW5ub3QgYmUgbGVzcyB0aGFuIDAiKTtpZihjPDApdGhyb3cgbmV3IEIoIm9wdGlvbnMuc3ViZGl2aXNpb25zIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIik7aWYoaCh0Lm9mZnNldEF0dHJpYnV0ZSkmJnQub2Zmc2V0QXR0cmlidXRlPT09YWUuVE9QKXRocm93IG5ldyBCKCJHZW9tZXRyeU9mZnNldEF0dHJpYnV0ZS5UT1AgaXMgbm90IGEgc3VwcG9ydGVkIG9wdGlvbnMub2Zmc2V0QXR0cmlidXRlIGZvciB0aGlzIGdlb21ldHJ5LiIpO3RoaXMuX3JhZGlpPWEuY2xvbmUoZSksdGhpcy5faW5uZXJSYWRpaT1hLmNsb25lKG4pLHRoaXMuX21pbmltdW1DbG9jaz1vLHRoaXMuX21heGltdW1DbG9jaz1yLHRoaXMuX21pbmltdW1Db25lPWksdGhpcy5fbWF4aW11bUNvbmU9cyx0aGlzLl9zdGFja1BhcnRpdGlvbnM9Zix0aGlzLl9zbGljZVBhcnRpdGlvbnM9dSx0aGlzLl9zdWJkaXZpc2lvbnM9Yyx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlRWxsaXBzb2lkT3V0bGluZUdlb21ldHJ5In12YXIgQUQsYmQsd2QsZE8sbU8semksV3IseV89WigoKT0+e1BlKCk7VXQoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO1p0KCk7WGUoKTtZZSgpO2FuKCk7Rm8oKTskZSgpO1d0KCk7dG4oKTtBRD1uZXcgYSgxLDEsMSksYmQ9TWF0aC5jb3Msd2Q9TWF0aC5zaW47UmEucGFja2VkTGVuZ3RoPTIqYS5wYWNrZWRMZW5ndGgrODtSYS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtyZXR1cm4gbj14KG4sMCksYS5wYWNrKHQuX3JhZGlpLGUsbiksbis9YS5wYWNrZWRMZW5ndGgsYS5wYWNrKHQuX2lubmVyUmFkaWksZSxuKSxuKz1hLnBhY2tlZExlbmd0aCxlW24rK109dC5fbWluaW11bUNsb2NrLGVbbisrXT10Ll9tYXhpbXVtQ2xvY2ssZVtuKytdPXQuX21pbmltdW1Db25lLGVbbisrXT10Ll9tYXhpbXVtQ29uZSxlW24rK109dC5fc3RhY2tQYXJ0aXRpb25zLGVbbisrXT10Ll9zbGljZVBhcnRpdGlvbnMsZVtuKytdPXQuX3N1YmRpdmlzaW9ucyxlW25dPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlfTtkTz1uZXcgYSxtTz1uZXcgYSx6aT17cmFkaWk6ZE8saW5uZXJSYWRpaTptTyxtaW5pbXVtQ2xvY2s6dm9pZCAwLG1heGltdW1DbG9jazp2b2lkIDAsbWluaW11bUNvbmU6dm9pZCAwLG1heGltdW1Db25lOnZvaWQgMCxzdGFja1BhcnRpdGlvbnM6dm9pZCAwLHNsaWNlUGFydGl0aW9uczp2b2lkIDAsc3ViZGl2aXNpb25zOnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtSYS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvPWEudW5wYWNrKHQsZSxkTyk7ZSs9YS5wYWNrZWRMZW5ndGg7bGV0IHI9YS51bnBhY2sodCxlLG1PKTtlKz1hLnBhY2tlZExlbmd0aDtsZXQgaT10W2UrK10scz10W2UrK10sZj10W2UrK10sdT10W2UrK10sYz10W2UrK10sbD10W2UrK10scD10W2UrK10sZD10W2VdO3JldHVybiBoKG4pPyhuLl9yYWRpaT1hLmNsb25lKG8sbi5fcmFkaWkpLG4uX2lubmVyUmFkaWk9YS5jbG9uZShyLG4uX2lubmVyUmFkaWkpLG4uX21pbmltdW1DbG9jaz1pLG4uX21heGltdW1DbG9jaz1zLG4uX21pbmltdW1Db25lPWYsbi5fbWF4aW11bUNvbmU9dSxuLl9zdGFja1BhcnRpdGlvbnM9YyxuLl9zbGljZVBhcnRpdGlvbnM9bCxuLl9zdWJkaXZpc2lvbnM9cCxuLl9vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG4pOih6aS5taW5pbXVtQ2xvY2s9aSx6aS5tYXhpbXVtQ2xvY2s9cyx6aS5taW5pbXVtQ29uZT1mLHppLm1heGltdW1Db25lPXUsemkuc3RhY2tQYXJ0aXRpb25zPWMsemkuc2xpY2VQYXJ0aXRpb25zPWwsemkuc3ViZGl2aXNpb25zPXAsemkub2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCxuZXcgUmEoemkpKX07UmEuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fcmFkaWk7aWYoZS54PD0wfHxlLnk8PTB8fGUuejw9MClyZXR1cm47bGV0IG49dC5faW5uZXJSYWRpaTtpZihuLng8PTB8fG4ueTw9MHx8bi56PD0wKXJldHVybjtsZXQgbz10Ll9taW5pbXVtQ2xvY2sscj10Ll9tYXhpbXVtQ2xvY2ssaT10Ll9taW5pbXVtQ29uZSxzPXQuX21heGltdW1Db25lLGY9dC5fc3ViZGl2aXNpb25zLHU9JC5mcm9tQ2FydGVzaWFuMyhlKSxjPXQuX3NsaWNlUGFydGl0aW9ucysxLGw9dC5fc3RhY2tQYXJ0aXRpb25zKzE7Yz1NYXRoLnJvdW5kKGMqTWF0aC5hYnMoci1vKS9NLlRXT19QSSksbD1NYXRoLnJvdW5kKGwqTWF0aC5hYnMocy1pKS9NLlBJKSxjPDImJihjPTIpLGw8MiYmKGw9Mik7bGV0IHA9MCxkPTEsbT1uLnghPT1lLnh8fG4ueSE9PWUueXx8bi56IT09ZS56LF89ITEsZz0hMTttJiYoZD0yLGk+MCYmKF89ITAscCs9YyksczxNYXRoLlBJJiYoZz0hMCxwKz1jKSk7bGV0IGI9ZipkKihsK2MpLE89bmV3IEZsb2F0NjRBcnJheShiKjMpLFQ9MiooYitwLShjK2wpKmQpLEU9RHQuY3JlYXRlVHlwZWRBcnJheShiLFQpLHcsQyxOLEksTD0wLHY9bmV3IEFycmF5KGwpLEQ9bmV3IEFycmF5KGwpO2Zvcih3PTA7dzxsO3crKylJPWkrdyoocy1pKS8obC0xKSx2W3ddPXdkKEkpLERbd109YmQoSSk7bGV0IFU9bmV3IEFycmF5KGYpLEE9bmV3IEFycmF5KGYpO2Zvcih3PTA7dzxmO3crKylOPW8rdyooci1vKS8oZi0xKSxVW3ddPXdkKE4pLEFbd109YmQoTik7Zm9yKHc9MDt3PGw7dysrKWZvcihDPTA7QzxmO0MrKylPW0wrK109ZS54KnZbd10qQVtDXSxPW0wrK109ZS55KnZbd10qVVtDXSxPW0wrK109ZS56KkRbd107aWYobSlmb3Iodz0wO3c8bDt3KyspZm9yKEM9MDtDPGY7QysrKU9bTCsrXT1uLngqdlt3XSpBW0NdLE9bTCsrXT1uLnkqdlt3XSpVW0NdLE9bTCsrXT1uLnoqRFt3XTtmb3Iodi5sZW5ndGg9ZixELmxlbmd0aD1mLHc9MDt3PGY7dysrKUk9aSt3KihzLWkpLyhmLTEpLHZbd109d2QoSSksRFt3XT1iZChJKTtmb3IoVS5sZW5ndGg9YyxBLmxlbmd0aD1jLHc9MDt3PGM7dysrKU49byt3KihyLW8pLyhjLTEpLFVbd109d2QoTiksQVt3XT1iZChOKTtmb3Iodz0wO3c8Zjt3KyspZm9yKEM9MDtDPGM7QysrKU9bTCsrXT1lLngqdlt3XSpBW0NdLE9bTCsrXT1lLnkqdlt3XSpVW0NdLE9bTCsrXT1lLnoqRFt3XTtpZihtKWZvcih3PTA7dzxmO3crKylmb3IoQz0wO0M8YztDKyspT1tMKytdPW4ueCp2W3ddKkFbQ10sT1tMKytdPW4ueSp2W3ddKlVbQ10sT1tMKytdPW4ueipEW3ddO2ZvcihMPTAsdz0wO3c8bCpkO3crKyl7bGV0IEY9dypmO2ZvcihDPTA7QzxmLTE7QysrKUVbTCsrXT1GK0MsRVtMKytdPUYrQysxfWxldCBTPWwqZipkO2Zvcih3PTA7dzxjO3crKylmb3IoQz0wO0M8Zi0xO0MrKylFW0wrK109Uyt3K0MqYyxFW0wrK109Uyt3KyhDKzEpKmM7aWYobSlmb3IoUz1sKmYqZCtjKmYsdz0wO3c8Yzt3KyspZm9yKEM9MDtDPGYtMTtDKyspRVtMKytdPVMrdytDKmMsRVtMKytdPVMrdysoQysxKSpjO2lmKG0pe2xldCBGPWwqZipkLGo9RitmKmM7aWYoXylmb3Iodz0wO3c8Yzt3KyspRVtMKytdPUYrdyxFW0wrK109ait3O2lmKGcpZm9yKEYrPWYqYy1jLGorPWYqYy1jLHc9MDt3PGM7dysrKUVbTCsrXT1GK3csRVtMKytdPWord31sZXQgUD1uZXcgcmUoe3Bvc2l0aW9uOm5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6T30pfSk7aWYoaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgRj1PLmxlbmd0aCxqPXQuX29mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxLEg9bmV3IFVpbnQ4QXJyYXkoRi8zKS5maWxsKGopO1AuYXBwbHlPZmZzZXQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6SH0pfXJldHVybiBuZXcgRnQoe2F0dHJpYnV0ZXM6UCxpbmRpY2VzOkUscHJpbWl0aXZlVHlwZTpMdC5MSU5FUyxib3VuZGluZ1NwaGVyZTp5dC5mcm9tRWxsaXBzb2lkKHUpLG9mZnNldEF0dHJpYnV0ZTp0Ll9vZmZzZXRBdHRyaWJ1dGV9KX07V3I9UmF9KTt2YXIgZ189e307bWUoZ18se2RlZmF1bHQ6KCk9PndEfSk7ZnVuY3Rpb24gYkQodCxlKXtyZXR1cm4gaCh0LmJ1ZmZlcixlKSYmKHQ9V3IudW5wYWNrKHQsZSkpLFdyLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciB3RCxBXz1aKCgpPT57YXQoKTt5XygpO3dEPWJEfSk7ZnVuY3Rpb24gRXIodCl7dGhpcy5wbGFuZXM9eCh0LFtdKX12YXIgcWYseXMsVEQsaE8sVGQsYl89WigoKT0+e1V0KCk7aHIoKTtJdCgpO2F0KCk7SHQoKTtWcygpO2NzKCk7cWY9W25ldyBhLG5ldyBhLG5ldyBhXTthLmNsb25lKGEuVU5JVF9YLHFmWzBdKTthLmNsb25lKGEuVU5JVF9ZLHFmWzFdKTthLmNsb25lKGEuVU5JVF9aLHFmWzJdKTt5cz1uZXcgYSxURD1uZXcgYSxoTz1uZXcgb24obmV3IGEoMSwwLDApLDApO0VyLmZyb21Cb3VuZGluZ1NwaGVyZT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBCKCJib3VuZGluZ1NwaGVyZSBpcyByZXF1aXJlZC4iKTtoKGUpfHwoZT1uZXcgRXIpO2xldCBuPXFmLmxlbmd0aCxvPWUucGxhbmVzO28ubGVuZ3RoPTIqbjtsZXQgcj10LmNlbnRlcixpPXQucmFkaXVzLHM9MDtmb3IobGV0IGY9MDtmPG47KytmKXtsZXQgdT1xZltmXSxjPW9bc10sbD1vW3MrMV07aChjKXx8KGM9b1tzXT1uZXcgX2UpLGgobCl8fChsPW9bcysxXT1uZXcgX2UpLGEubXVsdGlwbHlCeVNjYWxhcih1LC1pLHlzKSxhLmFkZChyLHlzLHlzKSxjLng9dS54LGMueT11LnksYy56PXUueixjLnc9LWEuZG90KHUseXMpLGEubXVsdGlwbHlCeVNjYWxhcih1LGkseXMpLGEuYWRkKHIseXMseXMpLGwueD0tdS54LGwueT0tdS55LGwuej0tdS56LGwudz0tYS5kb3QoYS5uZWdhdGUodSxURCkseXMpLHMrPTJ9cmV0dXJuIGV9O0VyLnByb3RvdHlwZS5jb21wdXRlVmlzaWJpbGl0eT1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgQigiYm91bmRpbmdWb2x1bWUgaXMgcmVxdWlyZWQuIik7bGV0IGU9dGhpcy5wbGFuZXMsbj0hMTtmb3IobGV0IG89MCxyPWUubGVuZ3RoO288cjsrK28pe2xldCBpPXQuaW50ZXJzZWN0UGxhbmUob24uZnJvbUNhcnRlc2lhbjQoZVtvXSxoTykpO2lmKGk9PT1Fbi5PVVRTSURFKXJldHVybiBFbi5PVVRTSURFO2k9PT1Fbi5JTlRFUlNFQ1RJTkcmJihuPSEwKX1yZXR1cm4gbj9Fbi5JTlRFUlNFQ1RJTkc6RW4uSU5TSURFfTtFci5wcm90b3R5cGUuY29tcHV0ZVZpc2liaWxpdHlXaXRoUGxhbmVNYXNrPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEIoImJvdW5kaW5nVm9sdW1lIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJwYXJlbnRQbGFuZU1hc2sgaXMgcmVxdWlyZWQuIik7aWYoZT09PUVyLk1BU0tfT1VUU0lERXx8ZT09PUVyLk1BU0tfSU5TSURFKXJldHVybiBlO2xldCBuPUVyLk1BU0tfSU5TSURFLG89dGhpcy5wbGFuZXM7Zm9yKGxldCByPTAsaT1vLmxlbmd0aDtyPGk7KytyKXtsZXQgcz1yPDMxPzE8PHI6MDtpZihyPDMxJiYhKGUmcykpY29udGludWU7bGV0IGY9dC5pbnRlcnNlY3RQbGFuZShvbi5mcm9tQ2FydGVzaWFuNChvW3JdLGhPKSk7aWYoZj09PUVuLk9VVFNJREUpcmV0dXJuIEVyLk1BU0tfT1VUU0lERTtmPT09RW4uSU5URVJTRUNUSU5HJiYobnw9cyl9cmV0dXJuIG59O0VyLk1BU0tfT1VUU0lERT00Mjk0OTY3Mjk1O0VyLk1BU0tfSU5TSURFPTA7RXIuTUFTS19JTkRFVEVSTUlOQVRFPTIxNDc0ODM2NDc7VGQ9RXJ9KTtmdW5jdGlvbiBsaSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5sZWZ0PXQubGVmdCx0aGlzLl9sZWZ0PXZvaWQgMCx0aGlzLnJpZ2h0PXQucmlnaHQsdGhpcy5fcmlnaHQ9dm9pZCAwLHRoaXMudG9wPXQudG9wLHRoaXMuX3RvcD12b2lkIDAsdGhpcy5ib3R0b209dC5ib3R0b20sdGhpcy5fYm90dG9tPXZvaWQgMCx0aGlzLm5lYXI9eCh0Lm5lYXIsMSksdGhpcy5fbmVhcj10aGlzLm5lYXIsdGhpcy5mYXI9eCh0LmZhciw1ZTgpLHRoaXMuX2Zhcj10aGlzLmZhcix0aGlzLl9jdWxsaW5nVm9sdW1lPW5ldyBUZCx0aGlzLl9vcnRob2dyYXBoaWNNYXRyaXg9bmV3IHN0fWZ1bmN0aW9uIF9PKHQpe2lmKCFoKHQucmlnaHQpfHwhaCh0LmxlZnQpfHwhaCh0LnRvcCl8fCFoKHQuYm90dG9tKXx8IWgodC5uZWFyKXx8IWgodC5mYXIpKXRocm93IG5ldyBCKCJyaWdodCwgbGVmdCwgdG9wLCBib3R0b20sIG5lYXIsIG9yIGZhciBwYXJhbWV0ZXJzIGFyZSBub3Qgc2V0LiIpO2lmKHQudG9wIT09dC5fdG9wfHx0LmJvdHRvbSE9PXQuX2JvdHRvbXx8dC5sZWZ0IT09dC5fbGVmdHx8dC5yaWdodCE9PXQuX3JpZ2h0fHx0Lm5lYXIhPT10Ll9uZWFyfHx0LmZhciE9PXQuX2Zhcil7aWYodC5sZWZ0PnQucmlnaHQpdGhyb3cgbmV3IEIoInJpZ2h0IG11c3QgYmUgZ3JlYXRlciB0aGFuIGxlZnQuIik7aWYodC5ib3R0b20+dC50b3ApdGhyb3cgbmV3IEIoInRvcCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBib3R0b20uIik7aWYodC5uZWFyPD0wfHx0Lm5lYXI+dC5mYXIpdGhyb3cgbmV3IEIoIm5lYXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIGZhci4iKTt0Ll9sZWZ0PXQubGVmdCx0Ll9yaWdodD10LnJpZ2h0LHQuX3RvcD10LnRvcCx0Ll9ib3R0b209dC5ib3R0b20sdC5fbmVhcj10Lm5lYXIsdC5fZmFyPXQuZmFyLHQuX29ydGhvZ3JhcGhpY01hdHJpeD1zdC5jb21wdXRlT3J0aG9ncmFwaGljT2ZmQ2VudGVyKHQubGVmdCx0LnJpZ2h0LHQuYm90dG9tLHQudG9wLHQubmVhcix0LmZhcix0Ll9vcnRob2dyYXBoaWNNYXRyaXgpfX12YXIgT0QsRUQsUkQsd18seU8sZ089WigoKT0+e1V0KCk7aHIoKTtiXygpO0l0KCk7YXQoKTtIdCgpO1d0KCk7a24oKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsaS5wcm90b3R5cGUse3Byb2plY3Rpb25NYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiBfTyh0aGlzKSx0aGlzLl9vcnRob2dyYXBoaWNNYXRyaXh9fX0pO09EPW5ldyBhLEVEPW5ldyBhLFJEPW5ldyBhLHdfPW5ldyBhO2xpLnByb3RvdHlwZS5jb21wdXRlQ3VsbGluZ1ZvbHVtZT1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInBvc2l0aW9uIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJkaXJlY3Rpb24gaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoInVwIGlzIHJlcXVpcmVkLiIpO2xldCBvPXRoaXMuX2N1bGxpbmdWb2x1bWUucGxhbmVzLHI9dGhpcy50b3AsaT10aGlzLmJvdHRvbSxzPXRoaXMucmlnaHQsZj10aGlzLmxlZnQsdT10aGlzLm5lYXIsYz10aGlzLmZhcixsPWEuY3Jvc3MoZSxuLE9EKTthLm5vcm1hbGl6ZShsLGwpO2xldCBwPUVEO2EubXVsdGlwbHlCeVNjYWxhcihlLHUscCksYS5hZGQodCxwLHApO2xldCBkPVJEO2EubXVsdGlwbHlCeVNjYWxhcihsLGYsZCksYS5hZGQocCxkLGQpO2xldCBtPW9bMF07cmV0dXJuIGgobSl8fChtPW9bMF09bmV3IF9lKSxtLng9bC54LG0ueT1sLnksbS56PWwueixtLnc9LWEuZG90KGwsZCksYS5tdWx0aXBseUJ5U2NhbGFyKGwscyxkKSxhLmFkZChwLGQsZCksbT1vWzFdLGgobSl8fChtPW9bMV09bmV3IF9lKSxtLng9LWwueCxtLnk9LWwueSxtLno9LWwueixtLnc9LWEuZG90KGEubmVnYXRlKGwsd18pLGQpLGEubXVsdGlwbHlCeVNjYWxhcihuLGksZCksYS5hZGQocCxkLGQpLG09b1syXSxoKG0pfHwobT1vWzJdPW5ldyBfZSksbS54PW4ueCxtLnk9bi55LG0uej1uLnosbS53PS1hLmRvdChuLGQpLGEubXVsdGlwbHlCeVNjYWxhcihuLHIsZCksYS5hZGQocCxkLGQpLG09b1szXSxoKG0pfHwobT1vWzNdPW5ldyBfZSksbS54PS1uLngsbS55PS1uLnksbS56PS1uLnosbS53PS1hLmRvdChhLm5lZ2F0ZShuLHdfKSxkKSxtPW9bNF0saChtKXx8KG09b1s0XT1uZXcgX2UpLG0ueD1lLngsbS55PWUueSxtLno9ZS56LG0udz0tYS5kb3QoZSxwKSxhLm11bHRpcGx5QnlTY2FsYXIoZSxjLGQpLGEuYWRkKHQsZCxkKSxtPW9bNV0saChtKXx8KG09b1s1XT1uZXcgX2UpLG0ueD0tZS54LG0ueT0tZS55LG0uej0tZS56LG0udz0tYS5kb3QoYS5uZWdhdGUoZSx3XyksZCksdGhpcy5fY3VsbGluZ1ZvbHVtZX07bGkucHJvdG90eXBlLmdldFBpeGVsRGltZW5zaW9ucz1mdW5jdGlvbih0LGUsbixvLHIpe2lmKF9PKHRoaXMpLCFoKHQpfHwhaChlKSl0aHJvdyBuZXcgQigiQm90aCBkcmF3aW5nQnVmZmVyV2lkdGggYW5kIGRyYXdpbmdCdWZmZXJIZWlnaHQgYXJlIHJlcXVpcmVkLiIpO2lmKHQ8PTApdGhyb3cgbmV3IEIoImRyYXdpbmdCdWZmZXJXaWR0aCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO2lmKGU8PTApdGhyb3cgbmV3IEIoImRyYXdpbmdCdWZmZXJIZWlnaHQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKTtpZighaChuKSl0aHJvdyBuZXcgQigiZGlzdGFuY2UgaXMgcmVxdWlyZWQuIik7aWYoIWgobykpdGhyb3cgbmV3IEIoInBpeGVsUmF0aW8gaXMgcmVxdWlyZWQuIik7aWYobzw9MCl0aHJvdyBuZXcgQigicGl4ZWxSYXRpbyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO2lmKCFoKHIpKXRocm93IG5ldyBCKCJBIHJlc3VsdCBvYmplY3QgaXMgcmVxdWlyZWQuIik7bGV0IGk9dGhpcy5yaWdodC10aGlzLmxlZnQscz10aGlzLnRvcC10aGlzLmJvdHRvbSxmPW8qaS90LHU9bypzL2U7cmV0dXJuIHIueD1mLHIueT11LHJ9O2xpLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KXx8KHQ9bmV3IGxpKSx0LmxlZnQ9dGhpcy5sZWZ0LHQucmlnaHQ9dGhpcy5yaWdodCx0LnRvcD10aGlzLnRvcCx0LmJvdHRvbT10aGlzLmJvdHRvbSx0Lm5lYXI9dGhpcy5uZWFyLHQuZmFyPXRoaXMuZmFyLHQuX2xlZnQ9dm9pZCAwLHQuX3JpZ2h0PXZvaWQgMCx0Ll90b3A9dm9pZCAwLHQuX2JvdHRvbT12b2lkIDAsdC5fbmVhcj12b2lkIDAsdC5fZmFyPXZvaWQgMCx0fTtsaS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBoKHQpJiZ0IGluc3RhbmNlb2YgbGkmJnRoaXMucmlnaHQ9PT10LnJpZ2h0JiZ0aGlzLmxlZnQ9PT10LmxlZnQmJnRoaXMudG9wPT09dC50b3AmJnRoaXMuYm90dG9tPT09dC5ib3R0b20mJnRoaXMubmVhcj09PXQubmVhciYmdGhpcy5mYXI9PT10LmZhcn07bGkucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PT09dGhpc3x8aCh0KSYmdCBpbnN0YW5jZW9mIGxpJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5yaWdodCx0LnJpZ2h0LGUsbikmJk0uZXF1YWxzRXBzaWxvbih0aGlzLmxlZnQsdC5sZWZ0LGUsbikmJk0uZXF1YWxzRXBzaWxvbih0aGlzLnRvcCx0LnRvcCxlLG4pJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5ib3R0b20sdC5ib3R0b20sZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMubmVhcix0Lm5lYXIsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMuZmFyLHQuZmFyLGUsbil9O3lPPWxpfSk7ZnVuY3Rpb24gbnIodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHRoaXMuX29mZkNlbnRlckZydXN0dW09bmV3IHlPLHRoaXMud2lkdGg9dC53aWR0aCx0aGlzLl93aWR0aD12b2lkIDAsdGhpcy5hc3BlY3RSYXRpbz10LmFzcGVjdFJhdGlvLHRoaXMuX2FzcGVjdFJhdGlvPXZvaWQgMCx0aGlzLm5lYXI9eCh0Lm5lYXIsMSksdGhpcy5fbmVhcj10aGlzLm5lYXIsdGhpcy5mYXI9eCh0LmZhciw1ZTgpLHRoaXMuX2Zhcj10aGlzLmZhcn1mdW5jdGlvbiBncyh0KXtpZighaCh0LndpZHRoKXx8IWgodC5hc3BlY3RSYXRpbyl8fCFoKHQubmVhcil8fCFoKHQuZmFyKSl0aHJvdyBuZXcgQigid2lkdGgsIGFzcGVjdFJhdGlvLCBuZWFyLCBvciBmYXIgcGFyYW1ldGVycyBhcmUgbm90IHNldC4iKTtsZXQgZT10Ll9vZmZDZW50ZXJGcnVzdHVtO2lmKHQud2lkdGghPT10Ll93aWR0aHx8dC5hc3BlY3RSYXRpbyE9PXQuX2FzcGVjdFJhdGlvfHx0Lm5lYXIhPT10Ll9uZWFyfHx0LmZhciE9PXQuX2Zhcil7aWYodC5hc3BlY3RSYXRpbzwwKXRocm93IG5ldyBCKCJhc3BlY3RSYXRpbyBtdXN0IGJlIHBvc2l0aXZlLiIpO2lmKHQubmVhcjwwfHx0Lm5lYXI+dC5mYXIpdGhyb3cgbmV3IEIoIm5lYXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIGZhci4iKTt0Ll9hc3BlY3RSYXRpbz10LmFzcGVjdFJhdGlvLHQuX3dpZHRoPXQud2lkdGgsdC5fbmVhcj10Lm5lYXIsdC5fZmFyPXQuZmFyO2xldCBuPTEvdC5hc3BlY3RSYXRpbztlLnJpZ2h0PXQud2lkdGgqLjUsZS5sZWZ0PS1lLnJpZ2h0LGUudG9wPW4qZS5yaWdodCxlLmJvdHRvbT0tZS50b3AsZS5uZWFyPXQubmVhcixlLmZhcj10LmZhcn19dmFyIFBvLFRfPVooKCk9PntZdCgpO0l0KCk7YXQoKTtIdCgpO1d0KCk7Z08oKTtuci5wYWNrZWRMZW5ndGg9NDtuci5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQud2lkdGgsZVtuKytdPXQuYXNwZWN0UmF0aW8sZVtuKytdPXQubmVhcixlW25dPXQuZmFyLGV9O25yLnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyBuciksbi53aWR0aD10W2UrK10sbi5hc3BlY3RSYXRpbz10W2UrK10sbi5uZWFyPXRbZSsrXSxuLmZhcj10W2VdLG59O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5yLnByb3RvdHlwZSx7cHJvamVjdGlvbk1hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGdzKHRoaXMpLHRoaXMuX29mZkNlbnRlckZydXN0dW0ucHJvamVjdGlvbk1hdHJpeH19LG9mZkNlbnRlckZydXN0dW06e2dldDpmdW5jdGlvbigpe3JldHVybiBncyh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtfX19KTtuci5wcm90b3R5cGUuY29tcHV0ZUN1bGxpbmdWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBncyh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmNvbXB1dGVDdWxsaW5nVm9sdW1lKHQsZSxuKX07bnIucHJvdG90eXBlLmdldFBpeGVsRGltZW5zaW9ucz1mdW5jdGlvbih0LGUsbixvLHIpe3JldHVybiBncyh0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmdldFBpeGVsRGltZW5zaW9ucyh0LGUsbixvLHIpfTtuci5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGgodCl8fCh0PW5ldyBuciksdC5hc3BlY3RSYXRpbz10aGlzLmFzcGVjdFJhdGlvLHQud2lkdGg9dGhpcy53aWR0aCx0Lm5lYXI9dGhpcy5uZWFyLHQuZmFyPXRoaXMuZmFyLHQuX2FzcGVjdFJhdGlvPXZvaWQgMCx0Ll93aWR0aD12b2lkIDAsdC5fbmVhcj12b2lkIDAsdC5fZmFyPXZvaWQgMCx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmNsb25lKHQuX29mZkNlbnRlckZydXN0dW0pLHR9O25yLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIWgodCl8fCEodCBpbnN0YW5jZW9mIG5yKT8hMTooZ3ModGhpcyksZ3ModCksdGhpcy53aWR0aD09PXQud2lkdGgmJnRoaXMuYXNwZWN0UmF0aW89PT10LmFzcGVjdFJhdGlvJiZ0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmVxdWFscyh0Ll9vZmZDZW50ZXJGcnVzdHVtKSl9O25yLnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4haCh0KXx8ISh0IGluc3RhbmNlb2YgbnIpPyExOihncyh0aGlzKSxncyh0KSxNLmVxdWFsc0Vwc2lsb24odGhpcy53aWR0aCx0LndpZHRoLGUsbikmJk0uZXF1YWxzRXBzaWxvbih0aGlzLmFzcGVjdFJhdGlvLHQuYXNwZWN0UmF0aW8sZSxuKSYmdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5lcXVhbHNFcHNpbG9uKHQuX29mZkNlbnRlckZydXN0dW0sZSxuKSl9O1BvPW5yfSk7ZnVuY3Rpb24gcGkodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHRoaXMubGVmdD10LmxlZnQsdGhpcy5fbGVmdD12b2lkIDAsdGhpcy5yaWdodD10LnJpZ2h0LHRoaXMuX3JpZ2h0PXZvaWQgMCx0aGlzLnRvcD10LnRvcCx0aGlzLl90b3A9dm9pZCAwLHRoaXMuYm90dG9tPXQuYm90dG9tLHRoaXMuX2JvdHRvbT12b2lkIDAsdGhpcy5uZWFyPXgodC5uZWFyLDEpLHRoaXMuX25lYXI9dGhpcy5uZWFyLHRoaXMuZmFyPXgodC5mYXIsNWU4KSx0aGlzLl9mYXI9dGhpcy5mYXIsdGhpcy5fY3VsbGluZ1ZvbHVtZT1uZXcgVGQsdGhpcy5fcGVyc3BlY3RpdmVNYXRyaXg9bmV3IHN0LHRoaXMuX2luZmluaXRlUGVyc3BlY3RpdmU9bmV3IHN0fWZ1bmN0aW9uIE9fKHQpe2lmKCFoKHQucmlnaHQpfHwhaCh0LmxlZnQpfHwhaCh0LnRvcCl8fCFoKHQuYm90dG9tKXx8IWgodC5uZWFyKXx8IWgodC5mYXIpKXRocm93IG5ldyBCKCJyaWdodCwgbGVmdCwgdG9wLCBib3R0b20sIG5lYXIsIG9yIGZhciBwYXJhbWV0ZXJzIGFyZSBub3Qgc2V0LiIpO2xldCBlPXQudG9wLG49dC5ib3R0b20sbz10LnJpZ2h0LHI9dC5sZWZ0LGk9dC5uZWFyLHM9dC5mYXI7aWYoZSE9PXQuX3RvcHx8biE9PXQuX2JvdHRvbXx8ciE9PXQuX2xlZnR8fG8hPT10Ll9yaWdodHx8aSE9PXQuX25lYXJ8fHMhPT10Ll9mYXIpe2lmKHQubmVhcjw9MHx8dC5uZWFyPnQuZmFyKXRocm93IG5ldyBCKCJuZWFyIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gYW5kIGxlc3MgdGhhbiBmYXIuIik7dC5fbGVmdD1yLHQuX3JpZ2h0PW8sdC5fdG9wPWUsdC5fYm90dG9tPW4sdC5fbmVhcj1pLHQuX2Zhcj1zLHQuX3BlcnNwZWN0aXZlTWF0cml4PXN0LmNvbXB1dGVQZXJzcGVjdGl2ZU9mZkNlbnRlcihyLG8sbixlLGkscyx0Ll9wZXJzcGVjdGl2ZU1hdHJpeCksdC5faW5maW5pdGVQZXJzcGVjdGl2ZT1zdC5jb21wdXRlSW5maW5pdGVQZXJzcGVjdGl2ZU9mZkNlbnRlcihyLG8sbixlLGksdC5faW5maW5pdGVQZXJzcGVjdGl2ZSl9fXZhciBTRCxDRCx4RCxQRCxBTyxiTz1aKCgpPT57VXQoKTtocigpO2JfKCk7SXQoKTthdCgpO0h0KCk7V3QoKTtrbigpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHBpLnByb3RvdHlwZSx7cHJvamVjdGlvbk1hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9fKHRoaXMpLHRoaXMuX3BlcnNwZWN0aXZlTWF0cml4fX0saW5maW5pdGVQcm9qZWN0aW9uTWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT18odGhpcyksdGhpcy5faW5maW5pdGVQZXJzcGVjdGl2ZX19fSk7U0Q9bmV3IGEsQ0Q9bmV3IGEseEQ9bmV3IGEsUEQ9bmV3IGE7cGkucHJvdG90eXBlLmNvbXB1dGVDdWxsaW5nVm9sdW1lPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigicG9zaXRpb24gaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImRpcmVjdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigidXAgaXMgcmVxdWlyZWQuIik7bGV0IG89dGhpcy5fY3VsbGluZ1ZvbHVtZS5wbGFuZXMscj10aGlzLnRvcCxpPXRoaXMuYm90dG9tLHM9dGhpcy5yaWdodCxmPXRoaXMubGVmdCx1PXRoaXMubmVhcixjPXRoaXMuZmFyLGw9YS5jcm9zcyhlLG4sU0QpLHA9Q0Q7YS5tdWx0aXBseUJ5U2NhbGFyKGUsdSxwKSxhLmFkZCh0LHAscCk7bGV0IGQ9eEQ7YS5tdWx0aXBseUJ5U2NhbGFyKGUsYyxkKSxhLmFkZCh0LGQsZCk7bGV0IG09UEQ7YS5tdWx0aXBseUJ5U2NhbGFyKGwsZixtKSxhLmFkZChwLG0sbSksYS5zdWJ0cmFjdChtLHQsbSksYS5ub3JtYWxpemUobSxtKSxhLmNyb3NzKG0sbixtKSxhLm5vcm1hbGl6ZShtLG0pO2xldCBfPW9bMF07cmV0dXJuIGgoXyl8fChfPW9bMF09bmV3IF9lKSxfLng9bS54LF8ueT1tLnksXy56PW0ueixfLnc9LWEuZG90KG0sdCksYS5tdWx0aXBseUJ5U2NhbGFyKGwscyxtKSxhLmFkZChwLG0sbSksYS5zdWJ0cmFjdChtLHQsbSksYS5jcm9zcyhuLG0sbSksYS5ub3JtYWxpemUobSxtKSxfPW9bMV0saChfKXx8KF89b1sxXT1uZXcgX2UpLF8ueD1tLngsXy55PW0ueSxfLno9bS56LF8udz0tYS5kb3QobSx0KSxhLm11bHRpcGx5QnlTY2FsYXIobixpLG0pLGEuYWRkKHAsbSxtKSxhLnN1YnRyYWN0KG0sdCxtKSxhLmNyb3NzKGwsbSxtKSxhLm5vcm1hbGl6ZShtLG0pLF89b1syXSxoKF8pfHwoXz1vWzJdPW5ldyBfZSksXy54PW0ueCxfLnk9bS55LF8uej1tLnosXy53PS1hLmRvdChtLHQpLGEubXVsdGlwbHlCeVNjYWxhcihuLHIsbSksYS5hZGQocCxtLG0pLGEuc3VidHJhY3QobSx0LG0pLGEuY3Jvc3MobSxsLG0pLGEubm9ybWFsaXplKG0sbSksXz1vWzNdLGgoXyl8fChfPW9bM109bmV3IF9lKSxfLng9bS54LF8ueT1tLnksXy56PW0ueixfLnc9LWEuZG90KG0sdCksXz1vWzRdLGgoXyl8fChfPW9bNF09bmV3IF9lKSxfLng9ZS54LF8ueT1lLnksXy56PWUueixfLnc9LWEuZG90KGUscCksYS5uZWdhdGUoZSxtKSxfPW9bNV0saChfKXx8KF89b1s1XT1uZXcgX2UpLF8ueD1tLngsXy55PW0ueSxfLno9bS56LF8udz0tYS5kb3QobSxkKSx0aGlzLl9jdWxsaW5nVm9sdW1lfTtwaS5wcm90b3R5cGUuZ2V0UGl4ZWxEaW1lbnNpb25zPWZ1bmN0aW9uKHQsZSxuLG8scil7aWYoT18odGhpcyksIWgodCl8fCFoKGUpKXRocm93IG5ldyBCKCJCb3RoIGRyYXdpbmdCdWZmZXJXaWR0aCBhbmQgZHJhd2luZ0J1ZmZlckhlaWdodCBhcmUgcmVxdWlyZWQuIik7aWYodDw9MCl0aHJvdyBuZXcgQigiZHJhd2luZ0J1ZmZlcldpZHRoIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7aWYoZTw9MCl0aHJvdyBuZXcgQigiZHJhd2luZ0J1ZmZlckhlaWdodCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJkaXN0YW5jZSBpcyByZXF1aXJlZC4iKTtpZighaChvKSl0aHJvdyBuZXcgQigicGl4ZWxSYXRpbyBpcyByZXF1aXJlZCIpO2lmKG88PTApdGhyb3cgbmV3IEIoInBpeGVsUmF0aW8gbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKTtpZighaChyKSl0aHJvdyBuZXcgQigiQSByZXN1bHQgb2JqZWN0IGlzIHJlcXVpcmVkLiIpO2xldCBpPTEvdGhpcy5uZWFyLHM9dGhpcy50b3AqaSxmPTIqbypuKnMvZTtzPXRoaXMucmlnaHQqaTtsZXQgdT0yKm8qbipzL3Q7cmV0dXJuIHIueD11LHIueT1mLHJ9O3BpLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KXx8KHQ9bmV3IHBpKSx0LnJpZ2h0PXRoaXMucmlnaHQsdC5sZWZ0PXRoaXMubGVmdCx0LnRvcD10aGlzLnRvcCx0LmJvdHRvbT10aGlzLmJvdHRvbSx0Lm5lYXI9dGhpcy5uZWFyLHQuZmFyPXRoaXMuZmFyLHQuX2xlZnQ9dm9pZCAwLHQuX3JpZ2h0PXZvaWQgMCx0Ll90b3A9dm9pZCAwLHQuX2JvdHRvbT12b2lkIDAsdC5fbmVhcj12b2lkIDAsdC5fZmFyPXZvaWQgMCx0fTtwaS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBoKHQpJiZ0IGluc3RhbmNlb2YgcGkmJnRoaXMucmlnaHQ9PT10LnJpZ2h0JiZ0aGlzLmxlZnQ9PT10LmxlZnQmJnRoaXMudG9wPT09dC50b3AmJnRoaXMuYm90dG9tPT09dC5ib3R0b20mJnRoaXMubmVhcj09PXQubmVhciYmdGhpcy5mYXI9PT10LmZhcn07cGkucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PT09dGhpc3x8aCh0KSYmdCBpbnN0YW5jZW9mIHBpJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5yaWdodCx0LnJpZ2h0LGUsbikmJk0uZXF1YWxzRXBzaWxvbih0aGlzLmxlZnQsdC5sZWZ0LGUsbikmJk0uZXF1YWxzRXBzaWxvbih0aGlzLnRvcCx0LnRvcCxlLG4pJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5ib3R0b20sdC5ib3R0b20sZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMubmVhcix0Lm5lYXIsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMuZmFyLHQuZmFyLGUsbil9O0FPPXBpfSk7ZnVuY3Rpb24gb3IodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHRoaXMuX29mZkNlbnRlckZydXN0dW09bmV3IEFPLHRoaXMuZm92PXQuZm92LHRoaXMuX2Zvdj12b2lkIDAsdGhpcy5fZm92eT12b2lkIDAsdGhpcy5fc3NlRGVub21pbmF0b3I9dm9pZCAwLHRoaXMuYXNwZWN0UmF0aW89dC5hc3BlY3RSYXRpbyx0aGlzLl9hc3BlY3RSYXRpbz12b2lkIDAsdGhpcy5uZWFyPXgodC5uZWFyLDEpLHRoaXMuX25lYXI9dGhpcy5uZWFyLHRoaXMuZmFyPXgodC5mYXIsNWU4KSx0aGlzLl9mYXI9dGhpcy5mYXIsdGhpcy54T2Zmc2V0PXgodC54T2Zmc2V0LDApLHRoaXMuX3hPZmZzZXQ9dGhpcy54T2Zmc2V0LHRoaXMueU9mZnNldD14KHQueU9mZnNldCwwKSx0aGlzLl95T2Zmc2V0PXRoaXMueU9mZnNldH1mdW5jdGlvbiBYcih0KXtpZighaCh0LmZvdil8fCFoKHQuYXNwZWN0UmF0aW8pfHwhaCh0Lm5lYXIpfHwhaCh0LmZhcikpdGhyb3cgbmV3IEIoImZvdiwgYXNwZWN0UmF0aW8sIG5lYXIsIG9yIGZhciBwYXJhbWV0ZXJzIGFyZSBub3Qgc2V0LiIpO2xldCBlPXQuX29mZkNlbnRlckZydXN0dW07aWYodC5mb3YhPT10Ll9mb3Z8fHQuYXNwZWN0UmF0aW8hPT10Ll9hc3BlY3RSYXRpb3x8dC5uZWFyIT09dC5fbmVhcnx8dC5mYXIhPT10Ll9mYXJ8fHQueE9mZnNldCE9PXQuX3hPZmZzZXR8fHQueU9mZnNldCE9PXQuX3lPZmZzZXQpe2lmKHQuZm92PDB8fHQuZm92Pj1NYXRoLlBJKXRocm93IG5ldyBCKCJmb3YgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgWzAsIFBJKS4iKTtpZih0LmFzcGVjdFJhdGlvPDApdGhyb3cgbmV3IEIoImFzcGVjdFJhdGlvIG11c3QgYmUgcG9zaXRpdmUuIik7aWYodC5uZWFyPDB8fHQubmVhcj50LmZhcil0aHJvdyBuZXcgQigibmVhciBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBsZXNzIHRoYW4gZmFyLiIpO3QuX2FzcGVjdFJhdGlvPXQuYXNwZWN0UmF0aW8sdC5fZm92PXQuZm92LHQuX2Zvdnk9dC5hc3BlY3RSYXRpbzw9MT90LmZvdjpNYXRoLmF0YW4oTWF0aC50YW4odC5mb3YqLjUpL3QuYXNwZWN0UmF0aW8pKjIsdC5fbmVhcj10Lm5lYXIsdC5fZmFyPXQuZmFyLHQuX3NzZURlbm9taW5hdG9yPTIqTWF0aC50YW4oLjUqdC5fZm92eSksdC5feE9mZnNldD10LnhPZmZzZXQsdC5feU9mZnNldD10LnlPZmZzZXQsZS50b3A9dC5uZWFyKk1hdGgudGFuKC41KnQuX2ZvdnkpLGUuYm90dG9tPS1lLnRvcCxlLnJpZ2h0PXQuYXNwZWN0UmF0aW8qZS50b3AsZS5sZWZ0PS1lLnJpZ2h0LGUubmVhcj10Lm5lYXIsZS5mYXI9dC5mYXIsZS5yaWdodCs9dC54T2Zmc2V0LGUubGVmdCs9dC54T2Zmc2V0LGUudG9wKz10LnlPZmZzZXQsZS5ib3R0b20rPXQueU9mZnNldH19dmFyIE1vLEVfPVooKCk9PntZdCgpO0l0KCk7YXQoKTtIdCgpO1d0KCk7Yk8oKTtvci5wYWNrZWRMZW5ndGg9Njtvci5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQuZm92LGVbbisrXT10LmFzcGVjdFJhdGlvLGVbbisrXT10Lm5lYXIsZVtuKytdPXQuZmFyLGVbbisrXT10LnhPZmZzZXQsZVtuXT10LnlPZmZzZXQsZX07b3IudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IG9yKSxuLmZvdj10W2UrK10sbi5hc3BlY3RSYXRpbz10W2UrK10sbi5uZWFyPXRbZSsrXSxuLmZhcj10W2UrK10sbi54T2Zmc2V0PXRbZSsrXSxuLnlPZmZzZXQ9dFtlXSxufTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvci5wcm90b3R5cGUse3Byb2plY3Rpb25NYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiBYcih0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLnByb2plY3Rpb25NYXRyaXh9fSxpbmZpbml0ZVByb2plY3Rpb25NYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiBYcih0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmluZmluaXRlUHJvamVjdGlvbk1hdHJpeH19LGZvdnk6e2dldDpmdW5jdGlvbigpe3JldHVybiBYcih0aGlzKSx0aGlzLl9mb3Z5fX0sc3NlRGVub21pbmF0b3I6e2dldDpmdW5jdGlvbigpe3JldHVybiBYcih0aGlzKSx0aGlzLl9zc2VEZW5vbWluYXRvcn19LG9mZkNlbnRlckZydXN0dW06e2dldDpmdW5jdGlvbigpe3JldHVybiBYcih0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtfX19KTtvci5wcm90b3R5cGUuY29tcHV0ZUN1bGxpbmdWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBYcih0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmNvbXB1dGVDdWxsaW5nVm9sdW1lKHQsZSxuKX07b3IucHJvdG90eXBlLmdldFBpeGVsRGltZW5zaW9ucz1mdW5jdGlvbih0LGUsbixvLHIpe3JldHVybiBYcih0aGlzKSx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmdldFBpeGVsRGltZW5zaW9ucyh0LGUsbixvLHIpfTtvci5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGgodCl8fCh0PW5ldyBvciksdC5hc3BlY3RSYXRpbz10aGlzLmFzcGVjdFJhdGlvLHQuZm92PXRoaXMuZm92LHQubmVhcj10aGlzLm5lYXIsdC5mYXI9dGhpcy5mYXIsdC5fYXNwZWN0UmF0aW89dm9pZCAwLHQuX2Zvdj12b2lkIDAsdC5fbmVhcj12b2lkIDAsdC5fZmFyPXZvaWQgMCx0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmNsb25lKHQuX29mZkNlbnRlckZydXN0dW0pLHR9O29yLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIWgodCl8fCEodCBpbnN0YW5jZW9mIG9yKT8hMTooWHIodGhpcyksWHIodCksdGhpcy5mb3Y9PT10LmZvdiYmdGhpcy5hc3BlY3RSYXRpbz09PXQuYXNwZWN0UmF0aW8mJnRoaXMuX29mZkNlbnRlckZydXN0dW0uZXF1YWxzKHQuX29mZkNlbnRlckZydXN0dW0pKX07b3IucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiFoKHQpfHwhKHQgaW5zdGFuY2VvZiBvcik/ITE6KFhyKHRoaXMpLFhyKHQpLE0uZXF1YWxzRXBzaWxvbih0aGlzLmZvdix0LmZvdixlLG4pJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5hc3BlY3RSYXRpbyx0LmFzcGVjdFJhdGlvLGUsbikmJnRoaXMuX29mZkNlbnRlckZydXN0dW0uZXF1YWxzRXBzaWxvbih0Ll9vZmZDZW50ZXJGcnVzdHVtLGUsbikpfTtNbz1vcn0pO2Z1bmN0aW9uIEFjKHQpe3kudHlwZU9mLm9iamVjdCgib3B0aW9ucyIsdCkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLmZydXN0dW0iLHQuZnJ1c3R1bSkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLm9yaWdpbiIsdC5vcmlnaW4pLHkudHlwZU9mLm9iamVjdCgib3B0aW9ucy5vcmllbnRhdGlvbiIsdC5vcmllbnRhdGlvbik7bGV0IGU9dC5mcnVzdHVtLG49dC5vcmllbnRhdGlvbixvPXQub3JpZ2luLHI9eCh0LnZlcnRleEZvcm1hdCxsdC5ERUZBVUxUKSxpPXgodC5fZHJhd05lYXJQbGFuZSwhMCkscyxmO2UgaW5zdGFuY2VvZiBNbz8ocz1PZCxmPU1vLnBhY2tlZExlbmd0aCk6ZSBpbnN0YW5jZW9mIFBvJiYocz1NRCxmPVBvLnBhY2tlZExlbmd0aCksdGhpcy5fZnJ1c3R1bVR5cGU9cyx0aGlzLl9mcnVzdHVtPWUuY2xvbmUoKSx0aGlzLl9vcmlnaW49YS5jbG9uZShvKSx0aGlzLl9vcmllbnRhdGlvbj1uZS5jbG9uZShuKSx0aGlzLl9kcmF3TmVhclBsYW5lPWksdGhpcy5fdmVydGV4Rm9ybWF0PXIsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlRnJ1c3R1bUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD0yK2YrYS5wYWNrZWRMZW5ndGgrbmUucGFja2VkTGVuZ3RoK2x0LnBhY2tlZExlbmd0aH1mdW5jdGlvbiBTYSh0LGUsbixvLHIsaSxzLGYpe2xldCB1PXQvMyoyO2ZvcihsZXQgYz0wO2M8NDsrK2MpaChlKSYmKGVbdF09aS54LGVbdCsxXT1pLnksZVt0KzJdPWkueiksaChuKSYmKG5bdF09cy54LG5bdCsxXT1zLnksblt0KzJdPXMueiksaChvKSYmKG9bdF09Zi54LG9bdCsxXT1mLnksb1t0KzJdPWYueiksdCs9MztyW3VdPTAsclt1KzFdPTAsclt1KzJdPTEsclt1KzNdPTAsclt1KzRdPTEsclt1KzVdPTEsclt1KzZdPTAsclt1KzddPTF9dmFyIE9kLE1ELE5ELElELHZELERELExELEZELEJELFJfLHdPLFRPLE9PLFVELFZELGtELEFzLEtmLEVPLFdmLFNfPVooKCk9PntQZSgpO1V0KCk7aHIoKTtZdCgpO0RlKCk7SXQoKTthdCgpO1hlKCk7WWUoKTthbigpO0ZuKCk7a24oKTtUXygpO0VfKCk7dG4oKTskbygpO1JvKCk7T2Q9MCxNRD0xO0FjLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApO2xldCBvPXQuX2ZydXN0dW1UeXBlLHI9dC5fZnJ1c3R1bTtyZXR1cm4gZVtuKytdPW8sbz09PU9kPyhNby5wYWNrKHIsZSxuKSxuKz1Nby5wYWNrZWRMZW5ndGgpOihQby5wYWNrKHIsZSxuKSxuKz1Qby5wYWNrZWRMZW5ndGgpLGEucGFjayh0Ll9vcmlnaW4sZSxuKSxuKz1hLnBhY2tlZExlbmd0aCxuZS5wYWNrKHQuX29yaWVudGF0aW9uLGUsbiksbis9bmUucGFja2VkTGVuZ3RoLGx0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9bHQucGFja2VkTGVuZ3RoLGVbbl09dC5fZHJhd05lYXJQbGFuZT8xOjAsZX07TkQ9bmV3IE1vLElEPW5ldyBQbyx2RD1uZXcgbmUsREQ9bmV3IGEsTEQ9bmV3IGx0O0FjLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89dFtlKytdLHI7bz09PU9kPyhyPU1vLnVucGFjayh0LGUsTkQpLGUrPU1vLnBhY2tlZExlbmd0aCk6KHI9UG8udW5wYWNrKHQsZSxJRCksZSs9UG8ucGFja2VkTGVuZ3RoKTtsZXQgaT1hLnVucGFjayh0LGUsREQpO2UrPWEucGFja2VkTGVuZ3RoO2xldCBzPW5lLnVucGFjayh0LGUsdkQpO2UrPW5lLnBhY2tlZExlbmd0aDtsZXQgZj1sdC51bnBhY2sodCxlLExEKTtlKz1sdC5wYWNrZWRMZW5ndGg7bGV0IHU9dFtlXT09PTE7aWYoIWgobikpcmV0dXJuIG5ldyBBYyh7ZnJ1c3R1bTpyLG9yaWdpbjppLG9yaWVudGF0aW9uOnMsdmVydGV4Rm9ybWF0OmYsX2RyYXdOZWFyUGxhbmU6dX0pO2xldCBjPW89PT1uLl9mcnVzdHVtVHlwZT9uLl9mcnVzdHVtOnZvaWQgMDtyZXR1cm4gbi5fZnJ1c3R1bT1yLmNsb25lKGMpLG4uX2ZydXN0dW1UeXBlPW8sbi5fb3JpZ2luPWEuY2xvbmUoaSxuLl9vcmlnaW4pLG4uX29yaWVudGF0aW9uPW5lLmNsb25lKHMsbi5fb3JpZW50YXRpb24pLG4uX3ZlcnRleEZvcm1hdD1sdC5jbG9uZShmLG4uX3ZlcnRleEZvcm1hdCksbi5fZHJhd05lYXJQbGFuZT11LG59O0ZEPW5ldyB0dCxCRD1uZXcgc3QsUl89bmV3IHN0LHdPPW5ldyBhLFRPPW5ldyBhLE9PPW5ldyBhLFVEPW5ldyBhLFZEPW5ldyBhLGtEPW5ldyBhLEFzPW5ldyBBcnJheSgzKSxLZj1uZXcgQXJyYXkoNCk7S2ZbMF09bmV3IF9lKC0xLC0xLDEsMSk7S2ZbMV09bmV3IF9lKDEsLTEsMSwxKTtLZlsyXT1uZXcgX2UoMSwxLDEsMSk7S2ZbM109bmV3IF9lKC0xLDEsMSwxKTtFTz1uZXcgQXJyYXkoNCk7Zm9yKGxldCB0PTA7dDw0OysrdClFT1t0XT1uZXcgX2U7QWMuX2NvbXB1dGVOZWFyRmFyUGxhbmVzPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMsZil7bGV0IHU9dHQuZnJvbVF1YXRlcm5pb24oZSxGRCksYz14KGksd08pLGw9eChzLFRPKSxwPXgoZixPTyk7Yz10dC5nZXRDb2x1bW4odSwwLGMpLGw9dHQuZ2V0Q29sdW1uKHUsMSxsKSxwPXR0LmdldENvbHVtbih1LDIscCksYS5ub3JtYWxpemUoYyxjKSxhLm5vcm1hbGl6ZShsLGwpLGEubm9ybWFsaXplKHAscCksYS5uZWdhdGUoYyxjKTtsZXQgZD1zdC5jb21wdXRlVmlldyh0LHAsbCxjLEJEKSxtLF8sZz1vLnByb2plY3Rpb25NYXRyaXg7aWYobj09PU9kKXtsZXQgYj1zdC5tdWx0aXBseShnLGQsUl8pO189c3QuaW52ZXJzZShiLFJfKX1lbHNlIG09c3QuaW52ZXJzZVRyYW5zZm9ybWF0aW9uKGQsUl8pO2goXyk/KEFzWzBdPW8ubmVhcixBc1sxXT1vLmZhcik6KEFzWzBdPTAsQXNbMV09by5uZWFyLEFzWzJdPW8uZmFyKTtmb3IobGV0IGI9MDtiPDI7KytiKWZvcihsZXQgTz0wO088NDsrK08pe2xldCBUPV9lLmNsb25lKEtmW09dLEVPW09dKTtpZihoKF8pKXtUPXN0Lm11bHRpcGx5QnlWZWN0b3IoXyxULFQpO2xldCBFPTEvVC53O2EubXVsdGlwbHlCeVNjYWxhcihULEUsVCksYS5zdWJ0cmFjdChULHQsVCksYS5ub3JtYWxpemUoVCxUKTtsZXQgdz1hLmRvdChwLFQpO2EubXVsdGlwbHlCeVNjYWxhcihULEFzW2JdL3csVCksYS5hZGQoVCx0LFQpfWVsc2V7bGV0IEU9by5vZmZDZW50ZXJGcnVzdHVtO2goRSkmJihvPUUpO2xldCB3PUFzW2JdLEM9QXNbYisxXTtULng9KFQueCooby5yaWdodC1vLmxlZnQpK28ubGVmdCtvLnJpZ2h0KSouNSxULnk9KFQueSooby50b3Atby5ib3R0b20pK28uYm90dG9tK28udG9wKSouNSxULno9KFQueioody1DKS13LUMpKi41LFQudz0xLHN0Lm11bHRpcGx5QnlWZWN0b3IobSxULFQpfXJbMTIqYitPKjNdPVQueCxyWzEyKmIrTyozKzFdPVQueSxyWzEyKmIrTyozKzJdPVQuen19O0FjLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX2ZydXN0dW1UeXBlLG49dC5fZnJ1c3R1bSxvPXQuX29yaWdpbixyPXQuX29yaWVudGF0aW9uLGk9dC5fZHJhd05lYXJQbGFuZSxzPXQuX3ZlcnRleEZvcm1hdCxmPWk/Njo1LHU9bmV3IEZsb2F0NjRBcnJheSgzKjQqNik7QWMuX2NvbXB1dGVOZWFyRmFyUGxhbmVzKG8scixlLG4sdSk7bGV0IGM9Myo0KjI7dVtjXT11WzMqNF0sdVtjKzFdPXVbMyo0KzFdLHVbYysyXT11WzMqNCsyXSx1W2MrM109dVswXSx1W2MrNF09dVsxXSx1W2MrNV09dVsyXSx1W2MrNl09dVszKjNdLHVbYys3XT11WzMqMysxXSx1W2MrOF09dVszKjMrMl0sdVtjKzldPXVbMyo3XSx1W2MrMTBdPXVbMyo3KzFdLHVbYysxMV09dVszKjcrMl0sYys9Myo0LHVbY109dVszKjVdLHVbYysxXT11WzMqNSsxXSx1W2MrMl09dVszKjUrMl0sdVtjKzNdPXVbM10sdVtjKzRdPXVbMysxXSx1W2MrNV09dVszKzJdLHVbYys2XT11WzBdLHVbYys3XT11WzFdLHVbYys4XT11WzJdLHVbYys5XT11WzMqNF0sdVtjKzEwXT11WzMqNCsxXSx1W2MrMTFdPXVbMyo0KzJdLGMrPTMqNCx1W2NdPXVbM10sdVtjKzFdPXVbMysxXSx1W2MrMl09dVszKzJdLHVbYyszXT11WzMqNV0sdVtjKzRdPXVbMyo1KzFdLHVbYys1XT11WzMqNSsyXSx1W2MrNl09dVszKjZdLHVbYys3XT11WzMqNisxXSx1W2MrOF09dVszKjYrMl0sdVtjKzldPXVbMyoyXSx1W2MrMTBdPXVbMyoyKzFdLHVbYysxMV09dVszKjIrMl0sYys9Myo0LHVbY109dVszKjJdLHVbYysxXT11WzMqMisxXSx1W2MrMl09dVszKjIrMl0sdVtjKzNdPXVbMyo2XSx1W2MrNF09dVszKjYrMV0sdVtjKzVdPXVbMyo2KzJdLHVbYys2XT11WzMqN10sdVtjKzddPXVbMyo3KzFdLHVbYys4XT11WzMqNysyXSx1W2MrOV09dVszKjNdLHVbYysxMF09dVszKjMrMV0sdVtjKzExXT11WzMqMysyXSxpfHwodT11LnN1YmFycmF5KDMqNCkpO2xldCBsPW5ldyByZSh7cG9zaXRpb246bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczp1fSl9KTtpZihoKHMubm9ybWFsKXx8aChzLnRhbmdlbnQpfHxoKHMuYml0YW5nZW50KXx8aChzLnN0KSl7bGV0IGQ9aChzLm5vcm1hbCk/bmV3IEZsb2F0MzJBcnJheSgxMipmKTp2b2lkIDAsbT1oKHMudGFuZ2VudCk/bmV3IEZsb2F0MzJBcnJheSgzKjQqZik6dm9pZCAwLF89aChzLmJpdGFuZ2VudCk/bmV3IEZsb2F0MzJBcnJheSgzKjQqZik6dm9pZCAwLGc9aChzLnN0KT9uZXcgRmxvYXQzMkFycmF5KDIqNCpmKTp2b2lkIDAsYj13TyxPPVRPLFQ9T08sRT1hLm5lZ2F0ZShiLFVEKSx3PWEubmVnYXRlKE8sVkQpLEM9YS5uZWdhdGUoVCxrRCk7Yz0wLGkmJihTYShjLGQsbSxfLGcsQyxiLE8pLGMrPTMqNCksU2EoYyxkLG0sXyxnLFQsRSxPKSxjKz0zKjQsU2EoYyxkLG0sXyxnLEUsQyxPKSxjKz0zKjQsU2EoYyxkLG0sXyxnLHcsQyxFKSxjKz0zKjQsU2EoYyxkLG0sXyxnLGIsVCxPKSxjKz0zKjQsU2EoYyxkLG0sXyxnLE8sVCxFKSxoKGQpJiYobC5ub3JtYWw9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmR9KSksaChtKSYmKGwudGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pKSxoKF8pJiYobC5iaXRhbmdlbnQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOl99KSksaChnKSYmKGwuc3Q9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOmd9KSl9bGV0IHA9bmV3IFVpbnQxNkFycmF5KDYqZik7Zm9yKGxldCBkPTA7ZDxmOysrZCl7bGV0IG09ZCo2LF89ZCo0O3BbbV09XyxwW20rMV09XysxLHBbbSsyXT1fKzIscFttKzNdPV8scFttKzRdPV8rMixwW20rNV09XyszfXJldHVybiBuZXcgRnQoe2F0dHJpYnV0ZXM6bCxpbmRpY2VzOnAscHJpbWl0aXZlVHlwZTpMdC5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6eXQuZnJvbVZlcnRpY2VzKHUpfSl9O1dmPUFjfSk7dmFyIENfPXt9O21lKENfLHtkZWZhdWx0OigpPT56RH0pO2Z1bmN0aW9uIEdEKHQsZSl7cmV0dXJuIGgoZSkmJih0PVdmLnVucGFjayh0LGUpKSxXZi5jcmVhdGVHZW9tZXRyeSh0KX12YXIgekQseF89WigoKT0+e2F0KCk7U18oKTt6RD1HRH0pO2Z1bmN0aW9uIFhmKHQpe3kudHlwZU9mLm9iamVjdCgib3B0aW9ucyIsdCkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLmZydXN0dW0iLHQuZnJ1c3R1bSkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLm9yaWdpbiIsdC5vcmlnaW4pLHkudHlwZU9mLm9iamVjdCgib3B0aW9ucy5vcmllbnRhdGlvbiIsdC5vcmllbnRhdGlvbik7bGV0IGU9dC5mcnVzdHVtLG49dC5vcmllbnRhdGlvbixvPXQub3JpZ2luLHI9eCh0Ll9kcmF3TmVhclBsYW5lLCEwKSxpLHM7ZSBpbnN0YW5jZW9mIE1vPyhpPVBfLHM9TW8ucGFja2VkTGVuZ3RoKTplIGluc3RhbmNlb2YgUG8mJihpPWpELHM9UG8ucGFja2VkTGVuZ3RoKSx0aGlzLl9mcnVzdHVtVHlwZT1pLHRoaXMuX2ZydXN0dW09ZS5jbG9uZSgpLHRoaXMuX29yaWdpbj1hLmNsb25lKG8pLHRoaXMuX29yaWVudGF0aW9uPW5lLmNsb25lKG4pLHRoaXMuX2RyYXdOZWFyUGxhbmU9cix0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVGcnVzdHVtT3V0bGluZUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD0yK3MrYS5wYWNrZWRMZW5ndGgrbmUucGFja2VkTGVuZ3RofXZhciBQXyxqRCxIRCxxRCxLRCxXRCxNXyxSTz1aKCgpPT57UGUoKTtVdCgpO1l0KCk7RGUoKTtJdCgpO2F0KCk7U18oKTtYZSgpO1llKCk7YW4oKTtUXygpO0VfKCk7dG4oKTskbygpO1BfPTAsakQ9MTtYZi5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKTtsZXQgbz10Ll9mcnVzdHVtVHlwZSxyPXQuX2ZydXN0dW07cmV0dXJuIGVbbisrXT1vLG89PT1QXz8oTW8ucGFjayhyLGUsbiksbis9TW8ucGFja2VkTGVuZ3RoKTooUG8ucGFjayhyLGUsbiksbis9UG8ucGFja2VkTGVuZ3RoKSxhLnBhY2sodC5fb3JpZ2luLGUsbiksbis9YS5wYWNrZWRMZW5ndGgsbmUucGFjayh0Ll9vcmllbnRhdGlvbixlLG4pLG4rPW5lLnBhY2tlZExlbmd0aCxlW25dPXQuX2RyYXdOZWFyUGxhbmU/MTowLGV9O0hEPW5ldyBNbyxxRD1uZXcgUG8sS0Q9bmV3IG5lLFdEPW5ldyBhO1hmLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89dFtlKytdLHI7bz09PVBfPyhyPU1vLnVucGFjayh0LGUsSEQpLGUrPU1vLnBhY2tlZExlbmd0aCk6KHI9UG8udW5wYWNrKHQsZSxxRCksZSs9UG8ucGFja2VkTGVuZ3RoKTtsZXQgaT1hLnVucGFjayh0LGUsV0QpO2UrPWEucGFja2VkTGVuZ3RoO2xldCBzPW5lLnVucGFjayh0LGUsS0QpO2UrPW5lLnBhY2tlZExlbmd0aDtsZXQgZj10W2VdPT09MTtpZighaChuKSlyZXR1cm4gbmV3IFhmKHtmcnVzdHVtOnIsb3JpZ2luOmksb3JpZW50YXRpb246cyxfZHJhd05lYXJQbGFuZTpmfSk7bGV0IHU9bz09PW4uX2ZydXN0dW1UeXBlP24uX2ZydXN0dW06dm9pZCAwO3JldHVybiBuLl9mcnVzdHVtPXIuY2xvbmUodSksbi5fZnJ1c3R1bVR5cGU9byxuLl9vcmlnaW49YS5jbG9uZShpLG4uX29yaWdpbiksbi5fb3JpZW50YXRpb249bmUuY2xvbmUocyxuLl9vcmllbnRhdGlvbiksbi5fZHJhd05lYXJQbGFuZT1mLG59O1hmLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX2ZydXN0dW1UeXBlLG49dC5fZnJ1c3R1bSxvPXQuX29yaWdpbixyPXQuX29yaWVudGF0aW9uLGk9dC5fZHJhd05lYXJQbGFuZSxzPW5ldyBGbG9hdDY0QXJyYXkoMyo0KjIpO1dmLl9jb21wdXRlTmVhckZhclBsYW5lcyhvLHIsZSxuLHMpO2xldCBmPW5ldyByZSh7cG9zaXRpb246bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpzfSl9KSx1LGMsbD1pPzI6MSxwPW5ldyBVaW50MTZBcnJheSg4KihsKzEpKSxkPWk/MDoxO2Zvcig7ZDwyOysrZCl1PWk/ZCo4OjAsYz1kKjQscFt1XT1jLHBbdSsxXT1jKzEscFt1KzJdPWMrMSxwW3UrM109YysyLHBbdSs0XT1jKzIscFt1KzVdPWMrMyxwW3UrNl09YyszLHBbdSs3XT1jO2ZvcihkPTA7ZDwyOysrZCl1PShsK2QpKjgsYz1kKjQscFt1XT1jLHBbdSsxXT1jKzQscFt1KzJdPWMrMSxwW3UrM109Yys1LHBbdSs0XT1jKzIscFt1KzVdPWMrNixwW3UrNl09YyszLHBbdSs3XT1jKzc7cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpmLGluZGljZXM6cCxwcmltaXRpdmVUeXBlOkx0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOnl0LmZyb21WZXJ0aWNlcyhzKX0pfTtNXz1YZn0pO3ZhciBOXz17fTttZShOXyx7ZGVmYXVsdDooKT0+WUR9KTtmdW5jdGlvbiBYRCh0LGUpe3JldHVybiBoKGUpJiYodD1NXy51bnBhY2sodCxlKSksTV8uY3JlYXRlR2VvbWV0cnkodCl9dmFyIFlELElfPVooKCk9PnthdCgpO1JPKCk7WUQ9WER9KTtmdW5jdGlvbiBicyh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5fZWxsaXBzb2lkPXgodC5lbGxpcHNvaWQsJC5XR1M4NCksdGhpcy5fcmVjdGFuZ2xlPXgodC5yZWN0YW5nbGUsUHQuTUFYX1ZBTFVFKSx0aGlzLl9wcm9qZWN0aW9uPW5ldyBRbih0aGlzLl9lbGxpcHNvaWQpLHRoaXMuX251bWJlck9mTGV2ZWxaZXJvVGlsZXNYPXgodC5udW1iZXJPZkxldmVsWmVyb1RpbGVzWCwyKSx0aGlzLl9udW1iZXJPZkxldmVsWmVyb1RpbGVzWT14KHQubnVtYmVyT2ZMZXZlbFplcm9UaWxlc1ksMSl9dmFyIFNPLENPPVooKCk9Pnt6ZSgpO1l0KCk7SXQoKTthdCgpO1p0KCk7UmkoKTtXdCgpO0FuKCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYnMucHJvdG90eXBlLHtlbGxpcHNvaWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGxpcHNvaWR9fSxyZWN0YW5nbGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWN0YW5nbGV9fSxwcm9qZWN0aW9uOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvamVjdGlvbn19fSk7YnMucHJvdG90eXBlLmdldE51bWJlck9mWFRpbGVzQXRMZXZlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbnVtYmVyT2ZMZXZlbFplcm9UaWxlc1g8PHR9O2JzLnByb3RvdHlwZS5nZXROdW1iZXJPZllUaWxlc0F0TGV2ZWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX251bWJlck9mTGV2ZWxaZXJvVGlsZXNZPDx0fTticy5wcm90b3R5cGUucmVjdGFuZ2xlVG9OYXRpdmVSZWN0YW5nbGU9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoInJlY3RhbmdsZSIsdCk7bGV0IG49TS50b0RlZ3JlZXModC53ZXN0KSxvPU0udG9EZWdyZWVzKHQuc291dGgpLHI9TS50b0RlZ3JlZXModC5lYXN0KSxpPU0udG9EZWdyZWVzKHQubm9ydGgpO3JldHVybiBoKGUpPyhlLndlc3Q9bixlLnNvdXRoPW8sZS5lYXN0PXIsZS5ub3J0aD1pLGUpOm5ldyBQdChuLG8scixpKX07YnMucHJvdG90eXBlLnRpbGVYWVRvTmF0aXZlUmVjdGFuZ2xlPWZ1bmN0aW9uKHQsZSxuLG8pe2xldCByPXRoaXMudGlsZVhZVG9SZWN0YW5nbGUodCxlLG4sbyk7cmV0dXJuIHIud2VzdD1NLnRvRGVncmVlcyhyLndlc3QpLHIuc291dGg9TS50b0RlZ3JlZXMoci5zb3V0aCksci5lYXN0PU0udG9EZWdyZWVzKHIuZWFzdCksci5ub3J0aD1NLnRvRGVncmVlcyhyLm5vcnRoKSxyfTticy5wcm90b3R5cGUudGlsZVhZVG9SZWN0YW5nbGU9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9dGhpcy5fcmVjdGFuZ2xlLGk9dGhpcy5nZXROdW1iZXJPZlhUaWxlc0F0TGV2ZWwobikscz10aGlzLmdldE51bWJlck9mWVRpbGVzQXRMZXZlbChuKSxmPXIud2lkdGgvaSx1PXQqZityLndlc3QsYz0odCsxKSpmK3Iud2VzdCxsPXIuaGVpZ2h0L3MscD1yLm5vcnRoLWUqbCxkPXIubm9ydGgtKGUrMSkqbDtyZXR1cm4gaChvKXx8KG89bmV3IFB0KHUsZCxjLHApKSxvLndlc3Q9dSxvLnNvdXRoPWQsby5lYXN0PWMsby5ub3J0aD1wLG99O2JzLnByb3RvdHlwZS5wb3NpdGlvblRvVGlsZVhZPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10aGlzLl9yZWN0YW5nbGU7aWYoIVB0LmNvbnRhaW5zKG8sdCkpcmV0dXJuO2xldCByPXRoaXMuZ2V0TnVtYmVyT2ZYVGlsZXNBdExldmVsKGUpLGk9dGhpcy5nZXROdW1iZXJPZllUaWxlc0F0TGV2ZWwoZSkscz1vLndpZHRoL3IsZj1vLmhlaWdodC9pLHU9dC5sb25naXR1ZGU7by5lYXN0PG8ud2VzdCYmKHUrPU0uVFdPX1BJKTtsZXQgYz0odS1vLndlc3QpL3N8MDtjPj1yJiYoYz1yLTEpO2xldCBsPShvLm5vcnRoLXQubGF0aXR1ZGUpL2Z8MDtyZXR1cm4gbD49aSYmKGw9aS0xKSxoKG4pPyhuLng9YyxuLnk9bCxuKTpuZXcgbnQoYyxsKX07U089YnN9KTtmdW5jdGlvbiBJTyh0KXtjdC5mcm9tUmFkaWFucyh0LmVhc3QsdC5ub3J0aCwwLFlmWzBdKSxjdC5mcm9tUmFkaWFucyh0Lndlc3QsdC5ub3J0aCwwLFlmWzFdKSxjdC5mcm9tUmFkaWFucyh0LmVhc3QsdC5zb3V0aCwwLFlmWzJdKSxjdC5mcm9tUmFkaWFucyh0Lndlc3QsdC5zb3V0aCwwLFlmWzNdKTtsZXQgZT0wLG49MCxvPTAscj0wLGk9eG4uX3RlcnJhaW5IZWlnaHRzTWF4TGV2ZWwscztmb3Iocz0wO3M8PWk7KytzKXtsZXQgZj0hMTtmb3IobGV0IHU9MDt1PDQ7Kyt1KXtsZXQgYz1ZZlt1XTtpZihaRC5wb3NpdGlvblRvVGlsZVhZKGMscywkZiksdT09PTApbz0kZi54LHI9JGYueTtlbHNlIGlmKG8hPT0kZi54fHxyIT09JGYueSl7Zj0hMDticmVha319aWYoZilicmVhaztlPW8sbj1yfWlmKHMhPT0wKXJldHVybnt4OmUseTpuLGxldmVsOnM+aT9pOnMtMX19dmFyIHhPLFBPLE1PLHZfLCRELE5PLFpELFlmLCRmLHhuLEVkLERfPVooKCk9PntQZSgpO2hoKCk7emUoKTtVdCgpO3ZlKCk7WXQoKTtJdCgpO2F0KCk7SHQoKTtadCgpO0NPKCk7QW4oKTtnZigpO3hPPW5ldyBhLFBPPW5ldyBhLE1PPW5ldyBjdCx2Xz1uZXcgYSwkRD1uZXcgYSxOTz1uZXcgeXQsWkQ9bmV3IFNPLFlmPVtuZXcgY3QsbmV3IGN0LG5ldyBjdCxuZXcgY3RdLCRmPW5ldyBudCx4bj17fTt4bi5pbml0aWFsaXplPWZ1bmN0aW9uKCl7bGV0IHQ9eG4uX2luaXRQcm9taXNlO3JldHVybiBoKHQpfHwodD1vaS5mZXRjaEpzb24oUHAoIkFzc2V0cy9hcHByb3hpbWF0ZVRlcnJhaW5IZWlnaHRzLmpzb24iKSkudGhlbihmdW5jdGlvbihlKXt4bi5fdGVycmFpbkhlaWdodHM9ZX0pLHhuLl9pbml0UHJvbWlzZT10KSx0fTt4bi5nZXRNaW5pbXVtTWF4aW11bUhlaWdodHM9ZnVuY3Rpb24odCxlKXtpZih5LmRlZmluZWQoInJlY3RhbmdsZSIsdCksIWgoeG4uX3RlcnJhaW5IZWlnaHRzKSl0aHJvdyBuZXcgQigiWW91IG11c3QgY2FsbCBBcHByb3hpbWF0ZVRlcnJhaW5IZWlnaHRzLmluaXRpYWxpemUgYW5kIHdhaXQgZm9yIHRoZSBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24iKTtlPXgoZSwkLldHUzg0KTtsZXQgbj1JTyh0KSxvPXhuLl9kZWZhdWx0TWluVGVycmFpbkhlaWdodCxyPXhuLl9kZWZhdWx0TWF4VGVycmFpbkhlaWdodDtpZihoKG4pKXtsZXQgaT1gJHtuLmxldmVsfS0ke24ueH0tJHtuLnl9YCxzPXhuLl90ZXJyYWluSGVpZ2h0c1tpXTtoKHMpJiYobz1zWzBdLHI9c1sxXSksZS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihQdC5ub3J0aGVhc3QodCxNTykseE8pLGUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oUHQuc291dGh3ZXN0KHQsTU8pLFBPKSxhLm1pZHBvaW50KFBPLHhPLHZfKTtsZXQgZj1lLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2Uodl8sJEQpO2lmKGgoZikpe2xldCB1PWEuZGlzdGFuY2Uodl8sZik7bz1NYXRoLm1pbihvLC11KX1lbHNlIG89eG4uX2RlZmF1bHRNaW5UZXJyYWluSGVpZ2h0fXJldHVybiBvPU1hdGgubWF4KHhuLl9kZWZhdWx0TWluVGVycmFpbkhlaWdodCxvKSx7bWluaW11bVRlcnJhaW5IZWlnaHQ6byxtYXhpbXVtVGVycmFpbkhlaWdodDpyfX07eG4uZ2V0Qm91bmRpbmdTcGhlcmU9ZnVuY3Rpb24odCxlKXtpZih5LmRlZmluZWQoInJlY3RhbmdsZSIsdCksIWgoeG4uX3RlcnJhaW5IZWlnaHRzKSl0aHJvdyBuZXcgQigiWW91IG11c3QgY2FsbCBBcHByb3hpbWF0ZVRlcnJhaW5IZWlnaHRzLmluaXRpYWxpemUgYW5kIHdhaXQgZm9yIHRoZSBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24iKTtlPXgoZSwkLldHUzg0KTtsZXQgbj1JTyh0KSxvPXhuLl9kZWZhdWx0TWF4VGVycmFpbkhlaWdodDtpZihoKG4pKXtsZXQgaT1gJHtuLmxldmVsfS0ke24ueH0tJHtuLnl9YCxzPXhuLl90ZXJyYWluSGVpZ2h0c1tpXTtoKHMpJiYobz1zWzFdKX1sZXQgcj15dC5mcm9tUmVjdGFuZ2xlM0QodCxlLDApO3JldHVybiB5dC5mcm9tUmVjdGFuZ2xlM0QodCxlLG8sTk8pLHl0LnVuaW9uKHIsTk8scil9O3huLl90ZXJyYWluSGVpZ2h0c01heExldmVsPTY7eG4uX2RlZmF1bHRNYXhUZXJyYWluSGVpZ2h0PTllMzt4bi5fZGVmYXVsdE1pblRlcnJhaW5IZWlnaHQ9LTFlNTt4bi5fdGVycmFpbkhlaWdodHM9dm9pZCAwO3huLl9pbml0UHJvbWlzZT12b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeG4se2luaXRpYWxpemVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaCh4bi5fdGVycmFpbkhlaWdodHMpfX19KTtFZD14bn0pO2Z1bmN0aW9uIFRzKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucztpZighaChlKXx8ZS5sZW5ndGg8Mil0aHJvdyBuZXcgQigiQXQgbGVhc3QgdHdvIHBvc2l0aW9ucyBhcmUgcmVxdWlyZWQuIik7aWYoaCh0LmFyY1R5cGUpJiZ0LmFyY1R5cGUhPT11ZS5HRU9ERVNJQyYmdC5hcmNUeXBlIT09dWUuUkhVTUIpdGhyb3cgbmV3IEIoIlZhbGlkIG9wdGlvbnMgZm9yIGFyY1R5cGUgYXJlIEFyY1R5cGUuR0VPREVTSUMgYW5kIEFyY1R5cGUuUkhVTUIuIik7dGhpcy53aWR0aD14KHQud2lkdGgsMSksdGhpcy5fcG9zaXRpb25zPWUsdGhpcy5ncmFudWxhcml0eT14KHQuZ3JhbnVsYXJpdHksOTk5OSksdGhpcy5sb29wPXgodC5sb29wLCExKSx0aGlzLmFyY1R5cGU9eCh0LmFyY1R5cGUsdWUuR0VPREVTSUMpLHRoaXMuX2VsbGlwc29pZD0kLldHUzg0LHRoaXMuX3Byb2plY3Rpb25JbmRleD0wLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUdyb3VuZFBvbHlsaW5lR2VvbWV0cnkiLHRoaXMuX3NjZW5lM0RPbmx5PSExfWZ1bmN0aW9uIEdfKHQsZSxuLG8scil7bGV0IGk9a28obyx0LDAsSkQpLHM9a28obyx0LG4sRE8pLGY9a28obyxlLDAsTE8pLHU9amkocyxpLERPKSxjPWppKGYsaSxMTyk7cmV0dXJuIGEuY3Jvc3MoYyx1LHIpLGEubm9ybWFsaXplKHIscil9ZnVuY3Rpb24gTF8odCxlLG4sbyxyLGkscyxmLHUsYyxsKXtpZihyPT09MClyZXR1cm47bGV0IHA7aT09PXVlLkdFT0RFU0lDP3A9bmV3IF9jKHQsZSxzKTppPT09dWUuUkhVTUImJihwPW5ldyBKbyh0LGUscykpO2xldCBkPXAuc3VyZmFjZURpc3RhbmNlO2lmKGQ8cilyZXR1cm47bGV0IG09R18odCxlLG8scyxvTCksXz1NYXRoLmNlaWwoZC9yKSxnPWQvXyxiPWcsTz1fLTEsVD1mLmxlbmd0aDtmb3IobGV0IEU9MDtFPE87RSsrKXtsZXQgdz1wLmludGVycG9sYXRlVXNpbmdTdXJmYWNlRGlzdGFuY2UoYix0TCksQz1rbyhzLHcsbixlTCksTj1rbyhzLHcsbyxuTCk7YS5wYWNrKG0sZixUKSxhLnBhY2soQyx1LFQpLGEucGFjayhOLGMsVCksbC5wdXNoKHcubGF0aXR1ZGUpLGwucHVzaCh3LmxvbmdpdHVkZSksVCs9MyxiKz1nfX1mdW5jdGlvbiBrbyh0LGUsbixvKXtyZXR1cm4gY3QuY2xvbmUoZSxGXyksRl8uaGVpZ2h0PW4sY3QudG9DYXJ0ZXNpYW4oRl8sdCxvKX1mdW5jdGlvbiBqaSh0LGUsbil7cmV0dXJuIGEuc3VidHJhY3QodCxlLG4pLGEubm9ybWFsaXplKG4sbiksbn1mdW5jdGlvbiBGTyh0LGUsbixvKXtyZXR1cm4gbz1qaSh0LGUsbyksbz1hLmNyb3NzKG8sbixvKSxvPWEubm9ybWFsaXplKG8sbyksbz1hLmNyb3NzKG4sbyxvKSxvfWZ1bmN0aW9uIEJfKHQsZSxuLG8scil7bGV0IGk9amkobixlLGVFKSxzPUZPKHQsZSxpLHJMKSxmPUZPKG8sZSxpLGlMKTtpZihNLmVxdWFsc0Vwc2lsb24oYS5kb3QocyxmKSxhTCxNLkVQU0lMT041KSlyZXR1cm4gcj1hLmNyb3NzKGkscyxyKSxyPWEubm9ybWFsaXplKHIscikscjtyPWEuYWRkKGYscyxyKSxyPWEubm9ybWFsaXplKHIscik7bGV0IHU9YS5jcm9zcyhpLHIsc0wpO3JldHVybiBhLmRvdChmLHUpPGNMJiYocj1hLm5lZ2F0ZShyLHIpKSxyfWZ1bmN0aW9uIFZPKHQsZSxuLG8pe2xldCByPWppKG4sZSxtTCksaT1hLmRvdChyLHQpO2lmKGk+UU98fGk8dk8pe2xldCBzPWppKG8sbixlRSksZj1pPHZPP00uUElfT1ZFUl9UV086LU0uUElfT1ZFUl9UV08sdT1uZS5mcm9tQXhpc0FuZ2xlKHMsZixfTCksYz10dC5mcm9tUXVhdGVybmlvbih1LGhMKTtyZXR1cm4gdHQubXVsdGlwbHlCeVZlY3RvcihjLHQsdCksITB9cmV0dXJuITF9ZnVuY3Rpb24gWmYodCxlLG4sbyxyKXtsZXQgaT1jdC50b0NhcnRlc2lhbihlLHQuX2VsbGlwc29pZCx5TCkscz1hLmFkZChpLG4sR08pLGY9ITEsdT10Ll9lbGxpcHNvaWQsYz11LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHMsa08pO01hdGguYWJzKGUubG9uZ2l0dWRlLWMubG9uZ2l0dWRlKT5NLlBJX09WRVJfVFdPJiYoZj0hMCxzPWEuc3VidHJhY3QoaSxuLEdPKSxjPXUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMocyxrTykpLGMuaGVpZ2h0PTA7bGV0IGw9dC5wcm9qZWN0KGMscik7cmV0dXJuIHI9YS5zdWJ0cmFjdChsLG8sciksci56PTAscj1hLm5vcm1hbGl6ZShyLHIpLGYmJmEubmVnYXRlKHIscikscn1mdW5jdGlvbiBqTyh0LGUsbixvLHIsaSl7bGV0IHM9YS5zdWJ0cmFjdChlLHQsZ0wpO2Eubm9ybWFsaXplKHMscyk7bGV0IGY9bi1KTyx1PWEubXVsdGlwbHlCeVNjYWxhcihzLGYsek8pO2EuYWRkKHQsdSxyKTtsZXQgYz1vLXRFO3U9YS5tdWx0aXBseUJ5U2NhbGFyKHMsYyx6TyksYS5hZGQoZSx1LGkpfWZ1bmN0aW9uIENkKHQsZSl7bGV0IG49b24uZ2V0UG9pbnREaXN0YW5jZSh4ZCx0KSxvPW9uLmdldFBvaW50RGlzdGFuY2UoeGQsZSkscj1BTDtNLmVxdWFsc0Vwc2lsb24obiwwLE0uRVBTSUxPTjIpPyhyPWppKGUsdCxyKSxhLm11bHRpcGx5QnlTY2FsYXIocixNLkVQU0lMT04yLHIpLGEuYWRkKHQscix0KSk6TS5lcXVhbHNFcHNpbG9uKG8sMCxNLkVQU0lMT04yKSYmKHI9amkodCxlLHIpLGEubXVsdGlwbHlCeVNjYWxhcihyLE0uRVBTSUxPTjIsciksYS5hZGQoZSxyLGUpKX1mdW5jdGlvbiBiTCh0LGUpe2xldCBuPU1hdGguYWJzKHQubG9uZ2l0dWRlKSxvPU1hdGguYWJzKGUubG9uZ2l0dWRlKTtpZihNLmVxdWFsc0Vwc2lsb24obixNLlBJLE0uRVBTSUxPTjExKSl7bGV0IHI9TS5zaWduKGUubG9uZ2l0dWRlKTtyZXR1cm4gdC5sb25naXR1ZGU9cioobi1NLkVQU0lMT04xMSksMX1lbHNlIGlmKE0uZXF1YWxzRXBzaWxvbihvLE0uUEksTS5FUFNJTE9OMTEpKXtsZXQgcj1NLnNpZ24odC5sb25naXR1ZGUpO3JldHVybiBlLmxvbmdpdHVkZT1yKihvLU0uRVBTSUxPTjExKSwyfXJldHVybiAwfWZ1bmN0aW9uIFZMKHQsZSxuLG8scixpLHMpe2xldCBmLHUsYz1lLl9lbGxpcHNvaWQsbD1uLmxlbmd0aC8zLTEscD1sKjgsZD1wKjQsbT1sKjM2LF89cD42NTUzNT9uZXcgVWludDMyQXJyYXkobSk6bmV3IFVpbnQxNkFycmF5KG0pLGc9bmV3IEZsb2F0NjRBcnJheShwKjMpLGI9bmV3IEZsb2F0MzJBcnJheShkKSxPPW5ldyBGbG9hdDMyQXJyYXkoZCksVD1uZXcgRmxvYXQzMkFycmF5KGQpLEU9bmV3IEZsb2F0MzJBcnJheShkKSx3PW5ldyBGbG9hdDMyQXJyYXkoZCksQyxOLEksTDtzJiYoQz1uZXcgRmxvYXQzMkFycmF5KGQpLE49bmV3IEZsb2F0MzJBcnJheShkKSxJPW5ldyBGbG9hdDMyQXJyYXkoZCksTD1uZXcgRmxvYXQzMkFycmF5KHAqMikpO2xldCB2PWkubGVuZ3RoLzIsRD0wLFU9bkU7VS5oZWlnaHQ9MDtsZXQgQT1vRTtBLmhlaWdodD0wO2xldCBTPUhPLFA9VV87aWYocylmb3IodT0wLGY9MTtmPHY7ZisrKVUubGF0aXR1ZGU9aVt1XSxVLmxvbmdpdHVkZT1pW3UrMV0sQS5sYXRpdHVkZT1pW3UrMl0sQS5sb25naXR1ZGU9aVt1KzNdLFM9ZS5wcm9qZWN0KFUsUyksUD1lLnByb2plY3QoQSxQKSxEKz1hLmRpc3RhbmNlKFMsUCksdSs9MjtsZXQgRj1vLmxlbmd0aC8zO1A9YS51bnBhY2sobywwLFApO2xldCBqPTA7Zm9yKHU9MyxmPTE7ZjxGO2YrKylTPWEuY2xvbmUoUCxTKSxQPWEudW5wYWNrKG8sdSxQKSxqKz1hLmRpc3RhbmNlKFMsUCksdSs9MztsZXQgSDt1PTM7bGV0IGs9MCxLPTAsWD0wLFI9MCxRPSExLGZ0PWEudW5wYWNrKG4sMCxLTykscHQ9YS51bnBhY2sobywwLFVfKSxndD1hLnVucGFjayhyLDAsV08pO2lmKHQpe2xldCB6dD1hLnVucGFjayhuLG4ubGVuZ3RoLTYscU8pO1ZPKGd0LHp0LGZ0LHB0KSYmKGd0PWEubmVnYXRlKGd0LGd0KSl9bGV0IGl0PTAsTnQ9MCxPdD0wO2ZvcihmPTA7ZjxsO2YrKyl7bGV0IHp0PWEuY2xvbmUoZnQscU8pLGhlPWEuY2xvbmUocHQsSE8pLGNlPWEuY2xvbmUoZ3Qsd0wpO1EmJihjZT1hLm5lZ2F0ZShjZSxjZSkpLGZ0PWEudW5wYWNrKG4sdSxLTykscHQ9YS51bnBhY2sobyx1LFVfKSxndD1hLnVucGFjayhyLHUsV08pLFE9Vk8oZ3QsenQsZnQscHQpLFUubGF0aXR1ZGU9aVtrXSxVLmxvbmdpdHVkZT1pW2srMV0sQS5sYXRpdHVkZT1pW2srMl0sQS5sb25naXR1ZGU9aVtrKzNdO2xldCBwZSxmZSxRdCxKdDtpZihzKXtsZXQgTmU9YkwoVSxBKTtwZT1lLnByb2plY3QoVSx4TCksZmU9ZS5wcm9qZWN0KEEsUEwpO2xldCBEbj1qaShmZSxwZSxZTyk7RG4ueT1NYXRoLmFicyhEbi55KSxRdD1WXyxKdD1rXyxOZT09PTB8fGEuZG90KERuLGEuVU5JVF9ZKT5RTz8oUXQ9WmYoZSxVLGNlLHBlLFZfKSxKdD1aZihlLEEsZ3QsZmUsa18pKTpOZT09PTE/KEp0PVpmKGUsQSxndCxmZSxrXyksUXQueD0wLFF0Lnk9TS5zaWduKFUubG9uZ2l0dWRlLU1hdGguYWJzKEEubG9uZ2l0dWRlKSksUXQuej0wKTooUXQ9WmYoZSxVLGNlLHBlLFZfKSxKdC54PTAsSnQueT1NLnNpZ24oVS5sb25naXR1ZGUtQS5sb25naXR1ZGUpLEp0Lno9MCl9bGV0IHhlPWEuZGlzdGFuY2UoaGUscHQpLEFlPVpzLmZyb21DYXJ0ZXNpYW4oenQsTEwpLEVlPWEuc3VidHJhY3QoZnQsenQsTUwpLHVuPWEubm9ybWFsaXplKEVlLFhPKSxVZT1hLnN1YnRyYWN0KGhlLHp0LE5MKTtVZT1hLm5vcm1hbGl6ZShVZSxVZSk7bGV0IGJlPWEuY3Jvc3ModW4sVWUsWE8pO2JlPWEubm9ybWFsaXplKGJlLGJlKTtsZXQgbG49YS5jcm9zcyhVZSxjZSx2TCk7bG49YS5ub3JtYWxpemUobG4sbG4pO2xldCBwbj1hLnN1YnRyYWN0KHB0LGZ0LElMKTtwbj1hLm5vcm1hbGl6ZShwbixwbik7bGV0IFRuPWEuY3Jvc3MoZ3QscG4sREwpO1RuPWEubm9ybWFsaXplKFRuLFRuKTtsZXQgb2U9eGUvaiwkdD1pdC9qLFZlPTAsZG4sc24sbW4sZm89MCxIbj0wO2lmKHMpe1ZlPWEuZGlzdGFuY2UocGUsZmUpLGRuPVpzLmZyb21DYXJ0ZXNpYW4ocGUsRkwpLHNuPWEuc3VidHJhY3QoZmUscGUsWU8pLG1uPWEubm9ybWFsaXplKHNuLEJMKTtsZXQgTmU9bW4ueDttbi54PW1uLnksbW4ueT0tTmUsZm89VmUvRCxIbj1OdC9EfWZvcihIPTA7SDw4O0grKyl7bGV0IE5lPVIrSCo0LERuPUsrSCoyLFduPU5lKzMscW89SDw0PzE6LTEscm49SD09PTJ8fEg9PT0zfHxIPT09Nnx8SD09PTc/MTotMTthLnBhY2soQWUuaGlnaCxiLE5lKSxiW1duXT1FZS54LGEucGFjayhBZS5sb3csTyxOZSksT1tXbl09RWUueSxhLnBhY2sobG4sVCxOZSksVFtXbl09RWUueixhLnBhY2soVG4sRSxOZSksRVtXbl09b2UqcW8sYS5wYWNrKGJlLHcsTmUpO2xldCBPbj0kdCpybjtPbj09PTAmJnJuPDAmJihPbj05KSx3W1duXT1PbixzJiYoQ1tOZV09ZG4uaGlnaC54LENbTmUrMV09ZG4uaGlnaC55LENbTmUrMl09ZG4ubG93LngsQ1tOZSszXT1kbi5sb3cueSxJW05lXT0tUXQueSxJW05lKzFdPVF0LngsSVtOZSsyXT1KdC55LElbTmUrM109LUp0LngsTltOZV09c24ueCxOW05lKzFdPXNuLnksTltOZSsyXT1tbi54LE5bTmUrM109bW4ueSxMW0RuXT1mbypxbyxPbj1IbipybixPbj09PTAmJnJuPDAmJihPbj05KSxMW0RuKzFdPU9uKX1sZXQgWmU9U0wsY249Q0wsS2U9RUwsaG49UkwsdW89UHQuZnJvbUNhcnRvZ3JhcGhpY0FycmF5KFRMLE9MKSxxbj1FZC5nZXRNaW5pbXVtTWF4aW11bUhlaWdodHModW8sYyksS249cW4ubWluaW11bVRlcnJhaW5IZWlnaHQsbG89cW4ubWF4aW11bVRlcnJhaW5IZWlnaHQ7T3QrPU1hdGguYWJzKEtuKSxPdCs9TWF0aC5hYnMobG8pLGpPKHp0LGhlLEtuLGxvLFplLEtlKSxqTyhmdCxwdCxLbixsbyxjbixobik7bGV0IGtlPWEubXVsdGlwbHlCeVNjYWxhcihiZSxNLkVQU0lMT041LCRPKTthLmFkZChaZSxrZSxaZSksYS5hZGQoY24sa2UsY24pLGEuYWRkKEtlLGtlLEtlKSxhLmFkZChobixrZSxobiksQ2QoWmUsY24pLENkKEtlLGhuKSxhLnBhY2soWmUsZyxYKSxhLnBhY2soY24sZyxYKzMpLGEucGFjayhobixnLFgrNiksYS5wYWNrKEtlLGcsWCs5KSxrZT1hLm11bHRpcGx5QnlTY2FsYXIoYmUsLTIqTS5FUFNJTE9ONSwkTyksYS5hZGQoWmUsa2UsWmUpLGEuYWRkKGNuLGtlLGNuKSxhLmFkZChLZSxrZSxLZSksYS5hZGQoaG4sa2UsaG4pLENkKFplLGNuKSxDZChLZSxobiksYS5wYWNrKFplLGcsWCsxMiksYS5wYWNrKGNuLGcsWCsxNSksYS5wYWNrKGhuLGcsWCsxOCksYS5wYWNrKEtlLGcsWCsyMSksays9Mix1Kz0zLEsrPTE2LFgrPTI0LFIrPTMyLGl0Kz14ZSxOdCs9VmV9dT0wO2xldCB4dD0wO2ZvcihmPTA7ZjxsO2YrKyl7Zm9yKEg9MDtIPFpPO0grKylfW3UrSF09ckVbSF0reHQ7eHQrPTgsdSs9Wk99bGV0IF90PVVMO3l0LmZyb21WZXJ0aWNlcyhuLGEuWkVSTywzLF90WzBdKSx5dC5mcm9tVmVydGljZXMobyxhLlpFUk8sMyxfdFsxXSk7bGV0IGR0PXl0LmZyb21Cb3VuZGluZ1NwaGVyZXMoX3QpO2R0LnJhZGl1cys9T3QvKGwqMik7bGV0IFZ0PXtwb3NpdGlvbjpuZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsbm9ybWFsaXplOiExLHZhbHVlczpnfSksc3RhcnRIaUFuZEZvcndhcmRPZmZzZXRYOndzKGIpLHN0YXJ0TG9BbmRGb3J3YXJkT2Zmc2V0WTp3cyhPKSxzdGFydE5vcm1hbEFuZEZvcndhcmRPZmZzZXRaOndzKFQpLGVuZE5vcm1hbEFuZFRleHR1cmVDb29yZGluYXRlTm9ybWFsaXphdGlvblg6d3MoRSkscmlnaHROb3JtYWxBbmRUZXh0dXJlQ29vcmRpbmF0ZU5vcm1hbGl6YXRpb25ZOndzKHcpfTtyZXR1cm4gcyYmKFZ0LnN0YXJ0SGlMbzJEPXdzKEMpLFZ0Lm9mZnNldEFuZFJpZ2h0MkQ9d3MoTiksVnQuc3RhcnRFbmROb3JtYWxzMkQ9d3MoSSksVnQudGV4Y29vcmROb3JtYWxpemF0aW9uMkQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsbm9ybWFsaXplOiExLHZhbHVlczpMfSkpLG5ldyBGdCh7YXR0cmlidXRlczpWdCxpbmRpY2VzOl8sYm91bmRpbmdTcGhlcmU6ZHR9KX1mdW5jdGlvbiB3cyh0KXtyZXR1cm4gbmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjQsbm9ybWFsaXplOiExLHZhbHVlczp0fSl9dmFyIHpfLFFELFFPLHZPLEpPLHRFLEpELERPLExPLHRMLGVMLG5MLG9MLEZfLHJMLGlMLHNMLGVFLGNMLGFMLHhkLGZMLHVMLGxMLHBMLGRMLFJkLFNkLEJPLFVPLG1MLGhMLF9MLGtPLHlMLEdPLGdMLHpPLEFMLG5FLG9FLEhPLFVfLHFPLEtPLHdMLFdPLFRMLE9MLEVMLFJMLFNMLENMLHhMLFBMLFZfLGtfLE1MLE5MLElMLFhPLHZMLERMLExMLEZMLFlPLEJMLCRPLFVMLHJFLFpPLGpfLGlFPVooKCk9PntEXygpO2ZjKCk7anIoKTtQZSgpO1V0KCk7dmUoKTtZdCgpO0RlKCk7SXQoKTthdCgpO0h0KCk7WnQoKTtjZCgpO05mKCk7TWgoKTtSaSgpO1hlKCk7WWUoKTt0YygpO1d0KCk7Rm4oKTtjcygpOyRvKCk7QW4oKTtpYygpO3pfPVtRbixlb10sUUQ9el8ubGVuZ3RoLFFPPU1hdGguY29zKE0udG9SYWRpYW5zKDMwKSksdk89TWF0aC5jb3MoTS50b1JhZGlhbnMoMTUwKSksSk89MCx0RT0xZTM7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVHMucHJvdG90eXBlLHtwYWNrZWRMZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiAxK3RoaXMuX3Bvc2l0aW9ucy5sZW5ndGgqMysxKzErMSskLnBhY2tlZExlbmd0aCsxKzF9fX0pO1RzLnNldFByb2plY3Rpb25BbmRFbGxpcHNvaWQ9ZnVuY3Rpb24odCxlKXtsZXQgbj0wO2ZvcihsZXQgbz0wO288UUQ7bysrKWlmKGUgaW5zdGFuY2VvZiB6X1tvXSl7bj1vO2JyZWFrfXQuX3Byb2plY3Rpb25JbmRleD1uLHQuX2VsbGlwc29pZD1lLmVsbGlwc29pZH07SkQ9bmV3IGEsRE89bmV3IGEsTE89bmV3IGE7dEw9bmV3IGN0LGVMPW5ldyBhLG5MPW5ldyBhLG9MPW5ldyBhO0ZfPW5ldyBjdDtUcy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKTtsZXQgbz14KG4sMCkscj10Ll9wb3NpdGlvbnMsaT1yLmxlbmd0aDtlW28rK109aTtmb3IobGV0IHM9MDtzPGk7KytzKXtsZXQgZj1yW3NdO2EucGFjayhmLGUsbyksbys9M31yZXR1cm4gZVtvKytdPXQuZ3JhbnVsYXJpdHksZVtvKytdPXQubG9vcD8xOjAsZVtvKytdPXQuYXJjVHlwZSwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbyksbys9JC5wYWNrZWRMZW5ndGgsZVtvKytdPXQuX3Byb2plY3Rpb25JbmRleCxlW28rK109dC5fc2NlbmUzRE9ubHk/MTowLGV9O1RzLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCk7bGV0IG89eChlLDApLHI9dFtvKytdLGk9bmV3IEFycmF5KHIpO2ZvcihsZXQgZD0wO2Q8cjtkKyspaVtkXT1hLnVucGFjayh0LG8pLG8rPTM7bGV0IHM9dFtvKytdLGY9dFtvKytdPT09MSx1PXRbbysrXSxjPSQudW5wYWNrKHQsbyk7bys9JC5wYWNrZWRMZW5ndGg7bGV0IGw9dFtvKytdLHA9dFtvKytdPT09MTtyZXR1cm4gaChuKXx8KG49bmV3IFRzKHtwb3NpdGlvbnM6aX0pKSxuLl9wb3NpdGlvbnM9aSxuLmdyYW51bGFyaXR5PXMsbi5sb29wPWYsbi5hcmNUeXBlPXUsbi5fZWxsaXBzb2lkPWMsbi5fcHJvamVjdGlvbkluZGV4PWwsbi5fc2NlbmUzRE9ubHk9cCxufTtyTD1uZXcgYSxpTD1uZXcgYSxzTD1uZXcgYSxlRT1uZXcgYSxjTD0wLGFMPS0xO3hkPW9uLmZyb21Qb2ludE5vcm1hbChhLlpFUk8sYS5VTklUX1kpLGZMPW5ldyBhLHVMPW5ldyBhLGxMPW5ldyBhLHBMPW5ldyBhLGRMPW5ldyBhLFJkPW5ldyBhLFNkPW5ldyBjdCxCTz1uZXcgY3QsVU89bmV3IGN0O1RzLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPSF0Ll9zY2VuZTNET25seSxuPXQubG9vcCxvPXQuX2VsbGlwc29pZCxyPXQuZ3JhbnVsYXJpdHksaT10LmFyY1R5cGUscz1uZXcgel9bdC5fcHJvamVjdGlvbkluZGV4XShvKSxmPUpPLHU9dEUsYyxsLHA9dC5fcG9zaXRpb25zLGQ9cC5sZW5ndGg7ZD09PTImJihuPSExKTtsZXQgbSxfLGcsYixPPW5ldyBKbyh2b2lkIDAsdm9pZCAwLG8pLFQsRSx3LEM9W3BbMF1dO2ZvcihsPTA7bDxkLTE7bCsrKW09cFtsXSxfPXBbbCsxXSxUPV9vLmxpbmVTZWdtZW50UGxhbmUobSxfLHhkLFJkKSxoKFQpJiYhYS5lcXVhbHNFcHNpbG9uKFQsbSxNLkVQU0lMT043KSYmIWEuZXF1YWxzRXBzaWxvbihULF8sTS5FUFNJTE9ONykmJih0LmFyY1R5cGU9PT11ZS5HRU9ERVNJQz9DLnB1c2goYS5jbG9uZShUKSk6dC5hcmNUeXBlPT09dWUuUkhVTUImJih3PW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoVCxTZCkubG9uZ2l0dWRlLGc9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhtLFNkKSxiPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoXyxCTyksTy5zZXRFbmRQb2ludHMoZyxiKSxFPU8uZmluZEludGVyc2VjdGlvbldpdGhMb25naXR1ZGUodyxVTyksVD1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEUsUmQpLGgoVCkmJiFhLmVxdWFsc0Vwc2lsb24oVCxtLE0uRVBTSUxPTjcpJiYhYS5lcXVhbHNFcHNpbG9uKFQsXyxNLkVQU0lMT043KSYmQy5wdXNoKGEuY2xvbmUoVCkpKSksQy5wdXNoKF8pO24mJihtPXBbZC0xXSxfPXBbMF0sVD1fby5saW5lU2VnbWVudFBsYW5lKG0sXyx4ZCxSZCksaChUKSYmIWEuZXF1YWxzRXBzaWxvbihULG0sTS5FUFNJTE9ONykmJiFhLmVxdWFsc0Vwc2lsb24oVCxfLE0uRVBTSUxPTjcpJiYodC5hcmNUeXBlPT09dWUuR0VPREVTSUM/Qy5wdXNoKGEuY2xvbmUoVCkpOnQuYXJjVHlwZT09PXVlLlJIVU1CJiYodz1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKFQsU2QpLmxvbmdpdHVkZSxnPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMobSxTZCksYj1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKF8sQk8pLE8uc2V0RW5kUG9pbnRzKGcsYiksRT1PLmZpbmRJbnRlcnNlY3Rpb25XaXRoTG9uZ2l0dWRlKHcsVU8pLFQ9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihFLFJkKSxoKFQpJiYhYS5lcXVhbHNFcHNpbG9uKFQsbSxNLkVQU0lMT043KSYmIWEuZXF1YWxzRXBzaWxvbihULF8sTS5FUFNJTE9ONykmJkMucHVzaChhLmNsb25lKFQpKSkpKTtsZXQgTj1DLmxlbmd0aCxJPW5ldyBBcnJheShOKTtmb3IobD0wO2w8TjtsKyspe2xldCBRPWN0LmZyb21DYXJ0ZXNpYW4oQ1tsXSxvKTtRLmhlaWdodD0wLElbbF09UX1pZihJPUNuKEksY3QuZXF1YWxzRXBzaWxvbiksTj1JLmxlbmd0aCxOPDIpcmV0dXJuO2xldCBMPVtdLHY9W10sRD1bXSxVPVtdLEE9ZkwsUz11TCxQPWxMLEY9cEwsaj1kTCxIPUlbMF0saz1JWzFdLEs9SVtOLTFdO2ZvcihBPWtvKG8sSyxmLEEpLEY9a28obyxrLGYsRiksUz1rbyhvLEgsZixTKSxQPWtvKG8sSCx1LFApLG4/aj1CXyhBLFMsUCxGLGopOmo9R18oSCxrLHUsbyxqKSxhLnBhY2soaix2LDApLGEucGFjayhTLEQsMCksYS5wYWNrKFAsVSwwKSxMLnB1c2goSC5sYXRpdHVkZSksTC5wdXNoKEgubG9uZ2l0dWRlKSxMXyhILGssZix1LHIsaSxvLHYsRCxVLEwpLGw9MTtsPE4tMTsrK2wpe0E9YS5jbG9uZShTLEEpLFM9YS5jbG9uZShGLFMpO2xldCBRPUlbbF07a28obyxRLHUsUCksa28obyxJW2wrMV0sZixGKSxCXyhBLFMsUCxGLGopLGM9di5sZW5ndGgsYS5wYWNrKGosdixjKSxhLnBhY2soUyxELGMpLGEucGFjayhQLFUsYyksTC5wdXNoKFEubGF0aXR1ZGUpLEwucHVzaChRLmxvbmdpdHVkZSksTF8oSVtsXSxJW2wrMV0sZix1LHIsaSxvLHYsRCxVLEwpfWxldCBYPUlbTi0xXSxSPUlbTi0yXTtpZihTPWtvKG8sWCxmLFMpLFA9a28obyxYLHUsUCksbil7bGV0IFE9SVswXTtBPWtvKG8sUixmLEEpLEY9a28obyxRLGYsRiksaj1CXyhBLFMsUCxGLGopfWVsc2Ugaj1HXyhSLFgsdSxvLGopO2lmKGM9di5sZW5ndGgsYS5wYWNrKGosdixjKSxhLnBhY2soUyxELGMpLGEucGFjayhQLFUsYyksTC5wdXNoKFgubGF0aXR1ZGUpLEwucHVzaChYLmxvbmdpdHVkZSksbil7Zm9yKExfKFgsSCxmLHUscixpLG8sdixELFUsTCksYz12Lmxlbmd0aCxsPTA7bDwzOysrbCl2W2MrbF09dltsXSxEW2MrbF09RFtsXSxVW2MrbF09VVtsXTtMLnB1c2goSC5sYXRpdHVkZSksTC5wdXNoKEgubG9uZ2l0dWRlKX1yZXR1cm4gVkwobixzLEQsVSx2LEwsZSl9O21MPW5ldyBhLGhMPW5ldyB0dCxfTD1uZXcgbmU7a089bmV3IGN0LHlMPW5ldyBhLEdPPW5ldyBhO2dMPW5ldyBhLHpPPW5ldyBhO0FMPW5ldyBhO25FPW5ldyBjdCxvRT1uZXcgY3QsSE89bmV3IGEsVV89bmV3IGEscU89bmV3IGEsS089bmV3IGEsd0w9bmV3IGEsV089bmV3IGEsVEw9W25FLG9FXSxPTD1uZXcgUHQsRUw9bmV3IGEsUkw9bmV3IGEsU0w9bmV3IGEsQ0w9bmV3IGEseEw9bmV3IGEsUEw9bmV3IGEsVl89bmV3IGEsa189bmV3IGEsTUw9bmV3IGEsTkw9bmV3IGEsSUw9bmV3IGEsWE89bmV3IGEsdkw9bmV3IGEsREw9bmV3IGEsTEw9bmV3IFpzLEZMPW5ldyBacyxZTz1uZXcgYSxCTD1uZXcgYSwkTz1uZXcgYSxVTD1bbmV3IHl0LG5ldyB5dF0sckU9WzAsMiwxLDAsMywyLDAsNywzLDAsNCw3LDAsNSw0LDAsMSw1LDUsNyw0LDUsNiw3LDUsMiw2LDUsMSwyLDMsNiwyLDMsNyw2XSxaTz1yRS5sZW5ndGg7VHMuX3Byb2plY3ROb3JtYWw9WmY7al89VHN9KTt2YXIgSF89e307bWUoSF8se2RlZmF1bHQ6KCk9PkdMfSk7ZnVuY3Rpb24ga0wodCxlKXtyZXR1cm4gRWQuaW5pdGlhbGl6ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaChlKSYmKHQ9al8udW5wYWNrKHQsZSkpLGpfLmNyZWF0ZUdlb21ldHJ5KHQpfSl9dmFyIEdMLHFfPVooKCk9PntEXygpO2F0KCk7aUUoKTtHTD1rTH0pO2Z1bmN0aW9uIENhKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT14KHQudmVydGV4Rm9ybWF0LGx0LkRFRkFVTFQpO3RoaXMuX3ZlcnRleEZvcm1hdD1lLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBsYW5lR2VvbWV0cnkifXZhciBzRSx6TCxQZCxNZCxLXyxjRT1aKCgpPT57UGUoKTtVdCgpO1l0KCk7RGUoKTtJdCgpO2F0KCk7WGUoKTtZZSgpO2FuKCk7dG4oKTtSbygpO0NhLnBhY2tlZExlbmd0aD1sdC5wYWNrZWRMZW5ndGg7Q2EucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGx0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksZX07c0U9bmV3IGx0LHpMPXt2ZXJ0ZXhGb3JtYXQ6c0V9O0NhLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89bHQudW5wYWNrKHQsZSxzRSk7cmV0dXJuIGgobik/KG4uX3ZlcnRleEZvcm1hdD1sdC5jbG9uZShvLG4uX3ZlcnRleEZvcm1hdCksbik6bmV3IENhKHpMKX07UGQ9bmV3IGEoLS41LC0uNSwwKSxNZD1uZXcgYSguNSwuNSwwKTtDYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll92ZXJ0ZXhGb3JtYXQsbj1uZXcgcmUsbyxyO2lmKGUucG9zaXRpb24pe2lmKHI9bmV3IEZsb2F0NjRBcnJheSg0KjMpLHJbMF09UGQueCxyWzFdPVBkLnksclsyXT0wLHJbM109TWQueCxyWzRdPVBkLnkscls1XT0wLHJbNl09TWQueCxyWzddPU1kLnkscls4XT0wLHJbOV09UGQueCxyWzEwXT1NZC55LHJbMTFdPTAsbi5wb3NpdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnJ9KSxlLm5vcm1hbCl7bGV0IGk9bmV3IEZsb2F0MzJBcnJheSgxMik7aVswXT0wLGlbMV09MCxpWzJdPTEsaVszXT0wLGlbNF09MCxpWzVdPTEsaVs2XT0wLGlbN109MCxpWzhdPTEsaVs5XT0wLGlbMTBdPTAsaVsxMV09MSxuLm5vcm1hbD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6aX0pfWlmKGUuc3Qpe2xldCBpPW5ldyBGbG9hdDMyQXJyYXkoOCk7aVswXT0wLGlbMV09MCxpWzJdPTEsaVszXT0wLGlbNF09MSxpWzVdPTEsaVs2XT0wLGlbN109MSxuLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczppfSl9aWYoZS50YW5nZW50KXtsZXQgaT1uZXcgRmxvYXQzMkFycmF5KDEyKTtpWzBdPTEsaVsxXT0wLGlbMl09MCxpWzNdPTEsaVs0XT0wLGlbNV09MCxpWzZdPTEsaVs3XT0wLGlbOF09MCxpWzldPTEsaVsxMF09MCxpWzExXT0wLG4udGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6aX0pfWlmKGUuYml0YW5nZW50KXtsZXQgaT1uZXcgRmxvYXQzMkFycmF5KDEyKTtpWzBdPTAsaVsxXT0xLGlbMl09MCxpWzNdPTAsaVs0XT0xLGlbNV09MCxpWzZdPTAsaVs3XT0xLGlbOF09MCxpWzldPTAsaVsxMF09MSxpWzExXT0wLG4uYml0YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczppfSl9bz1uZXcgVWludDE2QXJyYXkoMiozKSxvWzBdPTAsb1sxXT0xLG9bMl09MixvWzNdPTAsb1s0XT0yLG9bNV09M31yZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOm4saW5kaWNlczpvLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOm5ldyB5dChhLlpFUk8sTWF0aC5zcXJ0KDIpKX0pfTtLXz1DYX0pO3ZhciBXXz17fTttZShXXyx7ZGVmYXVsdDooKT0+SEx9KTtmdW5jdGlvbiBqTCh0LGUpe3JldHVybiBoKGUpJiYodD1LXy51bnBhY2sodCxlKSksS18uY3JlYXRlR2VvbWV0cnkodCl9dmFyIEhMLFhfPVooKCk9PnthdCgpO2NFKCk7SEw9akx9KTtmdW5jdGlvbiB4YSgpe3RoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBsYW5lT3V0bGluZUdlb21ldHJ5In12YXIgT3MsTmQsWV8sYUU9WigoKT0+e1BlKCk7VXQoKTtZdCgpO0RlKCk7YXQoKTtYZSgpO1llKCk7YW4oKTt0bigpO3hhLnBhY2tlZExlbmd0aD0wO3hhLnBhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5kZWZpbmVkKCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksZX07eGEudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksaChuKT9uOm5ldyB4YX07T3M9bmV3IGEoLS41LC0uNSwwKSxOZD1uZXcgYSguNSwuNSwwKTt4YS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbigpe2xldCB0PW5ldyByZSxlPW5ldyBVaW50MTZBcnJheSg0KjIpLG49bmV3IEZsb2F0NjRBcnJheSg0KjMpO3JldHVybiBuWzBdPU9zLngsblsxXT1Pcy55LG5bMl09T3MueixuWzNdPU5kLngsbls0XT1Pcy55LG5bNV09T3MueixuWzZdPU5kLngsbls3XT1OZC55LG5bOF09T3MueixuWzldPU9zLngsblsxMF09TmQueSxuWzExXT1Pcy56LHQucG9zaXRpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpufSksZVswXT0wLGVbMV09MSxlWzJdPTEsZVszXT0yLGVbNF09MixlWzVdPTMsZVs2XT0zLGVbN109MCxuZXcgRnQoe2F0dHJpYnV0ZXM6dCxpbmRpY2VzOmUscHJpbWl0aXZlVHlwZTpMdC5MSU5FUyxib3VuZGluZ1NwaGVyZTpuZXcgeXQoYS5aRVJPLE1hdGguc3FydCgyKSl9KX07WV89eGF9KTt2YXIgJF89e307bWUoJF8se2RlZmF1bHQ6KCk9PktMfSk7ZnVuY3Rpb24gcUwodCxlKXtyZXR1cm4gaChlKSYmKHQ9WV8udW5wYWNrKHQsZSkpLFlfLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBLTCxaXz1aKCgpPT57YXQoKTthRSgpO0tMPXFMfSk7ZnVuY3Rpb24gV0wodCxlKXtpZighaCh0KXx8IWgoZSkpdGhyb3cgbmV3IEIoImlkZW50aWZpZXIgYW5kIG1lc3NhZ2UgYXJlIHJlcXVpcmVkLiIpO0FhKHQsZSl9dmFyIGZFLHVFPVooKCk9PnthdCgpO0h0KCk7dWQoKTtmRT1XTH0pO2Z1bmN0aW9uIHZuKHQsZSl7dGhpcy5wb3NpdGlvbj10LGgodGhpcy5wb3NpdGlvbil8fCh0aGlzLnBvc2l0aW9uPW5ldyBudCksdGhpcy50YW5nZW50UGxhbmU9ZSxoKHRoaXMudGFuZ2VudFBsYW5lKXx8KHRoaXMudGFuZ2VudFBsYW5lPXZuLk5PUlRIX1BPTEVfVEFOR0VOVF9QTEFORSl9dmFyIFBhLFhMLFlMLCRMLFpMLGFyLGxFPVooKCk9Pnt6ZSgpO1V0KCk7dmUoKTtZdCgpO2F0KCk7WnQoKTtwYSgpO3RjKCk7V3QoKTtGcCgpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHZuLnByb3RvdHlwZSx7ZWxsaXBzb2lkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YW5nZW50UGxhbmUuZWxsaXBzb2lkfX0seDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9zaXRpb24ueH19LHk6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uLnl9fSxjb25mb3JtYWxMYXRpdHVkZTp7Z2V0OmZ1bmN0aW9uKCl7bGV0IHQ9bnQubWFnbml0dWRlKHRoaXMucG9zaXRpb24pLGU9Mip0aGlzLmVsbGlwc29pZC5tYXhpbXVtUmFkaXVzO3JldHVybiB0aGlzLnRhbmdlbnRQbGFuZS5wbGFuZS5ub3JtYWwueiooTS5QSV9PVkVSX1RXTy0yKk1hdGguYXRhbjIodCxlKSl9fSxsb25naXR1ZGU6e2dldDpmdW5jdGlvbigpe2xldCB0PU0uUElfT1ZFUl9UV08rTWF0aC5hdGFuMih0aGlzLnksdGhpcy54KTtyZXR1cm4gdD5NYXRoLlBJJiYodC09TS5UV09fUEkpLHR9fX0pO1BhPW5ldyBjdCxYTD1uZXcgYTt2bi5wcm90b3R5cGUuZ2V0TGF0aXR1ZGU9ZnVuY3Rpb24odCl7aCh0KXx8KHQ9JC5XR1M4NCksUGEubGF0aXR1ZGU9dGhpcy5jb25mb3JtYWxMYXRpdHVkZSxQYS5sb25naXR1ZGU9dGhpcy5sb25naXR1ZGUsUGEuaGVpZ2h0PTA7bGV0IGU9dGhpcy5lbGxpcHNvaWQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oUGEsWEwpO3JldHVybiB0LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUsUGEpLFBhLmxhdGl0dWRlfTtZTD1uZXcgUXMsJEw9bmV3IGEsWkw9bmV3IGE7dm4uZnJvbUNhcnRlc2lhbj1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFuIix0KTtsZXQgbj1NLnNpZ25Ob3RaZXJvKHQueiksbz12bi5OT1JUSF9QT0xFX1RBTkdFTlRfUExBTkUscj12bi5TT1VUSF9QT0xFO248MCYmKG89dm4uU09VVEhfUE9MRV9UQU5HRU5UX1BMQU5FLHI9dm4uTk9SVEhfUE9MRSk7bGV0IGk9WUw7aS5vcmlnaW49by5lbGxpcHNvaWQuc2NhbGVUb0dlb2NlbnRyaWNTdXJmYWNlKHQsaS5vcmlnaW4pLGkuZGlyZWN0aW9uPWEuc3VidHJhY3QoaS5vcmlnaW4sciwkTCksYS5ub3JtYWxpemUoaS5kaXJlY3Rpb24saS5kaXJlY3Rpb24pO2xldCBzPV9vLnJheVBsYW5lKGksby5wbGFuZSxaTCksZj1hLnN1YnRyYWN0KHMscixzKSx1PWEuZG90KG8ueEF4aXMsZiksYz1uKmEuZG90KG8ueUF4aXMsZik7cmV0dXJuIGgoZSk/KGUucG9zaXRpb249bmV3IG50KHUsYyksZS50YW5nZW50UGxhbmU9byxlKTpuZXcgdm4obmV3IG50KHUsYyksbyl9O3ZuLmZyb21DYXJ0ZXNpYW5BcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFucyIsdCk7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uOmU9bmV3IEFycmF5KG4pO2ZvcihsZXQgbz0wO288bjtvKyspZVtvXT12bi5mcm9tQ2FydGVzaWFuKHRbb10sZVtvXSk7cmV0dXJuIGV9O3ZuLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS5wb3NpdGlvbj10LnBvc2l0aW9uLGUudGFuZ2VudFBsYW5lPXQudGFuZ2VudFBsYW5lLGUpOm5ldyB2bih0LnBvc2l0aW9uLHQudGFuZ2VudFBsYW5lKX07dm4uSEFMRl9VTklUX1NQSEVSRT1PYmplY3QuZnJlZXplKG5ldyAkKC41LC41LC41KSk7dm4uTk9SVEhfUE9MRT1PYmplY3QuZnJlZXplKG5ldyBhKDAsMCwuNSkpO3ZuLlNPVVRIX1BPTEU9T2JqZWN0LmZyZWV6ZShuZXcgYSgwLDAsLS41KSk7dm4uTk9SVEhfUE9MRV9UQU5HRU5UX1BMQU5FPU9iamVjdC5mcmVlemUobmV3IHlvKHZuLk5PUlRIX1BPTEUsdm4uSEFMRl9VTklUX1NQSEVSRSkpO3ZuLlNPVVRIX1BPTEVfVEFOR0VOVF9QTEFORT1PYmplY3QuZnJlZXplKG5ldyB5byh2bi5TT1VUSF9QT0xFLHZuLkhBTEZfVU5JVF9TUEhFUkUpKTthcj12bn0pO2Z1bmN0aW9uIEpMKHQsZSxuLG8pe2xldCBpPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModCxRTCkuaGVpZ2h0LHM9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhlLHBFKTtzLmhlaWdodD1pLG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4ocyxlKTtsZXQgZj1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG4scEUpO2YuaGVpZ2h0PWktMTAwLG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZixuKX1mdW5jdGlvbiBRXyh0KXtsZXQgZT10LnZlcnRleEZvcm1hdCxuPXQuZ2VvbWV0cnksbz10LnNoYWRvd1ZvbHVtZSxyPW4uYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsaT1oKG4uYXR0cmlidXRlcy5zdCk/bi5hdHRyaWJ1dGVzLnN0LnZhbHVlczp2b2lkIDAscz1yLmxlbmd0aCxmPXQud2FsbCx1PXQudG9wfHxmLGM9dC5ib3R0b218fGY7aWYoZS5zdHx8ZS5ub3JtYWx8fGUudGFuZ2VudHx8ZS5iaXRhbmdlbnR8fG8pe2xldCBsPXQuYm91bmRpbmdSZWN0YW5nbGUscD10LnJvdGF0aW9uQXhpcyxkPXQucHJvamVjdFRvMmQsbT10LmVsbGlwc29pZCxfPXQuc3RSb3RhdGlvbixnPXQucGVyUG9zaXRpb25IZWlnaHQsYj1zRjtiLng9bC54LGIueT1sLnk7bGV0IE89ZS5zdD9uZXcgRmxvYXQzMkFycmF5KDIqKHMvMykpOnZvaWQgMCxUO2Uubm9ybWFsJiYoZyYmdSYmIWY/VD1uLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlczpUPW5ldyBGbG9hdDMyQXJyYXkocykpO2xldCBFPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHMpOnZvaWQgMCx3PWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkocyk6dm9pZCAwLEM9bz9uZXcgRmxvYXQzMkFycmF5KHMpOnZvaWQgMCxOPTAsST0wLEw9ZUYsdj1uRixEPW9GLFU9ITAsQT1mRixTPXVGO2lmKF8hPT0wKXtsZXQgaj1uZS5mcm9tQXhpc0FuZ2xlKHAsXyxtRSk7QT10dC5mcm9tUXVhdGVybmlvbihqLEEpLGo9bmUuZnJvbUF4aXNBbmdsZShwLC1fLG1FKSxTPXR0LmZyb21RdWF0ZXJuaW9uKGosUyl9ZWxzZSBBPXR0LmNsb25lKHR0LklERU5USVRZLEEpLFM9dHQuY2xvbmUodHQuSURFTlRJVFksUyk7bGV0IFA9MCxGPTA7dSYmYyYmKFA9cy8yLEY9cy8zLHMvPTIpO2ZvcihsZXQgaj0wO2o8cztqKz0zKXtsZXQgSD1hLmZyb21BcnJheShyLGosYUYpO2lmKGUuc3QmJiFoKGkpKXtsZXQgaz10dC5tdWx0aXBseUJ5VmVjdG9yKEEsSCx0Rik7az1tLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoayxrKTtsZXQgSz1kKGssY0YpO250LnN1YnRyYWN0KEssYixLKTtsZXQgWD1NLmNsYW1wKEsueC9sLndpZHRoLDAsMSksUj1NLmNsYW1wKEsueS9sLmhlaWdodCwwLDEpO2MmJihPW04rRl09WCxPW04rMStGXT1SKSx1JiYoT1tOXT1YLE9bTisxXT1SKSxOKz0yfWlmKGUubm9ybWFsfHxlLnRhbmdlbnR8fGUuYml0YW5nZW50fHxvKXtsZXQgaz1JKzEsSz1JKzI7aWYoZil7aWYoaiszPHMpe2xldCBYPWEuZnJvbUFycmF5KHIsaiszLHJGKTtpZihVKXtsZXQgUj1hLmZyb21BcnJheShyLGorcyxpRik7ZyYmSkwoSCxYLFIsbSksYS5zdWJ0cmFjdChYLEgsWCksYS5zdWJ0cmFjdChSLEgsUiksTD1hLm5vcm1hbGl6ZShhLmNyb3NzKFIsWCxMKSxMKSxVPSExfWEuZXF1YWxzRXBzaWxvbihYLEgsTS5FUFNJTE9OMTApJiYoVT0hMCl9KGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpJiYoRD1tLmdlb2RldGljU3VyZmFjZU5vcm1hbChILEQpLGUudGFuZ2VudCYmKHY9YS5ub3JtYWxpemUoYS5jcm9zcyhELEwsdiksdikpKX1lbHNlIEw9bS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoSCxMKSwoZS50YW5nZW50fHxlLmJpdGFuZ2VudCkmJihnJiYoSWQ9YS5mcm9tQXJyYXkoVCxJLElkKSxkaT1hLmNyb3NzKGEuVU5JVF9aLElkLGRpKSxkaT1hLm5vcm1hbGl6ZSh0dC5tdWx0aXBseUJ5VmVjdG9yKFMsZGksZGkpLGRpKSxlLmJpdGFuZ2VudCYmKE1hPWEubm9ybWFsaXplKGEuY3Jvc3MoSWQsZGksTWEpLE1hKSkpLHY9YS5jcm9zcyhhLlVOSVRfWixMLHYpLHY9YS5ub3JtYWxpemUodHQubXVsdGlwbHlCeVZlY3RvcihTLHYsdiksdiksZS5iaXRhbmdlbnQmJihEPWEubm9ybWFsaXplKGEuY3Jvc3MoTCx2LEQpLEQpKSk7ZS5ub3JtYWwmJih0LndhbGw/KFRbSStQXT1MLngsVFtrK1BdPUwueSxUW0srUF09TC56KTpjJiYoVFtJK1BdPS1MLngsVFtrK1BdPS1MLnksVFtLK1BdPS1MLnopLCh1JiYhZ3x8ZikmJihUW0ldPUwueCxUW2tdPUwueSxUW0tdPUwueikpLG8mJihmJiYoTD1tLmdlb2RldGljU3VyZmFjZU5vcm1hbChILEwpKSxDW0krUF09LUwueCxDW2srUF09LUwueSxDW0srUF09LUwueiksZS50YW5nZW50JiYodC53YWxsPyhFW0krUF09di54LEVbaytQXT12LnksRVtLK1BdPXYueik6YyYmKEVbSStQXT0tdi54LEVbaytQXT0tdi55LEVbSytQXT0tdi56KSx1JiYoZz8oRVtJXT1kaS54LEVba109ZGkueSxFW0tdPWRpLnopOihFW0ldPXYueCxFW2tdPXYueSxFW0tdPXYueikpKSxlLmJpdGFuZ2VudCYmKGMmJih3W0krUF09RC54LHdbaytQXT1ELnksd1tLK1BdPUQueiksdSYmKGc/KHdbSV09TWEueCx3W2tdPU1hLnksd1tLXT1NYS56KTood1tJXT1ELngsd1trXT1ELnksd1tLXT1ELnopKSksSSs9M319ZS5zdCYmIWgoaSkmJihuLmF0dHJpYnV0ZXMuc3Q9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOk99KSksZS5ub3JtYWwmJihuLmF0dHJpYnV0ZXMubm9ybWFsPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpUfSkpLGUudGFuZ2VudCYmKG4uYXR0cmlidXRlcy50YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpFfSkpLGUuYml0YW5nZW50JiYobi5hdHRyaWJ1dGVzLmJpdGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6d30pKSxvJiYobi5hdHRyaWJ1dGVzLmV4dHJ1ZGVEaXJlY3Rpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkN9KSl9aWYodC5leHRydWRlJiZoKHQub2Zmc2V0QXR0cmlidXRlKSl7bGV0IGw9ci5sZW5ndGgvMyxwPW5ldyBVaW50OEFycmF5KGwpO2lmKHQub2Zmc2V0QXR0cmlidXRlPT09YWUuVE9QKXUmJmN8fGY/cD1wLmZpbGwoMSwwLGwvMik6dSYmKHA9cC5maWxsKDEpKTtlbHNle2xldCBkPXQub2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjE7cD1wLmZpbGwoZCl9bi5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnB9KX1yZXR1cm4gbn1mdW5jdGlvbiBkRih0LGUsbixvLHIpe2lmKHI9eChyLG5ldyBQdCksIWgodCl8fHQubGVuZ3RoPDMpcmV0dXJuIHIud2VzdD0wLHIubm9ydGg9MCxyLnNvdXRoPTAsci5lYXN0PTAscjtpZihuPT09dWUuUkhVTUIpcmV0dXJuIFB0LmZyb21DYXJ0ZXNpYW5BcnJheSh0LGUscik7TmEuZWxsaXBzb2lkLmVxdWFscyhlKXx8KE5hPW5ldyBfYyh2b2lkIDAsdm9pZCAwLGUpKSxyLndlc3Q9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHIuZWFzdD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksci5zb3V0aD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksci5ub3J0aD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksRXMud2VzdE92ZXJJREw9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLEVzLmVhc3RPdmVySURMPU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtsZXQgaT0xL00uY2hvcmRMZW5ndGgobyxlLm1heGltdW1SYWRpdXMpLHM9dC5sZW5ndGgsZj1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHRbMF0scEYpLHU9bEYsYztmb3IobGV0IGw9MTtsPHM7bCsrKWM9dSx1PWYsZj1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHRbbF0sYyksTmEuc2V0RW5kUG9pbnRzKHUsZiksaEUoTmEsaSxyLEVzKTtyZXR1cm4gYz11LHU9ZixmPWUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModFswXSxjKSxOYS5zZXRFbmRQb2ludHModSxmKSxoRShOYSxpLHIsRXMpLHIuZWFzdC1yLndlc3Q+RXMuZWFzdE92ZXJJREwtRXMud2VzdE92ZXJJREwmJihyLndlc3Q9RXMud2VzdE92ZXJJREwsci5lYXN0PUVzLmVhc3RPdmVySURMLHIuZWFzdD5NLlBJJiYoci5lYXN0PXIuZWFzdC1NLlRXT19QSSksci53ZXN0Pk0uUEkmJihyLndlc3Q9ci53ZXN0LU0uVFdPX1BJKSkscn1mdW5jdGlvbiBoRSh0LGUsbixvKXtsZXQgcj10LnN1cmZhY2VEaXN0YW5jZSxpPU1hdGguY2VpbChyKmUpLHM9aT4wP3IvKGktMSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGY9MDtmb3IobGV0IHU9MDt1PGk7dSsrKXtsZXQgYz10LmludGVycG9sYXRlVXNpbmdTdXJmYWNlRGlzdGFuY2UoZixtRik7Zis9cztsZXQgbD1jLmxvbmdpdHVkZSxwPWMubGF0aXR1ZGU7bi53ZXN0PU1hdGgubWluKG4ud2VzdCxsKSxuLmVhc3Q9TWF0aC5tYXgobi5lYXN0LGwpLG4uc291dGg9TWF0aC5taW4obi5zb3V0aCxwKSxuLm5vcnRoPU1hdGgubWF4KG4ubm9ydGgscCk7bGV0IGQ9bD49MD9sOmwrTS5UV09fUEk7by53ZXN0T3ZlcklETD1NYXRoLm1pbihvLndlc3RPdmVySURMLGQpLG8uZWFzdE92ZXJJREw9TWF0aC5tYXgoby5lYXN0T3ZlcklETCxkKX19ZnVuY3Rpb24gaEYodCxlLG4sbyxyLGkscyxmLHUsYyl7bGV0IGw9e3dhbGxzOltdfSxwO2lmKHN8fGYpe2xldCBUPXllLmNyZWF0ZUdlb21ldHJ5RnJvbVBvc2l0aW9ucyh0LGUsbixvLGksdSxjKSxFPVQuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsdz1ULmluZGljZXMsQyxOO2lmKHMmJmYpe2xldCBJPUUuY29uY2F0KEUpO0M9SS5sZW5ndGgvMyxOPUR0LmNyZWF0ZVR5cGVkQXJyYXkoQyx3Lmxlbmd0aCoyKSxOLnNldCh3KTtsZXQgTD13Lmxlbmd0aCx2PUMvMjtmb3IocD0wO3A8TDtwKz0zKXtsZXQgRD1OW3BdK3YsVT1OW3ArMV0rdixBPU5bcCsyXSt2O05bcCtMXT1BLE5bcCsxK0xdPVUsTltwKzIrTF09RH1pZihULmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPUksaSYmdS5ub3JtYWwpe2xldCBEPVQuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzO1QuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzPW5ldyBGbG9hdDMyQXJyYXkoSS5sZW5ndGgpLFQuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzLnNldChEKX1pZih1LnN0JiZoKG4pKXtsZXQgRD1ULmF0dHJpYnV0ZXMuc3QudmFsdWVzO1QuYXR0cmlidXRlcy5zdC52YWx1ZXM9bmV3IEZsb2F0MzJBcnJheShDKjIpLFQuYXR0cmlidXRlcy5zdC52YWx1ZXM9RC5jb25jYXQoRCl9VC5pbmRpY2VzPU59ZWxzZSBpZihmKXtmb3IoQz1FLmxlbmd0aC8zLE49RHQuY3JlYXRlVHlwZWRBcnJheShDLHcubGVuZ3RoKSxwPTA7cDx3Lmxlbmd0aDtwKz0zKU5bcF09d1twKzJdLE5bcCsxXT13W3ArMV0sTltwKzJdPXdbcF07VC5pbmRpY2VzPU59bC50b3BBbmRCb3R0b209bmV3IGNvKHtnZW9tZXRyeTpUfSl9bGV0IGQ9ci5vdXRlclJpbmcsbT15by5mcm9tUG9pbnRzKGQsdCksXz1tLnByb2plY3RQb2ludHNPbnRvUGxhbmUoZCxfRSksZz1TZS5jb21wdXRlV2luZGluZ09yZGVyMkQoXyk7Zz09PXhvLkNMT0NLV0lTRSYmKGQ9ZC5zbGljZSgpLnJldmVyc2UoKSk7bGV0IGI9eWUuY29tcHV0ZVdhbGxHZW9tZXRyeShkLG4sdCxvLGksYyk7bC53YWxscy5wdXNoKG5ldyBjbyh7Z2VvbWV0cnk6Yn0pKTtsZXQgTz1yLmhvbGVzO2ZvcihwPTA7cDxPLmxlbmd0aDtwKyspe2xldCBUPU9bcF07Xz1tLnByb2plY3RQb2ludHNPbnRvUGxhbmUoVCxfRSksZz1TZS5jb21wdXRlV2luZGluZ09yZGVyMkQoXyksZz09PXhvLkNPVU5URVJfQ0xPQ0tXSVNFJiYoVD1ULnNsaWNlKCkucmV2ZXJzZSgpKSxiPXllLmNvbXB1dGVXYWxsR2VvbWV0cnkoVCxuLHQsbyxpLGMpLGwud2FsbHMucHVzaChuZXcgY28oe2dlb21ldHJ5OmJ9KSl9cmV0dXJuIGx9ZnVuY3Rpb24gZnIodCl7aWYoeS50eXBlT2Yub2JqZWN0KCJvcHRpb25zIix0KSx5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMucG9seWdvbkhpZXJhcmNoeSIsdC5wb2x5Z29uSGllcmFyY2h5KSxoKHQucGVyUG9zaXRpb25IZWlnaHQpJiZ0LnBlclBvc2l0aW9uSGVpZ2h0JiZoKHQuaGVpZ2h0KSl0aHJvdyBuZXcgQigiQ2Fubm90IHVzZSBib3RoIG9wdGlvbnMucGVyUG9zaXRpb25IZWlnaHQgYW5kIG9wdGlvbnMuaGVpZ2h0Iik7aWYoaCh0LmFyY1R5cGUpJiZ0LmFyY1R5cGUhPT11ZS5HRU9ERVNJQyYmdC5hcmNUeXBlIT09dWUuUkhVTUIpdGhyb3cgbmV3IEIoIkludmFsaWQgYXJjVHlwZS4gVmFsaWQgb3B0aW9ucyBhcmUgQXJjVHlwZS5HRU9ERVNJQyBhbmQgQXJjVHlwZS5SSFVNQi4iKTtsZXQgZT10LnBvbHlnb25IaWVyYXJjaHksbj14KHQudmVydGV4Rm9ybWF0LGx0LkRFRkFVTFQpLG89eCh0LmVsbGlwc29pZCwkLldHUzg0KSxyPXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksaT14KHQuc3RSb3RhdGlvbiwwKSxzPXQudGV4dHVyZUNvb3JkaW5hdGVzLGY9eCh0LnBlclBvc2l0aW9uSGVpZ2h0LCExKSx1PWYmJmgodC5leHRydWRlZEhlaWdodCksYz14KHQuaGVpZ2h0LDApLGw9eCh0LmV4dHJ1ZGVkSGVpZ2h0LGMpO2lmKCF1KXtsZXQgcD1NYXRoLm1heChjLGwpO2w9TWF0aC5taW4oYyxsKSxjPXB9dGhpcy5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKG4pLHRoaXMuX2VsbGlwc29pZD0kLmNsb25lKG8pLHRoaXMuX2dyYW51bGFyaXR5PXIsdGhpcy5fc3RSb3RhdGlvbj1pLHRoaXMuX2hlaWdodD1jLHRoaXMuX2V4dHJ1ZGVkSGVpZ2h0PWwsdGhpcy5fY2xvc2VUb3A9eCh0LmNsb3NlVG9wLCEwKSx0aGlzLl9jbG9zZUJvdHRvbT14KHQuY2xvc2VCb3R0b20sITApLHRoaXMuX3BvbHlnb25IaWVyYXJjaHk9ZSx0aGlzLl9wZXJQb3NpdGlvbkhlaWdodD1mLHRoaXMuX3BlclBvc2l0aW9uSGVpZ2h0RXh0cnVkZT11LHRoaXMuX3NoYWRvd1ZvbHVtZT14KHQuc2hhZG93Vm9sdW1lLCExKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVQb2x5Z29uR2VvbWV0cnkiLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl9hcmNUeXBlPXgodC5hcmNUeXBlLHVlLkdFT0RFU0lDKSx0aGlzLl9yZWN0YW5nbGU9dm9pZCAwLHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9dm9pZCAwLHRoaXMuX3RleHR1cmVDb29yZGluYXRlcz1zLHRoaXMucGFja2VkTGVuZ3RoPXllLmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgoZSxhKSskLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGgrKHM/eWUuY29tcHV0ZUhpZXJhcmNoeVBhY2tlZExlbmd0aChzLG50KToxKSsxMn1mdW5jdGlvbiB5RSh0LGUsbixvLHIsaSl7bGV0IHM9dC5sb25naXR1ZGUsZj1zPj0wP3M6cytNLlRXT19QSTtyLndlc3RPdmVySWRsPU1hdGgubWluKHIud2VzdE92ZXJJZGwsZiksci5lYXN0T3ZlcklkbD1NYXRoLm1heChyLmVhc3RPdmVySWRsLGYpLGkud2VzdD1NYXRoLm1pbihpLndlc3QscyksaS5lYXN0PU1hdGgubWF4KGkuZWFzdCxzKTtsZXQgdT10LmdldExhdGl0dWRlKG4pLGM9dTtpZihpLnNvdXRoPU1hdGgubWluKGkuc291dGgsdSksaS5ub3J0aD1NYXRoLm1heChpLm5vcnRoLHUpLG8hPT11ZS5SSFVNQil7bGV0IGQ9bnQuc3VidHJhY3QoZS5wb3NpdGlvbix0LnBvc2l0aW9uLEFGKSxtPW50LmRvdChlLnBvc2l0aW9uLGQpL250LmRvdChkLGQpO2lmKG0+MCYmbTwxKXtsZXQgXz1udC5hZGQoZS5wb3NpdGlvbixudC5tdWx0aXBseUJ5U2NhbGFyKGQsLW0sZCksYkYpLGc9YXIuY2xvbmUoZSx3Rik7Zy5wb3NpdGlvbj1fO2xldCBiPWcuZ2V0TGF0aXR1ZGUobik7aS5zb3V0aD1NYXRoLm1pbihpLnNvdXRoLGIpLGkubm9ydGg9TWF0aC5tYXgoaS5ub3J0aCxiKSxNYXRoLmFicyh1KT5NYXRoLmFicyhiKSYmKGM9Yil9fWxldCBsPWUueCp0LnktdC54KmUueSxwPU1hdGguc2lnbihsKTtwIT09MCYmKHAqPW50LmFuZ2xlQmV0d2VlbihlLnBvc2l0aW9uLHQucG9zaXRpb24pKSxjPj0wJiYoci5ub3J0aEFuZ2xlKz1wKSxjPD0wJiYoci5zb3V0aEFuZ2xlKz1wKX1mdW5jdGlvbiBFRih0LGUsbil7cmV0dXJuIHQuaGVpZ2h0Pj1NLlBJfHx0LndpZHRoPj1NLlBJP2FyLmZyb21DYXJ0ZXNpYW4oZVswXSxPRikudGFuZ2VudFBsYW5lOnlvLmZyb21Qb2ludHMoZSxuKX1mdW5jdGlvbiBSRih0LGUsbil7cmV0dXJuKG8scik9PntpZih0LmhlaWdodD49TS5QSXx8dC53aWR0aD49TS5QSSl7aWYodC5zb3V0aDwwJiZ0Lm5vcnRoPjApe2gocil8fChyPVtdKTtmb3IobGV0IHM9MDtzPG8ubGVuZ3RoOysrcyl7bGV0IGY9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhvW3NdLEFFKTtyW3NdPW5ldyBudChmLmxvbmdpdHVkZS9NLlBJLGYubGF0aXR1ZGUvTS5QSV9PVkVSX1RXTyl9cmV0dXJuIHIubGVuZ3RoPW8ubGVuZ3RoLHJ9cmV0dXJuIGFyLmZyb21DYXJ0ZXNpYW5BcnJheShvLHIpfXJldHVybiB5by5mcm9tUG9pbnRzKGUsbikucHJvamVjdFBvaW50c09udG9QbGFuZShvLHIpfX1mdW5jdGlvbiBTRih0LGUsbil7aWYodC5oZWlnaHQ+PU0uUEl8fHQud2lkdGg+PU0uUEkpcmV0dXJuKHIsaSk9PntpZih0LnNvdXRoPDAmJnQubm9ydGg+MCl7bGV0IHM9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhyLEFFKTtyZXR1cm4gaChpKXx8KGk9bmV3IG50KSxpLng9cy5sb25naXR1ZGUvTS5QSSxpLnk9cy5sYXRpdHVkZS9NLlBJX09WRVJfVFdPLGl9cmV0dXJuIGFyLmZyb21DYXJ0ZXNpYW4ocixpKX07bGV0IG89eW8uZnJvbVBvaW50cyhlLG4pO3JldHVybihyLGkpPT5vLnByb2plY3RQb2ludHNPbnRvUGxhbmUocixpKX1mdW5jdGlvbiBDRih0LGUsbixvKXtyZXR1cm4ocixpKT0+IW8mJih0LmhlaWdodD49TS5QSV9PVkVSX1RXT3x8dC53aWR0aD49MipNLlBJX09WRVJfVEhSRUUpP3llLnNwbGl0UG9seWdvbnNPbkVxdWF0b3IocixlLG4saSk6cn1mdW5jdGlvbiB4Rih0LGUsbixvKXtpZihlLmhlaWdodD49TS5QSXx8ZS53aWR0aD49TS5QSSlyZXR1cm4gSHIuZnJvbVJlY3RhbmdsZShlLHZvaWQgMCxkRSk7bGV0IHI9dCxpPXlvLmZyb21Qb2ludHMocixuKTtyZXR1cm4geWUuY29tcHV0ZUJvdW5kaW5nUmVjdGFuZ2xlKGkucGxhbmUubm9ybWFsLGkucHJvamVjdFBvaW50T250b1BsYW5lLmJpbmQoaSkscixvLGRFKX1mdW5jdGlvbiBQRih0KXtsZXQgZT0tdC5fc3RSb3RhdGlvbjtpZihlPT09MClyZXR1cm5bMCwwLDAsMSwxLDBdO2xldCBuPXQuX2VsbGlwc29pZCxvPXQuX3BvbHlnb25IaWVyYXJjaHkucG9zaXRpb25zLHI9dC5yZWN0YW5nbGU7cmV0dXJuIEZ0Ll90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzKG8sZSxuLHIpfXZhciBRTCxwRSxkRSx0RixlRixuRixvRixyRixpRixJZCxkaSxNYSxzRixjRixhRixtRSxmRix1RixsRixwRixFcyxOYSxtRixfRSxfRix5RixnRixBRixiRix3RixnRSxURixScixPRixBRSxKXyxiRT1aKCgpPT57ZmMoKTt4ZigpO1BlKCk7emUoKTtVdCgpO3ZlKCk7WXQoKTtEZSgpO0l0KCk7YXQoKTt1RSgpO0h0KCk7WnQoKTtjZCgpO3BhKCk7WGUoKTtZZSgpO3NjKCk7Rm8oKTtzaSgpOyRlKCk7V3QoKTtGbigpO0xmKCk7cXIoKTskbygpO0FuKCk7bEUoKTtSbygpO2xjKCk7UUw9bmV3IGN0LHBFPW5ldyBjdDtkRT1uZXcgSHIsdEY9bmV3IGEsZUY9bmV3IGEsbkY9bmV3IGEsb0Y9bmV3IGEsckY9bmV3IGEsaUY9bmV3IGEsSWQ9bmV3IGEsZGk9bmV3IGEsTWE9bmV3IGEsc0Y9bmV3IG50LGNGPW5ldyBudCxhRj1uZXcgYSxtRT1uZXcgbmUsZkY9bmV3IHR0LHVGPW5ldyB0dDtsRj1uZXcgY3QscEY9bmV3IGN0LEVzPXt3ZXN0T3ZlcklETDowLGVhc3RPdmVySURMOjB9LE5hPW5ldyBfYzttRj1uZXcgY3Q7X0U9W107ZnIuZnJvbVBvc2l0aW9ucz1mdW5jdGlvbih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCkseS5kZWZpbmVkKCJvcHRpb25zLnBvc2l0aW9ucyIsdC5wb3NpdGlvbnMpO2xldCBlPXtwb2x5Z29uSGllcmFyY2h5Ontwb3NpdGlvbnM6dC5wb3NpdGlvbnN9LGhlaWdodDp0LmhlaWdodCxleHRydWRlZEhlaWdodDp0LmV4dHJ1ZGVkSGVpZ2h0LHZlcnRleEZvcm1hdDp0LnZlcnRleEZvcm1hdCxzdFJvdGF0aW9uOnQuc3RSb3RhdGlvbixlbGxpcHNvaWQ6dC5lbGxpcHNvaWQsZ3JhbnVsYXJpdHk6dC5ncmFudWxhcml0eSxwZXJQb3NpdGlvbkhlaWdodDp0LnBlclBvc2l0aW9uSGVpZ2h0LGNsb3NlVG9wOnQuY2xvc2VUb3AsY2xvc2VCb3R0b206dC5jbG9zZUJvdHRvbSxvZmZzZXRBdHRyaWJ1dGU6dC5vZmZzZXRBdHRyaWJ1dGUsYXJjVHlwZTp0LmFyY1R5cGUsdGV4dHVyZUNvb3JkaW5hdGVzOnQudGV4dHVyZUNvb3JkaW5hdGVzfTtyZXR1cm4gbmV3IGZyKGUpfTtmci5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksbj15ZS5wYWNrUG9seWdvbkhpZXJhcmNoeSh0Ll9wb2x5Z29uSGllcmFyY2h5LGUsbixhKSwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsbHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1sdC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2hlaWdodCxlW24rK109dC5fZXh0cnVkZWRIZWlnaHQsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9zdFJvdGF0aW9uLGVbbisrXT10Ll9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU/MTowLGVbbisrXT10Ll9wZXJQb3NpdGlvbkhlaWdodD8xOjAsZVtuKytdPXQuX2Nsb3NlVG9wPzE6MCxlW24rK109dC5fY2xvc2VCb3R0b20/MTowLGVbbisrXT10Ll9zaGFkb3dWb2x1bWU/MTowLGVbbisrXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZVtuKytdPXQuX2FyY1R5cGUsaCh0Ll90ZXh0dXJlQ29vcmRpbmF0ZXMpP249eWUucGFja1BvbHlnb25IaWVyYXJjaHkodC5fdGV4dHVyZUNvb3JkaW5hdGVzLGUsbixudCk6ZVtuKytdPS0xLGVbbisrXT10LnBhY2tlZExlbmd0aCxlfTtfRj0kLmNsb25lKCQuVU5JVF9TUEhFUkUpLHlGPW5ldyBsdCxnRj17cG9seWdvbkhpZXJhcmNoeTp7fX07ZnIudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz15ZS51bnBhY2tQb2x5Z29uSGllcmFyY2h5KHQsZSxhKTtlPW8uc3RhcnRpbmdJbmRleCxkZWxldGUgby5zdGFydGluZ0luZGV4O2xldCByPSQudW5wYWNrKHQsZSxfRik7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IGk9bHQudW5wYWNrKHQsZSx5Rik7ZSs9bHQucGFja2VkTGVuZ3RoO2xldCBzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXSxjPXRbZSsrXSxsPXRbZSsrXT09PTEscD10W2UrK109PT0xLGQ9dFtlKytdPT09MSxtPXRbZSsrXT09PTEsXz10W2UrK109PT0xLGc9dFtlKytdLGI9dFtlKytdLE89dFtlXT09PS0xP3ZvaWQgMDp5ZS51bnBhY2tQb2x5Z29uSGllcmFyY2h5KHQsZSxudCk7aChPKT8oZT1PLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIE8uc3RhcnRpbmdJbmRleCk6ZSsrO2xldCBUPXRbZSsrXTtyZXR1cm4gaChuKXx8KG49bmV3IGZyKGdGKSksbi5fcG9seWdvbkhpZXJhcmNoeT1vLG4uX2VsbGlwc29pZD0kLmNsb25lKHIsbi5fZWxsaXBzb2lkKSxuLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUoaSxuLl92ZXJ0ZXhGb3JtYXQpLG4uX2hlaWdodD1zLG4uX2V4dHJ1ZGVkSGVpZ2h0PWYsbi5fZ3JhbnVsYXJpdHk9dSxuLl9zdFJvdGF0aW9uPWMsbi5fcGVyUG9zaXRpb25IZWlnaHRFeHRydWRlPWwsbi5fcGVyUG9zaXRpb25IZWlnaHQ9cCxuLl9jbG9zZVRvcD1kLG4uX2Nsb3NlQm90dG9tPW0sbi5fc2hhZG93Vm9sdW1lPV8sbi5fb2Zmc2V0QXR0cmlidXRlPWc9PT0tMT92b2lkIDA6ZyxuLl9hcmNUeXBlPWIsbi5fdGV4dHVyZUNvb3JkaW5hdGVzPU8sbi5wYWNrZWRMZW5ndGg9VCxufTtBRj1uZXcgbnQsYkY9bmV3IG50LHdGPW5ldyBhcjtnRT1uZXcgYXIsVEY9bmV3IGFyLFJyPXtub3J0aEFuZ2xlOjAsc291dGhBbmdsZTowLHdlc3RPdmVySWRsOjAsZWFzdE92ZXJJZGw6MH07ZnIuY29tcHV0ZVJlY3RhbmdsZUZyb21Qb3NpdGlvbnM9ZnVuY3Rpb24odCxlLG4sbyl7aWYoeS5kZWZpbmVkKCJwb3NpdGlvbnMiLHQpLGgobyl8fChvPW5ldyBQdCksdC5sZW5ndGg8MylyZXR1cm4gbztvLndlc3Q9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLG8uZWFzdD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksby5zb3V0aD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksby5ub3J0aD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksUnIubm9ydGhBbmdsZT0wLFJyLnNvdXRoQW5nbGU9MCxSci53ZXN0T3ZlcklkbD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksUnIuZWFzdE92ZXJJZGw9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2xldCByPXQubGVuZ3RoLGk9YXIuZnJvbUNhcnRlc2lhbih0WzBdLFRGKTtmb3IobGV0IHM9MTtzPHI7cysrKXtsZXQgZj1hci5mcm9tQ2FydGVzaWFuKHRbc10sZ0UpO3lFKGYsaSxlLG4sUnIsbyksaT1hci5jbG9uZShmLGkpfXJldHVybiB5RShhci5mcm9tQ2FydGVzaWFuKHRbMF0sZ0UpLGksZSxuLFJyLG8pLG8uZWFzdC1vLndlc3Q+UnIuZWFzdE92ZXJJZGwtUnIud2VzdE92ZXJJZGwmJihvLndlc3Q9UnIud2VzdE92ZXJJZGwsby5lYXN0PVJyLmVhc3RPdmVySWRsLG8uZWFzdD5NLlBJJiYoby5lYXN0PW8uZWFzdC1NLlRXT19QSSksby53ZXN0Pk0uUEkmJihvLndlc3Q9by53ZXN0LU0uVFdPX1BJKSksTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKFJyLm5vcnRoQW5nbGUpLE0uVFdPX1BJLE0uRVBTSUxPTjEwKSYmKG8ubm9ydGg9TS5QSV9PVkVSX1RXTyxvLmVhc3Q9TS5QSSxvLndlc3Q9LU0uUEkpLE0uZXF1YWxzRXBzaWxvbihNYXRoLmFicyhSci5zb3V0aEFuZ2xlKSxNLlRXT19QSSxNLkVQU0lMT04xMCkmJihvLnNvdXRoPS1NLlBJX09WRVJfVFdPLG8uZWFzdD1NLlBJLG8ud2VzdD0tTS5QSSksb307ZnIuY29tcHV0ZVJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgib3B0aW9ucyIsdCkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLnBvbHlnb25IaWVyYXJjaHkiLHQucG9seWdvbkhpZXJhcmNoeSksZkUoIlBvbHlnb25HZW9tZXRyeS5jb21wdXRlUmVjdGFuZ2xlIiwiUG9seWdvbkdlb21ldHJ5LmNvbXB1dGVSZWN0YW5nbGUgd2FzIGRlcHJlY2F0ZWQgaW4gQ2VzaXVtSlMgMS4xMTAuICBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gQ2VzaXVtSlMgMS4xMTIuIFVzZSBQb2x5Z29uR2VvbWV0cnkuY29tcHV0ZVJlY3RhbmdsZUZyb21Qb3NpdGlvbnMgaW5zdGVhZC4iKTtsZXQgbj14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLG89eCh0LmFyY1R5cGUsdWUuR0VPREVTSUMpO2lmKG8hPT11ZS5HRU9ERVNJQyYmbyE9PXVlLlJIVU1CKXRocm93IG5ldyBCKCJJbnZhbGlkIGFyY1R5cGUuIFZhbGlkIG9wdGlvbnMgYXJlIEFyY1R5cGUuR0VPREVTSUMgYW5kIEFyY1R5cGUuUkhVTUIuIik7bGV0IHI9dC5wb2x5Z29uSGllcmFyY2h5LGk9eCh0LmVsbGlwc29pZCwkLldHUzg0KTtyZXR1cm4gZEYoci5wb3NpdGlvbnMsaSxvLG4sZSl9O09GPW5ldyBhcjtBRT1uZXcgY3Q7ZnIuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fdmVydGV4Rm9ybWF0LG49dC5fZWxsaXBzb2lkLG89dC5fZ3JhbnVsYXJpdHkscj10Ll9zdFJvdGF0aW9uLGk9dC5fcG9seWdvbkhpZXJhcmNoeSxzPXQuX3BlclBvc2l0aW9uSGVpZ2h0LGY9dC5fY2xvc2VUb3AsdT10Ll9jbG9zZUJvdHRvbSxjPXQuX2FyY1R5cGUsbD10Ll90ZXh0dXJlQ29vcmRpbmF0ZXMscD1oKGwpLGQ9aS5wb3NpdGlvbnM7aWYoZC5sZW5ndGg8MylyZXR1cm47bGV0IG09dC5yZWN0YW5nbGUsXz15ZS5wb2x5Z29uc0Zyb21IaWVyYXJjaHkoaSxwLFJGKG0sZCxuKSwhcyxuLENGKG0sbixjLHMpKSxnPV8uaGllcmFyY2h5LGI9Xy5wb2x5Z29ucyxPPWZ1bmN0aW9uKFApe3JldHVybiBQfSxUPXA/eWUucG9seWdvbnNGcm9tSGllcmFyY2h5KGwsITAsTywhMSxuKS5wb2x5Z29uczp2b2lkIDA7aWYoZy5sZW5ndGg9PT0wKXJldHVybjtsZXQgRT1nWzBdLm91dGVyUmluZyx3PXhGKEUsbSxuLHIpLEM9W10sTj10Ll9oZWlnaHQsST10Ll9leHRydWRlZEhlaWdodCxMPXQuX3BlclBvc2l0aW9uSGVpZ2h0RXh0cnVkZXx8IU0uZXF1YWxzRXBzaWxvbihOLEksMCxNLkVQU0lMT04yKSx2PXtwZXJQb3NpdGlvbkhlaWdodDpzLHZlcnRleEZvcm1hdDplLGdlb21ldHJ5OnZvaWQgMCxyb3RhdGlvbkF4aXM6RUYobSxFLG4pLnBsYW5lLm5vcm1hbCxwcm9qZWN0VG8yZDpTRihtLEUsbiksYm91bmRpbmdSZWN0YW5nbGU6dyxlbGxpcHNvaWQ6bixzdFJvdGF0aW9uOnIsdGV4dHVyZUNvb3JkaW5hdGVzOnZvaWQgMCxib3R0b206ITEsdG9wOiEwLHdhbGw6ITEsZXh0cnVkZTohMSxhcmNUeXBlOmN9LEQ7aWYoTClmb3Iodi5leHRydWRlPSEwLHYudG9wPWYsdi5ib3R0b209dSx2LnNoYWRvd1ZvbHVtZT10Ll9zaGFkb3dWb2x1bWUsdi5vZmZzZXRBdHRyaWJ1dGU9dC5fb2Zmc2V0QXR0cmlidXRlLEQ9MDtEPGIubGVuZ3RoO0QrKyl7bGV0IFA9aEYobixiW0RdLHA/VFtEXTp2b2lkIDAsbyxnW0RdLHMsZix1LGUsYyksRjtmJiZ1PyhGPVAudG9wQW5kQm90dG9tLHYuZ2VvbWV0cnk9eWUuc2NhbGVUb0dlb2RldGljSGVpZ2h0RXh0cnVkZWQoRi5nZW9tZXRyeSxOLEksbixzKSk6Zj8oRj1QLnRvcEFuZEJvdHRvbSxGLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPVNlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChGLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLE4sbiwhcyksdi5nZW9tZXRyeT1GLmdlb21ldHJ5KTp1JiYoRj1QLnRvcEFuZEJvdHRvbSxGLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPVNlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChGLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLEksbiwhMCksdi5nZW9tZXRyeT1GLmdlb21ldHJ5KSwoZnx8dSkmJih2LndhbGw9ITEsRi5nZW9tZXRyeT1RXyh2KSxDLnB1c2goRikpO2xldCBqPVAud2FsbHM7di53YWxsPSEwO2ZvcihsZXQgSD0wO0g8ai5sZW5ndGg7SCsrKXtsZXQgaz1qW0hdO3YuZ2VvbWV0cnk9eWUuc2NhbGVUb0dlb2RldGljSGVpZ2h0RXh0cnVkZWQoay5nZW9tZXRyeSxOLEksbixzKSxrLmdlb21ldHJ5PVFfKHYpLEMucHVzaChrKX19ZWxzZSBmb3IoRD0wO0Q8Yi5sZW5ndGg7RCsrKXtsZXQgUD1uZXcgY28oe2dlb21ldHJ5OnllLmNyZWF0ZUdlb21ldHJ5RnJvbVBvc2l0aW9ucyhuLGJbRF0scD9UW0RdOnZvaWQgMCxvLHMsZSxjKX0pO2lmKFAuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9U2Uuc2NhbGVUb0dlb2RldGljSGVpZ2h0KFAuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsTixuLCFzKSx2Lmdlb21ldHJ5PVAuZ2VvbWV0cnksUC5nZW9tZXRyeT1RXyh2KSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBGPVAuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLGo9dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjEsSD1uZXcgVWludDhBcnJheShGLzMpLmZpbGwoaik7UC5nZW9tZXRyeS5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOkh9KX1DLnB1c2goUCl9bGV0IFU9QmUuY29tYmluZUluc3RhbmNlcyhDKVswXTtVLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPW5ldyBGbG9hdDY0QXJyYXkoVS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyksVS5pbmRpY2VzPUR0LmNyZWF0ZVR5cGVkQXJyYXkoVS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgvMyxVLmluZGljZXMpO2xldCBBPVUuYXR0cmlidXRlcyxTPXl0LmZyb21WZXJ0aWNlcyhBLnBvc2l0aW9uLnZhbHVlcyk7cmV0dXJuIGUucG9zaXRpb258fGRlbGV0ZSBBLnBvc2l0aW9uLG5ldyBGdCh7YXR0cmlidXRlczpBLGluZGljZXM6VS5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6VS5wcmltaXRpdmVUeXBlLGJvdW5kaW5nU3BoZXJlOlMsb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtmci5jcmVhdGVTaGFkb3dWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuX2dyYW51bGFyaXR5LHI9dC5fZWxsaXBzb2lkLGk9ZShvLHIpLHM9bihvLHIpO3JldHVybiBuZXcgZnIoe3BvbHlnb25IaWVyYXJjaHk6dC5fcG9seWdvbkhpZXJhcmNoeSxlbGxpcHNvaWQ6cixzdFJvdGF0aW9uOnQuX3N0Um90YXRpb24sZ3JhbnVsYXJpdHk6byxwZXJQb3NpdGlvbkhlaWdodDohMSxleHRydWRlZEhlaWdodDppLGhlaWdodDpzLHZlcnRleEZvcm1hdDpsdC5QT1NJVElPTl9PTkxZLHNoYWRvd1ZvbHVtZTohMCxhcmNUeXBlOnQuX2FyY1R5cGV9KX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZnIucHJvdG90eXBlLHtyZWN0YW5nbGU6e2dldDpmdW5jdGlvbigpe2lmKCFoKHRoaXMuX3JlY3RhbmdsZSkpe2xldCB0PXRoaXMuX3BvbHlnb25IaWVyYXJjaHkucG9zaXRpb25zO3RoaXMuX3JlY3RhbmdsZT1mci5jb21wdXRlUmVjdGFuZ2xlRnJvbVBvc2l0aW9ucyh0LHRoaXMuX2VsbGlwc29pZCx0aGlzLl9hcmNUeXBlKX1yZXR1cm4gdGhpcy5fcmVjdGFuZ2xlfX0sdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cyl8fCh0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzPVBGKHRoaXMpKSx0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzfX19KTtKXz1mcn0pO3ZhciB0eT17fTttZSh0eSx7ZGVmYXVsdDooKT0+TkZ9KTtmdW5jdGlvbiBNRih0LGUpe3JldHVybiBoKGUpJiYodD1KXy51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxKXy5jcmVhdGVHZW9tZXRyeSh0KX12YXIgTkYsZXk9WigoKT0+e2F0KCk7WnQoKTtiRSgpO05GPU1GfSk7ZnVuY3Rpb24gSUYodCxlLG4sbyxyKXtsZXQgcz15by5mcm9tUG9pbnRzKGUsdCkucHJvamVjdFBvaW50c09udG9QbGFuZShlLHdFKTtTZS5jb21wdXRlV2luZGluZ09yZGVyMkQocyk9PT14by5DTE9DS1dJU0UmJihzLnJldmVyc2UoKSxlPWUuc2xpY2UoKS5yZXZlcnNlKCkpO2xldCB1LGMsbD1lLmxlbmd0aCxwPTA7aWYobylmb3IodT1uZXcgRmxvYXQ2NEFycmF5KGwqMiozKSxjPTA7YzxsO2MrKyl7bGV0IF89ZVtjXSxnPWVbKGMrMSklbF07dVtwKytdPV8ueCx1W3ArK109Xy55LHVbcCsrXT1fLnosdVtwKytdPWcueCx1W3ArK109Zy55LHVbcCsrXT1nLnp9ZWxzZXtsZXQgXz0wO2lmKHI9PT11ZS5HRU9ERVNJQylmb3IoYz0wO2M8bDtjKyspXys9eWUuc3ViZGl2aWRlTGluZUNvdW50KGVbY10sZVsoYysxKSVsXSxuKTtlbHNlIGlmKHI9PT11ZS5SSFVNQilmb3IoYz0wO2M8bDtjKyspXys9eWUuc3ViZGl2aWRlUmh1bWJMaW5lQ291bnQodCxlW2NdLGVbKGMrMSklbF0sbik7Zm9yKHU9bmV3IEZsb2F0NjRBcnJheShfKjMpLGM9MDtjPGw7YysrKXtsZXQgZztyPT09dWUuR0VPREVTSUM/Zz15ZS5zdWJkaXZpZGVMaW5lKGVbY10sZVsoYysxKSVsXSxuLHZkKTpyPT09dWUuUkhVTUImJihnPXllLnN1YmRpdmlkZVJodW1iTGluZSh0LGVbY10sZVsoYysxKSVsXSxuLHZkKSk7bGV0IGI9Zy5sZW5ndGg7Zm9yKGxldCBPPTA7TzxiOysrTyl1W3ArK109Z1tPXX19bD11Lmxlbmd0aC8zO2xldCBkPWwqMixtPUR0LmNyZWF0ZVR5cGVkQXJyYXkobCxkKTtmb3IocD0wLGM9MDtjPGwtMTtjKyspbVtwKytdPWMsbVtwKytdPWMrMTtyZXR1cm4gbVtwKytdPWwtMSxtW3ArK109MCxuZXcgY28oe2dlb21ldHJ5Om5ldyBGdCh7YXR0cmlidXRlczpuZXcgcmUoe3Bvc2l0aW9uOm5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6dX0pfSksaW5kaWNlczptLHByaW1pdGl2ZVR5cGU6THQuTElORVN9KX0pfWZ1bmN0aW9uIHZGKHQsZSxuLG8scil7bGV0IHM9eW8uZnJvbVBvaW50cyhlLHQpLnByb2plY3RQb2ludHNPbnRvUGxhbmUoZSx3RSk7U2UuY29tcHV0ZVdpbmRpbmdPcmRlcjJEKHMpPT09eG8uQ0xPQ0tXSVNFJiYocy5yZXZlcnNlKCksZT1lLnNsaWNlKCkucmV2ZXJzZSgpKTtsZXQgdSxjLGw9ZS5sZW5ndGgscD1uZXcgQXJyYXkobCksZD0wO2lmKG8pZm9yKHU9bmV3IEZsb2F0NjRBcnJheShsKjIqMyoyKSxjPTA7YzxsOysrYyl7cFtjXT1kLzM7bGV0IGI9ZVtjXSxPPWVbKGMrMSklbF07dVtkKytdPWIueCx1W2QrK109Yi55LHVbZCsrXT1iLnosdVtkKytdPU8ueCx1W2QrK109Ty55LHVbZCsrXT1PLnp9ZWxzZXtsZXQgYj0wO2lmKHI9PT11ZS5HRU9ERVNJQylmb3IoYz0wO2M8bDtjKyspYis9eWUuc3ViZGl2aWRlTGluZUNvdW50KGVbY10sZVsoYysxKSVsXSxuKTtlbHNlIGlmKHI9PT11ZS5SSFVNQilmb3IoYz0wO2M8bDtjKyspYis9eWUuc3ViZGl2aWRlUmh1bWJMaW5lQ291bnQodCxlW2NdLGVbKGMrMSklbF0sbik7Zm9yKHU9bmV3IEZsb2F0NjRBcnJheShiKjMqMiksYz0wO2M8bDsrK2Mpe3BbY109ZC8zO2xldCBPO3I9PT11ZS5HRU9ERVNJQz9PPXllLnN1YmRpdmlkZUxpbmUoZVtjXSxlWyhjKzEpJWxdLG4sdmQpOnI9PT11ZS5SSFVNQiYmKE89eWUuc3ViZGl2aWRlUmh1bWJMaW5lKHQsZVtjXSxlWyhjKzEpJWxdLG4sdmQpKTtsZXQgVD1PLmxlbmd0aDtmb3IobGV0IEU9MDtFPFQ7KytFKXVbZCsrXT1PW0VdfX1sPXUubGVuZ3RoLygzKjIpO2xldCBtPXAubGVuZ3RoLF89KGwqMittKSoyLGc9RHQuY3JlYXRlVHlwZWRBcnJheShsK20sXyk7Zm9yKGQ9MCxjPTA7YzxsOysrYylnW2QrK109YyxnW2QrK109KGMrMSklbCxnW2QrK109YytsLGdbZCsrXT0oYysxKSVsK2w7Zm9yKGM9MDtjPG07YysrKXtsZXQgYj1wW2NdO2dbZCsrXT1iLGdbZCsrXT1iK2x9cmV0dXJuIG5ldyBjbyh7Z2VvbWV0cnk6bmV3IEZ0KHthdHRyaWJ1dGVzOm5ldyByZSh7cG9zaXRpb246bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczp1fSl9KSxpbmRpY2VzOmcscHJpbWl0aXZlVHlwZTpMdC5MSU5FU30pfSl9ZnVuY3Rpb24gYmModCl7aWYoeS50eXBlT2Yub2JqZWN0KCJvcHRpb25zIix0KSx5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMucG9seWdvbkhpZXJhcmNoeSIsdC5wb2x5Z29uSGllcmFyY2h5KSx0LnBlclBvc2l0aW9uSGVpZ2h0JiZoKHQuaGVpZ2h0KSl0aHJvdyBuZXcgQigiQ2Fubm90IHVzZSBib3RoIG9wdGlvbnMucGVyUG9zaXRpb25IZWlnaHQgYW5kIG9wdGlvbnMuaGVpZ2h0Iik7aWYoaCh0LmFyY1R5cGUpJiZ0LmFyY1R5cGUhPT11ZS5HRU9ERVNJQyYmdC5hcmNUeXBlIT09dWUuUkhVTUIpdGhyb3cgbmV3IEIoIkludmFsaWQgYXJjVHlwZS4gVmFsaWQgb3B0aW9ucyBhcmUgQXJjVHlwZS5HRU9ERVNJQyBhbmQgQXJjVHlwZS5SSFVNQi4iKTtsZXQgZT10LnBvbHlnb25IaWVyYXJjaHksbj14KHQuZWxsaXBzb2lkLCQuV0dTODQpLG89eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxyPXgodC5wZXJQb3NpdGlvbkhlaWdodCwhMSksaT1yJiZoKHQuZXh0cnVkZWRIZWlnaHQpLHM9eCh0LmFyY1R5cGUsdWUuR0VPREVTSUMpLGY9eCh0LmhlaWdodCwwKSx1PXgodC5leHRydWRlZEhlaWdodCxmKTtpZighaSl7bGV0IGM9TWF0aC5tYXgoZix1KTt1PU1hdGgubWluKGYsdSksZj1jfXRoaXMuX2VsbGlwc29pZD0kLmNsb25lKG4pLHRoaXMuX2dyYW51bGFyaXR5PW8sdGhpcy5faGVpZ2h0PWYsdGhpcy5fZXh0cnVkZWRIZWlnaHQ9dSx0aGlzLl9hcmNUeXBlPXMsdGhpcy5fcG9seWdvbkhpZXJhcmNoeT1lLHRoaXMuX3BlclBvc2l0aW9uSGVpZ2h0PXIsdGhpcy5fcGVyUG9zaXRpb25IZWlnaHRFeHRydWRlPWksdGhpcy5fb2Zmc2V0QXR0cmlidXRlPXQub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBvbHlnb25PdXRsaW5lR2VvbWV0cnkiLHRoaXMucGFja2VkTGVuZ3RoPXllLmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgoZSxhKSskLnBhY2tlZExlbmd0aCs4fXZhciB3RSx2ZCxERixMRixueSxURT1aKCgpPT57ZmMoKTtQZSgpO1V0KCk7WXQoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO1p0KCk7cGEoKTtYZSgpO1llKCk7YW4oKTtzYygpO0ZvKCk7c2koKTskZSgpO1d0KCk7TGYoKTtxcigpO3RuKCk7bGMoKTt3RT1bXSx2ZD1bXTtiYy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksbj15ZS5wYWNrUG9seWdvbkhpZXJhcmNoeSh0Ll9wb2x5Z29uSGllcmFyY2h5LGUsbixhKSwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2hlaWdodCxlW24rK109dC5fZXh0cnVkZWRIZWlnaHQsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU/MTowLGVbbisrXT10Ll9wZXJQb3NpdGlvbkhlaWdodD8xOjAsZVtuKytdPXQuX2FyY1R5cGUsZVtuKytdPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlW25dPXQucGFja2VkTGVuZ3RoLGV9O0RGPSQuY2xvbmUoJC5VTklUX1NQSEVSRSksTEY9e3BvbHlnb25IaWVyYXJjaHk6e319O2JjLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89eWUudW5wYWNrUG9seWdvbkhpZXJhcmNoeSh0LGUsYSk7ZT1vLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIG8uc3RhcnRpbmdJbmRleDtsZXQgcj0kLnVucGFjayh0LGUsREYpO2UrPSQucGFja2VkTGVuZ3RoO2xldCBpPXRbZSsrXSxzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXT09PTEsYz10W2UrK109PT0xLGw9dFtlKytdLHA9dFtlKytdLGQ9dFtlXTtyZXR1cm4gaChuKXx8KG49bmV3IGJjKExGKSksbi5fcG9seWdvbkhpZXJhcmNoeT1vLG4uX2VsbGlwc29pZD0kLmNsb25lKHIsbi5fZWxsaXBzb2lkKSxuLl9oZWlnaHQ9aSxuLl9leHRydWRlZEhlaWdodD1zLG4uX2dyYW51bGFyaXR5PWYsbi5fcGVyUG9zaXRpb25IZWlnaHQ9YyxuLl9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU9dSxuLl9hcmNUeXBlPWwsbi5fb2Zmc2V0QXR0cmlidXRlPXA9PT0tMT92b2lkIDA6cCxuLnBhY2tlZExlbmd0aD1kLG59O2JjLmZyb21Qb3NpdGlvbnM9ZnVuY3Rpb24odCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHkuZGVmaW5lZCgib3B0aW9ucy5wb3NpdGlvbnMiLHQucG9zaXRpb25zKTtsZXQgZT17cG9seWdvbkhpZXJhcmNoeTp7cG9zaXRpb25zOnQucG9zaXRpb25zfSxoZWlnaHQ6dC5oZWlnaHQsZXh0cnVkZWRIZWlnaHQ6dC5leHRydWRlZEhlaWdodCxlbGxpcHNvaWQ6dC5lbGxpcHNvaWQsZ3JhbnVsYXJpdHk6dC5ncmFudWxhcml0eSxwZXJQb3NpdGlvbkhlaWdodDp0LnBlclBvc2l0aW9uSGVpZ2h0LGFyY1R5cGU6dC5hcmNUeXBlLG9mZnNldEF0dHJpYnV0ZTp0Lm9mZnNldEF0dHJpYnV0ZX07cmV0dXJuIG5ldyBiYyhlKX07YmMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fZWxsaXBzb2lkLG49dC5fZ3JhbnVsYXJpdHksbz10Ll9wb2x5Z29uSGllcmFyY2h5LHI9dC5fcGVyUG9zaXRpb25IZWlnaHQsaT10Ll9hcmNUeXBlLHM9eWUucG9seWdvbk91dGxpbmVzRnJvbUhpZXJhcmNoeShvLCFyLGUpO2lmKHMubGVuZ3RoPT09MClyZXR1cm47bGV0IGYsdT1bXSxjPU0uY2hvcmRMZW5ndGgobixlLm1heGltdW1SYWRpdXMpLGw9dC5faGVpZ2h0LHA9dC5fZXh0cnVkZWRIZWlnaHQsZD10Ll9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGV8fCFNLmVxdWFsc0Vwc2lsb24obCxwLDAsTS5FUFNJTE9OMiksbSxfO2lmKGQpZm9yKF89MDtfPHMubGVuZ3RoO18rKyl7aWYoZj12RihlLHNbX10sYyxyLGkpLGYuZ2VvbWV0cnk9eWUuc2NhbGVUb0dlb2RldGljSGVpZ2h0RXh0cnVkZWQoZi5nZW9tZXRyeSxsLHAsZSxyKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBPPWYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMsVD1uZXcgVWludDhBcnJheShPKTt0Ll9vZmZzZXRBdHRyaWJ1dGU9PT1hZS5UT1A/VD1ULmZpbGwoMSwwLE8vMik6KG09dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjEsVD1ULmZpbGwobSkpLGYuZ2VvbWV0cnkuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpUfSl9dS5wdXNoKGYpfWVsc2UgZm9yKF89MDtfPHMubGVuZ3RoO18rKyl7aWYoZj1JRihlLHNbX10sYyxyLGkpLGYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9U2Uuc2NhbGVUb0dlb2RldGljSGVpZ2h0KGYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsbCxlLCFyKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBPPWYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoO209dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjE7bGV0IFQ9bmV3IFVpbnQ4QXJyYXkoTy8zKS5maWxsKG0pO2YuZ2VvbWV0cnkuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpUfSl9dS5wdXNoKGYpfWxldCBnPUJlLmNvbWJpbmVJbnN0YW5jZXModSlbMF0sYj15dC5mcm9tVmVydGljZXMoZy5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyk7cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpnLmF0dHJpYnV0ZXMsaW5kaWNlczpnLmluZGljZXMscHJpbWl0aXZlVHlwZTpnLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6YixvZmZzZXRBdHRyaWJ1dGU6dC5fb2Zmc2V0QXR0cmlidXRlfSl9O255PWJjfSk7dmFyIG95PXt9O21lKG95LHtkZWZhdWx0OigpPT5CRn0pO2Z1bmN0aW9uIEZGKHQsZSl7cmV0dXJuIGgoZSkmJih0PW55LnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLG55LmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBCRixyeT1aKCgpPT57YXQoKTtadCgpO1RFKCk7QkY9RkZ9KTtmdW5jdGlvbiBpeSh0LGUsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmKG4tPTEpLG4qNjwxP3QrKGUtdCkqNipuOm4qMjwxP2U6biozPDI/dCsoZS10KSooMi8zLW4pKjY6dH1mdW5jdGlvbiBxKHQsZSxuLG8pe3RoaXMucmVkPXgodCwxKSx0aGlzLmdyZWVuPXgoZSwxKSx0aGlzLmJsdWU9eChuLDEpLHRoaXMuYWxwaGE9eChvLDEpfXZhciBzeSxjeSxIaSxVRixWRixrRixHRixzZSxRZj1aKCgpPT57WXQoKTtJdCgpO2F0KCk7cW0oKTtXdCgpO3EuZnJvbUNhcnRlc2lhbjQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLGgoZSk/KGUucmVkPXQueCxlLmdyZWVuPXQueSxlLmJsdWU9dC56LGUuYWxwaGE9dC53LGUpOm5ldyBxKHQueCx0LnksdC56LHQudyl9O3EuZnJvbUJ5dGVzPWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIHQ9cS5ieXRlVG9GbG9hdCh4KHQsMjU1KSksZT1xLmJ5dGVUb0Zsb2F0KHgoZSwyNTUpKSxuPXEuYnl0ZVRvRmxvYXQoeChuLDI1NSkpLG89cS5ieXRlVG9GbG9hdCh4KG8sMjU1KSksaChyKT8oci5yZWQ9dCxyLmdyZWVuPWUsci5ibHVlPW4sci5hbHBoYT1vLHIpOm5ldyBxKHQsZSxuLG8pfTtxLmZyb21BbHBoYT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY29sb3IiLHQpLHkudHlwZU9mLm51bWJlcigiYWxwaGEiLGUpLGgobik/KG4ucmVkPXQucmVkLG4uZ3JlZW49dC5ncmVlbixuLmJsdWU9dC5ibHVlLG4uYWxwaGE9ZSxuKTpuZXcgcSh0LnJlZCx0LmdyZWVuLHQuYmx1ZSxlKX07enMuc3VwcG9ydHNUeXBlZEFycmF5cygpJiYoc3k9bmV3IEFycmF5QnVmZmVyKDQpLGN5PW5ldyBVaW50MzJBcnJheShzeSksSGk9bmV3IFVpbnQ4QXJyYXkoc3kpKTtxLmZyb21SZ2JhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGN5WzBdPXQscS5mcm9tQnl0ZXMoSGlbMF0sSGlbMV0sSGlbMl0sSGlbM10sZSl9O3EuZnJvbUhzbD1mdW5jdGlvbih0LGUsbixvLHIpe3Q9eCh0LDApJTEsZT14KGUsMCksbj14KG4sMCksbz14KG8sMSk7bGV0IGk9bixzPW4sZj1uO2lmKGUhPT0wKXtsZXQgdTtuPC41P3U9biooMStlKTp1PW4rZS1uKmU7bGV0IGM9MipuLXU7aT1peShjLHUsdCsxLzMpLHM9aXkoYyx1LHQpLGY9aXkoYyx1LHQtMS8zKX1yZXR1cm4gaChyKT8oci5yZWQ9aSxyLmdyZWVuPXMsci5ibHVlPWYsci5hbHBoYT1vLHIpOm5ldyBxKGkscyxmLG8pfTtxLmZyb21SYW5kb209ZnVuY3Rpb24odCxlKXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IG49dC5yZWQ7aWYoIWgobikpe2xldCBzPXgodC5taW5pbXVtUmVkLDApLGY9eCh0Lm1heGltdW1SZWQsMSk7eS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIm1pbmltdW1SZWQiLHMsZiksbj1zK00ubmV4dFJhbmRvbU51bWJlcigpKihmLXMpfWxldCBvPXQuZ3JlZW47aWYoIWgobykpe2xldCBzPXgodC5taW5pbXVtR3JlZW4sMCksZj14KHQubWF4aW11bUdyZWVuLDEpO3kudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJtaW5pbXVtR3JlZW4iLHMsZiksbz1zK00ubmV4dFJhbmRvbU51bWJlcigpKihmLXMpfWxldCByPXQuYmx1ZTtpZighaChyKSl7bGV0IHM9eCh0Lm1pbmltdW1CbHVlLDApLGY9eCh0Lm1heGltdW1CbHVlLDEpO3kudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJtaW5pbXVtQmx1ZSIscyxmKSxyPXMrTS5uZXh0UmFuZG9tTnVtYmVyKCkqKGYtcyl9bGV0IGk9dC5hbHBoYTtpZighaChpKSl7bGV0IHM9eCh0Lm1pbmltdW1BbHBoYSwwKSxmPXgodC5tYXhpbXVtQWxwaGEsMSk7eS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIm1pbnVtdW1BbHBoYSIscyxmKSxpPXMrTS5uZXh0UmFuZG9tTnVtYmVyKCkqKGYtcyl9cmV0dXJuIGgoZSk/KGUucmVkPW4sZS5ncmVlbj1vLGUuYmx1ZT1yLGUuYWxwaGE9aSxlKTpuZXcgcShuLG8scixpKX07VUY9L14jKFswLTlhLWZdKShbMC05YS1mXSkoWzAtOWEtZl0pKFswLTlhLWZdKT8kL2ksVkY9L14jKFswLTlhLWZdezJ9KShbMC05YS1mXXsyfSkoWzAtOWEtZl17Mn0pKFswLTlhLWZdezJ9KT8kL2ksa0Y9L15yZ2JhP1xzKlwoXHMqKFswLTkuXSslPylccypbLFxzXStccyooWzAtOS5dKyU/KVxzKlssXHNdK1xzKihbMC05Ll0rJT8pKD86XHMqWyxccy9dK1xzKihbMC05Ll0rKSk/XHMqXCkkL2ksR0Y9L15oc2xhP1xzKlwoXHMqKFswLTkuXSspXHMqWyxcc10rXHMqKFswLTkuXSslKVxzKlssXHNdK1xzKihbMC05Ll0rJSkoPzpccypbLFxzL10rXHMqKFswLTkuXSspKT9ccypcKSQvaTtxLmZyb21Dc3NDb2xvclN0cmluZz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLnN0cmluZygiY29sb3IiLHQpLGgoZSl8fChlPW5ldyBxKSx0PXQudHJpbSgpO2xldCBuPXFbdC50b1VwcGVyQ2FzZSgpXTtpZihoKG4pKXJldHVybiBxLmNsb25lKG4sZSksZTtsZXQgbz1VRi5leGVjKHQpO3JldHVybiBvIT09bnVsbD8oZS5yZWQ9cGFyc2VJbnQob1sxXSwxNikvMTUsZS5ncmVlbj1wYXJzZUludChvWzJdLDE2KS8xNSxlLmJsdWU9cGFyc2VJbnQob1szXSwxNikvMTUsZS5hbHBoYT1wYXJzZUludCh4KG9bNF0sImYiKSwxNikvMTUsZSk6KG89VkYuZXhlYyh0KSxvIT09bnVsbD8oZS5yZWQ9cGFyc2VJbnQob1sxXSwxNikvMjU1LGUuZ3JlZW49cGFyc2VJbnQob1syXSwxNikvMjU1LGUuYmx1ZT1wYXJzZUludChvWzNdLDE2KS8yNTUsZS5hbHBoYT1wYXJzZUludCh4KG9bNF0sImZmIiksMTYpLzI1NSxlKToobz1rRi5leGVjKHQpLG8hPT1udWxsPyhlLnJlZD1wYXJzZUZsb2F0KG9bMV0pLyhvWzFdLnN1YnN0cigtMSk9PT0iJSI/MTAwOjI1NSksZS5ncmVlbj1wYXJzZUZsb2F0KG9bMl0pLyhvWzJdLnN1YnN0cigtMSk9PT0iJSI/MTAwOjI1NSksZS5ibHVlPXBhcnNlRmxvYXQob1szXSkvKG9bM10uc3Vic3RyKC0xKT09PSIlIj8xMDA6MjU1KSxlLmFscGhhPXBhcnNlRmxvYXQoeChvWzRdLCIxLjAiKSksZSk6KG89R0YuZXhlYyh0KSxvIT09bnVsbD9xLmZyb21Ic2wocGFyc2VGbG9hdChvWzFdKS8zNjAscGFyc2VGbG9hdChvWzJdKS8xMDAscGFyc2VGbG9hdChvWzNdKS8xMDAscGFyc2VGbG9hdCh4KG9bNF0sIjEuMCIpKSxlKTooZT12b2lkIDAsZSkpKSl9O3EucGFja2VkTGVuZ3RoPTQ7cS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQucmVkLGVbbisrXT10LmdyZWVuLGVbbisrXT10LmJsdWUsZVtuXT10LmFscGhhLGV9O3EudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IHEpLG4ucmVkPXRbZSsrXSxuLmdyZWVuPXRbZSsrXSxuLmJsdWU9dFtlKytdLG4uYWxwaGE9dFtlXSxufTtxLmJ5dGVUb0Zsb2F0PWZ1bmN0aW9uKHQpe3JldHVybiB0LzI1NX07cS5mbG9hdFRvQnl0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdD09PTE/MjU1OnQqMjU2fDB9O3EuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLnJlZD10LnJlZCxlLmdyZWVuPXQuZ3JlZW4sZS5ibHVlPXQuYmx1ZSxlLmFscGhhPXQuYWxwaGEsZSk6bmV3IHEodC5yZWQsdC5ncmVlbix0LmJsdWUsdC5hbHBoYSl9O3EuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0LnJlZD09PWUucmVkJiZ0LmdyZWVuPT09ZS5ncmVlbiYmdC5ibHVlPT09ZS5ibHVlJiZ0LmFscGhhPT09ZS5hbHBoYX07cS5lcXVhbHNBcnJheT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQucmVkPT09ZVtuXSYmdC5ncmVlbj09PWVbbisxXSYmdC5ibHVlPT09ZVtuKzJdJiZ0LmFscGhhPT09ZVtuKzNdfTtxLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gcS5jbG9uZSh0aGlzLHQpfTtxLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIHEuZXF1YWxzKHRoaXMsdCl9O3EucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcz09PXR8fGgodCkmJk1hdGguYWJzKHRoaXMucmVkLXQucmVkKTw9ZSYmTWF0aC5hYnModGhpcy5ncmVlbi10LmdyZWVuKTw9ZSYmTWF0aC5hYnModGhpcy5ibHVlLXQuYmx1ZSk8PWUmJk1hdGguYWJzKHRoaXMuYWxwaGEtdC5hbHBoYSk8PWV9O3EucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMucmVkfSwgJHt0aGlzLmdyZWVufSwgJHt0aGlzLmJsdWV9LCAke3RoaXMuYWxwaGF9KWB9O3EucHJvdG90eXBlLnRvQ3NzQ29sb3JTdHJpbmc9ZnVuY3Rpb24oKXtsZXQgdD1xLmZsb2F0VG9CeXRlKHRoaXMucmVkKSxlPXEuZmxvYXRUb0J5dGUodGhpcy5ncmVlbiksbj1xLmZsb2F0VG9CeXRlKHRoaXMuYmx1ZSk7cmV0dXJuIHRoaXMuYWxwaGE9PT0xP2ByZ2IoJHt0fSwke2V9LCR7bn0pYDpgcmdiYSgke3R9LCR7ZX0sJHtufSwke3RoaXMuYWxwaGF9KWB9O3EucHJvdG90eXBlLnRvQ3NzSGV4U3RyaW5nPWZ1bmN0aW9uKCl7bGV0IHQ9cS5mbG9hdFRvQnl0ZSh0aGlzLnJlZCkudG9TdHJpbmcoMTYpO3QubGVuZ3RoPDImJih0PWAwJHt0fWApO2xldCBlPXEuZmxvYXRUb0J5dGUodGhpcy5ncmVlbikudG9TdHJpbmcoMTYpO2UubGVuZ3RoPDImJihlPWAwJHtlfWApO2xldCBuPXEuZmxvYXRUb0J5dGUodGhpcy5ibHVlKS50b1N0cmluZygxNik7aWYobi5sZW5ndGg8MiYmKG49YDAke259YCksdGhpcy5hbHBoYTwxKXtsZXQgbz1xLmZsb2F0VG9CeXRlKHRoaXMuYWxwaGEpLnRvU3RyaW5nKDE2KTtyZXR1cm4gby5sZW5ndGg8MiYmKG89YDAke299YCksYCMke3R9JHtlfSR7bn0ke299YH1yZXR1cm5gIyR7dH0ke2V9JHtufWB9O3EucHJvdG90eXBlLnRvQnl0ZXM9ZnVuY3Rpb24odCl7bGV0IGU9cS5mbG9hdFRvQnl0ZSh0aGlzLnJlZCksbj1xLmZsb2F0VG9CeXRlKHRoaXMuZ3JlZW4pLG89cS5mbG9hdFRvQnl0ZSh0aGlzLmJsdWUpLHI9cS5mbG9hdFRvQnl0ZSh0aGlzLmFscGhhKTtyZXR1cm4gaCh0KT8odFswXT1lLHRbMV09bix0WzJdPW8sdFszXT1yLHQpOltlLG4sbyxyXX07cS5wcm90b3R5cGUudG9SZ2JhPWZ1bmN0aW9uKCl7cmV0dXJuIEhpWzBdPXEuZmxvYXRUb0J5dGUodGhpcy5yZWQpLEhpWzFdPXEuZmxvYXRUb0J5dGUodGhpcy5ncmVlbiksSGlbMl09cS5mbG9hdFRvQnl0ZSh0aGlzLmJsdWUpLEhpWzNdPXEuZmxvYXRUb0J5dGUodGhpcy5hbHBoYSksY3lbMF19O3EucHJvdG90eXBlLmJyaWdodGVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigibWFnbml0dWRlIix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygibWFnbml0dWRlIix0LDApLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSx0PTEtdCxlLnJlZD0xLSgxLXRoaXMucmVkKSp0LGUuZ3JlZW49MS0oMS10aGlzLmdyZWVuKSp0LGUuYmx1ZT0xLSgxLXRoaXMuYmx1ZSkqdCxlLmFscGhhPXRoaXMuYWxwaGEsZX07cS5wcm90b3R5cGUuZGFya2VuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigibWFnbml0dWRlIix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygibWFnbml0dWRlIix0LDApLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSx0PTEtdCxlLnJlZD10aGlzLnJlZCp0LGUuZ3JlZW49dGhpcy5ncmVlbip0LGUuYmx1ZT10aGlzLmJsdWUqdCxlLmFscGhhPXRoaXMuYWxwaGEsZX07cS5wcm90b3R5cGUud2l0aEFscGhhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHEuZnJvbUFscGhhKHRoaXMsdCxlKX07cS5hZGQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZCtlLnJlZCxuLmdyZWVuPXQuZ3JlZW4rZS5ncmVlbixuLmJsdWU9dC5ibHVlK2UuYmx1ZSxuLmFscGhhPXQuYWxwaGErZS5hbHBoYSxufTtxLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi5yZWQ9dC5yZWQtZS5yZWQsbi5ncmVlbj10LmdyZWVuLWUuZ3JlZW4sbi5ibHVlPXQuYmx1ZS1lLmJsdWUsbi5hbHBoYT10LmFscGhhLWUuYWxwaGEsbn07cS5tdWx0aXBseT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ucmVkPXQucmVkKmUucmVkLG4uZ3JlZW49dC5ncmVlbiplLmdyZWVuLG4uYmx1ZT10LmJsdWUqZS5ibHVlLG4uYWxwaGE9dC5hbHBoYSplLmFscGhhLG59O3EuZGl2aWRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi5yZWQ9dC5yZWQvZS5yZWQsbi5ncmVlbj10LmdyZWVuL2UuZ3JlZW4sbi5ibHVlPXQuYmx1ZS9lLmJsdWUsbi5hbHBoYT10LmFscGhhL2UuYWxwaGEsbn07cS5tb2Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZCVlLnJlZCxuLmdyZWVuPXQuZ3JlZW4lZS5ncmVlbixuLmJsdWU9dC5ibHVlJWUuYmx1ZSxuLmFscGhhPXQuYWxwaGElZS5hbHBoYSxufTtxLmxlcnA9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgic3RhcnQiLHQpLHkudHlwZU9mLm9iamVjdCgiZW5kIixlKSx5LnR5cGVPZi5udW1iZXIoInQiLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKSxvLnJlZD1NLmxlcnAodC5yZWQsZS5yZWQsbiksby5ncmVlbj1NLmxlcnAodC5ncmVlbixlLmdyZWVuLG4pLG8uYmx1ZT1NLmxlcnAodC5ibHVlLGUuYmx1ZSxuKSxvLmFscGhhPU0ubGVycCh0LmFscGhhLGUuYWxwaGEsbiksb307cS5tdWx0aXBseUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjb2xvciIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZCplLG4uZ3JlZW49dC5ncmVlbiplLG4uYmx1ZT10LmJsdWUqZSxuLmFscGhhPXQuYWxwaGEqZSxufTtxLmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjb2xvciIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZC9lLG4uZ3JlZW49dC5ncmVlbi9lLG4uYmx1ZT10LmJsdWUvZSxuLmFscGhhPXQuYWxwaGEvZSxufTtxLkFMSUNFQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjBGOEZGIikpO3EuQU5USVFVRVdISVRFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGQUVCRDciKSk7cS5BUVVBPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMEZGRkYiKSk7cS5BUVVBTUFSSU5FPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM3RkZGRDQiKSk7cS5BWlVSRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjBGRkZGIikpO3EuQkVJR0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0Y1RjVEQyIpKTtxLkJJU1FVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZFNEM0IikpO3EuQkxBQ0s9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwMDAwMCIpKTtxLkJMQU5DSEVEQUxNT05EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkVCQ0QiKSk7cS5CTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDAwRkYiKSk7cS5CTFVFVklPTEVUPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4QTJCRTIiKSk7cS5CUk9XTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQTUyQTJBIikpO3EuQlVSTFlXT09EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNERUI4ODciKSk7cS5DQURFVEJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzVGOUVBMCIpKTtxLkNIQVJUUkVVU0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzdGRkYwMCIpKTtxLkNIT0NPTEFURT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRDI2OTFFIikpO3EuQ09SQUw9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGN0Y1MCIpKTtxLkNPUk5GTE9XRVJCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM2NDk1RUQiKSk7cS5DT1JOU0lMSz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGOERDIikpO3EuQ1JJTVNPTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjREMxNDNDIikpO3EuQ1lBTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDBGRkZGIikpO3EuREFSS0JMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwMDA4QiIpKTtxLkRBUktDWUFOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDhCOEIiKSk7cS5EQVJLR09MREVOUk9EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCODg2MEIiKSk7cS5EQVJLR1JBWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQTlBOUE5IikpO3EuREFSS0dSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDY0MDAiKSk7cS5EQVJLR1JFWT1xLkRBUktHUkFZO3EuREFSS0tIQUtJPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCREI3NkIiKSk7cS5EQVJLTUFHRU5UQT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOEIwMDhCIikpO3EuREFSS09MSVZFR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzU1NkIyRiIpKTtxLkRBUktPUkFOR0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGOEMwMCIpKTtxLkRBUktPUkNISUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzk5MzJDQyIpKTtxLkRBUktSRUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzhCMDAwMCIpKTtxLkRBUktTQUxNT049T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0U5OTY3QSIpKTtxLkRBUktTRUFHUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOEZCQzhGIikpO3EuREFSS1NMQVRFQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNDgzRDhCIikpO3EuREFSS1NMQVRFR1JBWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMkY0RjRGIikpO3EuREFSS1NMQVRFR1JFWT1xLkRBUktTTEFURUdSQVk7cS5EQVJLVFVSUVVPSVNFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMENFRDEiKSk7cS5EQVJLVklPTEVUPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5NDAwRDMiKSk7cS5ERUVQUElOSz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkYxNDkzIikpO3EuREVFUFNLWUJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwQkZGRiIpKTtxLkRJTUdSQVk9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzY5Njk2OSIpKTtxLkRJTUdSRVk9cS5ESU1HUkFZO3EuRE9ER0VSQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMUU5MEZGIikpO3EuRklSRUJSSUNLPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCMjIyMjIiKSk7cS5GTE9SQUxXSElURT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGQUYwIikpO3EuRk9SRVNUR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzIyOEIyMiIpKTtxLkZVQ0hTSUE9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGMDBGRiIpKTtxLkdBSU5TQk9STz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRENEQ0RDIikpO3EuR0hPU1RXSElURT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjhGOEZGIikpO3EuR09MRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZENzAwIikpO3EuR09MREVOUk9EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEQUE1MjAiKSk7cS5HUkFZPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4MDgwODAiKSk7cS5HUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDA4MDAwIikpO3EuR1JFRU5ZRUxMT1c9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0FERkYyRiIpKTtxLkdSRVk9cS5HUkFZO3EuSE9ORVlERVc9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0YwRkZGMCIpKTtxLkhPVFBJTks9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGNjlCNCIpKTtxLklORElBTlJFRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQ0Q1QzVDIikpO3EuSU5ESUdPPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM0QjAwODIiKSk7cS5JVk9SWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGRkYwIikpO3EuS0hBS0k9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0YwRTY4QyIpKTtxLkxBVkVOREVSPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFNkU2RkEiKSk7cS5MQVZFTkRBUl9CTFVTSD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGMEY1IikpO3EuTEFXTkdSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM3Q0ZDMDAiKSk7cS5MRU1PTkNISUZGT049T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkFDRCIpKTtxLkxJR0hUQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQUREOEU2IikpO3EuTElHSFRDT1JBTD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjA4MDgwIikpO3EuTElHSFRDWUFOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFMEZGRkYiKSk7cS5MSUdIVEdPTERFTlJPRFlFTExPVz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkFGQUQyIikpO3EuTElHSFRHUkFZPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEM0QzRDMiKSk7cS5MSUdIVEdSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5MEVFOTAiKSk7cS5MSUdIVEdSRVk9cS5MSUdIVEdSQVk7cS5MSUdIVFBJTks9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGQjZDMSIpKTtxLkxJR0hUU0VBR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzIwQjJBQSIpKTtxLkxJR0hUU0tZQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODdDRUZBIikpO3EuTElHSFRTTEFURUdSQVk9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzc3ODg5OSIpKTtxLkxJR0hUU0xBVEVHUkVZPXEuTElHSFRTTEFURUdSQVk7cS5MSUdIVFNURUVMQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQjBDNERFIikpO3EuTElHSFRZRUxMT1c9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkZFMCIpKTtxLkxJTUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwRkYwMCIpKTtxLkxJTUVHUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMzJDRDMyIikpO3EuTElORU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZBRjBFNiIpKTtxLk1BR0VOVEE9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGMDBGRiIpKTtxLk1BUk9PTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODAwMDAwIikpO3EuTUVESVVNQVFVQU1BUklORT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNjZDREFBIikpO3EuTUVESVVNQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDAwMENEIikpO3EuTUVESVVNT1JDSElEPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCQTU1RDMiKSk7cS5NRURJVU1QVVJQTEU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzkzNzBEQiIpKTtxLk1FRElVTVNFQUdSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMzQ0IzNzEiKSk7cS5NRURJVU1TTEFURUJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzdCNjhFRSIpKTtxLk1FRElVTVNQUklOR0dSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMEZBOUEiKSk7cS5NRURJVU1UVVJRVU9JU0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzQ4RDFDQyIpKTtxLk1FRElVTVZJT0xFVFJFRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQzcxNTg1IikpO3EuTUlETklHSFRCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMxOTE5NzAiKSk7cS5NSU5UQ1JFQU09T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0Y1RkZGQSIpKTtxLk1JU1RZUk9TRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZFNEUxIikpO3EuTU9DQ0FTSU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRTRCNSIpKTtxLk5BVkFKT1dISVRFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkRFQUQiKSk7cS5OQVZZPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDAwODAiKSk7cS5PTERMQUNFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGREY1RTYiKSk7cS5PTElWRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODA4MDAwIikpO3EuT0xJVkVEUkFCPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM2QjhFMjMiKSk7cS5PUkFOR0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGQTUwMCIpKTtxLk9SQU5HRVJFRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkY0NTAwIikpO3EuT1JDSElEPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEQTcwRDYiKSk7cS5QQUxFR09MREVOUk9EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFRUU4QUEiKSk7cS5QQUxFR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzk4RkI5OCIpKTtxLlBBTEVUVVJRVU9JU0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0FGRUVFRSIpKTtxLlBBTEVWSU9MRVRSRUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0RCNzA5MyIpKTtxLlBBUEFZQVdISVA9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRUZENSIpKTtxLlBFQUNIUFVGRj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZEQUI5IikpO3EuUEVSVT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQ0Q4NTNGIikpO3EuUElOSz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZDMENCIikpO3EuUExVTT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRERBMEREIikpO3EuUE9XREVSQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQjBFMEU2IikpO3EuUFVSUExFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4MDAwODAiKSk7cS5SRUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGMDAwMCIpKTtxLlJPU1lCUk9XTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQkM4RjhGIikpO3EuUk9ZQUxCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM0MTY5RTEiKSk7cS5TQURETEVCUk9XTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOEI0NTEzIikpO3EuU0FMTU9OPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGQTgwNzIiKSk7cS5TQU5EWUJST1dOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGNEE0NjAiKSk7cS5TRUFHUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMkU4QjU3IikpO3EuU0VBU0hFTEw9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRjVFRSIpKTtxLlNJRU5OQT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQTA1MjJEIikpO3EuU0lMVkVSPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNDMEMwQzAiKSk7cS5TS1lCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4N0NFRUIiKSk7cS5TTEFURUJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzZBNUFDRCIpKTtxLlNMQVRFR1JBWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNzA4MDkwIikpO3EuU0xBVEVHUkVZPXEuU0xBVEVHUkFZO3EuU05PVz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGQUZBIikpO3EuU1BSSU5HR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwRkY3RiIpKTtxLlNURUVMQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNDY4MkI0IikpO3EuVEFOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEMkI0OEMiKSk7cS5URUFMPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDgwODAiKSk7cS5USElTVExFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEOEJGRDgiKSk7cS5UT01BVE89T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGNjM0NyIpKTtxLlRVUlFVT0lTRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNDBFMEQwIikpO3EuVklPTEVUPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFRTgyRUUiKSk7cS5XSEVBVD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjVERUIzIikpO3EuV0hJVEU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkZGRiIpKTtxLldISVRFU01PS0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0Y1RjVGNSIpKTtxLllFTExPVz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGRjAwIikpO3EuWUVMTE9XR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzlBQ0QzMiIpKTtxLlRSQU5TUEFSRU5UPU9iamVjdC5mcmVlemUobmV3IHEoMCwwLDAsMCkpO3NlPXF9KTtmdW5jdGlvbiB6Rih0LGUsbixvLHIpe2xldCBpPUNFO2kubGVuZ3RoPXI7bGV0IHMsZj1uLnJlZCx1PW4uZ3JlZW4sYz1uLmJsdWUsbD1uLmFscGhhLHA9by5yZWQsZD1vLmdyZWVuLG09by5ibHVlLF89by5hbHBoYTtpZihzZS5lcXVhbHMobixvKSl7Zm9yKHM9MDtzPHI7cysrKWlbc109c2UuY2xvbmUobik7cmV0dXJuIGl9bGV0IGc9KHAtZikvcixiPShkLXUpL3IsTz0obS1jKS9yLFQ9KF8tbCkvcjtmb3Iocz0wO3M8cjtzKyspaVtzXT1uZXcgc2UoZitzKmcsdStzKmIsYytzKk8sbCtzKlQpO3JldHVybiBpfWZ1bmN0aW9uIEpmKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucyxuPXQuY29sb3JzLG89eCh0LndpZHRoLDEpLHI9eCh0LmNvbG9yc1BlclZlcnRleCwhMSk7aWYoIWgoZSl8fGUubGVuZ3RoPDIpdGhyb3cgbmV3IEIoIkF0IGxlYXN0IHR3byBwb3NpdGlvbnMgYXJlIHJlcXVpcmVkLiIpO2lmKHR5cGVvZiBvIT0ibnVtYmVyIil0aHJvdyBuZXcgQigid2lkdGggbXVzdCBiZSBhIG51bWJlciIpO2lmKGgobikmJihyJiZuLmxlbmd0aDxlLmxlbmd0aHx8IXImJm4ubGVuZ3RoPGUubGVuZ3RoLTEpKXRocm93IG5ldyBCKCJjb2xvcnMgaGFzIGFuIGludmFsaWQgbGVuZ3RoLiIpO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX2NvbG9ycz1uLHRoaXMuX3dpZHRoPW8sdGhpcy5fY29sb3JzUGVyVmVydGV4PXIsdGhpcy5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKHgodC52ZXJ0ZXhGb3JtYXQsbHQuREVGQVVMVCkpLHRoaXMuX2FyY1R5cGU9eCh0LmFyY1R5cGUsdWUuR0VPREVTSUMpLHRoaXMuX2dyYW51bGFyaXR5PXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoeCh0LmVsbGlwc29pZCwkLldHUzg0KSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUG9seWxpbmVHZW9tZXRyeSI7bGV0IGk9MStlLmxlbmd0aCphLnBhY2tlZExlbmd0aDtpKz1oKG4pPzErbi5sZW5ndGgqc2UucGFja2VkTGVuZ3RoOjEsdGhpcy5wYWNrZWRMZW5ndGg9aSskLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGgrNH12YXIgQ0UseEUsUEUsd2MsT0UsRUUsUkUsU0UsYXksTUU9WigoKT0+e2ZjKCk7anIoKTtQZSgpO1V0KCk7UWYoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO1p0KCk7WGUoKTtZZSgpO2FuKCk7V2woKTskZSgpO1d0KCk7Z2EoKTt0bigpO1JvKCk7Q0U9W107SmYucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInZhbHVlIGlzIHJlcXVpcmVkIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImFycmF5IGlzIHJlcXVpcmVkIik7bj14KG4sMCk7bGV0IG8scj10Ll9wb3NpdGlvbnMsaT1yLmxlbmd0aDtmb3IoZVtuKytdPWksbz0wO288aTsrK28sbis9YS5wYWNrZWRMZW5ndGgpYS5wYWNrKHJbb10sZSxuKTtsZXQgcz10Ll9jb2xvcnM7Zm9yKGk9aChzKT9zLmxlbmd0aDowLGVbbisrXT1pLG89MDtvPGk7KytvLG4rPXNlLnBhY2tlZExlbmd0aClzZS5wYWNrKHNbb10sZSxuKTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGx0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9bHQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll93aWR0aCxlW24rK109dC5fY29sb3JzUGVyVmVydGV4PzE6MCxlW24rK109dC5fYXJjVHlwZSxlW25dPXQuX2dyYW51bGFyaXR5LGV9O3hFPSQuY2xvbmUoJC5VTklUX1NQSEVSRSksUEU9bmV3IGx0LHdjPXtwb3NpdGlvbnM6dm9pZCAwLGNvbG9yczp2b2lkIDAsZWxsaXBzb2lkOnhFLHZlcnRleEZvcm1hdDpQRSx3aWR0aDp2b2lkIDAsY29sb3JzUGVyVmVydGV4OnZvaWQgMCxhcmNUeXBlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDB9O0pmLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG8scj10W2UrK10saT1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPWEucGFja2VkTGVuZ3RoKWlbb109YS51bnBhY2sodCxlKTtyPXRbZSsrXTtsZXQgcz1yPjA/bmV3IEFycmF5KHIpOnZvaWQgMDtmb3Iobz0wO288cjsrK28sZSs9c2UucGFja2VkTGVuZ3RoKXNbb109c2UudW5wYWNrKHQsZSk7bGV0IGY9JC51bnBhY2sodCxlLHhFKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgdT1sdC51bnBhY2sodCxlLFBFKTtlKz1sdC5wYWNrZWRMZW5ndGg7bGV0IGM9dFtlKytdLGw9dFtlKytdPT09MSxwPXRbZSsrXSxkPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1pLG4uX2NvbG9ycz1zLG4uX2VsbGlwc29pZD0kLmNsb25lKGYsbi5fZWxsaXBzb2lkKSxuLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUodSxuLl92ZXJ0ZXhGb3JtYXQpLG4uX3dpZHRoPWMsbi5fY29sb3JzUGVyVmVydGV4PWwsbi5fYXJjVHlwZT1wLG4uX2dyYW51bGFyaXR5PWQsbik6KHdjLnBvc2l0aW9ucz1pLHdjLmNvbG9ycz1zLHdjLndpZHRoPWMsd2MuY29sb3JzUGVyVmVydGV4PWwsd2MuYXJjVHlwZT1wLHdjLmdyYW51bGFyaXR5PWQsbmV3IEpmKHdjKSl9O09FPW5ldyBhLEVFPW5ldyBhLFJFPW5ldyBhLFNFPW5ldyBhO0pmLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3dpZHRoLG49dC5fdmVydGV4Rm9ybWF0LG89dC5fY29sb3JzLHI9dC5fY29sb3JzUGVyVmVydGV4LGk9dC5fYXJjVHlwZSxzPXQuX2dyYW51bGFyaXR5LGY9dC5fZWxsaXBzb2lkLHUsYyxsLHA9W10sZD1Dbih0Ll9wb3NpdGlvbnMsYS5lcXVhbHNFcHNpbG9uLCExLHApO2lmKGgobykmJnAubGVuZ3RoPjApe2xldCBGPTAsaj1wWzBdO289by5maWx0ZXIoZnVuY3Rpb24oSCxrKXtsZXQgSz0hMTtyZXR1cm4gcj9LPWs9PT1qfHxrPT09MCYmaj09PTE6Sz1rKzE9PT1qLEs/KEYrKyxqPXBbRl0sITEpOiEwfSl9bGV0IG09ZC5sZW5ndGg7aWYobTwyfHxlPD0wKXJldHVybjtpZihpPT09dWUuR0VPREVTSUN8fGk9PT11ZS5SSFVNQil7bGV0IEYsajtpPT09dWUuR0VPREVTSUM/KEY9TS5jaG9yZExlbmd0aChzLGYubWF4aW11bVJhZGl1cyksaj15bi5udW1iZXJPZlBvaW50cyk6KEY9cyxqPXluLm51bWJlck9mUG9pbnRzUmh1bWJMaW5lKTtsZXQgSD15bi5leHRyYWN0SGVpZ2h0cyhkLGYpO2lmKGgobykpe2xldCBrPTE7Zm9yKHU9MDt1PG0tMTsrK3Upays9aihkW3VdLGRbdSsxXSxGKTtsZXQgSz1uZXcgQXJyYXkoayksWD0wO2Zvcih1PTA7dTxtLTE7Kyt1KXtsZXQgUj1kW3VdLFE9ZFt1KzFdLGZ0PW9bdV0scHQ9aihSLFEsRik7aWYociYmdTxrKXtsZXQgZ3Q9b1t1KzFdLGl0PXpGKFIsUSxmdCxndCxwdCksTnQ9aXQubGVuZ3RoO2ZvcihjPTA7YzxOdDsrK2MpS1tYKytdPWl0W2NdfWVsc2UgZm9yKGM9MDtjPHB0OysrYylLW1grK109c2UuY2xvbmUoZnQpfUtbWF09c2UuY2xvbmUob1tvLmxlbmd0aC0xXSksbz1LLENFLmxlbmd0aD0wfWk9PT11ZS5HRU9ERVNJQz9kPXluLmdlbmVyYXRlQ2FydGVzaWFuQXJjKHtwb3NpdGlvbnM6ZCxtaW5EaXN0YW5jZTpGLGVsbGlwc29pZDpmLGhlaWdodDpIfSk6ZD15bi5nZW5lcmF0ZUNhcnRlc2lhblJodW1iQXJjKHtwb3NpdGlvbnM6ZCxncmFudWxhcml0eTpGLGVsbGlwc29pZDpmLGhlaWdodDpIfSl9bT1kLmxlbmd0aDtsZXQgXz1tKjQtNCxnPW5ldyBGbG9hdDY0QXJyYXkoXyozKSxiPW5ldyBGbG9hdDY0QXJyYXkoXyozKSxPPW5ldyBGbG9hdDY0QXJyYXkoXyozKSxUPW5ldyBGbG9hdDMyQXJyYXkoXyoyKSxFPW4uc3Q/bmV3IEZsb2F0MzJBcnJheShfKjIpOnZvaWQgMCx3PWgobyk/bmV3IFVpbnQ4QXJyYXkoXyo0KTp2b2lkIDAsQz0wLE49MCxJPTAsTD0wLHY7Zm9yKGM9MDtjPG07KytjKXtjPT09MD8odj1PRSxhLnN1YnRyYWN0KGRbMF0sZFsxXSx2KSxhLmFkZChkWzBdLHYsdikpOnY9ZFtjLTFdLGEuY2xvbmUodixSRSksYS5jbG9uZShkW2NdLEVFKSxjPT09bS0xPyh2PU9FLGEuc3VidHJhY3QoZFttLTFdLGRbbS0yXSx2KSxhLmFkZChkW20tMV0sdix2KSk6dj1kW2MrMV0sYS5jbG9uZSh2LFNFKTtsZXQgRixqO2godykmJihjIT09MCYmIXI/Rj1vW2MtMV06Rj1vW2NdLGMhPT1tLTEmJihqPW9bY10pKTtsZXQgSD1jPT09MD8yOjAsaz1jPT09bS0xPzI6NDtmb3IobD1IO2w8azsrK2wpe2EucGFjayhFRSxnLEMpLGEucGFjayhSRSxiLEMpLGEucGFjayhTRSxPLEMpLEMrPTM7bGV0IEs9bC0yPDA/LTE6MTtpZihUW04rK109MioobCUyKS0xLFRbTisrXT1LKmUsbi5zdCYmKEVbSSsrXT1jLyhtLTEpLEVbSSsrXT1NYXRoLm1heChUW04tMl0sMCkpLGgodykpe2xldCBYPWw8Mj9GOmo7d1tMKytdPXNlLmZsb2F0VG9CeXRlKFgucmVkKSx3W0wrK109c2UuZmxvYXRUb0J5dGUoWC5ncmVlbiksd1tMKytdPXNlLmZsb2F0VG9CeXRlKFguYmx1ZSksd1tMKytdPXNlLmZsb2F0VG9CeXRlKFguYWxwaGEpfX19bGV0IEQ9bmV3IHJlO0QucG9zaXRpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpnfSksRC5wcmV2UG9zaXRpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpifSksRC5uZXh0UG9zaXRpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpPfSksRC5leHBhbmRBbmRXaWR0aD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6VH0pLG4uc3QmJihELnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpFfSkpLGgodykmJihELmNvbG9yPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjQsdmFsdWVzOncsbm9ybWFsaXplOiEwfSkpO2xldCBVPUR0LmNyZWF0ZVR5cGVkQXJyYXkoXyxtKjYtNiksQT0wLFM9MCxQPW0tMTtmb3IoYz0wO2M8UDsrK2MpVVtTKytdPUEsVVtTKytdPUErMixVW1MrK109QSsxLFVbUysrXT1BKzEsVVtTKytdPUErMixVW1MrK109QSszLEErPTQ7cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpELGluZGljZXM6VSxwcmltaXRpdmVUeXBlOkx0LlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTp5dC5mcm9tUG9pbnRzKGQpLGdlb21ldHJ5VHlwZTpTaS5QT0xZTElORVN9KX07YXk9SmZ9KTt2YXIgZnk9e307bWUoZnkse2RlZmF1bHQ6KCk9PkhGfSk7ZnVuY3Rpb24gakYodCxlKXtyZXR1cm4gaChlKSYmKHQ9YXkudW5wYWNrKHQsZSkpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksYXkuY3JlYXRlR2VvbWV0cnkodCl9dmFyIEhGLHV5PVooKCk9PnthdCgpO1p0KCk7TUUoKTtIRj1qRn0pO2Z1bmN0aW9uIHFGKHQsZSxuLG8pe2xldCByPW5ldyByZTtvLnBvc2l0aW9uJiYoci5wb3NpdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnR9KSk7bGV0IGk9ZS5sZW5ndGgscz10Lmxlbmd0aC8zLGY9KHMtaSoyKS8oaSoyKSx1PVNlLnRyaWFuZ3VsYXRlKGUpLGM9KGYtMSkqaSo2K3UubGVuZ3RoKjIsbD1EdC5jcmVhdGVUeXBlZEFycmF5KHMsYykscCxkLG0sXyxnLGIsTz1pKjIsVD0wO2ZvcihwPTA7cDxmLTE7cCsrKXtmb3IoZD0wO2Q8aS0xO2QrKyltPWQqMitwKmkqMixiPW0rTyxfPW0rMSxnPV8rTyxsW1QrK109XyxsW1QrK109bSxsW1QrK109ZyxsW1QrK109ZyxsW1QrK109bSxsW1QrK109YjttPWkqMi0yK3AqaSoyLF89bSsxLGc9XytPLGI9bStPLGxbVCsrXT1fLGxbVCsrXT1tLGxbVCsrXT1nLGxbVCsrXT1nLGxbVCsrXT1tLGxbVCsrXT1ifWlmKG8uc3R8fG8udGFuZ2VudHx8by5iaXRhbmdlbnQpe2xldCBDPW5ldyBGbG9hdDMyQXJyYXkocyoyKSxOPTEvKGYtMSksST0xL24uaGVpZ2h0LEw9bi5oZWlnaHQvMix2LEQsVT0wO2ZvcihwPTA7cDxmO3ArKyl7Zm9yKHY9cCpOLEQ9SSooZVswXS55K0wpLENbVSsrXT12LENbVSsrXT1ELGQ9MTtkPGk7ZCsrKUQ9SSooZVtkXS55K0wpLENbVSsrXT12LENbVSsrXT1ELENbVSsrXT12LENbVSsrXT1EO0Q9SSooZVswXS55K0wpLENbVSsrXT12LENbVSsrXT1EfWZvcihkPTA7ZDxpO2QrKyl2PTAsRD1JKihlW2RdLnkrTCksQ1tVKytdPXYsQ1tVKytdPUQ7Zm9yKGQ9MDtkPGk7ZCsrKXY9KGYtMSkqTixEPUkqKGVbZF0ueStMKSxDW1UrK109dixDW1UrK109RDtyLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpuZXcgRmxvYXQzMkFycmF5KEMpfSl9bGV0IEU9cy1pKjI7Zm9yKHA9MDtwPHUubGVuZ3RoO3ArPTMpe2xldCBDPXVbcF0rRSxOPXVbcCsxXStFLEk9dVtwKzJdK0U7bFtUKytdPUMsbFtUKytdPU4sbFtUKytdPUksbFtUKytdPUkraSxsW1QrK109TitpLGxbVCsrXT1DK2l9bGV0IHc9bmV3IEZ0KHthdHRyaWJ1dGVzOnIsaW5kaWNlczpsLGJvdW5kaW5nU3BoZXJlOnl0LmZyb21WZXJ0aWNlcyh0KSxwcmltaXRpdmVUeXBlOkx0LlRSSUFOR0xFU30pO2lmKG8ubm9ybWFsJiYodz1CZS5jb21wdXRlTm9ybWFsKHcpKSxvLnRhbmdlbnR8fG8uYml0YW5nZW50KXt0cnl7dz1CZS5jb21wdXRlVGFuZ2VudEFuZEJpdGFuZ2VudCh3KX1jYXRjaHtBYSgicG9seWxpbmUtdm9sdW1lLXRhbmdlbnQtYml0YW5nZW50IiwiVW5hYmxlIHRvIGNvbXB1dGUgdGFuZ2VudHMgYW5kIGJpdGFuZ2VudHMgZm9yIHBvbHlsaW5lIHZvbHVtZSBnZW9tZXRyeSIpfW8udGFuZ2VudHx8KHcuYXR0cmlidXRlcy50YW5nZW50PXZvaWQgMCksby5iaXRhbmdlbnR8fCh3LmF0dHJpYnV0ZXMuYml0YW5nZW50PXZvaWQgMCksby5zdHx8KHcuYXR0cmlidXRlcy5zdD12b2lkIDApfXJldHVybiB3fWZ1bmN0aW9uIGV1KHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvbHlsaW5lUG9zaXRpb25zLG49dC5zaGFwZVBvc2l0aW9ucztpZighaChlKSl0aHJvdyBuZXcgQigib3B0aW9ucy5wb2x5bGluZVBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigib3B0aW9ucy5zaGFwZVBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9zaGFwZT1uLHRoaXMuX2VsbGlwc29pZD0kLmNsb25lKHgodC5lbGxpcHNvaWQsJC5XR1M4NCkpLHRoaXMuX2Nvcm5lclR5cGU9eCh0LmNvcm5lclR5cGUsZm4uUk9VTkRFRCksdGhpcy5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKHgodC52ZXJ0ZXhGb3JtYXQsbHQuREVGQVVMVCkpLHRoaXMuX2dyYW51bGFyaXR5PXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUG9seWxpbmVWb2x1bWVHZW9tZXRyeSI7bGV0IG89MStlLmxlbmd0aCphLnBhY2tlZExlbmd0aDtvKz0xK24ubGVuZ3RoKm50LnBhY2tlZExlbmd0aCx0aGlzLnBhY2tlZExlbmd0aD1vKyQucGFja2VkTGVuZ3RoK2x0LnBhY2tlZExlbmd0aCsyfXZhciBORSxJRSx0dSxLRixseSx2RT1aKCgpPT57anIoKTt4ZigpO1BlKCk7emUoKTtVdCgpO0RlKCk7aGMoKTtJdCgpO2F0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpO3NpKCk7JGUoKTtXdCgpO3VkKCk7cXIoKTttZCgpO3RuKCk7Um8oKTtsYygpO2V1LnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO249eChuLDApO2xldCBvLHI9dC5fcG9zaXRpb25zLGk9ci5sZW5ndGg7Zm9yKGVbbisrXT1pLG89MDtvPGk7KytvLG4rPWEucGFja2VkTGVuZ3RoKWEucGFjayhyW29dLGUsbik7bGV0IHM9dC5fc2hhcGU7Zm9yKGk9cy5sZW5ndGgsZVtuKytdPWksbz0wO288aTsrK28sbis9bnQucGFja2VkTGVuZ3RoKW50LnBhY2soc1tvXSxlLG4pO3JldHVybiAkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsbHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1sdC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2Nvcm5lclR5cGUsZVtuXT10Ll9ncmFudWxhcml0eSxlfTtORT0kLmNsb25lKCQuVU5JVF9TUEhFUkUpLElFPW5ldyBsdCx0dT17cG9seWxpbmVQb3NpdGlvbnM6dm9pZCAwLHNoYXBlUG9zaXRpb25zOnZvaWQgMCxlbGxpcHNvaWQ6TkUsdmVydGV4Rm9ybWF0OklFLGNvcm5lclR5cGU6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMH07ZXUudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtlPXgoZSwwKTtsZXQgbyxyPXRbZSsrXSxpPW5ldyBBcnJheShyKTtmb3Iobz0wO288cjsrK28sZSs9YS5wYWNrZWRMZW5ndGgpaVtvXT1hLnVucGFjayh0LGUpO3I9dFtlKytdO2xldCBzPW5ldyBBcnJheShyKTtmb3Iobz0wO288cjsrK28sZSs9bnQucGFja2VkTGVuZ3RoKXNbb109bnQudW5wYWNrKHQsZSk7bGV0IGY9JC51bnBhY2sodCxlLE5FKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgdT1sdC51bnBhY2sodCxlLElFKTtlKz1sdC5wYWNrZWRMZW5ndGg7bGV0IGM9dFtlKytdLGw9dFtlXTtyZXR1cm4gaChuKT8obi5fcG9zaXRpb25zPWksbi5fc2hhcGU9cyxuLl9lbGxpcHNvaWQ9JC5jbG9uZShmLG4uX2VsbGlwc29pZCksbi5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKHUsbi5fdmVydGV4Rm9ybWF0KSxuLl9jb3JuZXJUeXBlPWMsbi5fZ3JhbnVsYXJpdHk9bCxuKToodHUucG9seWxpbmVQb3NpdGlvbnM9aSx0dS5zaGFwZVBvc2l0aW9ucz1zLHR1LmNvcm5lclR5cGU9Yyx0dS5ncmFudWxhcml0eT1sLG5ldyBldSh0dSkpfTtLRj1uZXcgSHI7ZXUuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fcG9zaXRpb25zLG49Q24oZSxhLmVxdWFsc0Vwc2lsb24pLG89dC5fc2hhcGU7aWYobz1kcy5yZW1vdmVEdXBsaWNhdGVzRnJvbVNoYXBlKG8pLG4ubGVuZ3RoPDJ8fG8ubGVuZ3RoPDMpcmV0dXJuO1NlLmNvbXB1dGVXaW5kaW5nT3JkZXIyRChvKT09PXhvLkNMT0NLV0lTRSYmby5yZXZlcnNlKCk7bGV0IHI9SHIuZnJvbVBvaW50cyhvLEtGKSxpPWRzLmNvbXB1dGVQb3NpdGlvbnMobixvLHIsdCwhMCk7cmV0dXJuIHFGKGksbyxyLHQuX3ZlcnRleEZvcm1hdCl9O2x5PWV1fSk7dmFyIHB5PXt9O21lKHB5LHtkZWZhdWx0OigpPT5YRn0pO2Z1bmN0aW9uIFdGKHQsZSl7cmV0dXJuIGgoZSkmJih0PWx5LnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLGx5LmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBYRixkeT1aKCgpPT57YXQoKTtadCgpO3ZFKCk7WEY9V0Z9KTtmdW5jdGlvbiBZRih0LGUpe2xldCBuPW5ldyByZTtuLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6dH0pO2xldCBvPWUubGVuZ3RoLHI9bi5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMscz10Lmxlbmd0aC8zL28sZj1EdC5jcmVhdGVUeXBlZEFycmF5KHIsMipvKihzKzEpKSx1LGMsbD0wO3U9MDtsZXQgcD11Km87Zm9yKGM9MDtjPG8tMTtjKyspZltsKytdPWMrcCxmW2wrK109YytwKzE7Zm9yKGZbbCsrXT1vLTErcCxmW2wrK109cCx1PXMtMSxwPXUqbyxjPTA7YzxvLTE7YysrKWZbbCsrXT1jK3AsZltsKytdPWMrcCsxO2ZvcihmW2wrK109by0xK3AsZltsKytdPXAsdT0wO3U8cy0xO3UrKyl7bGV0IG09byp1LF89bStvO2ZvcihjPTA7YzxvO2MrKylmW2wrK109YyttLGZbbCsrXT1jK199cmV0dXJuIG5ldyBGdCh7YXR0cmlidXRlczpuLGluZGljZXM6RHQuY3JlYXRlVHlwZWRBcnJheShyLGYpLGJvdW5kaW5nU3BoZXJlOnl0LmZyb21WZXJ0aWNlcyh0KSxwcmltaXRpdmVUeXBlOkx0LkxJTkVTfSl9ZnVuY3Rpb24gb3UodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucG9seWxpbmVQb3NpdGlvbnMsbj10LnNoYXBlUG9zaXRpb25zO2lmKCFoKGUpKXRocm93IG5ldyBCKCJvcHRpb25zLnBvbHlsaW5lUG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBCKCJvcHRpb25zLnNoYXBlUG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX3NoYXBlPW4sdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoeCh0LmVsbGlwc29pZCwkLldHUzg0KSksdGhpcy5fY29ybmVyVHlwZT14KHQuY29ybmVyVHlwZSxmbi5ST1VOREVEKSx0aGlzLl9ncmFudWxhcml0eT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBvbHlsaW5lVm9sdW1lT3V0bGluZUdlb21ldHJ5IjtsZXQgbz0xK2UubGVuZ3RoKmEucGFja2VkTGVuZ3RoO28rPTErbi5sZW5ndGgqbnQucGFja2VkTGVuZ3RoLHRoaXMucGFja2VkTGVuZ3RoPW8rJC5wYWNrZWRMZW5ndGgrMn12YXIgREUsbnUsJEYsbXksTEU9WigoKT0+e2pyKCk7eGYoKTtQZSgpO3plKCk7VXQoKTtEZSgpO2hjKCk7SXQoKTthdCgpO0h0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTskZSgpO1d0KCk7cXIoKTttZCgpO3RuKCk7bGMoKTtvdS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtuPXgobiwwKTtsZXQgbyxyPXQuX3Bvc2l0aW9ucyxpPXIubGVuZ3RoO2ZvcihlW24rK109aSxvPTA7bzxpOysrbyxuKz1hLnBhY2tlZExlbmd0aClhLnBhY2socltvXSxlLG4pO2xldCBzPXQuX3NoYXBlO2ZvcihpPXMubGVuZ3RoLGVbbisrXT1pLG89MDtvPGk7KytvLG4rPW50LnBhY2tlZExlbmd0aCludC5wYWNrKHNbb10sZSxuKTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll9jb3JuZXJUeXBlLGVbbl09dC5fZ3JhbnVsYXJpdHksZX07REU9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxudT17cG9seWxpbmVQb3NpdGlvbnM6dm9pZCAwLHNoYXBlUG9zaXRpb25zOnZvaWQgMCxlbGxpcHNvaWQ6REUsaGVpZ2h0OnZvaWQgMCxjb3JuZXJUeXBlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDB9O291LnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG8scj10W2UrK10saT1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPWEucGFja2VkTGVuZ3RoKWlbb109YS51bnBhY2sodCxlKTtyPXRbZSsrXTtsZXQgcz1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPW50LnBhY2tlZExlbmd0aClzW29dPW50LnVucGFjayh0LGUpO2xldCBmPSQudW5wYWNrKHQsZSxERSk7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IHU9dFtlKytdLGM9dFtlXTtyZXR1cm4gaChuKT8obi5fcG9zaXRpb25zPWksbi5fc2hhcGU9cyxuLl9lbGxpcHNvaWQ9JC5jbG9uZShmLG4uX2VsbGlwc29pZCksbi5fY29ybmVyVHlwZT11LG4uX2dyYW51bGFyaXR5PWMsbik6KG51LnBvbHlsaW5lUG9zaXRpb25zPWksbnUuc2hhcGVQb3NpdGlvbnM9cyxudS5jb3JuZXJUeXBlPXUsbnUuZ3JhbnVsYXJpdHk9YyxuZXcgb3UobnUpKX07JEY9bmV3IEhyO291LmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPUNuKGUsYS5lcXVhbHNFcHNpbG9uKSxvPXQuX3NoYXBlO2lmKG89ZHMucmVtb3ZlRHVwbGljYXRlc0Zyb21TaGFwZShvKSxuLmxlbmd0aDwyfHxvLmxlbmd0aDwzKXJldHVybjtTZS5jb21wdXRlV2luZGluZ09yZGVyMkQobyk9PT14by5DTE9DS1dJU0UmJm8ucmV2ZXJzZSgpO2xldCByPUhyLmZyb21Qb2ludHMobywkRiksaT1kcy5jb21wdXRlUG9zaXRpb25zKG4sbyxyLHQsITEpO3JldHVybiBZRihpLG8pfTtteT1vdX0pO3ZhciBoeT17fTttZShoeSx7ZGVmYXVsdDooKT0+UUZ9KTtmdW5jdGlvbiBaRih0LGUpe3JldHVybiBoKGUpJiYodD1teS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxteS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgUUYsX3k9WigoKT0+e2F0KCk7WnQoKTtMRSgpO1FGPVpGfSk7ZnVuY3Rpb24gVUUodCxlLG4sbyxyLGkscyl7bGV0IGY9TWF0aC5jb3MoZSksdT1vKmYsYz1uKmYsbD1NYXRoLnNpbihlKSxwPW8qbCxkPW4qbDtTcj15eS5wcm9qZWN0KHQsU3IpLFNyPWEuc3VidHJhY3QoU3IsRGQsU3IpO2xldCBtPVhvLmZyb21Sb3RhdGlvbihlLHRCKTtTcj1Yby5tdWx0aXBseUJ5VmVjdG9yKG0sU3IsU3IpLFNyPWEuYWRkKFNyLERkLFNyKSx0PXl5LnVucHJvamVjdChTcix0KSxpLT0xLHMtPTE7bGV0IF89dC5sYXRpdHVkZSxnPV8raSpkLGI9Xy11KnMsTz1fLXUqcytpKmQsVD1NYXRoLm1heChfLGcsYixPKSxFPU1hdGgubWluKF8sZyxiLE8pLHc9dC5sb25naXR1ZGUsQz13K2kqYyxOPXcrcypwLEk9dytzKnAraSpjLEw9TWF0aC5tYXgodyxDLE4sSSksdj1NYXRoLm1pbih3LEMsTixJKTtyZXR1cm57bm9ydGg6VCxzb3V0aDpFLGVhc3Q6TCx3ZXN0OnYsZ3JhbllDb3M6dSxncmFuWVNpbjpwLGdyYW5YQ29zOmMsZ3JhblhTaW46ZCxud0Nvcm5lcjp0fX12YXIgRkUsQkUsSkYsZ3ksdEIsU3IsZUIsRGQseXksZ28sQXk9WigoKT0+e1V0KCk7dmUoKTthdCgpO0h0KCk7UmkoKTtXdCgpO2ZmKCk7QW4oKTtGRT1NYXRoLmNvcyxCRT1NYXRoLnNpbixKRj1NYXRoLnNxcnQsZ3k9e307Z3kuY29tcHV0ZVBvc2l0aW9uPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2xldCBmPWUucmFkaWlTcXVhcmVkLHU9dC5ud0Nvcm5lcixjPXQuYm91bmRpbmdSZWN0YW5nbGUsbD11LmxhdGl0dWRlLXQuZ3JhbllDb3MqbytyKnQuZ3JhblhTaW4scD1GRShsKSxkPUJFKGwpLG09Zi56KmQsXz11LmxvbmdpdHVkZStvKnQuZ3JhbllTaW4rcip0LmdyYW5YQ29zLGc9cCpGRShfKSxiPXAqQkUoXyksTz1mLngqZyxUPWYueSpiLEU9SkYoTypnK1QqYittKmQpO2lmKGkueD1PL0UsaS55PVQvRSxpLno9bS9FLG4pe2xldCB3PXQuc3ROd0Nvcm5lcjtoKHcpPyhsPXcubGF0aXR1ZGUtdC5zdEdyYW5ZQ29zKm8rcip0LnN0R3JhblhTaW4sXz13LmxvbmdpdHVkZStvKnQuc3RHcmFuWVNpbityKnQuc3RHcmFuWENvcyxzLng9KF8tdC5zdFdlc3QpKnQubG9uU2NhbGFyLHMueT0obC10LnN0U291dGgpKnQubGF0U2NhbGFyKToocy54PShfLWMud2VzdCkqdC5sb25TY2FsYXIscy55PShsLWMuc291dGgpKnQubGF0U2NhbGFyKX19O3RCPW5ldyBYbyxTcj1uZXcgYSxlQj1uZXcgY3QsRGQ9bmV3IGEseXk9bmV3IFFuO2d5LmNvbXB1dGVPcHRpb25zPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2xldCBmPXQuZWFzdCx1PXQud2VzdCxjPXQubm9ydGgsbD10LnNvdXRoLHA9ITEsZD0hMTtjPT09TS5QSV9PVkVSX1RXTyYmKHA9ITApLGw9PT0tTS5QSV9PVkVSX1RXTyYmKGQ9ITApO2xldCBtLF89Yy1sO3U+Zj9tPU0uVFdPX1BJLXUrZjptPWYtdTtsZXQgZz1NYXRoLmNlaWwobS9lKSsxLGI9TWF0aC5jZWlsKF8vZSkrMSxPPW0vKGctMSksVD1fLyhiLTEpLEU9UHQubm9ydGh3ZXN0KHQsaSksdz1QdC5jZW50ZXIodCxlQik7KG4hPT0wfHxvIT09MCkmJih3LmxvbmdpdHVkZTxFLmxvbmdpdHVkZSYmKHcubG9uZ2l0dWRlKz1NLlRXT19QSSksRGQ9eXkucHJvamVjdCh3LERkKSk7bGV0IEM9VCxOPU8sST0wLEw9MCx2PVB0LmNsb25lKHQsciksRD17Z3JhbllDb3M6QyxncmFuWVNpbjpJLGdyYW5YQ29zOk4sZ3JhblhTaW46TCxud0Nvcm5lcjpFLGJvdW5kaW5nUmVjdGFuZ2xlOnYsd2lkdGg6ZyxoZWlnaHQ6Yixub3J0aENhcDpwLHNvdXRoQ2FwOmR9O2lmKG4hPT0wKXtsZXQgVT1VRShFLG4sTyxULHcsZyxiKTtpZihjPVUubm9ydGgsbD1VLnNvdXRoLGY9VS5lYXN0LHU9VS53ZXN0LGM8LU0uUElfT1ZFUl9UV098fGM+TS5QSV9PVkVSX1RXT3x8bDwtTS5QSV9PVkVSX1RXT3x8bD5NLlBJX09WRVJfVFdPKXRocm93IG5ldyBCKCJSb3RhdGVkIHJlY3RhbmdsZSBpcyBpbnZhbGlkLiAgSXQgY3Jvc3NlcyBvdmVyIGVpdGhlciB0aGUgbm9ydGggb3Igc291dGggcG9sZS4iKTtELmdyYW5ZQ29zPVUuZ3JhbllDb3MsRC5ncmFuWVNpbj1VLmdyYW5ZU2luLEQuZ3JhblhDb3M9VS5ncmFuWENvcyxELmdyYW5YU2luPVUuZ3JhblhTaW4sdi5ub3J0aD1jLHYuc291dGg9bCx2LmVhc3Q9Zix2Lndlc3Q9dX1pZihvIT09MCl7bj1uLW87bGV0IFU9UHQubm9ydGh3ZXN0KHYscyksQT1VRShVLG4sTyxULHcsZyxiKTtELnN0R3JhbllDb3M9QS5ncmFuWUNvcyxELnN0R3JhblhDb3M9QS5ncmFuWENvcyxELnN0R3JhbllTaW49QS5ncmFuWVNpbixELnN0R3JhblhTaW49QS5ncmFuWFNpbixELnN0TndDb3JuZXI9VSxELnN0V2VzdD1BLndlc3QsRC5zdFNvdXRoPUEuc291dGh9cmV0dXJuIER9O2dvPWd5fSk7ZnVuY3Rpb24gcUUodCxlKXtsZXQgbj1uZXcgRnQoe2F0dHJpYnV0ZXM6bmV3IHJlLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTfSk7cmV0dXJuIG4uYXR0cmlidXRlcy5wb3NpdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmUucG9zaXRpb25zfSksdC5ub3JtYWwmJihuLmF0dHJpYnV0ZXMubm9ybWFsPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczplLm5vcm1hbHN9KSksdC50YW5nZW50JiYobi5hdHRyaWJ1dGVzLnRhbmdlbnQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmUudGFuZ2VudHN9KSksdC5iaXRhbmdlbnQmJihuLmF0dHJpYnV0ZXMuYml0YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczplLmJpdGFuZ2VudHN9KSksbn1mdW5jdGlvbiBpQih0LGUsbixvKXtsZXQgcj10Lmxlbmd0aCxpPWUubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkocik6dm9pZCAwLHM9ZS50YW5nZW50P25ldyBGbG9hdDMyQXJyYXkocik6dm9pZCAwLGY9ZS5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShyKTp2b2lkIDAsdT0wLGM9akUsbD16RSxwPUdFO2lmKGUubm9ybWFsfHxlLnRhbmdlbnR8fGUuYml0YW5nZW50KWZvcihsZXQgZD0wO2Q8cjtkKz0zKXtsZXQgbT1hLmZyb21BcnJheSh0LGQsYnkpLF89dSsxLGc9dSsyO3A9bi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwobSxwKSwoZS50YW5nZW50fHxlLmJpdGFuZ2VudCkmJihhLmNyb3NzKGEuVU5JVF9aLHAsbCksdHQubXVsdGlwbHlCeVZlY3RvcihvLGwsbCksYS5ub3JtYWxpemUobCxsKSxlLmJpdGFuZ2VudCYmYS5ub3JtYWxpemUoYS5jcm9zcyhwLGwsYyksYykpLGUubm9ybWFsJiYoaVt1XT1wLngsaVtfXT1wLnksaVtnXT1wLnopLGUudGFuZ2VudCYmKHNbdV09bC54LHNbX109bC55LHNbZ109bC56KSxlLmJpdGFuZ2VudCYmKGZbdV09Yy54LGZbX109Yy55LGZbZ109Yy56KSx1Kz0zfXJldHVybiBxRShlLHtwb3NpdGlvbnM6dCxub3JtYWxzOmksdGFuZ2VudHM6cyxiaXRhbmdlbnRzOmZ9KX1mdW5jdGlvbiBzQih0LGUsbil7bGV0IG89dC5sZW5ndGgscj1lLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KG8pOnZvaWQgMCxpPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KG8pOnZvaWQgMCxzPWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkobyk6dm9pZCAwLGY9MCx1PTAsYz0wLGw9ITAscD1qRSxkPXpFLG09R0U7aWYoZS5ub3JtYWx8fGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpZm9yKGxldCBfPTA7XzxvO18rPTYpe2xldCBnPWEuZnJvbUFycmF5KHQsXyxieSksYj1hLmZyb21BcnJheSh0LChfKzYpJW8sd3kpO2lmKGwpe2xldCBPPWEuZnJvbUFycmF5KHQsKF8rMyklbyxLRSk7YS5zdWJ0cmFjdChiLGcsYiksYS5zdWJ0cmFjdChPLGcsTyksbT1hLm5vcm1hbGl6ZShhLmNyb3NzKE8sYixtKSxtKSxsPSExfWEuZXF1YWxzRXBzaWxvbihiLGcsTS5FUFNJTE9OMTApJiYobD0hMCksKGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpJiYocD1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChnLHApLGUudGFuZ2VudCYmKGQ9YS5ub3JtYWxpemUoYS5jcm9zcyhwLG0sZCksZCkpKSxlLm5vcm1hbCYmKHJbZisrXT1tLngscltmKytdPW0ueSxyW2YrK109bS56LHJbZisrXT1tLngscltmKytdPW0ueSxyW2YrK109bS56KSxlLnRhbmdlbnQmJihpW3UrK109ZC54LGlbdSsrXT1kLnksaVt1KytdPWQueixpW3UrK109ZC54LGlbdSsrXT1kLnksaVt1KytdPWQueiksZS5iaXRhbmdlbnQmJihzW2MrK109cC54LHNbYysrXT1wLnksc1tjKytdPXAueixzW2MrK109cC54LHNbYysrXT1wLnksc1tjKytdPXAueil9cmV0dXJuIHFFKGUse3Bvc2l0aW9uczp0LG5vcm1hbHM6cix0YW5nZW50czppLGJpdGFuZ2VudHM6c30pfWZ1bmN0aW9uIFdFKHQsZSl7bGV0IG49dC5fdmVydGV4Rm9ybWF0LG89dC5fZWxsaXBzb2lkLHI9ZS5oZWlnaHQsaT1lLndpZHRoLHM9ZS5ub3J0aENhcCxmPWUuc291dGhDYXAsdT0wLGM9cixsPXIscD0wO3MmJih1PTEsbC09MSxwKz0xKSxmJiYoYy09MSxsLT0xLHArPTEpLHArPWkqbDtsZXQgZD1uLnBvc2l0aW9uP25ldyBGbG9hdDY0QXJyYXkocCozKTp2b2lkIDAsbT1uLnN0P25ldyBGbG9hdDMyQXJyYXkocCoyKTp2b2lkIDAsXz0wLGc9MCxiPWJ5LE89bkIsVD1OdW1iZXIuTUFYX1ZBTFVFLEU9TnVtYmVyLk1BWF9WQUxVRSx3PS1OdW1iZXIuTUFYX1ZBTFVFLEM9LU51bWJlci5NQVhfVkFMVUU7Zm9yKGxldCBBPXU7QTxjOysrQSlmb3IobGV0IFM9MDtTPGk7KytTKWdvLmNvbXB1dGVQb3NpdGlvbihlLG8sbi5zdCxBLFMsYixPKSxkW18rK109Yi54LGRbXysrXT1iLnksZFtfKytdPWIueixuLnN0JiYobVtnKytdPU8ueCxtW2crK109Ty55LFQ9TWF0aC5taW4oVCxPLngpLEU9TWF0aC5taW4oRSxPLnkpLHc9TWF0aC5tYXgodyxPLngpLEM9TWF0aC5tYXgoQyxPLnkpKTtpZihzJiYoZ28uY29tcHV0ZVBvc2l0aW9uKGUsbyxuLnN0LDAsMCxiLE8pLGRbXysrXT1iLngsZFtfKytdPWIueSxkW18rK109Yi56LG4uc3QmJihtW2crK109Ty54LG1bZysrXT1PLnksVD1PLngsRT1PLnksdz1PLngsQz1PLnkpKSxmJiYoZ28uY29tcHV0ZVBvc2l0aW9uKGUsbyxuLnN0LHItMSwwLGIsTyksZFtfKytdPWIueCxkW18rK109Yi55LGRbX109Yi56LG4uc3QmJihtW2crK109Ty54LG1bZ109Ty55LFQ9TWF0aC5taW4oVCxPLngpLEU9TWF0aC5taW4oRSxPLnkpLHc9TWF0aC5tYXgodyxPLngpLEM9TWF0aC5tYXgoQyxPLnkpKSksbi5zdCYmKFQ8MHx8RTwwfHx3PjF8fEM+MSkpZm9yKGxldCBBPTA7QTxtLmxlbmd0aDtBKz0yKW1bQV09KG1bQV0tVCkvKHctVCksbVtBKzFdPShtW0ErMV0tRSkvKEMtRSk7bGV0IE49aUIoZCxuLG8sZS50YW5nZW50Um90YXRpb25NYXRyaXgpLEk9NiooaS0xKSoobC0xKTtzJiYoSSs9MyooaS0xKSksZiYmKEkrPTMqKGktMSkpO2xldCBMPUR0LmNyZWF0ZVR5cGVkQXJyYXkocCxJKSx2PTAsRD0wLFU7Zm9yKFU9MDtVPGwtMTsrK1Upe2ZvcihsZXQgQT0wO0E8aS0xOysrQSl7bGV0IFM9dixQPVMraSxGPVArMSxqPVMrMTtMW0QrK109UyxMW0QrK109UCxMW0QrK109aixMW0QrK109aixMW0QrK109UCxMW0QrK109RiwrK3Z9Kyt2fWlmKHN8fGYpe2xldCBBPXAtMSxTPXAtMTtzJiZmJiYoQT1wLTIpO2xldCBQLEY7aWYodj0wLHMpZm9yKFU9MDtVPGktMTtVKyspUD12LEY9UCsxLExbRCsrXT1BLExbRCsrXT1QLExbRCsrXT1GLCsrdjtpZihmKWZvcih2PShsLTEpKmksVT0wO1U8aS0xO1UrKylQPXYsRj1QKzEsTFtEKytdPVAsTFtEKytdPVMsTFtEKytdPUYsKyt2fXJldHVybiBOLmluZGljZXM9TCxuLnN0JiYoTi5hdHRyaWJ1dGVzLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczptfSkpLE59ZnVuY3Rpb24gSWEodCxlLG4sbyxyKXtyZXR1cm4gdFtlKytdPW9bbl0sdFtlKytdPW9bbisxXSx0W2UrK109b1tuKzJdLHRbZSsrXT1yW25dLHRbZSsrXT1yW24rMV0sdFtlXT1yW24rMl0sdH1mdW5jdGlvbiB2YSh0LGUsbixvKXtyZXR1cm4gdFtlKytdPW9bbl0sdFtlKytdPW9bbisxXSx0W2UrK109b1tuXSx0W2VdPW9bbisxXSx0fWZ1bmN0aW9uIGNCKHQsZSl7bGV0IG49dC5fc2hhZG93Vm9sdW1lLG89dC5fb2Zmc2V0QXR0cmlidXRlLHI9dC5fdmVydGV4Rm9ybWF0LGk9dC5fZXh0cnVkZWRIZWlnaHQscz10Ll9zdXJmYWNlSGVpZ2h0LGY9dC5fZWxsaXBzb2lkLHU9ZS5oZWlnaHQsYz1lLndpZHRoLGw7aWYobil7bGV0IEp0PWx0LmNsb25lKHIsVHkpO0p0Lm5vcm1hbD0hMCx0Ll92ZXJ0ZXhGb3JtYXQ9SnR9bGV0IHA9V0UodCxlKTtuJiYodC5fdmVydGV4Rm9ybWF0PXIpO2xldCBkPVNlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChwLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHMsZiwhMSk7ZD1uZXcgRmxvYXQ2NEFycmF5KGQpO2xldCBtPWQubGVuZ3RoLF89bSoyLGc9bmV3IEZsb2F0NjRBcnJheShfKTtnLnNldChkKTtsZXQgYj1TZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQocC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxpLGYpO2cuc2V0KGIsbSkscC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1nO2xldCBPPXIubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkoXyk6dm9pZCAwLFQ9ci50YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoXyk6dm9pZCAwLEU9ci5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShfKTp2b2lkIDAsdz1yLnN0P25ldyBGbG9hdDMyQXJyYXkoXy8zKjIpOnZvaWQgMCxDLE47aWYoci5ub3JtYWwpe2ZvcihOPXAuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzLE8uc2V0KE4pLGw9MDtsPG07bCsrKU5bbF09LU5bbF07Ty5zZXQoTixtKSxwLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlcz1PfWlmKG4pe049cC5hdHRyaWJ1dGVzLm5vcm1hbC52YWx1ZXMsci5ub3JtYWx8fChwLmF0dHJpYnV0ZXMubm9ybWFsPXZvaWQgMCk7bGV0IEp0PW5ldyBGbG9hdDMyQXJyYXkoXyk7Zm9yKGw9MDtsPG07bCsrKU5bbF09LU5bbF07SnQuc2V0KE4sbSkscC5hdHRyaWJ1dGVzLmV4dHJ1ZGVEaXJlY3Rpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkp0fSl9bGV0IEksTD1oKG8pO2lmKEwpe2xldCBKdD1tLzMqMix4ZT1uZXcgVWludDhBcnJheShKdCk7bz09PWFlLlRPUD94ZT14ZS5maWxsKDEsMCxKdC8yKTooST1vPT09YWUuTk9ORT8wOjEseGU9eGUuZmlsbChJKSkscC5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnhlfSl9aWYoci50YW5nZW50KXtsZXQgSnQ9cC5hdHRyaWJ1dGVzLnRhbmdlbnQudmFsdWVzO2ZvcihULnNldChKdCksbD0wO2w8bTtsKyspSnRbbF09LUp0W2xdO1Quc2V0KEp0LG0pLHAuYXR0cmlidXRlcy50YW5nZW50LnZhbHVlcz1UfWlmKHIuYml0YW5nZW50KXtsZXQgSnQ9cC5hdHRyaWJ1dGVzLmJpdGFuZ2VudC52YWx1ZXM7RS5zZXQoSnQpLEUuc2V0KEp0LG0pLHAuYXR0cmlidXRlcy5iaXRhbmdlbnQudmFsdWVzPUV9ci5zdCYmKEM9cC5hdHRyaWJ1dGVzLnN0LnZhbHVlcyx3LnNldChDKSx3LnNldChDLG0vMyoyKSxwLmF0dHJpYnV0ZXMuc3QudmFsdWVzPXcpO2xldCB2PXAuaW5kaWNlcyxEPXYubGVuZ3RoLFU9bS8zLEE9RHQuY3JlYXRlVHlwZWRBcnJheShfLzMsRCoyKTtmb3IoQS5zZXQodiksbD0wO2w8RDtsKz0zKUFbbCtEXT12W2wrMl0rVSxBW2wrMStEXT12W2wrMV0rVSxBW2wrMitEXT12W2xdK1U7cC5pbmRpY2VzPUE7bGV0IFM9ZS5ub3J0aENhcCxQPWUuc291dGhDYXAsRj11LGo9MixIPTAsaz00LEs9NDtTJiYoai09MSxGLT0xLEgrPTEsay09MixLLT0xKSxQJiYoai09MSxGLT0xLEgrPTEsay09MixLLT0xKSxIKz1qKmMrMipGLWs7bGV0IFg9KEgrSykqMixSPW5ldyBGbG9hdDY0QXJyYXkoWCozKSxRPW4/bmV3IEZsb2F0MzJBcnJheShYKjMpOnZvaWQgMCxmdD1MP25ldyBVaW50OEFycmF5KFgpOnZvaWQgMCxwdD1yLnN0P25ldyBGbG9hdDMyQXJyYXkoWCoyKTp2b2lkIDAsZ3Q9bz09PWFlLlRPUDtMJiYhZ3QmJihJPW89PT1hZS5BTEw/MTowLGZ0PWZ0LmZpbGwoSSkpO2xldCBpdD0wLE50PTAsT3Q9MCx4dD0wLF90PWMqRixkdDtmb3IobD0wO2w8X3Q7bCs9YylkdD1sKjMsUj1JYShSLGl0LGR0LGQsYiksaXQrPTYsci5zdCYmKHB0PXZhKHB0LE50LGwqMixDKSxOdCs9NCksbiYmKE90Kz0zLFFbT3QrK109TltkdF0sUVtPdCsrXT1OW2R0KzFdLFFbT3QrK109TltkdCsyXSksZ3QmJihmdFt4dCsrXT0xLHh0Kz0xKTtpZihQKXtsZXQgSnQ9Uz9fdCsxOl90O2ZvcihkdD1KdCozLGw9MDtsPDI7bCsrKVI9SWEoUixpdCxkdCxkLGIpLGl0Kz02LHIuc3QmJihwdD12YShwdCxOdCxKdCoyLEMpLE50Kz00KSxuJiYoT3QrPTMsUVtPdCsrXT1OW2R0XSxRW090KytdPU5bZHQrMV0sUVtPdCsrXT1OW2R0KzJdKSxndCYmKGZ0W3h0KytdPTEseHQrPTEpfWVsc2UgZm9yKGw9X3QtYztsPF90O2wrKylkdD1sKjMsUj1JYShSLGl0LGR0LGQsYiksaXQrPTYsci5zdCYmKHB0PXZhKHB0LE50LGwqMixDKSxOdCs9NCksbiYmKE90Kz0zLFFbT3QrK109TltkdF0sUVtPdCsrXT1OW2R0KzFdLFFbT3QrK109TltkdCsyXSksZ3QmJihmdFt4dCsrXT0xLHh0Kz0xKTtmb3IobD1fdC0xO2w+MDtsLT1jKWR0PWwqMyxSPUlhKFIsaXQsZHQsZCxiKSxpdCs9NixyLnN0JiYocHQ9dmEocHQsTnQsbCoyLEMpLE50Kz00KSxuJiYoT3QrPTMsUVtPdCsrXT1OW2R0XSxRW090KytdPU5bZHQrMV0sUVtPdCsrXT1OW2R0KzJdKSxndCYmKGZ0W3h0KytdPTEseHQrPTEpO2lmKFMpe2xldCBKdD1fdDtmb3IoZHQ9SnQqMyxsPTA7bDwyO2wrKylSPUlhKFIsaXQsZHQsZCxiKSxpdCs9NixyLnN0JiYocHQ9dmEocHQsTnQsSnQqMixDKSxOdCs9NCksbiYmKE90Kz0zLFFbT3QrK109TltkdF0sUVtPdCsrXT1OW2R0KzFdLFFbT3QrK109TltkdCsyXSksZ3QmJihmdFt4dCsrXT0xLHh0Kz0xKX1lbHNlIGZvcihsPWMtMTtsPj0wO2wtLSlkdD1sKjMsUj1JYShSLGl0LGR0LGQsYiksaXQrPTYsci5zdCYmKHB0PXZhKHB0LE50LGwqMixDKSxOdCs9NCksbiYmKE90Kz0zLFFbT3QrK109TltkdF0sUVtPdCsrXT1OW2R0KzFdLFFbT3QrK109TltkdCsyXSksZ3QmJihmdFt4dCsrXT0xLHh0Kz0xKTtsZXQgVnQ9c0IoUixyLGYpO3Iuc3QmJihWdC5hdHRyaWJ1dGVzLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpwdH0pKSxuJiYoVnQuYXR0cmlidXRlcy5leHRydWRlRGlyZWN0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpRfSkpLEwmJihWdC5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmZ0fSkpO2xldCB6dD1EdC5jcmVhdGVUeXBlZEFycmF5KFgsSCo2KSxoZSxjZSxwZSxmZTttPVIubGVuZ3RoLzM7bGV0IFF0PTA7Zm9yKGw9MDtsPG0tMTtsKz0yKXtoZT1sLGZlPShoZSsyKSVtO2xldCBKdD1hLmZyb21BcnJheShSLGhlKjMsd3kpLHhlPWEuZnJvbUFycmF5KFIsZmUqMyxLRSk7YS5lcXVhbHNFcHNpbG9uKEp0LHhlLE0uRVBTSUxPTjEwKXx8KGNlPShoZSsxKSVtLHBlPShjZSsyKSVtLHp0W1F0KytdPWhlLHp0W1F0KytdPWNlLHp0W1F0KytdPWZlLHp0W1F0KytdPWZlLHp0W1F0KytdPWNlLHp0W1F0KytdPXBlKX1yZXR1cm4gVnQuaW5kaWNlcz16dCxWdD1CZS5jb21iaW5lSW5zdGFuY2VzKFtuZXcgY28oe2dlb21ldHJ5OnB9KSxuZXcgY28oe2dlb21ldHJ5OlZ0fSldKSxWdFswXX1mdW5jdGlvbiBPeSh0LGUsbixvLHIpe2lmKG49PT0wKXJldHVybiBQdC5jbG9uZSh0LHIpO2xldCBpPWdvLmNvbXB1dGVPcHRpb25zKHQsZSxuLDAsSEUsWEUpLHM9aS5oZWlnaHQsZj1pLndpZHRoLHU9YUI7cmV0dXJuIGdvLmNvbXB1dGVQb3NpdGlvbihpLG8sITEsMCwwLHVbMF0pLGdvLmNvbXB1dGVQb3NpdGlvbihpLG8sITEsMCxmLTEsdVsxXSksZ28uY29tcHV0ZVBvc2l0aW9uKGksbywhMSxzLTEsMCx1WzJdKSxnby5jb21wdXRlUG9zaXRpb24oaSxvLCExLHMtMSxmLTEsdVszXSksUHQuZnJvbUNhcnRlc2lhbkFycmF5KHUsbyxyKX1mdW5jdGlvbiBtaSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5yZWN0YW5nbGU7aWYoeS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLGUpLFB0LnZhbGlkYXRlKGUpLGUubm9ydGg8ZS5zb3V0aCl0aHJvdyBuZXcgQigib3B0aW9ucy5yZWN0YW5nbGUubm9ydGggbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gb3B0aW9ucy5yZWN0YW5nbGUuc291dGgiKTtsZXQgbj14KHQuaGVpZ2h0LDApLG89eCh0LmV4dHJ1ZGVkSGVpZ2h0LG4pO3RoaXMuX3JlY3RhbmdsZT1QdC5jbG9uZShlKSx0aGlzLl9ncmFudWxhcml0eT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLHRoaXMuX2VsbGlwc29pZD0kLmNsb25lKHgodC5lbGxpcHNvaWQsJC5XR1M4NCkpLHRoaXMuX3N1cmZhY2VIZWlnaHQ9TWF0aC5tYXgobixvKSx0aGlzLl9yb3RhdGlvbj14KHQucm90YXRpb24sMCksdGhpcy5fc3RSb3RhdGlvbj14KHQuc3RSb3RhdGlvbiwwKSx0aGlzLl92ZXJ0ZXhGb3JtYXQ9bHQuY2xvbmUoeCh0LnZlcnRleEZvcm1hdCxsdC5ERUZBVUxUKSksdGhpcy5fZXh0cnVkZWRIZWlnaHQ9TWF0aC5taW4obixvKSx0aGlzLl9zaGFkb3dWb2x1bWU9eCh0LnNoYWRvd1ZvbHVtZSwhMSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUmVjdGFuZ2xlR2VvbWV0cnkiLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl9yb3RhdGVkUmVjdGFuZ2xlPXZvaWQgMCx0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzPXZvaWQgMH1mdW5jdGlvbiBoQih0KXtpZih0Ll9zdFJvdGF0aW9uPT09MClyZXR1cm5bMCwwLDAsMSwxLDBdO2xldCBlPVB0LmNsb25lKHQuX3JlY3RhbmdsZSxrRSksbj10Ll9ncmFudWxhcml0eSxvPXQuX2VsbGlwc29pZCxyPXQuX3JvdGF0aW9uLXQuX3N0Um90YXRpb24saT1PeShlLG4scixvLGtFKSxzPXBCO3NbMF0ueD1pLndlc3Qsc1swXS55PWkuc291dGgsc1sxXS54PWkud2VzdCxzWzFdLnk9aS5ub3J0aCxzWzJdLng9aS5lYXN0LHNbMl0ueT1pLnNvdXRoO2xldCBmPXQucmVjdGFuZ2xlLHU9WG8uZnJvbVJvdGF0aW9uKHQuX3N0Um90YXRpb24sZEIpLGM9UHQuY2VudGVyKGYsbUIpO2ZvcihsZXQgXz0wO188MzsrK18pe2xldCBnPXNbX107Zy54LT1jLmxvbmdpdHVkZSxnLnktPWMubGF0aXR1ZGUsWG8ubXVsdGlwbHlCeVZlY3Rvcih1LGcsZyksZy54Kz1jLmxvbmdpdHVkZSxnLnkrPWMubGF0aXR1ZGUsZy54PShnLngtZi53ZXN0KS9mLndpZHRoLGcueT0oZy55LWYuc291dGgpL2YuaGVpZ2h0fWxldCBsPXNbMF0scD1zWzFdLGQ9c1syXSxtPW5ldyBBcnJheSg2KTtyZXR1cm4gbnQucGFjayhsLG0pLG50LnBhY2socCxtLDIpLG50LnBhY2soZCxtLDQpLG19dmFyIGJ5LEdFLHpFLGpFLEhFLG5CLG9CLHJCLHd5LEtFLFR5LGFCLFhFLGZCLFlFLCRFLFJzLHVCLFZFLGxCLGtFLHBCLGRCLG1CLEV5LFpFPVooKCk9PntQZSgpO3plKCk7VXQoKTt2ZSgpO1l0KCk7RGUoKTtJdCgpO2F0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpO3NjKCk7Rm8oKTtzaSgpOyRlKCk7V3QoKTtmZigpO0ZuKCk7cXIoKTt0bigpOyRvKCk7QW4oKTtBeSgpO1JvKCk7Ynk9bmV3IGEsR0U9bmV3IGEsekU9bmV3IGEsakU9bmV3IGEsSEU9bmV3IFB0LG5CPW5ldyBudCxvQj1uZXcgeXQsckI9bmV3IHl0O3d5PW5ldyBhLEtFPW5ldyBhO1R5PW5ldyBsdDthQj1bbmV3IGEsbmV3IGEsbmV3IGEsbmV3IGFdLFhFPW5ldyBjdCxmQj1uZXcgY3Q7bWkucGFja2VkTGVuZ3RoPVB0LnBhY2tlZExlbmd0aCskLnBhY2tlZExlbmd0aCtsdC5wYWNrZWRMZW5ndGgrNzttaS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksUHQucGFjayh0Ll9yZWN0YW5nbGUsZSxuKSxuKz1QdC5wYWNrZWRMZW5ndGgsJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGx0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9bHQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll9ncmFudWxhcml0eSxlW24rK109dC5fc3VyZmFjZUhlaWdodCxlW24rK109dC5fcm90YXRpb24sZVtuKytdPXQuX3N0Um90YXRpb24sZVtuKytdPXQuX2V4dHJ1ZGVkSGVpZ2h0LGVbbisrXT10Ll9zaGFkb3dWb2x1bWU/MTowLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O1lFPW5ldyBQdCwkRT0kLmNsb25lKCQuVU5JVF9TUEhFUkUpLFJzPXtyZWN0YW5nbGU6WUUsZWxsaXBzb2lkOiRFLHZlcnRleEZvcm1hdDpUeSxncmFudWxhcml0eTp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxyb3RhdGlvbjp2b2lkIDAsc3RSb3RhdGlvbjp2b2lkIDAsZXh0cnVkZWRIZWlnaHQ6dm9pZCAwLHNoYWRvd1ZvbHVtZTp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07bWkudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz1QdC51bnBhY2sodCxlLFlFKTtlKz1QdC5wYWNrZWRMZW5ndGg7bGV0IHI9JC51bnBhY2sodCxlLCRFKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgaT1sdC51bnBhY2sodCxlLFR5KTtlKz1sdC5wYWNrZWRMZW5ndGg7bGV0IHM9dFtlKytdLGY9dFtlKytdLHU9dFtlKytdLGM9dFtlKytdLGw9dFtlKytdLHA9dFtlKytdPT09MSxkPXRbZV07cmV0dXJuIGgobik/KG4uX3JlY3RhbmdsZT1QdC5jbG9uZShvLG4uX3JlY3RhbmdsZSksbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3ZlcnRleEZvcm1hdD1sdC5jbG9uZShpLG4uX3ZlcnRleEZvcm1hdCksbi5fZ3JhbnVsYXJpdHk9cyxuLl9zdXJmYWNlSGVpZ2h0PWYsbi5fcm90YXRpb249dSxuLl9zdFJvdGF0aW9uPWMsbi5fZXh0cnVkZWRIZWlnaHQ9bCxuLl9zaGFkb3dWb2x1bWU9cCxuLl9vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG4pOihScy5ncmFudWxhcml0eT1zLFJzLmhlaWdodD1mLFJzLnJvdGF0aW9uPXUsUnMuc3RSb3RhdGlvbj1jLFJzLmV4dHJ1ZGVkSGVpZ2h0PWwsUnMuc2hhZG93Vm9sdW1lPXAsUnMub2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCxuZXcgbWkoUnMpKX07bWkuY29tcHV0ZVJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgbj10LnJlY3RhbmdsZTtpZih5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsbiksUHQudmFsaWRhdGUobiksbi5ub3J0aDxuLnNvdXRoKXRocm93IG5ldyBCKCJvcHRpb25zLnJlY3RhbmdsZS5ub3J0aCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBvcHRpb25zLnJlY3RhbmdsZS5zb3V0aCIpO2xldCBvPXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSkscj14KHQuZWxsaXBzb2lkLCQuV0dTODQpLGk9eCh0LnJvdGF0aW9uLDApO3JldHVybiBPeShuLG8saSxyLGUpfTt1Qj1uZXcgdHQsVkU9bmV3IG5lLGxCPW5ldyBjdDttaS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtpZihNLmVxdWFsc0Vwc2lsb24odC5fcmVjdGFuZ2xlLm5vcnRoLHQuX3JlY3RhbmdsZS5zb3V0aCxNLkVQU0lMT04xMCl8fE0uZXF1YWxzRXBzaWxvbih0Ll9yZWN0YW5nbGUuZWFzdCx0Ll9yZWN0YW5nbGUud2VzdCxNLkVQU0lMT04xMCkpcmV0dXJuO2xldCBlPXQuX3JlY3RhbmdsZSxuPXQuX2VsbGlwc29pZCxvPXQuX3JvdGF0aW9uLHI9dC5fc3RSb3RhdGlvbixpPXQuX3ZlcnRleEZvcm1hdCxzPWdvLmNvbXB1dGVPcHRpb25zKGUsdC5fZ3JhbnVsYXJpdHksbyxyLEhFLFhFLGZCKSxmPXVCO2lmKHIhPT0wfHxvIT09MCl7bGV0IG09UHQuY2VudGVyKGUsbEIpLF89bi5nZW9kZXRpY1N1cmZhY2VOb3JtYWxDYXJ0b2dyYXBoaWMobSx3eSk7bmUuZnJvbUF4aXNBbmdsZShfLC1yLFZFKSx0dC5mcm9tUXVhdGVybmlvbihWRSxmKX1lbHNlIHR0LmNsb25lKHR0LklERU5USVRZLGYpO2xldCB1PXQuX3N1cmZhY2VIZWlnaHQsYz10Ll9leHRydWRlZEhlaWdodCxsPSFNLmVxdWFsc0Vwc2lsb24odSxjLDAsTS5FUFNJTE9OMik7cy5sb25TY2FsYXI9MS90Ll9yZWN0YW5nbGUud2lkdGgscy5sYXRTY2FsYXI9MS90Ll9yZWN0YW5nbGUuaGVpZ2h0LHMudGFuZ2VudFJvdGF0aW9uTWF0cml4PWY7bGV0IHAsZDtpZihlPXQuX3JlY3RhbmdsZSxsKXtwPWNCKHQscyk7bGV0IG09eXQuZnJvbVJlY3RhbmdsZTNEKGUsbix1LHJCKSxfPXl0LmZyb21SZWN0YW5nbGUzRChlLG4sYyxvQik7ZD15dC51bmlvbihtLF8pfWVsc2V7aWYocD1XRSh0LHMpLHAuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9U2Uuc2NhbGVUb0dlb2RldGljSGVpZ2h0KHAuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsdSxuLCExKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBtPXAuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLF89dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuTk9ORT8wOjEsZz1uZXcgVWludDhBcnJheShtLzMpLmZpbGwoXyk7cC5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmd9KX1kPXl0LmZyb21SZWN0YW5nbGUzRChlLG4sdSl9cmV0dXJuIGkucG9zaXRpb258fGRlbGV0ZSBwLmF0dHJpYnV0ZXMucG9zaXRpb24sbmV3IEZ0KHthdHRyaWJ1dGVzOnAuYXR0cmlidXRlcyxpbmRpY2VzOnAuaW5kaWNlcyxwcmltaXRpdmVUeXBlOnAucHJpbWl0aXZlVHlwZSxib3VuZGluZ1NwaGVyZTpkLG9mZnNldEF0dHJpYnV0ZTp0Ll9vZmZzZXRBdHRyaWJ1dGV9KX07bWkuY3JlYXRlU2hhZG93Vm9sdW1lPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10Ll9ncmFudWxhcml0eSxyPXQuX2VsbGlwc29pZCxpPWUobyxyKSxzPW4obyxyKTtyZXR1cm4gbmV3IG1pKHtyZWN0YW5nbGU6dC5fcmVjdGFuZ2xlLHJvdGF0aW9uOnQuX3JvdGF0aW9uLGVsbGlwc29pZDpyLHN0Um90YXRpb246dC5fc3RSb3RhdGlvbixncmFudWxhcml0eTpvLGV4dHJ1ZGVkSGVpZ2h0OnMsaGVpZ2h0OmksdmVydGV4Rm9ybWF0Omx0LlBPU0lUSU9OX09OTFksc2hhZG93Vm9sdW1lOiEwfSl9O2tFPW5ldyBQdCxwQj1bbmV3IG50LG5ldyBudCxuZXcgbnRdLGRCPW5ldyBYbyxtQj1uZXcgY3Q7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobWkucHJvdG90eXBlLHtyZWN0YW5nbGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBoKHRoaXMuX3JvdGF0ZWRSZWN0YW5nbGUpfHwodGhpcy5fcm90YXRlZFJlY3RhbmdsZT1PeSh0aGlzLl9yZWN0YW5nbGUsdGhpcy5fZ3JhbnVsYXJpdHksdGhpcy5fcm90YXRpb24sdGhpcy5fZWxsaXBzb2lkKSksdGhpcy5fcm90YXRlZFJlY3RhbmdsZX19LHRleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBoKHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHMpfHwodGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cz1oQih0aGlzKSksdGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50c319fSk7RXk9bWl9KTt2YXIgUnk9e307bWUoUnkse2RlZmF1bHQ6KCk9PnlCfSk7ZnVuY3Rpb24gX0IodCxlKXtyZXR1cm4gaChlKSYmKHQ9RXkudW5wYWNrKHQsZSkpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksdC5fcmVjdGFuZ2xlPVB0LmNsb25lKHQuX3JlY3RhbmdsZSksRXkuY3JlYXRlR2VvbWV0cnkodCl9dmFyIHlCLFN5PVooKCk9PnthdCgpO1p0KCk7QW4oKTtaRSgpO3lCPV9CfSk7ZnVuY3Rpb24gUUUodCxlKXtsZXQgbj10Ll9lbGxpcHNvaWQsbz1lLmhlaWdodCxyPWUud2lkdGgsaT1lLm5vcnRoQ2FwLHM9ZS5zb3V0aENhcCxmPW8sdT0yLGM9MCxsPTQ7aSYmKHUtPTEsZi09MSxjKz0xLGwtPTIpLHMmJih1LT0xLGYtPTEsYys9MSxsLT0yKSxjKz11KnIrMipmLWw7bGV0IHA9bmV3IEZsb2F0NjRBcnJheShjKjMpLGQ9MCxtPTAsXyxnPWJCO2lmKGkpZ28uY29tcHV0ZVBvc2l0aW9uKGUsbiwhMSxtLDAsZykscFtkKytdPWcueCxwW2QrK109Zy55LHBbZCsrXT1nLno7ZWxzZSBmb3IoXz0wO188cjtfKyspZ28uY29tcHV0ZVBvc2l0aW9uKGUsbiwhMSxtLF8sZykscFtkKytdPWcueCxwW2QrK109Zy55LHBbZCsrXT1nLno7Zm9yKF89ci0xLG09MTttPG87bSsrKWdvLmNvbXB1dGVQb3NpdGlvbihlLG4sITEsbSxfLGcpLHBbZCsrXT1nLngscFtkKytdPWcueSxwW2QrK109Zy56O2lmKG09by0xLCFzKWZvcihfPXItMjtfPj0wO18tLSlnby5jb21wdXRlUG9zaXRpb24oZSxuLCExLG0sXyxnKSxwW2QrK109Zy54LHBbZCsrXT1nLnkscFtkKytdPWcuejtmb3IoXz0wLG09by0yO20+MDttLS0pZ28uY29tcHV0ZVBvc2l0aW9uKGUsbiwhMSxtLF8sZykscFtkKytdPWcueCxwW2QrK109Zy55LHBbZCsrXT1nLno7bGV0IGI9cC5sZW5ndGgvMyoyLE89RHQuY3JlYXRlVHlwZWRBcnJheShwLmxlbmd0aC8zLGIpLFQ9MDtmb3IobGV0IHc9MDt3PHAubGVuZ3RoLzMtMTt3KyspT1tUKytdPXcsT1tUKytdPXcrMTtPW1QrK109cC5sZW5ndGgvMy0xLE9bVCsrXT0wO2xldCBFPW5ldyBGdCh7YXR0cmlidXRlczpuZXcgcmUscHJpbWl0aXZlVHlwZTpMdC5MSU5FU30pO3JldHVybiBFLmF0dHJpYnV0ZXMucG9zaXRpb249bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpwfSksRS5pbmRpY2VzPU8sRX1mdW5jdGlvbiBUQih0LGUpe2xldCBuPXQuX3N1cmZhY2VIZWlnaHQsbz10Ll9leHRydWRlZEhlaWdodCxyPXQuX2VsbGlwc29pZCxpPW8scz1uLGY9UUUodCxlKSx1PWUuaGVpZ2h0LGM9ZS53aWR0aCxsPVNlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChmLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHMsciwhMSkscD1sLmxlbmd0aCxkPW5ldyBGbG9hdDY0QXJyYXkocCoyKTtkLnNldChsKTtsZXQgbT1TZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQoZi5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxpLHIpO2Quc2V0KG0scCksZi5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1kO2xldCBfPWUubm9ydGhDYXAsZz1lLnNvdXRoQ2FwLGI9NDtfJiYoYi09MSksZyYmKGItPTEpO2xldCBPPShkLmxlbmd0aC8zK2IpKjIsVD1EdC5jcmVhdGVUeXBlZEFycmF5KGQubGVuZ3RoLzMsTyk7cD1kLmxlbmd0aC82O2xldCBFPTA7Zm9yKGxldCBDPTA7QzxwLTE7QysrKVRbRSsrXT1DLFRbRSsrXT1DKzEsVFtFKytdPUMrcCxUW0UrK109QytwKzE7VFtFKytdPXAtMSxUW0UrK109MCxUW0UrK109cCtwLTEsVFtFKytdPXAsVFtFKytdPTAsVFtFKytdPXA7bGV0IHc7aWYoXyl3PXUtMTtlbHNle2xldCBDPWMtMTtUW0UrK109QyxUW0UrK109QytwLHc9Yyt1LTJ9aWYoVFtFKytdPXcsVFtFKytdPXcrcCwhZyl7bGV0IEM9Yyt3LTE7VFtFKytdPUMsVFtFXT1DK3B9cmV0dXJuIGYuaW5kaWNlcz1ULGZ9ZnVuY3Rpb24gTGEodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucmVjdGFuZ2xlLG49eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxvPXgodC5lbGxpcHNvaWQsJC5XR1M4NCkscj14KHQucm90YXRpb24sMCk7aWYoIWgoZSkpdGhyb3cgbmV3IEIoInJlY3RhbmdsZSBpcyByZXF1aXJlZC4iKTtpZihQdC52YWxpZGF0ZShlKSxlLm5vcnRoPGUuc291dGgpdGhyb3cgbmV3IEIoIm9wdGlvbnMucmVjdGFuZ2xlLm5vcnRoIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9wdGlvbnMucmVjdGFuZ2xlLnNvdXRoIik7bGV0IGk9eCh0LmhlaWdodCwwKSxzPXgodC5leHRydWRlZEhlaWdodCxpKTt0aGlzLl9yZWN0YW5nbGU9UHQuY2xvbmUoZSksdGhpcy5fZ3JhbnVsYXJpdHk9bix0aGlzLl9lbGxpcHNvaWQ9byx0aGlzLl9zdXJmYWNlSGVpZ2h0PU1hdGgubWF4KGkscyksdGhpcy5fcm90YXRpb249cix0aGlzLl9leHRydWRlZEhlaWdodD1NYXRoLm1pbihpLHMpLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVSZWN0YW5nbGVPdXRsaW5lR2VvbWV0cnkifXZhciBnQixBQixiQix3QixKRSx0UixEYSxPQixDeSxlUj1aKCgpPT57UGUoKTtVdCgpO3ZlKCk7RGUoKTtJdCgpO2F0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpO0ZvKCk7JGUoKTtXdCgpO3FyKCk7dG4oKTtBbigpO0F5KCk7Z0I9bmV3IHl0LEFCPW5ldyB5dCxiQj1uZXcgYSx3Qj1uZXcgUHQ7TGEucGFja2VkTGVuZ3RoPVB0LnBhY2tlZExlbmd0aCskLnBhY2tlZExlbmd0aCs1O0xhLnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO3JldHVybiBuPXgobiwwKSxQdC5wYWNrKHQuX3JlY3RhbmdsZSxlLG4pLG4rPVB0LnBhY2tlZExlbmd0aCwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9zdXJmYWNlSGVpZ2h0LGVbbisrXT10Ll9yb3RhdGlvbixlW24rK109dC5fZXh0cnVkZWRIZWlnaHQsZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07SkU9bmV3IFB0LHRSPSQuY2xvbmUoJC5VTklUX1NQSEVSRSksRGE9e3JlY3RhbmdsZTpKRSxlbGxpcHNvaWQ6dFIsZ3JhbnVsYXJpdHk6dm9pZCAwLGhlaWdodDp2b2lkIDAscm90YXRpb246dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtMYS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvPVB0LnVucGFjayh0LGUsSkUpO2UrPVB0LnBhY2tlZExlbmd0aDtsZXQgcj0kLnVucGFjayh0LGUsdFIpO2UrPSQucGFja2VkTGVuZ3RoO2xldCBpPXRbZSsrXSxzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXSxjPXRbZV07cmV0dXJuIGgobik/KG4uX3JlY3RhbmdsZT1QdC5jbG9uZShvLG4uX3JlY3RhbmdsZSksbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3N1cmZhY2VIZWlnaHQ9cyxuLl9yb3RhdGlvbj1mLG4uX2V4dHJ1ZGVkSGVpZ2h0PXUsbi5fb2Zmc2V0QXR0cmlidXRlPWM9PT0tMT92b2lkIDA6YyxuKTooRGEuZ3JhbnVsYXJpdHk9aSxEYS5oZWlnaHQ9cyxEYS5yb3RhdGlvbj1mLERhLmV4dHJ1ZGVkSGVpZ2h0PXUsRGEub2Zmc2V0QXR0cmlidXRlPWM9PT0tMT92b2lkIDA6YyxuZXcgTGEoRGEpKX07T0I9bmV3IGN0O0xhLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3JlY3RhbmdsZSxuPXQuX2VsbGlwc29pZCxvPWdvLmNvbXB1dGVPcHRpb25zKGUsdC5fZ3JhbnVsYXJpdHksdC5fcm90YXRpb24sMCx3QixPQikscixpO2lmKE0uZXF1YWxzRXBzaWxvbihlLm5vcnRoLGUuc291dGgsTS5FUFNJTE9OMTApfHxNLmVxdWFsc0Vwc2lsb24oZS5lYXN0LGUud2VzdCxNLkVQU0lMT04xMCkpcmV0dXJuO2xldCBzPXQuX3N1cmZhY2VIZWlnaHQsZj10Ll9leHRydWRlZEhlaWdodCx1PSFNLmVxdWFsc0Vwc2lsb24ocyxmLDAsTS5FUFNJTE9OMiksYztpZih1KXtpZihyPVRCKHQsbyksaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgZD1yLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLG09bmV3IFVpbnQ4QXJyYXkoZCk7dC5fb2Zmc2V0QXR0cmlidXRlPT09YWUuVE9QP209bS5maWxsKDEsMCxkLzIpOihjPXQuX29mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxLG09bS5maWxsKGMpKSxyLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6bX0pfWxldCBsPXl0LmZyb21SZWN0YW5nbGUzRChlLG4scyxBQikscD15dC5mcm9tUmVjdGFuZ2xlM0QoZSxuLGYsZ0IpO2k9eXQudW5pb24obCxwKX1lbHNle2lmKHI9UUUodCxvKSxyLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPVNlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChyLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHMsbiwhMSksaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgbD1yLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aDtjPXQuX29mZnNldEF0dHJpYnV0ZT09PWFlLk5PTkU/MDoxO2xldCBwPW5ldyBVaW50OEFycmF5KGwvMykuZmlsbChjKTtyLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6cH0pfWk9eXQuZnJvbVJlY3RhbmdsZTNEKGUsbixzKX1yZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOnIuYXR0cmlidXRlcyxpbmRpY2VzOnIuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkx0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOmksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtDeT1MYX0pO3ZhciB4eT17fTttZSh4eSx7ZGVmYXVsdDooKT0+UkJ9KTtmdW5jdGlvbiBFQih0LGUpe3JldHVybiBoKGUpJiYodD1DeS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSx0Ll9yZWN0YW5nbGU9UHQuY2xvbmUodC5fcmVjdGFuZ2xlKSxDeS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgUkIsUHk9WigoKT0+e2F0KCk7WnQoKTtBbigpO2VSKCk7UkI9RUJ9KTtmdW5jdGlvbiBTQih0LGUsbixvLHIsaSxzKXtsZXQgZj15bi5udW1iZXJPZlBvaW50cyh0LGUsciksdSxjPW4ucmVkLGw9bi5ncmVlbixwPW4uYmx1ZSxkPW4uYWxwaGEsbT1vLnJlZCxfPW8uZ3JlZW4sZz1vLmJsdWUsYj1vLmFscGhhO2lmKHNlLmVxdWFscyhuLG8pKXtmb3IodT0wO3U8Zjt1KyspaVtzKytdPXNlLmZsb2F0VG9CeXRlKGMpLGlbcysrXT1zZS5mbG9hdFRvQnl0ZShsKSxpW3MrK109c2UuZmxvYXRUb0J5dGUocCksaVtzKytdPXNlLmZsb2F0VG9CeXRlKGQpO3JldHVybiBzfWxldCBPPShtLWMpL2YsVD0oXy1sKS9mLEU9KGctcCkvZix3PShiLWQpL2YsQz1zO2Zvcih1PTA7dTxmO3UrKylpW0MrK109c2UuZmxvYXRUb0J5dGUoYyt1Kk8pLGlbQysrXT1zZS5mbG9hdFRvQnl0ZShsK3UqVCksaVtDKytdPXNlLmZsb2F0VG9CeXRlKHArdSpFKSxpW0MrK109c2UuZmxvYXRUb0J5dGUoZCt1KncpO3JldHVybiBDfWZ1bmN0aW9uIHJ1KHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucyxuPXQuY29sb3JzLG89eCh0LmNvbG9yc1BlclZlcnRleCwhMSk7aWYoIWgoZSl8fGUubGVuZ3RoPDIpdGhyb3cgbmV3IEIoIkF0IGxlYXN0IHR3byBwb3NpdGlvbnMgYXJlIHJlcXVpcmVkLiIpO2lmKGgobikmJihvJiZuLmxlbmd0aDxlLmxlbmd0aHx8IW8mJm4ubGVuZ3RoPGUubGVuZ3RoLTEpKXRocm93IG5ldyBCKCJjb2xvcnMgaGFzIGFuIGludmFsaWQgbGVuZ3RoLiIpO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX2NvbG9ycz1uLHRoaXMuX2NvbG9yc1BlclZlcnRleD1vLHRoaXMuX2FyY1R5cGU9eCh0LmFyY1R5cGUsdWUuR0VPREVTSUMpLHRoaXMuX2dyYW51bGFyaXR5PXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksdGhpcy5fZWxsaXBzb2lkPXgodC5lbGxpcHNvaWQsJC5XR1M4NCksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlU2ltcGxlUG9seWxpbmVHZW9tZXRyeSI7bGV0IHI9MStlLmxlbmd0aCphLnBhY2tlZExlbmd0aDtyKz1oKG4pPzErbi5sZW5ndGgqc2UucGFja2VkTGVuZ3RoOjEsdGhpcy5wYWNrZWRMZW5ndGg9ciskLnBhY2tlZExlbmd0aCszfXZhciBMZCxGZCxDQixNeSxuUj1aKCgpPT57ZmMoKTtQZSgpO1V0KCk7UWYoKTtEZSgpO0l0KCk7YXQoKTtIdCgpO1p0KCk7WGUoKTtZZSgpO2FuKCk7JGUoKTtXdCgpO2dhKCk7dG4oKTtydS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtuPXgobiwwKTtsZXQgbyxyPXQuX3Bvc2l0aW9ucyxpPXIubGVuZ3RoO2ZvcihlW24rK109aSxvPTA7bzxpOysrbyxuKz1hLnBhY2tlZExlbmd0aClhLnBhY2socltvXSxlLG4pO2xldCBzPXQuX2NvbG9ycztmb3IoaT1oKHMpP3MubGVuZ3RoOjAsZVtuKytdPWksbz0wO288aTsrK28sbis9c2UucGFja2VkTGVuZ3RoKXNlLnBhY2soc1tvXSxlLG4pO3JldHVybiAkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2NvbG9yc1BlclZlcnRleD8xOjAsZVtuKytdPXQuX2FyY1R5cGUsZVtuXT10Ll9ncmFudWxhcml0eSxlfTtydS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvLHI9dFtlKytdLGk9bmV3IEFycmF5KHIpO2ZvcihvPTA7bzxyOysrbyxlKz1hLnBhY2tlZExlbmd0aClpW29dPWEudW5wYWNrKHQsZSk7cj10W2UrK107bGV0IHM9cj4wP25ldyBBcnJheShyKTp2b2lkIDA7Zm9yKG89MDtvPHI7KytvLGUrPXNlLnBhY2tlZExlbmd0aClzW29dPXNlLnVucGFjayh0LGUpO2xldCBmPSQudW5wYWNrKHQsZSk7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IHU9dFtlKytdPT09MSxjPXRbZSsrXSxsPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1pLG4uX2NvbG9ycz1zLG4uX2VsbGlwc29pZD1mLG4uX2NvbG9yc1BlclZlcnRleD11LG4uX2FyY1R5cGU9YyxuLl9ncmFudWxhcml0eT1sLG4pOm5ldyBydSh7cG9zaXRpb25zOmksY29sb3JzOnMsZWxsaXBzb2lkOmYsY29sb3JzUGVyVmVydGV4OnUsYXJjVHlwZTpjLGdyYW51bGFyaXR5Omx9KX07TGQ9bmV3IEFycmF5KDIpLEZkPW5ldyBBcnJheSgyKSxDQj17cG9zaXRpb25zOkxkLGhlaWdodDpGZCxlbGxpcHNvaWQ6dm9pZCAwLG1pbkRpc3RhbmNlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDB9O3J1LmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPXQuX2NvbG9ycyxvPXQuX2NvbG9yc1BlclZlcnRleCxyPXQuX2FyY1R5cGUsaT10Ll9ncmFudWxhcml0eSxzPXQuX2VsbGlwc29pZCxmPU0uY2hvcmRMZW5ndGgoaSxzLm1heGltdW1SYWRpdXMpLHU9aChuKSYmIW8sYyxsPWUubGVuZ3RoLHAsZCxtLF8sZz0wO2lmKHI9PT11ZS5HRU9ERVNJQ3x8cj09PXVlLlJIVU1CKXtsZXQgdyxDLE47cj09PXVlLkdFT0RFU0lDPyh3PU0uY2hvcmRMZW5ndGgoaSxzLm1heGltdW1SYWRpdXMpLEM9eW4ubnVtYmVyT2ZQb2ludHMsTj15bi5nZW5lcmF0ZUFyYyk6KHc9aSxDPXluLm51bWJlck9mUG9pbnRzUmh1bWJMaW5lLE49eW4uZ2VuZXJhdGVSaHVtYkFyYyk7bGV0IEk9eW4uZXh0cmFjdEhlaWdodHMoZSxzKSxMPUNCO2lmKHI9PT11ZS5HRU9ERVNJQz9MLm1pbkRpc3RhbmNlPWY6TC5ncmFudWxhcml0eT1pLEwuZWxsaXBzb2lkPXMsdSl7bGV0IHY9MDtmb3IoYz0wO2M8bC0xO2MrKyl2Kz1DKGVbY10sZVtjKzFdLHcpKzE7cD1uZXcgRmxvYXQ2NEFycmF5KHYqMyksbT1uZXcgVWludDhBcnJheSh2KjQpLEwucG9zaXRpb25zPUxkLEwuaGVpZ2h0PUZkO2xldCBEPTA7Zm9yKGM9MDtjPGwtMTsrK2Mpe0xkWzBdPWVbY10sTGRbMV09ZVtjKzFdLEZkWzBdPUlbY10sRmRbMV09SVtjKzFdO2xldCBVPU4oTCk7aWYoaChuKSl7bGV0IEE9VS5sZW5ndGgvMztfPW5bY107Zm9yKGxldCBTPTA7UzxBOysrUyltW0QrK109c2UuZmxvYXRUb0J5dGUoXy5yZWQpLG1bRCsrXT1zZS5mbG9hdFRvQnl0ZShfLmdyZWVuKSxtW0QrK109c2UuZmxvYXRUb0J5dGUoXy5ibHVlKSxtW0QrK109c2UuZmxvYXRUb0J5dGUoXy5hbHBoYSl9cC5zZXQoVSxnKSxnKz1VLmxlbmd0aH19ZWxzZSBpZihMLnBvc2l0aW9ucz1lLEwuaGVpZ2h0PUkscD1uZXcgRmxvYXQ2NEFycmF5KE4oTCkpLGgobikpe2ZvcihtPW5ldyBVaW50OEFycmF5KHAubGVuZ3RoLzMqNCksYz0wO2M8bC0xOysrYyl7bGV0IEQ9ZVtjXSxVPWVbYysxXSxBPW5bY10sUz1uW2MrMV07Zz1TQihELFUsQSxTLGYsbSxnKX1sZXQgdj1uW2wtMV07bVtnKytdPXNlLmZsb2F0VG9CeXRlKHYucmVkKSxtW2crK109c2UuZmxvYXRUb0J5dGUodi5ncmVlbiksbVtnKytdPXNlLmZsb2F0VG9CeXRlKHYuYmx1ZSksbVtnKytdPXNlLmZsb2F0VG9CeXRlKHYuYWxwaGEpfX1lbHNle2Q9dT9sKjItMjpsLHA9bmV3IEZsb2F0NjRBcnJheShkKjMpLG09aChuKT9uZXcgVWludDhBcnJheShkKjQpOnZvaWQgMDtsZXQgdz0wLEM9MDtmb3IoYz0wO2M8bDsrK2Mpe2xldCBOPWVbY107aWYodSYmYz4wJiYoYS5wYWNrKE4scCx3KSx3Kz0zLF89bltjLTFdLG1bQysrXT1zZS5mbG9hdFRvQnl0ZShfLnJlZCksbVtDKytdPXNlLmZsb2F0VG9CeXRlKF8uZ3JlZW4pLG1bQysrXT1zZS5mbG9hdFRvQnl0ZShfLmJsdWUpLG1bQysrXT1zZS5mbG9hdFRvQnl0ZShfLmFscGhhKSksdSYmYz09PWwtMSlicmVhazthLnBhY2soTixwLHcpLHcrPTMsaChuKSYmKF89bltjXSxtW0MrK109c2UuZmxvYXRUb0J5dGUoXy5yZWQpLG1bQysrXT1zZS5mbG9hdFRvQnl0ZShfLmdyZWVuKSxtW0MrK109c2UuZmxvYXRUb0J5dGUoXy5ibHVlKSxtW0MrK109c2UuZmxvYXRUb0J5dGUoXy5hbHBoYSkpfX1sZXQgYj1uZXcgcmU7Yi5wb3NpdGlvbj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnB9KSxoKG4pJiYoYi5jb2xvcj1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTo0LHZhbHVlczptLG5vcm1hbGl6ZTohMH0pKSxkPXAubGVuZ3RoLzM7bGV0IE89KGQtMSkqMixUPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZCxPKSxFPTA7Zm9yKGM9MDtjPGQtMTsrK2MpVFtFKytdPWMsVFtFKytdPWMrMTtyZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOmIsaW5kaWNlczpULHByaW1pdGl2ZVR5cGU6THQuTElORVMsYm91bmRpbmdTcGhlcmU6eXQuZnJvbVBvaW50cyhlKX0pfTtNeT1ydX0pO3ZhciBOeT17fTttZShOeSx7ZGVmYXVsdDooKT0+UEJ9KTtmdW5jdGlvbiB4Qih0LGUpe3JldHVybiBoKGUpJiYodD1NeS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxNeS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgUEIsSXk9WigoKT0+e2F0KCk7WnQoKTtuUigpO1BCPXhCfSk7ZnVuY3Rpb24gRmEodCl7bGV0IGU9eCh0LnJhZGl1cywxKSxvPXtyYWRpaTpuZXcgYShlLGUsZSksc3RhY2tQYXJ0aXRpb25zOnQuc3RhY2tQYXJ0aXRpb25zLHNsaWNlUGFydGl0aW9uczp0LnNsaWNlUGFydGl0aW9ucyx2ZXJ0ZXhGb3JtYXQ6dC52ZXJ0ZXhGb3JtYXR9O3RoaXMuX2VsbGlwc29pZEdlb21ldHJ5PW5ldyBjcihvKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVTcGhlcmVHZW9tZXRyeSJ9dmFyIE1CLFNzLHZ5LG9SPVooKCk9PntVdCgpO1l0KCk7SXQoKTthdCgpO0FkKCk7Um8oKTtGYS5wYWNrZWRMZW5ndGg9Y3IucGFja2VkTGVuZ3RoO0ZhLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSxjci5wYWNrKHQuX2VsbGlwc29pZEdlb21ldHJ5LGUsbil9O01CPW5ldyBjcixTcz17cmFkaXVzOnZvaWQgMCxyYWRpaTpuZXcgYSx2ZXJ0ZXhGb3JtYXQ6bmV3IGx0LHN0YWNrUGFydGl0aW9uczp2b2lkIDAsc2xpY2VQYXJ0aXRpb25zOnZvaWQgMH07RmEudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1jci51bnBhY2sodCxlLE1CKTtyZXR1cm4gU3MudmVydGV4Rm9ybWF0PWx0LmNsb25lKG8uX3ZlcnRleEZvcm1hdCxTcy52ZXJ0ZXhGb3JtYXQpLFNzLnN0YWNrUGFydGl0aW9ucz1vLl9zdGFja1BhcnRpdGlvbnMsU3Muc2xpY2VQYXJ0aXRpb25zPW8uX3NsaWNlUGFydGl0aW9ucyxoKG4pPyhhLmNsb25lKG8uX3JhZGlpLFNzLnJhZGlpKSxuLl9lbGxpcHNvaWRHZW9tZXRyeT1uZXcgY3IoU3MpLG4pOihTcy5yYWRpdXM9by5fcmFkaWkueCxuZXcgRmEoU3MpKX07RmEuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7cmV0dXJuIGNyLmNyZWF0ZUdlb21ldHJ5KHQuX2VsbGlwc29pZEdlb21ldHJ5KX07dnk9RmF9KTt2YXIgRHk9e307bWUoRHkse2RlZmF1bHQ6KCk9PklCfSk7ZnVuY3Rpb24gTkIodCxlKXtyZXR1cm4gaChlKSYmKHQ9dnkudW5wYWNrKHQsZSkpLHZ5LmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBJQixMeT1aKCgpPT57YXQoKTtvUigpO0lCPU5CfSk7ZnVuY3Rpb24gQmEodCl7bGV0IGU9eCh0LnJhZGl1cywxKSxvPXtyYWRpaTpuZXcgYShlLGUsZSksc3RhY2tQYXJ0aXRpb25zOnQuc3RhY2tQYXJ0aXRpb25zLHNsaWNlUGFydGl0aW9uczp0LnNsaWNlUGFydGl0aW9ucyxzdWJkaXZpc2lvbnM6dC5zdWJkaXZpc2lvbnN9O3RoaXMuX2VsbGlwc29pZEdlb21ldHJ5PW5ldyBXcihvKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVTcGhlcmVPdXRsaW5lR2VvbWV0cnkifXZhciB2QixUYyxGeSxyUj1aKCgpPT57VXQoKTtZdCgpO0l0KCk7YXQoKTt5XygpO0JhLnBhY2tlZExlbmd0aD1Xci5wYWNrZWRMZW5ndGg7QmEucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLFdyLnBhY2sodC5fZWxsaXBzb2lkR2VvbWV0cnksZSxuKX07dkI9bmV3IFdyLFRjPXtyYWRpdXM6dm9pZCAwLHJhZGlpOm5ldyBhLHN0YWNrUGFydGl0aW9uczp2b2lkIDAsc2xpY2VQYXJ0aXRpb25zOnZvaWQgMCxzdWJkaXZpc2lvbnM6dm9pZCAwfTtCYS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2xldCBvPVdyLnVucGFjayh0LGUsdkIpO3JldHVybiBUYy5zdGFja1BhcnRpdGlvbnM9by5fc3RhY2tQYXJ0aXRpb25zLFRjLnNsaWNlUGFydGl0aW9ucz1vLl9zbGljZVBhcnRpdGlvbnMsVGMuc3ViZGl2aXNpb25zPW8uX3N1YmRpdmlzaW9ucyxoKG4pPyhhLmNsb25lKG8uX3JhZGlpLFRjLnJhZGlpKSxuLl9lbGxpcHNvaWRHZW9tZXRyeT1uZXcgV3IoVGMpLG4pOihUYy5yYWRpdXM9by5fcmFkaWkueCxuZXcgQmEoVGMpKX07QmEuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7cmV0dXJuIFdyLmNyZWF0ZUdlb21ldHJ5KHQuX2VsbGlwc29pZEdlb21ldHJ5KX07Rnk9QmF9KTt2YXIgQnk9e307bWUoQnkse2RlZmF1bHQ6KCk9PkxCfSk7ZnVuY3Rpb24gREIodCxlKXtyZXR1cm4gaChlKSYmKHQ9RnkudW5wYWNrKHQsZSkpLEZ5LmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBMQixVeT1aKCgpPT57YXQoKTtyUigpO0xCPURCfSk7dmFyIFZ5PXt9O21lKFZ5LHtkZWZhdWx0OigpPT5lNH0pO2Z1bmN0aW9uIFZCKHQsZSxuLG8scixpLHMpe2xldCBmPXQubGVuZ3RoLHU9bmV3IEZsb2F0NjRBcnJheShmKjMpO2ZvcihsZXQgYz0wO2M8ZjsrK2Mpe2xldCBsPXRbY10scD1lW2NdLGQ9bltjXSxtPU0ubGVycChvLndlc3Qsby5lYXN0LGwvaXUpLF89TS5sZXJwKG8uc291dGgsby5ub3J0aCxwL2l1KSxnPU0ubGVycChyLGksZC9pdSksYj1jdC5mcm9tUmFkaWFucyhtLF8sZyxCQiksTz1zLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGIsVUIpO2EucGFjayhPLHUsYyozKX1yZXR1cm4gdX1mdW5jdGlvbiBrQih0KXtsZXQgZT10Lmxlbmd0aCxuPW5ldyBVaW50MzJBcnJheShlKzEpLG89MDtmb3IobGV0IHI9MDtyPGU7KytyKW5bcl09byxvKz10W3JdO3JldHVybiBuW2VdPW8sbn1mdW5jdGlvbiBqQih0LGUsbixvKXtsZXQgcj1vLmxlbmd0aCxpPXQubGVuZ3RoLHM9bmV3IFVpbnQ4QXJyYXkoaSksZj1HQix1PXpCLGM9MDtmb3IobGV0IHA9MDtwPHI7cCsrKXtsZXQgZD1vW3BdLG09ZDtmb3IobGV0IF89MTtfPGQ7XysrKXtsZXQgZz1jK18sYj1nLTE7dS5sb25naXR1ZGU9dFtnXSx1LmxhdGl0dWRlPWVbZ10sZi5sb25naXR1ZGU9dFtiXSxmLmxhdGl0dWRlPWVbYl0sY3QuZXF1YWxzKHUsZikmJihtLS0sc1tiXT0xKX1vW3BdPW0sYys9ZH1sZXQgbD0wO2ZvcihsZXQgcD0wO3A8aTtwKyspc1twXSE9PTEmJih0W2xdPXRbcF0sZVtsXT1lW3BdLG5bbF09bltwXSxsKyspfWZ1bmN0aW9uIGZSKHQpe2xldCBlPXQqOCxuPWUqMyxvPWUqNDt0aGlzLnN0YXJ0RWxsaXBzb2lkTm9ybWFscz1uZXcgRmxvYXQzMkFycmF5KG4pLHRoaXMuZW5kRWxsaXBzb2lkTm9ybWFscz1uZXcgRmxvYXQzMkFycmF5KG4pLHRoaXMuc3RhcnRQb3NpdGlvbkFuZEhlaWdodHM9bmV3IEZsb2F0MzJBcnJheShvKSx0aGlzLnN0YXJ0RmFjZU5vcm1hbEFuZFZlcnRleENvcm5lcklkcz1uZXcgRmxvYXQzMkFycmF5KG8pLHRoaXMuZW5kUG9zaXRpb25BbmRIZWlnaHRzPW5ldyBGbG9hdDMyQXJyYXkobyksdGhpcy5lbmRGYWNlTm9ybWFsQW5kSGFsZldpZHRocz1uZXcgRmxvYXQzMkFycmF5KG8pLHRoaXMudmVydGV4QmF0Y2hJZHM9bmV3IFVpbnQxNkFycmF5KGUpLHRoaXMuaW5kaWNlcz1EdC5jcmVhdGVUeXBlZEFycmF5KGUsMzYqdCksdGhpcy52ZWMzT2Zmc2V0PTAsdGhpcy52ZWM0T2Zmc2V0PTAsdGhpcy5iYXRjaElkT2Zmc2V0PTAsdGhpcy5pbmRleE9mZnNldD0wLHRoaXMudm9sdW1lU3RhcnRJbmRleD0wfWZ1bmN0aW9uIHNSKHQsZSxuLG8scil7bGV0IGk9YS5zdWJ0cmFjdChuLGUsSEIpLHM9YS5zdWJ0cmFjdChlLHQsaVIpO3JldHVybiBhLm5vcm1hbGl6ZShpLGkpLGEubm9ybWFsaXplKHMscyksYS5kb3QoaSxzKTxGQiYmKHM9YS5tdWx0aXBseUJ5U2NhbGFyKHMsLTEsaVIpKSxhLmFkZChpLHMsciksYS5lcXVhbHMocixhLlpFUk8pJiYocj1hLnN1YnRyYWN0KHQsZSkpLGEuY3Jvc3MocixvLHIpLGEuY3Jvc3MobyxyLHIpLGEubm9ybWFsaXplKHIscikscn1mdW5jdGlvbiB0NCh0LGUpe2xldCBuPW5ldyBVaW50MTZBcnJheSh0LnBvc2l0aW9ucyksbz1uZXcgVWludDE2QXJyYXkodC53aWR0aHMpLHI9bmV3IFVpbnQzMkFycmF5KHQuY291bnRzKSxpPW5ldyBVaW50MTZBcnJheSh0LmJhdGNoSWRzKSxzPVlCLGY9JEIsdT1aQixjPW5ldyBGbG9hdDY0QXJyYXkodC5wYWNrZWRCdWZmZXIpLGw9MCxwPWNbbCsrXSxkPWNbbCsrXTtQdC51bnBhY2soYyxsLHMpLGwrPVB0LnBhY2tlZExlbmd0aCwkLnVucGFjayhjLGwsZiksbCs9JC5wYWNrZWRMZW5ndGgsYS51bnBhY2soYyxsLHUpO2xldCBtLF89bi5sZW5ndGgvMyxnPW4uc3ViYXJyYXkoMCxfKSxiPW4uc3ViYXJyYXkoXywyKl8pLE89bi5zdWJhcnJheSgyKl8sMypfKTtubi56aWdaYWdEZWx0YURlY29kZShnLGIsTyksakIoZyxiLE8scik7bGV0IFQ9ci5sZW5ndGgsRT0wO2ZvcihtPTA7bTxUO20rKyl7bGV0IFU9clttXTtFKz1VLTF9bGV0IHc9bmV3IGZSKEUpLEM9VkIoZyxiLE8scyxwLGQsZix1KTtfPWcubGVuZ3RoO2xldCBOPW5ldyBGbG9hdDMyQXJyYXkoXyozKTtmb3IobT0wO208XzsrK20pTlttKjNdPUNbbSozXS11LngsTlttKjMrMV09Q1ttKjMrMV0tdS55LE5bbSozKzJdPUNbbSozKzJdLXUuejtsZXQgST0wLEw9MDtmb3IobT0wO208VDttKyspe2xldCBVPXJbbV0tMSxBPW9bbV0qLjUsUz1pW21dLFA9STtmb3IobGV0IEY9MDtGPFU7RisrKXtsZXQgaj1hLnVucGFjayhOLEksUUIpLEg9YS51bnBhY2soTixJKzMsSkIpLGs9T1tMXSxLPU9bTCsxXTtrPU0ubGVycChwLGQsay9pdSksSz1NLmxlcnAocCxkLEsvaXUpLEwrKztsZXQgWD1CZCxSPVVkO2lmKEY9PT0wKXtsZXQgUT1QK1UqMyxmdD1hLnVucGFjayhOLFEsQmQpO2lmKGEuZXF1YWxzKGZ0LGopKWEudW5wYWNrKE4sUS0zLFgpO2Vsc2V7bGV0IHB0PWEuc3VidHJhY3QoaixILEJkKTtYPWEuYWRkKHB0LGosQmQpfX1lbHNlIGEudW5wYWNrKE4sSS0zLFgpO2lmKEY9PT1VLTEpe2xldCBRPWEudW5wYWNrKE4sUCxVZCk7aWYoYS5lcXVhbHMoUSxIKSlhLnVucGFjayhOLFArMyxSKTtlbHNle2xldCBmdD1hLnN1YnRyYWN0KEgsaixVZCk7Uj1hLmFkZChmdCxILFVkKX19ZWxzZSBhLnVucGFjayhOLEkrNixSKTt3LmFkZFZvbHVtZShYLGosSCxSLGssSyxBLFMsdSxmKSxJKz0zfUkrPTMsTCsrfWxldCB2PXcuaW5kaWNlcztlLnB1c2gody5zdGFydEVsbGlwc29pZE5vcm1hbHMuYnVmZmVyKSxlLnB1c2gody5lbmRFbGxpcHNvaWROb3JtYWxzLmJ1ZmZlciksZS5wdXNoKHcuc3RhcnRQb3NpdGlvbkFuZEhlaWdodHMuYnVmZmVyKSxlLnB1c2gody5zdGFydEZhY2VOb3JtYWxBbmRWZXJ0ZXhDb3JuZXJJZHMuYnVmZmVyKSxlLnB1c2gody5lbmRQb3NpdGlvbkFuZEhlaWdodHMuYnVmZmVyKSxlLnB1c2gody5lbmRGYWNlTm9ybWFsQW5kSGFsZldpZHRocy5idWZmZXIpLGUucHVzaCh3LnZlcnRleEJhdGNoSWRzLmJ1ZmZlciksZS5wdXNoKHYuYnVmZmVyKTtsZXQgRD17aW5kZXhEYXRhdHlwZTp2LkJZVEVTX1BFUl9FTEVNRU5UPT09Mj9EdC5VTlNJR05FRF9TSE9SVDpEdC5VTlNJR05FRF9JTlQsc3RhcnRFbGxpcHNvaWROb3JtYWxzOncuc3RhcnRFbGxpcHNvaWROb3JtYWxzLmJ1ZmZlcixlbmRFbGxpcHNvaWROb3JtYWxzOncuZW5kRWxsaXBzb2lkTm9ybWFscy5idWZmZXIsc3RhcnRQb3NpdGlvbkFuZEhlaWdodHM6dy5zdGFydFBvc2l0aW9uQW5kSGVpZ2h0cy5idWZmZXIsc3RhcnRGYWNlTm9ybWFsQW5kVmVydGV4Q29ybmVySWRzOncuc3RhcnRGYWNlTm9ybWFsQW5kVmVydGV4Q29ybmVySWRzLmJ1ZmZlcixlbmRQb3NpdGlvbkFuZEhlaWdodHM6dy5lbmRQb3NpdGlvbkFuZEhlaWdodHMuYnVmZmVyLGVuZEZhY2VOb3JtYWxBbmRIYWxmV2lkdGhzOncuZW5kRmFjZU5vcm1hbEFuZEhhbGZXaWR0aHMuYnVmZmVyLHZlcnRleEJhdGNoSWRzOncudmVydGV4QmF0Y2hJZHMuYnVmZmVyLGluZGljZXM6di5idWZmZXJ9O2lmKHQua2VlcERlY29kZWRQb3NpdGlvbnMpe2xldCBVPWtCKHIpO2UucHVzaChDLmJ1ZmZlcixVLmJ1ZmZlciksRD15cihELHtkZWNvZGVkUG9zaXRpb25zOkMuYnVmZmVyLGRlY29kZWRQb3NpdGlvbk9mZnNldHM6VS5idWZmZXJ9KX1yZXR1cm4gRH12YXIgaXUsRkIsQkIsVUIsR0IsekIsaVIsSEIsdVIsY1IsYVIscUIsS0IsV0IsWEIsWUIsJEIsWkIsQmQsUUIsSkIsVWQsZTQsa3k9WigoKT0+e3NzKCk7VXQoKTt2ZSgpO3lwKCk7WnQoKTskZSgpO1d0KCk7QW4oKTtzbygpO2l1PTMyNzY3LEZCPU1hdGguY29zKE0udG9SYWRpYW5zKDE1MCkpLEJCPW5ldyBjdCxVQj1uZXcgYTtHQj1uZXcgY3QsekI9bmV3IGN0O2lSPW5ldyBhLEhCPW5ldyBhO3VSPVswLDIsNiwwLDYsNCwwLDEsMywwLDMsMiwwLDQsNSwwLDUsMSw1LDMsMSw1LDcsMyw3LDUsNCw3LDQsNiw3LDYsMiw3LDIsM10sY1I9dVIubGVuZ3RoLGFSPW5ldyBhLHFCPW5ldyBhLEtCPW5ldyBhLFdCPW5ldyBhLFhCPW5ldyBhO2ZSLnByb3RvdHlwZS5hZGRWb2x1bWU9ZnVuY3Rpb24odCxlLG4sbyxyLGkscyxmLHUsYyl7bGV0IGw9YS5hZGQoZSx1LGFSKSxwPWMuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGwscUIpO2w9YS5hZGQobix1LGFSKTtsZXQgZD1jLmdlb2RldGljU3VyZmFjZU5vcm1hbChsLFdCKSxtPXNSKHQsZSxuLHAsS0IpLF89c1IobyxuLGUsZCxYQiksZz10aGlzLnN0YXJ0RWxsaXBzb2lkTm9ybWFscyxiPXRoaXMuZW5kRWxsaXBzb2lkTm9ybWFscyxPPXRoaXMuc3RhcnRQb3NpdGlvbkFuZEhlaWdodHMsVD10aGlzLnN0YXJ0RmFjZU5vcm1hbEFuZFZlcnRleENvcm5lcklkcyxFPXRoaXMuZW5kUG9zaXRpb25BbmRIZWlnaHRzLHc9dGhpcy5lbmRGYWNlTm9ybWFsQW5kSGFsZldpZHRocyxDPXRoaXMudmVydGV4QmF0Y2hJZHMsTj10aGlzLmJhdGNoSWRPZmZzZXQsST10aGlzLnZlYzNPZmZzZXQsTD10aGlzLnZlYzRPZmZzZXQsdjtmb3Iodj0wO3Y8ODt2KyspYS5wYWNrKHAsZyxJKSxhLnBhY2soZCxiLEkpLGEucGFjayhlLE8sTCksT1tMKzNdPXIsYS5wYWNrKG4sRSxMKSxFW0wrM109aSxhLnBhY2sobSxULEwpLFRbTCszXT12LGEucGFjayhfLHcsTCksd1tMKzNdPXMsQ1tOKytdPWYsSSs9MyxMKz00O3RoaXMuYmF0Y2hJZE9mZnNldD1OLHRoaXMudmVjM09mZnNldD1JLHRoaXMudmVjNE9mZnNldD1MO2xldCBEPXRoaXMuaW5kaWNlcyxVPXRoaXMudm9sdW1lU3RhcnRJbmRleCxBPXRoaXMuaW5kZXhPZmZzZXQ7Zm9yKHY9MDt2PGNSO3YrKylEW0Erdl09dVJbdl0rVTt0aGlzLnZvbHVtZVN0YXJ0SW5kZXgrPTgsdGhpcy5pbmRleE9mZnNldCs9Y1J9O1lCPW5ldyBQdCwkQj1uZXcgJCxaQj1uZXcgYSxCZD1uZXcgYSxRQj1uZXcgYSxKQj1uZXcgYSxVZD1uZXcgYTtlND1RZSh0NCl9KTtmdW5jdGlvbiBuNCh0KXt0aGlzLm9mZnNldD10Lm9mZnNldCx0aGlzLmNvdW50PXQuY291bnQsdGhpcy5jb2xvcj10LmNvbG9yLHRoaXMuYmF0Y2hJZHM9dC5iYXRjaElkc312YXIgbFIscFI9WigoKT0+e2xSPW40fSk7dmFyIEd5PXt9O21lKEd5LHtkZWZhdWx0OigpPT5fNH0pO2Z1bmN0aW9uIGM0KHQsZSl7bGV0IG49ZSpvNCxvPWEudW5wYWNrKHQsbixrZCk7bis9YS5wYWNrZWRMZW5ndGg7bGV0IHI9c3QudW5wYWNrKHQsbixDci5tb2RlbE1hdHJpeCk7c3QubXVsdGlwbHlCeVNjYWxlKHIsbyxyKTtsZXQgaT1Dci5ib3VuZGluZ1ZvbHVtZTtyZXR1cm4gYS5jbG9uZShhLlpFUk8saS5jZW50ZXIpLGkucmFkaXVzPU1hdGguc3FydCgzKSxDcn1mdW5jdGlvbiBhNCh0LGUpe2xldCBuPWUqcjQsbz10W24rK10scj10W24rK10saT1hLmZyb21FbGVtZW50cyhvLG8scixrZCkscz1zdC51bnBhY2sodCxuLENyLm1vZGVsTWF0cml4KTtzdC5tdWx0aXBseUJ5U2NhbGUocyxpLHMpO2xldCBmPUNyLmJvdW5kaW5nVm9sdW1lO3JldHVybiBhLmNsb25lKGEuWkVSTyxmLmNlbnRlciksZi5yYWRpdXM9TWF0aC5zcXJ0KDIpLENyfWZ1bmN0aW9uIGY0KHQsZSl7bGV0IG49ZSppNCxvPWEudW5wYWNrKHQsbixrZCk7bis9YS5wYWNrZWRMZW5ndGg7bGV0IHI9c3QudW5wYWNrKHQsbixDci5tb2RlbE1hdHJpeCk7c3QubXVsdGlwbHlCeVNjYWxlKHIsbyxyKTtsZXQgaT1Dci5ib3VuZGluZ1ZvbHVtZTtyZXR1cm4gYS5jbG9uZShhLlpFUk8saS5jZW50ZXIpLGkucmFkaXVzPTEsQ3J9ZnVuY3Rpb24gdTQodCxlKXtsZXQgbj1lKnM0LG89dFtuKytdLHI9YS51bnBhY2sodCxuLGtkKSxpPXN0LmZyb21UcmFuc2xhdGlvbihyLENyLm1vZGVsTWF0cml4KTtzdC5tdWx0aXBseUJ5VW5pZm9ybVNjYWxlKGksbyxpKTtsZXQgcz1Dci5ib3VuZGluZ1ZvbHVtZTtyZXR1cm4gYS5jbG9uZShhLlpFUk8scy5jZW50ZXIpLHMucmFkaXVzPTEsQ3J9ZnVuY3Rpb24gVmQodCxlLG4sbyxyKXtpZighaChlKSlyZXR1cm47bGV0IGk9bi5sZW5ndGgscz1vLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLGY9by5pbmRpY2VzLHU9dC5wb3NpdGlvbnMsYz10LnZlcnRleEJhdGNoSWRzLGw9dC5pbmRpY2VzLHA9dC5iYXRjaElkcyxkPXQuYmF0Y2hUYWJsZUNvbG9ycyxtPXQuYmF0Y2hlZEluZGljZXMsXz10LmluZGV4T2Zmc2V0cyxnPXQuaW5kZXhDb3VudHMsYj10LmJvdW5kaW5nVm9sdW1lcyxPPXQubW9kZWxNYXRyaXgsVD10LmNlbnRlcixFPXQucG9zaXRpb25PZmZzZXQsdz10LmJhdGNoSWRJbmRleCxDPXQuaW5kZXhPZmZzZXQsTj10LmJhdGNoZWRJbmRpY2VzT2Zmc2V0O2ZvcihsZXQgST0wO0k8aTsrK0kpe2xldCBMPXIoZSxJKSx2PUwubW9kZWxNYXRyaXg7c3QubXVsdGlwbHkoTyx2LHYpO2xldCBEPW5bSV0sVT1zLmxlbmd0aDtmb3IobGV0IFA9MDtQPFU7UCs9Myl7bGV0IEY9YS51bnBhY2socyxQLGw0KTtzdC5tdWx0aXBseUJ5UG9pbnQodixGLEYpLGEuc3VidHJhY3QoRixULEYpLGEucGFjayhGLHUsRSozK1ApLGNbdysrXT1EfWxldCBBPWYubGVuZ3RoO2ZvcihsZXQgUD0wO1A8QTsrK1ApbFtDK1BdPWZbUF0rRTtsZXQgUz1JK047bVtTXT1uZXcgbFIoe29mZnNldDpDLGNvdW50OkEsY29sb3I6c2UuZnJvbVJnYmEoZFtEXSksYmF0Y2hJZHM6W0RdfSkscFtTXT1ELF9bU109QyxnW1NdPUEsYltTXT15dC50cmFuc2Zvcm0oTC5ib3VuZGluZ1ZvbHVtZSx2KSxFKz1VLzMsQys9QX10LnBvc2l0aW9uT2Zmc2V0PUUsdC5iYXRjaElkSW5kZXg9dyx0LmluZGV4T2Zmc2V0PUMsdC5iYXRjaGVkSW5kaWNlc09mZnNldCs9aX1mdW5jdGlvbiBwNCh0KXtsZXQgZT1uZXcgRmxvYXQ2NEFycmF5KHQpLG49MDthLnVucGFjayhlLG4sZFIpLG4rPWEucGFja2VkTGVuZ3RoLHN0LnVucGFjayhlLG4sbVIpfWZ1bmN0aW9uIGQ0KHQpe2xldCBlPXQubGVuZ3RoLG49MDtmb3IobGV0IG89MDtvPGU7KytvKW4rPXNlLnBhY2tlZExlbmd0aCszK3Rbb10uYmF0Y2hJZHMubGVuZ3RoO3JldHVybiBufWZ1bmN0aW9uIG00KHQsZSxuKXtsZXQgbz1uLmxlbmd0aCxyPTErMStvKnl0LnBhY2tlZExlbmd0aCsxK2Q0KGUpLGk9bmV3IEZsb2F0NjRBcnJheShyKSxzPTA7aVtzKytdPXQsaVtzKytdPW87Zm9yKGxldCB1PTA7dTxvOysrdSl5dC5wYWNrKG5bdV0saSxzKSxzKz15dC5wYWNrZWRMZW5ndGg7bGV0IGY9ZS5sZW5ndGg7aVtzKytdPWY7Zm9yKGxldCB1PTA7dTxmOysrdSl7bGV0IGM9ZVt1XTtzZS5wYWNrKGMuY29sb3IsaSxzKSxzKz1zZS5wYWNrZWRMZW5ndGgsaVtzKytdPWMub2Zmc2V0LGlbcysrXT1jLmNvdW50O2xldCBsPWMuYmF0Y2hJZHMscD1sLmxlbmd0aDtpW3MrK109cDtmb3IobGV0IGQ9MDtkPHA7KytkKWlbcysrXT1sW2RdfXJldHVybiBpfWZ1bmN0aW9uIGg0KHQsZSl7bGV0IG49aCh0LmJveGVzKT9uZXcgRmxvYXQzMkFycmF5KHQuYm94ZXMpOnZvaWQgMCxvPWgodC5ib3hCYXRjaElkcyk/bmV3IFVpbnQxNkFycmF5KHQuYm94QmF0Y2hJZHMpOnZvaWQgMCxyPWgodC5jeWxpbmRlcnMpP25ldyBGbG9hdDMyQXJyYXkodC5jeWxpbmRlcnMpOnZvaWQgMCxpPWgodC5jeWxpbmRlckJhdGNoSWRzKT9uZXcgVWludDE2QXJyYXkodC5jeWxpbmRlckJhdGNoSWRzKTp2b2lkIDAscz1oKHQuZWxsaXBzb2lkcyk/bmV3IEZsb2F0MzJBcnJheSh0LmVsbGlwc29pZHMpOnZvaWQgMCxmPWgodC5lbGxpcHNvaWRCYXRjaElkcyk/bmV3IFVpbnQxNkFycmF5KHQuZWxsaXBzb2lkQmF0Y2hJZHMpOnZvaWQgMCx1PWgodC5zcGhlcmVzKT9uZXcgRmxvYXQzMkFycmF5KHQuc3BoZXJlcyk6dm9pZCAwLGM9aCh0LnNwaGVyZUJhdGNoSWRzKT9uZXcgVWludDE2QXJyYXkodC5zcGhlcmVCYXRjaElkcyk6dm9pZCAwLGw9aChuKT9vLmxlbmd0aDowLHA9aChyKT9pLmxlbmd0aDowLGQ9aChzKT9mLmxlbmd0aDowLG09aCh1KT9jLmxlbmd0aDowLF89Q2YuZ2V0VW5pdEJveCgpLGc9SGYuZ2V0VW5pdEN5bGluZGVyKCksYj1jci5nZXRVbml0RWxsaXBzb2lkKCksTz1fLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLFQ9Zy5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxFPWIuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsdz1PLmxlbmd0aCpsO3crPVQubGVuZ3RoKnAsdys9RS5sZW5ndGgqKGQrbSk7bGV0IEM9Xy5pbmRpY2VzLE49Zy5pbmRpY2VzLEk9Yi5pbmRpY2VzLEw9Qy5sZW5ndGgqbDtMKz1OLmxlbmd0aCpwLEwrPUkubGVuZ3RoKihkK20pO2xldCB2PW5ldyBGbG9hdDMyQXJyYXkodyksRD1uZXcgVWludDE2QXJyYXkody8zKSxVPUR0LmNyZWF0ZVR5cGVkQXJyYXkody8zLEwpLEE9bCtwK2QrbSxTPW5ldyBVaW50MTZBcnJheShBKSxQPW5ldyBBcnJheShBKSxGPW5ldyBVaW50MzJBcnJheShBKSxqPW5ldyBVaW50MzJBcnJheShBKSxIPW5ldyBBcnJheShBKTtwNCh0LnBhY2tlZEJ1ZmZlcik7bGV0IGs9e2JhdGNoVGFibGVDb2xvcnM6bmV3IFVpbnQzMkFycmF5KHQuYmF0Y2hUYWJsZUNvbG9ycykscG9zaXRpb25zOnYsdmVydGV4QmF0Y2hJZHM6RCxpbmRpY2VzOlUsYmF0Y2hJZHM6UyxiYXRjaGVkSW5kaWNlczpQLGluZGV4T2Zmc2V0czpGLGluZGV4Q291bnRzOmosYm91bmRpbmdWb2x1bWVzOkgscG9zaXRpb25PZmZzZXQ6MCxiYXRjaElkSW5kZXg6MCxpbmRleE9mZnNldDowLGJhdGNoZWRJbmRpY2VzT2Zmc2V0OjAsbW9kZWxNYXRyaXg6bVIsY2VudGVyOmRSfTtWZChrLG4sbyxfLGM0KSxWZChrLHIsaSxnLGE0KSxWZChrLHMsZixiLGY0KSxWZChrLHUsYyxiLHU0KTtsZXQgSz1tNChVLkJZVEVTX1BFUl9FTEVNRU5ULFAsSCk7cmV0dXJuIGUucHVzaCh2LmJ1ZmZlcixELmJ1ZmZlcixVLmJ1ZmZlciksZS5wdXNoKFMuYnVmZmVyLEYuYnVmZmVyLGouYnVmZmVyKSxlLnB1c2goSy5idWZmZXIpLHtwb3NpdGlvbnM6di5idWZmZXIsdmVydGV4QmF0Y2hJZHM6RC5idWZmZXIsaW5kaWNlczpVLmJ1ZmZlcixpbmRleE9mZnNldHM6Ri5idWZmZXIsaW5kZXhDb3VudHM6ai5idWZmZXIsYmF0Y2hJZHM6Uy5idWZmZXIscGFja2VkQnVmZmVyOksuYnVmZmVyfX12YXIga2QsbzQscjQsaTQsczQsQ3IsbDQsZFIsbVIsXzQsenk9WigoKT0+e1BlKCk7dDAoKTtVdCgpO1FmKCk7b18oKTthdCgpO0FkKCk7JGUoKTtrbigpO3BSKCk7c28oKTtrZD1uZXcgYSxvND1zdC5wYWNrZWRMZW5ndGgrYS5wYWNrZWRMZW5ndGgscjQ9c3QucGFja2VkTGVuZ3RoKzIsaTQ9c3QucGFja2VkTGVuZ3RoK2EucGFja2VkTGVuZ3RoLHM0PWEucGFja2VkTGVuZ3RoKzEsQ3I9e21vZGVsTWF0cml4Om5ldyBzdCxib3VuZGluZ1ZvbHVtZTpuZXcgeXR9O2w0PW5ldyBhO2RSPW5ldyBhLG1SPW5ldyBzdDtfND1RZShoNCl9KTt2YXIgSHk9e307bWUoSHkse2RlZmF1bHQ6KCk9Pnc0fSk7ZnVuY3Rpb24gQTQodCl7dD1uZXcgRmxvYXQ2NEFycmF5KHQpO2xldCBlPTA7R2QubWluPXRbZSsrXSxHZC5tYXg9dFtlKytdLFB0LnVucGFjayh0LGUsaFIpLGUrPVB0LnBhY2tlZExlbmd0aCwkLnVucGFjayh0LGUsX1IpfWZ1bmN0aW9uIGI0KHQsZSl7bGV0IG49bmV3IFVpbnQxNkFycmF5KHQucG9zaXRpb25zKTtBNCh0LnBhY2tlZEJ1ZmZlcik7bGV0IG89aFIscj1fUixpPUdkLm1pbixzPUdkLm1heCxmPW4ubGVuZ3RoLzMsdT1uLnN1YmFycmF5KDAsZiksYz1uLnN1YmFycmF5KGYsMipmKSxsPW4uc3ViYXJyYXkoMipmLDMqZik7bm4uemlnWmFnRGVsdGFEZWNvZGUodSxjLGwpO2xldCBwPW5ldyBGbG9hdDY0QXJyYXkobi5sZW5ndGgpO2ZvcihsZXQgZD0wO2Q8ZjsrK2Qpe2xldCBtPXVbZF0sXz1jW2RdLGc9bFtkXSxiPU0ubGVycChvLndlc3Qsby5lYXN0LG0vankpLE89TS5sZXJwKG8uc291dGgsby5ub3J0aCxfL2p5KSxUPU0ubGVycChpLHMsZy9qeSksRT1jdC5mcm9tUmFkaWFucyhiLE8sVCx5NCksdz1yLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEUsZzQpO2EucGFjayh3LHAsZCozKX1yZXR1cm4gZS5wdXNoKHAuYnVmZmVyKSx7cG9zaXRpb25zOnAuYnVmZmVyfX12YXIgankseTQsZzQsaFIsX1IsR2QsdzQscXk9WigoKT0+e3NzKCk7VXQoKTt2ZSgpO1p0KCk7V3QoKTtBbigpO3NvKCk7ank9MzI3NjcseTQ9bmV3IGN0LGc0PW5ldyBhLGhSPW5ldyBQdCxfUj1uZXcgJCxHZD17bWluOnZvaWQgMCxtYXg6dm9pZCAwfTt3ND1RZShiNCl9KTt2YXIgS3k9e307bWUoS3kse2RlZmF1bHQ6KCk9Pk40fSk7ZnVuY3Rpb24gVDQodCl7bGV0IGU9bmV3IEZsb2F0NjRBcnJheSh0KSxuPTA7VWEuaW5kZXhCeXRlc1BlckVsZW1lbnQ9ZVtuKytdLFVhLm1pbj1lW24rK10sVWEubWF4PWVbbisrXSxhLnVucGFjayhlLG4sYlIpLG4rPWEucGFja2VkTGVuZ3RoLCQudW5wYWNrKGUsbix3Uiksbis9JC5wYWNrZWRMZW5ndGgsUHQudW5wYWNrKGUsbixUUil9ZnVuY3Rpb24gTzQodCl7bGV0IGU9dC5sZW5ndGgsbj0wO2ZvcihsZXQgbz0wO288ZTsrK28pbis9c2UucGFja2VkTGVuZ3RoKzMrdFtvXS5iYXRjaElkcy5sZW5ndGg7cmV0dXJuIG59ZnVuY3Rpb24gRTQodCxlLG4pe2xldCBvPWUubGVuZ3RoLHI9MSsxK28qQ28ucGFja2VkTGVuZ3RoKzErTzQobiksaT1uZXcgRmxvYXQ2NEFycmF5KHIpLHM9MDtpW3MrK109dCxpW3MrK109bztmb3IobGV0IHU9MDt1PG87Kyt1KUNvLnBhY2soZVt1XSxpLHMpLHMrPUNvLnBhY2tlZExlbmd0aDtsZXQgZj1uLmxlbmd0aDtpW3MrK109Zjtmb3IobGV0IHU9MDt1PGY7Kyt1KXtsZXQgYz1uW3VdO3NlLnBhY2soYy5jb2xvcixpLHMpLHMrPXNlLnBhY2tlZExlbmd0aCxpW3MrK109Yy5vZmZzZXQsaVtzKytdPWMuY291bnQ7bGV0IGw9Yy5iYXRjaElkcyxwPWwubGVuZ3RoO2lbcysrXT1wO2ZvcihsZXQgZD0wO2Q8cDsrK2QpaVtzKytdPWxbZF19cmV0dXJuIGl9ZnVuY3Rpb24gTTQodCxlKXtUNCh0LnBhY2tlZEJ1ZmZlcik7bGV0IG47VWEuaW5kZXhCeXRlc1BlckVsZW1lbnQ9PT0yP249bmV3IFVpbnQxNkFycmF5KHQuaW5kaWNlcyk6bj1uZXcgVWludDMyQXJyYXkodC5pbmRpY2VzKTtsZXQgcj1uZXcgVWludDE2QXJyYXkodC5wb3NpdGlvbnMpLGk9bmV3IFVpbnQzMkFycmF5KHQuY291bnRzKSxzPW5ldyBVaW50MzJBcnJheSh0LmluZGV4Q291bnRzKSxmPW5ldyBVaW50MzJBcnJheSh0LmJhdGNoSWRzKSx1PW5ldyBVaW50MzJBcnJheSh0LmJhdGNoVGFibGVDb2xvcnMpLGM9bmV3IEFycmF5KGkubGVuZ3RoKSxsPWJSLHA9d1IsZD1UUixtPVVhLm1pbixfPVVhLm1heCxnPXQubWluaW11bUhlaWdodHMsYj10Lm1heGltdW1IZWlnaHRzO2goZykmJmgoYikmJihnPW5ldyBGbG9hdDMyQXJyYXkoZyksYj1uZXcgRmxvYXQzMkFycmF5KGIpKTtsZXQgTyxULEUsdz1yLmxlbmd0aC8yLEM9ci5zdWJhcnJheSgwLHcpLE49ci5zdWJhcnJheSh3LDIqdyk7bm4uemlnWmFnRGVsdGFEZWNvZGUoQyxOKTtsZXQgST1uZXcgRmxvYXQ2NEFycmF5KHcqMyk7Zm9yKE89MDtPPHc7KytPKXtsZXQgaXQ9Q1tPXSxOdD1OW09dLE90PU0ubGVycChkLndlc3QsZC5lYXN0LGl0L3lSKSx4dD1NLmxlcnAoZC5zb3V0aCxkLm5vcnRoLE50L3lSKSxfdD1jdC5mcm9tUmFkaWFucyhPdCx4dCwwLEFSKSxkdD1wLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKF90LGdSKTthLnBhY2soZHQsSSxPKjMpfWxldCBMPWkubGVuZ3RoLHY9bmV3IEFycmF5KEwpLEQ9bmV3IEFycmF5KEwpLFU9MCxBPTA7Zm9yKE89MDtPPEw7KytPKXZbT109VSxEW09dPUEsVSs9aVtPXSxBKz1zW09dO2xldCBTPW5ldyBGbG9hdDMyQXJyYXkodyozKjIpLFA9bmV3IFVpbnQxNkFycmF5KHcqMiksRj1uZXcgVWludDMyQXJyYXkoRC5sZW5ndGgpLGo9bmV3IFVpbnQzMkFycmF5KHMubGVuZ3RoKSxIPVtdLGs9e307Zm9yKE89MDtPPEw7KytPKUU9dVtPXSxoKGtbRV0pPyhrW0VdLnBvc2l0aW9uTGVuZ3RoKz1pW09dLGtbRV0uaW5kZXhMZW5ndGgrPXNbT10sa1tFXS5iYXRjaElkcy5wdXNoKE8pKTprW0VdPXtwb3NpdGlvbkxlbmd0aDppW09dLGluZGV4TGVuZ3RoOnNbT10sb2Zmc2V0OjAsaW5kZXhPZmZzZXQ6MCxiYXRjaElkczpbT119O2xldCBLLFg9MCxSPTA7Zm9yKEUgaW4gaylpZihrLmhhc093blByb3BlcnR5KEUpKXtLPWtbRV0sSy5vZmZzZXQ9WCxLLmluZGV4T2Zmc2V0PVI7bGV0IGl0PUsucG9zaXRpb25MZW5ndGgqMixOdD1LLmluZGV4TGVuZ3RoKjIrSy5wb3NpdGlvbkxlbmd0aCo2O1grPWl0LFIrPU50LEsuaW5kZXhMZW5ndGg9TnR9bGV0IFE9W107Zm9yKEUgaW4gaylrLmhhc093blByb3BlcnR5KEUpJiYoSz1rW0VdLFEucHVzaCh7Y29sb3I6c2UuZnJvbVJnYmEocGFyc2VJbnQoRSkpLG9mZnNldDpLLmluZGV4T2Zmc2V0LGNvdW50OksuaW5kZXhMZW5ndGgsYmF0Y2hJZHM6Sy5iYXRjaElkc30pKTtmb3IoTz0wO088TDsrK08pe0U9dVtPXSxLPWtbRV07bGV0IGl0PUsub2Zmc2V0LE50PWl0KjMsT3Q9aXQseHQ9dltPXSxfdD1pW09dLGR0PWZbT10sVnQ9bSx6dD1fO2goZykmJmgoYikmJihWdD1nW09dLHp0PWJbT10pO2xldCBoZT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksY2U9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHBlPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxmZT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Zm9yKFQ9MDtUPF90OysrVCl7bGV0IEFlPWEudW5wYWNrKEkseHQqMytUKjMsZ1IpO3Auc2NhbGVUb0dlb2RldGljU3VyZmFjZShBZSxBZSk7bGV0IEVlPXAuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoQWUsQVIpLHVuPUVlLmxhdGl0dWRlLFVlPUVlLmxvbmdpdHVkZTtoZT1NYXRoLm1pbih1bixoZSksY2U9TWF0aC5tYXgodW4sY2UpLHBlPU1hdGgubWluKFVlLHBlKSxmZT1NYXRoLm1heChVZSxmZSk7bGV0IGJlPXAuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEFlLFI0KSxsbj1hLm11bHRpcGx5QnlTY2FsYXIoYmUsVnQsUzQpLHBuPWEuYWRkKEFlLGxuLEM0KTtsbj1hLm11bHRpcGx5QnlTY2FsYXIoYmUsenQsbG4pO2xldCBUbj1hLmFkZChBZSxsbix4NCk7YS5zdWJ0cmFjdChUbixsLFRuKSxhLnN1YnRyYWN0KHBuLGwscG4pLGEucGFjayhUbixTLE50KSxhLnBhY2socG4sUyxOdCszKSxQW090XT1kdCxQW090KzFdPWR0LE50Kz02LE90Kz0yfWQ9UDQsZC53ZXN0PXBlLGQuZWFzdD1mZSxkLnNvdXRoPWhlLGQubm9ydGg9Y2UsY1tPXT1Dby5mcm9tUmVjdGFuZ2xlKGQsbSxfLHApO2xldCBRdD1LLmluZGV4T2Zmc2V0LEp0PURbT10seGU9c1tPXTtmb3IoRltPXT1RdCxUPTA7VDx4ZTtUKz0zKXtsZXQgQWU9bltKdCtUXS14dCxFZT1uW0p0K1QrMV0teHQsdW49bltKdCtUKzJdLXh0O0hbUXQrK109QWUqMitpdCxIW1F0KytdPUVlKjIraXQsSFtRdCsrXT11bioyK2l0LEhbUXQrK109dW4qMisxK2l0LEhbUXQrK109RWUqMisxK2l0LEhbUXQrK109QWUqMisxK2l0fWZvcihUPTA7VDxfdDsrK1Qpe2xldCBBZT1ULEVlPShUKzEpJV90O0hbUXQrK109QWUqMisxK2l0LEhbUXQrK109RWUqMitpdCxIW1F0KytdPUFlKjIraXQsSFtRdCsrXT1BZSoyKzEraXQsSFtRdCsrXT1FZSoyKzEraXQsSFtRdCsrXT1FZSoyK2l0fUsub2Zmc2V0Kz1fdCoyLEsuaW5kZXhPZmZzZXQ9UXQsaltPXT1RdC1GW09dfUg9RHQuY3JlYXRlVHlwZWRBcnJheShTLmxlbmd0aC8zLEgpO2xldCBmdD1RLmxlbmd0aDtmb3IobGV0IGl0PTA7aXQ8ZnQ7KytpdCl7bGV0IE50PVFbaXRdLmJhdGNoSWRzLE90PTAseHQ9TnQubGVuZ3RoO2ZvcihsZXQgX3Q9MDtfdDx4dDsrK190KU90Kz1qW050W190XV07UVtpdF0uY291bnQ9T3R9bGV0IHB0PUguQllURVNfUEVSX0VMRU1FTlQ9PT0yP0R0LlVOU0lHTkVEX1NIT1JUOkR0LlVOU0lHTkVEX0lOVCxndD1FNChwdCxjLFEpO3JldHVybiBlLnB1c2goUy5idWZmZXIsSC5idWZmZXIsRi5idWZmZXIsai5idWZmZXIsUC5idWZmZXIsZ3QuYnVmZmVyKSx7cG9zaXRpb25zOlMuYnVmZmVyLGluZGljZXM6SC5idWZmZXIsaW5kZXhPZmZzZXRzOkYuYnVmZmVyLGluZGV4Q291bnRzOmouYnVmZmVyLGJhdGNoSWRzOlAuYnVmZmVyLHBhY2tlZEJ1ZmZlcjpndC5idWZmZXJ9fXZhciBiUix3UixUUixVYSx5UixnUixSNCxTNCxDNCx4NCxBUixQNCxONCxXeT1aKCgpPT57c3MoKTtVdCgpO3ZlKCk7UWYoKTthdCgpO1p0KCk7JGUoKTtXdCgpO2RhKCk7QW4oKTtzbygpO2JSPW5ldyBhLHdSPW5ldyAkLFRSPW5ldyBQdCxVYT17bWluOnZvaWQgMCxtYXg6dm9pZCAwLGluZGV4Qnl0ZXNQZXJFbGVtZW50OnZvaWQgMH07eVI9MzI3NjcsZ1I9bmV3IGEsUjQ9bmV3IGEsUzQ9bmV3IGEsQzQ9bmV3IGEseDQ9bmV3IGEsQVI9bmV3IGN0LFA0PW5ldyBQdDtOND1RZShNNCl9KTtmdW5jdGlvbiBENCh0LGUsbixvLHIpe2xldCBpPXQubGVuZ3RoLzMscz10LnN1YmFycmF5KDAsaSksZj10LnN1YmFycmF5KGksMippKSx1PXQuc3ViYXJyYXkoMippLDMqaSk7bm4uemlnWmFnRGVsdGFEZWNvZGUocyxmLHUpO2xldCBjPW5ldyBGbG9hdDY0QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgbD0wO2w8aTsrK2wpe2xldCBwPXNbbF0sZD1mW2xdLG09dVtsXSxfPU0ubGVycChlLndlc3QsZS5lYXN0LHAvWHkpLGc9TS5sZXJwKGUuc291dGgsZS5ub3J0aCxkL1h5KSxiPU0ubGVycChuLG8sbS9YeSksTz1jdC5mcm9tUmFkaWFucyhfLGcsYixJNCksVD1yLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKE8sdjQpO2EucGFjayhULGMsbCozKX1yZXR1cm4gY312YXIgWHksSTQsdjQsT1IsRVI9WigoKT0+e3NzKCk7VXQoKTt2ZSgpO1d0KCk7WHk9MzI3NjcsSTQ9bmV3IGN0LHY0PW5ldyBhO09SPUQ0fSk7dmFyIFl5PXt9O21lKFl5LHtkZWZhdWx0OigpPT5WNH0pO2Z1bmN0aW9uIEw0KHQpe3Q9bmV3IEZsb2F0NjRBcnJheSh0KTtsZXQgZT0wO3pkLm1pbj10W2UrK10semQubWF4PXRbZSsrXSxQdC51bnBhY2sodCxlLFBSKSxlKz1QdC5wYWNrZWRMZW5ndGgsJC51bnBhY2sodCxlLE1SKSxlKz0kLnBhY2tlZExlbmd0aCxhLnVucGFjayh0LGUsTlIpfWZ1bmN0aW9uIEY0KHQpe2xldCBlPXQubGVuZ3RoLG49bmV3IFVpbnQzMkFycmF5KGUrMSksbz0wO2ZvcihsZXQgcj0wO3I8ZTsrK3IpbltyXT1vLG8rPXRbcl07cmV0dXJuIG5bZV09byxufWZ1bmN0aW9uIFU0KHQsZSl7bGV0IG49bmV3IFVpbnQxNkFycmF5KHQucG9zaXRpb25zKSxvPW5ldyBVaW50MTZBcnJheSh0LndpZHRocykscj1uZXcgVWludDMyQXJyYXkodC5jb3VudHMpLGk9bmV3IFVpbnQxNkFycmF5KHQuYmF0Y2hJZHMpO0w0KHQucGFja2VkQnVmZmVyKTtsZXQgcz1QUixmPU1SLHU9TlIsYz16ZC5taW4sbD16ZC5tYXgscD1PUihuLHMsYyxsLGYpLGQ9cC5sZW5ndGgvMyxtPWQqNC00LF89bmV3IEZsb2F0MzJBcnJheShtKjMpLGc9bmV3IEZsb2F0MzJBcnJheShtKjMpLGI9bmV3IEZsb2F0MzJBcnJheShtKjMpLE89bmV3IEZsb2F0MzJBcnJheShtKjIpLFQ9bmV3IFVpbnQxNkFycmF5KG0pLEU9MCx3PTAsQz0wLE4sST0wLEw9ci5sZW5ndGg7Zm9yKE49MDtOPEw7KytOKXtsZXQgUz1yW05dLFA9b1tOXSxGPWlbTl07Zm9yKGxldCBqPTA7ajxTOysrail7bGV0IEg7aWYoaj09PTApe2xldCBRPWEudW5wYWNrKHAsSSozLFJSKSxmdD1hLnVucGFjayhwLChJKzEpKjMsU1IpO0g9YS5zdWJ0cmFjdChRLGZ0LENSKSxhLmFkZChRLEgsSCl9ZWxzZSBIPWEudW5wYWNrKHAsKEkrai0xKSozLENSKTtsZXQgaz1hLnVucGFjayhwLChJK2opKjMsQjQpLEs7aWYoaj09PVMtMSl7bGV0IFE9YS51bnBhY2socCwoSStTLTEpKjMsUlIpLGZ0PWEudW5wYWNrKHAsKEkrUy0yKSozLFNSKTtLPWEuc3VidHJhY3QoUSxmdCx4UiksYS5hZGQoUSxLLEspfWVsc2UgSz1hLnVucGFjayhwLChJK2orMSkqMyx4Uik7YS5zdWJ0cmFjdChILHUsSCksYS5zdWJ0cmFjdChrLHUsayksYS5zdWJ0cmFjdChLLHUsSyk7bGV0IFg9aj09PTA/MjowLFI9aj09PVMtMT8yOjQ7Zm9yKGxldCBRPVg7UTxSOysrUSl7YS5wYWNrKGssXyxFKSxhLnBhY2soSCxnLEUpLGEucGFjayhLLGIsRSksRSs9MztsZXQgZnQ9US0yPDA/LTE6MTtPW3crK109MiooUSUyKS0xLE9bdysrXT1mdCpQLFRbQysrXT1GfX1JKz1TfWxldCB2PUR0LmNyZWF0ZVR5cGVkQXJyYXkobSxkKjYtNiksRD0wLFU9MDtmb3IoTD1kLTEsTj0wO048TDsrK04pdltVKytdPUQsdltVKytdPUQrMix2W1UrK109RCsxLHZbVSsrXT1EKzEsdltVKytdPUQrMix2W1UrK109RCszLEQrPTQ7ZS5wdXNoKF8uYnVmZmVyLGcuYnVmZmVyLGIuYnVmZmVyKSxlLnB1c2goTy5idWZmZXIsVC5idWZmZXIsdi5idWZmZXIpO2xldCBBPXtpbmRleERhdGF0eXBlOnYuQllURVNfUEVSX0VMRU1FTlQ9PT0yP0R0LlVOU0lHTkVEX1NIT1JUOkR0LlVOU0lHTkVEX0lOVCxjdXJyZW50UG9zaXRpb25zOl8uYnVmZmVyLHByZXZpb3VzUG9zaXRpb25zOmcuYnVmZmVyLG5leHRQb3NpdGlvbnM6Yi5idWZmZXIsZXhwYW5kQW5kV2lkdGg6Ty5idWZmZXIsYmF0Y2hJZHM6VC5idWZmZXIsaW5kaWNlczp2LmJ1ZmZlcn07aWYodC5rZWVwRGVjb2RlZFBvc2l0aW9ucyl7bGV0IFM9RjQocik7ZS5wdXNoKHAuYnVmZmVyLFMuYnVmZmVyKSxBPXlyKEEse2RlY29kZWRQb3NpdGlvbnM6cC5idWZmZXIsZGVjb2RlZFBvc2l0aW9uT2Zmc2V0czpTLmJ1ZmZlcn0pfXJldHVybiBBfXZhciBQUixNUixOUix6ZCxSUixTUixDUixCNCx4UixWNCwkeT1aKCgpPT57VXQoKTt5cCgpO0VSKCk7WnQoKTskZSgpO0FuKCk7c28oKTtQUj1uZXcgUHQsTVI9bmV3ICQsTlI9bmV3IGEsemQ9e21pbjp2b2lkIDAsbWF4OnZvaWQgMH07UlI9bmV3IGEsU1I9bmV3IGEsQ1I9bmV3IGEsQjQ9bmV3IGEseFI9bmV3IGE7VjQ9UWUoVTQpfSk7ZnVuY3Rpb24gaGkodCxlKXt5LnR5cGVPZi5vYmplY3QoImVsbGlwc29pZCIsdCksdGhpcy5fZWxsaXBzb2lkPXQsdGhpcy5fY2FtZXJhUG9zaXRpb249bmV3IGEsdGhpcy5fY2FtZXJhUG9zaXRpb25JblNjYWxlZFNwYWNlPW5ldyBhLHRoaXMuX2Rpc3RhbmNlVG9MaW1iSW5TY2FsZWRTcGFjZVNxdWFyZWQ9MCxoKGUpJiYodGhpcy5jYW1lcmFQb3NpdGlvbj1lKX1mdW5jdGlvbiBEUih0LGUsbil7aWYoaChlKSYmZTwwJiZ0Lm1pbmltdW1SYWRpdXM+LWUpe2xldCBvPWEuZnJvbUVsZW1lbnRzKHQucmFkaWkueCtlLHQucmFkaWkueStlLHQucmFkaWkueitlLHo0KTt0PSQuZnJvbUNhcnRlc2lhbjMobyxuKX1yZXR1cm4gdH1mdW5jdGlvbiBMUih0LGUsbixvKXt5LnR5cGVPZi5vYmplY3QoImRpcmVjdGlvblRvUG9pbnQiLGUpLHkuZGVmaW5lZCgicG9zaXRpb25zIixuKSxoKG8pfHwobz1uZXcgYSk7bGV0IHI9VlIodCxlKSxpPTA7Zm9yKGxldCBzPTAsZj1uLmxlbmd0aDtzPGY7KytzKXtsZXQgdT1uW3NdLGM9QlIodCx1LHIpO2lmKGM8MClyZXR1cm47aT1NYXRoLm1heChpLGMpfXJldHVybiBVUihyLGksbyl9ZnVuY3Rpb24gRlIodCxlLG4sbyxyLGkpe3kudHlwZU9mLm9iamVjdCgiZGlyZWN0aW9uVG9Qb2ludCIsZSkseS5kZWZpbmVkKCJ2ZXJ0aWNlcyIsbikseS50eXBlT2YubnVtYmVyKCJzdHJpZGUiLG8pLGgoaSl8fChpPW5ldyBhKSxvPXgobywzKSxyPXgocixhLlpFUk8pO2xldCBzPVZSKHQsZSksZj0wO2ZvcihsZXQgdT0wLGM9bi5sZW5ndGg7dTxjO3UrPW8pe2pkLng9blt1XStyLngsamQueT1uW3UrMV0rci55LGpkLno9blt1KzJdK3IuejtsZXQgbD1CUih0LGpkLHMpO2lmKGw8MClyZXR1cm47Zj1NYXRoLm1heChmLGwpfXJldHVybiBVUihzLGYsaSl9ZnVuY3Rpb24gUXkodCxlLG4pe2xldCBvPWUscj1uLGk9YS5zdWJ0cmFjdCh0LG8sSVIpLHM9LWEuZG90KGksbyk7cmV0dXJuIShyPDA/cz4wOnM+ciYmcypzL2EubWFnbml0dWRlU3F1YXJlZChpKT5yKX1mdW5jdGlvbiBCUih0LGUsbil7bGV0IG89dC50cmFuc2Zvcm1Qb3NpdGlvblRvU2NhbGVkU3BhY2UoZSxqNCkscj1hLm1hZ25pdHVkZVNxdWFyZWQobyksaT1NYXRoLnNxcnQocikscz1hLmRpdmlkZUJ5U2NhbGFyKG8saSxINCk7cj1NYXRoLm1heCgxLHIpLGk9TWF0aC5tYXgoMSxpKTtsZXQgZj1hLmRvdChzLG4pLHU9YS5tYWduaXR1ZGUoYS5jcm9zcyhzLG4scykpLGM9MS9pLGw9TWF0aC5zcXJ0KHItMSkqYztyZXR1cm4gMS8oZipjLXUqbCl9ZnVuY3Rpb24gVVIodCxlLG4pe2lmKCEoZTw9MHx8ZT09PTEvMHx8ZSE9PWUpKXJldHVybiBhLm11bHRpcGx5QnlTY2FsYXIodCxlLG4pfWZ1bmN0aW9uIFZSKHQsZSl7cmV0dXJuIGEuZXF1YWxzKGUsYS5aRVJPKT9lOih0LnRyYW5zZm9ybVBvc2l0aW9uVG9TY2FsZWRTcGFjZShlLFp5KSxhLm5vcm1hbGl6ZShaeSxaeSkpfXZhciBJUixrNCx2UixHNCx6NCxqZCxqNCxINCxaeSxDcyxzdT1aKCgpPT57UGUoKTtVdCgpO1l0KCk7SXQoKTthdCgpO1p0KCk7QW4oKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhoaS5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc29pZH19LGNhbWVyYVBvc2l0aW9uOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FtZXJhUG9zaXRpb259LHNldDpmdW5jdGlvbih0KXtsZXQgbj10aGlzLl9lbGxpcHNvaWQudHJhbnNmb3JtUG9zaXRpb25Ub1NjYWxlZFNwYWNlKHQsdGhpcy5fY2FtZXJhUG9zaXRpb25JblNjYWxlZFNwYWNlKSxvPWEubWFnbml0dWRlU3F1YXJlZChuKS0xO2EuY2xvbmUodCx0aGlzLl9jYW1lcmFQb3NpdGlvbiksdGhpcy5fY2FtZXJhUG9zaXRpb25JblNjYWxlZFNwYWNlPW4sdGhpcy5fZGlzdGFuY2VUb0xpbWJJblNjYWxlZFNwYWNlU3F1YXJlZD1vfX19KTtJUj1uZXcgYTtoaS5wcm90b3R5cGUuaXNQb2ludFZpc2libGU9ZnVuY3Rpb24odCl7bGV0IG49dGhpcy5fZWxsaXBzb2lkLnRyYW5zZm9ybVBvc2l0aW9uVG9TY2FsZWRTcGFjZSh0LElSKTtyZXR1cm4gUXkobix0aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2UsdGhpcy5fZGlzdGFuY2VUb0xpbWJJblNjYWxlZFNwYWNlU3F1YXJlZCl9O2hpLnByb3RvdHlwZS5pc1NjYWxlZFNwYWNlUG9pbnRWaXNpYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBReSh0LHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5TY2FsZWRTcGFjZSx0aGlzLl9kaXN0YW5jZVRvTGltYkluU2NhbGVkU3BhY2VTcXVhcmVkKX07azQ9bmV3IGE7aGkucHJvdG90eXBlLmlzU2NhbGVkU3BhY2VQb2ludFZpc2libGVQb3NzaWJseVVuZGVyRWxsaXBzb2lkPWZ1bmN0aW9uKHQsZSl7bGV0IG49dGhpcy5fZWxsaXBzb2lkLG8scjtyZXR1cm4gaChlKSYmZTwwJiZuLm1pbmltdW1SYWRpdXM+LWU/KHI9azQsci54PXRoaXMuX2NhbWVyYVBvc2l0aW9uLngvKG4ucmFkaWkueCtlKSxyLnk9dGhpcy5fY2FtZXJhUG9zaXRpb24ueS8obi5yYWRpaS55K2UpLHIuej10aGlzLl9jYW1lcmFQb3NpdGlvbi56LyhuLnJhZGlpLnorZSksbz1yLngqci54K3IueSpyLnkrci56KnIuei0xKToocj10aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2Usbz10aGlzLl9kaXN0YW5jZVRvTGltYkluU2NhbGVkU3BhY2VTcXVhcmVkKSxReSh0LHIsbyl9O2hpLnByb3RvdHlwZS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIExSKHRoaXMuX2VsbGlwc29pZCx0LGUsbil9O3ZSPSQuY2xvbmUoJC5VTklUX1NQSEVSRSk7aGkucHJvdG90eXBlLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50UG9zc2libHlVbmRlckVsbGlwc29pZD1mdW5jdGlvbih0LGUsbixvKXtsZXQgcj1EUih0aGlzLl9lbGxpcHNvaWQsbix2Uik7cmV0dXJuIExSKHIsdCxlLG8pfTtoaS5wcm90b3R5cGUuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRGcm9tVmVydGljZXM9ZnVuY3Rpb24odCxlLG4sbyxyKXtyZXR1cm4gRlIodGhpcy5fZWxsaXBzb2lkLHQsZSxuLG8scil9O2hpLnByb3RvdHlwZS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludEZyb21WZXJ0aWNlc1Bvc3NpYmx5VW5kZXJFbGxpcHNvaWQ9ZnVuY3Rpb24odCxlLG4sbyxyLGkpe2xldCBzPURSKHRoaXMuX2VsbGlwc29pZCxyLHZSKTtyZXR1cm4gRlIocyx0LGUsbixvLGkpfTtHND1bXTtoaS5wcm90b3R5cGUuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRGcm9tUmVjdGFuZ2xlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCk7bGV0IG89UHQuc3Vic2FtcGxlKHQsZSwwLEc0KSxyPXl0LmZyb21Qb2ludHMobyk7aWYoIShhLm1hZ25pdHVkZShyLmNlbnRlcik8LjEqZS5taW5pbXVtUmFkaXVzKSlyZXR1cm4gdGhpcy5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludChyLmNlbnRlcixvLG4pfTt6ND1uZXcgYTtqZD1uZXcgYTtqND1uZXcgYSxIND1uZXcgYTtaeT1uZXcgYTtDcz1oaX0pO3ZhciBIZCxxNCxrUixHUj1aKCgpPT57VXQoKTtIZD17fTtIZC5nZXRIZWlnaHQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybih0LW4pKmUrbn07cTQ9bmV3IGE7SGQuZ2V0UG9zaXRpb249ZnVuY3Rpb24odCxlLG4sbyxyKXtsZXQgaT1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHQscTQpLHM9SGQuZ2V0SGVpZ2h0KGkuaGVpZ2h0LG4sbyk7cmV0dXJuIGEuZnJvbVJhZGlhbnMoaS5sb25naXR1ZGUsaS5sYXRpdHVkZSxzLGUscil9O2tSPUhkfSk7dmFyIEs0LHhyLHpSPVooKCk9PntLND17Tk9ORTowLEJJVFMxMjoxfSx4cj1PYmplY3QuZnJlZXplKEs0KX0pO2Z1bmN0aW9uIE5vKHQsZSxuLG8scixpLHMsZix1LGMpe2xldCBsPXhyLk5PTkUscCxkO2lmKGgoZSkmJmgobikmJmgobykmJmgocikpe2xldCBtPWUubWluaW11bSxfPWUubWF4aW11bSxnPWEuc3VidHJhY3QoXyxtLFc0KSxiPW8tbjtNYXRoLm1heChhLm1heGltdW1Db21wb25lbnQoZyksYik8WTQtMT9sPXhyLkJJVFMxMjpsPXhyLk5PTkUscD1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24ocixuZXcgc3QpO2xldCBUPWEubmVnYXRlKG0sT2MpO3N0Lm11bHRpcGx5KHN0LmZyb21UcmFuc2xhdGlvbihULHFkKSxwLHApO2xldCBFPU9jO0UueD0xL2cueCxFLnk9MS9nLnksRS56PTEvZy56LHN0Lm11bHRpcGx5KHN0LmZyb21TY2FsZShFLHFkKSxwLHApLGQ9c3QuY2xvbmUociksc3Quc2V0VHJhbnNsYXRpb24oZCxhLlpFUk8sZCkscj1zdC5jbG9uZShyLG5ldyBzdCk7bGV0IHc9c3QuZnJvbVRyYW5zbGF0aW9uKG0scWQpLEM9c3QuZnJvbVNjYWxlKGcsWDQpLE49c3QubXVsdGlwbHkodyxDLHFkKTtzdC5tdWx0aXBseShyLE4sciksc3QubXVsdGlwbHkoZCxOLGQpfXRoaXMucXVhbnRpemF0aW9uPWwsdGhpcy5taW5pbXVtSGVpZ2h0PW4sdGhpcy5tYXhpbXVtSGVpZ2h0PW8sdGhpcy5jZW50ZXI9YS5jbG9uZSh0KSx0aGlzLnRvU2NhbGVkRU5VPXAsdGhpcy5mcm9tU2NhbGVkRU5VPXIsdGhpcy5tYXRyaXg9ZCx0aGlzLmhhc1ZlcnRleE5vcm1hbHM9aSx0aGlzLmhhc1dlYk1lcmNhdG9yVD14KHMsITEpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscz14KGYsITEpLHRoaXMuZXhhZ2dlcmF0aW9uPXgodSwxKSx0aGlzLmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0PXgoYywwKSx0aGlzLnN0cmlkZT0wLHRoaXMuX29mZnNldEdlb2RldGljU3VyZmFjZU5vcm1hbD0wLHRoaXMuX29mZnNldFZlcnRleE5vcm1hbD0wLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKX12YXIgT2MsVzQsUHIscWQsWDQsWTQsJDQsalIsS2QsV2QseHMsY3U9WigoKT0+e3NzKCk7emUoKTtVdCgpO0RlKCk7SXQoKTthdCgpO1d0KCk7a24oKTtHUigpO3pSKCk7T2M9bmV3IGEsVzQ9bmV3IGEsUHI9bmV3IG50LHFkPW5ldyBzdCxYND1uZXcgc3QsWTQ9TWF0aC5wb3coMiwxMik7Tm8ucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih0LGUsbixvLHIsaSxzLGYpe2xldCB1PW8ueCxjPW8ueTtpZih0aGlzLnF1YW50aXphdGlvbj09PXhyLkJJVFMxMil7bj1zdC5tdWx0aXBseUJ5UG9pbnQodGhpcy50b1NjYWxlZEVOVSxuLE9jKSxuLng9TS5jbGFtcChuLngsMCwxKSxuLnk9TS5jbGFtcChuLnksMCwxKSxuLno9TS5jbGFtcChuLnosMCwxKTtsZXQgbD10aGlzLm1heGltdW1IZWlnaHQtdGhpcy5taW5pbXVtSGVpZ2h0LHA9TS5jbGFtcCgoci10aGlzLm1pbmltdW1IZWlnaHQpL2wsMCwxKTtudC5mcm9tRWxlbWVudHMobi54LG4ueSxQcik7bGV0IGQ9bm4uY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMoUHIpO250LmZyb21FbGVtZW50cyhuLnoscCxQcik7bGV0IG09bm4uY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMoUHIpO250LmZyb21FbGVtZW50cyh1LGMsUHIpO2xldCBfPW5uLmNvbXByZXNzVGV4dHVyZUNvb3JkaW5hdGVzKFByKTtpZih0W2UrK109ZCx0W2UrK109bSx0W2UrK109Xyx0aGlzLmhhc1dlYk1lcmNhdG9yVCl7bnQuZnJvbUVsZW1lbnRzKHMsMCxQcik7bGV0IGc9bm4uY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMoUHIpO3RbZSsrXT1nfX1lbHNlIGEuc3VidHJhY3Qobix0aGlzLmNlbnRlcixPYyksdFtlKytdPU9jLngsdFtlKytdPU9jLnksdFtlKytdPU9jLnosdFtlKytdPXIsdFtlKytdPXUsdFtlKytdPWMsdGhpcy5oYXNXZWJNZXJjYXRvclQmJih0W2UrK109cyk7cmV0dXJuIHRoaXMuaGFzVmVydGV4Tm9ybWFscyYmKHRbZSsrXT1ubi5vY3RQYWNrRmxvYXQoaSkpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmKHRbZSsrXT1mLngsdFtlKytdPWYueSx0W2UrK109Zi56KSxlfTskND1uZXcgYSxqUj1uZXcgYTtOby5wcm90b3R5cGUuYWRkR2VvZGV0aWNTdXJmYWNlTm9ybWFscz1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzKXJldHVybjtsZXQgbz10aGlzLnN0cmlkZSxyPXQubGVuZ3RoL287dGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPSEwLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKTtsZXQgaT10aGlzLnN0cmlkZTtmb3IobGV0IHM9MDtzPHI7cysrKXtmb3IobGV0IGw9MDtsPG87bCsrKXtsZXQgcD1zKm8rbCxkPXMqaStsO2VbZF09dFtwXX1sZXQgZj10aGlzLmRlY29kZVBvc2l0aW9uKGUscywkNCksdT1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChmLGpSKSxjPXMqaSt0aGlzLl9vZmZzZXRHZW9kZXRpY1N1cmZhY2VOb3JtYWw7ZVtjXT11LngsZVtjKzFdPXUueSxlW2MrMl09dS56fX07Tm8ucHJvdG90eXBlLnJlbW92ZUdlb2RldGljU3VyZmFjZU5vcm1hbHM9ZnVuY3Rpb24odCxlKXtpZighdGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzKXJldHVybjtsZXQgbj10aGlzLnN0cmlkZSxvPXQubGVuZ3RoL247dGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPSExLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKTtsZXQgcj10aGlzLnN0cmlkZTtmb3IobGV0IGk9MDtpPG87aSsrKWZvcihsZXQgcz0wO3M8cjtzKyspe2xldCBmPWkqbitzLHU9aSpyK3M7ZVt1XT10W2ZdfX07Tm8ucHJvdG90eXBlLmRlY29kZVBvc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXtpZihoKG4pfHwobj1uZXcgYSksZSo9dGhpcy5zdHJpZGUsdGhpcy5xdWFudGl6YXRpb249PT14ci5CSVRTMTIpe2xldCBvPW5uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlXSxQcik7bi54PW8ueCxuLnk9by55O2xldCByPW5uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzFdLFByKTtyZXR1cm4gbi56PXIueCxzdC5tdWx0aXBseUJ5UG9pbnQodGhpcy5mcm9tU2NhbGVkRU5VLG4sbil9cmV0dXJuIG4ueD10W2VdLG4ueT10W2UrMV0sbi56PXRbZSsyXSxhLmFkZChuLHRoaXMuY2VudGVyLG4pfTtOby5wcm90b3R5cGUuZ2V0RXhhZ2dlcmF0ZWRQb3NpdGlvbj1mdW5jdGlvbih0LGUsbil7bj10aGlzLmRlY29kZVBvc2l0aW9uKHQsZSxuKTtsZXQgbz10aGlzLmV4YWdnZXJhdGlvbixyPXRoaXMuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQ7aWYobyE9PTEmJnRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyl7bGV0IHM9dGhpcy5kZWNvZGVHZW9kZXRpY1N1cmZhY2VOb3JtYWwodCxlLGpSKSxmPXRoaXMuZGVjb2RlSGVpZ2h0KHQsZSksdT1rUi5nZXRIZWlnaHQoZixvLHIpLWY7bi54Kz1zLngqdSxuLnkrPXMueSp1LG4ueis9cy56KnV9cmV0dXJuIG59O05vLnByb3RvdHlwZS5kZWNvZGVUZXh0dXJlQ29vcmRpbmF0ZXM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBoKG4pfHwobj1uZXcgbnQpLGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09eHIuQklUUzEyP25uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzJdLG4pOm50LmZyb21FbGVtZW50cyh0W2UrNF0sdFtlKzVdLG4pfTtOby5wcm90b3R5cGUuZGVjb2RlSGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09eHIuQklUUzEyP25uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzFdLFByKS55Kih0aGlzLm1heGltdW1IZWlnaHQtdGhpcy5taW5pbXVtSGVpZ2h0KSt0aGlzLm1pbmltdW1IZWlnaHQ6dFtlKzNdfTtOby5wcm90b3R5cGUuZGVjb2RlV2ViTWVyY2F0b3JUPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09eHIuQklUUzEyP25uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzNdLFByKS54OnRbZSs2XX07Tm8ucHJvdG90eXBlLmdldE9jdEVuY29kZWROb3JtYWw9ZnVuY3Rpb24odCxlLG4pe2U9ZSp0aGlzLnN0cmlkZSt0aGlzLl9vZmZzZXRWZXJ0ZXhOb3JtYWw7bGV0IG89dFtlXS8yNTYscj1NYXRoLmZsb29yKG8pLGk9KG8tcikqMjU2O3JldHVybiBudC5mcm9tRWxlbWVudHMocixpLG4pfTtOby5wcm90b3R5cGUuZGVjb2RlR2VvZGV0aWNTdXJmYWNlTm9ybWFsPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1lKnRoaXMuc3RyaWRlK3RoaXMuX29mZnNldEdlb2RldGljU3VyZmFjZU5vcm1hbCxuLng9dFtlXSxuLnk9dFtlKzFdLG4uej10W2UrMl0sbn07Tm8ucHJvdG90eXBlLl9jYWxjdWxhdGVTdHJpZGVBbmRPZmZzZXRzPWZ1bmN0aW9uKCl7bGV0IHQ9MDtzd2l0Y2godGhpcy5xdWFudGl6YXRpb24pe2Nhc2UgeHIuQklUUzEyOnQrPTM7YnJlYWs7ZGVmYXVsdDp0Kz02fXRoaXMuaGFzV2ViTWVyY2F0b3JUJiYodCs9MSksdGhpcy5oYXNWZXJ0ZXhOb3JtYWxzJiYodGhpcy5fb2Zmc2V0VmVydGV4Tm9ybWFsPXQsdCs9MSksdGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzJiYodGhpcy5fb2Zmc2V0R2VvZGV0aWNTdXJmYWNlTm9ybWFsPXQsdCs9MyksdGhpcy5zdHJpZGU9dH07S2Q9e3Bvc2l0aW9uM0RBbmRIZWlnaHQ6MCx0ZXh0dXJlQ29vcmRBbmRFbmNvZGVkTm9ybWFsczoxLGdlb2RldGljU3VyZmFjZU5vcm1hbDoyfSxXZD17Y29tcHJlc3NlZDA6MCxjb21wcmVzc2VkMToxLGdlb2RldGljU3VyZmFjZU5vcm1hbDoyfTtOby5wcm90b3R5cGUuZ2V0QXR0cmlidXRlcz1mdW5jdGlvbih0KXtsZXQgZT1vdC5GTE9BVCxuPW90LmdldFNpemVJbkJ5dGVzKGUpLG89dGhpcy5zdHJpZGUqbixyPTAsaT1bXTtmdW5jdGlvbiBzKGYsdSl7aS5wdXNoKHtpbmRleDpmLHZlcnRleEJ1ZmZlcjp0LGNvbXBvbmVudERhdGF0eXBlOmUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTp1LG9mZnNldEluQnl0ZXM6cixzdHJpZGVJbkJ5dGVzOm99KSxyKz11Km59aWYodGhpcy5xdWFudGl6YXRpb249PT14ci5OT05FKXtzKEtkLnBvc2l0aW9uM0RBbmRIZWlnaHQsNCk7bGV0IGY9MjtmKz10aGlzLmhhc1dlYk1lcmNhdG9yVD8xOjAsZis9dGhpcy5oYXNWZXJ0ZXhOb3JtYWxzPzE6MCxzKEtkLnRleHR1cmVDb29yZEFuZEVuY29kZWROb3JtYWxzLGYpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmcyhLZC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwsMyl9ZWxzZXtsZXQgZj10aGlzLmhhc1dlYk1lcmNhdG9yVHx8dGhpcy5oYXNWZXJ0ZXhOb3JtYWxzLHU9dGhpcy5oYXNXZWJNZXJjYXRvclQmJnRoaXMuaGFzVmVydGV4Tm9ybWFscztzKFdkLmNvbXByZXNzZWQwLGY/NDozKSx1JiZzKFdkLmNvbXByZXNzZWQxLDEpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmcyhXZC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwsMyl9cmV0dXJuIGl9O05vLnByb3RvdHlwZS5nZXRBdHRyaWJ1dGVMb2NhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWFudGl6YXRpb249PT14ci5OT05FP0tkOldkfTtOby5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSl8fChlPW5ldyBObyksZS5xdWFudGl6YXRpb249dC5xdWFudGl6YXRpb24sZS5taW5pbXVtSGVpZ2h0PXQubWluaW11bUhlaWdodCxlLm1heGltdW1IZWlnaHQ9dC5tYXhpbXVtSGVpZ2h0LGUuY2VudGVyPWEuY2xvbmUodC5jZW50ZXIpLGUudG9TY2FsZWRFTlU9c3QuY2xvbmUodC50b1NjYWxlZEVOVSksZS5mcm9tU2NhbGVkRU5VPXN0LmNsb25lKHQuZnJvbVNjYWxlZEVOVSksZS5tYXRyaXg9c3QuY2xvbmUodC5tYXRyaXgpLGUuaGFzVmVydGV4Tm9ybWFscz10Lmhhc1ZlcnRleE5vcm1hbHMsZS5oYXNXZWJNZXJjYXRvclQ9dC5oYXNXZWJNZXJjYXRvclQsZS5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPXQuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyxlLmV4YWdnZXJhdGlvbj10LmV4YWdnZXJhdGlvbixlLmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0PXQuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQsZS5fY2FsY3VsYXRlU3RyaWRlQW5kT2Zmc2V0cygpLGV9O3hzPU5vfSk7dmFyIHRnPXt9O21lKHRnLHtkZWZhdWx0OigpPT5yVX0pO2Z1bmN0aW9uIGF1KHQsZSxuKXtuPXgobixNKTtsZXQgbz10Lmxlbmd0aDtmb3IobGV0IHI9MDtyPG87KytyKWlmKG4uZXF1YWxzRXBzaWxvbih0W3JdLGUsTS5FUFNJTE9OMTIpKXJldHVybiByO3JldHVybi0xfWZ1bmN0aW9uIEo0KHQsZSl7dC5lbGxpcHNvaWQ9JC5jbG9uZSh0LmVsbGlwc29pZCksdC5yZWN0YW5nbGU9UHQuY2xvbmUodC5yZWN0YW5nbGUpO2xldCBuPW9VKHQuYnVmZmVyLHQucmVsYXRpdmVUb0NlbnRlcix0LmVsbGlwc29pZCx0LnJlY3RhbmdsZSx0Lm5hdGl2ZVJlY3RhbmdsZSx0LmV4YWdnZXJhdGlvbix0LmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0LHQuc2tpcnRIZWlnaHQsdC5pbmNsdWRlV2ViTWVyY2F0b3JULHQubmVnYXRpdmVBbHRpdHVkZUV4cG9uZW50Qmlhcyx0Lm5lZ2F0aXZlRWxldmF0aW9uVGhyZXNob2xkKSxvPW4udmVydGljZXM7ZS5wdXNoKG8uYnVmZmVyKTtsZXQgcj1uLmluZGljZXM7cmV0dXJuIGUucHVzaChyLmJ1ZmZlcikse3ZlcnRpY2VzOm8uYnVmZmVyLGluZGljZXM6ci5idWZmZXIsbnVtYmVyT2ZBdHRyaWJ1dGVzOm4uZW5jb2Rpbmcuc3RyaWRlLG1pbmltdW1IZWlnaHQ6bi5taW5pbXVtSGVpZ2h0LG1heGltdW1IZWlnaHQ6bi5tYXhpbXVtSGVpZ2h0LGJvdW5kaW5nU3BoZXJlM0Q6bi5ib3VuZGluZ1NwaGVyZTNELG9yaWVudGVkQm91bmRpbmdCb3g6bi5vcmllbnRlZEJvdW5kaW5nQm94LG9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlOm4ub2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2UsZW5jb2Rpbmc6bi5lbmNvZGluZyx2ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHM6bi52ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHMsaW5kZXhDb3VudFdpdGhvdXRTa2lydHM6bi5pbmRleENvdW50V2l0aG91dFNraXJ0cyx3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpuLndlc3RJbmRpY2VzU291dGhUb05vcnRoLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6bi5zb3V0aEluZGljZXNFYXN0VG9XZXN0LGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOm4uZWFzdEluZGljZXNOb3J0aFRvU291dGgsbm9ydGhJbmRpY2VzV2VzdFRvRWFzdDpuLm5vcnRoSW5kaWNlc1dlc3RUb0Vhc3R9fWZ1bmN0aW9uIG9VKHQsZSxuLG8scixpLHMsZix1LGMsbCl7bGV0IHAsZCxtLF8sZyxiO2gobyk/KHA9by53ZXN0LGQ9by5zb3V0aCxtPW8uZWFzdCxfPW8ubm9ydGgsZz1vLndpZHRoLGI9by5oZWlnaHQpOihwPU0udG9SYWRpYW5zKHIud2VzdCksZD1NLnRvUmFkaWFucyhyLnNvdXRoKSxtPU0udG9SYWRpYW5zKHIuZWFzdCksXz1NLnRvUmFkaWFucyhyLm5vcnRoKSxnPU0udG9SYWRpYW5zKG8ud2lkdGgpLGI9TS50b1JhZGlhbnMoby5oZWlnaHQpKTtsZXQgTz1bZCxfXSxUPVtwLG1dLEU9Z3IuZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUoZSxuKSx3PXN0LmludmVyc2VUcmFuc2Zvcm1hdGlvbihFLG5VKSxDLE47dSYmKEM9ZW8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShkKSxOPTEvKGVvLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoXyktQykpO2xldCBMPWkhPT0xLHY9bmV3IERhdGFWaWV3KHQpLEQ9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFU9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLEE9dFU7QS54PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxBLnk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLEEuej1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IFM9ZVU7Uy54PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxTLnk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLFMuej1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bGV0IFA9MCxGPTAsaj0wLEgsaztmb3Ioaz0wO2s8NDsrK2spe2xldCBvZT1QO0g9di5nZXRVaW50MzIob2UsITApLG9lKz1KeTtsZXQgJHQ9TS50b1JhZGlhbnModi5nZXRGbG9hdDY0KG9lLCEwKSoxODApO29lKz1FYyxhdShULCR0KT09PS0xJiZULnB1c2goJHQpO2xldCBWZT1NLnRvUmFkaWFucyh2LmdldEZsb2F0NjQob2UsITApKjE4MCk7b2UrPUVjLGF1KE8sVmUpPT09LTEmJk8ucHVzaChWZSksb2UrPTIqRWM7bGV0IGRuPXYuZ2V0SW50MzIob2UsITApO29lKz1YZCxGKz1kbixkbj12LmdldEludDMyKG9lLCEwKSxqKz1kbiozLFArPUgrSnl9bGV0IEs9W10sWD1bXSxSPW5ldyBBcnJheShGKSxRPW5ldyBBcnJheShGKSxmdD1uZXcgQXJyYXkoRikscHQ9dT9uZXcgQXJyYXkoRik6W10sZ3Q9TD9uZXcgQXJyYXkoRik6W10saXQ9bmV3IEFycmF5KGopLE50PVtdLE90PVtdLHh0PVtdLF90PVtdLGR0PTAsVnQ9MDtmb3IoUD0wLGs9MDtrPDQ7KytrKXtIPXYuZ2V0VWludDMyKFAsITApLFArPUp5O2xldCBvZT1QLCR0PU0udG9SYWRpYW5zKHYuZ2V0RmxvYXQ2NChQLCEwKSoxODApO1ArPUVjO2xldCBWZT1NLnRvUmFkaWFucyh2LmdldEZsb2F0NjQoUCwhMCkqMTgwKTtQKz1FYztsZXQgZG49TS50b1JhZGlhbnModi5nZXRGbG9hdDY0KFAsITApKjE4MCksc249ZG4qLjU7UCs9RWM7bGV0IG1uPU0udG9SYWRpYW5zKHYuZ2V0RmxvYXQ2NChQLCEwKSoxODApLGZvPW1uKi41O1ArPUVjO2xldCBIbj12LmdldEludDMyKFAsITApO1ArPVhkO2xldCBaZT12LmdldEludDMyKFAsITApO1ArPVhkLFArPVhkO2xldCBjbj1uZXcgQXJyYXkoSG4pO2ZvcihsZXQgaG49MDtobjxIbjsrK2huKXtsZXQgdW89JHQrdi5nZXRVaW50OChQKyspKmRuO0lvLmxvbmdpdHVkZT11bztsZXQgcW49VmUrdi5nZXRVaW50OChQKyspKm1uO0lvLmxhdGl0dWRlPXFuO2xldCBLbj12LmdldEZsb2F0MzIoUCwhMCk7aWYoUCs9UTQsS24hPT0wJiZLbjxsJiYoS24qPS1NYXRoLnBvdygyLGMpKSxLbio9NjM3MTAxMCxJby5oZWlnaHQ9S24sYXUoVCx1bykhPT0tMXx8YXUoTyxxbikhPT0tMSl7bGV0IERuPWF1KEssSW8sY3QpO2lmKERuPT09LTEpSy5wdXNoKGN0LmNsb25lKElvKSksWC5wdXNoKGR0KTtlbHNle2NuW2huXT1YW0RuXTtjb250aW51ZX19Y25baG5dPWR0LE1hdGguYWJzKHVvLXApPHNuP050LnB1c2goe2luZGV4OmR0LGNhcnRvZ3JhcGhpYzpjdC5jbG9uZShJbyl9KTpNYXRoLmFicyh1by1tKTxzbj94dC5wdXNoKHtpbmRleDpkdCxjYXJ0b2dyYXBoaWM6Y3QuY2xvbmUoSW8pfSk6TWF0aC5hYnMocW4tZCk8Zm8/T3QucHVzaCh7aW5kZXg6ZHQsY2FydG9ncmFwaGljOmN0LmNsb25lKElvKX0pOk1hdGguYWJzKHFuLV8pPGZvJiZfdC5wdXNoKHtpbmRleDpkdCxjYXJ0b2dyYXBoaWM6Y3QuY2xvbmUoSW8pfSksRD1NYXRoLm1pbihLbixEKSxVPU1hdGgubWF4KEtuLFUpLGZ0W2R0XT1LbjtsZXQgbG89bi5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihJbyk7aWYoUltkdF09bG8sdSYmKHB0W2R0XT0oZW8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShxbiktQykqTiksTCl7bGV0IERuPW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGxvKTtndFtkdF09RG59c3QubXVsdGlwbHlCeVBvaW50KHcsbG8sVmEpLGEubWluaW11bUJ5Q29tcG9uZW50KFZhLEEsQSksYS5tYXhpbXVtQnlDb21wb25lbnQoVmEsUyxTKTtsZXQga2U9KHVvLXApLyhtLXApO2tlPU0uY2xhbXAoa2UsMCwxKTtsZXQgTmU9KHFuLWQpLyhfLWQpO05lPU0uY2xhbXAoTmUsMCwxKSxRW2R0XT1uZXcgbnQoa2UsTmUpLCsrZHR9bGV0IEtlPVplKjM7Zm9yKGxldCBobj0wO2huPEtlOysraG4sKytWdClpdFtWdF09Y25bdi5nZXRVaW50MTYoUCwhMCldLFArPVo0O2lmKEghPT1QLW9lKXRocm93IG5ldyBnZSgiSW52YWxpZCB0ZXJyYWluIHRpbGUuIil9Ui5sZW5ndGg9ZHQsUS5sZW5ndGg9ZHQsZnQubGVuZ3RoPWR0LHUmJihwdC5sZW5ndGg9ZHQpLEwmJihndC5sZW5ndGg9ZHQpO2xldCB6dD1kdCxoZT1WdCxjZT17aE1pbjpELGxhc3RCb3JkZXJQb2ludDp2b2lkIDAsc2tpcnRIZWlnaHQ6Zix0b0VOVTp3LGVsbGlwc29pZDpuLG1pbmltdW06QSxtYXhpbXVtOlN9O050LnNvcnQoZnVuY3Rpb24ob2UsJHQpe3JldHVybiAkdC5jYXJ0b2dyYXBoaWMubGF0aXR1ZGUtb2UuY2FydG9ncmFwaGljLmxhdGl0dWRlfSksT3Quc29ydChmdW5jdGlvbihvZSwkdCl7cmV0dXJuIG9lLmNhcnRvZ3JhcGhpYy5sb25naXR1ZGUtJHQuY2FydG9ncmFwaGljLmxvbmdpdHVkZX0pLHh0LnNvcnQoZnVuY3Rpb24ob2UsJHQpe3JldHVybiBvZS5jYXJ0b2dyYXBoaWMubGF0aXR1ZGUtJHQuY2FydG9ncmFwaGljLmxhdGl0dWRlfSksX3Quc29ydChmdW5jdGlvbihvZSwkdCl7cmV0dXJuICR0LmNhcnRvZ3JhcGhpYy5sb25naXR1ZGUtb2UuY2FydG9ncmFwaGljLmxvbmdpdHVkZX0pO2xldCBwZT0xZS01O2lmKFlkKFIsZnQsUSxwdCxndCxpdCxjZSxOdCwtcGUqZywhMCwtcGUqYiksWWQoUixmdCxRLHB0LGd0LGl0LGNlLE90LC1wZSpiLCExKSxZZChSLGZ0LFEscHQsZ3QsaXQsY2UseHQscGUqZywhMCxwZSpiKSxZZChSLGZ0LFEscHQsZ3QsaXQsY2UsX3QscGUqYiwhMSksTnQubGVuZ3RoPjAmJl90Lmxlbmd0aD4wKXtsZXQgb2U9TnRbMF0uaW5kZXgsJHQ9enQsVmU9X3RbX3QubGVuZ3RoLTFdLmluZGV4LGRuPVIubGVuZ3RoLTE7aXQucHVzaChWZSxkbiwkdCwkdCxvZSxWZSl9Rj1SLmxlbmd0aDtsZXQgZmU9eXQuZnJvbVBvaW50cyhSKSxRdDtoKG8pJiYoUXQ9Q28uZnJvbVJlY3RhbmdsZShvLEQsVSxuKSk7bGV0IHhlPW5ldyBDcyhuKS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludFBvc3NpYmx5VW5kZXJFbGxpcHNvaWQoZSxSLEQpLEFlPW5ldyBEaShBLFMsZSksRWU9bmV3IHhzKGUsQWUsY2UuaE1pbixVLEUsITEsdSxMLGkscyksdW49bmV3IEZsb2F0MzJBcnJheShGKkVlLnN0cmlkZSksVWU9MDtmb3IobGV0IG9lPTA7b2U8RjsrK29lKVVlPUVlLmVuY29kZSh1bixVZSxSW29lXSxRW29lXSxmdFtvZV0sdm9pZCAwLHB0W29lXSxndFtvZV0pO2xldCBiZT1OdC5tYXAoZnVuY3Rpb24ob2Upe3JldHVybiBvZS5pbmRleH0pLnJldmVyc2UoKSxsbj1PdC5tYXAoZnVuY3Rpb24ob2Upe3JldHVybiBvZS5pbmRleH0pLnJldmVyc2UoKSxwbj14dC5tYXAoZnVuY3Rpb24ob2Upe3JldHVybiBvZS5pbmRleH0pLnJldmVyc2UoKSxUbj1fdC5tYXAoZnVuY3Rpb24ob2Upe3JldHVybiBvZS5pbmRleH0pLnJldmVyc2UoKTtyZXR1cm4gbG4udW5zaGlmdChwbltwbi5sZW5ndGgtMV0pLGxuLnB1c2goYmVbMF0pLFRuLnVuc2hpZnQoYmVbYmUubGVuZ3RoLTFdKSxUbi5wdXNoKHBuWzBdKSx7dmVydGljZXM6dW4saW5kaWNlczpuZXcgVWludDE2QXJyYXkoaXQpLG1heGltdW1IZWlnaHQ6VSxtaW5pbXVtSGVpZ2h0OkQsZW5jb2Rpbmc6RWUsYm91bmRpbmdTcGhlcmUzRDpmZSxvcmllbnRlZEJvdW5kaW5nQm94OlF0LG9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlOnhlLHZlcnRleENvdW50V2l0aG91dFNraXJ0czp6dCxpbmRleENvdW50V2l0aG91dFNraXJ0czpoZSx3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpiZSxzb3V0aEluZGljZXNFYXN0VG9XZXN0OmxuLGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOnBuLG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6VG59fWZ1bmN0aW9uIFlkKHQsZSxuLG8scixpLHMsZix1LGMsbCl7bGV0IHA9Zi5sZW5ndGg7Zm9yKGxldCBkPTA7ZDxwOysrZCl7bGV0IG09ZltkXSxfPW0uY2FydG9ncmFwaGljLGc9bS5pbmRleCxiPXQubGVuZ3RoLE89Xy5sb25naXR1ZGUsVD1fLmxhdGl0dWRlO1Q9TS5jbGFtcChULC1NLlBJX09WRVJfVFdPLE0uUElfT1ZFUl9UV08pO2xldCBFPV8uaGVpZ2h0LXMuc2tpcnRIZWlnaHQ7cy5oTWluPU1hdGgubWluKHMuaE1pbixFKSxjdC5mcm9tUmFkaWFucyhPLFQsRSxJbyksYyYmKElvLmxvbmdpdHVkZSs9dSksYz9kPT09cC0xP0lvLmxhdGl0dWRlKz1sOmQ9PT0wJiYoSW8ubGF0aXR1ZGUtPWwpOklvLmxhdGl0dWRlKz11O2xldCB3PXMuZWxsaXBzb2lkLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKElvKTt0LnB1c2godyksZS5wdXNoKEUpLG4ucHVzaChudC5jbG9uZShuW2ddKSksby5sZW5ndGg+MCYmby5wdXNoKG9bZ10pLHIubGVuZ3RoPjAmJnIucHVzaChyW2ddKSxzdC5tdWx0aXBseUJ5UG9pbnQocy50b0VOVSx3LFZhKTtsZXQgQz1zLm1pbmltdW0sTj1zLm1heGltdW07YS5taW5pbXVtQnlDb21wb25lbnQoVmEsQyxDKSxhLm1heGltdW1CeUNvbXBvbmVudChWYSxOLE4pO2xldCBJPXMubGFzdEJvcmRlclBvaW50O2lmKGgoSSkpe2xldCBMPUkuaW5kZXg7aS5wdXNoKEwsYi0xLGIsYixnLEwpfXMubGFzdEJvcmRlclBvaW50PW19fXZhciBaNCxYZCxKeSxRNCxFYyxJbyxWYSx0VSxlVSxuVSxyVSxlZz1aKCgpPT57UGYoKTtQZSgpO3plKCk7VXQoKTt2ZSgpO0l0KCk7YXQoKTtadCgpO3N1KCk7V3QoKTtrbigpO2RhKCk7QW4oKTtKcigpO2N1KCk7JHMoKTtpYygpO3NvKCk7WjQ9VWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQsWGQ9SW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxKeT1VaW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxRND1GbG9hdDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQsRWM9RmxvYXQ2NEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO0lvPW5ldyBjdCxWYT1uZXcgYSx0VT1uZXcgYSxlVT1uZXcgYSxuVT1uZXcgc3Q7clU9UWUoSjQpfSk7dmFyIGlVLEhSLHFSPVooKCk9PntpVT17Tk9ORTowLExFUkM6MX0sSFI9T2JqZWN0LmZyZWV6ZShpVSl9KTt2YXIgX2ksbmcsc1UsY1UsYVUsS1IsV1I9WigoKT0+e1BmKCk7UGUoKTt6ZSgpO1V0KCk7SXQoKTthdCgpO0h0KCk7WnQoKTtzdSgpO1d0KCk7a24oKTtkYSgpO0FuKCk7Y3UoKTskcygpO2ljKCk7X2k9e307X2kuREVGQVVMVF9TVFJVQ1RVUkU9T2JqZWN0LmZyZWV6ZSh7aGVpZ2h0U2NhbGU6MSxoZWlnaHRPZmZzZXQ6MCxlbGVtZW50c1BlckhlaWdodDoxLHN0cmlkZToxLGVsZW1lbnRNdWx0aXBsaWVyOjI1Nixpc0JpZ0VuZGlhbjohMX0pO25nPW5ldyBhLHNVPW5ldyBzdCxjVT1uZXcgYSxhVT1uZXcgYTtfaS5jb21wdXRlVmVydGljZXM9ZnVuY3Rpb24odCl7aWYoIWgodCl8fCFoKHQuaGVpZ2h0bWFwKSl0aHJvdyBuZXcgQigib3B0aW9ucy5oZWlnaHRtYXAgaXMgcmVxdWlyZWQuIik7aWYoIWgodC53aWR0aCl8fCFoKHQuaGVpZ2h0KSl0aHJvdyBuZXcgQigib3B0aW9ucy53aWR0aCBhbmQgb3B0aW9ucy5oZWlnaHQgYXJlIHJlcXVpcmVkLiIpO2lmKCFoKHQubmF0aXZlUmVjdGFuZ2xlKSl0aHJvdyBuZXcgQigib3B0aW9ucy5uYXRpdmVSZWN0YW5nbGUgaXMgcmVxdWlyZWQuIik7aWYoIWgodC5za2lydEhlaWdodCkpdGhyb3cgbmV3IEIoIm9wdGlvbnMuc2tpcnRIZWlnaHQgaXMgcmVxdWlyZWQuIik7bGV0IGU9TWF0aC5jb3Msbj1NYXRoLnNpbixvPU1hdGguc3FydCxyPU1hdGguYXRhbixpPU1hdGguZXhwLHM9TS5QSV9PVkVSX1RXTyxmPU0udG9SYWRpYW5zLHU9dC5oZWlnaHRtYXAsYz10LndpZHRoLGw9dC5oZWlnaHQscD10LnNraXJ0SGVpZ2h0LGQ9cD4wLG09eCh0LmlzR2VvZ3JhcGhpYywhMCksXz14KHQuZWxsaXBzb2lkLCQuV0dTODQpLGc9MS9fLm1heGltdW1SYWRpdXMsYj1QdC5jbG9uZSh0Lm5hdGl2ZVJlY3RhbmdsZSksTz1QdC5jbG9uZSh0LnJlY3RhbmdsZSksVCxFLHcsQztoKE8pPyhUPU8ud2VzdCxFPU8uc291dGgsdz1PLmVhc3QsQz1PLm5vcnRoKTptPyhUPWYoYi53ZXN0KSxFPWYoYi5zb3V0aCksdz1mKGIuZWFzdCksQz1mKGIubm9ydGgpKTooVD1iLndlc3QqZyxFPXMtMipyKGkoLWIuc291dGgqZykpLHc9Yi5lYXN0KmcsQz1zLTIqcihpKC1iLm5vcnRoKmcpKSk7bGV0IE49dC5yZWxhdGl2ZVRvQ2VudGVyLEk9aChOKTtOPUk/TjphLlpFUk87bGV0IEw9eCh0LmluY2x1ZGVXZWJNZXJjYXRvclQsITEpLHY9eCh0LmV4YWdnZXJhdGlvbiwxKSxEPXgodC5leGFnZ2VyYXRpb25SZWxhdGl2ZUhlaWdodCwwKSxBPXYhPT0xLFM9eCh0LnN0cnVjdHVyZSxfaS5ERUZBVUxUX1NUUlVDVFVSRSksUD14KFMuaGVpZ2h0U2NhbGUsX2kuREVGQVVMVF9TVFJVQ1RVUkUuaGVpZ2h0U2NhbGUpLEY9eChTLmhlaWdodE9mZnNldCxfaS5ERUZBVUxUX1NUUlVDVFVSRS5oZWlnaHRPZmZzZXQpLGo9eChTLmVsZW1lbnRzUGVySGVpZ2h0LF9pLkRFRkFVTFRfU1RSVUNUVVJFLmVsZW1lbnRzUGVySGVpZ2h0KSxIPXgoUy5zdHJpZGUsX2kuREVGQVVMVF9TVFJVQ1RVUkUuc3RyaWRlKSxrPXgoUy5lbGVtZW50TXVsdGlwbGllcixfaS5ERUZBVUxUX1NUUlVDVFVSRS5lbGVtZW50TXVsdGlwbGllciksSz14KFMuaXNCaWdFbmRpYW4sX2kuREVGQVVMVF9TVFJVQ1RVUkUuaXNCaWdFbmRpYW4pLFg9UHQuY29tcHV0ZVdpZHRoKGIpLFI9UHQuY29tcHV0ZUhlaWdodChiKSxRPVgvKGMtMSksZnQ9Ui8obC0xKTttfHwoWCo9ZyxSKj1nKTtsZXQgcHQ9Xy5yYWRpaVNxdWFyZWQsZ3Q9cHQueCxpdD1wdC55LE50PXB0LnosT3Q9NjU1MzYseHQ9LTY1NTM2LF90PWdyLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKE4sXyksZHQ9c3QuaW52ZXJzZVRyYW5zZm9ybWF0aW9uKF90LHNVKSxWdCx6dDtMJiYoVnQ9ZW8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShFKSx6dD0xLyhlby5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKEMpLVZ0KSk7bGV0IGhlPWNVO2hlLng9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGhlLnk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGhlLno9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2xldCBjZT1hVTtjZS54PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxjZS55PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxjZS56PU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtsZXQgcGU9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGZlPWMqbCxRdD1wPjA/YyoyK2wqMjowLEp0PWZlK1F0LHhlPW5ldyBBcnJheShKdCksQWU9bmV3IEFycmF5KEp0KSxFZT1uZXcgQXJyYXkoSnQpLHVuPUw/bmV3IEFycmF5KEp0KTpbXSxVZT1BP25ldyBBcnJheShKdCk6W10sYmU9MCxsbj1sLHBuPTAsVG49YztkJiYoLS1iZSwrK2xuLC0tcG4sKytUbik7bGV0IG9lPTFlLTU7Zm9yKGxldCBaZT1iZTtaZTxsbjsrK1plKXtsZXQgY249WmU7Y248MCYmKGNuPTApLGNuPj1sJiYoY249bC0xKTtsZXQgS2U9Yi5ub3J0aC1mdCpjbjttP0tlPWYoS2UpOktlPXMtMipyKGkoLUtlKmcpKTtsZXQgaG49KEtlLUUpLyhDLUUpO2huPU0uY2xhbXAoaG4sMCwxKTtsZXQgdW89WmU9PT1iZSxxbj1aZT09PWxuLTE7cD4wJiYodW8/S2UrPW9lKlI6cW4mJihLZS09b2UqUikpO2xldCBLbj1lKEtlKSxsbz1uKEtlKSxrZT1OdCpsbyxOZTtMJiYoTmU9KGVvLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoS2UpLVZ0KSp6dCk7Zm9yKGxldCBEbj1wbjtEbjxUbjsrK0RuKXtsZXQgV249RG47V248MCYmKFduPTApLFduPj1jJiYoV249Yy0xKTtsZXQgcW89Y24qKGMqSCkrV24qSCxybjtpZihqPT09MSlybj11W3FvXTtlbHNle3JuPTA7bGV0IHBvO2lmKEspZm9yKHBvPTA7cG88ajsrK3BvKXJuPXJuKmsrdVtxbytwb107ZWxzZSBmb3IocG89ai0xO3BvPj0wOy0tcG8pcm49cm4qayt1W3FvK3BvXX1ybj1ybipQK0YseHQ9TWF0aC5tYXgoeHQscm4pLE90PU1hdGgubWluKE90LHJuKTtsZXQgT249Yi53ZXN0K1EqV247bT9Pbj1mKE9uKTpPbj1PbipnO2xldCB1cj0oT24tVCkvKHctVCk7dXI9TS5jbGFtcCh1ciwwLDEpO2xldCBabj1jbipjK1duO2lmKHA+MCl7bGV0IHBvPURuPT09cG4sdnI9RG49PT1Ubi0xLE5jPXVvfHxxbnx8cG98fHZyO2lmKCh1b3x8cW4pJiYocG98fHZyKSljb250aW51ZTtOYyYmKHJuLT1wLHBvPyhabj1mZSsobC1jbi0xKSxPbi09b2UqWCk6cW4/Wm49ZmUrbCsoYy1Xbi0xKTp2cj8oWm49ZmUrbCtjK2NuLE9uKz1vZSpYKTp1byYmKFpuPWZlK2wrYytsK1duKSl9bGV0IEtvPUtuKmUoT24pLE5yPUtuKm4oT24pLE1zPWd0KktvLE5zPWl0Kk5yLElyPTEvbyhNcypLbytOcypOcitrZSpsbyksWWk9TXMqSXIsSXM9TnMqSXIsQWk9a2UqSXIsbm89bmV3IGE7bm8ueD1ZaStLbypybixuby55PUlzK05yKnJuLG5vLno9QWkrbG8qcm4sc3QubXVsdGlwbHlCeVBvaW50KGR0LG5vLG5nKSxhLm1pbmltdW1CeUNvbXBvbmVudChuZyxoZSxoZSksYS5tYXhpbXVtQnlDb21wb25lbnQobmcsY2UsY2UpLHBlPU1hdGgubWluKHBlLHJuKSx4ZVtabl09bm8sRWVbWm5dPW5ldyBudCh1cixobiksQWVbWm5dPXJuLEwmJih1bltabl09TmUpLEEmJihVZVtabl09Xy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwobm8pKX19bGV0ICR0PXl0LmZyb21Qb2ludHMoeGUpLFZlO2goTykmJihWZT1Dby5mcm9tUmVjdGFuZ2xlKE8sT3QseHQsXykpO2xldCBkbjtJJiYoZG49bmV3IENzKF8pLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50UG9zc2libHlVbmRlckVsbGlwc29pZChOLHhlLE90KSk7bGV0IHNuPW5ldyBEaShoZSxjZSxOKSxtbj1uZXcgeHMoTixzbixwZSx4dCxfdCwhMSxMLEEsdixEKSxmbz1uZXcgRmxvYXQzMkFycmF5KEp0Km1uLnN0cmlkZSksSG49MDtmb3IobGV0IFplPTA7WmU8SnQ7KytaZSlIbj1tbi5lbmNvZGUoZm8sSG4seGVbWmVdLEVlW1plXSxBZVtaZV0sdm9pZCAwLHVuW1plXSxVZVtaZV0pO3JldHVybnt2ZXJ0aWNlczpmbyxtYXhpbXVtSGVpZ2h0Onh0LG1pbmltdW1IZWlnaHQ6T3QsZW5jb2Rpbmc6bW4sYm91bmRpbmdTcGhlcmUzRDokdCxvcmllbnRlZEJvdW5kaW5nQm94OlZlLG9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlOmRufX07S1I9X2l9KTt2YXIgWFI9VW4oKFVhdCwkZCk9PnsvKiBDb3B5cmlnaHQgMjAxNS0yMDE4IEVzcmkuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgQHByZXNlcnZlICovKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgcj17fTtyLmRlZmF1bHROb0RhdGFWYWx1ZT0tMzQwMjc5OTkzODc5MDE0ODRlMjIsci5kZWNvZGU9ZnVuY3Rpb24obCxwKXtwPXB8fHt9O3ZhciBkPXAuZW5jb2RlZE1hc2tEYXRhfHxwLmVuY29kZWRNYXNrRGF0YT09PW51bGwsbT11KGwscC5pbnB1dE9mZnNldHx8MCxkKSxfPXAubm9EYXRhVmFsdWUhPT1udWxsP3Aubm9EYXRhVmFsdWU6ci5kZWZhdWx0Tm9EYXRhVmFsdWUsZz1pKG0scC5waXhlbFR5cGV8fEZsb2F0MzJBcnJheSxwLmVuY29kZWRNYXNrRGF0YSxfLHAucmV0dXJuTWFzayksYj17d2lkdGg6bS53aWR0aCxoZWlnaHQ6bS5oZWlnaHQscGl4ZWxEYXRhOmcucmVzdWx0UGl4ZWxzLG1pblZhbHVlOmcubWluVmFsdWUsbWF4VmFsdWU6bS5waXhlbHMubWF4VmFsdWUsbm9EYXRhVmFsdWU6X307cmV0dXJuIGcucmVzdWx0TWFzayYmKGIubWFza0RhdGE9Zy5yZXN1bHRNYXNrKSxwLnJldHVybkVuY29kZWRNYXNrJiZtLm1hc2smJihiLmVuY29kZWRNYXNrRGF0YT1tLm1hc2suYml0c2V0P20ubWFzay5iaXRzZXQ6bnVsbCkscC5yZXR1cm5GaWxlSW5mbyYmKGIuZmlsZUluZm89cyhtKSxwLmNvbXB1dGVVc2VkQml0RGVwdGhzJiYoYi5maWxlSW5mby5iaXREZXB0aHM9ZihtKSkpLGJ9O3ZhciBpPWZ1bmN0aW9uKGwscCxkLG0sXyl7dmFyIGc9MCxiPWwucGl4ZWxzLm51bUJsb2Nrc1gsTz1sLnBpeGVscy5udW1CbG9ja3NZLFQ9TWF0aC5mbG9vcihsLndpZHRoL2IpLEU9TWF0aC5mbG9vcihsLmhlaWdodC9PKSx3PTIqbC5tYXhaRXJyb3IsQz1OdW1iZXIuTUFYX1ZBTFVFLE47ZD1kfHwobC5tYXNrP2wubWFzay5iaXRzZXQ6bnVsbCk7dmFyIEksTDtJPW5ldyBwKGwud2lkdGgqbC5oZWlnaHQpLF8mJmQmJihMPW5ldyBVaW50OEFycmF5KGwud2lkdGgqbC5oZWlnaHQpKTtmb3IodmFyIHY9bmV3IEZsb2F0MzJBcnJheShUKkUpLEQsVSxBPTA7QTw9TztBKyspe3ZhciBTPUEhPT1PP0U6bC5oZWlnaHQlTztpZihTIT09MClmb3IodmFyIFA9MDtQPD1iO1ArKyl7dmFyIEY9UCE9PWI/VDpsLndpZHRoJWI7aWYoRiE9PTApe3ZhciBqPUEqbC53aWR0aCpFK1AqVCxIPWwud2lkdGgtRixrPWwucGl4ZWxzLmJsb2Nrc1tnXSxLLFgsUjtrLmVuY29kaW5nPDI/KGsuZW5jb2Rpbmc9PT0wP0s9ay5yYXdEYXRhOihjKGsuc3R1ZmZlZERhdGEsay5iaXRzUGVyUGl4ZWwsay5udW1WYWxpZFBpeGVscyxrLm9mZnNldCx3LHYsbC5waXhlbHMubWF4VmFsdWUpLEs9diksWD0wKTprLmVuY29kaW5nPT09Mj9SPTA6Uj1rLm9mZnNldDt2YXIgUTtpZihkKWZvcihVPTA7VTxTO1UrKyl7Zm9yKGomNyYmKFE9ZFtqPj4zXSxRPDw9aiY3KSxEPTA7RDxGO0QrKylqJjd8fChRPWRbaj4+M10pLFEmMTI4PyhMJiYoTFtqXT0xKSxOPWsuZW5jb2Rpbmc8Mj9LW1grK106UixDPUM+Tj9OOkMsSVtqKytdPU4pOihMJiYoTFtqXT0wKSxJW2orK109bSksUTw8PTE7ais9SH1lbHNlIGlmKGsuZW5jb2Rpbmc8Milmb3IoVT0wO1U8UztVKyspe2ZvcihEPTA7RDxGO0QrKylOPUtbWCsrXSxDPUM+Tj9OOkMsSVtqKytdPU47ais9SH1lbHNlIGZvcihDPUM+Uj9SOkMsVT0wO1U8UztVKyspe2ZvcihEPTA7RDxGO0QrKylJW2orK109UjtqKz1IfWlmKGsuZW5jb2Rpbmc9PT0xJiZYIT09ay5udW1WYWxpZFBpeGVscyl0aHJvdyJCbG9jayBhbmQgTWFzayBkbyBub3QgbWF0Y2giO2crK319fXJldHVybntyZXN1bHRQaXhlbHM6SSxyZXN1bHRNYXNrOkwsbWluVmFsdWU6Q319LHM9ZnVuY3Rpb24obCl7cmV0dXJue2ZpbGVJZGVudGlmaWVyU3RyaW5nOmwuZmlsZUlkZW50aWZpZXJTdHJpbmcsZmlsZVZlcnNpb246bC5maWxlVmVyc2lvbixpbWFnZVR5cGU6bC5pbWFnZVR5cGUsaGVpZ2h0OmwuaGVpZ2h0LHdpZHRoOmwud2lkdGgsbWF4WkVycm9yOmwubWF4WkVycm9yLGVvZk9mZnNldDpsLmVvZk9mZnNldCxtYXNrOmwubWFzaz97bnVtQmxvY2tzWDpsLm1hc2subnVtQmxvY2tzWCxudW1CbG9ja3NZOmwubWFzay5udW1CbG9ja3NZLG51bUJ5dGVzOmwubWFzay5udW1CeXRlcyxtYXhWYWx1ZTpsLm1hc2subWF4VmFsdWV9Om51bGwscGl4ZWxzOntudW1CbG9ja3NYOmwucGl4ZWxzLm51bUJsb2Nrc1gsbnVtQmxvY2tzWTpsLnBpeGVscy5udW1CbG9ja3NZLG51bUJ5dGVzOmwucGl4ZWxzLm51bUJ5dGVzLG1heFZhbHVlOmwucGl4ZWxzLm1heFZhbHVlLG5vRGF0YVZhbHVlOmwubm9EYXRhVmFsdWV9fX0sZj1mdW5jdGlvbihsKXtmb3IodmFyIHA9bC5waXhlbHMubnVtQmxvY2tzWCpsLnBpeGVscy5udW1CbG9ja3NZLGQ9e30sbT0wO208cDttKyspe3ZhciBfPWwucGl4ZWxzLmJsb2Nrc1ttXTtfLmVuY29kaW5nPT09MD9kLmZsb2F0MzI9ITA6Xy5lbmNvZGluZz09PTE/ZFtfLmJpdHNQZXJQaXhlbF09ITA6ZFswXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LHU9ZnVuY3Rpb24obCxwLGQpe3ZhciBtPXt9LF89bmV3IFVpbnQ4QXJyYXkobCxwLDEwKTtpZihtLmZpbGVJZGVudGlmaWVyU3RyaW5nPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxfKSxtLmZpbGVJZGVudGlmaWVyU3RyaW5nLnRyaW0oKSE9PSJDbnRaSW1hZ2UiKXRocm93IlVuZXhwZWN0ZWQgZmlsZSBpZGVudGlmaWVyIHN0cmluZzogIittLmZpbGVJZGVudGlmaWVyU3RyaW5nO3ArPTEwO3ZhciBnPW5ldyBEYXRhVmlldyhsLHAsMjQpO2lmKG0uZmlsZVZlcnNpb249Zy5nZXRJbnQzMigwLCEwKSxtLmltYWdlVHlwZT1nLmdldEludDMyKDQsITApLG0uaGVpZ2h0PWcuZ2V0VWludDMyKDgsITApLG0ud2lkdGg9Zy5nZXRVaW50MzIoMTIsITApLG0ubWF4WkVycm9yPWcuZ2V0RmxvYXQ2NCgxNiwhMCkscCs9MjQsIWQpaWYoZz1uZXcgRGF0YVZpZXcobCxwLDE2KSxtLm1hc2s9e30sbS5tYXNrLm51bUJsb2Nrc1k9Zy5nZXRVaW50MzIoMCwhMCksbS5tYXNrLm51bUJsb2Nrc1g9Zy5nZXRVaW50MzIoNCwhMCksbS5tYXNrLm51bUJ5dGVzPWcuZ2V0VWludDMyKDgsITApLG0ubWFzay5tYXhWYWx1ZT1nLmdldEZsb2F0MzIoMTIsITApLHArPTE2LG0ubWFzay5udW1CeXRlcz4wKXt2YXIgYj1uZXcgVWludDhBcnJheShNYXRoLmNlaWwobS53aWR0aCptLmhlaWdodC84KSk7Zz1uZXcgRGF0YVZpZXcobCxwLG0ubWFzay5udW1CeXRlcyk7dmFyIE89Zy5nZXRJbnQxNigwLCEwKSxUPTIsRT0wO2Rve2lmKE8+MClmb3IoO08tLTspYltFKytdPWcuZ2V0VWludDgoVCsrKTtlbHNle3ZhciB3PWcuZ2V0VWludDgoVCsrKTtmb3IoTz0tTztPLS07KWJbRSsrXT13fU89Zy5nZXRJbnQxNihULCEwKSxUKz0yfXdoaWxlKFQ8bS5tYXNrLm51bUJ5dGVzKTtpZihPIT09LTMyNzY4fHxFPGIubGVuZ3RoKXRocm93IlVuZXhwZWN0ZWQgZW5kIG9mIG1hc2sgUkxFIGVuY29kaW5nIjttLm1hc2suYml0c2V0PWIscCs9bS5tYXNrLm51bUJ5dGVzfWVsc2UgbS5tYXNrLm51bUJ5dGVzfG0ubWFzay5udW1CbG9ja3NZfG0ubWFzay5tYXhWYWx1ZXx8KG0ubWFzay5iaXRzZXQ9bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKG0ud2lkdGgqbS5oZWlnaHQvOCkpKTtnPW5ldyBEYXRhVmlldyhsLHAsMTYpLG0ucGl4ZWxzPXt9LG0ucGl4ZWxzLm51bUJsb2Nrc1k9Zy5nZXRVaW50MzIoMCwhMCksbS5waXhlbHMubnVtQmxvY2tzWD1nLmdldFVpbnQzMig0LCEwKSxtLnBpeGVscy5udW1CeXRlcz1nLmdldFVpbnQzMig4LCEwKSxtLnBpeGVscy5tYXhWYWx1ZT1nLmdldEZsb2F0MzIoMTIsITApLHArPTE2O3ZhciBDPW0ucGl4ZWxzLm51bUJsb2Nrc1gsTj1tLnBpeGVscy5udW1CbG9ja3NZLEk9QysobS53aWR0aCVDPjA/MTowKSxMPU4rKG0uaGVpZ2h0JU4+MD8xOjApO20ucGl4ZWxzLmJsb2Nrcz1uZXcgQXJyYXkoSSpMKTtmb3IodmFyIHY9MCxEPTA7RDxMO0QrKylmb3IodmFyIFU9MDtVPEk7VSsrKXt2YXIgQT0wLFM9bC5ieXRlTGVuZ3RoLXA7Zz1uZXcgRGF0YVZpZXcobCxwLE1hdGgubWluKDEwLFMpKTt2YXIgUD17fTttLnBpeGVscy5ibG9ja3NbdisrXT1QO3ZhciBGPWcuZ2V0VWludDgoMCk7aWYoQSsrLFAuZW5jb2Rpbmc9RiY2MyxQLmVuY29kaW5nPjMpdGhyb3ciSW52YWxpZCBibG9jayBlbmNvZGluZyAoIitQLmVuY29kaW5nKyIpIjtpZihQLmVuY29kaW5nPT09Mil7cCsrO2NvbnRpbnVlfWlmKEYhPT0wJiZGIT09Mil7aWYoRj4+PTYsUC5vZmZzZXRUeXBlPUYsRj09PTIpUC5vZmZzZXQ9Zy5nZXRJbnQ4KDEpLEErKztlbHNlIGlmKEY9PT0xKVAub2Zmc2V0PWcuZ2V0SW50MTYoMSwhMCksQSs9MjtlbHNlIGlmKEY9PT0wKVAub2Zmc2V0PWcuZ2V0RmxvYXQzMigxLCEwKSxBKz00O2Vsc2UgdGhyb3ciSW52YWxpZCBibG9jayBvZmZzZXQgdHlwZSI7aWYoUC5lbmNvZGluZz09PTEpaWYoRj1nLmdldFVpbnQ4KEEpLEErKyxQLmJpdHNQZXJQaXhlbD1GJjYzLEY+Pj02LFAubnVtVmFsaWRQaXhlbHNUeXBlPUYsRj09PTIpUC5udW1WYWxpZFBpeGVscz1nLmdldFVpbnQ4KEEpLEErKztlbHNlIGlmKEY9PT0xKVAubnVtVmFsaWRQaXhlbHM9Zy5nZXRVaW50MTYoQSwhMCksQSs9MjtlbHNlIGlmKEY9PT0wKVAubnVtVmFsaWRQaXhlbHM9Zy5nZXRVaW50MzIoQSwhMCksQSs9NDtlbHNlIHRocm93IkludmFsaWQgdmFsaWQgcGl4ZWwgY291bnQgdHlwZSJ9aWYocCs9QSxQLmVuY29kaW5nIT09Myl7dmFyIGosSDtpZihQLmVuY29kaW5nPT09MCl7dmFyIGs9KG0ucGl4ZWxzLm51bUJ5dGVzLTEpLzQ7aWYoayE9PU1hdGguZmxvb3IoaykpdGhyb3cidW5jb21wcmVzc2VkIGJsb2NrIGhhcyBpbnZhbGlkIGxlbmd0aCI7aj1uZXcgQXJyYXlCdWZmZXIoayo0KSxIPW5ldyBVaW50OEFycmF5KGopLEguc2V0KG5ldyBVaW50OEFycmF5KGwscCxrKjQpKTt2YXIgSz1uZXcgRmxvYXQzMkFycmF5KGopO1AucmF3RGF0YT1LLHArPWsqNH1lbHNlIGlmKFAuZW5jb2Rpbmc9PT0xKXt2YXIgWD1NYXRoLmNlaWwoUC5udW1WYWxpZFBpeGVscypQLmJpdHNQZXJQaXhlbC84KSxSPU1hdGguY2VpbChYLzQpO2o9bmV3IEFycmF5QnVmZmVyKFIqNCksSD1uZXcgVWludDhBcnJheShqKSxILnNldChuZXcgVWludDhBcnJheShsLHAsWCkpLFAuc3R1ZmZlZERhdGE9bmV3IFVpbnQzMkFycmF5KGopLHArPVh9fX1yZXR1cm4gbS5lb2ZPZmZzZXQ9cCxtfSxjPWZ1bmN0aW9uKGwscCxkLG0sXyxnLGIpe3ZhciBPPSgxPDxwKS0xLFQ9MCxFLHc9MCxDLE4sST1NYXRoLmNlaWwoKGItbSkvXyksTD1sLmxlbmd0aCo0LU1hdGguY2VpbChwKmQvOCk7Zm9yKGxbbC5sZW5ndGgtMV08PD04KkwsRT0wO0U8ZDtFKyspe2lmKHc9PT0wJiYoTj1sW1QrK10sdz0zMiksdz49cClDPU4+Pj53LXAmTyx3LT1wO2Vsc2V7dmFyIHY9cC13O0M9KE4mTyk8PHYmTyxOPWxbVCsrXSx3PTMyLXYsQys9Tj4+Pnd9Z1tFXT1DPEk/bStDKl86Yn1yZXR1cm4gZ307cmV0dXJuIHJ9KCksZT1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj17dW5zdHVmZjpmdW5jdGlvbih1LGMsbCxwLGQsbSxfLGcpe3ZhciBiPSgxPDxsKS0xLE89MCxULEU9MCx3LEMsTixJLEw9dS5sZW5ndGgqNC1NYXRoLmNlaWwobCpwLzgpO2lmKHVbdS5sZW5ndGgtMV08PD04KkwsZClmb3IoVD0wO1Q8cDtUKyspRT09PTAmJihDPXVbTysrXSxFPTMyKSxFPj1sPyh3PUM+Pj5FLWwmYixFLT1sKTooTj1sLUUsdz0oQyZiKTw8TiZiLEM9dVtPKytdLEU9MzItTix3Kz1DPj4+RSksY1tUXT1kW3ddO2Vsc2UgZm9yKEk9TWF0aC5jZWlsKChnLW0pL18pLFQ9MDtUPHA7VCsrKUU9PT0wJiYoQz11W08rK10sRT0zMiksRT49bD8odz1DPj4+RS1sJmIsRS09bCk6KE49bC1FLHc9KEMmYik8PE4mYixDPXVbTysrXSxFPTMyLU4sdys9Qz4+PkUpLGNbVF09dzxJP20rdypfOmd9LHVuc3R1ZmZMVVQ6ZnVuY3Rpb24odSxjLGwscCxkLG0pe3ZhciBfPSgxPDxjKS0xLGc9MCxiPTAsTz0wLFQ9MCxFPTAsdyxDPVtdLE49dS5sZW5ndGgqNC1NYXRoLmNlaWwoYypsLzgpO3VbdS5sZW5ndGgtMV08PD04Kk47dmFyIEk9TWF0aC5jZWlsKChtLXApL2QpO2ZvcihiPTA7YjxsO2IrKylUPT09MCYmKHc9dVtnKytdLFQ9MzIpLFQ+PWM/KEU9dz4+PlQtYyZfLFQtPWMpOihPPWMtVCxFPSh3Jl8pPDxPJl8sdz11W2crK10sVD0zMi1PLEUrPXc+Pj5UKSxDW2JdPUU8ST9wK0UqZDptO3JldHVybiBDLnVuc2hpZnQocCksQ30sdW5zdHVmZjI6ZnVuY3Rpb24odSxjLGwscCxkLG0sXyxnKXt2YXIgYj0oMTw8bCktMSxPPTAsVCxFPTAsdz0wLEMsTixJO2lmKGQpZm9yKFQ9MDtUPHA7VCsrKUU9PT0wJiYoTj11W08rK10sRT0zMix3PTApLEU+PWw/KEM9Tj4+PncmYixFLT1sLHcrPWwpOihJPWwtRSxDPU4+Pj53JmIsTj11W08rK10sRT0zMi1JLEN8PShOJigxPDxJKS0xKTw8bC1JLHc9SSksY1tUXT1kW0NdO2Vsc2V7dmFyIEw9TWF0aC5jZWlsKChnLW0pL18pO2ZvcihUPTA7VDxwO1QrKylFPT09MCYmKE49dVtPKytdLEU9MzIsdz0wKSxFPj1sPyhDPU4+Pj53JmIsRS09bCx3Kz1sKTooST1sLUUsQz1OPj4+dyZiLE49dVtPKytdLEU9MzItSSxDfD0oTiYoMTw8SSktMSk8PGwtSSx3PUkpLGNbVF09QzxMP20rQypfOmd9cmV0dXJuIGN9LHVuc3R1ZmZMVVQyOmZ1bmN0aW9uKHUsYyxsLHAsZCxtKXt2YXIgXz0oMTw8YyktMSxnPTAsYj0wLE89MCxUPTAsRT0wLHc9MCxDLE49W10sST1NYXRoLmNlaWwoKG0tcCkvZCk7Zm9yKGI9MDtiPGw7YisrKVQ9PT0wJiYoQz11W2crK10sVD0zMix3PTApLFQ+PWM/KEU9Qz4+PncmXyxULT1jLHcrPWMpOihPPWMtVCxFPUM+Pj53Jl8sQz11W2crK10sVD0zMi1PLEV8PShDJigxPDxPKS0xKTw8Yy1PLHc9TyksTltiXT1FPEk/cCtFKmQ6bTtyZXR1cm4gTi51bnNoaWZ0KHApLE59LG9yaWdpbmFsVW5zdHVmZjpmdW5jdGlvbih1LGMsbCxwKXt2YXIgZD0oMTw8bCktMSxtPTAsXyxnPTAsYixPLFQsRT11Lmxlbmd0aCo0LU1hdGguY2VpbChsKnAvOCk7Zm9yKHVbdS5sZW5ndGgtMV08PD04KkUsXz0wO188cDtfKyspZz09PTAmJihPPXVbbSsrXSxnPTMyKSxnPj1sPyhiPU8+Pj5nLWwmZCxnLT1sKTooVD1sLWcsYj0oTyZkKTw8VCZkLE89dVttKytdLGc9MzItVCxiKz1PPj4+ZyksY1tfXT1iO3JldHVybiBjfSxvcmlnaW5hbFVuc3R1ZmYyOmZ1bmN0aW9uKHUsYyxsLHApe3ZhciBkPSgxPDxsKS0xLG09MCxfLGc9MCxiPTAsTyxULEU7Zm9yKF89MDtfPHA7XysrKWc9PT0wJiYoVD11W20rK10sZz0zMixiPTApLGc+PWw/KE89VD4+PmImZCxnLT1sLGIrPWwpOihFPWwtZyxPPVQ+Pj5iJmQsVD11W20rK10sZz0zMi1FLE98PShUJigxPDxFKS0xKTw8bC1FLGI9RSksY1tfXT1PO3JldHVybiBjfX0saT17SFVGRk1BTl9MVVRfQklUU19NQVg6MTIsY29tcHV0ZUNoZWNrc3VtRmxldGNoZXIzMjpmdW5jdGlvbih1KXtmb3IodmFyIGM9NjU1MzUsbD02NTUzNSxwPXUubGVuZ3RoLGQ9TWF0aC5mbG9vcihwLzIpLG09MDtkOyl7dmFyIF89ZD49MzU5PzM1OTpkO2QtPV87ZG8gYys9dVttKytdPDw4LGwrPWMrPXVbbSsrXTt3aGlsZSgtLV8pO2M9KGMmNjU1MzUpKyhjPj4+MTYpLGw9KGwmNjU1MzUpKyhsPj4+MTYpfXJldHVybiBwJjEmJihsKz1jKz11W21dPDw4KSxjPShjJjY1NTM1KSsoYz4+PjE2KSxsPShsJjY1NTM1KSsobD4+PjE2KSwobDw8MTZ8Yyk+Pj4wfSxyZWFkSGVhZGVySW5mbzpmdW5jdGlvbih1LGMpe3ZhciBsPWMucHRyLHA9bmV3IFVpbnQ4QXJyYXkodSxsLDYpLGQ9e307aWYoZC5maWxlSWRlbnRpZmllclN0cmluZz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscCksZC5maWxlSWRlbnRpZmllclN0cmluZy5sYXN0SW5kZXhPZigiTGVyYzIiLDApIT09MCl0aHJvdyJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmcgKGV4cGVjdCBMZXJjMiApOiAiK2QuZmlsZUlkZW50aWZpZXJTdHJpbmc7bCs9Njt2YXIgbT1uZXcgRGF0YVZpZXcodSxsLDgpLF89bS5nZXRJbnQzMigwLCEwKTtkLmZpbGVWZXJzaW9uPV8sbCs9NCxfPj0zJiYoZC5jaGVja3N1bT1tLmdldFVpbnQzMig0LCEwKSxsKz00KSxtPW5ldyBEYXRhVmlldyh1LGwsMTIpLGQuaGVpZ2h0PW0uZ2V0VWludDMyKDAsITApLGQud2lkdGg9bS5nZXRVaW50MzIoNCwhMCksbCs9OCxfPj00PyhkLm51bURpbXM9bS5nZXRVaW50MzIoOCwhMCksbCs9NCk6ZC5udW1EaW1zPTEsbT1uZXcgRGF0YVZpZXcodSxsLDQwKSxkLm51bVZhbGlkUGl4ZWw9bS5nZXRVaW50MzIoMCwhMCksZC5taWNyb0Jsb2NrU2l6ZT1tLmdldEludDMyKDQsITApLGQuYmxvYlNpemU9bS5nZXRJbnQzMig4LCEwKSxkLmltYWdlVHlwZT1tLmdldEludDMyKDEyLCEwKSxkLm1heFpFcnJvcj1tLmdldEZsb2F0NjQoMTYsITApLGQuek1pbj1tLmdldEZsb2F0NjQoMjQsITApLGQuek1heD1tLmdldEZsb2F0NjQoMzIsITApLGwrPTQwLGMuaGVhZGVySW5mbz1kLGMucHRyPWw7dmFyIGcsYjtpZihfPj0zJiYoYj1fPj00PzUyOjQ4LGc9dGhpcy5jb21wdXRlQ2hlY2tzdW1GbGV0Y2hlcjMyKG5ldyBVaW50OEFycmF5KHUsbC1iLGQuYmxvYlNpemUtMTQpKSxnIT09ZC5jaGVja3N1bSkpdGhyb3ciQ2hlY2tzdW0gZmFpbGVkLiI7cmV0dXJuITB9LGNoZWNrTWluTWF4UmFuZ2VzOmZ1bmN0aW9uKHUsYyl7dmFyIGw9Yy5oZWFkZXJJbmZvLHA9dGhpcy5nZXREYXRhVHlwZUFycmF5KGwuaW1hZ2VUeXBlKSxkPWwubnVtRGltcyp0aGlzLmdldERhdGFUeXBlU2l6ZShsLmltYWdlVHlwZSksbT10aGlzLnJlYWRTdWJBcnJheSh1LGMucHRyLHAsZCksXz10aGlzLnJlYWRTdWJBcnJheSh1LGMucHRyK2QscCxkKTtjLnB0cis9MipkO3ZhciBnLGI9ITA7Zm9yKGc9MDtnPGwubnVtRGltcztnKyspaWYobVtnXSE9PV9bZ10pe2I9ITE7YnJlYWt9cmV0dXJuIGwubWluVmFsdWVzPW0sbC5tYXhWYWx1ZXM9XyxifSxyZWFkU3ViQXJyYXk6ZnVuY3Rpb24odSxjLGwscCl7dmFyIGQ7aWYobD09PVVpbnQ4QXJyYXkpZD1uZXcgVWludDhBcnJheSh1LGMscCk7ZWxzZXt2YXIgbT1uZXcgQXJyYXlCdWZmZXIocCksXz1uZXcgVWludDhBcnJheShtKTtfLnNldChuZXcgVWludDhBcnJheSh1LGMscCkpLGQ9bmV3IGwobSl9cmV0dXJuIGR9LHJlYWRNYXNrOmZ1bmN0aW9uKHUsYyl7dmFyIGw9Yy5wdHIscD1jLmhlYWRlckluZm8sZD1wLndpZHRoKnAuaGVpZ2h0LG09cC5udW1WYWxpZFBpeGVsLF89bmV3IERhdGFWaWV3KHUsbCw0KSxnPXt9O2lmKGcubnVtQnl0ZXM9Xy5nZXRVaW50MzIoMCwhMCksbCs9NCwobT09PTB8fGQ9PT1tKSYmZy5udW1CeXRlcyE9PTApdGhyb3ciaW52YWxpZCBtYXNrIjt2YXIgYixPO2lmKG09PT0wKWI9bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKGQvOCkpLGcuYml0c2V0PWIsTz1uZXcgVWludDhBcnJheShkKSxjLnBpeGVscy5yZXN1bHRNYXNrPU8sbCs9Zy5udW1CeXRlcztlbHNlIGlmKGcubnVtQnl0ZXM+MCl7Yj1uZXcgVWludDhBcnJheShNYXRoLmNlaWwoZC84KSksXz1uZXcgRGF0YVZpZXcodSxsLGcubnVtQnl0ZXMpO3ZhciBUPV8uZ2V0SW50MTYoMCwhMCksRT0yLHc9MCxDPTA7ZG97aWYoVD4wKWZvcig7VC0tOyliW3crK109Xy5nZXRVaW50OChFKyspO2Vsc2UgZm9yKEM9Xy5nZXRVaW50OChFKyspLFQ9LVQ7VC0tOyliW3crK109QztUPV8uZ2V0SW50MTYoRSwhMCksRSs9Mn13aGlsZShFPGcubnVtQnl0ZXMpO2lmKFQhPT0tMzI3Njh8fHc8Yi5sZW5ndGgpdGhyb3ciVW5leHBlY3RlZCBlbmQgb2YgbWFzayBSTEUgZW5jb2RpbmciO089bmV3IFVpbnQ4QXJyYXkoZCk7dmFyIE49MCxJPTA7Zm9yKEk9MDtJPGQ7SSsrKUkmNz8oTj1iW0k+PjNdLE48PD1JJjcpOk49YltJPj4zXSxOJjEyOCYmKE9bSV09MSk7Yy5waXhlbHMucmVzdWx0TWFzaz1PLGcuYml0c2V0PWIsbCs9Zy5udW1CeXRlc31yZXR1cm4gYy5wdHI9bCxjLm1hc2s9ZywhMH0scmVhZERhdGFPbmVTd2VlcDpmdW5jdGlvbih1LGMsbCl7dmFyIHA9Yy5wdHIsZD1jLmhlYWRlckluZm8sbT1kLm51bURpbXMsXz1kLndpZHRoKmQuaGVpZ2h0LGc9ZC5pbWFnZVR5cGUsYj1kLm51bVZhbGlkUGl4ZWwqaS5nZXREYXRhVHlwZVNpemUoZykqbSxPLFQ9Yy5waXhlbHMucmVzdWx0TWFzaztpZihsPT09VWludDhBcnJheSlPPW5ldyBVaW50OEFycmF5KHUscCxiKTtlbHNle3ZhciBFPW5ldyBBcnJheUJ1ZmZlcihiKSx3PW5ldyBVaW50OEFycmF5KEUpO3cuc2V0KG5ldyBVaW50OEFycmF5KHUscCxiKSksTz1uZXcgbChFKX1pZihPLmxlbmd0aD09PV8qbSljLnBpeGVscy5yZXN1bHRQaXhlbHM9TztlbHNle2MucGl4ZWxzLnJlc3VsdFBpeGVscz1uZXcgbChfKm0pO3ZhciBDPTAsTj0wLEk9MCxMPTA7aWYobT4xKWZvcihJPTA7STxtO0krKylmb3IoTD1JKl8sTj0wO048XztOKyspVFtOXSYmKGMucGl4ZWxzLnJlc3VsdFBpeGVsc1tMK05dPU9bQysrXSk7ZWxzZSBmb3IoTj0wO048XztOKyspVFtOXSYmKGMucGl4ZWxzLnJlc3VsdFBpeGVsc1tOXT1PW0MrK10pfXJldHVybiBwKz1iLGMucHRyPXAsITB9LHJlYWRIdWZmbWFuVHJlZTpmdW5jdGlvbih1LGMpe3ZhciBsPXRoaXMuSFVGRk1BTl9MVVRfQklUU19NQVgscD1uZXcgRGF0YVZpZXcodSxjLnB0ciwxNik7Yy5wdHIrPTE2O3ZhciBkPXAuZ2V0SW50MzIoMCwhMCk7aWYoZDwyKXRocm93InVuc3VwcG9ydGVkIEh1ZmZtYW4gdmVyc2lvbiI7dmFyIG09cC5nZXRJbnQzMig0LCEwKSxfPXAuZ2V0SW50MzIoOCwhMCksZz1wLmdldEludDMyKDEyLCEwKTtpZihfPj1nKXJldHVybiExO3ZhciBiPW5ldyBVaW50MzJBcnJheShnLV8pO2kuZGVjb2RlQml0cyh1LGMsYik7dmFyIE89W10sVCxFLHcsQztmb3IoVD1fO1Q8ZztUKyspRT1ULShUPG0/MDptKSxPW0VdPXtmaXJzdDpiW1QtX10sc2Vjb25kOm51bGx9O3ZhciBOPXUuYnl0ZUxlbmd0aC1jLnB0cixJPU1hdGguY2VpbChOLzQpLEw9bmV3IEFycmF5QnVmZmVyKEkqNCksdj1uZXcgVWludDhBcnJheShMKTt2LnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLE4pKTt2YXIgRD1uZXcgVWludDMyQXJyYXkoTCksVT0wLEEsUz0wO2ZvcihBPURbMF0sVD1fO1Q8ZztUKyspRT1ULShUPG0/MDptKSxDPU9bRV0uZmlyc3QsQz4wJiYoT1tFXS5zZWNvbmQ9QTw8VT4+PjMyLUMsMzItVT49Qz8oVSs9QyxVPT09MzImJihVPTAsUysrLEE9RFtTXSkpOihVKz1DLTMyLFMrKyxBPURbU10sT1tFXS5zZWNvbmR8PUE+Pj4zMi1VKSk7dmFyIFA9MCxGPTAsaj1uZXcgcztmb3IoVD0wO1Q8Ty5sZW5ndGg7VCsrKU9bVF0hPT12b2lkIDAmJihQPU1hdGgubWF4KFAsT1tUXS5maXJzdCkpO1A+PWw/Rj1sOkY9UCxQPj0zMCYmY29uc29sZS5sb2coIldBUm5pbmcsIGxhcmdlIE5VTSBMVVQgQklUUyBJUyAiK1ApO3ZhciBIPVtdLGssSyxYLFIsUSxmdDtmb3IoVD1fO1Q8ZztUKyspaWYoRT1ULShUPG0/MDptKSxDPU9bRV0uZmlyc3QsQz4wKWlmKGs9W0MsRV0sQzw9Rilmb3IoSz1PW0VdLnNlY29uZDw8Ri1DLFg9MTw8Ri1DLHc9MDt3PFg7dysrKUhbS3x3XT1rO2Vsc2UgZm9yKEs9T1tFXS5zZWNvbmQsZnQ9aixSPUMtMTtSPj0wO1ItLSlRPUs+Pj5SJjEsUT8oZnQucmlnaHR8fChmdC5yaWdodD1uZXcgcyksZnQ9ZnQucmlnaHQpOihmdC5sZWZ0fHwoZnQubGVmdD1uZXcgcyksZnQ9ZnQubGVmdCksUj09PTAmJiFmdC52YWwmJihmdC52YWw9a1sxXSk7cmV0dXJue2RlY29kZUx1dDpILG51bUJpdHNMVVRRaWNrOkYsbnVtQml0c0xVVDpQLHRyZWU6aixzdHVmZmVkRGF0YTpELHNyY1B0cjpTLGJpdFBvczpVfX0scmVhZEh1ZmZtYW46ZnVuY3Rpb24odSxjLGwpe3ZhciBwPWMuaGVhZGVySW5mbyxkPXAubnVtRGltcyxtPWMuaGVhZGVySW5mby5oZWlnaHQsXz1jLmhlYWRlckluZm8ud2lkdGgsZz1fKm0sYj10aGlzLnJlYWRIdWZmbWFuVHJlZSh1LGMpLE89Yi5kZWNvZGVMdXQsVD1iLnRyZWUsRT1iLnN0dWZmZWREYXRhLHc9Yi5zcmNQdHIsQz1iLmJpdFBvcyxOPWIubnVtQml0c0xVVFFpY2ssST1iLm51bUJpdHNMVVQsTD1jLmhlYWRlckluZm8uaW1hZ2VUeXBlPT09MD8xMjg6MCx2LEQsVSxBPWMucGl4ZWxzLnJlc3VsdE1hc2ssUyxQLEYsaixILGssSyxYPTA7Qz4wJiYodysrLEM9MCk7dmFyIFI9RVt3XSxRPWMuZW5jb2RlTW9kZT09PTEsZnQ9bmV3IGwoZypkKSxwdD1mdCxndDtmb3IoZ3Q9MDtndDxwLm51bURpbXM7Z3QrKyl7aWYoZD4xJiYocHQ9bmV3IGwoZnQuYnVmZmVyLGcqZ3QsZyksWD0wKSxjLmhlYWRlckluZm8ubnVtVmFsaWRQaXhlbD09PV8qbSlmb3Ioaz0wLGo9MDtqPG07aisrKWZvcihIPTA7SDxfO0grKyxrKyspe2lmKEQ9MCxTPVI8PEM+Pj4zMi1OLFA9UywzMi1DPE4mJihTfD1FW3crMV0+Pj42NC1DLU4sUD1TKSxPW1BdKUQ9T1tQXVsxXSxDKz1PW1BdWzBdO2Vsc2UgZm9yKFM9Ujw8Qz4+PjMyLUksUD1TLDMyLUM8SSYmKFN8PUVbdysxXT4+PjY0LUMtSSxQPVMpLHY9VCxLPTA7SzxJO0srKylpZihGPVM+Pj5JLUstMSYxLHY9Rj92LnJpZ2h0OnYubGVmdCwhKHYubGVmdHx8di5yaWdodCkpe0Q9di52YWwsQz1DK0srMTticmVha31DPj0zMiYmKEMtPTMyLHcrKyxSPUVbd10pLFU9RC1MLFE/KEg+MD9VKz1YOmo+MD9VKz1wdFtrLV9dOlUrPVgsVSY9MjU1LHB0W2tdPVUsWD1VKTpwdFtrXT1VfWVsc2UgZm9yKGs9MCxqPTA7ajxtO2orKylmb3IoSD0wO0g8XztIKyssaysrKWlmKEFba10pe2lmKEQ9MCxTPVI8PEM+Pj4zMi1OLFA9UywzMi1DPE4mJihTfD1FW3crMV0+Pj42NC1DLU4sUD1TKSxPW1BdKUQ9T1tQXVsxXSxDKz1PW1BdWzBdO2Vsc2UgZm9yKFM9Ujw8Qz4+PjMyLUksUD1TLDMyLUM8SSYmKFN8PUVbdysxXT4+PjY0LUMtSSxQPVMpLHY9VCxLPTA7SzxJO0srKylpZihGPVM+Pj5JLUstMSYxLHY9Rj92LnJpZ2h0OnYubGVmdCwhKHYubGVmdHx8di5yaWdodCkpe0Q9di52YWwsQz1DK0srMTticmVha31DPj0zMiYmKEMtPTMyLHcrKyxSPUVbd10pLFU9RC1MLFE/KEg+MCYmQVtrLTFdP1UrPVg6aj4wJiZBW2stX10/VSs9cHRbay1fXTpVKz1YLFUmPTI1NSxwdFtrXT1VLFg9VSk6cHRba109VX1jLnB0cj1jLnB0cisodysxKSo0KyhDPjA/NDowKX1jLnBpeGVscy5yZXN1bHRQaXhlbHM9ZnR9LGRlY29kZUJpdHM6ZnVuY3Rpb24odSxjLGwscCxkKXt7dmFyIG09Yy5oZWFkZXJJbmZvLF89bS5maWxlVmVyc2lvbixnPTAsYj1uZXcgRGF0YVZpZXcodSxjLnB0ciw1KSxPPWIuZ2V0VWludDgoMCk7ZysrO3ZhciBUPU8+PjYsRT1UPT09MD80OjMtVCx3PShPJjMyKT4wLEM9TyYzMSxOPTA7aWYoRT09PTEpTj1iLmdldFVpbnQ4KGcpLGcrKztlbHNlIGlmKEU9PT0yKU49Yi5nZXRVaW50MTYoZywhMCksZys9MjtlbHNlIGlmKEU9PT00KU49Yi5nZXRVaW50MzIoZywhMCksZys9NDtlbHNlIHRocm93IkludmFsaWQgdmFsaWQgcGl4ZWwgY291bnQgdHlwZSI7dmFyIEk9MiptLm1heFpFcnJvcixMLHYsRCxVLEEsUyxQLEYsaixILGs9bS5udW1EaW1zPjE/bS5tYXhWYWx1ZXNbZF06bS56TWF4O2lmKHcpe2ZvcihjLmNvdW50ZXIubHV0KyssRj1iLmdldFVpbnQ4KGcpLGo9QyxnKyssVT1NYXRoLmNlaWwoKEYtMSkqQy84KSxBPU1hdGguY2VpbChVLzQpLHY9bmV3IEFycmF5QnVmZmVyKEEqNCksRD1uZXcgVWludDhBcnJheSh2KSxjLnB0cis9ZyxELnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLFUpKSxQPW5ldyBVaW50MzJBcnJheSh2KSxjLnB0cis9VSxIPTA7Ri0xPj4+SDspSCsrO1U9TWF0aC5jZWlsKE4qSC84KSxBPU1hdGguY2VpbChVLzQpLHY9bmV3IEFycmF5QnVmZmVyKEEqNCksRD1uZXcgVWludDhBcnJheSh2KSxELnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLFUpKSxMPW5ldyBVaW50MzJBcnJheSh2KSxjLnB0cis9VSxfPj0zP1M9ci51bnN0dWZmTFVUMihQLEMsRi0xLHAsSSxrKTpTPXIudW5zdHVmZkxVVChQLEMsRi0xLHAsSSxrKSxfPj0zP3IudW5zdHVmZjIoTCxsLEgsTixTKTpyLnVuc3R1ZmYoTCxsLEgsTixTKX1lbHNlIGMuY291bnRlci5iaXRzdHVmZmVyKyssSD1DLGMucHRyKz1nLEg+MCYmKFU9TWF0aC5jZWlsKE4qSC84KSxBPU1hdGguY2VpbChVLzQpLHY9bmV3IEFycmF5QnVmZmVyKEEqNCksRD1uZXcgVWludDhBcnJheSh2KSxELnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLFUpKSxMPW5ldyBVaW50MzJBcnJheSh2KSxjLnB0cis9VSxfPj0zP3A9PW51bGw/ci5vcmlnaW5hbFVuc3R1ZmYyKEwsbCxILE4pOnIudW5zdHVmZjIoTCxsLEgsTiwhMSxwLEksayk6cD09bnVsbD9yLm9yaWdpbmFsVW5zdHVmZihMLGwsSCxOKTpyLnVuc3R1ZmYoTCxsLEgsTiwhMSxwLEksaykpfX0scmVhZFRpbGVzOmZ1bmN0aW9uKHUsYyxsKXt2YXIgcD1jLmhlYWRlckluZm8sZD1wLndpZHRoLG09cC5oZWlnaHQsXz1wLm1pY3JvQmxvY2tTaXplLGc9cC5pbWFnZVR5cGUsYj1pLmdldERhdGFUeXBlU2l6ZShnKSxPPU1hdGguY2VpbChkL18pLFQ9TWF0aC5jZWlsKG0vXyk7Yy5waXhlbHMubnVtQmxvY2tzWT1ULGMucGl4ZWxzLm51bUJsb2Nrc1g9TyxjLnBpeGVscy5wdHI9MDt2YXIgRT0wLHc9MCxDPTAsTj0wLEk9MCxMPTAsdj0wLEQ9MCxVPTAsQT0wLFM9MCxQPTAsRj0wLGo9MCxIPTAsaz0wLEssWCxSLFEsZnQscHQsZ3Q9bmV3IGwoXypfKSxpdD1tJV98fF8sTnQ9ZCVffHxfLE90LHh0LF90PXAubnVtRGltcyxkdCxWdD1jLnBpeGVscy5yZXN1bHRNYXNrLHp0PWMucGl4ZWxzLnJlc3VsdFBpeGVscztmb3IoQz0wO0M8VDtDKyspZm9yKEk9QyE9PVQtMT9fOml0LE49MDtOPE87TisrKWZvcihMPU4hPT1PLTE/XzpOdCxTPUMqZCpfK04qXyxQPWQtTCxkdD0wO2R0PF90O2R0Kyspe2lmKF90PjEmJih6dD1uZXcgbChjLnBpeGVscy5yZXN1bHRQaXhlbHMuYnVmZmVyLGQqbSpkdCpiLGQqbSkpLHY9dS5ieXRlTGVuZ3RoLWMucHRyLEs9bmV3IERhdGFWaWV3KHUsYy5wdHIsTWF0aC5taW4oMTAsdikpLFg9e30saz0wLEQ9Sy5nZXRVaW50OCgwKSxrKyssVT1EPj42JjI1NSxBPUQ+PjImMTUsQSE9PShOKl8+PjMmMTUpKXRocm93ImludGVncml0eSBpc3N1ZSI7aWYocHQ9RCYzLHB0PjMpdGhyb3cgYy5wdHIrPWssIkludmFsaWQgYmxvY2sgZW5jb2RpbmcgKCIrcHQrIikiO2lmKHB0PT09Mil7Yy5jb3VudGVyLmNvbnN0YW50KyssYy5wdHIrPWs7Y29udGludWV9ZWxzZSBpZihwdD09PTApe2lmKGMuY291bnRlci51bmNvbXByZXNzZWQrKyxjLnB0cis9ayxGPUkqTCpiLGo9dS5ieXRlTGVuZ3RoLWMucHRyLEY9RjxqP0Y6aixSPW5ldyBBcnJheUJ1ZmZlcihGJWI9PT0wP0Y6RitiLUYlYiksUT1uZXcgVWludDhBcnJheShSKSxRLnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLEYpKSxmdD1uZXcgbChSKSxIPTAsVnQpZm9yKEU9MDtFPEk7RSsrKXtmb3Iodz0wO3c8TDt3KyspVnRbU10mJih6dFtTXT1mdFtIKytdKSxTKys7Uys9UH1lbHNlIGZvcihFPTA7RTxJO0UrKyl7Zm9yKHc9MDt3PEw7dysrKXp0W1MrK109ZnRbSCsrXTtTKz1QfWMucHRyKz1IKmJ9ZWxzZSBpZihPdD1pLmdldERhdGFUeXBlVXNlZChnLFUpLHh0PWkuZ2V0T25lUGl4ZWwoWCxrLE90LEspLGsrPWkuZ2V0RGF0YVR5cGVTaXplKE90KSxwdD09PTMpaWYoYy5wdHIrPWssYy5jb3VudGVyLmNvbnN0YW50b2Zmc2V0KyssVnQpZm9yKEU9MDtFPEk7RSsrKXtmb3Iodz0wO3c8TDt3KyspVnRbU10mJih6dFtTXT14dCksUysrO1MrPVB9ZWxzZSBmb3IoRT0wO0U8STtFKyspe2Zvcih3PTA7dzxMO3crKyl6dFtTKytdPXh0O1MrPVB9ZWxzZSBpZihjLnB0cis9ayxpLmRlY29kZUJpdHModSxjLGd0LHh0LGR0KSxrPTAsVnQpZm9yKEU9MDtFPEk7RSsrKXtmb3Iodz0wO3c8TDt3KyspVnRbU10mJih6dFtTXT1ndFtrKytdKSxTKys7Uys9UH1lbHNlIGZvcihFPTA7RTxJO0UrKyl7Zm9yKHc9MDt3PEw7dysrKXp0W1MrK109Z3RbaysrXTtTKz1QfX19LGZvcm1hdEZpbGVJbmZvOmZ1bmN0aW9uKHUpe3JldHVybntmaWxlSWRlbnRpZmllclN0cmluZzp1LmhlYWRlckluZm8uZmlsZUlkZW50aWZpZXJTdHJpbmcsZmlsZVZlcnNpb246dS5oZWFkZXJJbmZvLmZpbGVWZXJzaW9uLGltYWdlVHlwZTp1LmhlYWRlckluZm8uaW1hZ2VUeXBlLGhlaWdodDp1LmhlYWRlckluZm8uaGVpZ2h0LHdpZHRoOnUuaGVhZGVySW5mby53aWR0aCxudW1WYWxpZFBpeGVsOnUuaGVhZGVySW5mby5udW1WYWxpZFBpeGVsLG1pY3JvQmxvY2tTaXplOnUuaGVhZGVySW5mby5taWNyb0Jsb2NrU2l6ZSxibG9iU2l6ZTp1LmhlYWRlckluZm8uYmxvYlNpemUsbWF4WkVycm9yOnUuaGVhZGVySW5mby5tYXhaRXJyb3IscGl4ZWxUeXBlOmkuZ2V0UGl4ZWxUeXBlKHUuaGVhZGVySW5mby5pbWFnZVR5cGUpLGVvZk9mZnNldDp1LmVvZk9mZnNldCxtYXNrOnUubWFzaz97bnVtQnl0ZXM6dS5tYXNrLm51bUJ5dGVzfTpudWxsLHBpeGVsczp7bnVtQmxvY2tzWDp1LnBpeGVscy5udW1CbG9ja3NYLG51bUJsb2Nrc1k6dS5waXhlbHMubnVtQmxvY2tzWSxtYXhWYWx1ZTp1LmhlYWRlckluZm8uek1heCxtaW5WYWx1ZTp1LmhlYWRlckluZm8uek1pbixub0RhdGFWYWx1ZTp1Lm5vRGF0YVZhbHVlfX19LGNvbnN0cnVjdENvbnN0YW50U3VyZmFjZTpmdW5jdGlvbih1KXt2YXIgYz11LmhlYWRlckluZm8uek1heCxsPXUuaGVhZGVySW5mby5udW1EaW1zLHA9dS5oZWFkZXJJbmZvLmhlaWdodCp1LmhlYWRlckluZm8ud2lkdGgsZD1wKmwsbT0wLF89MCxnPTAsYj11LnBpeGVscy5yZXN1bHRNYXNrO2lmKGIpaWYobD4xKWZvcihtPTA7bTxsO20rKylmb3IoZz1tKnAsXz0wO188cDtfKyspYltfXSYmKHUucGl4ZWxzLnJlc3VsdFBpeGVsc1tnK19dPWMpO2Vsc2UgZm9yKF89MDtfPHA7XysrKWJbX10mJih1LnBpeGVscy5yZXN1bHRQaXhlbHNbX109Yyk7ZWxzZSBpZih1LnBpeGVscy5yZXN1bHRQaXhlbHMuZmlsbCl1LnBpeGVscy5yZXN1bHRQaXhlbHMuZmlsbChjKTtlbHNlIGZvcihfPTA7XzxkO18rKyl1LnBpeGVscy5yZXN1bHRQaXhlbHNbX109Y30sZ2V0RGF0YVR5cGVBcnJheTpmdW5jdGlvbih1KXt2YXIgYztzd2l0Y2godSl7Y2FzZSAwOmM9SW50OEFycmF5O2JyZWFrO2Nhc2UgMTpjPVVpbnQ4QXJyYXk7YnJlYWs7Y2FzZSAyOmM9SW50MTZBcnJheTticmVhaztjYXNlIDM6Yz1VaW50MTZBcnJheTticmVhaztjYXNlIDQ6Yz1JbnQzMkFycmF5O2JyZWFrO2Nhc2UgNTpjPVVpbnQzMkFycmF5O2JyZWFrO2Nhc2UgNjpjPUZsb2F0MzJBcnJheTticmVhaztjYXNlIDc6Yz1GbG9hdDY0QXJyYXk7YnJlYWs7ZGVmYXVsdDpjPUZsb2F0MzJBcnJheX1yZXR1cm4gY30sZ2V0UGl4ZWxUeXBlOmZ1bmN0aW9uKHUpe3ZhciBjO3N3aXRjaCh1KXtjYXNlIDA6Yz0iUzgiO2JyZWFrO2Nhc2UgMTpjPSJVOCI7YnJlYWs7Y2FzZSAyOmM9IlMxNiI7YnJlYWs7Y2FzZSAzOmM9IlUxNiI7YnJlYWs7Y2FzZSA0OmM9IlMzMiI7YnJlYWs7Y2FzZSA1OmM9IlUzMiI7YnJlYWs7Y2FzZSA2OmM9IkYzMiI7YnJlYWs7Y2FzZSA3OmM9IkY2NCI7YnJlYWs7ZGVmYXVsdDpjPSJGMzIifXJldHVybiBjfSxpc1ZhbGlkUGl4ZWxWYWx1ZTpmdW5jdGlvbih1LGMpe2lmKGM9PW51bGwpcmV0dXJuITE7dmFyIGw7c3dpdGNoKHUpe2Nhc2UgMDpsPWM+PS0xMjgmJmM8PTEyNzticmVhaztjYXNlIDE6bD1jPj0wJiZjPD0yNTU7YnJlYWs7Y2FzZSAyOmw9Yz49LTMyNzY4JiZjPD0zMjc2NzticmVhaztjYXNlIDM6bD1jPj0wJiZjPD02NTUzNjticmVhaztjYXNlIDQ6bD1jPj0tMjE0NzQ4MzY0OCYmYzw9MjE0NzQ4MzY0NzticmVhaztjYXNlIDU6bD1jPj0wJiZjPD00Mjk0OTY3Mjk2O2JyZWFrO2Nhc2UgNjpsPWM+PS0zNDAyNzk5OTM4NzkwMTQ4NGUyMiYmYzw9MzQwMjc5OTkzODc5MDE0ODRlMjI7YnJlYWs7Y2FzZSA3Omw9Yz49NWUtMzI0JiZjPD0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7YnJlYWs7ZGVmYXVsdDpsPSExfXJldHVybiBsfSxnZXREYXRhVHlwZVNpemU6ZnVuY3Rpb24odSl7dmFyIGM9MDtzd2l0Y2godSl7Y2FzZSAwOmNhc2UgMTpjPTE7YnJlYWs7Y2FzZSAyOmNhc2UgMzpjPTI7YnJlYWs7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Yz00O2JyZWFrO2Nhc2UgNzpjPTg7YnJlYWs7ZGVmYXVsdDpjPXV9cmV0dXJuIGN9LGdldERhdGFUeXBlVXNlZDpmdW5jdGlvbih1LGMpe3ZhciBsPXU7c3dpdGNoKHUpe2Nhc2UgMjpjYXNlIDQ6bD11LWM7YnJlYWs7Y2FzZSAzOmNhc2UgNTpsPXUtMipjO2JyZWFrO2Nhc2UgNjpjPT09MD9sPXU6Yz09PTE/bD0yOmw9MTticmVhaztjYXNlIDc6Yz09PTA/bD11Omw9dS0yKmMrMTticmVhaztkZWZhdWx0Omw9dTticmVha31yZXR1cm4gbH0sZ2V0T25lUGl4ZWw6ZnVuY3Rpb24odSxjLGwscCl7dmFyIGQ9MDtzd2l0Y2gobCl7Y2FzZSAwOmQ9cC5nZXRJbnQ4KGMpO2JyZWFrO2Nhc2UgMTpkPXAuZ2V0VWludDgoYyk7YnJlYWs7Y2FzZSAyOmQ9cC5nZXRJbnQxNihjLCEwKTticmVhaztjYXNlIDM6ZD1wLmdldFVpbnQxNihjLCEwKTticmVhaztjYXNlIDQ6ZD1wLmdldEludDMyKGMsITApO2JyZWFrO2Nhc2UgNTpkPXAuZ2V0VUludDMyKGMsITApO2JyZWFrO2Nhc2UgNjpkPXAuZ2V0RmxvYXQzMihjLCEwKTticmVhaztjYXNlIDc6ZD1wLmdldEZsb2F0NjQoYywhMCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ0aGUgZGVjb2RlciBkb2VzIG5vdCB1bmRlcnN0YW5kIHRoaXMgcGl4ZWwgdHlwZSJ9cmV0dXJuIGR9fSxzPWZ1bmN0aW9uKHUsYyxsKXt0aGlzLnZhbD11LHRoaXMubGVmdD1jLHRoaXMucmlnaHQ9bH0sZj17ZGVjb2RlOmZ1bmN0aW9uKHUsYyl7Yz1jfHx7fTt2YXIgbD1jLm5vRGF0YVZhbHVlLHA9MCxkPXt9O2lmKGQucHRyPWMuaW5wdXRPZmZzZXR8fDAsZC5waXhlbHM9e30sISFpLnJlYWRIZWFkZXJJbmZvKHUsZCkpe3ZhciBtPWQuaGVhZGVySW5mbyxfPW0uZmlsZVZlcnNpb24sZz1pLmdldERhdGFUeXBlQXJyYXkobS5pbWFnZVR5cGUpO2kucmVhZE1hc2sodSxkKSxtLm51bVZhbGlkUGl4ZWwhPT1tLndpZHRoKm0uaGVpZ2h0JiYhZC5waXhlbHMucmVzdWx0TWFzayYmKGQucGl4ZWxzLnJlc3VsdE1hc2s9Yy5tYXNrRGF0YSk7dmFyIGI9bS53aWR0aCptLmhlaWdodDtpZihkLnBpeGVscy5yZXN1bHRQaXhlbHM9bmV3IGcoYiptLm51bURpbXMpLGQuY291bnRlcj17b25lc3dlZXA6MCx1bmNvbXByZXNzZWQ6MCxsdXQ6MCxiaXRzdHVmZmVyOjAsY29uc3RhbnQ6MCxjb25zdGFudG9mZnNldDowfSxtLm51bVZhbGlkUGl4ZWwhPT0wKWlmKG0uek1heD09PW0uek1pbilpLmNvbnN0cnVjdENvbnN0YW50U3VyZmFjZShkKTtlbHNlIGlmKF8+PTQmJmkuY2hlY2tNaW5NYXhSYW5nZXModSxkKSlpLmNvbnN0cnVjdENvbnN0YW50U3VyZmFjZShkKTtlbHNle3ZhciBPPW5ldyBEYXRhVmlldyh1LGQucHRyLDIpLFQ9Ty5nZXRVaW50OCgwKTtpZihkLnB0cisrLFQpaS5yZWFkRGF0YU9uZVN3ZWVwKHUsZCxnKTtlbHNlIGlmKF8+MSYmbS5pbWFnZVR5cGU8PTEmJk1hdGguYWJzKG0ubWF4WkVycm9yLS41KTwxZS01KXt2YXIgRT1PLmdldFVpbnQ4KDEpO2lmKGQucHRyKyssZC5lbmNvZGVNb2RlPUUsRT4yfHxfPDQmJkU+MSl0aHJvdyJJbnZhbGlkIEh1ZmZtYW4gZmxhZyAiK0U7RT9pLnJlYWRIdWZmbWFuKHUsZCxnKTppLnJlYWRUaWxlcyh1LGQsZyl9ZWxzZSBpLnJlYWRUaWxlcyh1LGQsZyl9ZC5lb2ZPZmZzZXQ9ZC5wdHI7dmFyIHc7Yy5pbnB1dE9mZnNldD8odz1kLmhlYWRlckluZm8uYmxvYlNpemUrYy5pbnB1dE9mZnNldC1kLnB0cixNYXRoLmFicyh3KT49MSYmKGQuZW9mT2Zmc2V0PWMuaW5wdXRPZmZzZXQrZC5oZWFkZXJJbmZvLmJsb2JTaXplKSk6KHc9ZC5oZWFkZXJJbmZvLmJsb2JTaXplLWQucHRyLE1hdGguYWJzKHcpPj0xJiYoZC5lb2ZPZmZzZXQ9ZC5oZWFkZXJJbmZvLmJsb2JTaXplKSk7dmFyIEM9e3dpZHRoOm0ud2lkdGgsaGVpZ2h0Om0uaGVpZ2h0LHBpeGVsRGF0YTpkLnBpeGVscy5yZXN1bHRQaXhlbHMsbWluVmFsdWU6bS56TWluLG1heFZhbHVlOm0uek1heCx2YWxpZFBpeGVsQ291bnQ6bS5udW1WYWxpZFBpeGVsLGRpbUNvdW50Om0ubnVtRGltcyxkaW1TdGF0czp7bWluVmFsdWVzOm0ubWluVmFsdWVzLG1heFZhbHVlczptLm1heFZhbHVlc30sbWFza0RhdGE6ZC5waXhlbHMucmVzdWx0TWFza307aWYoZC5waXhlbHMucmVzdWx0TWFzayYmaS5pc1ZhbGlkUGl4ZWxWYWx1ZShtLmltYWdlVHlwZSxsKSl7dmFyIE49ZC5waXhlbHMucmVzdWx0TWFzaztmb3IocD0wO3A8YjtwKyspTltwXXx8KEMucGl4ZWxEYXRhW3BdPWwpO0Mubm9EYXRhVmFsdWU9bH1yZXR1cm4gZC5ub0RhdGFWYWx1ZT1sLGMucmV0dXJuRmlsZUluZm8mJihDLmZpbGVJbmZvPWkuZm9ybWF0RmlsZUluZm8oZCkpLEN9fSxnZXRCYW5kQ291bnQ6ZnVuY3Rpb24odSl7dmFyIGM9MCxsPTAscD17fTtmb3IocC5wdHI9MCxwLnBpeGVscz17fTtsPHUuYnl0ZUxlbmd0aC01ODspaS5yZWFkSGVhZGVySW5mbyh1LHApLGwrPXAuaGVhZGVySW5mby5ibG9iU2l6ZSxjKysscC5wdHI9bDtyZXR1cm4gY319O3JldHVybiBmfSgpLG49ZnVuY3Rpb24oKXt2YXIgcj1uZXcgQXJyYXlCdWZmZXIoNCksaT1uZXcgVWludDhBcnJheShyKSxzPW5ldyBVaW50MzJBcnJheShyKTtyZXR1cm4gc1swXT0xLGlbMF09PT0xfSgpLG89e2RlY29kZTpmdW5jdGlvbihyLGkpe2lmKCFuKXRocm93IkJpZyBlbmRpYW4gc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQuIjtpPWl8fHt9O3ZhciBzPWkuaW5wdXRPZmZzZXR8fDAsZj1uZXcgVWludDhBcnJheShyLHMsMTApLHU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGYpLGMsbDtpZih1LnRyaW0oKT09PSJDbnRaSW1hZ2UiKWM9dCxsPTE7ZWxzZSBpZih1LnN1YnN0cmluZygwLDUpPT09IkxlcmMyIiljPWUsbD0yO2Vsc2UgdGhyb3ciVW5leHBlY3RlZCBmaWxlIGlkZW50aWZpZXIgc3RyaW5nOiAiK3U7Zm9yKHZhciBwPTAsZD1yLmJ5dGVMZW5ndGgtMTAsbSxfPVtdLGcsYixPPXt3aWR0aDowLGhlaWdodDowLHBpeGVsczpbXSxwaXhlbFR5cGU6aS5waXhlbFR5cGUsbWFzazpudWxsLHN0YXRpc3RpY3M6W119O3M8ZDspe3ZhciBUPWMuZGVjb2RlKHIse2lucHV0T2Zmc2V0OnMsZW5jb2RlZE1hc2tEYXRhOm0sbWFza0RhdGE6YixyZXR1cm5NYXNrOnA9PT0wLHJldHVybkVuY29kZWRNYXNrOnA9PT0wLHJldHVybkZpbGVJbmZvOiEwLHBpeGVsVHlwZTppLnBpeGVsVHlwZXx8bnVsbCxub0RhdGFWYWx1ZTppLm5vRGF0YVZhbHVlfHxudWxsfSk7cz1ULmZpbGVJbmZvLmVvZk9mZnNldCxwPT09MCYmKG09VC5lbmNvZGVkTWFza0RhdGEsYj1ULm1hc2tEYXRhLE8ud2lkdGg9VC53aWR0aCxPLmhlaWdodD1ULmhlaWdodCxPLmRpbUNvdW50PVQuZGltQ291bnR8fDEsTy5waXhlbFR5cGU9VC5waXhlbFR5cGV8fFQuZmlsZUluZm8ucGl4ZWxUeXBlLE8ubWFzaz1ULm1hc2tEYXRhKSxsPjEmJlQuZmlsZUluZm8ubWFzayYmVC5maWxlSW5mby5tYXNrLm51bUJ5dGVzPjAmJl8ucHVzaChULm1hc2tEYXRhKSxwKyssTy5waXhlbHMucHVzaChULnBpeGVsRGF0YSksTy5zdGF0aXN0aWNzLnB1c2goe21pblZhbHVlOlQubWluVmFsdWUsbWF4VmFsdWU6VC5tYXhWYWx1ZSxub0RhdGFWYWx1ZTpULm5vRGF0YVZhbHVlLGRpbVN0YXRzOlQuZGltU3RhdHN9KX12YXIgRSx3LEM7aWYobD4xJiZfLmxlbmd0aD4xKXtmb3IoQz1PLndpZHRoKk8uaGVpZ2h0LE8uYmFuZE1hc2tzPV8sYj1uZXcgVWludDhBcnJheShDKSxiLnNldChfWzBdKSxFPTE7RTxfLmxlbmd0aDtFKyspZm9yKGc9X1tFXSx3PTA7dzxDO3crKyliW3ddPWJbd10mZ1t3XTtPLm1hc2tEYXRhPWJ9cmV0dXJuIE99fTt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShbXSxmdW5jdGlvbigpe3JldHVybiBvfSk6dHlwZW9mICRkPCJ1IiYmJGQuZXhwb3J0cz8kZC5leHBvcnRzPW86dGhpcy5MZXJjPW99KSgpfSk7dmFyIG9nPXt9O21lKG9nLHtkZWZhdWx0OigpPT51VX0pO2Z1bmN0aW9uIGZVKHQsZSl7aWYodC5lbmNvZGluZz09PUhSLkxFUkMpe2xldCByO3RyeXtyPVlSLmRlZmF1bHQuZGVjb2RlKHQuaGVpZ2h0bWFwKX1jYXRjaChzKXt0aHJvdyBuZXcgZ2Uocyl9aWYoci5zdGF0aXN0aWNzWzBdLm1pblZhbHVlPT09TnVtYmVyLk1BWF9WQUxVRSl0aHJvdyBuZXcgZ2UoIkludmFsaWQgdGlsZSBkYXRhIik7dC5oZWlnaHRtYXA9ci5waXhlbHNbMF0sdC53aWR0aD1yLndpZHRoLHQuaGVpZ2h0PXIuaGVpZ2h0fXQuZWxsaXBzb2lkPSQuY2xvbmUodC5lbGxpcHNvaWQpLHQucmVjdGFuZ2xlPVB0LmNsb25lKHQucmVjdGFuZ2xlKTtsZXQgbj1LUi5jb21wdXRlVmVydGljZXModCksbz1uLnZlcnRpY2VzO3JldHVybiBlLnB1c2goby5idWZmZXIpLHt2ZXJ0aWNlczpvLmJ1ZmZlcixudW1iZXJPZkF0dHJpYnV0ZXM6bi5lbmNvZGluZy5zdHJpZGUsbWluaW11bUhlaWdodDpuLm1pbmltdW1IZWlnaHQsbWF4aW11bUhlaWdodDpuLm1heGltdW1IZWlnaHQsZ3JpZFdpZHRoOnQud2lkdGgsZ3JpZEhlaWdodDp0LmhlaWdodCxib3VuZGluZ1NwaGVyZTNEOm4uYm91bmRpbmdTcGhlcmUzRCxvcmllbnRlZEJvdW5kaW5nQm94Om4ub3JpZW50ZWRCb3VuZGluZ0JveCxvY2NsdWRlZVBvaW50SW5TY2FsZWRTcGFjZTpuLm9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlLGVuY29kaW5nOm4uZW5jb2Rpbmcsd2VzdEluZGljZXNTb3V0aFRvTm9ydGg6bi53ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aCxzb3V0aEluZGljZXNFYXN0VG9XZXN0Om4uc291dGhJbmRpY2VzRWFzdFRvV2VzdCxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDpuLmVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoLG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6bi5ub3J0aEluZGljZXNXZXN0VG9FYXN0fX12YXIgWVIsdVUscmc9WigoKT0+e1p0KCk7cVIoKTtXUigpO0FuKCk7SnIoKTtZUj1tbyhYUigpLDEpO3NvKCk7dVU9UWUoZlUpfSk7ZnVuY3Rpb24gR28oKXtCLnRocm93SW5zdGFudGlhdGlvbkVycm9yKCl9ZnVuY3Rpb24gSlIodCxlKXtsZXQgbj1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkodCkscj1uZXcgQXJyYXkoZSksaT1uZXcgQXJyYXkodCkscztmb3Iocz0wO3M8dDsrK3MpaVtzXT1zLG9bc109dCplLTEtcztmb3Iocz0wO3M8ZTsrK3MpcltzXT0ocysxKSp0LTEsbltzXT0oZS1zLTEpKnQ7cmV0dXJue3dlc3RJbmRpY2VzU291dGhUb05vcnRoOm4sc291dGhJbmRpY2VzRWFzdFRvV2VzdDpvLGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOnIsbm9ydGhJbmRpY2VzV2VzdFRvRWFzdDppfX1mdW5jdGlvbiB0Mih0LGUsbixvKXtsZXQgcj0wO2ZvcihsZXQgaT0wO2k8ZS0xOysraSl7Zm9yKGxldCBzPTA7czx0LTE7KytzKXtsZXQgZj1yLHU9Zit0LGM9dSsxLGw9ZisxO25bbysrXT1mLG5bbysrXT11LG5bbysrXT1sLG5bbysrXT1sLG5bbysrXT11LG5bbysrXT1jLCsrcn0rK3J9fWZ1bmN0aW9uIFpkKHQsZSxuLG8pe2xldCByPXRbMF0saT10Lmxlbmd0aDtmb3IobGV0IHM9MTtzPGk7KytzKXtsZXQgZj10W3NdO25bbysrXT1yLG5bbysrXT1mLG5bbysrXT1lLG5bbysrXT1lLG5bbysrXT1mLG5bbysrXT1lKzEscj1mLCsrZX1yZXR1cm4gb312YXIgJFIsWlIsUVIsZTIsbjI9WigoKT0+e2F0KCk7SHQoKTskZSgpO1d0KCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoR28ucHJvdG90eXBlLHtlcnJvckV2ZW50OntnZXQ6Qi50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0sY3JlZGl0OntnZXQ6Qi50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0sdGlsaW5nU2NoZW1lOntnZXQ6Qi50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0saGFzV2F0ZXJNYXNrOntnZXQ6Qi50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0saGFzVmVydGV4Tm9ybWFsczp7Z2V0OkIudGhyb3dJbnN0YW50aWF0aW9uRXJyb3J9LGF2YWlsYWJpbGl0eTp7Z2V0OkIudGhyb3dJbnN0YW50aWF0aW9uRXJyb3J9fSk7JFI9W107R28uZ2V0UmVndWxhckdyaWRJbmRpY2VzPWZ1bmN0aW9uKHQsZSl7aWYodCplPj1NLkZPVVJfR0lHQUJZVEVTKXRocm93IG5ldyBCKCJUaGUgdG90YWwgbnVtYmVyIG9mIHZlcnRpY2VzICh3aWR0aCAqIGhlaWdodCkgbXVzdCBiZSBsZXNzIHRoYW4gNCwyOTQsOTY3LDI5Ni4iKTtsZXQgbj0kUlt0XTtoKG4pfHwoJFJbdF09bj1bXSk7bGV0IG89bltlXTtyZXR1cm4gaChvKXx8KHQqZTxNLlNJWFRZX0ZPVVJfS0lMT0JZVEVTP289bltlXT1uZXcgVWludDE2QXJyYXkoKHQtMSkqKGUtMSkqNik6bz1uW2VdPW5ldyBVaW50MzJBcnJheSgodC0xKSooZS0xKSo2KSx0Mih0LGUsbywwKSksb307WlI9W107R28uZ2V0UmVndWxhckdyaWRJbmRpY2VzQW5kRWRnZUluZGljZXM9ZnVuY3Rpb24odCxlKXtpZih0KmU+PU0uRk9VUl9HSUdBQllURVMpdGhyb3cgbmV3IEIoIlRoZSB0b3RhbCBudW1iZXIgb2YgdmVydGljZXMgKHdpZHRoICogaGVpZ2h0KSBtdXN0IGJlIGxlc3MgdGhhbiA0LDI5NCw5NjcsMjk2LiIpO2xldCBuPVpSW3RdO2gobil8fChaUlt0XT1uPVtdKTtsZXQgbz1uW2VdO2lmKCFoKG8pKXtsZXQgcj1Hby5nZXRSZWd1bGFyR3JpZEluZGljZXModCxlKSxpPUpSKHQsZSkscz1pLndlc3RJbmRpY2VzU291dGhUb05vcnRoLGY9aS5zb3V0aEluZGljZXNFYXN0VG9XZXN0LHU9aS5lYXN0SW5kaWNlc05vcnRoVG9Tb3V0aCxjPWkubm9ydGhJbmRpY2VzV2VzdFRvRWFzdDtvPW5bZV09e2luZGljZXM6cix3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpzLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6ZixlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDp1LG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6Y319cmV0dXJuIG99O1FSPVtdO0dvLmdldFJlZ3VsYXJHcmlkQW5kU2tpcnRJbmRpY2VzQW5kRWRnZUluZGljZXM9ZnVuY3Rpb24odCxlKXtpZih0KmU+PU0uRk9VUl9HSUdBQllURVMpdGhyb3cgbmV3IEIoIlRoZSB0b3RhbCBudW1iZXIgb2YgdmVydGljZXMgKHdpZHRoICogaGVpZ2h0KSBtdXN0IGJlIGxlc3MgdGhhbiA0LDI5NCw5NjcsMjk2LiIpO2xldCBuPVFSW3RdO2gobil8fChRUlt0XT1uPVtdKTtsZXQgbz1uW2VdO2lmKCFoKG8pKXtsZXQgcj10KmUsaT0odC0xKSooZS0xKSo2LHM9dCoyK2UqMixmPU1hdGgubWF4KDAscy00KSo2LHU9citzLGM9aStmLGw9SlIodCxlKSxwPWwud2VzdEluZGljZXNTb3V0aFRvTm9ydGgsZD1sLnNvdXRoSW5kaWNlc0Vhc3RUb1dlc3QsbT1sLmVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoLF89bC5ub3J0aEluZGljZXNXZXN0VG9FYXN0LGc9RHQuY3JlYXRlVHlwZWRBcnJheSh1LGMpO3QyKHQsZSxnLDApLEdvLmFkZFNraXJ0SW5kaWNlcyhwLGQsbSxfLHIsZyxpKSxvPW5bZV09e2luZGljZXM6Zyx3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpwLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6ZCxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDptLG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6XyxpbmRleENvdW50V2l0aG91dFNraXJ0czppfX1yZXR1cm4gb307R28uYWRkU2tpcnRJbmRpY2VzPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2xldCBmPXI7cz1aZCh0LGYsaSxzKSxmKz10Lmxlbmd0aCxzPVpkKGUsZixpLHMpLGYrPWUubGVuZ3RoLHM9WmQobixmLGkscyksZis9bi5sZW5ndGgsWmQobyxmLGkscyl9O0dvLmhlaWdodG1hcFRlcnJhaW5RdWFsaXR5PS4yNTtHby5nZXRFc3RpbWF0ZWRMZXZlbFplcm9HZW9tZXRyaWNFcnJvckZvckFIZWlnaHRtYXA9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0Lm1heGltdW1SYWRpdXMqMipNYXRoLlBJKkdvLmhlaWdodG1hcFRlcnJhaW5RdWFsaXR5LyhlKm4pfTtHby5wcm90b3R5cGUucmVxdWVzdFRpbGVHZW9tZXRyeT1CLnRocm93SW5zdGFudGlhdGlvbkVycm9yO0dvLnByb3RvdHlwZS5nZXRMZXZlbE1heGltdW1HZW9tZXRyaWNFcnJvcj1CLnRocm93SW5zdGFudGlhdGlvbkVycm9yO0dvLnByb3RvdHlwZS5nZXRUaWxlRGF0YUF2YWlsYWJsZT1CLnRocm93SW5zdGFudGlhdGlvbkVycm9yO0dvLnByb3RvdHlwZS5sb2FkVGlsZURhdGFBdmFpbGFiaWxpdHk9Qi50aHJvd0luc3RhbnRpYXRpb25FcnJvcjtlMj1Hb30pO3ZhciBzZz17fTttZShzZyx7ZGVmYXVsdDooKT0+bVV9KTtmdW5jdGlvbiBkVSh0LGUpe2xldCBuPXQucXVhbnRpemVkVmVydGljZXMsbz1uLmxlbmd0aC8zLHI9dC5vY3RFbmNvZGVkTm9ybWFscyxpPXQud2VzdEluZGljZXMubGVuZ3RoK3QuZWFzdEluZGljZXMubGVuZ3RoK3Quc291dGhJbmRpY2VzLmxlbmd0aCt0Lm5vcnRoSW5kaWNlcy5sZW5ndGgscz10LmluY2x1ZGVXZWJNZXJjYXRvclQsZj10LmV4YWdnZXJhdGlvbix1PXQuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQsbD1mIT09MSxwPVB0LmNsb25lKHQucmVjdGFuZ2xlKSxkPXAud2VzdCxtPXAuc291dGgsXz1wLmVhc3QsZz1wLm5vcnRoLGI9JC5jbG9uZSh0LmVsbGlwc29pZCksTz10Lm1pbmltdW1IZWlnaHQsVD10Lm1heGltdW1IZWlnaHQsRT10LnJlbGF0aXZlVG9DZW50ZXIsdz1nci5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZShFLGIpLEM9c3QuaW52ZXJzZVRyYW5zZm9ybWF0aW9uKHcsbmV3IHN0KSxOLEk7cyYmKE49ZW8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShtKSxJPTEvKGVvLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoZyktTikpO2xldCBMPW4uc3ViYXJyYXkoMCxvKSx2PW4uc3ViYXJyYXkobywyKm8pLEQ9bi5zdWJhcnJheShvKjIsMypvKSxVPWgociksQT1uZXcgQXJyYXkobyksUz1uZXcgQXJyYXkobyksUD1uZXcgQXJyYXkobyksRj1zP25ldyBBcnJheShvKTpbXSxqPWw/bmV3IEFycmF5KG8pOltdLEg9bFU7SC54PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxILnk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLEguej1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IGs9cFU7ay54PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxrLnk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGsuej1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bGV0IEs9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFg9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLFI9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFE9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2ZvcihsZXQgJHQ9MDskdDxvOysrJHQpe2xldCBWZT1MWyR0XSxkbj12WyR0XSxzbj1WZS9pZyxtbj1kbi9pZyxmbz1NLmxlcnAoTyxULERbJHRdL2lnKTskbi5sb25naXR1ZGU9TS5sZXJwKGQsXyxzbiksJG4ubGF0aXR1ZGU9TS5sZXJwKG0sZyxtbiksJG4uaGVpZ2h0PWZvLEs9TWF0aC5taW4oJG4ubG9uZ2l0dWRlLEspLFg9TWF0aC5tYXgoJG4ubG9uZ2l0dWRlLFgpLFI9TWF0aC5taW4oJG4ubGF0aXR1ZGUsUiksUT1NYXRoLm1heCgkbi5sYXRpdHVkZSxRKTtsZXQgSG49Yi5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbigkbik7QVskdF09bmV3IG50KHNuLG1uKSxTWyR0XT1mbyxQWyR0XT1IbixzJiYoRlskdF09KGVvLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoJG4ubGF0aXR1ZGUpLU4pKkkpLGwmJihqWyR0XT1iLmdlb2RldGljU3VyZmFjZU5vcm1hbChIbikpLHN0Lm11bHRpcGx5QnlQb2ludChDLEhuLGZ1KSxhLm1pbmltdW1CeUNvbXBvbmVudChmdSxILEgpLGEubWF4aW11bUJ5Q29tcG9uZW50KGZ1LGssayl9bGV0IGZ0PXRtKHQud2VzdEluZGljZXMsZnVuY3Rpb24oJHQsVmUpe3JldHVybiBBWyR0XS55LUFbVmVdLnl9KSxwdD10bSh0LmVhc3RJbmRpY2VzLGZ1bmN0aW9uKCR0LFZlKXtyZXR1cm4gQVtWZV0ueS1BWyR0XS55fSksZ3Q9dG0odC5zb3V0aEluZGljZXMsZnVuY3Rpb24oJHQsVmUpe3JldHVybiBBW1ZlXS54LUFbJHRdLnh9KSxpdD10bSh0Lm5vcnRoSW5kaWNlcyxmdW5jdGlvbigkdCxWZSl7cmV0dXJuIEFbJHRdLngtQVtWZV0ueH0pLE50O088MCYmKE50PW5ldyBDcyhiKS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludFBvc3NpYmx5VW5kZXJFbGxpcHNvaWQoRSxQLE8pKTtsZXQgT3Q9TztPdD1NYXRoLm1pbihPdCxRZCh0Lndlc3RJbmRpY2VzLHQud2VzdFNraXJ0SGVpZ2h0LFMsQSxwLGIsQyxILGspKSxPdD1NYXRoLm1pbihPdCxRZCh0LnNvdXRoSW5kaWNlcyx0LnNvdXRoU2tpcnRIZWlnaHQsUyxBLHAsYixDLEgsaykpLE90PU1hdGgubWluKE90LFFkKHQuZWFzdEluZGljZXMsdC5lYXN0U2tpcnRIZWlnaHQsUyxBLHAsYixDLEgsaykpLE90PU1hdGgubWluKE90LFFkKHQubm9ydGhJbmRpY2VzLHQubm9ydGhTa2lydEhlaWdodCxTLEEscCxiLEMsSCxrKSk7bGV0IHh0PW5ldyBEaShILGssRSksX3Q9bmV3IHhzKEUseHQsT3QsVCx3LFUscyxsLGYsdSksZHQ9X3Quc3RyaWRlLFZ0PW8qZHQraSpkdCx6dD1uZXcgRmxvYXQzMkFycmF5KFZ0KSxoZT0wO2ZvcihsZXQgJHQ9MDskdDxvOysrJHQpe2lmKFUpe2xldCBWZT0kdCoyO2thLng9cltWZV0sa2EueT1yW1ZlKzFdfWhlPV90LmVuY29kZSh6dCxoZSxQWyR0XSxBWyR0XSxTWyR0XSxrYSxGWyR0XSxqWyR0XSl9bGV0IGNlPU1hdGgubWF4KDAsKGktNCkqMikscGU9dC5pbmRpY2VzLmxlbmd0aCtjZSozLGZlPUR0LmNyZWF0ZVR5cGVkQXJyYXkobytpLHBlKTtmZS5zZXQodC5pbmRpY2VzLDApO2xldCBRdD0xZS00LEp0PShYLUspKlF0LHhlPShRLVIpKlF0LEFlPS1KdCxFZT0wLHVuPUp0LFVlPTAsYmU9MCxsbj14ZSxwbj0wLFRuPS14ZSxvZT1vKmR0O3JldHVybiBKZCh6dCxvZSxmdCxfdCxTLEEscixiLHAsdC53ZXN0U2tpcnRIZWlnaHQsTixJLEFlLEVlKSxvZSs9dC53ZXN0SW5kaWNlcy5sZW5ndGgqZHQsSmQoenQsb2UsZ3QsX3QsUyxBLHIsYixwLHQuc291dGhTa2lydEhlaWdodCxOLEkscG4sVG4pLG9lKz10LnNvdXRoSW5kaWNlcy5sZW5ndGgqZHQsSmQoenQsb2UscHQsX3QsUyxBLHIsYixwLHQuZWFzdFNraXJ0SGVpZ2h0LE4sSSx1bixVZSksb2UrPXQuZWFzdEluZGljZXMubGVuZ3RoKmR0LEpkKHp0LG9lLGl0LF90LFMsQSxyLGIscCx0Lm5vcnRoU2tpcnRIZWlnaHQsTixJLGJlLGxuKSxlMi5hZGRTa2lydEluZGljZXMoZnQsZ3QscHQsaXQsbyxmZSx0LmluZGljZXMubGVuZ3RoKSxlLnB1c2goenQuYnVmZmVyLGZlLmJ1ZmZlcikse3ZlcnRpY2VzOnp0LmJ1ZmZlcixpbmRpY2VzOmZlLmJ1ZmZlcix3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpmdCxzb3V0aEluZGljZXNFYXN0VG9XZXN0Omd0LGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOnB0LG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6aXQsdmVydGV4U3RyaWRlOmR0LGNlbnRlcjpFLG1pbmltdW1IZWlnaHQ6TyxtYXhpbXVtSGVpZ2h0OlQsb2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2U6TnQsZW5jb2Rpbmc6X3QsaW5kZXhDb3VudFdpdGhvdXRTa2lydHM6dC5pbmRpY2VzLmxlbmd0aH19ZnVuY3Rpb24gUWQodCxlLG4sbyxyLGkscyxmLHUpe2xldCBjPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxsPXIubm9ydGgscD1yLnNvdXRoLGQ9ci5lYXN0LG09ci53ZXN0O2Q8bSYmKGQrPU0uVFdPX1BJKTtsZXQgXz10Lmxlbmd0aDtmb3IobGV0IGc9MDtnPF87KytnKXtsZXQgYj10W2ddLE89bltiXSxUPW9bYl07JG4ubG9uZ2l0dWRlPU0ubGVycChtLGQsVC54KSwkbi5sYXRpdHVkZT1NLmxlcnAocCxsLFQueSksJG4uaGVpZ2h0PU8tZTtsZXQgRT1pLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKCRuLGZ1KTtzdC5tdWx0aXBseUJ5UG9pbnQocyxFLEUpLGEubWluaW11bUJ5Q29tcG9uZW50KEUsZixmKSxhLm1heGltdW1CeUNvbXBvbmVudChFLHUsdSksYz1NYXRoLm1pbihjLCRuLmhlaWdodCl9cmV0dXJuIGN9ZnVuY3Rpb24gSmQodCxlLG4sbyxyLGkscyxmLHUsYyxsLHAsZCxtKXtsZXQgXz1oKHMpLGc9dS5ub3J0aCxiPXUuc291dGgsTz11LmVhc3QsVD11Lndlc3Q7TzxUJiYoTys9TS5UV09fUEkpO2xldCBFPW4ubGVuZ3RoO2ZvcihsZXQgdz0wO3c8RTsrK3cpe2xldCBDPW5bd10sTj1yW0NdLEk9aVtDXTskbi5sb25naXR1ZGU9TS5sZXJwKFQsTyxJLngpK2QsJG4ubGF0aXR1ZGU9TS5sZXJwKGIsZyxJLnkpK20sJG4uaGVpZ2h0PU4tYztsZXQgTD1mLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKCRuLGZ1KTtpZihfKXtsZXQgVT1DKjI7a2EueD1zW1VdLGthLnk9c1tVKzFdfWxldCB2O28uaGFzV2ViTWVyY2F0b3JUJiYodj0oZW8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZSgkbi5sYXRpdHVkZSktbCkqcCk7bGV0IEQ7by5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzJiYoRD1mLmdlb2RldGljU3VyZmFjZU5vcm1hbChMKSksZT1vLmVuY29kZSh0LGUsTCxJLCRuLmhlaWdodCxrYSx2LEQpfX1mdW5jdGlvbiB0bSh0LGUpe2xldCBuO3JldHVybiB0eXBlb2YgdC5zbGljZT09ImZ1bmN0aW9uIiYmKG49dC5zbGljZSgpLHR5cGVvZiBuLnNvcnQhPSJmdW5jdGlvbiImJihuPXZvaWQgMCkpLGgobil8fChuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKSxuLnNvcnQoZSksbn12YXIgaWcsZnUsbFUscFUsJG4sa2EsbVUsY2c9WigoKT0+e1BmKCk7emUoKTtVdCgpO3ZlKCk7YXQoKTtadCgpO3N1KCk7JGUoKTtXdCgpO2tuKCk7QW4oKTtjdSgpO24yKCk7JHMoKTtpYygpO3NvKCk7aWc9MzI3NjcsZnU9bmV3IGEsbFU9bmV3IGEscFU9bmV3IGEsJG49bmV3IGN0LGthPW5ldyBudDttVT1RZShkVSl9KTtmdW5jdGlvbiBoVSh0LGUpe3JldHVybiBNLmVxdWFsc0Vwc2lsb24odC5sYXRpdHVkZSxlLmxhdGl0dWRlLE0uRVBTSUxPTjEwKSYmTS5lcXVhbHNFcHNpbG9uKHQubG9uZ2l0dWRlLGUubG9uZ2l0dWRlLE0uRVBTSUxPTjEwKX1mdW5jdGlvbiBnVSh0LGUsbixvKXtlPUNuKGUsYS5lcXVhbHNFcHNpbG9uKTtsZXQgcj1lLmxlbmd0aDtpZihyPDIpcmV0dXJuO2xldCBpPWgobykscz1oKG4pLGY9bmV3IEFycmF5KHIpLHU9bmV3IEFycmF5KHIpLGM9bmV3IEFycmF5KHIpLGw9ZVswXTtmWzBdPWw7bGV0IHA9dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhsLF9VKTtzJiYocC5oZWlnaHQ9blswXSksdVswXT1wLmhlaWdodCxpP2NbMF09b1swXTpjWzBdPTA7bGV0IGQ9dVswXSxtPWNbMF0sXz1kPT09bSxnPTE7Zm9yKGxldCBiPTE7YjxyOysrYil7bGV0IE89ZVtiXSxUPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoTyx5VSk7cyYmKFQuaGVpZ2h0PW5bYl0pLF89XyYmVC5oZWlnaHQ9PT0wLGhVKHAsVCk/cC5oZWlnaHQ8VC5oZWlnaHQmJih1W2ctMV09VC5oZWlnaHQpOihmW2ddPU8sdVtnXT1ULmhlaWdodCxpP2NbZ109b1tiXTpjW2ddPTAsXz1fJiZ1W2ddPT09Y1tnXSxjdC5jbG9uZShULHApLCsrZyl9aWYoIShffHxnPDIpKXJldHVybiBmLmxlbmd0aD1nLHUubGVuZ3RoPWcsYy5sZW5ndGg9Zyx7cG9zaXRpb25zOmYsdG9wSGVpZ2h0czp1LGJvdHRvbUhlaWdodHM6Y319dmFyIG8yLF9VLHlVLEFVLGJVLHdVLGVtLGFnPVooKCk9PntqcigpO1V0KCk7dmUoKTthdCgpO1d0KCk7Z2EoKTtvMj17fTtfVT1uZXcgY3QseVU9bmV3IGN0O0FVPW5ldyBBcnJheSgyKSxiVT1uZXcgQXJyYXkoMiksd1U9e3Bvc2l0aW9uczp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsZWxsaXBzb2lkOnZvaWQgMH07bzIuY29tcHV0ZVBvc2l0aW9ucz1mdW5jdGlvbih0LGUsbixvLHIsaSl7bGV0IHM9Z1UodCxlLG4sbyk7aWYoIWgocykpcmV0dXJuO2U9cy5wb3NpdGlvbnMsbj1zLnRvcEhlaWdodHMsbz1zLmJvdHRvbUhlaWdodHM7bGV0IGY9ZS5sZW5ndGgsdT1mLTIsYyxsLHA9TS5jaG9yZExlbmd0aChyLHQubWF4aW11bVJhZGl1cyksZD13VTtpZihkLm1pbkRpc3RhbmNlPXAsZC5lbGxpcHNvaWQ9dCxpKXtsZXQgbT0wLF87Zm9yKF89MDtfPGYtMTtfKyspbSs9eW4ubnVtYmVyT2ZQb2ludHMoZVtfXSxlW18rMV0scCkrMTtjPW5ldyBGbG9hdDY0QXJyYXkobSozKSxsPW5ldyBGbG9hdDY0QXJyYXkobSozKTtsZXQgZz1BVSxiPWJVO2QucG9zaXRpb25zPWcsZC5oZWlnaHQ9YjtsZXQgTz0wO2ZvcihfPTA7XzxmLTE7XysrKXtnWzBdPWVbX10sZ1sxXT1lW18rMV0sYlswXT1uW19dLGJbMV09bltfKzFdO2xldCBUPXluLmdlbmVyYXRlQXJjKGQpO2Muc2V0KFQsTyksYlswXT1vW19dLGJbMV09b1tfKzFdLGwuc2V0KHluLmdlbmVyYXRlQXJjKGQpLE8pLE8rPVQubGVuZ3RofX1lbHNlIGQucG9zaXRpb25zPWUsZC5oZWlnaHQ9bixjPW5ldyBGbG9hdDY0QXJyYXkoeW4uZ2VuZXJhdGVBcmMoZCkpLGQuaGVpZ2h0PW8sbD1uZXcgRmxvYXQ2NEFycmF5KHluLmdlbmVyYXRlQXJjKGQpKTtyZXR1cm57Ym90dG9tUG9zaXRpb25zOmwsdG9wUG9zaXRpb25zOmMsbnVtQ29ybmVyczp1fX07ZW09bzJ9KTtmdW5jdGlvbiBSYyh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5wb3NpdGlvbnMsbj10Lm1heGltdW1IZWlnaHRzLG89dC5taW5pbXVtSGVpZ2h0cztpZighaChlKSl0aHJvdyBuZXcgQigib3B0aW9ucy5wb3NpdGlvbnMgaXMgcmVxdWlyZWQuIik7aWYoaChuKSYmbi5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgQigib3B0aW9ucy5wb3NpdGlvbnMgYW5kIG9wdGlvbnMubWF4aW11bUhlaWdodHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aC4iKTtpZihoKG8pJiZvLmxlbmd0aCE9PWUubGVuZ3RoKXRocm93IG5ldyBCKCJvcHRpb25zLnBvc2l0aW9ucyBhbmQgb3B0aW9ucy5taW5pbXVtSGVpZ2h0cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoLiIpO2xldCByPXgodC52ZXJ0ZXhGb3JtYXQsbHQuREVGQVVMVCksaT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLHM9eCh0LmVsbGlwc29pZCwkLldHUzg0KTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9taW5pbXVtSGVpZ2h0cz1vLHRoaXMuX21heGltdW1IZWlnaHRzPW4sdGhpcy5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKHIpLHRoaXMuX2dyYW51bGFyaXR5PWksdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUocyksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlV2FsbEdlb21ldHJ5IjtsZXQgZj0xK2UubGVuZ3RoKmEucGFja2VkTGVuZ3RoKzI7aChvKSYmKGYrPW8ubGVuZ3RoKSxoKG4pJiYoZis9bi5sZW5ndGgpLHRoaXMucGFja2VkTGVuZ3RoPWYrJC5wYWNrZWRMZW5ndGgrbHQucGFja2VkTGVuZ3RoKzF9dmFyIGZnLG5tLFRVLHIyLE9VLEVVLFJVLGkyLHMyLHV1LHVnLGMyPVooKCk9PntQZSgpO1V0KCk7RGUoKTtJdCgpO2F0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpOyRlKCk7V3QoKTt0bigpO1JvKCk7YWcoKTtmZz1uZXcgYSxubT1uZXcgYSxUVT1uZXcgYSxyMj1uZXcgYSxPVT1uZXcgYSxFVT1uZXcgYSxSVT1uZXcgYTtSYy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgQigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgQigiYXJyYXkgaXMgcmVxdWlyZWQiKTtuPXgobiwwKTtsZXQgbyxyPXQuX3Bvc2l0aW9ucyxpPXIubGVuZ3RoO2ZvcihlW24rK109aSxvPTA7bzxpOysrbyxuKz1hLnBhY2tlZExlbmd0aClhLnBhY2socltvXSxlLG4pO2xldCBzPXQuX21pbmltdW1IZWlnaHRzO2lmKGk9aChzKT9zLmxlbmd0aDowLGVbbisrXT1pLGgocykpZm9yKG89MDtvPGk7KytvKWVbbisrXT1zW29dO2xldCBmPXQuX21heGltdW1IZWlnaHRzO2lmKGk9aChmKT9mLmxlbmd0aDowLGVbbisrXT1pLGgoZikpZm9yKG89MDtvPGk7KytvKWVbbisrXT1mW29dO3JldHVybiAkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsbHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1sdC5wYWNrZWRMZW5ndGgsZVtuXT10Ll9ncmFudWxhcml0eSxlfTtpMj0kLmNsb25lKCQuVU5JVF9TUEhFUkUpLHMyPW5ldyBsdCx1dT17cG9zaXRpb25zOnZvaWQgMCxtaW5pbXVtSGVpZ2h0czp2b2lkIDAsbWF4aW11bUhlaWdodHM6dm9pZCAwLGVsbGlwc29pZDppMix2ZXJ0ZXhGb3JtYXQ6czIsZ3JhbnVsYXJpdHk6dm9pZCAwfTtSYy51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBCKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvLHI9dFtlKytdLGk9bmV3IEFycmF5KHIpO2ZvcihvPTA7bzxyOysrbyxlKz1hLnBhY2tlZExlbmd0aClpW29dPWEudW5wYWNrKHQsZSk7cj10W2UrK107bGV0IHM7aWYocj4wKWZvcihzPW5ldyBBcnJheShyKSxvPTA7bzxyOysrbylzW29dPXRbZSsrXTtyPXRbZSsrXTtsZXQgZjtpZihyPjApZm9yKGY9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKWZbb109dFtlKytdO2xldCB1PSQudW5wYWNrKHQsZSxpMik7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IGM9bHQudW5wYWNrKHQsZSxzMik7ZSs9bHQucGFja2VkTGVuZ3RoO2xldCBsPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1pLG4uX21pbmltdW1IZWlnaHRzPXMsbi5fbWF4aW11bUhlaWdodHM9ZixuLl9lbGxpcHNvaWQ9JC5jbG9uZSh1LG4uX2VsbGlwc29pZCksbi5fdmVydGV4Rm9ybWF0PWx0LmNsb25lKGMsbi5fdmVydGV4Rm9ybWF0KSxuLl9ncmFudWxhcml0eT1sLG4pOih1dS5wb3NpdGlvbnM9aSx1dS5taW5pbXVtSGVpZ2h0cz1zLHV1Lm1heGltdW1IZWlnaHRzPWYsdXUuZ3JhbnVsYXJpdHk9bCxuZXcgUmModXUpKX07UmMuZnJvbUNvbnN0YW50SGVpZ2h0cz1mdW5jdGlvbih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5wb3NpdGlvbnM7aWYoIWgoZSkpdGhyb3cgbmV3IEIoIm9wdGlvbnMucG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO2xldCBuLG8scj10Lm1pbmltdW1IZWlnaHQsaT10Lm1heGltdW1IZWlnaHQscz1oKHIpLGY9aChpKTtpZihzfHxmKXtsZXQgYz1lLmxlbmd0aDtuPXM/bmV3IEFycmF5KGMpOnZvaWQgMCxvPWY/bmV3IEFycmF5KGMpOnZvaWQgMDtmb3IobGV0IGw9MDtsPGM7KytsKXMmJihuW2xdPXIpLGYmJihvW2xdPWkpfWxldCB1PXtwb3NpdGlvbnM6ZSxtYXhpbXVtSGVpZ2h0czpvLG1pbmltdW1IZWlnaHRzOm4sZWxsaXBzb2lkOnQuZWxsaXBzb2lkLHZlcnRleEZvcm1hdDp0LnZlcnRleEZvcm1hdH07cmV0dXJuIG5ldyBSYyh1KX07UmMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fcG9zaXRpb25zLG49dC5fbWluaW11bUhlaWdodHMsbz10Ll9tYXhpbXVtSGVpZ2h0cyxyPXQuX3ZlcnRleEZvcm1hdCxpPXQuX2dyYW51bGFyaXR5LHM9dC5fZWxsaXBzb2lkLGY9ZW0uY29tcHV0ZVBvc2l0aW9ucyhzLGUsbyxuLGksITApO2lmKCFoKGYpKXJldHVybjtsZXQgdT1mLmJvdHRvbVBvc2l0aW9ucyxjPWYudG9wUG9zaXRpb25zLGw9Zi5udW1Db3JuZXJzLHA9Yy5sZW5ndGgsZD1wKjIsbT1yLnBvc2l0aW9uP25ldyBGbG9hdDY0QXJyYXkoZCk6dm9pZCAwLF89ci5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShkKTp2b2lkIDAsZz1yLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShkKTp2b2lkIDAsYj1yLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGQpOnZvaWQgMCxPPXIuc3Q/bmV3IEZsb2F0MzJBcnJheShkLzMqMik6dm9pZCAwLFQ9MCxFPTAsdz0wLEM9MCxOPTAsST1SVSxMPUVVLHY9T1UsRD0hMDtwLz0zO2xldCBVLEE9MCxTPTEvKHAtbC0xKTtmb3IoVT0wO1U8cDsrK1Upe2xldCBrPVUqMyxLPWEuZnJvbUFycmF5KGMsayxmZyksWD1hLmZyb21BcnJheSh1LGssbm0pO2lmKHIucG9zaXRpb24mJihtW1QrK109WC54LG1bVCsrXT1YLnksbVtUKytdPVgueixtW1QrK109Sy54LG1bVCsrXT1LLnksbVtUKytdPUsueiksci5zdCYmKE9bTisrXT1BLE9bTisrXT0wLE9bTisrXT1BLE9bTisrXT0xKSxyLm5vcm1hbHx8ci50YW5nZW50fHxyLmJpdGFuZ2VudCl7bGV0IFI9YS5jbG9uZShhLlpFUk8scjIpLFE9YS5zdWJ0cmFjdChLLHMuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEssbm0pLG5tKTtpZihVKzE8cCYmKFI9YS5mcm9tQXJyYXkoYyxrKzMscjIpKSxEKXtsZXQgZnQ9YS5zdWJ0cmFjdChSLEssVFUpLHB0PWEuc3VidHJhY3QoUSxLLGZnKTtJPWEubm9ybWFsaXplKGEuY3Jvc3MocHQsZnQsSSksSSksRD0hMX1hLmVxdWFsc0Vwc2lsb24oSyxSLE0uRVBTSUxPTjEwKT9EPSEwOihBKz1TLHIudGFuZ2VudCYmKEw9YS5ub3JtYWxpemUoYS5zdWJ0cmFjdChSLEssTCksTCkpLHIuYml0YW5nZW50JiYodj1hLm5vcm1hbGl6ZShhLmNyb3NzKEksTCx2KSx2KSkpLHIubm9ybWFsJiYoX1tFKytdPUkueCxfW0UrK109SS55LF9bRSsrXT1JLnosX1tFKytdPUkueCxfW0UrK109SS55LF9bRSsrXT1JLnopLHIudGFuZ2VudCYmKGdbQysrXT1MLngsZ1tDKytdPUwueSxnW0MrK109TC56LGdbQysrXT1MLngsZ1tDKytdPUwueSxnW0MrK109TC56KSxyLmJpdGFuZ2VudCYmKGJbdysrXT12LngsYlt3KytdPXYueSxiW3crK109di56LGJbdysrXT12LngsYlt3KytdPXYueSxiW3crK109di56KX19bGV0IFA9bmV3IHJlO3IucG9zaXRpb24mJihQLnBvc2l0aW9uPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pKSxyLm5vcm1hbCYmKFAubm9ybWFsPW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpffSkpLHIudGFuZ2VudCYmKFAudGFuZ2VudD1uZXcgcnQoe2NvbXBvbmVudERhdGF0eXBlOm90LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Z30pKSxyLmJpdGFuZ2VudCYmKFAuYml0YW5nZW50PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpifSkpLHIuc3QmJihQLnN0PW5ldyBydCh7Y29tcG9uZW50RGF0YXR5cGU6b3QuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpPfSkpO2xldCBGPWQvMztkLT02KihsKzEpO2xldCBqPUR0LmNyZWF0ZVR5cGVkQXJyYXkoRixkKSxIPTA7Zm9yKFU9MDtVPEYtMjtVKz0yKXtsZXQgaz1VLEs9VSsyLFg9YS5mcm9tQXJyYXkobSxrKjMsZmcpLFI9YS5mcm9tQXJyYXkobSxLKjMsbm0pO2lmKGEuZXF1YWxzRXBzaWxvbihYLFIsTS5FUFNJTE9OMTApKWNvbnRpbnVlO2xldCBRPVUrMSxmdD1VKzM7altIKytdPVEsaltIKytdPWssaltIKytdPWZ0LGpbSCsrXT1mdCxqW0grK109ayxqW0grK109S31yZXR1cm4gbmV3IEZ0KHthdHRyaWJ1dGVzOlAsaW5kaWNlczpqLHByaW1pdGl2ZVR5cGU6THQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOm5ldyB5dC5mcm9tVmVydGljZXMobSl9KX07dWc9UmN9KTt2YXIgbGc9e307bWUobGcse2RlZmF1bHQ6KCk9PkNVfSk7ZnVuY3Rpb24gU1UodCxlKXtyZXR1cm4gaChlKSYmKHQ9dWcudW5wYWNrKHQsZSkpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksdWcuY3JlYXRlR2VvbWV0cnkodCl9dmFyIENVLHBnPVooKCk9PnthdCgpO1p0KCk7YzIoKTtDVT1TVX0pO2Z1bmN0aW9uIFNjKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucyxuPXQubWF4aW11bUhlaWdodHMsbz10Lm1pbmltdW1IZWlnaHRzO2lmKCFoKGUpKXRocm93IG5ldyBCKCJvcHRpb25zLnBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTtpZihoKG4pJiZuLmxlbmd0aCE9PWUubGVuZ3RoKXRocm93IG5ldyBCKCJvcHRpb25zLnBvc2l0aW9ucyBhbmQgb3B0aW9ucy5tYXhpbXVtSGVpZ2h0cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoLiIpO2lmKGgobykmJm8ubGVuZ3RoIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEIoIm9wdGlvbnMucG9zaXRpb25zIGFuZCBvcHRpb25zLm1pbmltdW1IZWlnaHRzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGguIik7bGV0IHI9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxpPXgodC5lbGxpcHNvaWQsJC5XR1M4NCk7dGhpcy5fcG9zaXRpb25zPWUsdGhpcy5fbWluaW11bUhlaWdodHM9byx0aGlzLl9tYXhpbXVtSGVpZ2h0cz1uLHRoaXMuX2dyYW51bGFyaXR5PXIsdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoaSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlV2FsbE91dGxpbmVHZW9tZXRyeSI7bGV0IHM9MStlLmxlbmd0aCphLnBhY2tlZExlbmd0aCsyO2gobykmJihzKz1vLmxlbmd0aCksaChuKSYmKHMrPW4ubGVuZ3RoKSx0aGlzLnBhY2tlZExlbmd0aD1zKyQucGFja2VkTGVuZ3RoKzF9dmFyIGEyLGYyLHUyLGx1LGRnLGwyPVooKCk9PntQZSgpO1V0KCk7RGUoKTtJdCgpO2F0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpOyRlKCk7V3QoKTt0bigpO2FnKCk7YTI9bmV3IGEsZjI9bmV3IGE7U2MucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoInZhbHVlIGlzIHJlcXVpcmVkIik7aWYoIWgoZSkpdGhyb3cgbmV3IEIoImFycmF5IGlzIHJlcXVpcmVkIik7bj14KG4sMCk7bGV0IG8scj10Ll9wb3NpdGlvbnMsaT1yLmxlbmd0aDtmb3IoZVtuKytdPWksbz0wO288aTsrK28sbis9YS5wYWNrZWRMZW5ndGgpYS5wYWNrKHJbb10sZSxuKTtsZXQgcz10Ll9taW5pbXVtSGVpZ2h0cztpZihpPWgocyk/cy5sZW5ndGg6MCxlW24rK109aSxoKHMpKWZvcihvPTA7bzxpOysrbyllW24rK109c1tvXTtsZXQgZj10Ll9tYXhpbXVtSGVpZ2h0cztpZihpPWgoZik/Zi5sZW5ndGg6MCxlW24rK109aSxoKGYpKWZvcihvPTA7bzxpOysrbyllW24rK109ZltvXTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGVbbl09dC5fZ3JhbnVsYXJpdHksZX07dTI9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxsdT17cG9zaXRpb25zOnZvaWQgMCxtaW5pbXVtSGVpZ2h0czp2b2lkIDAsbWF4aW11bUhlaWdodHM6dm9pZCAwLGVsbGlwc29pZDp1MixncmFudWxhcml0eTp2b2lkIDB9O1NjLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEIoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG8scj10W2UrK10saT1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPWEucGFja2VkTGVuZ3RoKWlbb109YS51bnBhY2sodCxlKTtyPXRbZSsrXTtsZXQgcztpZihyPjApZm9yKHM9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKXNbb109dFtlKytdO3I9dFtlKytdO2xldCBmO2lmKHI+MClmb3IoZj1uZXcgQXJyYXkociksbz0wO288cjsrK28pZltvXT10W2UrK107bGV0IHU9JC51bnBhY2sodCxlLHUyKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgYz10W2VdO3JldHVybiBoKG4pPyhuLl9wb3NpdGlvbnM9aSxuLl9taW5pbXVtSGVpZ2h0cz1zLG4uX21heGltdW1IZWlnaHRzPWYsbi5fZWxsaXBzb2lkPSQuY2xvbmUodSxuLl9lbGxpcHNvaWQpLG4uX2dyYW51bGFyaXR5PWMsbik6KGx1LnBvc2l0aW9ucz1pLGx1Lm1pbmltdW1IZWlnaHRzPXMsbHUubWF4aW11bUhlaWdodHM9ZixsdS5ncmFudWxhcml0eT1jLG5ldyBTYyhsdSkpfTtTYy5mcm9tQ29uc3RhbnRIZWlnaHRzPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucztpZighaChlKSl0aHJvdyBuZXcgQigib3B0aW9ucy5wb3NpdGlvbnMgaXMgcmVxdWlyZWQuIik7bGV0IG4sbyxyPXQubWluaW11bUhlaWdodCxpPXQubWF4aW11bUhlaWdodCxzPWgociksZj1oKGkpO2lmKHN8fGYpe2xldCBjPWUubGVuZ3RoO249cz9uZXcgQXJyYXkoYyk6dm9pZCAwLG89Zj9uZXcgQXJyYXkoYyk6dm9pZCAwO2ZvcihsZXQgbD0wO2w8YzsrK2wpcyYmKG5bbF09ciksZiYmKG9bbF09aSl9bGV0IHU9e3Bvc2l0aW9uczplLG1heGltdW1IZWlnaHRzOm8sbWluaW11bUhlaWdodHM6bixlbGxpcHNvaWQ6dC5lbGxpcHNvaWR9O3JldHVybiBuZXcgU2ModSl9O1NjLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPXQuX21pbmltdW1IZWlnaHRzLG89dC5fbWF4aW11bUhlaWdodHMscj10Ll9ncmFudWxhcml0eSxpPXQuX2VsbGlwc29pZCxzPWVtLmNvbXB1dGVQb3NpdGlvbnMoaSxlLG8sbixyLCExKTtpZighaChzKSlyZXR1cm47bGV0IGY9cy5ib3R0b21Qb3NpdGlvbnMsdT1zLnRvcFBvc2l0aW9ucyxjPXUubGVuZ3RoLGw9YyoyLHA9bmV3IEZsb2F0NjRBcnJheShsKSxkPTA7Yy89MztsZXQgbTtmb3IobT0wO208YzsrK20pe2xldCBUPW0qMyxFPWEuZnJvbUFycmF5KHUsVCxhMiksdz1hLmZyb21BcnJheShmLFQsZjIpO3BbZCsrXT13LngscFtkKytdPXcueSxwW2QrK109dy56LHBbZCsrXT1FLngscFtkKytdPUUueSxwW2QrK109RS56fWxldCBfPW5ldyByZSh7cG9zaXRpb246bmV3IHJ0KHtjb21wb25lbnREYXRhdHlwZTpvdC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpwfSl9KSxnPWwvMztsPTIqZy00K2c7bGV0IGI9RHQuY3JlYXRlVHlwZWRBcnJheShnLGwpLE89MDtmb3IobT0wO208Zy0yO20rPTIpe2xldCBUPW0sRT1tKzIsdz1hLmZyb21BcnJheShwLFQqMyxhMiksQz1hLmZyb21BcnJheShwLEUqMyxmMik7aWYoYS5lcXVhbHNFcHNpbG9uKHcsQyxNLkVQU0lMT04xMCkpY29udGludWU7bGV0IE49bSsxLEk9bSszO2JbTysrXT1OLGJbTysrXT1ULGJbTysrXT1OLGJbTysrXT1JLGJbTysrXT1ULGJbTysrXT1FfXJldHVybiBiW08rK109Zy0yLGJbTysrXT1nLTEsbmV3IEZ0KHthdHRyaWJ1dGVzOl8saW5kaWNlczpiLHByaW1pdGl2ZVR5cGU6THQuTElORVMsYm91bmRpbmdTcGhlcmU6bmV3IHl0LmZyb21WZXJ0aWNlcyhwKX0pfTtkZz1TY30pO3ZhciBtZz17fTttZShtZyx7ZGVmYXVsdDooKT0+UFV9KTtmdW5jdGlvbiB4VSh0LGUpe3JldHVybiBoKGUpJiYodD1kZy51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxkZy5jcmVhdGVHZW9tZXRyeSh0KX12YXIgUFUsaGc9WigoKT0+e2F0KCk7WnQoKTtsMigpO1BVPXhVfSk7dmFyIGdnPVVuKChwdSx5Zyk9Pnt2YXIgQnQ9QnR8fHt9O0J0LnNjb3BlPXt9O0J0LmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKHQpe3ZhciBlPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGU8dC5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6dFtlKytdfTp7ZG9uZTohMH19fTtCdC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKHQpe3JldHVybntuZXh0OkJ0LmFycmF5SXRlcmF0b3JJbXBsKHQpfX07QnQubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiBTeW1ib2w8InUiJiZTeW1ib2wuaXRlcmF0b3ImJnRbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gZT9lLmNhbGwodCk6QnQuYXJyYXlJdGVyYXRvcih0KX07QnQuQVNTVU1FX0VTNT0hMTtCdC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTtCdC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTtCdC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExO0J0LklTT0xBVEVfUE9MWUZJTExTPSExO0J0LkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7QnQuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7QnQuZ2V0R2xvYmFsPWZ1bmN0aW9uKHQpe3Q9W3R5cGVvZiBnbG9iYWxUaGlzPT0ib2JqZWN0IiYmZ2xvYmFsVGhpcyx0LHR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ3aW5kb3csdHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmLHR5cGVvZiBnbG9iYWw9PSJvYmplY3QiJiZnbG9iYWxdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7KytlKXt2YXIgbj10W2VdO2lmKG4mJm4uTWF0aD09TWF0aClyZXR1cm4gbn10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpfTtCdC5nbG9iYWw9QnQuZ2V0R2xvYmFsKHB1KTtCdC5kZWZpbmVQcm9wZXJ0eT1CdC5BU1NVTUVfRVM1fHx0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD09QXJyYXkucHJvdG90eXBlfHx0PT1PYmplY3QucHJvdG90eXBlfHwodFtlXT1uLnZhbHVlKSx0fTtCdC5JU19TWU1CT0xfTkFUSVZFPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woIngiKT09InN5bWJvbCI7QnQuVFJVU1RfRVM2X1BPTFlGSUxMUz0hQnQuSVNPTEFURV9QT0xZRklMTFN8fEJ0LklTX1NZTUJPTF9OQVRJVkU7QnQucG9seWZpbGxzPXt9O0J0LnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTtCdC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7QnQucG9seWZpbGw9ZnVuY3Rpb24odCxlLG4sbyl7ZSYmKEJ0LklTT0xBVEVfUE9MWUZJTExTP0J0LnBvbHlmaWxsSXNvbGF0ZWQodCxlLG4sbyk6QnQucG9seWZpbGxVbmlzb2xhdGVkKHQsZSxuLG8pKX07QnQucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKHQsZSxuLG8pe2ZvcihuPUJ0Lmdsb2JhbCx0PXQuc3BsaXQoIi4iKSxvPTA7bzx0Lmxlbmd0aC0xO28rKyl7dmFyIHI9dFtvXTtpZighKHIgaW4gbikpcmV0dXJuO249bltyXX10PXRbdC5sZW5ndGgtMV0sbz1uW3RdLGU9ZShvKSxlIT1vJiZlIT1udWxsJiZCdC5kZWZpbmVQcm9wZXJ0eShuLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSl9O0J0LnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24odCxlLG4sbyl7dmFyIHI9dC5zcGxpdCgiLiIpO3Q9ci5sZW5ndGg9PT0xLG89clswXSxvPSF0JiZvIGluIEJ0LnBvbHlmaWxscz9CdC5wb2x5ZmlsbHM6QnQuZ2xvYmFsO2Zvcih2YXIgaT0wO2k8ci5sZW5ndGgtMTtpKyspe3ZhciBzPXJbaV07aWYoIShzIGluIG8pKXJldHVybjtvPW9bc119cj1yW3IubGVuZ3RoLTFdLG49QnQuSVNfU1lNQk9MX05BVElWRSYmbj09PSJlczYiP29bcl06bnVsbCxlPWUobiksZSE9bnVsbCYmKHQ/QnQuZGVmaW5lUHJvcGVydHkoQnQucG9seWZpbGxzLHIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSk6ZSE9PW4mJihCdC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcl09PT12b2lkIDAmJihuPTFlOSpNYXRoLnJhbmRvbSgpPj4+MCxCdC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcl09QnQuSVNfU1lNQk9MX05BVElWRT9CdC5nbG9iYWwuU3ltYm9sKHIpOkJ0LlBPTFlGSUxMX1BSRUZJWCtuKyIkIityKSxCdC5kZWZpbmVQcm9wZXJ0eShvLEJ0LnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtyXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KSkpfTtCdC5wb2x5ZmlsbCgiUHJvbWlzZSIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3RoaXMuYmF0Y2hfPW51bGx9ZnVuY3Rpb24gbihzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIHI/czpuZXcgcihmdW5jdGlvbihmLHUpe2Yocyl9KX1pZih0JiYoIShCdC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFfHxCdC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTiYmdHlwZW9mIEJ0Lmdsb2JhbC5Qcm9taXNlUmVqZWN0aW9uRXZlbnQ+InUiKXx8IUJ0Lmdsb2JhbC5Qcm9taXNlfHxCdC5nbG9iYWwuUHJvbWlzZS50b1N0cmluZygpLmluZGV4T2YoIltuYXRpdmUgY29kZV0iKT09PS0xKSlyZXR1cm4gdDtlLnByb3RvdHlwZS5hc3luY0V4ZWN1dGU9ZnVuY3Rpb24ocyl7aWYodGhpcy5iYXRjaF89PW51bGwpe3RoaXMuYmF0Y2hfPVtdO3ZhciBmPXRoaXM7dGhpcy5hc3luY0V4ZWN1dGVGdW5jdGlvbihmdW5jdGlvbigpe2YuZXhlY3V0ZUJhdGNoXygpfSl9dGhpcy5iYXRjaF8ucHVzaChzKX07dmFyIG89QnQuZ2xvYmFsLnNldFRpbWVvdXQ7ZS5wcm90b3R5cGUuYXN5bmNFeGVjdXRlRnVuY3Rpb249ZnVuY3Rpb24ocyl7byhzLDApfSxlLnByb3RvdHlwZS5leGVjdXRlQmF0Y2hfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmJhdGNoXyYmdGhpcy5iYXRjaF8ubGVuZ3RoOyl7dmFyIHM9dGhpcy5iYXRjaF87dGhpcy5iYXRjaF89W107Zm9yKHZhciBmPTA7ZjxzLmxlbmd0aDsrK2Ype3ZhciB1PXNbZl07c1tmXT1udWxsO3RyeXt1KCl9Y2F0Y2goYyl7dGhpcy5hc3luY1Rocm93XyhjKX19fXRoaXMuYmF0Y2hfPW51bGx9LGUucHJvdG90eXBlLmFzeW5jVGhyb3dfPWZ1bmN0aW9uKHMpe3RoaXMuYXN5bmNFeGVjdXRlRnVuY3Rpb24oZnVuY3Rpb24oKXt0aHJvdyBzfSl9O3ZhciByPWZ1bmN0aW9uKHMpe3RoaXMuc3RhdGVfPTAsdGhpcy5yZXN1bHRfPXZvaWQgMCx0aGlzLm9uU2V0dGxlZENhbGxiYWNrc189W10sdGhpcy5pc1JlamVjdGlvbkhhbmRsZWRfPSExO3ZhciBmPXRoaXMuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF8oKTt0cnl7cyhmLnJlc29sdmUsZi5yZWplY3QpfWNhdGNoKHUpe2YucmVqZWN0KHUpfX07ci5wcm90b3R5cGUuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGMpe3JldHVybiBmdW5jdGlvbihsKXt1fHwodT0hMCxjLmNhbGwoZixsKSl9fXZhciBmPXRoaXMsdT0hMTtyZXR1cm57cmVzb2x2ZTpzKHRoaXMucmVzb2x2ZVRvXykscmVqZWN0OnModGhpcy5yZWplY3RfKX19LHIucHJvdG90eXBlLnJlc29sdmVUb189ZnVuY3Rpb24ocyl7aWYocz09PXRoaXMpdGhpcy5yZWplY3RfKG5ldyBUeXBlRXJyb3IoIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7ZWxzZSBpZihzIGluc3RhbmNlb2Ygcil0aGlzLnNldHRsZVNhbWVBc1Byb21pc2VfKHMpO2Vsc2V7dDpzd2l0Y2godHlwZW9mIHMpe2Nhc2Uib2JqZWN0Ijp2YXIgZj1zIT1udWxsO2JyZWFrIHQ7Y2FzZSJmdW5jdGlvbiI6Zj0hMDticmVhayB0O2RlZmF1bHQ6Zj0hMX1mP3RoaXMucmVzb2x2ZVRvTm9uUHJvbWlzZU9ial8ocyk6dGhpcy5mdWxmaWxsXyhzKX19LHIucHJvdG90eXBlLnJlc29sdmVUb05vblByb21pc2VPYmpfPWZ1bmN0aW9uKHMpe3ZhciBmPXZvaWQgMDt0cnl7Zj1zLnRoZW59Y2F0Y2godSl7dGhpcy5yZWplY3RfKHUpO3JldHVybn10eXBlb2YgZj09ImZ1bmN0aW9uIj90aGlzLnNldHRsZVNhbWVBc1RoZW5hYmxlXyhmLHMpOnRoaXMuZnVsZmlsbF8ocyl9LHIucHJvdG90eXBlLnJlamVjdF89ZnVuY3Rpb24ocyl7dGhpcy5zZXR0bGVfKDIscyl9LHIucHJvdG90eXBlLmZ1bGZpbGxfPWZ1bmN0aW9uKHMpe3RoaXMuc2V0dGxlXygxLHMpfSxyLnByb3RvdHlwZS5zZXR0bGVfPWZ1bmN0aW9uKHMsZil7aWYodGhpcy5zdGF0ZV8hPTApdGhyb3cgRXJyb3IoIkNhbm5vdCBzZXR0bGUoIitzKyIsICIrZisiKTogUHJvbWlzZSBhbHJlYWR5IHNldHRsZWQgaW4gc3RhdGUiK3RoaXMuc3RhdGVfKTt0aGlzLnN0YXRlXz1zLHRoaXMucmVzdWx0Xz1mLHRoaXMuc3RhdGVfPT09MiYmdGhpcy5zY2hlZHVsZVVuaGFuZGxlZFJlamVjdGlvbkNoZWNrXygpLHRoaXMuZXhlY3V0ZU9uU2V0dGxlZENhbGxiYWNrc18oKX0sci5wcm90b3R5cGUuc2NoZWR1bGVVbmhhbmRsZWRSZWplY3Rpb25DaGVja189ZnVuY3Rpb24oKXt2YXIgcz10aGlzO28oZnVuY3Rpb24oKXtpZihzLm5vdGlmeVVuaGFuZGxlZFJlamVjdGlvbl8oKSl7dmFyIGY9QnQuZ2xvYmFsLmNvbnNvbGU7dHlwZW9mIGY8InUiJiZmLmVycm9yKHMucmVzdWx0Xyl9fSwxKX0sci5wcm90b3R5cGUubm90aWZ5VW5oYW5kbGVkUmVqZWN0aW9uXz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSZWplY3Rpb25IYW5kbGVkXylyZXR1cm4hMTt2YXIgcz1CdC5nbG9iYWwuQ3VzdG9tRXZlbnQsZj1CdC5nbG9iYWwuRXZlbnQsdT1CdC5nbG9iYWwuZGlzcGF0Y2hFdmVudDtyZXR1cm4gdHlwZW9mIHU+InUiPyEwOih0eXBlb2Ygcz09ImZ1bmN0aW9uIj9zPW5ldyBzKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6dHlwZW9mIGY9PSJmdW5jdGlvbiI/cz1uZXcgZigidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOihzPUJ0Lmdsb2JhbC5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxzLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxzKSkscy5wcm9taXNlPXRoaXMscy5yZWFzb249dGhpcy5yZXN1bHRfLHUocykpfSxyLnByb3RvdHlwZS5leGVjdXRlT25TZXR0bGVkQ2FsbGJhY2tzXz1mdW5jdGlvbigpe2lmKHRoaXMub25TZXR0bGVkQ2FsbGJhY2tzXyE9bnVsbCl7Zm9yKHZhciBzPTA7czx0aGlzLm9uU2V0dGxlZENhbGxiYWNrc18ubGVuZ3RoOysrcylpLmFzeW5jRXhlY3V0ZSh0aGlzLm9uU2V0dGxlZENhbGxiYWNrc19bc10pO3RoaXMub25TZXR0bGVkQ2FsbGJhY2tzXz1udWxsfX07dmFyIGk9bmV3IGU7cmV0dXJuIHIucHJvdG90eXBlLnNldHRsZVNhbWVBc1Byb21pc2VfPWZ1bmN0aW9uKHMpe3ZhciBmPXRoaXMuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF8oKTtzLmNhbGxXaGVuU2V0dGxlZF8oZi5yZXNvbHZlLGYucmVqZWN0KX0sci5wcm90b3R5cGUuc2V0dGxlU2FtZUFzVGhlbmFibGVfPWZ1bmN0aW9uKHMsZil7dmFyIHU9dGhpcy5jcmVhdGVSZXNvbHZlQW5kUmVqZWN0XygpO3RyeXtzLmNhbGwoZix1LnJlc29sdmUsdS5yZWplY3QpfWNhdGNoKGMpe3UucmVqZWN0KGMpfX0sci5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihzLGYpe2Z1bmN0aW9uIHUoZCxtKXtyZXR1cm4gdHlwZW9mIGQ9PSJmdW5jdGlvbiI/ZnVuY3Rpb24oXyl7dHJ5e2MoZChfKSl9Y2F0Y2goZyl7bChnKX19Om19dmFyIGMsbCxwPW5ldyByKGZ1bmN0aW9uKGQsbSl7Yz1kLGw9bX0pO3JldHVybiB0aGlzLmNhbGxXaGVuU2V0dGxlZF8odShzLGMpLHUoZixsKSkscH0sci5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAscyl9LHIucHJvdG90eXBlLmNhbGxXaGVuU2V0dGxlZF89ZnVuY3Rpb24ocyxmKXtmdW5jdGlvbiB1KCl7c3dpdGNoKGMuc3RhdGVfKXtjYXNlIDE6cyhjLnJlc3VsdF8pO2JyZWFrO2Nhc2UgMjpmKGMucmVzdWx0Xyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5leHBlY3RlZCBzdGF0ZTogIitjLnN0YXRlXyl9fXZhciBjPXRoaXM7dGhpcy5vblNldHRsZWRDYWxsYmFja3NfPT1udWxsP2kuYXN5bmNFeGVjdXRlKHUpOnRoaXMub25TZXR0bGVkQ2FsbGJhY2tzXy5wdXNoKHUpLHRoaXMuaXNSZWplY3Rpb25IYW5kbGVkXz0hMH0sci5yZXNvbHZlPW4sci5yZWplY3Q9ZnVuY3Rpb24ocyl7cmV0dXJuIG5ldyByKGZ1bmN0aW9uKGYsdSl7dShzKX0pfSxyLnJhY2U9ZnVuY3Rpb24ocyl7cmV0dXJuIG5ldyByKGZ1bmN0aW9uKGYsdSl7Zm9yKHZhciBjPUJ0Lm1ha2VJdGVyYXRvcihzKSxsPWMubmV4dCgpOyFsLmRvbmU7bD1jLm5leHQoKSluKGwudmFsdWUpLmNhbGxXaGVuU2V0dGxlZF8oZix1KX0pfSxyLmFsbD1mdW5jdGlvbihzKXt2YXIgZj1CdC5tYWtlSXRlcmF0b3IocyksdT1mLm5leHQoKTtyZXR1cm4gdS5kb25lP24oW10pOm5ldyByKGZ1bmN0aW9uKGMsbCl7ZnVuY3Rpb24gcChfKXtyZXR1cm4gZnVuY3Rpb24oZyl7ZFtfXT1nLG0tLSxtPT0wJiZjKGQpfX12YXIgZD1bXSxtPTA7ZG8gZC5wdXNoKHZvaWQgMCksbSsrLG4odS52YWx1ZSkuY2FsbFdoZW5TZXR0bGVkXyhwKGQubGVuZ3RoLTEpLGwpLHU9Zi5uZXh0KCk7d2hpbGUoIXUuZG9uZSl9KX0scn0sImVzNiIsImVzMyIpO0J0Lm93bnM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9O0J0LmFzc2lnbj1CdC5UUlVTVF9FUzZfUE9MWUZJTExTJiZ0eXBlb2YgT2JqZWN0LmFzc2lnbj09ImZ1bmN0aW9uIj9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIG89YXJndW1lbnRzW25dO2lmKG8pZm9yKHZhciByIGluIG8pQnQub3ducyhvLHIpJiYodFtyXT1vW3JdKX1yZXR1cm4gdH07QnQucG9seWZpbGwoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKHQpe3JldHVybiB0fHxCdC5hc3NpZ259LCJlczYiLCJlczMiKTtCdC5jaGVja1N0cmluZ0FyZ3M9ZnVuY3Rpb24odCxlLG4pe2lmKHQ9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlICd0aGlzJyB2YWx1ZSBmb3IgU3RyaW5nLnByb3RvdHlwZS4iK24rIiBtdXN0IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpO2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApdGhyb3cgbmV3IFR5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgdG8gU3RyaW5nLnByb3RvdHlwZS4iK24rIiBtdXN0IG5vdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiIpO3JldHVybiB0KyIifTtCdC5wb2x5ZmlsbCgiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoIixmdW5jdGlvbih0KXtyZXR1cm4gdHx8ZnVuY3Rpb24oZSxuKXt2YXIgbz1CdC5jaGVja1N0cmluZ0FyZ3ModGhpcyxlLCJzdGFydHNXaXRoIik7ZSs9IiI7dmFyIHI9by5sZW5ndGgsaT1lLmxlbmd0aDtuPU1hdGgubWF4KDAsTWF0aC5taW4obnwwLG8ubGVuZ3RoKSk7Zm9yKHZhciBzPTA7czxpJiZuPHI7KWlmKG9bbisrXSE9ZVtzKytdKXJldHVybiExO3JldHVybiBzPj1pfX0sImVzNiIsImVzMyIpO0J0LnBvbHlmaWxsKCJBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXtyZXR1cm4gbj1OdW1iZXIobiksbj09PTEvMHx8bj09PS0xLzA/bjpufDB9cmV0dXJuIHR8fGZ1bmN0aW9uKG4sbyxyKXt2YXIgaT10aGlzLmxlbmd0aDtpZihuPWUobiksbz1lKG8pLHI9cj09PXZvaWQgMD9pOmUociksbj0wPm4/TWF0aC5tYXgoaStuLDApOk1hdGgubWluKG4saSksbz0wPm8/TWF0aC5tYXgoaStvLDApOk1hdGgubWluKG8saSkscj0wPnI/TWF0aC5tYXgoaStyLDApOk1hdGgubWluKHIsaSksbjxvKWZvcig7bzxyOylvIGluIHRoaXM/dGhpc1tuKytdPXRoaXNbbysrXTooZGVsZXRlIHRoaXNbbisrXSxvKyspO2Vsc2UgZm9yKHI9TWF0aC5taW4ocixpK28tbiksbis9ci1vO3I+bzspLS1yIGluIHRoaXM/dGhpc1stLW5dPXRoaXNbcl06ZGVsZXRlIHRoaXNbLS1uXTtyZXR1cm4gdGhpc319LCJlczYiLCJlczMiKTtCdC50eXBlZEFycmF5Q29weVdpdGhpbj1mdW5jdGlvbih0KXtyZXR1cm4gdHx8QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW59O0J0LnBvbHlmaWxsKCJJbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLEJ0LnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtCdC5wb2x5ZmlsbCgiVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsQnQudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO0J0LnBvbHlmaWxsKCJVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsQnQudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO0J0LnBvbHlmaWxsKCJJbnQxNkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixCdC50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7QnQucG9seWZpbGwoIlVpbnQxNkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixCdC50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7QnQucG9seWZpbGwoIkludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLEJ0LnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtCdC5wb2x5ZmlsbCgiVWludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLEJ0LnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtCdC5wb2x5ZmlsbCgiRmxvYXQzMkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixCdC50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7QnQucG9seWZpbGwoIkZsb2F0NjRBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsQnQudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO3ZhciBfZz1mdW5jdGlvbigpe3ZhciB0PXR5cGVvZiBkb2N1bWVudDwidSImJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQ/ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM6dm9pZCAwO3JldHVybiB0eXBlb2YgX19maWxlbmFtZTwidSImJih0PXR8fF9fZmlsZW5hbWUpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oeil7cmV0dXJuIFIubG9jYXRlRmlsZT9SLmxvY2F0ZUZpbGUoeixfdCk6X3Qren1mdW5jdGlvbiBvKHosVyxldCl7dmFyIE10PVcrZXQ7Zm9yKGV0PVc7eltldF0mJiEoZXQ+PU10KTspKytldDtpZigxNjxldC1XJiZ6LmJ1ZmZlciYmQWUpcmV0dXJuIEFlLmRlY29kZSh6LnN1YmFycmF5KFcsZXQpKTtmb3IoTXQ9IiI7VzxldDspe3ZhciBsZT16W1crK107aWYobGUmMTI4KXt2YXIgd2U9eltXKytdJjYzO2lmKChsZSYyMjQpPT0xOTIpTXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGxlJjMxKTw8Nnx3ZSk7ZWxzZXt2YXIgVGk9eltXKytdJjYzO2xlPShsZSYyNDApPT0yMjQ/KGxlJjE1KTw8MTJ8d2U8PDZ8VGk6KGxlJjcpPDwxOHx3ZTw8MTJ8VGk8PDZ8eltXKytdJjYzLDY1NTM2PmxlP010Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGxlKToobGUtPTY1NTM2LE10Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fGxlPj4xMCw1NjMyMHxsZSYxMDIzKSl9fWVsc2UgTXQrPVN0cmluZy5mcm9tQ2hhckNvZGUobGUpfXJldHVybiBNdH1mdW5jdGlvbiByKHosVyl7cmV0dXJuIHo/byh1bix6LFcpOiIifWZ1bmN0aW9uIGkoKXt2YXIgej1KdC5idWZmZXI7Ui5IRUFQOD1FZT1uZXcgSW50OEFycmF5KHopLFIuSEVBUDE2PW5ldyBJbnQxNkFycmF5KHopLFIuSEVBUDMyPVVlPW5ldyBJbnQzMkFycmF5KHopLFIuSEVBUFU4PXVuPW5ldyBVaW50OEFycmF5KHopLFIuSEVBUFUxNj1uZXcgVWludDE2QXJyYXkoeiksUi5IRUFQVTMyPWJlPW5ldyBVaW50MzJBcnJheSh6KSxSLkhFQVBGMzI9bmV3IEZsb2F0MzJBcnJheSh6KSxSLkhFQVBGNjQ9bmV3IEZsb2F0NjRBcnJheSh6KX1mdW5jdGlvbiBzKHope3Rocm93IFIub25BYm9ydCYmUi5vbkFib3J0KHopLHo9IkFib3J0ZWQoIit6KyIpIixmZSh6KSx4ZT0hMCx6PW5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IoeisiLiBCdWlsZCB3aXRoIC1zQVNTRVJUSU9OUyBmb3IgbW9yZSBpbmZvLiIpLGZ0KHopLHp9ZnVuY3Rpb24gZih6KXt0cnl7aWYoej09c24mJlF0KXJldHVybiBuZXcgVWludDhBcnJheShRdCk7aWYoaGUpcmV0dXJuIGhlKHopO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1jYXRjaChXKXtzKFcpfX1mdW5jdGlvbiB1KCl7aWYoIVF0JiYoTnR8fE90KSl7aWYodHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiYhc24uc3RhcnRzV2l0aCgiZmlsZTovLyIpKXJldHVybiBmZXRjaChzbix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oeil7aWYoIXoub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitzbisiJyI7cmV0dXJuIHouYXJyYXlCdWZmZXIoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIGYoc24pfSk7aWYoY2UpcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHosVyl7Y2Uoc24sZnVuY3Rpb24oZXQpe3oobmV3IFVpbnQ4QXJyYXkoZXQpKX0sVyl9KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBmKHNuKX0pfWZ1bmN0aW9uIGMoeil7Zm9yKDswPHoubGVuZ3RoOyl6LnNoaWZ0KCkoUil9ZnVuY3Rpb24gbCh6KXt0aGlzLmV4Y1B0cj16LHRoaXMucHRyPXotMjQsdGhpcy5zZXRfdHlwZT1mdW5jdGlvbihXKXtiZVt0aGlzLnB0cis0Pj4yXT1XfSx0aGlzLmdldF90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIGJlW3RoaXMucHRyKzQ+PjJdfSx0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKFcpe2JlW3RoaXMucHRyKzg+PjJdPVd9LHRoaXMuZ2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gYmVbdGhpcy5wdHIrOD4+Ml19LHRoaXMuc2V0X3JlZmNvdW50PWZ1bmN0aW9uKFcpe1VlW3RoaXMucHRyPj4yXT1XfSx0aGlzLnNldF9jYXVnaHQ9ZnVuY3Rpb24oVyl7RWVbdGhpcy5wdHIrMTI+PjBdPVc/MTowfSx0aGlzLmdldF9jYXVnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gRWVbdGhpcy5wdHIrMTI+PjBdIT0wfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihXKXtFZVt0aGlzLnB0cisxMz4+MF09Vz8xOjB9LHRoaXMuZ2V0X3JldGhyb3duPWZ1bmN0aW9uKCl7cmV0dXJuIEVlW3RoaXMucHRyKzEzPj4wXSE9MH0sdGhpcy5pbml0PWZ1bmN0aW9uKFcsZXQpe3RoaXMuc2V0X2FkanVzdGVkX3B0cigwKSx0aGlzLnNldF90eXBlKFcpLHRoaXMuc2V0X2Rlc3RydWN0b3IoZXQpLHRoaXMuc2V0X3JlZmNvdW50KDApLHRoaXMuc2V0X2NhdWdodCghMSksdGhpcy5zZXRfcmV0aHJvd24oITEpfSx0aGlzLmFkZF9yZWY9ZnVuY3Rpb24oKXtVZVt0aGlzLnB0cj4+Ml0rPTF9LHRoaXMucmVsZWFzZV9yZWY9ZnVuY3Rpb24oKXt2YXIgVz1VZVt0aGlzLnB0cj4+Ml07cmV0dXJuIFVlW3RoaXMucHRyPj4yXT1XLTEsVz09PTF9LHRoaXMuc2V0X2FkanVzdGVkX3B0cj1mdW5jdGlvbihXKXtiZVt0aGlzLnB0cisxNj4+Ml09V30sdGhpcy5nZXRfYWRqdXN0ZWRfcHRyPWZ1bmN0aW9uKCl7cmV0dXJuIGJlW3RoaXMucHRyKzE2Pj4yXX0sdGhpcy5nZXRfZXhjZXB0aW9uX3B0cj1mdW5jdGlvbigpe2lmKEZsKHRoaXMuZ2V0X3R5cGUoKSkpcmV0dXJuIGJlW3RoaXMuZXhjUHRyPj4yXTt2YXIgVz10aGlzLmdldF9hZGp1c3RlZF9wdHIoKTtyZXR1cm4gVyE9PTA/Vzp0aGlzLmV4Y1B0cn19ZnVuY3Rpb24gcCgpe2Z1bmN0aW9uIHooKXtpZighcmYmJihyZj0hMCxSLmNhbGxlZFJ1bj0hMCwheGUpKXtpZihvZT0hMCxjKHBuKSxRKFIpLFIub25SdW50aW1lSW5pdGlhbGl6ZWQmJlIub25SdW50aW1lSW5pdGlhbGl6ZWQoKSxSLnBvc3RSdW4pZm9yKHR5cGVvZiBSLnBvc3RSdW49PSJmdW5jdGlvbiImJihSLnBvc3RSdW49W1IucG9zdFJ1bl0pO1IucG9zdFJ1bi5sZW5ndGg7KVRuLnVuc2hpZnQoUi5wb3N0UnVuLnNoaWZ0KCkpO2MoVG4pfX1pZighKDA8JHQpKXtpZihSLnByZVJ1bilmb3IodHlwZW9mIFIucHJlUnVuPT0iZnVuY3Rpb24iJiYoUi5wcmVSdW49W1IucHJlUnVuXSk7Ui5wcmVSdW4ubGVuZ3RoOylsbi51bnNoaWZ0KFIucHJlUnVuLnNoaWZ0KCkpO2MobG4pLDA8JHR8fChSLnNldFN0YXR1cz8oUi5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe1Iuc2V0U3RhdHVzKCIiKX0sMSkseigpfSwxKSk6eigpKX19ZnVuY3Rpb24gZCgpe31mdW5jdGlvbiBtKHope3JldHVybih6fHxkKS5fX2NhY2hlX199ZnVuY3Rpb24gXyh6LFcpe3ZhciBldD1tKFcpLE10PWV0W3pdO3JldHVybiBNdHx8KE10PU9iamVjdC5jcmVhdGUoKFd8fGQpLnByb3RvdHlwZSksTXQucHRyPXosZXRbel09TXQpfWZ1bmN0aW9uIGcoeil7aWYodHlwZW9mIHo9PSJzdHJpbmciKXtmb3IodmFyIFc9MCxldD0wO2V0PHoubGVuZ3RoOysrZXQpe3ZhciBNdD16LmNoYXJDb2RlQXQoZXQpOzEyNz49TXQ/VysrOjIwNDc+PU10P1crPTI6NTUyOTY8PU10JiY1NzM0Mz49TXQ/KFcrPTQsKytldCk6Vys9M31pZihXPUFycmF5KFcrMSksZXQ9MCxNdD1XLmxlbmd0aCwwPE10KXtNdD1ldCtNdC0xO2Zvcih2YXIgbGU9MDtsZTx6Lmxlbmd0aDsrK2xlKXt2YXIgd2U9ei5jaGFyQ29kZUF0KGxlKTtpZig1NTI5Njw9d2UmJjU3MzQzPj13ZSl7dmFyIFRpPXouY2hhckNvZGVBdCgrK2xlKTt3ZT02NTUzNisoKHdlJjEwMjMpPDwxMCl8VGkmMTAyM31pZigxMjc+PXdlKXtpZihldD49TXQpYnJlYWs7V1tldCsrXT13ZX1lbHNle2lmKDIwNDc+PXdlKXtpZihldCsxPj1NdClicmVhaztXW2V0KytdPTE5Mnx3ZT4+Nn1lbHNle2lmKDY1NTM1Pj13ZSl7aWYoZXQrMj49TXQpYnJlYWs7V1tldCsrXT0yMjR8d2U+PjEyfWVsc2V7aWYoZXQrMz49TXQpYnJlYWs7V1tldCsrXT0yNDB8d2U+PjE4LFdbZXQrK109MTI4fHdlPj4xMiY2M31XW2V0KytdPTEyOHx3ZT4+NiY2M31XW2V0KytdPTEyOHx3ZSY2M319V1tldF09MH1yZXR1cm4gej1SZS5hbGxvYyhXLEVlKSxSZS5jb3B5KFcsRWUseiksen1yZXR1cm4gen1mdW5jdGlvbiBiKHope2lmKHR5cGVvZiB6PT0ib2JqZWN0Iil7dmFyIFc9UmUuYWxsb2MoeixFZSk7cmV0dXJuIFJlLmNvcHkoeixFZSxXKSxXfXJldHVybiB6fWZ1bmN0aW9uIE8oKXt0aHJvdyJjYW5ub3QgY29uc3RydWN0IGEgVm9pZFB0ciwgbm8gY29uc3RydWN0b3IgaW4gSURMIn1mdW5jdGlvbiBUKCl7dGhpcy5wdHI9Y24oKSxtKFQpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIEUoKXt0aGlzLnB0cj11bygpLG0oRSlbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gdygpe3RoaXMucHRyPWxvKCksbSh3KVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBDKCl7dGhpcy5wdHI9TmUoKSxtKEMpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIE4oKXt0aGlzLnB0cj1OcygpLG0oTilbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gSSgpe3RoaXMucHRyPW5vKCksbShJKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBMKCl7dGhpcy5wdHI9SWMoKSxtKEwpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIHYoKXt0aGlzLnB0cj1ycigpLG0odilbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gRCgpe3RoaXMucHRyPURjKCksbShEKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBVKCl7dGhyb3ciY2Fubm90IGNvbnN0cnVjdCBhIFN0YXR1cywgbm8gY29uc3RydWN0b3IgaW4gSURMIn1mdW5jdGlvbiBBKCl7dGhpcy5wdHI9RXUoKSxtKEEpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIFMoKXt0aGlzLnB0cj1MYygpLG0oUylbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gUCgpe3RoaXMucHRyPVhhKCksbShQKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBGKCl7dGhpcy5wdHI9QmMoKSxtKEYpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIGooKXt0aGlzLnB0cj1JdSgpLG0oailbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gSCgpe3RoaXMucHRyPUx1KCksbShIKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBrKCl7dGhpcy5wdHI9SmkoKSxtKGspW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIEsoKXt0aGlzLnB0cj1HdSgpLG0oSylbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gWCgpe3RoaXMucHRyPUphKCksbShYKVt0aGlzLnB0cl09dGhpc31lPWU9PT12b2lkIDA/e306ZTt2YXIgUj10eXBlb2YgZTwidSI/ZTp7fSxRLGZ0O1IucmVhZHk9bmV3IFByb21pc2UoZnVuY3Rpb24oeixXKXtRPXosZnQ9V30pO3ZhciBwdD0hMSxndD0hMTtSLm9uUnVudGltZUluaXRpYWxpemVkPWZ1bmN0aW9uKCl7cHQ9ITAsZ3QmJnR5cGVvZiBSLm9uTW9kdWxlTG9hZGVkPT0iZnVuY3Rpb24iJiZSLm9uTW9kdWxlTG9hZGVkKFIpfSxSLm9uTW9kdWxlUGFyc2VkPWZ1bmN0aW9uKCl7Z3Q9ITAscHQmJnR5cGVvZiBSLm9uTW9kdWxlTG9hZGVkPT0iZnVuY3Rpb24iJiZSLm9uTW9kdWxlTG9hZGVkKFIpfSxSLmlzVmVyc2lvblN1cHBvcnRlZD1mdW5jdGlvbih6KXtyZXR1cm4gdHlwZW9mIHohPSJzdHJpbmciPyExOih6PXouc3BsaXQoIi4iKSwyPnoubGVuZ3RofHwzPHoubGVuZ3RoPyExOnpbMF09PTEmJjA8PXpbMV0mJjU+PXpbMV0/ITA6ISh6WzBdIT0wfHwxMDx6WzFdKSl9O3ZhciBpdD1PYmplY3QuYXNzaWduKHt9LFIpLE50PXR5cGVvZiB3aW5kb3c9PSJvYmplY3QiLE90PXR5cGVvZiBpbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLHh0PXR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM9PSJvYmplY3QiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlPT0ic3RyaW5nIixfdD0iIjtpZih4dCl7dmFyIGR0PURvKCJmcyIpLFZ0PURvKCJwYXRoIik7X3Q9T3Q/VnQuZGlybmFtZShfdCkrIi8iOl9fZGlybmFtZSsiLyI7dmFyIHp0PWZ1bmN0aW9uKHosVyl7cmV0dXJuIHo9ei5zdGFydHNXaXRoKCJmaWxlOi8vIik/bmV3IFVSTCh6KTpWdC5ub3JtYWxpemUoeiksZHQucmVhZEZpbGVTeW5jKHosVz92b2lkIDA6InV0ZjgiKX0saGU9ZnVuY3Rpb24oeil7cmV0dXJuIHo9enQoeiwhMCksei5idWZmZXJ8fCh6PW5ldyBVaW50OEFycmF5KHopKSx6fSxjZT1mdW5jdGlvbih6LFcsZXQpe3o9ei5zdGFydHNXaXRoKCJmaWxlOi8vIik/bmV3IFVSTCh6KTpWdC5ub3JtYWxpemUoeiksZHQucmVhZEZpbGUoeixmdW5jdGlvbihNdCxsZSl7TXQ/ZXQoTXQpOlcobGUuYnVmZmVyKX0pfTsxPHByb2Nlc3MuYXJndi5sZW5ndGgmJnByb2Nlc3MuYXJndlsxXS5yZXBsYWNlKC9cXC9nLCIvIikscHJvY2Vzcy5hcmd2LnNsaWNlKDIpLFIuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9fWVsc2UoTnR8fE90KSYmKE90P190PXNlbGYubG9jYXRpb24uaHJlZjp0eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0JiYoX3Q9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmMpLHQmJihfdD10KSxfdD1fdC5pbmRleE9mKCJibG9iOiIpIT09MD9fdC5zdWJzdHIoMCxfdC5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpOiIiLHp0PWZ1bmN0aW9uKHope3ZhciBXPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gVy5vcGVuKCJHRVQiLHosITEpLFcuc2VuZChudWxsKSxXLnJlc3BvbnNlVGV4dH0sT3QmJihoZT1mdW5jdGlvbih6KXt2YXIgVz1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIFcub3BlbigiR0VUIix6LCExKSxXLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLFcuc2VuZChudWxsKSxuZXcgVWludDhBcnJheShXLnJlc3BvbnNlKX0pLGNlPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PW5ldyBYTUxIdHRwUmVxdWVzdDtNdC5vcGVuKCJHRVQiLHosITApLE10LnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLE10Lm9ubG9hZD1mdW5jdGlvbigpe010LnN0YXR1cz09MjAwfHxNdC5zdGF0dXM9PTAmJk10LnJlc3BvbnNlP1coTXQucmVzcG9uc2UpOmV0KCl9LE10Lm9uZXJyb3I9ZXQsTXQuc2VuZChudWxsKX0pO3ZhciBwZT1SLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLGZlPVIucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oUixpdCksaXQ9bnVsbDt2YXIgUXQ7Ui53YXNtQmluYXJ5JiYoUXQ9Ui53YXNtQmluYXJ5KSx0eXBlb2YgV2ViQXNzZW1ibHkhPSJvYmplY3QiJiZzKCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIik7dmFyIEp0LHhlPSExLEFlPXR5cGVvZiBUZXh0RGVjb2RlcjwidSI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwLEVlLHVuLFVlLGJlLGxuPVtdLHBuPVtdLFRuPVtdLG9lPSExLCR0PTAsVmU9bnVsbCxkbj1udWxsLHNuPSJkcmFjb19kZWNvZGVyLndhc20iO3NuLnN0YXJ0c1dpdGgoImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiKXx8KHNuPW4oc24pKTt2YXIgbW49MCxmbz1bbnVsbCxbXSxbXV0sSG49e2I6ZnVuY3Rpb24oeixXLGV0KXt0aHJvdyBuZXcgbCh6KS5pbml0KFcsZXQpLG1uKyssen0sYTpmdW5jdGlvbigpe3MoIiIpfSxnOmZ1bmN0aW9uKHosVyxldCl7dW4uY29weVdpdGhpbih6LFcsVytldCl9LGU6ZnVuY3Rpb24oeil7dmFyIFc9dW4ubGVuZ3RoO2lmKHo+Pj49MCwyMTQ3NDgzNjQ4PHopcmV0dXJuITE7Zm9yKHZhciBldD0xOzQ+PWV0O2V0Kj0yKXt2YXIgTXQ9VyooMSsuMi9ldCk7TXQ9TWF0aC5taW4oTXQseisxMDA2NjMyOTYpO3ZhciBsZT1NYXRoO010PU1hdGgubWF4KHosTXQpLGxlPWxlLm1pbi5jYWxsKGxlLDIxNDc0ODM2NDgsTXQrKDY1NTM2LU10JTY1NTM2KSU2NTUzNik7dDp7TXQ9SnQuYnVmZmVyO3RyeXtKdC5ncm93KGxlLU10LmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksaSgpO3ZhciB3ZT0xO2JyZWFrIHR9Y2F0Y2h7fXdlPXZvaWQgMH1pZih3ZSlyZXR1cm4hMH1yZXR1cm4hMX0sZjpmdW5jdGlvbih6KXtyZXR1cm4gNTJ9LGQ6ZnVuY3Rpb24oeixXLGV0LE10LGxlKXtyZXR1cm4gNzB9LGM6ZnVuY3Rpb24oeixXLGV0LE10KXtmb3IodmFyIGxlPTAsd2U9MDt3ZTxldDt3ZSsrKXt2YXIgVGk9YmVbVz4+Ml0semM9YmVbVys0Pj4yXTtXKz04O2Zvcih2YXIgVj0wO1Y8emM7VisrKXt2YXIgRz11bltUaStWXSxZPWZvW3pdO0c9PT0wfHxHPT09MTA/KCh6PT09MT9wZTpmZSkobyhZLDApKSxZLmxlbmd0aD0wKTpZLnB1c2goRyl9bGUrPXpjfXJldHVybiBiZVtNdD4+Ml09bGUsMH19OyhmdW5jdGlvbigpe2Z1bmN0aW9uIHoobGUsd2Upe1IuYXNtPWxlLmV4cG9ydHMsSnQ9Ui5hc20uaCxpKCkscG4udW5zaGlmdChSLmFzbS5pKSwkdC0tLFIubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmUi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKCR0KSwkdD09MCYmKFZlIT09bnVsbCYmKGNsZWFySW50ZXJ2YWwoVmUpLFZlPW51bGwpLGRuJiYobGU9ZG4sZG49bnVsbCxsZSgpKSl9ZnVuY3Rpb24gVyhsZSl7eihsZS5pbnN0YW5jZSl9ZnVuY3Rpb24gZXQobGUpe3JldHVybiB1KCkudGhlbihmdW5jdGlvbih3ZSl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHdlLE10KX0pLnRoZW4oZnVuY3Rpb24od2Upe3JldHVybiB3ZX0pLnRoZW4obGUsZnVuY3Rpb24od2Upe2ZlKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiK3dlKSxzKHdlKX0pfXZhciBNdD17YTpIbn07aWYoJHQrKyxSLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJlIubW9uaXRvclJ1bkRlcGVuZGVuY2llcygkdCksUi5pbnN0YW50aWF0ZVdhc20pdHJ5e3JldHVybiBSLmluc3RhbnRpYXRlV2FzbShNdCx6KX1jYXRjaChsZSl7ZmUoIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrbGUpLGZ0KGxlKX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUXR8fHR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyE9ImZ1bmN0aW9uInx8c24uc3RhcnRzV2l0aCgiZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCIpfHxzbi5zdGFydHNXaXRoKCJmaWxlOi8vIil8fHh0fHx0eXBlb2YgZmV0Y2ghPSJmdW5jdGlvbiI/ZXQoVyk6ZmV0Y2goc24se2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGxlKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcobGUsTXQpLnRoZW4oVyxmdW5jdGlvbih3ZSl7cmV0dXJuIGZlKCJ3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogIit3ZSksZmUoImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIiksZXQoVyl9KX0pfSgpLmNhdGNoKGZ0KSx7fX0pKCk7dmFyIFplPVIuX2Vtc2NyaXB0ZW5fYmluZF9Wb2lkUHRyX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oWmU9Ui5fZW1zY3JpcHRlbl9iaW5kX1ZvaWRQdHJfX19kZXN0cm95X19fMD1SLmFzbS5rKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGNuPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyQnVmZmVyX0RlY29kZXJCdWZmZXJfMD1mdW5jdGlvbigpe3JldHVybihjbj1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9EZWNvZGVyQnVmZmVyXzA9Ui5hc20ubCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxLZT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9Jbml0XzI9ZnVuY3Rpb24oKXtyZXR1cm4oS2U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJCdWZmZXJfSW5pdF8yPVIuYXNtLm0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0saG49Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJCdWZmZXJfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihobj1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9fX2Rlc3Ryb3lfX18wPVIuYXNtLm4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdW89Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfQXR0cmlidXRlVHJhbnNmb3JtRGF0YV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHVvPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfMD1SLmFzbS5vKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHFuPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhX3RyYW5zZm9ybV90eXBlXzA9ZnVuY3Rpb24oKXtyZXR1cm4ocW49Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfdHJhbnNmb3JtX3R5cGVfMD1SLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEtuPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oS249Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfX19kZXN0cm95X19fMD1SLmFzbS5xKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGxvPVIuX2Vtc2NyaXB0ZW5fYmluZF9HZW9tZXRyeUF0dHJpYnV0ZV9HZW9tZXRyeUF0dHJpYnV0ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKGxvPVIuX2Vtc2NyaXB0ZW5fYmluZF9HZW9tZXRyeUF0dHJpYnV0ZV9HZW9tZXRyeUF0dHJpYnV0ZV8wPVIuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sa2U9Ui5fZW1zY3JpcHRlbl9iaW5kX0dlb21ldHJ5QXR0cmlidXRlX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oa2U9Ui5fZW1zY3JpcHRlbl9iaW5kX0dlb21ldHJ5QXR0cmlidXRlX19fZGVzdHJveV9fXzA9Ui5hc20ucykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxOZT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfUG9pbnRBdHRyaWJ1dGVfMD1mdW5jdGlvbigpe3JldHVybihOZT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfUG9pbnRBdHRyaWJ1dGVfMD1SLmFzbS50KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LERuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oRG49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX3NpemVfMD1SLmFzbS51KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFduPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9HZXRBdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhXzA9ZnVuY3Rpb24oKXtyZXR1cm4oV249Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX0dldEF0dHJpYnV0ZVRyYW5zZm9ybURhdGFfMD1SLmFzbS52KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHFvPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9hdHRyaWJ1dGVfdHlwZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHFvPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9hdHRyaWJ1dGVfdHlwZV8wPVIuYXNtLncpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scm49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2RhdGFfdHlwZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHJuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9kYXRhX3R5cGVfMD1SLmFzbS54KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE9uPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9udW1fY29tcG9uZW50c18wPWZ1bmN0aW9uKCl7cmV0dXJuKE9uPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9udW1fY29tcG9uZW50c18wPVIuYXNtLnkpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdXI9Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX25vcm1hbGl6ZWRfMD1mdW5jdGlvbigpe3JldHVybih1cj1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfbm9ybWFsaXplZF8wPVIuYXNtLnopLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWm49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2J5dGVfc3RyaWRlXzA9ZnVuY3Rpb24oKXtyZXR1cm4oWm49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2J5dGVfc3RyaWRlXzA9Ui5hc20uQSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxLbz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfYnl0ZV9vZmZzZXRfMD1mdW5jdGlvbigpe3JldHVybihLbz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfYnl0ZV9vZmZzZXRfMD1SLmFzbS5CKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE5yPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV91bmlxdWVfaWRfMD1mdW5jdGlvbigpe3JldHVybihOcj1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfdW5pcXVlX2lkXzA9Ui5hc20uQykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxNcz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihNcz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfX19kZXN0cm95X19fMD1SLmFzbS5EKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE5zPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtXzA9ZnVuY3Rpb24oKXtyZXR1cm4oTnM9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fMD1SLmFzbS5FKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFhpPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fSW5pdEZyb21BdHRyaWJ1dGVfMT1mdW5jdGlvbigpe3JldHVybihYaT1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX0luaXRGcm9tQXR0cmlidXRlXzE9Ui5hc20uRikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJcj1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX3F1YW50aXphdGlvbl9iaXRzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oSXI9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9xdWFudGl6YXRpb25fYml0c18wPVIuYXNtLkcpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWWk9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9taW5fdmFsdWVfMT1mdW5jdGlvbigpe3JldHVybihZaT1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX21pbl92YWx1ZV8xPVIuYXNtLkgpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSXM9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9yYW5nZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKElzPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fcmFuZ2VfMD1SLmFzbS5JKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEFpPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihBaT1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX19fZGVzdHJveV9fXzA9Ui5hc20uSikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxubz1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtXzA9ZnVuY3Rpb24oKXtyZXR1cm4obm89Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV8wPVIuYXNtLkspLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scG89Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fSW5pdEZyb21BdHRyaWJ1dGVfMT1mdW5jdGlvbigpe3JldHVybihwbz1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9Jbml0RnJvbUF0dHJpYnV0ZV8xPVIuYXNtLkwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdnI9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fcXVhbnRpemF0aW9uX2JpdHNfMD1mdW5jdGlvbigpe3JldHVybih2cj1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9xdWFudGl6YXRpb25fYml0c18wPVIuYXNtLk0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTmM9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihOYz1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9fX2Rlc3Ryb3lfX18wPVIuYXNtLk4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSWM9Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfUG9pbnRDbG91ZF8wPWZ1bmN0aW9uKCl7cmV0dXJuKEljPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX1BvaW50Q2xvdWRfMD1SLmFzbS5PKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LExuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX251bV9hdHRyaWJ1dGVzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oTG49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfbnVtX2F0dHJpYnV0ZXNfMD1SLmFzbS5QKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGJpPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX251bV9wb2ludHNfMD1mdW5jdGlvbigpe3JldHVybihiaT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRDbG91ZF9udW1fcG9pbnRzXzA9Ui5hc20uUSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJZT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRDbG91ZF9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKEllPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX19fZGVzdHJveV9fXzA9Ui5hc20uUikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxycj1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9NZXNoXzA9ZnVuY3Rpb24oKXtyZXR1cm4ocnI9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfTWVzaF8wPVIuYXNtLlMpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQXU9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfbnVtX2ZhY2VzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oQXU9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfbnVtX2ZhY2VzXzA9Ui5hc20uVCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxidT1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9udW1fYXR0cmlidXRlc18wPWZ1bmN0aW9uKCl7cmV0dXJuKGJ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXNoX251bV9hdHRyaWJ1dGVzXzA9Ui5hc20uVSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx3dT1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9udW1fcG9pbnRzXzA9ZnVuY3Rpb24oKXtyZXR1cm4od3U9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfbnVtX3BvaW50c18wPVIuYXNtLlYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdmM9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybih2Yz1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9fX2Rlc3Ryb3lfX18wPVIuYXNtLlcpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRGM9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhX01ldGFkYXRhXzA9ZnVuY3Rpb24oKXtyZXR1cm4oRGM9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhX01ldGFkYXRhXzA9Ui5hc20uWCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxLYT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihLYT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFfX19kZXN0cm95X19fMD1SLmFzbS5ZKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFR1PVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfY29kZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKFR1PVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfY29kZV8wPVIuYXNtLlopLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sV2E9Ui5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19va18wPWZ1bmN0aW9uKCl7cmV0dXJuKFdhPVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfb2tfMD1SLmFzbS5fKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LCRpPVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfZXJyb3JfbXNnXzA9ZnVuY3Rpb24oKXtyZXR1cm4oJGk9Ui5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19lcnJvcl9tc2dfMD1SLmFzbS4kKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE91PVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihPdT1SLl9lbXNjcmlwdGVuX2JpbmRfU3RhdHVzX19fZGVzdHJveV9fXzA9Ui5hc20uYWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0RyYWNvRmxvYXQzMkFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4oRXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0RyYWNvRmxvYXQzMkFycmF5XzA9Ui5hc20uYmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oUnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0dldFZhbHVlXzE9Ui5hc20uY2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWmk9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X3NpemVfMD1mdW5jdGlvbigpe3JldHVybihaaT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29GbG9hdDMyQXJyYXlfc2l6ZV8wPVIuYXNtLmRhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFFpPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0Zsb2F0MzJBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKFFpPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0Zsb2F0MzJBcnJheV9fX2Rlc3Ryb3lfX18wPVIuYXNtLmVhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LExjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9EcmFjb0ludDhBcnJheV8wPWZ1bmN0aW9uKCl7cmV0dXJuKExjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9EcmFjb0ludDhBcnJheV8wPVIuYXNtLmZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFN1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9HZXRWYWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKFN1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9HZXRWYWx1ZV8xPVIuYXNtLmdhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEN1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oQ3U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50OEFycmF5X3NpemVfMD1SLmFzbS5oYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEcj1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQ4QXJyYXlfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihEcj1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQ4QXJyYXlfX19kZXN0cm95X19fMD1SLmFzbS5pYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxYYT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X0RyYWNvVUludDhBcnJheV8wPWZ1bmN0aW9uKCl7cmV0dXJuKFhhPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfRHJhY29VSW50OEFycmF5XzA9Ui5hc20uamEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWWE9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDhBcnJheV9HZXRWYWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKFlhPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfR2V0VmFsdWVfMT1SLmFzbS5rYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxGYz1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X3NpemVfMD1mdW5jdGlvbigpe3JldHVybihGYz1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X3NpemVfMD1SLmFzbS5sYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx4dT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oeHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDhBcnJheV9fX2Rlc3Ryb3lfX18wPVIuYXNtLm1hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEJjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfRHJhY29JbnQxNkFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4oQmM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9EcmFjb0ludDE2QXJyYXlfMD1SLmFzbS5uYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxQdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQxNkFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oUHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9HZXRWYWx1ZV8xPVIuYXNtLm9hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE11PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfc2l6ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKE11PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfc2l6ZV8wPVIuYXNtLnBhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE51PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihOdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQxNkFycmF5X19fZGVzdHJveV9fXzA9Ui5hc20ucWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfRHJhY29VSW50MTZBcnJheV8wPWZ1bmN0aW9uKCl7cmV0dXJuKEl1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X0RyYWNvVUludDE2QXJyYXlfMD1SLmFzbS5yYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx2dT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MTZBcnJheV9HZXRWYWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKHZ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X0dldFZhbHVlXzE9Ui5hc20uc2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfc2l6ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKER1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X3NpemVfMD1SLmFzbS50YSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSwkYT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MTZBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKCRhPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X19fZGVzdHJveV9fXzA9Ui5hc20udWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9EcmFjb0ludDMyQXJyYXlfMD1mdW5jdGlvbigpe3JldHVybihMdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X0RyYWNvSW50MzJBcnJheV8wPVIuYXNtLnZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEZ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDMyQXJyYXlfR2V0VmFsdWVfMT1mdW5jdGlvbigpe3JldHVybihGdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X0dldFZhbHVlXzE9Ui5hc20ud2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oQnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9zaXplXzA9Ui5hc20ueGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKFV1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDMyQXJyYXlfX19kZXN0cm95X19fMD1SLmFzbS55YSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxKaT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9EcmFjb1VJbnQzMkFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4oSmk9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfRHJhY29VSW50MzJBcnJheV8wPVIuYXNtLnphKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFZ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQzMkFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oVnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfR2V0VmFsdWVfMT1SLmFzbS5BYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxrdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oa3U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfc2l6ZV8wPVIuYXNtLkJhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHZzPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQzMkFycmF5X19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4odnM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfX19kZXN0cm95X19fMD1SLmFzbS5DYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxHdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX01ldGFkYXRhUXVlcmllcl8wPWZ1bmN0aW9uKCl7cmV0dXJuKEd1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfTWV0YWRhdGFRdWVyaWVyXzA9Ui5hc20uRGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0senU9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9IYXNFbnRyeV8yPWZ1bmN0aW9uKCl7cmV0dXJuKHp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfSGFzRW50cnlfMj1SLmFzbS5FYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxscj1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldEludEVudHJ5XzI9ZnVuY3Rpb24oKXtyZXR1cm4obHI9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRJbnRFbnRyeV8yPVIuYXNtLkZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFphPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0SW50RW50cnlBcnJheV8zPWZ1bmN0aW9uKCl7cmV0dXJuKFphPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0SW50RW50cnlBcnJheV8zPVIuYXNtLkdhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0RG91YmxlRW50cnlfMj1mdW5jdGlvbigpe3JldHVybihqdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldERvdWJsZUVudHJ5XzI9Ui5hc20uSGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSHU9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRTdHJpbmdFbnRyeV8yPWZ1bmN0aW9uKCl7cmV0dXJuKEh1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0U3RyaW5nRW50cnlfMj1SLmFzbS5JYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxxdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX051bUVudHJpZXNfMT1mdW5jdGlvbigpe3JldHVybihxdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX051bUVudHJpZXNfMT1SLmFzbS5KYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxXbz1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldEVudHJ5TmFtZV8yPWZ1bmN0aW9uKCl7cmV0dXJuKFdvPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0RW50cnlOYW1lXzI9Ui5hc20uS2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUWE9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKFFhPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfX19kZXN0cm95X19fMD1SLmFzbS5MYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxKYT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVyXzA9ZnVuY3Rpb24oKXtyZXR1cm4oSmE9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfRGVjb2Rlcl8wPVIuYXNtLk1hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LERzPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUFycmF5VG9Qb2ludENsb3VkXzM9ZnVuY3Rpb24oKXtyZXR1cm4oRHM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfRGVjb2RlQXJyYXlUb1BvaW50Q2xvdWRfMz1SLmFzbS5OYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxLdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVBcnJheVRvTWVzaF8zPWZ1bmN0aW9uKCl7cmV0dXJuKEt1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUFycmF5VG9NZXNoXzM9Ui5hc20uT2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVWM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSWRfMj1mdW5jdGlvbigpe3JldHVybihVYz1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJZF8yPVIuYXNtLlBhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFd1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUlkQnlOYW1lXzI9ZnVuY3Rpb24oKXtyZXR1cm4oV3U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSWRCeU5hbWVfMj1SLmFzbS5RYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0Zj1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJZEJ5TWV0YWRhdGFFbnRyeV8zPWZ1bmN0aW9uKCl7cmV0dXJuKHRmPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUlkQnlNZXRhZGF0YUVudHJ5XzM9Ui5hc20uUmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZWY9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlXzI9ZnVuY3Rpb24oKXtyZXR1cm4oZWY9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlXzI9Ui5hc20uU2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlQnlVbmlxdWVJZF8yPWZ1bmN0aW9uKCl7cmV0dXJuKFh1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUJ5VW5pcXVlSWRfMj1SLmFzbS5UYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxZdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRNZXRhZGF0YV8xPWZ1bmN0aW9uKCl7cmV0dXJuKFl1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldE1ldGFkYXRhXzE9Ui5hc20uVWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVmM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlTWV0YWRhdGFfMj1mdW5jdGlvbigpe3JldHVybihWYz1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVNZXRhZGF0YV8yPVIuYXNtLlZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEFvPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEZhY2VGcm9tTWVzaF8zPWZ1bmN0aW9uKCl7cmV0dXJuKEFvPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEZhY2VGcm9tTWVzaF8zPVIuYXNtLldhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGtjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldFRyaWFuZ2xlU3RyaXBzRnJvbU1lc2hfMj1mdW5jdGlvbigpe3JldHVybihrYz1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRUcmlhbmdsZVN0cmlwc0Zyb21NZXNoXzI9Ui5hc20uWGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sJHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0VHJpYW5nbGVzVUludDE2QXJyYXlfMz1mdW5jdGlvbigpe3JldHVybigkdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRUcmlhbmdsZXNVSW50MTZBcnJheV8zPVIuYXNtLllhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldFRyaWFuZ2xlc1VJbnQzMkFycmF5XzM9ZnVuY3Rpb24oKXtyZXR1cm4oWnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0VHJpYW5nbGVzVUludDMyQXJyYXlfMz1SLmFzbS5aYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxRdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVGbG9hdF8zPWZ1bmN0aW9uKCl7cmV0dXJuKFF1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUZsb2F0XzM9Ui5hc20uX2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scHI9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybihwcj1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVGbG9hdEZvckFsbFBvaW50c18zPVIuYXNtLiRhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludEZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKEp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludEZvckFsbFBvaW50c18zPVIuYXNtLmFiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHRsPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybih0bD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzXzM9Ui5hc20uYmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZWw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybihlbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50OEZvckFsbFBvaW50c18zPVIuYXNtLmNiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LExzPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDE2Rm9yQWxsUG9pbnRzXzM9ZnVuY3Rpb24oKXtyZXR1cm4oTHM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSW50MTZGb3JBbGxQb2ludHNfMz1SLmFzbS5kYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxubD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybihubD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHNfMz1SLmFzbS5lYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx3aT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJbnQzMkZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKHdpPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDMyRm9yQWxsUG9pbnRzXzM9Ui5hc20uZmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sb2w9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlVUludDMyRm9yQWxsUG9pbnRzXzM9ZnVuY3Rpb24oKXtyZXR1cm4ob2w9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlVUludDMyRm9yQWxsUG9pbnRzXzM9Ui5hc20uZ2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scmw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlRGF0YUFycmF5Rm9yQWxsUG9pbnRzXzU9ZnVuY3Rpb24oKXtyZXR1cm4ocmw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlRGF0YUFycmF5Rm9yQWxsUG9pbnRzXzU9Ui5hc20uaGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0saWw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfU2tpcEF0dHJpYnV0ZVRyYW5zZm9ybV8xPWZ1bmN0aW9uKCl7cmV0dXJuKGlsPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX1NraXBBdHRyaWJ1dGVUcmFuc2Zvcm1fMT1SLmFzbS5pYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxzbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRFbmNvZGVkR2VvbWV0cnlUeXBlX0RlcHJlY2F0ZWRfMT1mdW5jdGlvbigpe3JldHVybihzbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRFbmNvZGVkR2VvbWV0cnlUeXBlX0RlcHJlY2F0ZWRfMT1SLmFzbS5qYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxjbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb1BvaW50Q2xvdWRfMj1mdW5jdGlvbigpe3JldHVybihjbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb1BvaW50Q2xvdWRfMj1SLmFzbS5rYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxhbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb01lc2hfMj1mdW5jdGlvbigpe3JldHVybihhbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb01lc2hfMj1SLmFzbS5sYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxmbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKGZsPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX19fZGVzdHJveV9fXzA9Ui5hc20ubWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX0lOVkFMSURfVFJBTlNGT1JNPWZ1bmN0aW9uKCl7cmV0dXJuKHVsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19BdHRyaWJ1dGVUcmFuc2Zvcm1UeXBlX0FUVFJJQlVURV9JTlZBTElEX1RSQU5TRk9STT1SLmFzbS5uYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxsbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fQXR0cmlidXRlVHJhbnNmb3JtVHlwZV9BVFRSSUJVVEVfTk9fVFJBTlNGT1JNPWZ1bmN0aW9uKCl7cmV0dXJuKGxsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19BdHRyaWJ1dGVUcmFuc2Zvcm1UeXBlX0FUVFJJQlVURV9OT19UUkFOU0ZPUk09Ui5hc20ub2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX1FVQU5USVpBVElPTl9UUkFOU0ZPUk09ZnVuY3Rpb24oKXtyZXR1cm4ocGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX1FVQU5USVpBVElPTl9UUkFOU0ZPUk09Ui5hc20ucGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX09DVEFIRURST05fVFJBTlNGT1JNPWZ1bmN0aW9uKCl7cmV0dXJuKGRsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19BdHRyaWJ1dGVUcmFuc2Zvcm1UeXBlX0FUVFJJQlVURV9PQ1RBSEVEUk9OX1RSQU5TRk9STT1SLmFzbS5xYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0cz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9JTlZBTElEPWZ1bmN0aW9uKCl7cmV0dXJuKHRzPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX0lOVkFMSUQ9Ui5hc20ucmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sbWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfUE9TSVRJT049ZnVuY3Rpb24oKXtyZXR1cm4obWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfUE9TSVRJT049Ui5hc20uc2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0saGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfTk9STUFMPWZ1bmN0aW9uKCl7cmV0dXJuKGhsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX05PUk1BTD1SLmFzbS50YikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxGcz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9DT0xPUj1mdW5jdGlvbigpe3JldHVybihGcz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9DT0xPUj1SLmFzbS51YikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxHYz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9URVhfQ09PUkQ9ZnVuY3Rpb24oKXtyZXR1cm4oR2M9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfVEVYX0NPT1JEPVIuYXNtLnZiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LF9sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX0dFTkVSSUM9ZnVuY3Rpb24oKXtyZXR1cm4oX2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfR0VORVJJQz1SLmFzbS53YikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxuZj1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRW5jb2RlZEdlb21ldHJ5VHlwZV9JTlZBTElEX0dFT01FVFJZX1RZUEU9ZnVuY3Rpb24oKXtyZXR1cm4obmY9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0VuY29kZWRHZW9tZXRyeVR5cGVfSU5WQUxJRF9HRU9NRVRSWV9UWVBFPVIuYXNtLnhiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHlsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX1BPSU5UX0NMT1VEPWZ1bmN0aW9uKCl7cmV0dXJuKHlsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX1BPSU5UX0NMT1VEPVIuYXNtLnliKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGdsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX1RSSUFOR1VMQVJfTUVTSD1mdW5jdGlvbigpe3JldHVybihnbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRW5jb2RlZEdlb21ldHJ5VHlwZV9UUklBTkdVTEFSX01FU0g9Ui5hc20uemIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVkFMSUQ9ZnVuY3Rpb24oKXtyZXR1cm4oQWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVkFMSUQ9Ui5hc20uQWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sYmw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDg9ZnVuY3Rpb24oKXtyZXR1cm4oYmw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDg9Ui5hc20uQmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sd2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQ4PWZ1bmN0aW9uKCl7cmV0dXJuKHdsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UOD1SLmFzbS5DYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxUbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UMTY9ZnVuY3Rpb24oKXtyZXR1cm4oVGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDE2PVIuYXNtLkRiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE9sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UMTY9ZnVuY3Rpb24oKXtyZXR1cm4oT2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQxNj1SLmFzbS5FYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UMzI9ZnVuY3Rpb24oKXtyZXR1cm4oRWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDMyPVIuYXNtLkZiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LG9mPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UMzI9ZnVuY3Rpb24oKXtyZXR1cm4ob2Y9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQzMj1SLmFzbS5HYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxSbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UNjQ9ZnVuY3Rpb24oKXtyZXR1cm4oUmw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDY0PVIuYXNtLkhiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFNsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UNjQ9ZnVuY3Rpb24oKXtyZXR1cm4oU2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQ2ND1SLmFzbS5JYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxDbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQzMj1mdW5jdGlvbigpe3JldHVybihDbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQzMj1SLmFzbS5KYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx4bD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQ2ND1mdW5jdGlvbigpe3JldHVybih4bD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQ2ND1SLmFzbS5LYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxQbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfQk9PTD1mdW5jdGlvbigpe3JldHVybihQbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfQk9PTD1SLmFzbS5MYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxNbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfVFlQRVNfQ09VTlQ9ZnVuY3Rpb24oKXtyZXR1cm4oTWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1RZUEVTX0NPVU5UPVIuYXNtLk1iKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE5sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX09LPWZ1bmN0aW9uKCl7cmV0dXJuKE5sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX09LPVIuYXNtLk5iKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEJzPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0RSQUNPX0VSUk9SPWZ1bmN0aW9uKCl7cmV0dXJuKEJzPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0RSQUNPX0VSUk9SPVIuYXNtLk9iKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LElsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lPX0VSUk9SPWZ1bmN0aW9uKCl7cmV0dXJuKElsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lPX0VSUk9SPVIuYXNtLlBiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHZsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lOVkFMSURfUEFSQU1FVEVSPWZ1bmN0aW9uKCl7cmV0dXJuKHZsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lOVkFMSURfUEFSQU1FVEVSPVIuYXNtLlFiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LERsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX1VOU1VQUE9SVEVEX1ZFUlNJT049ZnVuY3Rpb24oKXtyZXR1cm4oRGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfVU5TVVBQT1JURURfVkVSU0lPTj1SLmFzbS5SYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxMbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fU3RhdHVzQ29kZV9VTktOT1dOX1ZFUlNJT049ZnVuY3Rpb24oKXtyZXR1cm4oTGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfVU5LTk9XTl9WRVJTSU9OPVIuYXNtLlNiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O1IuX21hbGxvYz1mdW5jdGlvbigpe3JldHVybihSLl9tYWxsb2M9Ui5hc20uVGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUi5fZnJlZT1mdW5jdGlvbigpe3JldHVybihSLl9mcmVlPVIuYXNtLlViKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBGbD1mdW5jdGlvbigpe3JldHVybihGbD1SLmFzbS5WYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtSLl9fX3N0YXJ0X2VtX2pzPTE1ODU2LFIuX19fc3RvcF9lbV9qcz0xNTk1NDt2YXIgcmY7aWYoZG49ZnVuY3Rpb24geigpe3JmfHxwKCkscmZ8fChkbj16KX0sUi5wcmVJbml0KWZvcih0eXBlb2YgUi5wcmVJbml0PT0iZnVuY3Rpb24iJiYoUi5wcmVJbml0PVtSLnByZUluaXRdKTswPFIucHJlSW5pdC5sZW5ndGg7KVIucHJlSW5pdC5wb3AoKSgpO3AoKSxkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1kLGQucHJvdG90eXBlLl9fY2xhc3NfXz1kLGQuX19jYWNoZV9fPXt9LFIuV3JhcHBlck9iamVjdD1kLFIuZ2V0Q2FjaGU9bSxSLndyYXBQb2ludGVyPV8sUi5jYXN0T2JqZWN0PWZ1bmN0aW9uKHosVyl7cmV0dXJuIF8oei5wdHIsVyl9LFIuTlVMTD1fKDApLFIuZGVzdHJveT1mdW5jdGlvbih6KXtpZighei5fX2Rlc3Ryb3lfXyl0aHJvdyJFcnJvcjogQ2Fubm90IGRlc3Ryb3kgb2JqZWN0LiAoRGlkIHlvdSBjcmVhdGUgaXQgeW91cnNlbGY/KSI7ei5fX2Rlc3Ryb3lfXygpLGRlbGV0ZSBtKHouX19jbGFzc19fKVt6LnB0cl19LFIuY29tcGFyZT1mdW5jdGlvbih6LFcpe3JldHVybiB6LnB0cj09PVcucHRyfSxSLmdldFBvaW50ZXI9ZnVuY3Rpb24oeil7cmV0dXJuIHoucHRyfSxSLmdldENsYXNzPWZ1bmN0aW9uKHope3JldHVybiB6Ll9fY2xhc3NfX307dmFyIFJlPXtidWZmZXI6MCxzaXplOjAscG9zOjAsdGVtcHM6W10sbmVlZGVkOjAscHJlcGFyZTpmdW5jdGlvbigpe2lmKFJlLm5lZWRlZCl7Zm9yKHZhciB6PTA7ejxSZS50ZW1wcy5sZW5ndGg7eisrKVIuX2ZyZWUoUmUudGVtcHNbel0pO1JlLnRlbXBzLmxlbmd0aD0wLFIuX2ZyZWUoUmUuYnVmZmVyKSxSZS5idWZmZXI9MCxSZS5zaXplKz1SZS5uZWVkZWQsUmUubmVlZGVkPTB9UmUuYnVmZmVyfHwoUmUuc2l6ZSs9MTI4LFJlLmJ1ZmZlcj1SLl9tYWxsb2MoUmUuc2l6ZSksUmUuYnVmZmVyfHxzKHZvaWQgMCkpLFJlLnBvcz0wfSxhbGxvYzpmdW5jdGlvbih6LFcpe3JldHVybiBSZS5idWZmZXJ8fHModm9pZCAwKSx6PXoubGVuZ3RoKlcuQllURVNfUEVSX0VMRU1FTlQsej16KzcmLTgsUmUucG9zK3o+PVJlLnNpemU/KDA8enx8cyh2b2lkIDApLFJlLm5lZWRlZCs9eixXPVIuX21hbGxvYyh6KSxSZS50ZW1wcy5wdXNoKFcpKTooVz1SZS5idWZmZXIrUmUucG9zLFJlLnBvcys9eiksV30sY29weTpmdW5jdGlvbih6LFcsZXQpe3N3aXRjaChldD4+Pj0wLFcuQllURVNfUEVSX0VMRU1FTlQpe2Nhc2UgMjpldD4+Pj0xO2JyZWFrO2Nhc2UgNDpldD4+Pj0yO2JyZWFrO2Nhc2UgODpldD4+Pj0zfWZvcih2YXIgTXQ9MDtNdDx6Lmxlbmd0aDtNdCsrKVdbZXQrTXRdPXpbTXRdfX07cmV0dXJuIE8ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLE8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPU8sTy5wcm90b3R5cGUuX19jbGFzc19fPU8sTy5fX2NhY2hlX189e30sUi5Wb2lkUHRyPU8sTy5wcm90b3R5cGUuX19kZXN0cm95X189Ty5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtaZSh0aGlzLnB0cil9LFQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLFQucHJvdG90eXBlLmNvbnN0cnVjdG9yPVQsVC5wcm90b3R5cGUuX19jbGFzc19fPVQsVC5fX2NhY2hlX189e30sUi5EZWNvZGVyQnVmZmVyPVQsVC5wcm90b3R5cGUuSW5pdD1ULnByb3RvdHlwZS5Jbml0PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO1JlLnByZXBhcmUoKSx0eXBlb2Ygej09Im9iamVjdCImJih6PWIoeikpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLEtlKGV0LHosVyl9LFQucHJvdG90eXBlLl9fZGVzdHJveV9fPVQucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7aG4odGhpcy5wdHIpfSxFLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxFLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1FLEUucHJvdG90eXBlLl9fY2xhc3NfXz1FLEUuX19jYWNoZV9fPXt9LFIuQXR0cmlidXRlVHJhbnNmb3JtRGF0YT1FLEUucHJvdG90eXBlLnRyYW5zZm9ybV90eXBlPUUucHJvdG90eXBlLnRyYW5zZm9ybV90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHFuKHRoaXMucHRyKX0sRS5wcm90b3R5cGUuX19kZXN0cm95X189RS5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtLbih0aGlzLnB0cil9LHcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLHcucHJvdG90eXBlLmNvbnN0cnVjdG9yPXcsdy5wcm90b3R5cGUuX19jbGFzc19fPXcsdy5fX2NhY2hlX189e30sUi5HZW9tZXRyeUF0dHJpYnV0ZT13LHcucHJvdG90eXBlLl9fZGVzdHJveV9fPXcucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7a2UodGhpcy5wdHIpfSxDLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxDLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1DLEMucHJvdG90eXBlLl9fY2xhc3NfXz1DLEMuX19jYWNoZV9fPXt9LFIuUG9pbnRBdHRyaWJ1dGU9QyxDLnByb3RvdHlwZS5zaXplPUMucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gRG4odGhpcy5wdHIpfSxDLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhPUMucHJvdG90eXBlLkdldEF0dHJpYnV0ZVRyYW5zZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gXyhXbih0aGlzLnB0ciksRSl9LEMucHJvdG90eXBlLmF0dHJpYnV0ZV90eXBlPUMucHJvdG90eXBlLmF0dHJpYnV0ZV90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHFvKHRoaXMucHRyKX0sQy5wcm90b3R5cGUuZGF0YV90eXBlPUMucHJvdG90eXBlLmRhdGFfdHlwZT1mdW5jdGlvbigpe3JldHVybiBybih0aGlzLnB0cil9LEMucHJvdG90eXBlLm51bV9jb21wb25lbnRzPUMucHJvdG90eXBlLm51bV9jb21wb25lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIE9uKHRoaXMucHRyKX0sQy5wcm90b3R5cGUubm9ybWFsaXplZD1DLnByb3RvdHlwZS5ub3JtYWxpemVkPWZ1bmN0aW9uKCl7cmV0dXJuISF1cih0aGlzLnB0cil9LEMucHJvdG90eXBlLmJ5dGVfc3RyaWRlPUMucHJvdG90eXBlLmJ5dGVfc3RyaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIFpuKHRoaXMucHRyKX0sQy5wcm90b3R5cGUuYnl0ZV9vZmZzZXQ9Qy5wcm90b3R5cGUuYnl0ZV9vZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gS28odGhpcy5wdHIpfSxDLnByb3RvdHlwZS51bmlxdWVfaWQ9Qy5wcm90b3R5cGUudW5pcXVlX2lkPWZ1bmN0aW9uKCl7cmV0dXJuIE5yKHRoaXMucHRyKX0sQy5wcm90b3R5cGUuX19kZXN0cm95X189Qy5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtNcyh0aGlzLnB0cil9LE4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLE4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPU4sTi5wcm90b3R5cGUuX19jbGFzc19fPU4sTi5fX2NhY2hlX189e30sUi5BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm09TixOLnByb3RvdHlwZS5Jbml0RnJvbUF0dHJpYnV0ZT1OLnByb3RvdHlwZS5Jbml0RnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksISFYaShXLHopfSxOLnByb3RvdHlwZS5xdWFudGl6YXRpb25fYml0cz1OLnByb3RvdHlwZS5xdWFudGl6YXRpb25fYml0cz1mdW5jdGlvbigpe3JldHVybiBJcih0aGlzLnB0cil9LE4ucHJvdG90eXBlLm1pbl92YWx1ZT1OLnByb3RvdHlwZS5taW5fdmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFlpKFcseil9LE4ucHJvdG90eXBlLnJhbmdlPU4ucHJvdG90eXBlLnJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIElzKHRoaXMucHRyKX0sTi5wcm90b3R5cGUuX19kZXN0cm95X189Ti5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtBaSh0aGlzLnB0cil9LEkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLEkucHJvdG90eXBlLmNvbnN0cnVjdG9yPUksSS5wcm90b3R5cGUuX19jbGFzc19fPUksSS5fX2NhY2hlX189e30sUi5BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtPUksSS5wcm90b3R5cGUuSW5pdEZyb21BdHRyaWJ1dGU9SS5wcm90b3R5cGUuSW5pdEZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLCEhcG8oVyx6KX0sSS5wcm90b3R5cGUucXVhbnRpemF0aW9uX2JpdHM9SS5wcm90b3R5cGUucXVhbnRpemF0aW9uX2JpdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdnIodGhpcy5wdHIpfSxJLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1JLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe05jKHRoaXMucHRyKX0sTC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksTC5wcm90b3R5cGUuY29uc3RydWN0b3I9TCxMLnByb3RvdHlwZS5fX2NsYXNzX189TCxMLl9fY2FjaGVfXz17fSxSLlBvaW50Q2xvdWQ9TCxMLnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz1MLnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBMbih0aGlzLnB0cil9LEwucHJvdG90eXBlLm51bV9wb2ludHM9TC5wcm90b3R5cGUubnVtX3BvaW50cz1mdW5jdGlvbigpe3JldHVybiBiaSh0aGlzLnB0cil9LEwucHJvdG90eXBlLl9fZGVzdHJveV9fPUwucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7SWUodGhpcy5wdHIpfSx2LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSx2LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj12LHYucHJvdG90eXBlLl9fY2xhc3NfXz12LHYuX19jYWNoZV9fPXt9LFIuTWVzaD12LHYucHJvdG90eXBlLm51bV9mYWNlcz12LnByb3RvdHlwZS5udW1fZmFjZXM9ZnVuY3Rpb24oKXtyZXR1cm4gQXUodGhpcy5wdHIpfSx2LnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz12LnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBidSh0aGlzLnB0cil9LHYucHJvdG90eXBlLm51bV9wb2ludHM9di5wcm90b3R5cGUubnVtX3BvaW50cz1mdW5jdGlvbigpe3JldHVybiB3dSh0aGlzLnB0cil9LHYucHJvdG90eXBlLl9fZGVzdHJveV9fPXYucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7dmModGhpcy5wdHIpfSxELnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxELnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ELEQucHJvdG90eXBlLl9fY2xhc3NfXz1ELEQuX19jYWNoZV9fPXt9LFIuTWV0YWRhdGE9RCxELnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1ELnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe0thKHRoaXMucHRyKX0sVS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksVS5wcm90b3R5cGUuY29uc3RydWN0b3I9VSxVLnByb3RvdHlwZS5fX2NsYXNzX189VSxVLl9fY2FjaGVfXz17fSxSLlN0YXR1cz1VLFUucHJvdG90eXBlLmNvZGU9VS5wcm90b3R5cGUuY29kZT1mdW5jdGlvbigpe3JldHVybiBUdSh0aGlzLnB0cil9LFUucHJvdG90eXBlLm9rPVUucHJvdG90eXBlLm9rPWZ1bmN0aW9uKCl7cmV0dXJuISFXYSh0aGlzLnB0cil9LFUucHJvdG90eXBlLmVycm9yX21zZz1VLnByb3RvdHlwZS5lcnJvcl9tc2c9ZnVuY3Rpb24oKXtyZXR1cm4gcigkaSh0aGlzLnB0cikpfSxVLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1VLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe091KHRoaXMucHRyKX0sQS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxBLnByb3RvdHlwZS5fX2NsYXNzX189QSxBLl9fY2FjaGVfXz17fSxSLkRyYWNvRmxvYXQzMkFycmF5PUEsQS5wcm90b3R5cGUuR2V0VmFsdWU9QS5wcm90b3R5cGUuR2V0VmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFJ1KFcseil9LEEucHJvdG90eXBlLnNpemU9QS5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLnB0cil9LEEucHJvdG90eXBlLl9fZGVzdHJveV9fPUEucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7UWkodGhpcy5wdHIpfSxTLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxTLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1TLFMucHJvdG90eXBlLl9fY2xhc3NfXz1TLFMuX19jYWNoZV9fPXt9LFIuRHJhY29JbnQ4QXJyYXk9UyxTLnByb3RvdHlwZS5HZXRWYWx1ZT1TLnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksU3UoVyx6KX0sUy5wcm90b3R5cGUuc2l6ZT1TLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIEN1KHRoaXMucHRyKX0sUy5wcm90b3R5cGUuX19kZXN0cm95X189Uy5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtEcih0aGlzLnB0cil9LFAucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLFAucHJvdG90eXBlLmNvbnN0cnVjdG9yPVAsUC5wcm90b3R5cGUuX19jbGFzc19fPVAsUC5fX2NhY2hlX189e30sUi5EcmFjb1VJbnQ4QXJyYXk9UCxQLnByb3RvdHlwZS5HZXRWYWx1ZT1QLnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksWWEoVyx6KX0sUC5wcm90b3R5cGUuc2l6ZT1QLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIEZjKHRoaXMucHRyKX0sUC5wcm90b3R5cGUuX19kZXN0cm95X189UC5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXt4dSh0aGlzLnB0cil9LEYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLEYucHJvdG90eXBlLmNvbnN0cnVjdG9yPUYsRi5wcm90b3R5cGUuX19jbGFzc19fPUYsRi5fX2NhY2hlX189e30sUi5EcmFjb0ludDE2QXJyYXk9RixGLnByb3RvdHlwZS5HZXRWYWx1ZT1GLnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksUHUoVyx6KX0sRi5wcm90b3R5cGUuc2l6ZT1GLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIE11KHRoaXMucHRyKX0sRi5wcm90b3R5cGUuX19kZXN0cm95X189Ri5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtOdSh0aGlzLnB0cil9LGoucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLGoucHJvdG90eXBlLmNvbnN0cnVjdG9yPWosai5wcm90b3R5cGUuX19jbGFzc19fPWosai5fX2NhY2hlX189e30sUi5EcmFjb1VJbnQxNkFycmF5PWosai5wcm90b3R5cGUuR2V0VmFsdWU9ai5wcm90b3R5cGUuR2V0VmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLHZ1KFcseil9LGoucHJvdG90eXBlLnNpemU9ai5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBEdSh0aGlzLnB0cil9LGoucHJvdG90eXBlLl9fZGVzdHJveV9fPWoucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7JGEodGhpcy5wdHIpfSxILnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxILnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ILEgucHJvdG90eXBlLl9fY2xhc3NfXz1ILEguX19jYWNoZV9fPXt9LFIuRHJhY29JbnQzMkFycmF5PUgsSC5wcm90b3R5cGUuR2V0VmFsdWU9SC5wcm90b3R5cGUuR2V0VmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLEZ1KFcseil9LEgucHJvdG90eXBlLnNpemU9SC5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBCdSh0aGlzLnB0cil9LEgucHJvdG90eXBlLl9fZGVzdHJveV9fPUgucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7VXUodGhpcy5wdHIpfSxrLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxrLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1rLGsucHJvdG90eXBlLl9fY2xhc3NfXz1rLGsuX19jYWNoZV9fPXt9LFIuRHJhY29VSW50MzJBcnJheT1rLGsucHJvdG90eXBlLkdldFZhbHVlPWsucHJvdG90eXBlLkdldFZhbHVlPWZ1bmN0aW9uKHope3ZhciBXPXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxWdShXLHopfSxrLnByb3RvdHlwZS5zaXplPWsucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4ga3UodGhpcy5wdHIpfSxrLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1rLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe3ZzKHRoaXMucHRyKX0sSy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksSy5wcm90b3R5cGUuY29uc3RydWN0b3I9SyxLLnByb3RvdHlwZS5fX2NsYXNzX189SyxLLl9fY2FjaGVfXz17fSxSLk1ldGFkYXRhUXVlcmllcj1LLEsucHJvdG90eXBlLkhhc0VudHJ5PUsucHJvdG90eXBlLkhhc0VudHJ5PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiBSZS5wcmVwYXJlKCkseiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVz1XJiZ0eXBlb2YgVz09Im9iamVjdCI/Vy5wdHI6ZyhXKSwhIXp1KGV0LHosVyl9LEsucHJvdG90eXBlLkdldEludEVudHJ5PUsucHJvdG90eXBlLkdldEludEVudHJ5PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiBSZS5wcmVwYXJlKCkseiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVz1XJiZ0eXBlb2YgVz09Im9iamVjdCI/Vy5wdHI6ZyhXKSxscihldCx6LFcpfSxLLnByb3RvdHlwZS5HZXRJbnRFbnRyeUFycmF5PUsucHJvdG90eXBlLkdldEludEVudHJ5QXJyYXk9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7UmUucHJlcGFyZSgpLHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFc9VyYmdHlwZW9mIFc9PSJvYmplY3QiP1cucHRyOmcoVyksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLFphKE10LHosVyxldCl9LEsucHJvdG90eXBlLkdldERvdWJsZUVudHJ5PUsucHJvdG90eXBlLkdldERvdWJsZUVudHJ5PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiBSZS5wcmVwYXJlKCkseiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVz1XJiZ0eXBlb2YgVz09Im9iamVjdCI/Vy5wdHI6ZyhXKSxqdShldCx6LFcpfSxLLnByb3RvdHlwZS5HZXRTdHJpbmdFbnRyeT1LLnByb3RvdHlwZS5HZXRTdHJpbmdFbnRyeT1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4gUmUucHJlcGFyZSgpLHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFc9VyYmdHlwZW9mIFc9PSJvYmplY3QiP1cucHRyOmcoVykscihIdShldCx6LFcpKX0sSy5wcm90b3R5cGUuTnVtRW50cmllcz1LLnByb3RvdHlwZS5OdW1FbnRyaWVzPWZ1bmN0aW9uKHope3ZhciBXPXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxxdShXLHopfSxLLnByb3RvdHlwZS5HZXRFbnRyeU5hbWU9Sy5wcm90b3R5cGUuR2V0RW50cnlOYW1lPWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxyKFdvKGV0LHosVykpfSxLLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1LLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe1FhKHRoaXMucHRyKX0sWC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksWC5wcm90b3R5cGUuY29uc3RydWN0b3I9WCxYLnByb3RvdHlwZS5fX2NsYXNzX189WCxYLl9fY2FjaGVfXz17fSxSLkRlY29kZXI9WCxYLnByb3RvdHlwZS5EZWNvZGVBcnJheVRvUG9pbnRDbG91ZD1YLnByb3RvdHlwZS5EZWNvZGVBcnJheVRvUG9pbnRDbG91ZD1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4gUmUucHJlcGFyZSgpLHR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9Yih6KSksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLF8oRHMoTXQseixXLGV0KSxVKX0sWC5wcm90b3R5cGUuRGVjb2RlQXJyYXlUb01lc2g9WC5wcm90b3R5cGUuRGVjb2RlQXJyYXlUb01lc2g9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIFJlLnByZXBhcmUoKSx0eXBlb2Ygej09Im9iamVjdCImJih6PWIoeikpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSxfKEt1KE10LHosVyxldCksVSl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUlkPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUlkPWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxVYyhldCx6LFcpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJZEJ5TmFtZT1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJZEJ5TmFtZT1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4gUmUucHJlcGFyZSgpLHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFc9VyYmdHlwZW9mIFc9PSJvYmplY3QiP1cucHRyOmcoVyksV3UoZXQseixXKX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSWRCeU1ldGFkYXRhRW50cnk9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSWRCeU1ldGFkYXRhRW50cnk9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIFJlLnByZXBhcmUoKSx6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXPVcmJnR5cGVvZiBXPT0ib2JqZWN0Ij9XLnB0cjpnKFcpLGV0PWV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiP2V0LnB0cjpnKGV0KSx0ZihNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGU9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlPWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxfKGVmKGV0LHosVyksQyl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUJ5VW5pcXVlSWQ9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlQnlVbmlxdWVJZD1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksXyhYdShldCx6LFcpLEMpfSxYLnByb3RvdHlwZS5HZXRNZXRhZGF0YT1YLnByb3RvdHlwZS5HZXRNZXRhZGF0YT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksXyhZdShXLHopLEQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVNZXRhZGF0YT1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVNZXRhZGF0YT1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksXyhWYyhldCx6LFcpLEQpfSxYLnByb3RvdHlwZS5HZXRGYWNlRnJvbU1lc2g9WC5wcm90b3R5cGUuR2V0RmFjZUZyb21NZXNoPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISFBbyhNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRUcmlhbmdsZVN0cmlwc0Zyb21NZXNoPVgucHJvdG90eXBlLkdldFRyaWFuZ2xlU3RyaXBzRnJvbU1lc2g9ZnVuY3Rpb24oeixXKXt2YXIgZXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGtjKGV0LHosVyl9LFgucHJvdG90eXBlLkdldFRyaWFuZ2xlc1VJbnQxNkFycmF5PVgucHJvdG90eXBlLkdldFRyaWFuZ2xlc1VJbnQxNkFycmF5PWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISEkdShNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRUcmlhbmdsZXNVSW50MzJBcnJheT1YLnByb3RvdHlwZS5HZXRUcmlhbmdsZXNVSW50MzJBcnJheT1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLCEhWnUoTXQseixXLGV0KX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlRmxvYXQ9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlRmxvYXQ9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIVF1KE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISFwcihNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnRGb3JBbGxQb2ludHM9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSW50Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISFKdShNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIXRsKE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISFlbChNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQxNkZvckFsbFBvaW50cz1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQxNkZvckFsbFBvaW50cz1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLCEhTHMoTXQseixXLGV0KX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlVUludDE2Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQxNkZvckFsbFBvaW50cz1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLCEhbmwoTXQseixXLGV0KX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHM9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIXdpKE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQzMkZvckFsbFBvaW50cz1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVVSW50MzJGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIW9sKE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZURhdGFBcnJheUZvckFsbFBvaW50cz1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVEYXRhQXJyYXlGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0LE10LGxlKXt2YXIgd2U9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSxNdCYmdHlwZW9mIE10PT0ib2JqZWN0IiYmKE10PU10LnB0ciksbGUmJnR5cGVvZiBsZT09Im9iamVjdCImJihsZT1sZS5wdHIpLCEhcmwod2UseixXLGV0LE10LGxlKX0sWC5wcm90b3R5cGUuU2tpcEF0dHJpYnV0ZVRyYW5zZm9ybT1YLnByb3RvdHlwZS5Ta2lwQXR0cmlidXRlVHJhbnNmb3JtPWZ1bmN0aW9uKHope3ZhciBXPXRoaXMucHRyO3omJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLGlsKFcseil9LFgucHJvdG90eXBlLkdldEVuY29kZWRHZW9tZXRyeVR5cGVfRGVwcmVjYXRlZD1YLnByb3RvdHlwZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlX0RlcHJlY2F0ZWQ9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLHNsKFcseil9LFgucHJvdG90eXBlLkRlY29kZUJ1ZmZlclRvUG9pbnRDbG91ZD1YLnByb3RvdHlwZS5EZWNvZGVCdWZmZXJUb1BvaW50Q2xvdWQ9ZnVuY3Rpb24oeixXKXt2YXIgZXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLF8oY2woZXQseixXKSxVKX0sWC5wcm90b3R5cGUuRGVjb2RlQnVmZmVyVG9NZXNoPVgucHJvdG90eXBlLkRlY29kZUJ1ZmZlclRvTWVzaD1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksXyhhbChldCx6LFcpLFUpfSxYLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1YLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe2ZsKHRoaXMucHRyKX0sZnVuY3Rpb24oKXtmdW5jdGlvbiB6KCl7Ui5BVFRSSUJVVEVfSU5WQUxJRF9UUkFOU0ZPUk09dWwoKSxSLkFUVFJJQlVURV9OT19UUkFOU0ZPUk09bGwoKSxSLkFUVFJJQlVURV9RVUFOVElaQVRJT05fVFJBTlNGT1JNPXBsKCksUi5BVFRSSUJVVEVfT0NUQUhFRFJPTl9UUkFOU0ZPUk09ZGwoKSxSLklOVkFMSUQ9dHMoKSxSLlBPU0lUSU9OPW1sKCksUi5OT1JNQUw9aGwoKSxSLkNPTE9SPUZzKCksUi5URVhfQ09PUkQ9R2MoKSxSLkdFTkVSSUM9X2woKSxSLklOVkFMSURfR0VPTUVUUllfVFlQRT1uZigpLFIuUE9JTlRfQ0xPVUQ9eWwoKSxSLlRSSUFOR1VMQVJfTUVTSD1nbCgpLFIuRFRfSU5WQUxJRD1BbCgpLFIuRFRfSU5UOD1ibCgpLFIuRFRfVUlOVDg9d2woKSxSLkRUX0lOVDE2PVRsKCksUi5EVF9VSU5UMTY9T2woKSxSLkRUX0lOVDMyPUVsKCksUi5EVF9VSU5UMzI9b2YoKSxSLkRUX0lOVDY0PVJsKCksUi5EVF9VSU5UNjQ9U2woKSxSLkRUX0ZMT0FUMzI9Q2woKSxSLkRUX0ZMT0FUNjQ9eGwoKSxSLkRUX0JPT0w9UGwoKSxSLkRUX1RZUEVTX0NPVU5UPU1sKCksUi5PSz1ObCgpLFIuRFJBQ09fRVJST1I9QnMoKSxSLklPX0VSUk9SPUlsKCksUi5JTlZBTElEX1BBUkFNRVRFUj12bCgpLFIuVU5TVVBQT1JURURfVkVSU0lPTj1EbCgpLFIuVU5LTk9XTl9WRVJTSU9OPUxsKCl9b2U/eigpOnBuLnVuc2hpZnQoeil9KCksdHlwZW9mIFIub25Nb2R1bGVQYXJzZWQ9PSJmdW5jdGlvbiImJlIub25Nb2R1bGVQYXJzZWQoKSxSLkRlY29kZXIucHJvdG90eXBlLkdldEVuY29kZWRHZW9tZXRyeVR5cGU9ZnVuY3Rpb24oeil7aWYoei5fX2NsYXNzX18mJnouX19jbGFzc19fPT09Ui5EZWNvZGVyQnVmZmVyKXJldHVybiBSLkRlY29kZXIucHJvdG90eXBlLkdldEVuY29kZWRHZW9tZXRyeVR5cGVfRGVwcmVjYXRlZCh6KTtpZig4PnouYnl0ZUxlbmd0aClyZXR1cm4gUi5JTlZBTElEX0dFT01FVFJZX1RZUEU7c3dpdGNoKHpbN10pe2Nhc2UgMDpyZXR1cm4gUi5QT0lOVF9DTE9VRDtjYXNlIDE6cmV0dXJuIFIuVFJJQU5HVUxBUl9NRVNIO2RlZmF1bHQ6cmV0dXJuIFIuSU5WQUxJRF9HRU9NRVRSWV9UWVBFfX0sZS5yZWFkeX19KCk7dHlwZW9mIHB1PT0ib2JqZWN0IiYmdHlwZW9mIHlnPT0ib2JqZWN0Ij95Zy5leHBvcnRzPV9nOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLGZ1bmN0aW9uKCl7cmV0dXJuIF9nfSk6dHlwZW9mIHB1PT0ib2JqZWN0IiYmKHB1LkRyYWNvRGVjb2Rlck1vZHVsZT1fZyl9KTt2YXIgYmc9e307bWUoYmcse2RlZmF1bHQ6KCk9PlVVfSk7ZnVuY3Rpb24gTVUodCxlKXtsZXQgbj10Lm51bV9wb2ludHMoKSxvPXQubnVtX2ZhY2VzKCkscj1uZXcgQ2UuRHJhY29JbnQzMkFycmF5LGk9byozLHM9RHQuY3JlYXRlVHlwZWRBcnJheShuLGkpLGY9MDtmb3IobGV0IHU9MDt1PG87Kyt1KWUuR2V0RmFjZUZyb21NZXNoKHQsdSxyKSxzW2YrMF09ci5HZXRWYWx1ZSgwKSxzW2YrMV09ci5HZXRWYWx1ZSgxKSxzW2YrMl09ci5HZXRWYWx1ZSgyKSxmKz0zO3JldHVybiBDZS5kZXN0cm95KHIpLHt0eXBlZEFycmF5OnMsbnVtYmVyT2ZJbmRpY2VzOml9fWZ1bmN0aW9uIE5VKHQsZSxuLG8scil7bGV0IGkscztvLnF1YW50aXphdGlvbkJpdHM8PTg/KHM9bmV3IENlLkRyYWNvVUludDhBcnJheSxpPW5ldyBVaW50OEFycmF5KHIpLGUuR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHModCxuLHMpKTpvLnF1YW50aXphdGlvbkJpdHM8PTE2PyhzPW5ldyBDZS5EcmFjb1VJbnQxNkFycmF5LGk9bmV3IFVpbnQxNkFycmF5KHIpLGUuR2V0QXR0cmlidXRlVUludDE2Rm9yQWxsUG9pbnRzKHQsbixzKSk6KHM9bmV3IENlLkRyYWNvRmxvYXQzMkFycmF5LGk9bmV3IEZsb2F0MzJBcnJheShyKSxlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzKHQsbixzKSk7Zm9yKGxldCBmPTA7ZjxyOysrZilpW2ZdPXMuR2V0VmFsdWUoZik7cmV0dXJuIENlLmRlc3Ryb3kocyksaX1mdW5jdGlvbiBJVSh0LGUsbixvKXtsZXQgcixpO3N3aXRjaChuLmRhdGFfdHlwZSgpKXtjYXNlIDE6Y2FzZSAxMTppPW5ldyBDZS5EcmFjb0ludDhBcnJheSxyPW5ldyBJbnQ4QXJyYXkobyksZS5HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzKHQsbixpKTticmVhaztjYXNlIDI6aT1uZXcgQ2UuRHJhY29VSW50OEFycmF5LHI9bmV3IFVpbnQ4QXJyYXkobyksZS5HZXRBdHRyaWJ1dGVVSW50OEZvckFsbFBvaW50cyh0LG4saSk7YnJlYWs7Y2FzZSAzOmk9bmV3IENlLkRyYWNvSW50MTZBcnJheSxyPW5ldyBJbnQxNkFycmF5KG8pLGUuR2V0QXR0cmlidXRlSW50MTZGb3JBbGxQb2ludHModCxuLGkpO2JyZWFrO2Nhc2UgNDppPW5ldyBDZS5EcmFjb1VJbnQxNkFycmF5LHI9bmV3IFVpbnQxNkFycmF5KG8pLGUuR2V0QXR0cmlidXRlVUludDE2Rm9yQWxsUG9pbnRzKHQsbixpKTticmVhaztjYXNlIDU6Y2FzZSA3Omk9bmV3IENlLkRyYWNvSW50MzJBcnJheSxyPW5ldyBJbnQzMkFycmF5KG8pLGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHModCxuLGkpO2JyZWFrO2Nhc2UgNjpjYXNlIDg6aT1uZXcgQ2UuRHJhY29VSW50MzJBcnJheSxyPW5ldyBVaW50MzJBcnJheShvKSxlLkdldEF0dHJpYnV0ZVVJbnQzMkZvckFsbFBvaW50cyh0LG4saSk7YnJlYWs7Y2FzZSA5OmNhc2UgMTA6aT1uZXcgQ2UuRHJhY29GbG9hdDMyQXJyYXkscj1uZXcgRmxvYXQzMkFycmF5KG8pLGUuR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHModCxuLGkpO2JyZWFrfWZvcihsZXQgcz0wO3M8bzsrK3MpcltzXT1pLkdldFZhbHVlKHMpO3JldHVybiBDZS5kZXN0cm95KGkpLHJ9ZnVuY3Rpb24gcDIodCxlLG4pe2xldCBvPXQubnVtX3BvaW50cygpLHI9bi5udW1fY29tcG9uZW50cygpLGkscz1uZXcgQ2UuQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtO2lmKHMuSW5pdEZyb21BdHRyaWJ1dGUobikpe2xldCBsPW5ldyBBcnJheShyKTtmb3IobGV0IHA9MDtwPHI7KytwKWxbcF09cy5taW5fdmFsdWUocCk7aT17cXVhbnRpemF0aW9uQml0czpzLnF1YW50aXphdGlvbl9iaXRzKCksbWluVmFsdWVzOmwscmFuZ2U6cy5yYW5nZSgpLG9jdEVuY29kZWQ6ITF9fUNlLmRlc3Ryb3kocykscz1uZXcgQ2UuQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybSxzLkluaXRGcm9tQXR0cmlidXRlKG4pJiYoaT17cXVhbnRpemF0aW9uQml0czpzLnF1YW50aXphdGlvbl9iaXRzKCksb2N0RW5jb2RlZDohMH0pLENlLmRlc3Ryb3kocyk7bGV0IGY9bypyLHU7aChpKT91PU5VKHQsZSxuLGksZik6dT1JVSh0LGUsbixmKTtsZXQgYz1vdC5mcm9tVHlwZWRBcnJheSh1KTtyZXR1cm57YXJyYXk6dSxkYXRhOntjb21wb25lbnRzUGVyQXR0cmlidXRlOnIsY29tcG9uZW50RGF0YXR5cGU6YyxieXRlT2Zmc2V0Om4uYnl0ZV9vZmZzZXQoKSxieXRlU3RyaWRlOm90LmdldFNpemVJbkJ5dGVzKGMpKnIsbm9ybWFsaXplZDpuLm5vcm1hbGl6ZWQoKSxxdWFudGl6YXRpb246aX19fWZ1bmN0aW9uIHZVKHQpe2xldCBlPW5ldyBDZS5EZWNvZGVyO3QuZGVxdWFudGl6ZUluU2hhZGVyJiYoZS5Ta2lwQXR0cmlidXRlVHJhbnNmb3JtKENlLlBPU0lUSU9OKSxlLlNraXBBdHRyaWJ1dGVUcmFuc2Zvcm0oQ2UuTk9STUFMKSk7bGV0IG49bmV3IENlLkRlY29kZXJCdWZmZXI7aWYobi5Jbml0KHQuYnVmZmVyLHQuYnVmZmVyLmxlbmd0aCksZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlKG4pIT09Q2UuUE9JTlRfQ0xPVUQpdGhyb3cgbmV3IGdlKCJEcmFjbyBnZW9tZXRyeSB0eXBlIG11c3QgYmUgUE9JTlRfQ0xPVUQuIik7bGV0IHI9bmV3IENlLlBvaW50Q2xvdWQsaT1lLkRlY29kZUJ1ZmZlclRvUG9pbnRDbG91ZChuLHIpO2lmKCFpLm9rKCl8fHIucHRyPT09MCl0aHJvdyBuZXcgZ2UoYEVycm9yIGRlY29kaW5nIGRyYWNvIHBvaW50IGNsb3VkOiAke2kuZXJyb3JfbXNnKCl9YCk7Q2UuZGVzdHJveShuKTtsZXQgcz17fSxmPXQucHJvcGVydGllcztmb3IobGV0IHUgaW4gZilpZihmLmhhc093blByb3BlcnR5KHUpKXtsZXQgYztpZih1PT09IlBPU0lUSU9OInx8dT09PSJOT1JNQUwiKXtsZXQgbD1lLkdldEF0dHJpYnV0ZUlkKHIsQ2VbdV0pO2M9ZS5HZXRBdHRyaWJ1dGUocixsKX1lbHNle2xldCBsPWZbdV07Yz1lLkdldEF0dHJpYnV0ZUJ5VW5pcXVlSWQocixsKX1zW3VdPXAyKHIsZSxjKX1yZXR1cm4gQ2UuZGVzdHJveShyKSxDZS5kZXN0cm95KGUpLHN9ZnVuY3Rpb24gRFUodCl7bGV0IGU9bmV3IENlLkRlY29kZXIsbj1bIlBPU0lUSU9OIiwiTk9STUFMIiwiQ09MT1IiLCJURVhfQ09PUkQiXTtpZih0LmRlcXVhbnRpemVJblNoYWRlcilmb3IobGV0IHA9MDtwPG4ubGVuZ3RoOysrcCllLlNraXBBdHRyaWJ1dGVUcmFuc2Zvcm0oQ2VbbltwXV0pO2xldCBvPXQuYnVmZmVyVmlldyxyPW5ldyBDZS5EZWNvZGVyQnVmZmVyO2lmKHIuSW5pdCh0LmFycmF5LG8uYnl0ZUxlbmd0aCksZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlKHIpIT09Q2UuVFJJQU5HVUxBUl9NRVNIKXRocm93IG5ldyBnZSgiVW5zdXBwb3J0ZWQgZHJhY28gbWVzaCBnZW9tZXRyeSB0eXBlLiIpO2xldCBzPW5ldyBDZS5NZXNoLGY9ZS5EZWNvZGVCdWZmZXJUb01lc2gocixzKTtpZighZi5vaygpfHxzLnB0cj09PTApdGhyb3cgbmV3IGdlKGBFcnJvciBkZWNvZGluZyBkcmFjbyBtZXNoIGdlb21ldHJ5OiAke2YuZXJyb3JfbXNnKCl9YCk7Q2UuZGVzdHJveShyKTtsZXQgdT17fSxjPXQuY29tcHJlc3NlZEF0dHJpYnV0ZXM7Zm9yKGxldCBwIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShwKSl7bGV0IGQ9Y1twXSxtPWUuR2V0QXR0cmlidXRlQnlVbmlxdWVJZChzLGQpO3VbcF09cDIocyxlLG0pfWxldCBsPXtpbmRleEFycmF5Ok1VKHMsZSksYXR0cmlidXRlRGF0YTp1fTtyZXR1cm4gQ2UuZGVzdHJveShzKSxDZS5kZXN0cm95KGUpLGx9YXN5bmMgZnVuY3Rpb24gTFUodCxlKXtyZXR1cm4gaCh0LmJ1ZmZlclZpZXcpP0RVKHQpOnZVKHQpfWFzeW5jIGZ1bmN0aW9uIEZVKHQsZSl7bGV0IG49dC53ZWJBc3NlbWJseUNvbmZpZztyZXR1cm4gaChuKSYmaChuLndhc21CaW5hcnlGaWxlKT9DZT1hd2FpdCgwLEFnLmRlZmF1bHQpKG4pOkNlPWF3YWl0KDAsQWcuZGVmYXVsdCkoKSwhMH1hc3luYyBmdW5jdGlvbiBCVSh0LGUpe2xldCBuPXQud2ViQXNzZW1ibHlDb25maWc7cmV0dXJuIGgobik/RlUodCxlKTpMVSh0LGUpfXZhciBBZyxDZSxVVSx3Zz1aKCgpPT57RGUoKTthdCgpOyRlKCk7SnIoKTtzbygpO0FnPW1vKGdnKCksMSk7VVU9UWUoQlUpfSk7ZnVuY3Rpb24gVGcodCxlKXtpZihUZy5wYXNzVGhyb3VnaERhdGFGb3JUZXN0aW5nKXJldHVybiBlO3kudHlwZU9mLm9iamVjdCgia2V5Iix0KSx5LnR5cGVPZi5vYmplY3QoImRhdGEiLGUpO2xldCBuPXQuYnl0ZUxlbmd0aDtpZihuPT09MHx8biU0IT09MCl0aHJvdyBuZXcgZ2UoIlRoZSBsZW5ndGggb2Yga2V5IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAgYW5kIGEgbXVsdGlwbGUgb2YgNC4iKTtsZXQgbz1uZXcgRGF0YVZpZXcoZSkscj1vLmdldFVpbnQzMigwLCEwKTtpZihyPT09VlV8fHI9PT1rVSlyZXR1cm4gZTtsZXQgaT1uZXcgRGF0YVZpZXcodCkscz0wLGY9ZS5ieXRlTGVuZ3RoLHU9Zi1mJTgsYz1uLGwscD04O2Zvcig7czx1Oylmb3IocD0ocCs4KSUyNCxsPXA7czx1JiZsPGM7KW8uc2V0VWludDMyKHMsby5nZXRVaW50MzIocywhMCleaS5nZXRVaW50MzIobCwhMCksITApLG8uc2V0VWludDMyKHMrNCxvLmdldFVpbnQzMihzKzQsITApXmkuZ2V0VWludDMyKGwrNCwhMCksITApLHMrPTgsbCs9MjQ7aWYoczxmKWZvcihsPj1jJiYocD0ocCs4KSUyNCxsPXApO3M8Zjspby5zZXRVaW50OChzLG8uZ2V0VWludDgocyleaS5nZXRVaW50OChsKSkscysrLGwrK312YXIgVlUsa1UsZDIsbTI9WigoKT0+e1l0KCk7SnIoKTtWVT0xOTUzMDI5ODA1LGtVPTI5MTcwMzQxMDA7VGcucGFzc1Rocm91Z2hEYXRhRm9yVGVzdGluZz0hMTtkMj1UZ30pO2Z1bmN0aW9uIEdVKHQsZSl7cmV0dXJuKHQmZSkhPT0wfXZhciBHYSxoMj1aKCgpPT57R2E9R1V9KTtmdW5jdGlvbiB5aSh0LGUsbixvLHIsaSl7dGhpcy5fYml0cz10LHRoaXMuY25vZGVWZXJzaW9uPWUsdGhpcy5pbWFnZXJ5VmVyc2lvbj1uLHRoaXMudGVycmFpblZlcnNpb249byx0aGlzLmltYWdlcnlQcm92aWRlcj1yLHRoaXMudGVycmFpblByb3ZpZGVyPWksdGhpcy5hbmNlc3Rvckhhc1RlcnJhaW49ITEsdGhpcy50ZXJyYWluU3RhdGU9dm9pZCAwfXZhciB6VSxfMixqVSxIVSxxVSx5MixnMj1aKCgpPT57YXQoKTtoMigpO3pVPVsxLDIsNCw4XSxfMj0xNSxqVT0xNixIVT02NCxxVT0xMjg7eWkuY2xvbmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaChlKT8oZS5fYml0cz10Ll9iaXRzLGUuY25vZGVWZXJzaW9uPXQuY25vZGVWZXJzaW9uLGUuaW1hZ2VyeVZlcnNpb249dC5pbWFnZXJ5VmVyc2lvbixlLnRlcnJhaW5WZXJzaW9uPXQudGVycmFpblZlcnNpb24sZS5pbWFnZXJ5UHJvdmlkZXI9dC5pbWFnZXJ5UHJvdmlkZXIsZS50ZXJyYWluUHJvdmlkZXI9dC50ZXJyYWluUHJvdmlkZXIpOmU9bmV3IHlpKHQuX2JpdHMsdC5jbm9kZVZlcnNpb24sdC5pbWFnZXJ5VmVyc2lvbix0LnRlcnJhaW5WZXJzaW9uLHQuaW1hZ2VyeVByb3ZpZGVyLHQudGVycmFpblByb3ZpZGVyKSxlLmFuY2VzdG9ySGFzVGVycmFpbj10LmFuY2VzdG9ySGFzVGVycmFpbixlLnRlcnJhaW5TdGF0ZT10LnRlcnJhaW5TdGF0ZSxlfTt5aS5wcm90b3R5cGUuc2V0UGFyZW50PWZ1bmN0aW9uKHQpe3RoaXMuYW5jZXN0b3JIYXNUZXJyYWluPXQuYW5jZXN0b3JIYXNUZXJyYWlufHx0aGlzLmhhc1RlcnJhaW4oKX07eWkucHJvdG90eXBlLmhhc1N1YnRyZWU9ZnVuY3Rpb24oKXtyZXR1cm4gR2EodGhpcy5fYml0cyxqVSl9O3lpLnByb3RvdHlwZS5oYXNJbWFnZXJ5PWZ1bmN0aW9uKCl7cmV0dXJuIEdhKHRoaXMuX2JpdHMsSFUpfTt5aS5wcm90b3R5cGUuaGFzVGVycmFpbj1mdW5jdGlvbigpe3JldHVybiBHYSh0aGlzLl9iaXRzLHFVKX07eWkucHJvdG90eXBlLmhhc0NoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIEdhKHRoaXMuX2JpdHMsXzIpfTt5aS5wcm90b3R5cGUuaGFzQ2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIEdhKHRoaXMuX2JpdHMselVbdF0pfTt5aS5wcm90b3R5cGUuZ2V0Q2hpbGRCaXRtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JpdHMmXzJ9O3kyPXlpfSk7dmFyIGIyPVVuKChtdXQsQTIpPT57InVzZSBzdHJpY3QiO3ZhciBLVT0odCxlLG4sbyk9PntsZXQgcj10JjY1NTM1fDAsaT10Pj4+MTYmNjU1MzV8MCxzPTA7Zm9yKDtuIT09MDspe3M9bj4yZTM/MmUzOm4sbi09cztkbyByPXIrZVtvKytdfDAsaT1pK3J8MDt3aGlsZSgtLXMpO3IlPTY1NTIxLGklPTY1NTIxfXJldHVybiByfGk8PDE2fDB9O0EyLmV4cG9ydHM9S1V9KTt2YXIgVDI9VW4oKGh1dCx3Mik9PnsidXNlIHN0cmljdCI7dmFyIFdVPSgpPT57bGV0IHQsZT1bXTtmb3IodmFyIG49MDtuPDI1NjtuKyspe3Q9bjtmb3IodmFyIG89MDtvPDg7bysrKXQ9dCYxPzM5ODgyOTIzODRedD4+PjE6dD4+PjE7ZVtuXT10fXJldHVybiBlfSxYVT1uZXcgVWludDMyQXJyYXkoV1UoKSksWVU9KHQsZSxuLG8pPT57bGV0IHI9WFUsaT1vK247dF49LTE7Zm9yKGxldCBzPW87czxpO3MrKyl0PXQ+Pj44XnJbKHReZVtzXSkmMjU1XTtyZXR1cm4gdF4tMX07dzIuZXhwb3J0cz1ZVX0pO3ZhciBFMj1VbigoX3V0LE8yKT0+eyJ1c2Ugc3RyaWN0IjtPMi5leHBvcnRzPWZ1bmN0aW9uKGUsbil7bGV0IG8scixpLHMsZix1LGMsbCxwLGQsbSxfLGcsYixPLFQsRSx3LEMsTixJLEwsdixELFU9ZS5zdGF0ZTtvPWUubmV4dF9pbix2PWUuaW5wdXQscj1vKyhlLmF2YWlsX2luLTUpLGk9ZS5uZXh0X291dCxEPWUub3V0cHV0LHM9aS0obi1lLmF2YWlsX291dCksZj1pKyhlLmF2YWlsX291dC0yNTcpLHU9VS5kbWF4LGM9VS53c2l6ZSxsPVUud2hhdmUscD1VLnduZXh0LGQ9VS53aW5kb3csbT1VLmhvbGQsXz1VLmJpdHMsZz1VLmxlbmNvZGUsYj1VLmRpc3Rjb2RlLE89KDE8PFUubGVuYml0cyktMSxUPSgxPDxVLmRpc3RiaXRzKS0xO3Q6ZG97XzwxNSYmKG0rPXZbbysrXTw8XyxfKz04LG0rPXZbbysrXTw8XyxfKz04KSxFPWdbbSZPXTtlOmZvcig7Oyl7aWYodz1FPj4+MjQsbT4+Pj13LF8tPXcsdz1FPj4+MTYmMjU1LHc9PT0wKURbaSsrXT1FJjY1NTM1O2Vsc2UgaWYodyYxNil7Qz1FJjY1NTM1LHcmPTE1LHcmJihfPHcmJihtKz12W28rK108PF8sXys9OCksQys9bSYoMTw8dyktMSxtPj4+PXcsXy09dyksXzwxNSYmKG0rPXZbbysrXTw8XyxfKz04LG0rPXZbbysrXTw8XyxfKz04KSxFPWJbbSZUXTtuOmZvcig7Oyl7aWYodz1FPj4+MjQsbT4+Pj13LF8tPXcsdz1FPj4+MTYmMjU1LHcmMTYpe2lmKE49RSY2NTUzNSx3Jj0xNSxfPHcmJihtKz12W28rK108PF8sXys9OCxfPHcmJihtKz12W28rK108PF8sXys9OCkpLE4rPW0mKDE8PHcpLTEsTj51KXtlLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLFUubW9kZT0xNjIwOTticmVhayB0fWlmKG0+Pj49dyxfLT13LHc9aS1zLE4+dyl7aWYodz1OLXcsdz5sJiZVLnNhbmUpe2UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsVS5tb2RlPTE2MjA5O2JyZWFrIHR9aWYoST0wLEw9ZCxwPT09MCl7aWYoSSs9Yy13LHc8Qyl7Qy09dztkbyBEW2krK109ZFtJKytdO3doaWxlKC0tdyk7ST1pLU4sTD1EfX1lbHNlIGlmKHA8dyl7aWYoSSs9YytwLXcsdy09cCx3PEMpe0MtPXc7ZG8gRFtpKytdPWRbSSsrXTt3aGlsZSgtLXcpO2lmKEk9MCxwPEMpe3c9cCxDLT13O2RvIERbaSsrXT1kW0krK107d2hpbGUoLS13KTtJPWktTixMPUR9fX1lbHNlIGlmKEkrPXAtdyx3PEMpe0MtPXc7ZG8gRFtpKytdPWRbSSsrXTt3aGlsZSgtLXcpO0k9aS1OLEw9RH1mb3IoO0M+MjspRFtpKytdPUxbSSsrXSxEW2krK109TFtJKytdLERbaSsrXT1MW0krK10sQy09MztDJiYoRFtpKytdPUxbSSsrXSxDPjEmJihEW2krK109TFtJKytdKSl9ZWxzZXtJPWktTjtkbyBEW2krK109RFtJKytdLERbaSsrXT1EW0krK10sRFtpKytdPURbSSsrXSxDLT0zO3doaWxlKEM+Mik7QyYmKERbaSsrXT1EW0krK10sQz4xJiYoRFtpKytdPURbSSsrXSkpfX1lbHNlIGlmKHcmNjQpe2UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLFUubW9kZT0xNjIwOTticmVhayB0fWVsc2V7RT1iWyhFJjY1NTM1KSsobSYoMTw8dyktMSldO2NvbnRpbnVlIG59YnJlYWt9fWVsc2UgaWYodyY2NClpZih3JjMyKXtVLm1vZGU9MTYxOTE7YnJlYWsgdH1lbHNle2UubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLFUubW9kZT0xNjIwOTticmVhayB0fWVsc2V7RT1nWyhFJjY1NTM1KSsobSYoMTw8dyktMSldO2NvbnRpbnVlIGV9YnJlYWt9fXdoaWxlKG88ciYmaTxmKTtDPV8+PjMsby09QyxfLT1DPDwzLG0mPSgxPDxfKS0xLGUubmV4dF9pbj1vLGUubmV4dF9vdXQ9aSxlLmF2YWlsX2luPW88cj81KyhyLW8pOjUtKG8tciksZS5hdmFpbF9vdXQ9aTxmPzI1NysoZi1pKToyNTctKGktZiksVS5ob2xkPW0sVS5iaXRzPV99fSk7dmFyIFMyPVVuKCh5dXQsUjIpPT57InVzZSBzdHJpY3QiO3ZhciAkVT1uZXcgVWludDE2QXJyYXkoWzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNTgsMCwwXSksWlU9bmV3IFVpbnQ4QXJyYXkoWzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIxLDE2LDcyLDc4XSksUVU9bmV3IFVpbnQxNkFycmF5KFsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSksSlU9bmV3IFVpbnQ4QXJyYXkoWzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XSksdDY9KHQsZSxuLG8scixpLHMsZik9PntsZXQgdT1mLmJpdHMsYz0wLGw9MCxwPTAsZD0wLG09MCxfPTAsZz0wLGI9MCxPPTAsVD0wLEUsdyxDLE4sSSxMPW51bGwsdixEPW5ldyBVaW50MTZBcnJheSgxNSsxKSxVPW5ldyBVaW50MTZBcnJheSgxNSsxKSxBPW51bGwsUyxQLEY7Zm9yKGM9MDtjPD0xNTtjKyspRFtjXT0wO2ZvcihsPTA7bDxvO2wrKylEW2VbbitsXV0rKztmb3IobT11LGQ9MTU7ZD49MSYmRFtkXT09PTA7ZC0tKTtpZihtPmQmJihtPWQpLGQ9PT0wKXJldHVybiByW2krK109MTw8MjR8NjQ8PDE2fDAscltpKytdPTE8PDI0fDY0PDwxNnwwLGYuYml0cz0xLDA7Zm9yKHA9MTtwPGQmJkRbcF09PT0wO3ArKyk7Zm9yKG08cCYmKG09cCksYj0xLGM9MTtjPD0xNTtjKyspaWYoYjw8PTEsYi09RFtjXSxiPDApcmV0dXJuLTE7aWYoYj4wJiYodD09PTB8fGQhPT0xKSlyZXR1cm4tMTtmb3IoVVsxXT0wLGM9MTtjPDE1O2MrKylVW2MrMV09VVtjXStEW2NdO2ZvcihsPTA7bDxvO2wrKyllW24rbF0hPT0wJiYoc1tVW2VbbitsXV0rK109bCk7aWYodD09PTA/KEw9QT1zLHY9MjApOnQ9PT0xPyhMPSRVLEE9WlUsdj0yNTcpOihMPVFVLEE9SlUsdj0wKSxUPTAsbD0wLGM9cCxJPWksXz1tLGc9MCxDPS0xLE89MTw8bSxOPU8tMSx0PT09MSYmTz44NTJ8fHQ9PT0yJiZPPjU5MilyZXR1cm4gMTtmb3IoOzspe1M9Yy1nLHNbbF0rMTx2PyhQPTAsRj1zW2xdKTpzW2xdPj12PyhQPUFbc1tsXS12XSxGPUxbc1tsXS12XSk6KFA9MzIrNjQsRj0wKSxFPTE8PGMtZyx3PTE8PF8scD13O2RvIHctPUUscltJKyhUPj5nKSt3XT1TPDwyNHxQPDwxNnxGfDA7d2hpbGUodyE9PTApO2ZvcihFPTE8PGMtMTtUJkU7KUU+Pj0xO2lmKEUhPT0wPyhUJj1FLTEsVCs9RSk6VD0wLGwrKywtLURbY109PT0wKXtpZihjPT09ZClicmVhaztjPWVbbitzW2xdXX1pZihjPm0mJihUJk4pIT09Qyl7Zm9yKGc9PT0wJiYoZz1tKSxJKz1wLF89Yy1nLGI9MTw8XztfK2c8ZCYmKGItPURbXytnXSwhKGI8PTApKTspXysrLGI8PD0xO2lmKE8rPTE8PF8sdD09PTEmJk8+ODUyfHx0PT09MiYmTz41OTIpcmV0dXJuIDE7Qz1UJk4scltDXT1tPDwyNHxfPDwxNnxJLWl8MH19cmV0dXJuIFQhPT0wJiYocltJK1RdPWMtZzw8MjR8NjQ8PDE2fDApLGYuYml0cz1tLDB9O1IyLmV4cG9ydHM9dDZ9KTt2YXIgb209VW4oKGd1dCxDMik9PnsidXNlIHN0cmljdCI7QzIuZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lOQ19GTFVTSDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAsWl9TVFJFQU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0yLFpfREFUQV9FUlJPUjotMyxaX01FTV9FUlJPUjotNCxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNTSU9OOjAsWl9CRVNUX1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpfRklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9TVFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dOOjIsWl9ERUZMQVRFRDo4fX0pO3ZhciBhUz1VbigoQXV0LFlyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgeGc9YjIoKSxnaT1UMigpLGU2PUUyKCksZHU9UzIoKSxuNj0wLEoyPTEsdFM9Mix7Wl9GSU5JU0g6eDIsWl9CTE9DSzpvNixaX1RSRUVTOnJtLFpfT0s6Q2MsWl9TVFJFQU1fRU5EOnI2LFpfTkVFRF9ESUNUOmk2LFpfU1RSRUFNX0VSUk9SOk1yLFpfREFUQV9FUlJPUjplUyxaX01FTV9FUlJPUjpQZyxaX0JVRl9FUlJPUjpzNixaX0RFRkxBVEVEOlAyfT1vbSgpLGFtPTE2MTgwLE0yPTE2MTgxLE4yPTE2MTgyLEkyPTE2MTgzLHYyPTE2MTg0LEQyPTE2MTg1LEwyPTE2MTg2LEYyPTE2MTg3LEIyPTE2MTg4LFUyPTE2MTg5LGNtPTE2MTkwLHFpPTE2MTkxLE9nPTE2MTkyLFYyPTE2MTkzLEVnPTE2MTk0LGsyPTE2MTk1LEcyPTE2MTk2LHoyPTE2MTk3LGoyPTE2MTk4LGltPTE2MTk5LHNtPTE2MjAwLEgyPTE2MjAxLHEyPTE2MjAyLEsyPTE2MjAzLFcyPTE2MjA0LFgyPTE2MjA1LFJnPTE2MjA2LFkyPTE2MjA3LCQyPTE2MjA4LFBuPTE2MjA5LE1nPTE2MjEwLG5TPTE2MjExLGM2PTg1MixhNj01OTIsZjY9MTUsdTY9ZjYsWjI9dD0+KHQ+Pj4yNCYyNTUpKyh0Pj4+OCY2NTI4MCkrKCh0JjY1MjgwKTw8OCkrKCh0JjI1NSk8PDI0KTtmdW5jdGlvbiBsNigpe3RoaXMuc3RybT1udWxsLHRoaXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5kaXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgVWludDE2QXJyYXkoMzIwKSx0aGlzLndvcms9bmV3IFVpbnQxNkFycmF5KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfXZhciB4Yz10PT57aWYoIXQpcmV0dXJuIDE7bGV0IGU9dC5zdGF0ZTtyZXR1cm4hZXx8ZS5zdHJtIT09dHx8ZS5tb2RlPGFtfHxlLm1vZGU+blM/MTowfSxvUz10PT57aWYoeGModCkpcmV0dXJuIE1yO2xldCBlPXQuc3RhdGU7cmV0dXJuIHQudG90YWxfaW49dC50b3RhbF9vdXQ9ZS50b3RhbD0wLHQubXNnPSIiLGUud3JhcCYmKHQuYWRsZXI9ZS53cmFwJjEpLGUubW9kZT1hbSxlLmxhc3Q9MCxlLmhhdmVkaWN0PTAsZS5mbGFncz0tMSxlLmRtYXg9MzI3NjgsZS5oZWFkPW51bGwsZS5ob2xkPTAsZS5iaXRzPTAsZS5sZW5jb2RlPWUubGVuZHluPW5ldyBJbnQzMkFycmF5KGM2KSxlLmRpc3Rjb2RlPWUuZGlzdGR5bj1uZXcgSW50MzJBcnJheShhNiksZS5zYW5lPTEsZS5iYWNrPS0xLENjfSxyUz10PT57aWYoeGModCkpcmV0dXJuIE1yO2xldCBlPXQuc3RhdGU7cmV0dXJuIGUud3NpemU9MCxlLndoYXZlPTAsZS53bmV4dD0wLG9TKHQpfSxpUz0odCxlKT0+e2xldCBuO2lmKHhjKHQpKXJldHVybiBNcjtsZXQgbz10LnN0YXRlO3JldHVybiBlPDA/KG49MCxlPS1lKToobj0oZT4+NCkrNSxlPDQ4JiYoZSY9MTUpKSxlJiYoZTw4fHxlPjE1KT9Ncjooby53aW5kb3chPT1udWxsJiZvLndiaXRzIT09ZSYmKG8ud2luZG93PW51bGwpLG8ud3JhcD1uLG8ud2JpdHM9ZSxyUyh0KSl9LHNTPSh0LGUpPT57aWYoIXQpcmV0dXJuIE1yO2xldCBuPW5ldyBsNjt0LnN0YXRlPW4sbi5zdHJtPXQsbi53aW5kb3c9bnVsbCxuLm1vZGU9YW07bGV0IG89aVModCxlKTtyZXR1cm4gbyE9PUNjJiYodC5zdGF0ZT1udWxsKSxvfSxwNj10PT5zUyh0LHU2KSxRMj0hMCxTZyxDZyxkNj10PT57aWYoUTIpe1NnPW5ldyBJbnQzMkFycmF5KDUxMiksQ2c9bmV3IEludDMyQXJyYXkoMzIpO2xldCBlPTA7Zm9yKDtlPDE0NDspdC5sZW5zW2UrK109ODtmb3IoO2U8MjU2Oyl0LmxlbnNbZSsrXT05O2Zvcig7ZTwyODA7KXQubGVuc1tlKytdPTc7Zm9yKDtlPDI4ODspdC5sZW5zW2UrK109ODtmb3IoZHUoSjIsdC5sZW5zLDAsMjg4LFNnLDAsdC53b3JrLHtiaXRzOjl9KSxlPTA7ZTwzMjspdC5sZW5zW2UrK109NTtkdSh0Uyx0LmxlbnMsMCwzMixDZywwLHQud29yayx7Yml0czo1fSksUTI9ITF9dC5sZW5jb2RlPVNnLHQubGVuYml0cz05LHQuZGlzdGNvZGU9Q2csdC5kaXN0Yml0cz01fSxjUz0odCxlLG4sbyk9PntsZXQgcixpPXQuc3RhdGU7cmV0dXJuIGkud2luZG93PT09bnVsbCYmKGkud3NpemU9MTw8aS53Yml0cyxpLnduZXh0PTAsaS53aGF2ZT0wLGkud2luZG93PW5ldyBVaW50OEFycmF5KGkud3NpemUpKSxvPj1pLndzaXplPyhpLndpbmRvdy5zZXQoZS5zdWJhcnJheShuLWkud3NpemUsbiksMCksaS53bmV4dD0wLGkud2hhdmU9aS53c2l6ZSk6KHI9aS53c2l6ZS1pLnduZXh0LHI+byYmKHI9byksaS53aW5kb3cuc2V0KGUuc3ViYXJyYXkobi1vLG4tbytyKSxpLnduZXh0KSxvLT1yLG8/KGkud2luZG93LnNldChlLnN1YmFycmF5KG4tbyxuKSwwKSxpLnduZXh0PW8saS53aGF2ZT1pLndzaXplKTooaS53bmV4dCs9cixpLnduZXh0PT09aS53c2l6ZSYmKGkud25leHQ9MCksaS53aGF2ZTxpLndzaXplJiYoaS53aGF2ZSs9cikpKSwwfSxtNj0odCxlKT0+e2xldCBuLG8scixpLHMsZix1LGMsbCxwLGQsbSxfLGcsYj0wLE8sVCxFLHcsQyxOLEksTCx2PW5ldyBVaW50OEFycmF5KDQpLEQsVSxBPW5ldyBVaW50OEFycmF5KFsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSk7aWYoeGModCl8fCF0Lm91dHB1dHx8IXQuaW5wdXQmJnQuYXZhaWxfaW4hPT0wKXJldHVybiBNcjtuPXQuc3RhdGUsbi5tb2RlPT09cWkmJihuLm1vZGU9T2cpLHM9dC5uZXh0X291dCxyPXQub3V0cHV0LHU9dC5hdmFpbF9vdXQsaT10Lm5leHRfaW4sbz10LmlucHV0LGY9dC5hdmFpbF9pbixjPW4uaG9sZCxsPW4uYml0cyxwPWYsZD11LEw9Q2M7dDpmb3IoOzspc3dpdGNoKG4ubW9kZSl7Y2FzZSBhbTppZihuLndyYXA9PT0wKXtuLm1vZGU9T2c7YnJlYWt9Zm9yKDtsPDE2Oyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9aWYobi53cmFwJjImJmM9PT0zNTYxNSl7bi53Yml0cz09PTAmJihuLndiaXRzPTE1KSxuLmNoZWNrPTAsdlswXT1jJjI1NSx2WzFdPWM+Pj44JjI1NSxuLmNoZWNrPWdpKG4uY2hlY2ssdiwyLDApLGM9MCxsPTAsbi5tb2RlPU0yO2JyZWFrfWlmKG4uaGVhZCYmKG4uaGVhZC5kb25lPSExKSwhKG4ud3JhcCYxKXx8KCgoYyYyNTUpPDw4KSsoYz4+OCkpJTMxKXt0Lm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsbi5tb2RlPVBuO2JyZWFrfWlmKChjJjE1KSE9PVAyKXt0Lm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLG4ubW9kZT1QbjticmVha31pZihjPj4+PTQsbC09NCxJPShjJjE1KSs4LG4ud2JpdHM9PT0wJiYobi53Yml0cz1JKSxJPjE1fHxJPm4ud2JpdHMpe3QubXNnPSJpbnZhbGlkIHdpbmRvdyBzaXplIixuLm1vZGU9UG47YnJlYWt9bi5kbWF4PTE8PG4ud2JpdHMsbi5mbGFncz0wLHQuYWRsZXI9bi5jaGVjaz0xLG4ubW9kZT1jJjUxMj9VMjpxaSxjPTAsbD0wO2JyZWFrO2Nhc2UgTTI6Zm9yKDtsPDE2Oyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9aWYobi5mbGFncz1jLChuLmZsYWdzJjI1NSkhPT1QMil7dC5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixuLm1vZGU9UG47YnJlYWt9aWYobi5mbGFncyY1NzM0NCl7dC5tc2c9InVua25vd24gaGVhZGVyIGZsYWdzIHNldCIsbi5tb2RlPVBuO2JyZWFrfW4uaGVhZCYmKG4uaGVhZC50ZXh0PWM+PjgmMSksbi5mbGFncyY1MTImJm4ud3JhcCY0JiYodlswXT1jJjI1NSx2WzFdPWM+Pj44JjI1NSxuLmNoZWNrPWdpKG4uY2hlY2ssdiwyLDApKSxjPTAsbD0wLG4ubW9kZT1OMjtjYXNlIE4yOmZvcig7bDwzMjspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fW4uaGVhZCYmKG4uaGVhZC50aW1lPWMpLG4uZmxhZ3MmNTEyJiZuLndyYXAmNCYmKHZbMF09YyYyNTUsdlsxXT1jPj4+OCYyNTUsdlsyXT1jPj4+MTYmMjU1LHZbM109Yz4+PjI0JjI1NSxuLmNoZWNrPWdpKG4uY2hlY2ssdiw0LDApKSxjPTAsbD0wLG4ubW9kZT1JMjtjYXNlIEkyOmZvcig7bDwxNjspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fW4uaGVhZCYmKG4uaGVhZC54ZmxhZ3M9YyYyNTUsbi5oZWFkLm9zPWM+PjgpLG4uZmxhZ3MmNTEyJiZuLndyYXAmNCYmKHZbMF09YyYyNTUsdlsxXT1jPj4+OCYyNTUsbi5jaGVjaz1naShuLmNoZWNrLHYsMiwwKSksYz0wLGw9MCxuLm1vZGU9djI7Y2FzZSB2MjppZihuLmZsYWdzJjEwMjQpe2Zvcig7bDwxNjspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fW4ubGVuZ3RoPWMsbi5oZWFkJiYobi5oZWFkLmV4dHJhX2xlbj1jKSxuLmZsYWdzJjUxMiYmbi53cmFwJjQmJih2WzBdPWMmMjU1LHZbMV09Yz4+PjgmMjU1LG4uY2hlY2s9Z2kobi5jaGVjayx2LDIsMCkpLGM9MCxsPTB9ZWxzZSBuLmhlYWQmJihuLmhlYWQuZXh0cmE9bnVsbCk7bi5tb2RlPUQyO2Nhc2UgRDI6aWYobi5mbGFncyYxMDI0JiYobT1uLmxlbmd0aCxtPmYmJihtPWYpLG0mJihuLmhlYWQmJihJPW4uaGVhZC5leHRyYV9sZW4tbi5sZW5ndGgsbi5oZWFkLmV4dHJhfHwobi5oZWFkLmV4dHJhPW5ldyBVaW50OEFycmF5KG4uaGVhZC5leHRyYV9sZW4pKSxuLmhlYWQuZXh0cmEuc2V0KG8uc3ViYXJyYXkoaSxpK20pLEkpKSxuLmZsYWdzJjUxMiYmbi53cmFwJjQmJihuLmNoZWNrPWdpKG4uY2hlY2ssbyxtLGkpKSxmLT1tLGkrPW0sbi5sZW5ndGgtPW0pLG4ubGVuZ3RoKSlicmVhayB0O24ubGVuZ3RoPTAsbi5tb2RlPUwyO2Nhc2UgTDI6aWYobi5mbGFncyYyMDQ4KXtpZihmPT09MClicmVhayB0O209MDtkbyBJPW9baSttKytdLG4uaGVhZCYmSSYmbi5sZW5ndGg8NjU1MzYmJihuLmhlYWQubmFtZSs9U3RyaW5nLmZyb21DaGFyQ29kZShJKSk7d2hpbGUoSSYmbTxmKTtpZihuLmZsYWdzJjUxMiYmbi53cmFwJjQmJihuLmNoZWNrPWdpKG4uY2hlY2ssbyxtLGkpKSxmLT1tLGkrPW0sSSlicmVhayB0fWVsc2Ugbi5oZWFkJiYobi5oZWFkLm5hbWU9bnVsbCk7bi5sZW5ndGg9MCxuLm1vZGU9RjI7Y2FzZSBGMjppZihuLmZsYWdzJjQwOTYpe2lmKGY9PT0wKWJyZWFrIHQ7bT0wO2RvIEk9b1tpK20rK10sbi5oZWFkJiZJJiZuLmxlbmd0aDw2NTUzNiYmKG4uaGVhZC5jb21tZW50Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpKTt3aGlsZShJJiZtPGYpO2lmKG4uZmxhZ3MmNTEyJiZuLndyYXAmNCYmKG4uY2hlY2s9Z2kobi5jaGVjayxvLG0saSkpLGYtPW0saSs9bSxJKWJyZWFrIHR9ZWxzZSBuLmhlYWQmJihuLmhlYWQuY29tbWVudD1udWxsKTtuLm1vZGU9QjI7Y2FzZSBCMjppZihuLmZsYWdzJjUxMil7Zm9yKDtsPDE2Oyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9aWYobi53cmFwJjQmJmMhPT0obi5jaGVjayY2NTUzNSkpe3QubXNnPSJoZWFkZXIgY3JjIG1pc21hdGNoIixuLm1vZGU9UG47YnJlYWt9Yz0wLGw9MH1uLmhlYWQmJihuLmhlYWQuaGNyYz1uLmZsYWdzPj45JjEsbi5oZWFkLmRvbmU9ITApLHQuYWRsZXI9bi5jaGVjaz0wLG4ubW9kZT1xaTticmVhaztjYXNlIFUyOmZvcig7bDwzMjspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fXQuYWRsZXI9bi5jaGVjaz1aMihjKSxjPTAsbD0wLG4ubW9kZT1jbTtjYXNlIGNtOmlmKG4uaGF2ZWRpY3Q9PT0wKXJldHVybiB0Lm5leHRfb3V0PXMsdC5hdmFpbF9vdXQ9dSx0Lm5leHRfaW49aSx0LmF2YWlsX2luPWYsbi5ob2xkPWMsbi5iaXRzPWwsaTY7dC5hZGxlcj1uLmNoZWNrPTEsbi5tb2RlPXFpO2Nhc2UgcWk6aWYoZT09PW82fHxlPT09cm0pYnJlYWsgdDtjYXNlIE9nOmlmKG4ubGFzdCl7Yz4+Pj1sJjcsbC09bCY3LG4ubW9kZT1SZzticmVha31mb3IoO2w8Mzspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fXN3aXRjaChuLmxhc3Q9YyYxLGM+Pj49MSxsLT0xLGMmMyl7Y2FzZSAwOm4ubW9kZT1WMjticmVhaztjYXNlIDE6aWYoZDYobiksbi5tb2RlPWltLGU9PT1ybSl7Yz4+Pj0yLGwtPTI7YnJlYWsgdH1icmVhaztjYXNlIDI6bi5tb2RlPUcyO2JyZWFrO2Nhc2UgMzp0Lm1zZz0iaW52YWxpZCBibG9jayB0eXBlIixuLm1vZGU9UG59Yz4+Pj0yLGwtPTI7YnJlYWs7Y2FzZSBWMjpmb3IoYz4+Pj1sJjcsbC09bCY3O2w8MzI7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZigoYyY2NTUzNSkhPT0oYz4+PjE2XjY1NTM1KSl7dC5tc2c9ImludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMiLG4ubW9kZT1QbjticmVha31pZihuLmxlbmd0aD1jJjY1NTM1LGM9MCxsPTAsbi5tb2RlPUVnLGU9PT1ybSlicmVhayB0O2Nhc2UgRWc6bi5tb2RlPWsyO2Nhc2UgazI6aWYobT1uLmxlbmd0aCxtKXtpZihtPmYmJihtPWYpLG0+dSYmKG09dSksbT09PTApYnJlYWsgdDtyLnNldChvLnN1YmFycmF5KGksaSttKSxzKSxmLT1tLGkrPW0sdS09bSxzKz1tLG4ubGVuZ3RoLT1tO2JyZWFrfW4ubW9kZT1xaTticmVhaztjYXNlIEcyOmZvcig7bDwxNDspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWlmKG4ubmxlbj0oYyYzMSkrMjU3LGM+Pj49NSxsLT01LG4ubmRpc3Q9KGMmMzEpKzEsYz4+Pj01LGwtPTUsbi5uY29kZT0oYyYxNSkrNCxjPj4+PTQsbC09NCxuLm5sZW4+Mjg2fHxuLm5kaXN0PjMwKXt0Lm1zZz0idG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMiLG4ubW9kZT1QbjticmVha31uLmhhdmU9MCxuLm1vZGU9ejI7Y2FzZSB6Mjpmb3IoO24uaGF2ZTxuLm5jb2RlOyl7Zm9yKDtsPDM7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1uLmxlbnNbQVtuLmhhdmUrK11dPWMmNyxjPj4+PTMsbC09M31mb3IoO24uaGF2ZTwxOTspbi5sZW5zW0Fbbi5oYXZlKytdXT0wO2lmKG4ubGVuY29kZT1uLmxlbmR5bixuLmxlbmJpdHM9NyxEPXtiaXRzOm4ubGVuYml0c30sTD1kdShuNixuLmxlbnMsMCwxOSxuLmxlbmNvZGUsMCxuLndvcmssRCksbi5sZW5iaXRzPUQuYml0cyxMKXt0Lm1zZz0iaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0IixuLm1vZGU9UG47YnJlYWt9bi5oYXZlPTAsbi5tb2RlPWoyO2Nhc2UgajI6Zm9yKDtuLmhhdmU8bi5ubGVuK24ubmRpc3Q7KXtmb3IoO2I9bi5sZW5jb2RlW2MmKDE8PG4ubGVuYml0cyktMV0sTz1iPj4+MjQsVD1iPj4+MTYmMjU1LEU9YiY2NTUzNSwhKE88PWwpOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9aWYoRTwxNiljPj4+PU8sbC09TyxuLmxlbnNbbi5oYXZlKytdPUU7ZWxzZXtpZihFPT09MTYpe2ZvcihVPU8rMjtsPFU7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZihjPj4+PU8sbC09TyxuLmhhdmU9PT0wKXt0Lm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsbi5tb2RlPVBuO2JyZWFrfUk9bi5sZW5zW24uaGF2ZS0xXSxtPTMrKGMmMyksYz4+Pj0yLGwtPTJ9ZWxzZSBpZihFPT09MTcpe2ZvcihVPU8rMztsPFU7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1jPj4+PU8sbC09TyxJPTAsbT0zKyhjJjcpLGM+Pj49MyxsLT0zfWVsc2V7Zm9yKFU9Tys3O2w8VTspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWM+Pj49TyxsLT1PLEk9MCxtPTExKyhjJjEyNyksYz4+Pj03LGwtPTd9aWYobi5oYXZlK20+bi5ubGVuK24ubmRpc3Qpe3QubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixuLm1vZGU9UG47YnJlYWt9Zm9yKDttLS07KW4ubGVuc1tuLmhhdmUrK109SX19aWYobi5tb2RlPT09UG4pYnJlYWs7aWYobi5sZW5zWzI1Nl09PT0wKXt0Lm1zZz0iaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrIixuLm1vZGU9UG47YnJlYWt9aWYobi5sZW5iaXRzPTksRD17Yml0czpuLmxlbmJpdHN9LEw9ZHUoSjIsbi5sZW5zLDAsbi5ubGVuLG4ubGVuY29kZSwwLG4ud29yayxEKSxuLmxlbmJpdHM9RC5iaXRzLEwpe3QubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQiLG4ubW9kZT1QbjticmVha31pZihuLmRpc3RiaXRzPTYsbi5kaXN0Y29kZT1uLmRpc3RkeW4sRD17Yml0czpuLmRpc3RiaXRzfSxMPWR1KHRTLG4ubGVucyxuLm5sZW4sbi5uZGlzdCxuLmRpc3Rjb2RlLDAsbi53b3JrLEQpLG4uZGlzdGJpdHM9RC5iaXRzLEwpe3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlcyBzZXQiLG4ubW9kZT1QbjticmVha31pZihuLm1vZGU9aW0sZT09PXJtKWJyZWFrIHQ7Y2FzZSBpbTpuLm1vZGU9c207Y2FzZSBzbTppZihmPj02JiZ1Pj0yNTgpe3QubmV4dF9vdXQ9cyx0LmF2YWlsX291dD11LHQubmV4dF9pbj1pLHQuYXZhaWxfaW49ZixuLmhvbGQ9YyxuLmJpdHM9bCxlNih0LGQpLHM9dC5uZXh0X291dCxyPXQub3V0cHV0LHU9dC5hdmFpbF9vdXQsaT10Lm5leHRfaW4sbz10LmlucHV0LGY9dC5hdmFpbF9pbixjPW4uaG9sZCxsPW4uYml0cyxuLm1vZGU9PT1xaSYmKG4uYmFjaz0tMSk7YnJlYWt9Zm9yKG4uYmFjaz0wO2I9bi5sZW5jb2RlW2MmKDE8PG4ubGVuYml0cyktMV0sTz1iPj4+MjQsVD1iPj4+MTYmMjU1LEU9YiY2NTUzNSwhKE88PWwpOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9aWYoVCYmIShUJjI0MCkpe2Zvcih3PU8sQz1ULE49RTtiPW4ubGVuY29kZVtOKygoYyYoMTw8dytDKS0xKT4+dyldLE89Yj4+PjI0LFQ9Yj4+PjE2JjI1NSxFPWImNjU1MzUsISh3K088PWwpOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9Yz4+Pj13LGwtPXcsbi5iYWNrKz13fWlmKGM+Pj49TyxsLT1PLG4uYmFjays9TyxuLmxlbmd0aD1FLFQ9PT0wKXtuLm1vZGU9WDI7YnJlYWt9aWYoVCYzMil7bi5iYWNrPS0xLG4ubW9kZT1xaTticmVha31pZihUJjY0KXt0Lm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixuLm1vZGU9UG47YnJlYWt9bi5leHRyYT1UJjE1LG4ubW9kZT1IMjtjYXNlIEgyOmlmKG4uZXh0cmEpe2ZvcihVPW4uZXh0cmE7bDxVOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9bi5sZW5ndGgrPWMmKDE8PG4uZXh0cmEpLTEsYz4+Pj1uLmV4dHJhLGwtPW4uZXh0cmEsbi5iYWNrKz1uLmV4dHJhfW4ud2FzPW4ubGVuZ3RoLG4ubW9kZT1xMjtjYXNlIHEyOmZvcig7Yj1uLmRpc3Rjb2RlW2MmKDE8PG4uZGlzdGJpdHMpLTFdLE89Yj4+PjI0LFQ9Yj4+PjE2JjI1NSxFPWImNjU1MzUsIShPPD1sKTspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWlmKCEoVCYyNDApKXtmb3Iodz1PLEM9VCxOPUU7Yj1uLmRpc3Rjb2RlW04rKChjJigxPDx3K0MpLTEpPj53KV0sTz1iPj4+MjQsVD1iPj4+MTYmMjU1LEU9YiY2NTUzNSwhKHcrTzw9bCk7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1jPj4+PXcsbC09dyxuLmJhY2srPXd9aWYoYz4+Pj1PLGwtPU8sbi5iYWNrKz1PLFQmNjQpe3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLG4ubW9kZT1QbjticmVha31uLm9mZnNldD1FLG4uZXh0cmE9VCYxNSxuLm1vZGU9SzI7Y2FzZSBLMjppZihuLmV4dHJhKXtmb3IoVT1uLmV4dHJhO2w8VTspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fW4ub2Zmc2V0Kz1jJigxPDxuLmV4dHJhKS0xLGM+Pj49bi5leHRyYSxsLT1uLmV4dHJhLG4uYmFjays9bi5leHRyYX1pZihuLm9mZnNldD5uLmRtYXgpe3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsbi5tb2RlPVBuO2JyZWFrfW4ubW9kZT1XMjtjYXNlIFcyOmlmKHU9PT0wKWJyZWFrIHQ7aWYobT1kLXUsbi5vZmZzZXQ+bSl7aWYobT1uLm9mZnNldC1tLG0+bi53aGF2ZSYmbi5zYW5lKXt0Lm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLG4ubW9kZT1QbjticmVha31tPm4ud25leHQ/KG0tPW4ud25leHQsXz1uLndzaXplLW0pOl89bi53bmV4dC1tLG0+bi5sZW5ndGgmJihtPW4ubGVuZ3RoKSxnPW4ud2luZG93fWVsc2UgZz1yLF89cy1uLm9mZnNldCxtPW4ubGVuZ3RoO20+dSYmKG09dSksdS09bSxuLmxlbmd0aC09bTtkbyByW3MrK109Z1tfKytdO3doaWxlKC0tbSk7bi5sZW5ndGg9PT0wJiYobi5tb2RlPXNtKTticmVhaztjYXNlIFgyOmlmKHU9PT0wKWJyZWFrIHQ7cltzKytdPW4ubGVuZ3RoLHUtLSxuLm1vZGU9c207YnJlYWs7Y2FzZSBSZzppZihuLndyYXApe2Zvcig7bDwzMjspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGN8PW9baSsrXTw8bCxsKz04fWlmKGQtPXUsdC50b3RhbF9vdXQrPWQsbi50b3RhbCs9ZCxuLndyYXAmNCYmZCYmKHQuYWRsZXI9bi5jaGVjaz1uLmZsYWdzP2dpKG4uY2hlY2sscixkLHMtZCk6eGcobi5jaGVjayxyLGQscy1kKSksZD11LG4ud3JhcCY0JiYobi5mbGFncz9jOloyKGMpKSE9PW4uY2hlY2spe3QubXNnPSJpbmNvcnJlY3QgZGF0YSBjaGVjayIsbi5tb2RlPVBuO2JyZWFrfWM9MCxsPTB9bi5tb2RlPVkyO2Nhc2UgWTI6aWYobi53cmFwJiZuLmZsYWdzKXtmb3IoO2w8MzI7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZihuLndyYXAmNCYmYyE9PShuLnRvdGFsJjQyOTQ5NjcyOTUpKXt0Lm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsbi5tb2RlPVBuO2JyZWFrfWM9MCxsPTB9bi5tb2RlPSQyO2Nhc2UgJDI6TD1yNjticmVhayB0O2Nhc2UgUG46TD1lUzticmVhayB0O2Nhc2UgTWc6cmV0dXJuIFBnO2Nhc2UgblM6ZGVmYXVsdDpyZXR1cm4gTXJ9cmV0dXJuIHQubmV4dF9vdXQ9cyx0LmF2YWlsX291dD11LHQubmV4dF9pbj1pLHQuYXZhaWxfaW49ZixuLmhvbGQ9YyxuLmJpdHM9bCwobi53c2l6ZXx8ZCE9PXQuYXZhaWxfb3V0JiZuLm1vZGU8UG4mJihuLm1vZGU8Umd8fGUhPT14MikpJiZjUyh0LHQub3V0cHV0LHQubmV4dF9vdXQsZC10LmF2YWlsX291dCk/KG4ubW9kZT1NZyxQZyk6KHAtPXQuYXZhaWxfaW4sZC09dC5hdmFpbF9vdXQsdC50b3RhbF9pbis9cCx0LnRvdGFsX291dCs9ZCxuLnRvdGFsKz1kLG4ud3JhcCY0JiZkJiYodC5hZGxlcj1uLmNoZWNrPW4uZmxhZ3M/Z2kobi5jaGVjayxyLGQsdC5uZXh0X291dC1kKTp4ZyhuLmNoZWNrLHIsZCx0Lm5leHRfb3V0LWQpKSx0LmRhdGFfdHlwZT1uLmJpdHMrKG4ubGFzdD82NDowKSsobi5tb2RlPT09cWk/MTI4OjApKyhuLm1vZGU9PT1pbXx8bi5tb2RlPT09RWc/MjU2OjApLChwPT09MCYmZD09PTB8fGU9PT14MikmJkw9PT1DYyYmKEw9czYpLEwpfSxoNj10PT57aWYoeGModCkpcmV0dXJuIE1yO2xldCBlPXQuc3RhdGU7cmV0dXJuIGUud2luZG93JiYoZS53aW5kb3c9bnVsbCksdC5zdGF0ZT1udWxsLENjfSxfNj0odCxlKT0+e2lmKHhjKHQpKXJldHVybiBNcjtsZXQgbj10LnN0YXRlO3JldHVybiBuLndyYXAmMj8obi5oZWFkPWUsZS5kb25lPSExLENjKTpNcn0seTY9KHQsZSk9PntsZXQgbj1lLmxlbmd0aCxvLHIsaTtyZXR1cm4geGModCl8fChvPXQuc3RhdGUsby53cmFwIT09MCYmby5tb2RlIT09Y20pP01yOm8ubW9kZT09PWNtJiYocj0xLHI9eGcocixlLG4sMCksciE9PW8uY2hlY2spP2VTOihpPWNTKHQsZSxuLG4pLGk/KG8ubW9kZT1NZyxQZyk6KG8uaGF2ZWRpY3Q9MSxDYykpfTtZci5leHBvcnRzLmluZmxhdGVSZXNldD1yUztZci5leHBvcnRzLmluZmxhdGVSZXNldDI9aVM7WXIuZXhwb3J0cy5pbmZsYXRlUmVzZXRLZWVwPW9TO1lyLmV4cG9ydHMuaW5mbGF0ZUluaXQ9cDY7WXIuZXhwb3J0cy5pbmZsYXRlSW5pdDI9c1M7WXIuZXhwb3J0cy5pbmZsYXRlPW02O1lyLmV4cG9ydHMuaW5mbGF0ZUVuZD1oNjtZci5leHBvcnRzLmluZmxhdGVHZXRIZWFkZXI9XzY7WXIuZXhwb3J0cy5pbmZsYXRlU2V0RGljdGlvbmFyeT15NjtZci5leHBvcnRzLmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0pO3ZhciBmUz1VbigoYnV0LE5nKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZzY9KHQsZSk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpO05nLmV4cG9ydHMuYXNzaWduPWZ1bmN0aW9uKHQpe2xldCBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtmb3IoO2UubGVuZ3RoOyl7bGV0IG49ZS5zaGlmdCgpO2lmKG4pe2lmKHR5cGVvZiBuIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKG4rIm11c3QgYmUgbm9uLW9iamVjdCIpO2ZvcihsZXQgbyBpbiBuKWc2KG4sbykmJih0W29dPW5bb10pfX1yZXR1cm4gdH07TmcuZXhwb3J0cy5mbGF0dGVuQ2h1bmtzPXQ9PntsZXQgZT0wO2ZvcihsZXQgbz0wLHI9dC5sZW5ndGg7bzxyO28rKyllKz10W29dLmxlbmd0aDtsZXQgbj1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IG89MCxyPTAsaT10Lmxlbmd0aDtvPGk7bysrKXtsZXQgcz10W29dO24uc2V0KHMscikscis9cy5sZW5ndGh9cmV0dXJuIG59fSk7dmFyIGxTPVVuKCh3dXQsZm0pPT57InVzZSBzdHJpY3QiO3ZhciB1Uz0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaHt1Uz0hMX12YXIgbXU9bmV3IFVpbnQ4QXJyYXkoMjU2KTtmb3IobGV0IHQ9MDt0PDI1Njt0KyspbXVbdF09dD49MjUyPzY6dD49MjQ4PzU6dD49MjQwPzQ6dD49MjI0PzM6dD49MTkyPzI6MTttdVsyNTRdPW11WzI1NF09MTtmbS5leHBvcnRzLnN0cmluZzJidWY9dD0+e2lmKHR5cGVvZiBUZXh0RW5jb2Rlcj09ImZ1bmN0aW9uIiYmVGV4dEVuY29kZXIucHJvdG90eXBlLmVuY29kZSlyZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpO2xldCBlLG4sbyxyLGkscz10Lmxlbmd0aCxmPTA7Zm9yKHI9MDtyPHM7cisrKW49dC5jaGFyQ29kZUF0KHIpLChuJjY0NTEyKT09PTU1Mjk2JiZyKzE8cyYmKG89dC5jaGFyQ29kZUF0KHIrMSksKG8mNjQ1MTIpPT09NTYzMjAmJihuPTY1NTM2KyhuLTU1Mjk2PDwxMCkrKG8tNTYzMjApLHIrKykpLGYrPW48MTI4PzE6bjwyMDQ4PzI6bjw2NTUzNj8zOjQ7Zm9yKGU9bmV3IFVpbnQ4QXJyYXkoZiksaT0wLHI9MDtpPGY7cisrKW49dC5jaGFyQ29kZUF0KHIpLChuJjY0NTEyKT09PTU1Mjk2JiZyKzE8cyYmKG89dC5jaGFyQ29kZUF0KHIrMSksKG8mNjQ1MTIpPT09NTYzMjAmJihuPTY1NTM2KyhuLTU1Mjk2PDwxMCkrKG8tNTYzMjApLHIrKykpLG48MTI4P2VbaSsrXT1uOm48MjA0OD8oZVtpKytdPTE5MnxuPj4+NixlW2krK109MTI4fG4mNjMpOm48NjU1MzY/KGVbaSsrXT0yMjR8bj4+PjEyLGVbaSsrXT0xMjh8bj4+PjYmNjMsZVtpKytdPTEyOHxuJjYzKTooZVtpKytdPTI0MHxuPj4+MTgsZVtpKytdPTEyOHxuPj4+MTImNjMsZVtpKytdPTEyOHxuPj4+NiY2MyxlW2krK109MTI4fG4mNjMpO3JldHVybiBlfTt2YXIgQTY9KHQsZSk9PntpZihlPDY1NTM0JiZ0LnN1YmFycmF5JiZ1UylyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHQubGVuZ3RoPT09ZT90OnQuc3ViYXJyYXkoMCxlKSk7bGV0IG49IiI7Zm9yKGxldCBvPTA7bzxlO28rKyluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbb10pO3JldHVybiBufTtmbS5leHBvcnRzLmJ1ZjJzdHJpbmc9KHQsZSk9PntsZXQgbj1lfHx0Lmxlbmd0aDtpZih0eXBlb2YgVGV4dERlY29kZXI9PSJmdW5jdGlvbiImJlRleHREZWNvZGVyLnByb3RvdHlwZS5kZWNvZGUpcmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZSh0LnN1YmFycmF5KDAsZSkpO2xldCBvLHIsaT1uZXcgQXJyYXkobioyKTtmb3Iocj0wLG89MDtvPG47KXtsZXQgcz10W28rK107aWYoczwxMjgpe2lbcisrXT1zO2NvbnRpbnVlfWxldCBmPW11W3NdO2lmKGY+NCl7aVtyKytdPTY1NTMzLG8rPWYtMTtjb250aW51ZX1mb3IocyY9Zj09PTI/MzE6Zj09PTM/MTU6NztmPjEmJm88bjspcz1zPDw2fHRbbysrXSY2MyxmLS07aWYoZj4xKXtpW3IrK109NjU1MzM7Y29udGludWV9czw2NTUzNj9pW3IrK109czoocy09NjU1MzYsaVtyKytdPTU1Mjk2fHM+PjEwJjEwMjMsaVtyKytdPTU2MzIwfHMmMTAyMyl9cmV0dXJuIEE2KGkscil9O2ZtLmV4cG9ydHMudXRmOGJvcmRlcj0odCxlKT0+e2U9ZXx8dC5sZW5ndGgsZT50Lmxlbmd0aCYmKGU9dC5sZW5ndGgpO2xldCBuPWUtMTtmb3IoO24+PTAmJih0W25dJjE5Mik9PT0xMjg7KW4tLTtyZXR1cm4gbjwwfHxuPT09MD9lOm4rbXVbdFtuXV0+ZT9uOmV9fSk7dmFyIGRTPVVuKChUdXQscFMpPT57InVzZSBzdHJpY3QiO3BTLmV4cG9ydHM9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifX0pO3ZhciBoUz1VbigoT3V0LG1TKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiNigpe3RoaXMuaW5wdXQ9bnVsbCx0aGlzLm5leHRfaW49MCx0aGlzLmF2YWlsX2luPTAsdGhpcy50b3RhbF9pbj0wLHRoaXMub3V0cHV0PW51bGwsdGhpcy5uZXh0X291dD0wLHRoaXMuYXZhaWxfb3V0PTAsdGhpcy50b3RhbF9vdXQ9MCx0aGlzLm1zZz0iIix0aGlzLnN0YXRlPW51bGwsdGhpcy5kYXRhX3R5cGU9Mix0aGlzLmFkbGVyPTB9bVMuZXhwb3J0cz1iNn0pO3ZhciB5Uz1VbigoRXV0LF9TKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB3Nigpe3RoaXMudGV4dD0wLHRoaXMudGltZT0wLHRoaXMueGZsYWdzPTAsdGhpcy5vcz0wLHRoaXMuZXh0cmE9bnVsbCx0aGlzLmV4dHJhX2xlbj0wLHRoaXMubmFtZT0iIix0aGlzLmNvbW1lbnQ9IiIsdGhpcy5oY3JjPTAsdGhpcy5kb25lPSExfV9TLmV4cG9ydHM9dzZ9KTt2YXIgd1M9VW4oKFJ1dCx6YSk9PnsidXNlIHN0cmljdCI7dmFyIEtpPWFTKCksQVM9ZlMoKSxEZz1sUygpLExnPWRTKCksVDY9aFMoKSxPNj15UygpLGJTPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcse1pfTk9fRkxVU0g6RTYsWl9GSU5JU0g6UjYsWl9PSzpodSxaX1NUUkVBTV9FTkQ6SWcsWl9ORUVEX0RJQ1Q6dmcsWl9TVFJFQU1fRVJST1I6UzYsWl9EQVRBX0VSUk9SOmdTLFpfTUVNX0VSUk9SOkM2fT1vbSgpO2Z1bmN0aW9uIF91KHQpe3RoaXMub3B0aW9ucz1BUy5hc3NpZ24oe2NodW5rU2l6ZToxMDI0KjY0LHdpbmRvd0JpdHM6MTUsdG86IiJ9LHR8fHt9KTtsZXQgZT10aGlzLm9wdGlvbnM7ZS5yYXcmJmUud2luZG93Qml0cz49MCYmZS53aW5kb3dCaXRzPDE2JiYoZS53aW5kb3dCaXRzPS1lLndpbmRvd0JpdHMsZS53aW5kb3dCaXRzPT09MCYmKGUud2luZG93Qml0cz0tMTUpKSxlLndpbmRvd0JpdHM+PTAmJmUud2luZG93Qml0czwxNiYmISh0JiZ0LndpbmRvd0JpdHMpJiYoZS53aW5kb3dCaXRzKz0zMiksZS53aW5kb3dCaXRzPjE1JiZlLndpbmRvd0JpdHM8NDgmJihlLndpbmRvd0JpdHMmMTV8fChlLndpbmRvd0JpdHN8PTE1KSksdGhpcy5lcnI9MCx0aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgVDYsdGhpcy5zdHJtLmF2YWlsX291dD0wO2xldCBuPUtpLmluZmxhdGVJbml0Mih0aGlzLnN0cm0sZS53aW5kb3dCaXRzKTtpZihuIT09aHUpdGhyb3cgbmV3IEVycm9yKExnW25dKTtpZih0aGlzLmhlYWRlcj1uZXcgTzYsS2kuaW5mbGF0ZUdldEhlYWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpLGUuZGljdGlvbmFyeSYmKHR5cGVvZiBlLmRpY3Rpb25hcnk9PSJzdHJpbmciP2UuZGljdGlvbmFyeT1EZy5zdHJpbmcyYnVmKGUuZGljdGlvbmFyeSk6YlMuY2FsbChlLmRpY3Rpb25hcnkpPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIiYmKGUuZGljdGlvbmFyeT1uZXcgVWludDhBcnJheShlLmRpY3Rpb25hcnkpKSxlLnJhdyYmKG49S2kuaW5mbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLGUuZGljdGlvbmFyeSksbiE9PWh1KSkpdGhyb3cgbmV3IEVycm9yKExnW25dKX1fdS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe2xldCBuPXRoaXMuc3RybSxvPXRoaXMub3B0aW9ucy5jaHVua1NpemUscj10aGlzLm9wdGlvbnMuZGljdGlvbmFyeSxpLHMsZjtpZih0aGlzLmVuZGVkKXJldHVybiExO2ZvcihlPT09fn5lP3M9ZTpzPWU9PT0hMD9SNjpFNixiUy5jYWxsKHQpPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIj9uLmlucHV0PW5ldyBVaW50OEFycmF5KHQpOm4uaW5wdXQ9dCxuLm5leHRfaW49MCxuLmF2YWlsX2luPW4uaW5wdXQubGVuZ3RoOzspe2ZvcihuLmF2YWlsX291dD09PTAmJihuLm91dHB1dD1uZXcgVWludDhBcnJheShvKSxuLm5leHRfb3V0PTAsbi5hdmFpbF9vdXQ9byksaT1LaS5pbmZsYXRlKG4scyksaT09PXZnJiZyJiYoaT1LaS5pbmZsYXRlU2V0RGljdGlvbmFyeShuLHIpLGk9PT1odT9pPUtpLmluZmxhdGUobixzKTppPT09Z1MmJihpPXZnKSk7bi5hdmFpbF9pbj4wJiZpPT09SWcmJm4uc3RhdGUud3JhcD4wJiZ0W24ubmV4dF9pbl0hPT0wOylLaS5pbmZsYXRlUmVzZXQobiksaT1LaS5pbmZsYXRlKG4scyk7c3dpdGNoKGkpe2Nhc2UgUzY6Y2FzZSBnUzpjYXNlIHZnOmNhc2UgQzY6cmV0dXJuIHRoaXMub25FbmQoaSksdGhpcy5lbmRlZD0hMCwhMX1pZihmPW4uYXZhaWxfb3V0LG4ubmV4dF9vdXQmJihuLmF2YWlsX291dD09PTB8fGk9PT1JZykpaWYodGhpcy5vcHRpb25zLnRvPT09InN0cmluZyIpe2xldCB1PURnLnV0Zjhib3JkZXIobi5vdXRwdXQsbi5uZXh0X291dCksYz1uLm5leHRfb3V0LXUsbD1EZy5idWYyc3RyaW5nKG4ub3V0cHV0LHUpO24ubmV4dF9vdXQ9YyxuLmF2YWlsX291dD1vLWMsYyYmbi5vdXRwdXQuc2V0KG4ub3V0cHV0LnN1YmFycmF5KHUsdStjKSwwKSx0aGlzLm9uRGF0YShsKX1lbHNlIHRoaXMub25EYXRhKG4ub3V0cHV0Lmxlbmd0aD09PW4ubmV4dF9vdXQ/bi5vdXRwdXQ6bi5vdXRwdXQuc3ViYXJyYXkoMCxuLm5leHRfb3V0KSk7aWYoIShpPT09aHUmJmY9PT0wKSl7aWYoaT09PUlnKXJldHVybiBpPUtpLmluZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKGkpLHRoaXMuZW5kZWQ9ITAsITA7aWYobi5hdmFpbF9pbj09PTApYnJlYWt9fXJldHVybiEwfTtfdS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKHQpe3RoaXMuY2h1bmtzLnB1c2godCl9O191LnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbih0KXt0PT09aHUmJih0aGlzLm9wdGlvbnMudG89PT0ic3RyaW5nIj90aGlzLnJlc3VsdD10aGlzLmNodW5rcy5qb2luKCIiKTp0aGlzLnJlc3VsdD1BUy5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9dCx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfTtmdW5jdGlvbiBGZyh0LGUpe2xldCBuPW5ldyBfdShlKTtpZihuLnB1c2godCksbi5lcnIpdGhyb3cgbi5tc2d8fExnW24uZXJyXTtyZXR1cm4gbi5yZXN1bHR9ZnVuY3Rpb24geDYodCxlKXtyZXR1cm4gZT1lfHx7fSxlLnJhdz0hMCxGZyh0LGUpfXphLmV4cG9ydHMuSW5mbGF0ZT1fdTt6YS5leHBvcnRzLmluZmxhdGU9Rmc7emEuZXhwb3J0cy5pbmZsYXRlUmF3PXg2O3phLmV4cG9ydHMudW5nemlwPUZnO3phLmV4cG9ydHMuY29uc3RhbnRzPW9tKCl9KTt2YXIgQmc9e307bWUoQmcse2RlZmF1bHQ6KCk9PkI2fSk7ZnVuY3Rpb24gUDYodCxlKXtsZXQgbj1Qcy5mcm9tU3RyaW5nKHQudHlwZSksbz10LmJ1ZmZlcjtkMih0LmtleSxvKTtsZXQgcj1GNihvKTtvPXIuYnVmZmVyO2xldCBpPXIubGVuZ3RoO3N3aXRjaChuKXtjYXNlIFBzLk1FVEFEQVRBOnJldHVybiBONihvLGksdC5xdWFkS2V5KTtjYXNlIFBzLlRFUlJBSU46cmV0dXJuIEQ2KG8saSxlKTtjYXNlIFBzLkRCUk9PVDpyZXR1cm4gZS5wdXNoKG8pLHtidWZmZXI6b319fWZ1bmN0aW9uIE42KHQsZSxuKXtsZXQgbz1uZXcgRGF0YVZpZXcodCkscj0wLGk9by5nZXRVaW50MzIociwhMCk7aWYocis9SGEsaSE9PU02KXRocm93IG5ldyBnZSgiSW52YWxpZCBtYWdpYyIpO2xldCBzPW8uZ2V0VWludDMyKHIsITApO2lmKHIrPUhhLHMhPT0xKXRocm93IG5ldyBnZSgiSW52YWxpZCBkYXRhIHR5cGUuIE11c3QgYmUgMSBmb3IgUXVhZFRyZWVQYWNrZXQiKTtsZXQgZj1vLmdldFVpbnQzMihyLCEwKTtpZihyKz1IYSxmIT09Mil0aHJvdyBuZXcgZ2UoIkludmFsaWQgUXVhZFRyZWVQYWNrZXQgdmVyc2lvbi4gT25seSB2ZXJzaW9uIDIgaXMgc3VwcG9ydGVkLiIpO2xldCB1PW8uZ2V0SW50MzIociwhMCk7cis9UGM7bGV0IGM9by5nZXRJbnQzMihyLCEwKTtpZihyKz1QYyxjIT09MzIpdGhyb3cgbmV3IGdlKCJJbnZhbGlkIGluc3RhbmNlIHNpemUuIik7bGV0IGw9by5nZXRJbnQzMihyLCEwKTtyKz1QYztsZXQgcD1vLmdldEludDMyKHIsITApO3IrPVBjO2xldCBkPW8uZ2V0SW50MzIociwhMCk7aWYocis9UGMsbCE9PXUqYytyKXRocm93IG5ldyBnZSgiSW52YWxpZCBkYXRhQnVmZmVyT2Zmc2V0Iik7aWYobCtwK2QhPT1lKXRocm93IG5ldyBnZSgiSW52YWxpZCBwYWNrZXQgb2Zmc2V0cyIpO2xldCBtPVtdO2ZvcihsZXQgRT0wO0U8dTsrK0Upe2xldCB3PW8uZ2V0VWludDgocik7KytyLCsrcjtsZXQgQz1vLmdldFVpbnQxNihyLCEwKTtyKz1qYTtsZXQgTj1vLmdldFVpbnQxNihyLCEwKTtyKz1qYTtsZXQgST1vLmdldFVpbnQxNihyLCEwKTtyKz1qYSxyKz1qYSxyKz1qYSxyKz1QYyxyKz1QYyxyKz04O2xldCBMPW8uZ2V0VWludDgocisrKSx2PW8uZ2V0VWludDgocisrKTtyKz1qYSxtLnB1c2gobmV3IHkyKHcsQyxOLEksTCx2KSl9bGV0IF89W10sZz0wO2Z1bmN0aW9uIGIoRSx3LEMpe2xldCBOPSExO2lmKEM9PT00KXtpZih3Lmhhc1N1YnRyZWUoKSlyZXR1cm47Tj0hMH1mb3IobGV0IEk9MDtJPDQ7KytJKXtsZXQgTD1FK0kudG9TdHJpbmcoKTtpZihOKV9bTF09bnVsbDtlbHNlIGlmKEM8NClpZighdy5oYXNDaGlsZChJKSlfW0xdPW51bGw7ZWxzZXtpZihnPT09dSl7Y29uc29sZS5sb2coIkluY29ycmVjdCBudW1iZXIgb2YgaW5zdGFuY2VzIik7cmV0dXJufWxldCB2PW1bZysrXTtfW0xdPXYsYihMLHYsQysxKX19fWxldCBPPTAsVD1tW2crK107cmV0dXJuIG49PT0iIj8rK086X1tuXT1ULGIobixULE8pLF99ZnVuY3Rpb24gRDYodCxlLG4pe2xldCBvPW5ldyBEYXRhVmlldyh0KSxyPWZ1bmN0aW9uKGYpe2ZvcihsZXQgdT0wO3U8djY7Kyt1KXtsZXQgYz1vLmdldFVpbnQzMihmLCEwKTtpZihmKz1IYSxmKz1jLGY+ZSl0aHJvdyBuZXcgZ2UoIk1hbGZvcm1lZCB0ZXJyYWluIHBhY2tldCBmb3VuZC4iKX1yZXR1cm4gZn0saT0wLHM9W107Zm9yKDtzLmxlbmd0aDxJNjspe2xldCBmPWk7aT1yKGkpO2xldCB1PXQuc2xpY2UoZixpKTtuLnB1c2godSkscy5wdXNoKHUpfXJldHVybiBzfWZ1bmN0aW9uIEY2KHQpe2xldCBlPW5ldyBEYXRhVmlldyh0KSxuPTAsbz1lLmdldFVpbnQzMihuLCEwKTtpZihuKz1IYSxvIT09VFMmJm8hPT1MNil0aHJvdyBuZXcgZ2UoIkludmFsaWQgbWFnaWMiKTtsZXQgcj1lLmdldFVpbnQzMihuLG89PT1UUyk7bis9SGE7bGV0IGk9bmV3IFVpbnQ4QXJyYXkodCxuKSxzPU9TLmRlZmF1bHQuaW5mbGF0ZShpKTtpZihzLmxlbmd0aCE9PXIpdGhyb3cgbmV3IGdlKCJTaXplIG9mIHBhY2tldCBkb2Vzbid0IG1hdGNoIGhlYWRlciIpO3JldHVybiBzfXZhciBPUyxqYSxQYyxIYSxQcyxNNixJNix2NixUUyxMNixCNixVZz1aKCgpPT57bTIoKTtnMigpO0pyKCk7T1M9bW8od1MoKSwxKTtzbygpO2phPVVpbnQxNkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULFBjPUludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQsSGE9VWludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQsUHM9e01FVEFEQVRBOjAsVEVSUkFJTjoxLERCUk9PVDoyfTtQcy5mcm9tU3RyaW5nPWZ1bmN0aW9uKHQpe2lmKHQ9PT0iTWV0YWRhdGEiKXJldHVybiBQcy5NRVRBREFUQTtpZih0PT09IlRlcnJhaW4iKXJldHVybiBQcy5URVJSQUlOO2lmKHQ9PT0iRGJSb290IilyZXR1cm4gUHMuREJST09UfTtNNj0zMjMwMTtJNj01LHY2PTQ7VFM9MTk1MzAyOTgwNSxMNj0yOTE3MDM0MTAwO0I2PVFlKFA2KX0pO3ZhciBHZz17fTttZShHZyx7ZGVmYXVsdDooKT0+WjZ9KTtmdW5jdGlvbiBVNih0LGUsbixvLHIsaSl7bGV0IHM9biooMS10KStvKnQsZj1yKigxLXQpK2kqdDtyZXR1cm4gcyooMS1lKStmKmV9ZnVuY3Rpb24gdW0odCxlLG4sbyl7bGV0IHI9dCtlKm47cmV0dXJuIG9bcl19ZnVuY3Rpb24gVjYodCxlLG4pe2xldCBvPW4ubmF0aXZlRXh0ZW50LHI9KHQtby53ZXN0KS8oby5lYXN0LW8ud2VzdCkqKG4ud2lkdGgtMSksaT0oZS1vLnNvdXRoKS8oby5ub3J0aC1vLnNvdXRoKSoobi5oZWlnaHQtMSkscz1NYXRoLmZsb29yKHIpLGY9TWF0aC5mbG9vcihpKTtyLT1zLGktPWY7bGV0IHU9czxuLndpZHRoP3MrMTpzLGM9ZjxuLmhlaWdodD9mKzE6ZjtmPW4uaGVpZ2h0LTEtZixjPW4uaGVpZ2h0LTEtYztsZXQgbD11bShzLGYsbi53aWR0aCxuLmJ1ZmZlcikscD11bSh1LGYsbi53aWR0aCxuLmJ1ZmZlciksZD11bShzLGMsbi53aWR0aCxuLmJ1ZmZlciksbT11bSh1LGMsbi53aWR0aCxuLmJ1ZmZlciksXz1VNihyLGksbCxwLGQsbSk7cmV0dXJuIF89XypuLnNjYWxlK24ub2Zmc2V0LF99ZnVuY3Rpb24gRVModCxlLG4pe2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtsZXQgcj1uW29dLm5hdGl2ZUV4dGVudCxpPW5ldyBhO2lmKG5bb10ucHJvamVjdGlvblR5cGU9PT0iV2ViTWVyY2F0b3IiKXtsZXQgcz1uW29dLnByb2plY3Rpb24uX2VsbGlwc29pZC5fcmFkaWk7aT1uZXcgZW8obmV3ICQocy54LHMueSxzLnopKS5wcm9qZWN0KG5ldyBjdCh0LGUsMCkpfWVsc2UgaS54PXQsaS55PWU7aWYoaS54PnIud2VzdCYmaS54PHIuZWFzdCYmaS55PnIuc291dGgmJmkueTxyLm5vcnRoKXJldHVybiBWNihpLngsaS55LG5bb10pfXJldHVybiAwfWZ1bmN0aW9uIGs2KHQsZSxuLG8scixpLHMpe2lmKHMpcmV0dXJuO2xldCBmPUVTKHIubG9uZ2l0dWRlLHIubGF0aXR1ZGUsaSk7Zm9yKGxldCB1PTA7dTx0OysrdSl7bGV0IGM9RVMoci5sb25naXR1ZGUrTS50b1JhZGlhbnMobiplW3UqM10pLHIubGF0aXR1ZGUrTS50b1JhZGlhbnMobyplW3UqMysxXSksaSk7ZVt1KjMrMl0rPWMtZn19ZnVuY3Rpb24gRzYodCxlLG4sbyxyLGkscyxmLHUpe2lmKHQ9PT0wfHwhaChlKXx8ZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgYz1uZXcgJChNYXRoLnNxcnQocy54KSxNYXRoLnNxcnQocy55KSxNYXRoLnNxcnQocy56KSk7Zm9yKGxldCBsPTA7bDx0OysrbCl7bGV0IHA9bCozLGQ9cCsxLG09cCsyLF89bmV3IGN0O18ubG9uZ2l0dWRlPW8ubG9uZ2l0dWRlK00udG9SYWRpYW5zKGYqZVtwXSksXy5sYXRpdHVkZT1vLmxhdGl0dWRlK00udG9SYWRpYW5zKHUqZVtkXSksXy5oZWlnaHQ9by5oZWlnaHQrZVttXTtsZXQgZz17fTtjLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKF8sZyksZy54LT1yLngsZy55LT1yLnksZy56LT1yLno7bGV0IGI9e307aWYodHQubXVsdGlwbHlCeVZlY3RvcihpLGcsYiksZVtwXT1iLngsZVtkXT1iLnksZVttXT1iLnosaChuKSl7bGV0IE89bmV3IGEobltwXSxuW2RdLG5bbV0pLFQ9e307dHQubXVsdGlwbHlCeVZlY3RvcihpLE8sVCksbltwXT1ULngsbltkXT1ULnksblttXT1ULnp9fX1mdW5jdGlvbiB6Nih0LGUsbil7Zm9yKGxldCBvPTA7bzx0Oysrbyl7bGV0IHI9bltvKjRdLzY1NTM1LGk9bltvKjQrMV0vNjU1MzUscz0obltvKjQrMl0tbltvKjRdKS82NTUzNSxmPShuW28qNCszXS1uW28qNCsxXSkvNjU1MzU7ZVtvKjJdKj1zLGVbbyoyXSs9cixlW28qMisxXSo9ZixlW28qMisxXSs9aX19ZnVuY3Rpb24gajYodCxlLG4sbyxyLGkpe2lmKHQ9PT0wfHwhaChuKXx8bi5sZW5ndGg9PT0wKXJldHVybntidWZmZXJzOltdLGJ1ZmZlclZpZXdzOltdLGFjY2Vzc29yczpbXSxtZXNoZXM6W10sbm9kZXM6W10sbm9kZXNJblNjZW5lOltdfTtsZXQgcz1bXSxmPVtdLHU9W10sYz1bXSxsPVtdLHA9W107aChlKSYmKHQ9ZS5sZW5ndGgpO2xldCBkPW5ldyBVaW50MzJBcnJheSh0KTtpZihoKGUpKWZvcihsZXQgUT0wO1E8dDsrK1EpZFtRXT1lW1FdO2Vsc2UgZm9yKGxldCBRPTA7UTx0OysrUSlkW1FdPVE7bGV0IG09bmV3IEJsb2IoW2RdLHt0eXBlOiJhcHBsaWNhdGlvbi9iaW5hcnkifSksXz1VUkwuY3JlYXRlT2JqZWN0VVJMKG0pLGc9dCxiPW4uc3ViYXJyYXkoMCxnKjMpLE89bmV3IEJsb2IoW2JdLHt0eXBlOiJhcHBsaWNhdGlvbi9iaW5hcnkifSksVD1VUkwuY3JlYXRlT2JqZWN0VVJMKE8pLEU9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHc9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLEM9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLE49TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLEk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLEw9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2ZvcihsZXQgUT0wO1E8Yi5sZW5ndGgvMztRKyspRT1NYXRoLm1pbihFLGJbUSozKzBdKSx3PU1hdGgubWF4KHcsYltRKjMrMF0pLEM9TWF0aC5taW4oQyxiW1EqMysxXSksTj1NYXRoLm1heChOLGJbUSozKzFdKSxJPU1hdGgubWluKEksYltRKjMrMl0pLEw9TWF0aC5tYXgoTCxiW1EqMysyXSk7bGV0IHY9bz9vLnN1YmFycmF5KDAsZyozKTp2b2lkIDAsRDtpZihoKHYpKXtsZXQgUT1uZXcgQmxvYihbdl0se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTtEPVVSTC5jcmVhdGVPYmplY3RVUkwoUSl9bGV0IFU9cj9yLnN1YmFycmF5KDAsZyoyKTp2b2lkIDAsQTtpZihoKFUpKXtsZXQgUT1uZXcgQmxvYihbVV0se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTtBPVVSTC5jcmVhdGVPYmplY3RVUkwoUSl9bGV0IFM9aChpKT9pLnN1YmFycmF5KDAsZyo0KTp2b2lkIDAsUDtpZihoKFMpKXtsZXQgUT1uZXcgQmxvYihbU10se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTtQPVVSTC5jcmVhdGVPYmplY3RVUkwoUSl9bGV0IEY9MCxqPTAsSD0wLGs9MCxLPTAsWD1GLFI9e307cmV0dXJuIFIuUE9TSVRJT049RixzLnB1c2goe3VyaTpULGJ5dGVMZW5ndGg6Yi5ieXRlTGVuZ3RofSksZi5wdXNoKHtidWZmZXI6RixieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDpiLmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYyfSksdS5wdXNoKHtidWZmZXJWaWV3OkYsYnl0ZU9mZnNldDowLGNvbXBvbmVudFR5cGU6NTEyNixjb3VudDp0LHR5cGU6IlZFQzMiLG1heDpbRSxDLEldLG1pbjpbdyxOLExdfSksaChEKSYmKCsrWCxqPVgsUi5OT1JNQUw9aixzLnB1c2goe3VyaTpELGJ5dGVMZW5ndGg6di5ieXRlTGVuZ3RofSksZi5wdXNoKHtidWZmZXI6aixieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDp2LmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYyfSksdS5wdXNoKHtidWZmZXJWaWV3OmosYnl0ZU9mZnNldDowLGNvbXBvbmVudFR5cGU6NTEyNixjb3VudDp0LHR5cGU6IlZFQzMifSkpLGgoQSkmJigrK1gsSD1YLFIuVEVYQ09PUkRfMD1ILHMucHVzaCh7dXJpOkEsYnl0ZUxlbmd0aDpVLmJ5dGVMZW5ndGh9KSxmLnB1c2goe2J1ZmZlcjpILGJ5dGVPZmZzZXQ6MCxieXRlTGVuZ3RoOlUuYnl0ZUxlbmd0aCx0YXJnZXQ6MzQ5NjJ9KSx1LnB1c2goe2J1ZmZlclZpZXc6SCxieXRlT2Zmc2V0OjAsY29tcG9uZW50VHlwZTo1MTI2LGNvdW50OnQsdHlwZToiVkVDMiJ9KSksaChQKSYmKCsrWCxrPVgsUi5DT0xPUl8wPWsscy5wdXNoKHt1cmk6UCxieXRlTGVuZ3RoOlMuYnl0ZUxlbmd0aH0pLGYucHVzaCh7YnVmZmVyOmssYnl0ZU9mZnNldDowLGJ5dGVMZW5ndGg6Uy5ieXRlTGVuZ3RoLHRhcmdldDozNDk2Mn0pLHUucHVzaCh7YnVmZmVyVmlldzprLGJ5dGVPZmZzZXQ6MCxjb21wb25lbnRUeXBlOjUxMjEsbm9ybWFsaXplZDohMCxjb3VudDp0LHR5cGU6IlZFQzQifSkpLCsrWCxLPVgscy5wdXNoKHt1cmk6XyxieXRlTGVuZ3RoOmQuYnl0ZUxlbmd0aH0pLGYucHVzaCh7YnVmZmVyOkssYnl0ZU9mZnNldDowLGJ5dGVMZW5ndGg6ZC5ieXRlTGVuZ3RoLHRhcmdldDozNDk2M30pLHUucHVzaCh7YnVmZmVyVmlldzpLLGJ5dGVPZmZzZXQ6MCxjb21wb25lbnRUeXBlOjUxMjUsY291bnQ6dCx0eXBlOiJTQ0FMQVIifSksYy5wdXNoKHtwcmltaXRpdmVzOlt7YXR0cmlidXRlczpSLGluZGljZXM6SyxtYXRlcmlhbDowfV19KSxwLnB1c2goMCksbC5wdXNoKHttZXNoOjB9KSx7YnVmZmVyczpzLGJ1ZmZlclZpZXdzOmYsYWNjZXNzb3JzOnUsbWVzaGVzOmMsbm9kZXM6bCxub2Rlc0luU2NlbmU6cH19ZnVuY3Rpb24gSDYodCxlLG4sbyl7bGV0IHI9bmV3IFVpbnQ4QXJyYXkodCwwLDUpO3JldHVybiByWzBdPT09IkQiLmNoYXJDb2RlQXQoKSYmclsxXT09PSJSIi5jaGFyQ29kZUF0KCkmJnJbMl09PT0iQSIuY2hhckNvZGVBdCgpJiZyWzNdPT09IkMiLmNoYXJDb2RlQXQoKSYmcls0XT09PSJPIi5jaGFyQ29kZUF0KCk/cTYodCxuKTpXNih0LGUsbixvKX1mdW5jdGlvbiBxNih0KXtsZXQgZT1rZyxuPW5ldyBlLkRlY29kZXJCdWZmZXIsbz1uZXcgVWludDhBcnJheSh0KTtuLkluaXQobyxvLmxlbmd0aCk7bGV0IHI9bmV3IGUuRGVjb2RlcixpPXIuR2V0RW5jb2RlZEdlb21ldHJ5VHlwZShuKSxzPW5ldyBlLk1ldGFkYXRhUXVlcmllcixmLHU7aT09PWUuVFJJQU5HVUxBUl9NRVNIJiYoZj1uZXcgZS5NZXNoLHU9ci5EZWNvZGVCdWZmZXJUb01lc2gobixmKSk7bGV0IGM9e3ZlcnRleENvdW50OlswXSxmZWF0dXJlQ291bnQ6MH07aWYoaCh1KSYmdS5vaygpJiZmLnB0ciE9PTApe2xldCBsPWYubnVtX2ZhY2VzKCkscD1mLm51bV9hdHRyaWJ1dGVzKCksZD1mLm51bV9wb2ludHMoKTtjLmluZGljZXM9bmV3IFVpbnQzMkFycmF5KGwqMyk7bGV0IG09Yy5pbmRpY2VzO2MudmVydGV4Q291bnRbMF09ZCxjLnNjYWxlX3g9MSxjLnNjYWxlX3k9MTtsZXQgXz1uZXcgZS5EcmFjb0ludDMyQXJyYXkoMyk7Zm9yKGxldCBnPTA7ZzxsOysrZylyLkdldEZhY2VGcm9tTWVzaChmLGcsXyksbVtnKjNdPV8uR2V0VmFsdWUoMCksbVtnKjMrMV09Xy5HZXRWYWx1ZSgxKSxtW2cqMysyXT1fLkdldFZhbHVlKDIpO2UuZGVzdHJveShfKTtmb3IobGV0IGc9MDtnPHA7KytnKXtsZXQgYj1yLkdldEF0dHJpYnV0ZShmLGcpLE89SzYoZSxyLGYsYixkKSxUPWIuYXR0cmlidXRlX3R5cGUoKSxFPSJ1bmtub3duIjtUPT09ZS5QT1NJVElPTj9FPSJwb3NpdGlvbnMiOlQ9PT1lLk5PUk1BTD9FPSJub3JtYWxzIjpUPT09ZS5DT0xPUj9FPSJjb2xvcnMiOlQ9PT1lLlRFWF9DT09SRCYmKEU9InV2MHMiKTtsZXQgdz1yLkdldEF0dHJpYnV0ZU1ldGFkYXRhKGYsZyk7aWYody5wdHIhPT0wKXtsZXQgQz1zLk51bUVudHJpZXModyk7Zm9yKGxldCBOPTA7TjxDOysrTil7bGV0IEk9cy5HZXRFbnRyeU5hbWUodyxOKTtJPT09Imkzcy1zY2FsZV94Ij9jLnNjYWxlX3g9cy5HZXREb3VibGVFbnRyeSh3LCJpM3Mtc2NhbGVfeCIpOkk9PT0iaTNzLXNjYWxlX3kiP2Muc2NhbGVfeT1zLkdldERvdWJsZUVudHJ5KHcsImkzcy1zY2FsZV95Iik6ST09PSJpM3MtYXR0cmlidXRlLXR5cGUiJiYoRT1zLkdldFN0cmluZ0VudHJ5KHcsImkzcy1hdHRyaWJ1dGUtdHlwZSIpKX19aChjW0VdKSYmY29uc29sZS5sb2coIkF0dHJpYnV0ZSBhbHJlYWR5IGV4aXN0cyIsRSksY1tFXT1PLEU9PT0iZmVhdHVyZS1pbmRleCImJmMuZmVhdHVyZUNvdW50Kyt9ZS5kZXN0cm95KGYpfXJldHVybiBlLmRlc3Ryb3kocyksZS5kZXN0cm95KHIpLGN9ZnVuY3Rpb24gSzYodCxlLG4sbyxyKXtsZXQgaT1vLm51bV9jb21wb25lbnRzKCkqcixzLHU9W2Z1bmN0aW9uKCl7fSxmdW5jdGlvbigpe3M9bmV3IHQuRHJhY29JbnQ4QXJyYXkoaSksZS5HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzKG4sbyxzKXx8Y29uc29sZS5lcnJvcigiQmFkIHN0cmVhbSIpO2xldCBsPW5ldyBJbnQ4QXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb0ludDhBcnJheShpKSxlLkdldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzKG4sbyxzKXx8Y29uc29sZS5lcnJvcigiQmFkIHN0cmVhbSIpO2xldCBsPW5ldyBVaW50OEFycmF5KGkpO2ZvcihsZXQgcD0wO3A8aTsrK3ApbFtwXT1zLkdldFZhbHVlKHApO3JldHVybiBsfSxmdW5jdGlvbigpe3M9bmV3IHQuRHJhY29JbnQxNkFycmF5KGkpLGUuR2V0QXR0cmlidXRlSW50MTZGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IEludDE2QXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb0ludDE2QXJyYXkoaSksZS5HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IFVpbnQxNkFycmF5KGkpO2ZvcihsZXQgcD0wO3A8aTsrK3ApbFtwXT1zLkdldFZhbHVlKHApO3JldHVybiBsfSxmdW5jdGlvbigpe3M9bmV3IHQuRHJhY29JbnQzMkFycmF5KGkpLGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IEludDMyQXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb0ludDMyQXJyYXkoaSksZS5HZXRBdHRyaWJ1dGVVSW50MzJGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IFVpbnQzMkFycmF5KGkpO2ZvcihsZXQgcD0wO3A8aTsrK3ApbFtwXT1zLkdldFZhbHVlKHApO3JldHVybiBsfSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb0Zsb2F0MzJBcnJheShpKSxlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzKG4sbyxzKXx8Y29uc29sZS5lcnJvcigiQmFkIHN0cmVhbSIpO2xldCBsPW5ldyBGbG9hdDMyQXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe3M9bmV3IHQuRHJhY29VSW50OEFycmF5KGkpLGUuR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IFVpbnQ4QXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9XVtvLmRhdGFfdHlwZSgpXSgpO3JldHVybiBoKHMpJiZ0LmRlc3Ryb3kocyksdX1mdW5jdGlvbiBXNih0LGUsbixvKXtsZXQgcj17dmVydGV4Q291bnQ6MH0saT1uZXcgRGF0YVZpZXcodCk7dHJ5e2xldCBzPTA7aWYoci52ZXJ0ZXhDb3VudD1pLmdldFVpbnQzMihzLDEpLHMrPTQsci5mZWF0dXJlQ291bnQ9aS5nZXRVaW50MzIocywxKSxzKz00LGgobikpZm9yKGxldCBmPTA7ZjxuLmF0dHJpYnV0ZXMubGVuZ3RoO2YrKyloKGxtW24uYXR0cmlidXRlc1tmXV0pP3M9bG1bbi5hdHRyaWJ1dGVzW2ZdXShyLHQscyk6Y29uc29sZS5lcnJvcigiVW5rbm93biBkZWNvZGVyIGZvciIsbi5hdHRyaWJ1dGVzW2ZdKTtlbHNle2xldCBmPWUub3JkZXJpbmcsdT1lLmZlYXR1cmVBdHRyaWJ1dGVPcmRlcjtoKG8pJiZoKG8uZ2VvbWV0cnlEYXRhKSYmaChvLmdlb21ldHJ5RGF0YVswXSkmJmgoby5nZW9tZXRyeURhdGFbMF0ucGFyYW1zKSYmKGY9T2JqZWN0LmtleXMoby5nZW9tZXRyeURhdGFbMF0ucGFyYW1zLnZlcnRleEF0dHJpYnV0ZXMpLHU9T2JqZWN0LmtleXMoby5nZW9tZXRyeURhdGFbMF0ucGFyYW1zLmZlYXR1cmVBdHRyaWJ1dGVzKSk7Zm9yKGxldCBjPTA7YzxmLmxlbmd0aDtjKyspe2xldCBsPWxtW2ZbY11dO3M9bChyLHQscyl9Zm9yKGxldCBjPTA7Yzx1Lmxlbmd0aDtjKyspe2xldCBsPWxtW3VbY11dO3M9bChyLHQscyl9fX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfXJldHVybiByLnNjYWxlX3g9MSxyLnNjYWxlX3k9MSxyfWZ1bmN0aW9uIFg2KHQpe2xldCBlPUg2KHQuYmluYXJ5RGF0YSx0LnNjaGVtYSx0LmJ1ZmZlckluZm8sdC5mZWF0dXJlRGF0YSk7aCh0Lmdlb2lkRGF0YUxpc3QpJiZ0Lmdlb2lkRGF0YUxpc3QubGVuZ3RoPjAmJms2KGUudmVydGV4Q291bnQsZS5wb3NpdGlvbnMsZS5zY2FsZV94LGUuc2NhbGVfeSx0LmNhcnRvZ3JhcGhpY0NlbnRlcix0Lmdlb2lkRGF0YUxpc3QsITEpLEc2KGUudmVydGV4Q291bnQsZS5wb3NpdGlvbnMsZS5ub3JtYWxzLHQuY2FydG9ncmFwaGljQ2VudGVyLHQuY2FydGVzaWFuQ2VudGVyLHQucGFyZW50Um90YXRpb24sdC5lbGxpcHNvaWRSYWRpaVNxdWFyZSxlLnNjYWxlX3gsZS5zY2FsZV95KSxoKGUudXYwcykmJmgoZVsidXYtcmVnaW9uIl0pJiZ6NihlLnZlcnRleENvdW50LGUudXYwcyxlWyJ1di1yZWdpb24iXSk7bGV0IG49ajYoZS52ZXJ0ZXhDb3VudCxlLmluZGljZXMsZS5wb3NpdGlvbnMsZS5ub3JtYWxzLGUudXYwcyxlLmNvbG9ycyksbz17fTtpZihoKGVbImZlYXR1cmUtaW5kZXgiXSkpby5wb3NpdGlvbnM9ZS5wb3NpdGlvbnMsby5pbmRpY2VzPWUuaW5kaWNlcyxvLmZlYXR1cmVJbmRleD1lWyJmZWF0dXJlLWluZGV4Il0sby5jYXJ0ZXNpYW5DZW50ZXI9dC5jYXJ0ZXNpYW5DZW50ZXIsby5wYXJlbnRSb3RhdGlvbj10LnBhcmVudFJvdGF0aW9uO2Vsc2UgaWYoaChlLmZhY2VSYW5nZSkpe28ucG9zaXRpb25zPWUucG9zaXRpb25zLG8uaW5kaWNlcz1lLmluZGljZXMsby5zb3VyY2VVUkw9dC51cmwsby5jYXJ0ZXNpYW5DZW50ZXI9dC5jYXJ0ZXNpYW5DZW50ZXIsby5wYXJlbnRSb3RhdGlvbj10LnBhcmVudFJvdGF0aW9uLG8uZmVhdHVyZUluZGV4PW5ldyBBcnJheShlLnBvc2l0aW9ucy5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8ZS5mYWNlUmFuZ2UubGVuZ3RoLTE7aSs9Mil7bGV0IHM9aS8yLGY9ZS5mYWNlUmFuZ2VbaV0sdT1lLmZhY2VSYW5nZVtpKzFdO2ZvcihsZXQgYz1mO2M8PXU7YysrKW8uZmVhdHVyZUluZGV4W2MqM109cyxvLmZlYXR1cmVJbmRleFtjKjMrMV09cyxvLmZlYXR1cmVJbmRleFtjKjMrMl09c319cmV0dXJuIG4uX2N1c3RvbUF0dHJpYnV0ZXM9byx7bWVzaERhdGE6bn19YXN5bmMgZnVuY3Rpb24gWTYodCxlKXtsZXQgbj10LndlYkFzc2VtYmx5Q29uZmlnO3JldHVybiBoKG4pJiZoKG4ud2FzbUJpbmFyeUZpbGUpP2tnPWF3YWl0KDAsVmcuZGVmYXVsdCkobik6a2c9YXdhaXQoMCxWZy5kZWZhdWx0KSgpLCEwfWZ1bmN0aW9uICQ2KHQsZSl7bGV0IG49dC53ZWJBc3NlbWJseUNvbmZpZztyZXR1cm4gaChuKT9ZNih0LGUpOlg2KHQsZSl9dmFyIFZnLGtnLGxtLFo2LHpnPVooKCk9PntzbygpO2F0KCk7aWMoKTtadCgpO3ZlKCk7VXQoKTtGbigpO1d0KCk7Vmc9bW8oZ2coKSwxKTtsbT17cG9zaXRpb246ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQudmVydGV4Q291bnQqMztyZXR1cm4gdC5wb3NpdGlvbnM9bmV3IEZsb2F0MzJBcnJheShlLG4sbyksbis9byo0LG59LG5vcm1hbDpmdW5jdGlvbih0LGUsbil7bGV0IG89dC52ZXJ0ZXhDb3VudCozO3JldHVybiB0Lm5vcm1hbHM9bmV3IEZsb2F0MzJBcnJheShlLG4sbyksbis9byo0LG59LHV2MDpmdW5jdGlvbih0LGUsbil7bGV0IG89dC52ZXJ0ZXhDb3VudCoyO3JldHVybiB0LnV2MHM9bmV3IEZsb2F0MzJBcnJheShlLG4sbyksbis9byo0LG59LGNvbG9yOmZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10LnZlcnRleENvdW50KjQ7cmV0dXJuIHQuY29sb3JzPW5ldyBVaW50OEFycmF5KGUsbixvKSxuKz1vLG59LGZlYXR1cmVJZDpmdW5jdGlvbih0LGUsbil7bGV0IG89dC5mZWF0dXJlQ291bnQ7cmV0dXJuIG4rPW8qOCxufSxpZDpmdW5jdGlvbih0LGUsbil7bGV0IG89dC5mZWF0dXJlQ291bnQ7cmV0dXJuIG4rPW8qOCxufSxmYWNlUmFuZ2U6ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuZmVhdHVyZUNvdW50KjI7cmV0dXJuIHQuZmFjZVJhbmdlPW5ldyBVaW50MzJBcnJheShlLG4sbyksbis9byo0LG59LHV2UmVnaW9uOmZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10LnZlcnRleENvdW50KjQ7cmV0dXJuIHRbInV2LXJlZ2lvbiJdPW5ldyBVaW50MTZBcnJheShlLG4sbyksbis9byoyLG59LHJlZ2lvbjpmdW5jdGlvbih0LGUsbil7bGV0IG89dC52ZXJ0ZXhDb3VudCo0O3JldHVybiB0WyJ1di1yZWdpb24iXT1uZXcgVWludDE2QXJyYXkoZSxuLG8pLG4rPW8qMixufX07WjY9UWUoJDYpfSk7dmFyIE1lLHpvLGpnPVooKCk9PntrcygpO01lPXtVTlNJR05FRF9CWVRFOnF0LlVOU0lHTkVEX0JZVEUsVU5TSUdORURfU0hPUlQ6cXQuVU5TSUdORURfU0hPUlQsVU5TSUdORURfSU5UOnF0LlVOU0lHTkVEX0lOVCxGTE9BVDpxdC5GTE9BVCxIQUxGX0ZMT0FUOnF0LkhBTEZfRkxPQVRfT0VTLFVOU0lHTkVEX0lOVF8yNF84OnF0LlVOU0lHTkVEX0lOVF8yNF84LFVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6cXQuVU5TSUdORURfU0hPUlRfNF80XzRfNCxVTlNJR05FRF9TSE9SVF81XzVfNV8xOnF0LlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsVU5TSUdORURfU0hPUlRfNV82XzU6cXQuVU5TSUdORURfU0hPUlRfNV82XzV9O01lLnRvV2ViR0xDb25zdGFudD1mdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlIE1lLlVOU0lHTkVEX0JZVEU6cmV0dXJuIHF0LlVOU0lHTkVEX0JZVEU7Y2FzZSBNZS5VTlNJR05FRF9TSE9SVDpyZXR1cm4gcXQuVU5TSUdORURfU0hPUlQ7Y2FzZSBNZS5VTlNJR05FRF9JTlQ6cmV0dXJuIHF0LlVOU0lHTkVEX0lOVDtjYXNlIE1lLkZMT0FUOnJldHVybiBxdC5GTE9BVDtjYXNlIE1lLkhBTEZfRkxPQVQ6cmV0dXJuIGUud2ViZ2wyP3F0LkhBTEZfRkxPQVQ6cXQuSEFMRl9GTE9BVF9PRVM7Y2FzZSBNZS5VTlNJR05FRF9JTlRfMjRfODpyZXR1cm4gcXQuVU5TSUdORURfSU5UXzI0Xzg7Y2FzZSBNZS5VTlNJR05FRF9TSE9SVF80XzRfNF80OnJldHVybiBxdC5VTlNJR05FRF9TSE9SVF80XzRfNF80O2Nhc2UgTWUuVU5TSUdORURfU0hPUlRfNV81XzVfMTpyZXR1cm4gcXQuVU5TSUdORURfU0hPUlRfNV81XzVfMTtjYXNlIE1lLlVOU0lHTkVEX1NIT1JUXzVfNl81OnJldHVybiBNZS5VTlNJR05FRF9TSE9SVF81XzZfNX19O01lLmlzUGFja2VkPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09TWUuVU5TSUdORURfSU5UXzI0Xzh8fHQ9PT1NZS5VTlNJR05FRF9TSE9SVF80XzRfNF80fHx0PT09TWUuVU5TSUdORURfU0hPUlRfNV81XzVfMXx8dD09PU1lLlVOU0lHTkVEX1NIT1JUXzVfNl81fTtNZS5zaXplSW5CeXRlcz1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBNZS5VTlNJR05FRF9CWVRFOnJldHVybiAxO2Nhc2UgTWUuVU5TSUdORURfU0hPUlQ6Y2FzZSBNZS5VTlNJR05FRF9TSE9SVF80XzRfNF80OmNhc2UgTWUuVU5TSUdORURfU0hPUlRfNV81XzVfMTpjYXNlIE1lLlVOU0lHTkVEX1NIT1JUXzVfNl81OmNhc2UgTWUuSEFMRl9GTE9BVDpyZXR1cm4gMjtjYXNlIE1lLlVOU0lHTkVEX0lOVDpjYXNlIE1lLkZMT0FUOmNhc2UgTWUuVU5TSUdORURfSU5UXzI0Xzg6cmV0dXJuIDR9fTtNZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdD09PU1lLlVOU0lHTkVEX0JZVEV8fHQ9PT1NZS5VTlNJR05FRF9TSE9SVHx8dD09PU1lLlVOU0lHTkVEX0lOVHx8dD09PU1lLkZMT0FUfHx0PT09TWUuSEFMRl9GTE9BVHx8dD09PU1lLlVOU0lHTkVEX0lOVF8yNF84fHx0PT09TWUuVU5TSUdORURfU0hPUlRfNF80XzRfNHx8dD09PU1lLlVOU0lHTkVEX1NIT1JUXzVfNV81XzF8fHQ9PT1NZS5VTlNJR05FRF9TSE9SVF81XzZfNX07em89T2JqZWN0LmZyZWV6ZShNZSl9KTt2YXIgU3QsQm4sUlM9WigoKT0+e2pnKCk7a3MoKTtTdD17REVQVEhfQ09NUE9ORU5UOnF0LkRFUFRIX0NPTVBPTkVOVCxERVBUSF9TVEVOQ0lMOnF0LkRFUFRIX1NURU5DSUwsQUxQSEE6cXQuQUxQSEEsUkVEOnF0LlJFRCxSRzpxdC5SRyxSR0I6cXQuUkdCLFJHQkE6cXQuUkdCQSxMVU1JTkFOQ0U6cXQuTFVNSU5BTkNFLExVTUlOQU5DRV9BTFBIQTpxdC5MVU1JTkFOQ0VfQUxQSEEsUkdCX0RYVDE6cXQuQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCxSR0JBX0RYVDE6cXQuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQsUkdCQV9EWFQzOnF0LkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhULFJHQkFfRFhUNTpxdC5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVCxSR0JfUFZSVENfNEJQUFYxOnF0LkNPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUcsUkdCX1BWUlRDXzJCUFBWMTpxdC5DT01QUkVTU0VEX1JHQl9QVlJUQ18yQlBQVjFfSU1HLFJHQkFfUFZSVENfNEJQUFYxOnF0LkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HLFJHQkFfUFZSVENfMkJQUFYxOnF0LkNPTVBSRVNTRURfUkdCQV9QVlJUQ18yQlBQVjFfSU1HLFJHQkFfQVNUQzpxdC5DT01QUkVTU0VEX1JHQkFfQVNUQ180eDRfV0VCR0wsUkdCX0VUQzE6cXQuQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTCxSR0I4X0VUQzI6cXQuQ09NUFJFU1NFRF9SR0I4X0VUQzIsUkdCQThfRVRDMl9FQUM6cXQuQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQyxSR0JBX0JDNzpxdC5DT01QUkVTU0VEX1JHQkFfQlBUQ19VTk9STX07U3QuY29tcG9uZW50c0xlbmd0aD1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBTdC5SR0I6cmV0dXJuIDM7Y2FzZSBTdC5SR0JBOnJldHVybiA0O2Nhc2UgU3QuTFVNSU5BTkNFX0FMUEhBOmNhc2UgU3QuUkc6cmV0dXJuIDI7Y2FzZSBTdC5BTFBIQTpjYXNlIFN0LlJFRDpjYXNlIFN0LkxVTUlOQU5DRTpyZXR1cm4gMTtkZWZhdWx0OnJldHVybiAxfX07U3QudmFsaWRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5ERVBUSF9DT01QT05FTlR8fHQ9PT1TdC5ERVBUSF9TVEVOQ0lMfHx0PT09U3QuQUxQSEF8fHQ9PT1TdC5SRUR8fHQ9PT1TdC5SR3x8dD09PVN0LlJHQnx8dD09PVN0LlJHQkF8fHQ9PT1TdC5MVU1JTkFOQ0V8fHQ9PT1TdC5MVU1JTkFOQ0VfQUxQSEF8fHQ9PT1TdC5SR0JfRFhUMXx8dD09PVN0LlJHQkFfRFhUMXx8dD09PVN0LlJHQkFfRFhUM3x8dD09PVN0LlJHQkFfRFhUNXx8dD09PVN0LlJHQl9QVlJUQ180QlBQVjF8fHQ9PT1TdC5SR0JfUFZSVENfMkJQUFYxfHx0PT09U3QuUkdCQV9QVlJUQ180QlBQVjF8fHQ9PT1TdC5SR0JBX1BWUlRDXzJCUFBWMXx8dD09PVN0LlJHQkFfQVNUQ3x8dD09PVN0LlJHQl9FVEMxfHx0PT09U3QuUkdCOF9FVEMyfHx0PT09U3QuUkdCQThfRVRDMl9FQUN8fHQ9PT1TdC5SR0JBX0JDN307U3QuaXNDb2xvckZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LkFMUEhBfHx0PT09U3QuUkdCfHx0PT09U3QuUkdCQXx8dD09PVN0LkxVTUlOQU5DRXx8dD09PVN0LkxVTUlOQU5DRV9BTFBIQX07U3QuaXNEZXB0aEZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LkRFUFRIX0NPTVBPTkVOVHx8dD09PVN0LkRFUFRIX1NURU5DSUx9O1N0LmlzQ29tcHJlc3NlZEZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LlJHQl9EWFQxfHx0PT09U3QuUkdCQV9EWFQxfHx0PT09U3QuUkdCQV9EWFQzfHx0PT09U3QuUkdCQV9EWFQ1fHx0PT09U3QuUkdCX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQl9QVlJUQ18yQlBQVjF8fHQ9PT1TdC5SR0JBX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQkFfUFZSVENfMkJQUFYxfHx0PT09U3QuUkdCQV9BU1RDfHx0PT09U3QuUkdCX0VUQzF8fHQ9PT1TdC5SR0I4X0VUQzJ8fHQ9PT1TdC5SR0JBOF9FVEMyX0VBQ3x8dD09PVN0LlJHQkFfQkM3fTtTdC5pc0RYVEZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LlJHQl9EWFQxfHx0PT09U3QuUkdCQV9EWFQxfHx0PT09U3QuUkdCQV9EWFQzfHx0PT09U3QuUkdCQV9EWFQ1fTtTdC5pc1BWUlRDRm9ybWF0PWZ1bmN0aW9uKHQpe3JldHVybiB0PT09U3QuUkdCX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQl9QVlJUQ18yQlBQVjF8fHQ9PT1TdC5SR0JBX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQkFfUFZSVENfMkJQUFYxfTtTdC5pc0FTVENGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5SR0JBX0FTVEN9O1N0LmlzRVRDMUZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LlJHQl9FVEMxfTtTdC5pc0VUQzJGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5SR0I4X0VUQzJ8fHQ9PT1TdC5SR0JBOF9FVEMyX0VBQ307U3QuaXNCQzdGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5SR0JBX0JDN307U3QuY29tcHJlc3NlZFRleHR1cmVTaXplSW5CeXRlcz1mdW5jdGlvbih0LGUsbil7c3dpdGNoKHQpe2Nhc2UgU3QuUkdCX0RYVDE6Y2FzZSBTdC5SR0JBX0RYVDE6Y2FzZSBTdC5SR0JfRVRDMTpjYXNlIFN0LlJHQjhfRVRDMjpyZXR1cm4gTWF0aC5mbG9vcigoZSszKS80KSpNYXRoLmZsb29yKChuKzMpLzQpKjg7Y2FzZSBTdC5SR0JBX0RYVDM6Y2FzZSBTdC5SR0JBX0RYVDU6Y2FzZSBTdC5SR0JBX0FTVEM6Y2FzZSBTdC5SR0JBOF9FVEMyX0VBQzpyZXR1cm4gTWF0aC5mbG9vcigoZSszKS80KSpNYXRoLmZsb29yKChuKzMpLzQpKjE2O2Nhc2UgU3QuUkdCX1BWUlRDXzRCUFBWMTpjYXNlIFN0LlJHQkFfUFZSVENfNEJQUFYxOnJldHVybiBNYXRoLmZsb29yKChNYXRoLm1heChlLDgpKk1hdGgubWF4KG4sOCkqNCs3KS84KTtjYXNlIFN0LlJHQl9QVlJUQ18yQlBQVjE6Y2FzZSBTdC5SR0JBX1BWUlRDXzJCUFBWMTpyZXR1cm4gTWF0aC5mbG9vcigoTWF0aC5tYXgoZSwxNikqTWF0aC5tYXgobiw4KSoyKzcpLzgpO2Nhc2UgU3QuUkdCQV9CQzc6cmV0dXJuIE1hdGguY2VpbChlLzQpKk1hdGguY2VpbChuLzQpKjE2O2RlZmF1bHQ6cmV0dXJuIDB9fTtTdC50ZXh0dXJlU2l6ZUluQnl0ZXM9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9U3QuY29tcG9uZW50c0xlbmd0aCh0KTtyZXR1cm4gem8uaXNQYWNrZWQoZSkmJihyPTEpLHIqem8uc2l6ZUluQnl0ZXMoZSkqbipvfTtTdC5hbGlnbm1lbnRJbkJ5dGVzPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1TdC50ZXh0dXJlU2l6ZUluQnl0ZXModCxlLG4sMSklNDtyZXR1cm4gbz09PTA/NDpvPT09Mj8yOjF9O1N0LmNyZWF0ZVR5cGVkQXJyYXk9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHIsaT16by5zaXplSW5CeXRlcyhlKTtpPT09VWludDhBcnJheS5CWVRFU19QRVJfRUxFTUVOVD9yPVVpbnQ4QXJyYXk6aT09PVVpbnQxNkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UP3I9VWludDE2QXJyYXk6aT09PUZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCYmZT09PXpvLkZMT0FUP3I9RmxvYXQzMkFycmF5OnI9VWludDMyQXJyYXk7bGV0IHM9U3QuY29tcG9uZW50c0xlbmd0aCh0KSpuKm87cmV0dXJuIG5ldyByKHMpfTtTdC5mbGlwWT1mdW5jdGlvbih0LGUsbixvLHIpe2lmKHI9PT0xKXJldHVybiB0O2xldCBpPVN0LmNyZWF0ZVR5cGVkQXJyYXkoZSxuLG8scikscz1TdC5jb21wb25lbnRzTGVuZ3RoKGUpLGY9bypzO2ZvcihsZXQgdT0wO3U8cjsrK3Upe2xldCBjPXUqbypzLGw9KHItdS0xKSpvKnM7Zm9yKGxldCBwPTA7cDxmOysrcClpW2wrcF09dFtjK3BdfXJldHVybiBpfTtTdC50b0ludGVybmFsRm9ybWF0PWZ1bmN0aW9uKHQsZSxuKXtpZighbi53ZWJnbDIpcmV0dXJuIHQ7aWYodD09PVN0LkRFUFRIX1NURU5DSUwpcmV0dXJuIHF0LkRFUFRIMjRfU1RFTkNJTDg7aWYodD09PVN0LkRFUFRIX0NPTVBPTkVOVCl7aWYoZT09PXpvLlVOU0lHTkVEX1NIT1JUKXJldHVybiBxdC5ERVBUSF9DT01QT05FTlQxNjtpZihlPT09em8uVU5TSUdORURfSU5UKXJldHVybiBxdC5ERVBUSF9DT01QT05FTlQyNH1pZihlPT09em8uRkxPQVQpc3dpdGNoKHQpe2Nhc2UgU3QuUkdCQTpyZXR1cm4gcXQuUkdCQTMyRjtjYXNlIFN0LlJHQjpyZXR1cm4gcXQuUkdCMzJGO2Nhc2UgU3QuUkc6cmV0dXJuIHF0LlJHMzJGO2Nhc2UgU3QuUkVEOnJldHVybiBxdC5SMzJGfWlmKGU9PT16by5IQUxGX0ZMT0FUKXN3aXRjaCh0KXtjYXNlIFN0LlJHQkE6cmV0dXJuIHF0LlJHQkExNkY7Y2FzZSBTdC5SR0I6cmV0dXJuIHF0LlJHQjE2RjtjYXNlIFN0LlJHOnJldHVybiBxdC5SRzE2RjtjYXNlIFN0LlJFRDpyZXR1cm4gcXQuUjE2Rn1yZXR1cm4gdH07Qm49T2JqZWN0LmZyZWV6ZShTdCl9KTt2YXIgUTYseXUsU1M9WigoKT0+e1E2PXtWS19GT1JNQVRfVU5ERUZJTkVEOjAsVktfRk9STUFUX1I0RzRfVU5PUk1fUEFDSzg6MSxWS19GT1JNQVRfUjRHNEI0QTRfVU5PUk1fUEFDSzE2OjIsVktfRk9STUFUX0I0RzRSNEE0X1VOT1JNX1BBQ0sxNjozLFZLX0ZPUk1BVF9SNUc2QjVfVU5PUk1fUEFDSzE2OjQsVktfRk9STUFUX0I1RzZSNV9VTk9STV9QQUNLMTY6NSxWS19GT1JNQVRfUjVHNUI1QTFfVU5PUk1fUEFDSzE2OjYsVktfRk9STUFUX0I1RzVSNUExX1VOT1JNX1BBQ0sxNjo3LFZLX0ZPUk1BVF9BMVI1RzVCNV9VTk9STV9QQUNLMTY6OCxWS19GT1JNQVRfUjhfVU5PUk06OSxWS19GT1JNQVRfUjhfU05PUk06MTAsVktfRk9STUFUX1I4X1VTQ0FMRUQ6MTEsVktfRk9STUFUX1I4X1NTQ0FMRUQ6MTIsVktfRk9STUFUX1I4X1VJTlQ6MTMsVktfRk9STUFUX1I4X1NJTlQ6MTQsVktfRk9STUFUX1I4X1NSR0I6MTUsVktfRk9STUFUX1I4RzhfVU5PUk06MTYsVktfRk9STUFUX1I4RzhfU05PUk06MTcsVktfRk9STUFUX1I4RzhfVVNDQUxFRDoxOCxWS19GT1JNQVRfUjhHOF9TU0NBTEVEOjE5LFZLX0ZPUk1BVF9SOEc4X1VJTlQ6MjAsVktfRk9STUFUX1I4RzhfU0lOVDoyMSxWS19GT1JNQVRfUjhHOF9TUkdCOjIyLFZLX0ZPUk1BVF9SOEc4QjhfVU5PUk06MjMsVktfRk9STUFUX1I4RzhCOF9TTk9STToyNCxWS19GT1JNQVRfUjhHOEI4X1VTQ0FMRUQ6MjUsVktfRk9STUFUX1I4RzhCOF9TU0NBTEVEOjI2LFZLX0ZPUk1BVF9SOEc4QjhfVUlOVDoyNyxWS19GT1JNQVRfUjhHOEI4X1NJTlQ6MjgsVktfRk9STUFUX1I4RzhCOF9TUkdCOjI5LFZLX0ZPUk1BVF9COEc4UjhfVU5PUk06MzAsVktfRk9STUFUX0I4RzhSOF9TTk9STTozMSxWS19GT1JNQVRfQjhHOFI4X1VTQ0FMRUQ6MzIsVktfRk9STUFUX0I4RzhSOF9TU0NBTEVEOjMzLFZLX0ZPUk1BVF9COEc4UjhfVUlOVDozNCxWS19GT1JNQVRfQjhHOFI4X1NJTlQ6MzUsVktfRk9STUFUX0I4RzhSOF9TUkdCOjM2LFZLX0ZPUk1BVF9SOEc4QjhBOF9VTk9STTozNyxWS19GT1JNQVRfUjhHOEI4QThfU05PUk06MzgsVktfRk9STUFUX1I4RzhCOEE4X1VTQ0FMRUQ6MzksVktfRk9STUFUX1I4RzhCOEE4X1NTQ0FMRUQ6NDAsVktfRk9STUFUX1I4RzhCOEE4X1VJTlQ6NDEsVktfRk9STUFUX1I4RzhCOEE4X1NJTlQ6NDIsVktfRk9STUFUX1I4RzhCOEE4X1NSR0I6NDMsVktfRk9STUFUX0I4RzhSOEE4X1VOT1JNOjQ0LFZLX0ZPUk1BVF9COEc4UjhBOF9TTk9STTo0NSxWS19GT1JNQVRfQjhHOFI4QThfVVNDQUxFRDo0NixWS19GT1JNQVRfQjhHOFI4QThfU1NDQUxFRDo0NyxWS19GT1JNQVRfQjhHOFI4QThfVUlOVDo0OCxWS19GT1JNQVRfQjhHOFI4QThfU0lOVDo0OSxWS19GT1JNQVRfQjhHOFI4QThfU1JHQjo1MCxWS19GT1JNQVRfQThCOEc4UjhfVU5PUk1fUEFDSzMyOjUxLFZLX0ZPUk1BVF9BOEI4RzhSOF9TTk9STV9QQUNLMzI6NTIsVktfRk9STUFUX0E4QjhHOFI4X1VTQ0FMRURfUEFDSzMyOjUzLFZLX0ZPUk1BVF9BOEI4RzhSOF9TU0NBTEVEX1BBQ0szMjo1NCxWS19GT1JNQVRfQThCOEc4UjhfVUlOVF9QQUNLMzI6NTUsVktfRk9STUFUX0E4QjhHOFI4X1NJTlRfUEFDSzMyOjU2LFZLX0ZPUk1BVF9BOEI4RzhSOF9TUkdCX1BBQ0szMjo1NyxWS19GT1JNQVRfQTJSMTBHMTBCMTBfVU5PUk1fUEFDSzMyOjU4LFZLX0ZPUk1BVF9BMlIxMEcxMEIxMF9TTk9STV9QQUNLMzI6NTksVktfRk9STUFUX0EyUjEwRzEwQjEwX1VTQ0FMRURfUEFDSzMyOjYwLFZLX0ZPUk1BVF9BMlIxMEcxMEIxMF9TU0NBTEVEX1BBQ0szMjo2MSxWS19GT1JNQVRfQTJSMTBHMTBCMTBfVUlOVF9QQUNLMzI6NjIsVktfRk9STUFUX0EyUjEwRzEwQjEwX1NJTlRfUEFDSzMyOjYzLFZLX0ZPUk1BVF9BMkIxMEcxMFIxMF9VTk9STV9QQUNLMzI6NjQsVktfRk9STUFUX0EyQjEwRzEwUjEwX1NOT1JNX1BBQ0szMjo2NSxWS19GT1JNQVRfQTJCMTBHMTBSMTBfVVNDQUxFRF9QQUNLMzI6NjYsVktfRk9STUFUX0EyQjEwRzEwUjEwX1NTQ0FMRURfUEFDSzMyOjY3LFZLX0ZPUk1BVF9BMkIxMEcxMFIxMF9VSU5UX1BBQ0szMjo2OCxWS19GT1JNQVRfQTJCMTBHMTBSMTBfU0lOVF9QQUNLMzI6NjksVktfRk9STUFUX1IxNl9VTk9STTo3MCxWS19GT1JNQVRfUjE2X1NOT1JNOjcxLFZLX0ZPUk1BVF9SMTZfVVNDQUxFRDo3MixWS19GT1JNQVRfUjE2X1NTQ0FMRUQ6NzMsVktfRk9STUFUX1IxNl9VSU5UOjc0LFZLX0ZPUk1BVF9SMTZfU0lOVDo3NSxWS19GT1JNQVRfUjE2X1NGTE9BVDo3NixWS19GT1JNQVRfUjE2RzE2X1VOT1JNOjc3LFZLX0ZPUk1BVF9SMTZHMTZfU05PUk06NzgsVktfRk9STUFUX1IxNkcxNl9VU0NBTEVEOjc5LFZLX0ZPUk1BVF9SMTZHMTZfU1NDQUxFRDo4MCxWS19GT1JNQVRfUjE2RzE2X1VJTlQ6ODEsVktfRk9STUFUX1IxNkcxNl9TSU5UOjgyLFZLX0ZPUk1BVF9SMTZHMTZfU0ZMT0FUOjgzLFZLX0ZPUk1BVF9SMTZHMTZCMTZfVU5PUk06ODQsVktfRk9STUFUX1IxNkcxNkIxNl9TTk9STTo4NSxWS19GT1JNQVRfUjE2RzE2QjE2X1VTQ0FMRUQ6ODYsVktfRk9STUFUX1IxNkcxNkIxNl9TU0NBTEVEOjg3LFZLX0ZPUk1BVF9SMTZHMTZCMTZfVUlOVDo4OCxWS19GT1JNQVRfUjE2RzE2QjE2X1NJTlQ6ODksVktfRk9STUFUX1IxNkcxNkIxNl9TRkxPQVQ6OTAsVktfRk9STUFUX1IxNkcxNkIxNkExNl9VTk9STTo5MSxWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1NOT1JNOjkyLFZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfVVNDQUxFRDo5MyxWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1NTQ0FMRUQ6OTQsVktfRk9STUFUX1IxNkcxNkIxNkExNl9VSU5UOjk1LFZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfU0lOVDo5NixWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1NGTE9BVDo5NyxWS19GT1JNQVRfUjMyX1VJTlQ6OTgsVktfRk9STUFUX1IzMl9TSU5UOjk5LFZLX0ZPUk1BVF9SMzJfU0ZMT0FUOjEwMCxWS19GT1JNQVRfUjMyRzMyX1VJTlQ6MTAxLFZLX0ZPUk1BVF9SMzJHMzJfU0lOVDoxMDIsVktfRk9STUFUX1IzMkczMl9TRkxPQVQ6MTAzLFZLX0ZPUk1BVF9SMzJHMzJCMzJfVUlOVDoxMDQsVktfRk9STUFUX1IzMkczMkIzMl9TSU5UOjEwNSxWS19GT1JNQVRfUjMyRzMyQjMyX1NGTE9BVDoxMDYsVktfRk9STUFUX1IzMkczMkIzMkEzMl9VSU5UOjEwNyxWS19GT1JNQVRfUjMyRzMyQjMyQTMyX1NJTlQ6MTA4LFZLX0ZPUk1BVF9SMzJHMzJCMzJBMzJfU0ZMT0FUOjEwOSxWS19GT1JNQVRfUjY0X1VJTlQ6MTEwLFZLX0ZPUk1BVF9SNjRfU0lOVDoxMTEsVktfRk9STUFUX1I2NF9TRkxPQVQ6MTEyLFZLX0ZPUk1BVF9SNjRHNjRfVUlOVDoxMTMsVktfRk9STUFUX1I2NEc2NF9TSU5UOjExNCxWS19GT1JNQVRfUjY0RzY0X1NGTE9BVDoxMTUsVktfRk9STUFUX1I2NEc2NEI2NF9VSU5UOjExNixWS19GT1JNQVRfUjY0RzY0QjY0X1NJTlQ6MTE3LFZLX0ZPUk1BVF9SNjRHNjRCNjRfU0ZMT0FUOjExOCxWS19GT1JNQVRfUjY0RzY0QjY0QTY0X1VJTlQ6MTE5LFZLX0ZPUk1BVF9SNjRHNjRCNjRBNjRfU0lOVDoxMjAsVktfRk9STUFUX1I2NEc2NEI2NEE2NF9TRkxPQVQ6MTIxLFZLX0ZPUk1BVF9CMTBHMTFSMTFfVUZMT0FUX1BBQ0szMjoxMjIsVktfRk9STUFUX0U1QjlHOVI5X1VGTE9BVF9QQUNLMzI6MTIzLFZLX0ZPUk1BVF9EMTZfVU5PUk06MTI0LFZLX0ZPUk1BVF9YOF9EMjRfVU5PUk1fUEFDSzMyOjEyNSxWS19GT1JNQVRfRDMyX1NGTE9BVDoxMjYsVktfRk9STUFUX1M4X1VJTlQ6MTI3LFZLX0ZPUk1BVF9EMTZfVU5PUk1fUzhfVUlOVDoxMjgsVktfRk9STUFUX0QyNF9VTk9STV9TOF9VSU5UOjEyOSxWS19GT1JNQVRfRDMyX1NGTE9BVF9TOF9VSU5UOjEzMCxWS19GT1JNQVRfQkMxX1JHQl9VTk9STV9CTE9DSzoxMzEsVktfRk9STUFUX0JDMV9SR0JfU1JHQl9CTE9DSzoxMzIsVktfRk9STUFUX0JDMV9SR0JBX1VOT1JNX0JMT0NLOjEzMyxWS19GT1JNQVRfQkMxX1JHQkFfU1JHQl9CTE9DSzoxMzQsVktfRk9STUFUX0JDMl9VTk9STV9CTE9DSzoxMzUsVktfRk9STUFUX0JDMl9TUkdCX0JMT0NLOjEzNixWS19GT1JNQVRfQkMzX1VOT1JNX0JMT0NLOjEzNyxWS19GT1JNQVRfQkMzX1NSR0JfQkxPQ0s6MTM4LFZLX0ZPUk1BVF9CQzRfVU5PUk1fQkxPQ0s6MTM5LFZLX0ZPUk1BVF9CQzRfU05PUk1fQkxPQ0s6MTQwLFZLX0ZPUk1BVF9CQzVfVU5PUk1fQkxPQ0s6MTQxLFZLX0ZPUk1BVF9CQzVfU05PUk1fQkxPQ0s6MTQyLFZLX0ZPUk1BVF9CQzZIX1VGTE9BVF9CTE9DSzoxNDMsVktfRk9STUFUX0JDNkhfU0ZMT0FUX0JMT0NLOjE0NCxWS19GT1JNQVRfQkM3X1VOT1JNX0JMT0NLOjE0NSxWS19GT1JNQVRfQkM3X1NSR0JfQkxPQ0s6MTQ2LFZLX0ZPUk1BVF9FVEMyX1I4RzhCOF9VTk9STV9CTE9DSzoxNDcsVktfRk9STUFUX0VUQzJfUjhHOEI4X1NSR0JfQkxPQ0s6MTQ4LFZLX0ZPUk1BVF9FVEMyX1I4RzhCOEExX1VOT1JNX0JMT0NLOjE0OSxWS19GT1JNQVRfRVRDMl9SOEc4QjhBMV9TUkdCX0JMT0NLOjE1MCxWS19GT1JNQVRfRVRDMl9SOEc4QjhBOF9VTk9STV9CTE9DSzoxNTEsVktfRk9STUFUX0VUQzJfUjhHOEI4QThfU1JHQl9CTE9DSzoxNTIsVktfRk9STUFUX0VBQ19SMTFfVU5PUk1fQkxPQ0s6MTUzLFZLX0ZPUk1BVF9FQUNfUjExX1NOT1JNX0JMT0NLOjE1NCxWS19GT1JNQVRfRUFDX1IxMUcxMV9VTk9STV9CTE9DSzoxNTUsVktfRk9STUFUX0VBQ19SMTFHMTFfU05PUk1fQkxPQ0s6MTU2LFZLX0ZPUk1BVF9BU1RDXzR4NF9VTk9STV9CTE9DSzoxNTcsVktfRk9STUFUX0FTVENfNHg0X1NSR0JfQkxPQ0s6MTU4LFZLX0ZPUk1BVF9BU1RDXzV4NF9VTk9STV9CTE9DSzoxNTksVktfRk9STUFUX0FTVENfNXg0X1NSR0JfQkxPQ0s6MTYwLFZLX0ZPUk1BVF9BU1RDXzV4NV9VTk9STV9CTE9DSzoxNjEsVktfRk9STUFUX0FTVENfNXg1X1NSR0JfQkxPQ0s6MTYyLFZLX0ZPUk1BVF9BU1RDXzZ4NV9VTk9STV9CTE9DSzoxNjMsVktfRk9STUFUX0FTVENfNng1X1NSR0JfQkxPQ0s6MTY0LFZLX0ZPUk1BVF9BU1RDXzZ4Nl9VTk9STV9CTE9DSzoxNjUsVktfRk9STUFUX0FTVENfNng2X1NSR0JfQkxPQ0s6MTY2LFZLX0ZPUk1BVF9BU1RDXzh4NV9VTk9STV9CTE9DSzoxNjcsVktfRk9STUFUX0FTVENfOHg1X1NSR0JfQkxPQ0s6MTY4LFZLX0ZPUk1BVF9BU1RDXzh4Nl9VTk9STV9CTE9DSzoxNjksVktfRk9STUFUX0FTVENfOHg2X1NSR0JfQkxPQ0s6MTcwLFZLX0ZPUk1BVF9BU1RDXzh4OF9VTk9STV9CTE9DSzoxNzEsVktfRk9STUFUX0FTVENfOHg4X1NSR0JfQkxPQ0s6MTcyLFZLX0ZPUk1BVF9BU1RDXzEweDVfVU5PUk1fQkxPQ0s6MTczLFZLX0ZPUk1BVF9BU1RDXzEweDVfU1JHQl9CTE9DSzoxNzQsVktfRk9STUFUX0FTVENfMTB4Nl9VTk9STV9CTE9DSzoxNzUsVktfRk9STUFUX0FTVENfMTB4Nl9TUkdCX0JMT0NLOjE3NixWS19GT1JNQVRfQVNUQ18xMHg4X1VOT1JNX0JMT0NLOjE3NyxWS19GT1JNQVRfQVNUQ18xMHg4X1NSR0JfQkxPQ0s6MTc4LFZLX0ZPUk1BVF9BU1RDXzEweDEwX1VOT1JNX0JMT0NLOjE3OSxWS19GT1JNQVRfQVNUQ18xMHgxMF9TUkdCX0JMT0NLOjE4MCxWS19GT1JNQVRfQVNUQ18xMngxMF9VTk9STV9CTE9DSzoxODEsVktfRk9STUFUX0FTVENfMTJ4MTBfU1JHQl9CTE9DSzoxODIsVktfRk9STUFUX0FTVENfMTJ4MTJfVU5PUk1fQkxPQ0s6MTgzLFZLX0ZPUk1BVF9BU1RDXzEyeDEyX1NSR0JfQkxPQ0s6MTg0LFZLX0ZPUk1BVF9HOEI4RzhSOF80MjJfVU5PUk06MTAwMDE1NmUzLFZLX0ZPUk1BVF9COEc4UjhHOF80MjJfVU5PUk06MTAwMDE1NjAwMSxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQyMF9VTk9STToxMDAwMTU2MDAyLFZLX0ZPUk1BVF9HOF9COFI4XzJQTEFORV80MjBfVU5PUk06MTAwMDE1NjAwMyxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQyMl9VTk9STToxMDAwMTU2MDA0LFZLX0ZPUk1BVF9HOF9COFI4XzJQTEFORV80MjJfVU5PUk06MTAwMDE1NjAwNSxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQ0NF9VTk9STToxMDAwMTU2MDA2LFZLX0ZPUk1BVF9SMTBYNl9VTk9STV9QQUNLMTY6MTAwMDE1NjAwNyxWS19GT1JNQVRfUjEwWDZHMTBYNl9VTk9STV8yUEFDSzE2OjEwMDAxNTYwMDgsVktfRk9STUFUX1IxMFg2RzEwWDZCMTBYNkExMFg2X1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAwOSxWS19GT1JNQVRfRzEwWDZCMTBYNkcxMFg2UjEwWDZfNDIyX1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAxMCxWS19GT1JNQVRfQjEwWDZHMTBYNlIxMFg2RzEwWDZfNDIyX1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAxMSxWS19GT1JNQVRfRzEwWDZfQjEwWDZfUjEwWDZfM1BMQU5FXzQyMF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMTIsVktfRk9STUFUX0cxMFg2X0IxMFg2UjEwWDZfMlBMQU5FXzQyMF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMTMsVktfRk9STUFUX0cxMFg2X0IxMFg2X1IxMFg2XzNQTEFORV80MjJfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDE0LFZLX0ZPUk1BVF9HMTBYNl9CMTBYNlIxMFg2XzJQTEFORV80MjJfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDE1LFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDQ0X1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAxNixWS19GT1JNQVRfUjEyWDRfVU5PUk1fUEFDSzE2OjEwMDAxNTYwMTcsVktfRk9STUFUX1IxMlg0RzEyWDRfVU5PUk1fMlBBQ0sxNjoxMDAwMTU2MDE4LFZLX0ZPUk1BVF9SMTJYNEcxMlg0QjEyWDRBMTJYNF9VTk9STV80UEFDSzE2OjEwMDAxNTYwMTksVktfRk9STUFUX0cxMlg0QjEyWDRHMTJYNFIxMlg0XzQyMl9VTk9STV80UEFDSzE2OjEwMDAxNTYwMjAsVktfRk9STUFUX0IxMlg0RzEyWDRSMTJYNEcxMlg0XzQyMl9VTk9STV80UEFDSzE2OjEwMDAxNTYwMjEsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80MjBfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDIyLFZLX0ZPUk1BVF9HMTJYNF9CMTJYNFIxMlg0XzJQTEFORV80MjBfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDIzLFZLX0ZPUk1BVF9HMTJYNF9CMTJYNF9SMTJYNF8zUExBTkVfNDIyX1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAyNCxWS19GT1JNQVRfRzEyWDRfQjEyWDRSMTJYNF8yUExBTkVfNDIyX1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAyNSxWS19GT1JNQVRfRzEyWDRfQjEyWDRfUjEyWDRfM1BMQU5FXzQ0NF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMjYsVktfRk9STUFUX0cxNkIxNkcxNlIxNl80MjJfVU5PUk06MTAwMDE1NjAyNyxWS19GT1JNQVRfQjE2RzE2UjE2RzE2XzQyMl9VTk9STToxMDAwMTU2MDI4LFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDIwX1VOT1JNOjEwMDAxNTYwMjksVktfRk9STUFUX0cxNl9CMTZSMTZfMlBMQU5FXzQyMF9VTk9STToxMDAwMTU2MDMwLFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDIyX1VOT1JNOjEwMDAxNTYwMzEsVktfRk9STUFUX0cxNl9CMTZSMTZfMlBMQU5FXzQyMl9VTk9STToxMDAwMTU2MDMyLFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDQ0X1VOT1JNOjEwMDAxNTYwMzMsVktfRk9STUFUX1BWUlRDMV8yQlBQX1VOT1JNX0JMT0NLX0lNRzoxMDAwMDU0ZTMsVktfRk9STUFUX1BWUlRDMV80QlBQX1VOT1JNX0JMT0NLX0lNRzoxMDAwMDU0MDAxLFZLX0ZPUk1BVF9QVlJUQzJfMkJQUF9VTk9STV9CTE9DS19JTUc6MTAwMDA1NDAwMixWS19GT1JNQVRfUFZSVEMyXzRCUFBfVU5PUk1fQkxPQ0tfSU1HOjEwMDAwNTQwMDMsVktfRk9STUFUX1BWUlRDMV8yQlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDQsVktfRk9STUFUX1BWUlRDMV80QlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDUsVktfRk9STUFUX1BWUlRDMl8yQlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDYsVktfRk9STUFUX1BWUlRDMl80QlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDcsVktfRk9STUFUX0FTVENfNHg0X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NmUzLFZLX0ZPUk1BVF9BU1RDXzV4NF9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDEsVktfRk9STUFUX0FTVENfNXg1X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwMixWS19GT1JNQVRfQVNUQ182eDVfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDAzLFZLX0ZPUk1BVF9BU1RDXzZ4Nl9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDQsVktfRk9STUFUX0FTVENfOHg1X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwNSxWS19GT1JNQVRfQVNUQ184eDZfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDA2LFZLX0ZPUk1BVF9BU1RDXzh4OF9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDcsVktfRk9STUFUX0FTVENfMTB4NV9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDgsVktfRk9STUFUX0FTVENfMTB4Nl9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDksVktfRk9STUFUX0FTVENfMTB4OF9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMTAsVktfRk9STUFUX0FTVENfMTB4MTBfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDExLFZLX0ZPUk1BVF9BU1RDXzEyeDEwX1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAxMixWS19GT1JNQVRfQVNUQ18xMngxMl9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMTMsVktfRk9STUFUX0c4QjhHOFI4XzQyMl9VTk9STV9LSFI6MTAwMDE1NmUzLFZLX0ZPUk1BVF9COEc4UjhHOF80MjJfVU5PUk1fS0hSOjEwMDAxNTYwMDEsVktfRk9STUFUX0c4X0I4X1I4XzNQTEFORV80MjBfVU5PUk1fS0hSOjEwMDAxNTYwMDIsVktfRk9STUFUX0c4X0I4UjhfMlBMQU5FXzQyMF9VTk9STV9LSFI6MTAwMDE1NjAwMyxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQyMl9VTk9STV9LSFI6MTAwMDE1NjAwNCxWS19GT1JNQVRfRzhfQjhSOF8yUExBTkVfNDIyX1VOT1JNX0tIUjoxMDAwMTU2MDA1LFZLX0ZPUk1BVF9HOF9COF9SOF8zUExBTkVfNDQ0X1VOT1JNX0tIUjoxMDAwMTU2MDA2LFZLX0ZPUk1BVF9SMTBYNl9VTk9STV9QQUNLMTZfS0hSOjEwMDAxNTYwMDcsVktfRk9STUFUX1IxMFg2RzEwWDZfVU5PUk1fMlBBQ0sxNl9LSFI6MTAwMDE1NjAwOCxWS19GT1JNQVRfUjEwWDZHMTBYNkIxMFg2QTEwWDZfVU5PUk1fNFBBQ0sxNl9LSFI6MTAwMDE1NjAwOSxWS19GT1JNQVRfRzEwWDZCMTBYNkcxMFg2UjEwWDZfNDIyX1VOT1JNXzRQQUNLMTZfS0hSOjEwMDAxNTYwMTAsVktfRk9STUFUX0IxMFg2RzEwWDZSMTBYNkcxMFg2XzQyMl9VTk9STV80UEFDSzE2X0tIUjoxMDAwMTU2MDExLFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDIwX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTIsVktfRk9STUFUX0cxMFg2X0IxMFg2UjEwWDZfMlBMQU5FXzQyMF9VTk9STV8zUEFDSzE2X0tIUjoxMDAwMTU2MDEzLFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDIyX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTQsVktfRk9STUFUX0cxMFg2X0IxMFg2UjEwWDZfMlBMQU5FXzQyMl9VTk9STV8zUEFDSzE2X0tIUjoxMDAwMTU2MDE1LFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDQ0X1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTYsVktfRk9STUFUX1IxMlg0X1VOT1JNX1BBQ0sxNl9LSFI6MTAwMDE1NjAxNyxWS19GT1JNQVRfUjEyWDRHMTJYNF9VTk9STV8yUEFDSzE2X0tIUjoxMDAwMTU2MDE4LFZLX0ZPUk1BVF9SMTJYNEcxMlg0QjEyWDRBMTJYNF9VTk9STV80UEFDSzE2X0tIUjoxMDAwMTU2MDE5LFZLX0ZPUk1BVF9HMTJYNEIxMlg0RzEyWDRSMTJYNF80MjJfVU5PUk1fNFBBQ0sxNl9LSFI6MTAwMDE1NjAyMCxWS19GT1JNQVRfQjEyWDRHMTJYNFIxMlg0RzEyWDRfNDIyX1VOT1JNXzRQQUNLMTZfS0hSOjEwMDAxNTYwMjEsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80MjBfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyMixWS19GT1JNQVRfRzEyWDRfQjEyWDRSMTJYNF8yUExBTkVfNDIwX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMjMsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80MjJfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyNCxWS19GT1JNQVRfRzEyWDRfQjEyWDRSMTJYNF8yUExBTkVfNDIyX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMjUsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80NDRfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyNixWS19GT1JNQVRfRzE2QjE2RzE2UjE2XzQyMl9VTk9STV9LSFI6MTAwMDE1NjAyNyxWS19GT1JNQVRfQjE2RzE2UjE2RzE2XzQyMl9VTk9STV9LSFI6MTAwMDE1NjAyOCxWS19GT1JNQVRfRzE2X0IxNl9SMTZfM1BMQU5FXzQyMF9VTk9STV9LSFI6MTAwMDE1NjAyOSxWS19GT1JNQVRfRzE2X0IxNlIxNl8yUExBTkVfNDIwX1VOT1JNX0tIUjoxMDAwMTU2MDMwLFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDIyX1VOT1JNX0tIUjoxMDAwMTU2MDMxLFZLX0ZPUk1BVF9HMTZfQjE2UjE2XzJQTEFORV80MjJfVU5PUk1fS0hSOjEwMDAxNTYwMzIsVktfRk9STUFUX0cxNl9CMTZfUjE2XzNQTEFORV80NDRfVU5PUk1fS0hSOjEwMDAxNTYwMzN9LHl1PU9iamVjdC5mcmVlemUoUTYpfSk7ZnVuY3Rpb24gQ1ModCl7cmV0dXJuIHR5cGVvZiBUZXh0RGVjb2RlcjwidSI/bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHQpOkJ1ZmZlci5mcm9tKHQpLnRvU3RyaW5nKCJ1dGY4Iil9ZnVuY3Rpb24geFModCl7bGV0IGU9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0LGpvLmxlbmd0aCk7aWYoZVswXSE9PWpvWzBdfHxlWzFdIT09am9bMV18fGVbMl0hPT1qb1syXXx8ZVszXSE9PWpvWzNdfHxlWzRdIT09am9bNF18fGVbNV0hPT1qb1s1XXx8ZVs2XSE9PWpvWzZdfHxlWzddIT09am9bN118fGVbOF0hPT1qb1s4XXx8ZVs5XSE9PWpvWzldfHxlWzEwXSE9PWpvWzEwXXx8ZVsxMV0hPT1qb1sxMV0pdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIEtUWCAyLjAgaWRlbnRpZmllci4iKTtsZXQgbj1uZXcgSGcsbz0xNypVaW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxyPW5ldyBNYyh0LGpvLmxlbmd0aCxvLCEwKTtuLnZrRm9ybWF0PXIuX25leHRVaW50MzIoKSxuLnR5cGVTaXplPXIuX25leHRVaW50MzIoKSxuLnBpeGVsV2lkdGg9ci5fbmV4dFVpbnQzMigpLG4ucGl4ZWxIZWlnaHQ9ci5fbmV4dFVpbnQzMigpLG4ucGl4ZWxEZXB0aD1yLl9uZXh0VWludDMyKCksbi5sYXllckNvdW50PXIuX25leHRVaW50MzIoKSxuLmZhY2VDb3VudD1yLl9uZXh0VWludDMyKCk7bGV0IGk9ci5fbmV4dFVpbnQzMigpO24uc3VwZXJjb21wcmVzc2lvblNjaGVtZT1yLl9uZXh0VWludDMyKCk7bGV0IHM9ci5fbmV4dFVpbnQzMigpLGY9ci5fbmV4dFVpbnQzMigpLHU9ci5fbmV4dFVpbnQzMigpLGM9ci5fbmV4dFVpbnQzMigpLGw9ci5fbmV4dFVpbnQ2NCgpLHA9ci5fbmV4dFVpbnQ2NCgpLGQ9aSozKjgsbT1uZXcgTWModCxqby5sZW5ndGgrbyxkLCEwKTtmb3IobGV0IFg9MDtYPGk7WCsrKW4ubGV2ZWxzLnB1c2goe2xldmVsRGF0YTpuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQrbS5fbmV4dFVpbnQ2NCgpLG0uX25leHRVaW50NjQoKSksdW5jb21wcmVzc2VkQnl0ZUxlbmd0aDptLl9uZXh0VWludDY0KCl9KTtsZXQgXz1uZXcgTWModCxzLGYsITApLGc9e3ZlbmRvcklkOl8uX3NraXAoNCkuX25leHRVaW50MTYoKSxkZXNjcmlwdG9yVHlwZTpfLl9uZXh0VWludDE2KCksdmVyc2lvbk51bWJlcjpfLl9uZXh0VWludDE2KCksZGVzY3JpcHRvckJsb2NrU2l6ZTpfLl9uZXh0VWludDE2KCksY29sb3JNb2RlbDpfLl9uZXh0VWludDgoKSxjb2xvclByaW1hcmllczpfLl9uZXh0VWludDgoKSx0cmFuc2ZlckZ1bmN0aW9uOl8uX25leHRVaW50OCgpLGZsYWdzOl8uX25leHRVaW50OCgpLHRleGVsQmxvY2tEaW1lbnNpb246W18uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpXSxieXRlc1BsYW5lOltfLl9uZXh0VWludDgoKSxfLl9uZXh0VWludDgoKSxfLl9uZXh0VWludDgoKSxfLl9uZXh0VWludDgoKSxfLl9uZXh0VWludDgoKSxfLl9uZXh0VWludDgoKSxfLl9uZXh0VWludDgoKSxfLl9uZXh0VWludDgoKV0sc2FtcGxlczpbXX0sYj02LE89NCxUPShnLmRlc2NyaXB0b3JCbG9ja1NpemUvNC1iKS9PO2ZvcihsZXQgWD0wO1g8VDtYKyspe2xldCBSPXtiaXRPZmZzZXQ6Xy5fbmV4dFVpbnQxNigpLGJpdExlbmd0aDpfLl9uZXh0VWludDgoKSxjaGFubmVsVHlwZTpfLl9uZXh0VWludDgoKSxzYW1wbGVQb3NpdGlvbjpbXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCldLHNhbXBsZUxvd2VyOi0xLzAsc2FtcGxlVXBwZXI6MS8wfTtSLmNoYW5uZWxUeXBlJjY0PyhSLnNhbXBsZUxvd2VyPV8uX25leHRJbnQzMigpLFIuc2FtcGxlVXBwZXI9Xy5fbmV4dEludDMyKCkpOihSLnNhbXBsZUxvd2VyPV8uX25leHRVaW50MzIoKSxSLnNhbXBsZVVwcGVyPV8uX25leHRVaW50MzIoKSksZy5zYW1wbGVzW1hdPVJ9bi5kYXRhRm9ybWF0RGVzY3JpcHRvci5sZW5ndGg9MCxuLmRhdGFGb3JtYXREZXNjcmlwdG9yLnB1c2goZyk7bGV0IEU9bmV3IE1jKHQsdSxjLCEwKTtmb3IoO0UuX29mZnNldDxjOyl7bGV0IFg9RS5fbmV4dFVpbnQzMigpLFI9RS5fc2NhbihYKSxRPUNTKFIpO2lmKG4ua2V5VmFsdWVbUV09RS5fbmV4dFVpbnQ4QXJyYXkoWC1SLmJ5dGVMZW5ndGgtMSksUS5tYXRjaCgvXmt0eC9pKSl7bGV0IHB0PUNTKG4ua2V5VmFsdWVbUV0pO24ua2V5VmFsdWVbUV09cHQuc3Vic3RyaW5nKDAscHQubGFzdEluZGV4T2YoIlwwIikpfWxldCBmdD1YJTQ/NC1YJTQ6MDtFLl9za2lwKGZ0KX1pZihwPD0wKXJldHVybiBuO2xldCB3PW5ldyBNYyh0LGwscCwhMCksQz13Ll9uZXh0VWludDE2KCksTj13Ll9uZXh0VWludDE2KCksST13Ll9uZXh0VWludDMyKCksTD13Ll9uZXh0VWludDMyKCksdj13Ll9uZXh0VWludDMyKCksRD13Ll9uZXh0VWludDMyKCksVT1bXTtmb3IobGV0IFg9MDtYPGk7WCsrKVUucHVzaCh7aW1hZ2VGbGFnczp3Ll9uZXh0VWludDMyKCkscmdiU2xpY2VCeXRlT2Zmc2V0OncuX25leHRVaW50MzIoKSxyZ2JTbGljZUJ5dGVMZW5ndGg6dy5fbmV4dFVpbnQzMigpLGFscGhhU2xpY2VCeXRlT2Zmc2V0OncuX25leHRVaW50MzIoKSxhbHBoYVNsaWNlQnl0ZUxlbmd0aDp3Ll9uZXh0VWludDMyKCl9KTtsZXQgQT1sK3cuX29mZnNldCxTPUErSSxQPVMrTCxGPVArdixqPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCtBLEkpLEg9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0K1MsTCksaz1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQrUCx2KSxLPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCtGLEQpO3JldHVybiBuLmdsb2JhbERhdGE9e2VuZHBvaW50Q291bnQ6QyxzZWxlY3RvckNvdW50Ok4saW1hZ2VEZXNjczpVLGVuZHBvaW50c0RhdGE6aixzZWxlY3RvcnNEYXRhOkgsdGFibGVzRGF0YTprLGV4dGVuZGVkRGF0YTpLfSxufXZhciBIZyxNYyxIdXQsam8sUFM9WigoKT0+e0hnPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy52a0Zvcm1hdD0wLHRoaXMudHlwZVNpemU9MSx0aGlzLnBpeGVsV2lkdGg9MCx0aGlzLnBpeGVsSGVpZ2h0PTAsdGhpcy5waXhlbERlcHRoPTAsdGhpcy5sYXllckNvdW50PTAsdGhpcy5mYWNlQ291bnQ9MSx0aGlzLnN1cGVyY29tcHJlc3Npb25TY2hlbWU9MCx0aGlzLmxldmVscz1bXSx0aGlzLmRhdGFGb3JtYXREZXNjcmlwdG9yPVt7dmVuZG9ySWQ6MCxkZXNjcmlwdG9yVHlwZTowLGRlc2NyaXB0b3JCbG9ja1NpemU6MCx2ZXJzaW9uTnVtYmVyOjIsY29sb3JNb2RlbDowLGNvbG9yUHJpbWFyaWVzOjEsdHJhbnNmZXJGdW5jdGlvbjoyLGZsYWdzOjAsdGV4ZWxCbG9ja0RpbWVuc2lvbjpbMCwwLDAsMF0sYnl0ZXNQbGFuZTpbMCwwLDAsMCwwLDAsMCwwXSxzYW1wbGVzOltdfV0sdGhpcy5rZXlWYWx1ZT17fSx0aGlzLmdsb2JhbERhdGE9bnVsbH19LE1jPWNsYXNze2NvbnN0cnVjdG9yKGUsbixvLHIpe3RoaXMuX2RhdGFWaWV3PXZvaWQgMCx0aGlzLl9saXR0bGVFbmRpYW49dm9pZCAwLHRoaXMuX29mZnNldD12b2lkIDAsdGhpcy5fZGF0YVZpZXc9bmV3IERhdGFWaWV3KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCtuLG8pLHRoaXMuX2xpdHRsZUVuZGlhbj1yLHRoaXMuX29mZnNldD0wfV9uZXh0VWludDgoKXtsZXQgZT10aGlzLl9kYXRhVmlldy5nZXRVaW50OCh0aGlzLl9vZmZzZXQpO3JldHVybiB0aGlzLl9vZmZzZXQrPTEsZX1fbmV4dFVpbnQxNigpe2xldCBlPXRoaXMuX2RhdGFWaWV3LmdldFVpbnQxNih0aGlzLl9vZmZzZXQsdGhpcy5fbGl0dGxlRW5kaWFuKTtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz0yLGV9X25leHRVaW50MzIoKXtsZXQgZT10aGlzLl9kYXRhVmlldy5nZXRVaW50MzIodGhpcy5fb2Zmc2V0LHRoaXMuX2xpdHRsZUVuZGlhbik7cmV0dXJuIHRoaXMuX29mZnNldCs9NCxlfV9uZXh0VWludDY0KCl7bGV0IGU9dGhpcy5fZGF0YVZpZXcuZ2V0VWludDMyKHRoaXMuX29mZnNldCx0aGlzLl9saXR0bGVFbmRpYW4pLG49dGhpcy5fZGF0YVZpZXcuZ2V0VWludDMyKHRoaXMuX29mZnNldCs0LHRoaXMuX2xpdHRsZUVuZGlhbiksbz1lKzIqKjMyKm47cmV0dXJuIHRoaXMuX29mZnNldCs9OCxvfV9uZXh0SW50MzIoKXtsZXQgZT10aGlzLl9kYXRhVmlldy5nZXRJbnQzMih0aGlzLl9vZmZzZXQsdGhpcy5fbGl0dGxlRW5kaWFuKTtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz00LGV9X25leHRVaW50OEFycmF5KGUpe2xldCBuPW5ldyBVaW50OEFycmF5KHRoaXMuX2RhdGFWaWV3LmJ1ZmZlcix0aGlzLl9kYXRhVmlldy5ieXRlT2Zmc2V0K3RoaXMuX29mZnNldCxlKTtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz1lLG59X3NraXAoZSl7cmV0dXJuIHRoaXMuX29mZnNldCs9ZSx0aGlzfV9zY2FuKGUsbj0wKXtsZXQgbz10aGlzLl9vZmZzZXQscj0wO2Zvcig7dGhpcy5fZGF0YVZpZXcuZ2V0VWludDgodGhpcy5fb2Zmc2V0KSE9PW4mJnI8ZTspcisrLHRoaXMuX29mZnNldCsrO3JldHVybiByPGUmJnRoaXMuX29mZnNldCsrLG5ldyBVaW50OEFycmF5KHRoaXMuX2RhdGFWaWV3LmJ1ZmZlcix0aGlzLl9kYXRhVmlldy5ieXRlT2Zmc2V0K28scil9fSxIdXQ9bmV3IFVpbnQ4QXJyYXkoWzBdKSxqbz1bMTcxLDc1LDg0LDg4LDMyLDUwLDQ4LDE4NywxMywxMCwyNiwxMF19KTt2YXIgTVM9VW4oKHBtLEtnKT0+e3ZhciBxZz1mdW5jdGlvbigpe3ZhciB0PXR5cGVvZiBkb2N1bWVudDwidSImJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQ/ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM6dm9pZCAwO3JldHVybiB0eXBlb2YgX19maWxlbmFtZTwidSImJih0PXR8fF9fZmlsZW5hbWUpLGZ1bmN0aW9uKGUpe2U9ZXx8e307dmFyIG49dHlwZW9mIGU8InUiP2U6e30sbyxyO24ucmVhZHk9bmV3IFByb21pc2UoZnVuY3Rpb24oVixHKXtvPVYscj1HfSk7dmFyIGk9e30scztmb3IocyBpbiBuKW4uaGFzT3duUHJvcGVydHkocykmJihpW3NdPW5bc10pO3ZhciBmPVtdLHU9Ii4vdGhpcy5wcm9ncmFtIixjPWZ1bmN0aW9uKFYsRyl7dGhyb3cgR30sbD0hMSxwPSExLGQ9ITEsbT0hMTtsPXR5cGVvZiB3aW5kb3c9PSJvYmplY3QiLHA9dHlwZW9mIGltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsZD10eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZT09InN0cmluZyIsbT0hbCYmIWQmJiFwO3ZhciBfPSIiO2Z1bmN0aW9uIGcoVil7cmV0dXJuIG4ubG9jYXRlRmlsZT9uLmxvY2F0ZUZpbGUoVixfKTpfK1Z9dmFyIGIsTyxULEUsdyxDO2Q/KHA/Xz1EbygicGF0aCIpLmRpcm5hbWUoXykrIi8iOl89X19kaXJuYW1lKyIvIixiPWZ1bmN0aW9uKEcsWSl7cmV0dXJuIHd8fCh3PURvKCJmcyIpKSxDfHwoQz1EbygicGF0aCIpKSxHPUMubm9ybWFsaXplKEcpLHcucmVhZEZpbGVTeW5jKEcsWT9udWxsOiJ1dGY4Iil9LFQ9ZnVuY3Rpb24oRyl7dmFyIFk9YihHLCEwKTtyZXR1cm4gWS5idWZmZXJ8fChZPW5ldyBVaW50OEFycmF5KFkpKSxGKFkuYnVmZmVyKSxZfSxwcm9jZXNzLmFyZ3YubGVuZ3RoPjEmJih1PXByb2Nlc3MuYXJndlsxXS5yZXBsYWNlKC9cXC9nLCIvIikpLGY9cHJvY2Vzcy5hcmd2LnNsaWNlKDIpLHByb2Nlc3Mub24oInVuY2F1Z2h0RXhjZXB0aW9uIixmdW5jdGlvbihWKXtpZighKFYgaW5zdGFuY2VvZiBUaSkpdGhyb3cgVn0pLHByb2Nlc3Mub24oInVuaGFuZGxlZFJlamVjdGlvbiIsS2UpLGM9ZnVuY3Rpb24oVil7cHJvY2Vzcy5leGl0KFYpfSxuLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4iW0Vtc2NyaXB0ZW4gTW9kdWxlIG9iamVjdF0ifSk6bT8odHlwZW9mIHJlYWQ8InUiJiYoYj1mdW5jdGlvbihHKXtyZXR1cm4gcmVhZChHKX0pLFQ9ZnVuY3Rpb24oRyl7dmFyIFk7cmV0dXJuIHR5cGVvZiByZWFkYnVmZmVyPT0iZnVuY3Rpb24iP25ldyBVaW50OEFycmF5KHJlYWRidWZmZXIoRykpOihZPXJlYWQoRywiYmluYXJ5IiksRih0eXBlb2YgWT09Im9iamVjdCIpLFkpfSx0eXBlb2Ygc2NyaXB0QXJnczwidSI/Zj1zY3JpcHRBcmdzOnR5cGVvZiBhcmd1bWVudHM8InUiJiYoZj1hcmd1bWVudHMpLHR5cGVvZiBxdWl0PT0iZnVuY3Rpb24iJiYoYz1mdW5jdGlvbihWKXtxdWl0KFYpfSksdHlwZW9mIHByaW50PCJ1IiYmKHR5cGVvZiBjb25zb2xlPiJ1IiYmKGNvbnNvbGU9e30pLGNvbnNvbGUubG9nPXByaW50LGNvbnNvbGUud2Fybj1jb25zb2xlLmVycm9yPXR5cGVvZiBwcmludEVycjwidSI/cHJpbnRFcnI6cHJpbnQpKToobHx8cCkmJihwP189c2VsZi5sb2NhdGlvbi5ocmVmOnR5cGVvZiBkb2N1bWVudDwidSImJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQmJihfPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjKSx0JiYoXz10KSxfLmluZGV4T2YoImJsb2I6IikhPT0wP189Xy5zdWJzdHIoMCxfLmxhc3RJbmRleE9mKCIvIikrMSk6Xz0iIixiPWZ1bmN0aW9uKFYpe3ZhciBHPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gRy5vcGVuKCJHRVQiLFYsITEpLEcuc2VuZChudWxsKSxHLnJlc3BvbnNlVGV4dH0scCYmKFQ9ZnVuY3Rpb24oVil7dmFyIEc9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBHLm9wZW4oIkdFVCIsViwhMSksRy5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixHLnNlbmQobnVsbCksbmV3IFVpbnQ4QXJyYXkoRy5yZXNwb25zZSl9KSxPPWZ1bmN0aW9uKFYsRyxZKXt2YXIgSj1uZXcgWE1MSHR0cFJlcXVlc3Q7Si5vcGVuKCJHRVQiLFYsITApLEoucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsSi5vbmxvYWQ9ZnVuY3Rpb24oKXtpZihKLnN0YXR1cz09MjAwfHxKLnN0YXR1cz09MCYmSi5yZXNwb25zZSl7RyhKLnJlc3BvbnNlKTtyZXR1cm59WSgpfSxKLm9uZXJyb3I9WSxKLnNlbmQobnVsbCl9LEU9ZnVuY3Rpb24oVil7ZG9jdW1lbnQudGl0bGU9Vn0pO3ZhciBOPW4ucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksST1uLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtmb3IocyBpbiBpKWkuaGFzT3duUHJvcGVydHkocykmJihuW3NdPWlbc10pO2k9bnVsbCxuLmFyZ3VtZW50cyYmKGY9bi5hcmd1bWVudHMpLG4udGhpc1Byb2dyYW0mJih1PW4udGhpc1Byb2dyYW0pLG4ucXVpdCYmKGM9bi5xdWl0KTt2YXIgTD0wLHY9ZnVuY3Rpb24oVil7TD1WfSxEO24ud2FzbUJpbmFyeSYmKEQ9bi53YXNtQmluYXJ5KTt2YXIgVT1uLm5vRXhpdFJ1bnRpbWV8fCEwO3R5cGVvZiBXZWJBc3NlbWJseSE9Im9iamVjdCImJktlKCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIik7dmFyIEEsUz0hMSxQO2Z1bmN0aW9uIEYoVixHKXtWfHxLZSgiQXNzZXJ0aW9uIGZhaWxlZDogIitHKX12YXIgaj10eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMDtmdW5jdGlvbiBIKFYsRyxZKXtmb3IodmFyIEo9RytZLHV0PUc7Vlt1dF0mJiEodXQ+PUopOykrK3V0O2lmKHV0LUc+MTYmJlYuc3ViYXJyYXkmJmopcmV0dXJuIGouZGVjb2RlKFYuc3ViYXJyYXkoRyx1dCkpO2Zvcih2YXIgVHQ9IiI7Rzx1dDspe3ZhciBSdD1WW0crK107aWYoIShSdCYxMjgpKXtUdCs9U3RyaW5nLmZyb21DaGFyQ29kZShSdCk7Y29udGludWV9dmFyIG10PVZbRysrXSY2MztpZigoUnQmMjI0KT09MTkyKXtUdCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoUnQmMzEpPDw2fG10KTtjb250aW51ZX12YXIgaHQ9VltHKytdJjYzO2lmKChSdCYyNDApPT0yMjQ/UnQ9KFJ0JjE1KTw8MTJ8bXQ8PDZ8aHQ6UnQ9KFJ0JjcpPDwxOHxtdDw8MTJ8aHQ8PDZ8VltHKytdJjYzLFJ0PDY1NTM2KVR0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKFJ0KTtlbHNle3ZhciBLdD1SdC02NTUzNjtUdCs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxLdD4+MTAsNTYzMjB8S3QmMTAyMyl9fXJldHVybiBUdH1mdW5jdGlvbiBrKFYsRyl7cmV0dXJuIFY/SChWdCxWLEcpOiIifWZ1bmN0aW9uIEsoVixHLFksSil7aWYoIShKPjApKXJldHVybiAwO2Zvcih2YXIgdXQ9WSxUdD1ZK0otMSxSdD0wO1J0PFYubGVuZ3RoOysrUnQpe3ZhciBtdD1WLmNoYXJDb2RlQXQoUnQpO2lmKG10Pj01NTI5NiYmbXQ8PTU3MzQzKXt2YXIgaHQ9Vi5jaGFyQ29kZUF0KCsrUnQpO210PTY1NTM2KygobXQmMTAyMyk8PDEwKXxodCYxMDIzfWlmKG10PD0xMjcpe2lmKFk+PVR0KWJyZWFrO0dbWSsrXT1tdH1lbHNlIGlmKG10PD0yMDQ3KXtpZihZKzE+PVR0KWJyZWFrO0dbWSsrXT0xOTJ8bXQ+PjYsR1tZKytdPTEyOHxtdCY2M31lbHNlIGlmKG10PD02NTUzNSl7aWYoWSsyPj1UdClicmVhaztHW1krK109MjI0fG10Pj4xMixHW1krK109MTI4fG10Pj42JjYzLEdbWSsrXT0xMjh8bXQmNjN9ZWxzZXtpZihZKzM+PVR0KWJyZWFrO0dbWSsrXT0yNDB8bXQ+PjE4LEdbWSsrXT0xMjh8bXQ+PjEyJjYzLEdbWSsrXT0xMjh8bXQ+PjYmNjMsR1tZKytdPTEyOHxtdCY2M319cmV0dXJuIEdbWV09MCxZLXV0fWZ1bmN0aW9uIFgoVixHLFkpe3JldHVybiBLKFYsVnQsRyxZKX1mdW5jdGlvbiBSKFYpe2Zvcih2YXIgRz0wLFk9MDtZPFYubGVuZ3RoOysrWSl7dmFyIEo9Vi5jaGFyQ29kZUF0KFkpO0o+PTU1Mjk2JiZKPD01NzM0MyYmKEo9NjU1MzYrKChKJjEwMjMpPDwxMCl8Vi5jaGFyQ29kZUF0KCsrWSkmMTAyMyksSjw9MTI3PysrRzpKPD0yMDQ3P0crPTI6Sjw9NjU1MzU/Rys9MzpHKz00fXJldHVybiBHfXZhciBRPXR5cGVvZiBUZXh0RGVjb2RlcjwidSI/bmV3IFRleHREZWNvZGVyKCJ1dGYtMTZsZSIpOnZvaWQgMDtmdW5jdGlvbiBmdChWLEcpe2Zvcih2YXIgWT1WLEo9WT4+MSx1dD1KK0cvMjshKEo+PXV0KSYmaGVbSl07KSsrSjtpZihZPUo8PDEsWS1WPjMyJiZRKXJldHVybiBRLmRlY29kZShWdC5zdWJhcnJheShWLFkpKTtmb3IodmFyIFR0PSIiLFJ0PTA7IShSdD49Ry8yKTsrK1J0KXt2YXIgbXQ9enRbVitSdCoyPj4xXTtpZihtdD09MClicmVhaztUdCs9U3RyaW5nLmZyb21DaGFyQ29kZShtdCl9cmV0dXJuIFR0fWZ1bmN0aW9uIHB0KFYsRyxZKXtpZihZPT09dm9pZCAwJiYoWT0yMTQ3NDgzNjQ3KSxZPDIpcmV0dXJuIDA7WS09Mjtmb3IodmFyIEo9Ryx1dD1ZPFYubGVuZ3RoKjI/WS8yOlYubGVuZ3RoLFR0PTA7VHQ8dXQ7KytUdCl7dmFyIFJ0PVYuY2hhckNvZGVBdChUdCk7enRbRz4+MV09UnQsRys9Mn1yZXR1cm4genRbRz4+MV09MCxHLUp9ZnVuY3Rpb24gZ3QoVil7cmV0dXJuIFYubGVuZ3RoKjJ9ZnVuY3Rpb24gaXQoVixHKXtmb3IodmFyIFk9MCxKPSIiOyEoWT49Ry80KTspe3ZhciB1dD1jZVtWK1kqND4+Ml07aWYodXQ9PTApYnJlYWs7aWYoKytZLHV0Pj02NTUzNil7dmFyIFR0PXV0LTY1NTM2O0orPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8VHQ+PjEwLDU2MzIwfFR0JjEwMjMpfWVsc2UgSis9U3RyaW5nLmZyb21DaGFyQ29kZSh1dCl9cmV0dXJuIEp9ZnVuY3Rpb24gTnQoVixHLFkpe2lmKFk9PT12b2lkIDAmJihZPTIxNDc0ODM2NDcpLFk8NClyZXR1cm4gMDtmb3IodmFyIEo9Ryx1dD1KK1ktNCxUdD0wO1R0PFYubGVuZ3RoOysrVHQpe3ZhciBSdD1WLmNoYXJDb2RlQXQoVHQpO2lmKFJ0Pj01NTI5NiYmUnQ8PTU3MzQzKXt2YXIgbXQ9Vi5jaGFyQ29kZUF0KCsrVHQpO1J0PTY1NTM2KygoUnQmMTAyMyk8PDEwKXxtdCYxMDIzfWlmKGNlW0c+PjJdPVJ0LEcrPTQsRys0PnV0KWJyZWFrfXJldHVybiBjZVtHPj4yXT0wLEctSn1mdW5jdGlvbiBPdChWKXtmb3IodmFyIEc9MCxZPTA7WTxWLmxlbmd0aDsrK1kpe3ZhciBKPVYuY2hhckNvZGVBdChZKTtKPj01NTI5NiYmSjw9NTczNDMmJisrWSxHKz00fXJldHVybiBHfWZ1bmN0aW9uIHh0KFYsRyl7cmV0dXJuIFYlRz4wJiYoVis9Ry1WJUcpLFZ9dmFyIF90LGR0LFZ0LHp0LGhlLGNlLHBlLGZlLFF0O2Z1bmN0aW9uIEp0KFYpe190PVYsbi5IRUFQOD1kdD1uZXcgSW50OEFycmF5KFYpLG4uSEVBUDE2PXp0PW5ldyBJbnQxNkFycmF5KFYpLG4uSEVBUDMyPWNlPW5ldyBJbnQzMkFycmF5KFYpLG4uSEVBUFU4PVZ0PW5ldyBVaW50OEFycmF5KFYpLG4uSEVBUFUxNj1oZT1uZXcgVWludDE2QXJyYXkoViksbi5IRUFQVTMyPXBlPW5ldyBVaW50MzJBcnJheShWKSxuLkhFQVBGMzI9ZmU9bmV3IEZsb2F0MzJBcnJheShWKSxuLkhFQVBGNjQ9UXQ9bmV3IEZsb2F0NjRBcnJheShWKX12YXIgeGU9bi5JTklUSUFMX01FTU9SWXx8MTY3NzcyMTYsQWUsRWU9W10sdW49W10sVWU9W10sYmU9W10sbG49ITE7ZnVuY3Rpb24gcG4oKXtpZihuLnByZVJ1bilmb3IodHlwZW9mIG4ucHJlUnVuPT0iZnVuY3Rpb24iJiYobi5wcmVSdW49W24ucHJlUnVuXSk7bi5wcmVSdW4ubGVuZ3RoOylWZShuLnByZVJ1bi5zaGlmdCgpKTtxbyhFZSl9ZnVuY3Rpb24gVG4oKXtsbj0hMCxxbyh1bil9ZnVuY3Rpb24gb2UoKXtxbyhVZSl9ZnVuY3Rpb24gJHQoKXtpZihuLnBvc3RSdW4pZm9yKHR5cGVvZiBuLnBvc3RSdW49PSJmdW5jdGlvbiImJihuLnBvc3RSdW49W24ucG9zdFJ1bl0pO24ucG9zdFJ1bi5sZW5ndGg7KXNuKG4ucG9zdFJ1bi5zaGlmdCgpKTtxbyhiZSl9ZnVuY3Rpb24gVmUoVil7RWUudW5zaGlmdChWKX1mdW5jdGlvbiBkbihWKXt1bi51bnNoaWZ0KFYpfWZ1bmN0aW9uIHNuKFYpe2JlLnVuc2hpZnQoVil9dmFyIG1uPTAsZm89bnVsbCxIbj1udWxsO2Z1bmN0aW9uIFplKFYpe21uKyssbi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZuLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMobW4pfWZ1bmN0aW9uIGNuKFYpe2lmKG1uLS0sbi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZuLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMobW4pLG1uPT0wJiYoZm8hPT1udWxsJiYoY2xlYXJJbnRlcnZhbChmbyksZm89bnVsbCksSG4pKXt2YXIgRz1IbjtIbj1udWxsLEcoKX19bi5wcmVsb2FkZWRJbWFnZXM9e30sbi5wcmVsb2FkZWRBdWRpb3M9e307ZnVuY3Rpb24gS2UoVil7bi5vbkFib3J0JiZuLm9uQWJvcnQoViksVis9IiIsSShWKSxTPSEwLFA9MSxWPSJhYm9ydCgiK1YrIikuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIjt2YXIgRz1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKFYpO3Rocm93IHIoRyksR31mdW5jdGlvbiBobihWLEcpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGg/Vi5zdGFydHNXaXRoKEcpOlYuaW5kZXhPZihHKT09PTB9dmFyIHVvPSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIjtmdW5jdGlvbiBxbihWKXtyZXR1cm4gaG4oVix1byl9dmFyIEtuPSJmaWxlOi8vIjtmdW5jdGlvbiBsbyhWKXtyZXR1cm4gaG4oVixLbil9dmFyIGtlPSJiYXNpc190cmFuc2NvZGVyLndhc20iO3FuKGtlKXx8KGtlPWcoa2UpKTtmdW5jdGlvbiBOZShWKXt0cnl7aWYoVj09a2UmJkQpcmV0dXJuIG5ldyBVaW50OEFycmF5KEQpO2lmKFQpcmV0dXJuIFQoVik7dGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWNhdGNoKEcpe0tlKEcpfX1mdW5jdGlvbiBEbigpe2lmKCFEJiYobHx8cCkpe2lmKHR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIiYmIWxvKGtlKSlyZXR1cm4gZmV0Y2goa2Use2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKFYpe2lmKCFWLm9rKXRocm93ImZhaWxlZCB0byBsb2FkIHdhc20gYmluYXJ5IGZpbGUgYXQgJyIra2UrIiciO3JldHVybiBWLmFycmF5QnVmZmVyKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBOZShrZSl9KTtpZihPKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihWLEcpe08oa2UsZnVuY3Rpb24oWSl7VihuZXcgVWludDhBcnJheShZKSl9LEcpfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gTmUoa2UpfSl9ZnVuY3Rpb24gV24oKXt2YXIgVj17YTpGbH07ZnVuY3Rpb24gRyhSdCxtdCl7dmFyIGh0PVJ0LmV4cG9ydHM7bi5hc209aHQsQT1uLmFzbS5LLEp0KEEuYnVmZmVyKSxBZT1uLmFzbS5PLGRuKG4uYXNtLkwpLGNuKCJ3YXNtLWluc3RhbnRpYXRlIil9WmUoIndhc20taW5zdGFudGlhdGUiKTtmdW5jdGlvbiBZKFJ0KXtHKFJ0Lmluc3RhbmNlKX1mdW5jdGlvbiBKKFJ0KXtyZXR1cm4gRG4oKS50aGVuKGZ1bmN0aW9uKG10KXt2YXIgaHQ9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUobXQsVik7cmV0dXJuIGh0fSkudGhlbihSdCxmdW5jdGlvbihtdCl7SSgiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIittdCksS2UobXQpfSl9ZnVuY3Rpb24gdXQoKXtyZXR1cm4hRCYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nPT0iZnVuY3Rpb24iJiYhcW4oa2UpJiYhbG8oa2UpJiZ0eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiI/ZmV0Y2goa2Use2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKFJ0KXt2YXIgbXQ9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoUnQsVik7cmV0dXJuIG10LnRoZW4oWSxmdW5jdGlvbihodCl7cmV0dXJuIEkoIndhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAiK2h0KSxJKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpLEooWSl9KX0pOkooWSl9aWYobi5pbnN0YW50aWF0ZVdhc20pdHJ5e3ZhciBUdD1uLmluc3RhbnRpYXRlV2FzbShWLEcpO3JldHVybiBUdH1jYXRjaChSdCl7cmV0dXJuIEkoIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrUnQpLCExfXJldHVybiB1dCgpLmNhdGNoKHIpLHt9fWZ1bmN0aW9uIHFvKFYpe2Zvcig7Vi5sZW5ndGg+MDspe3ZhciBHPVYuc2hpZnQoKTtpZih0eXBlb2YgRz09ImZ1bmN0aW9uIil7RyhuKTtjb250aW51ZX12YXIgWT1HLmZ1bmM7dHlwZW9mIFk9PSJudW1iZXIiP0cuYXJnPT09dm9pZCAwP0FlLmdldChZKSgpOkFlLmdldChZKShHLmFyZyk6WShHLmFyZz09PXZvaWQgMD9udWxsOkcuYXJnKX19dmFyIHJuPXt9O2Z1bmN0aW9uIE9uKFYpe2Zvcig7Vi5sZW5ndGg7KXt2YXIgRz1WLnBvcCgpLFk9Vi5wb3AoKTtZKEcpfX1mdW5jdGlvbiB1cihWKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUocGVbVj4+Ml0pfXZhciBabj17fSxLbz17fSxOcj17fSxNcz00OCxOcz01NztmdW5jdGlvbiBYaShWKXtpZihWPT09dm9pZCAwKXJldHVybiJfdW5rbm93biI7Vj1WLnJlcGxhY2UoL1teYS16QS1aMC05X10vZywiJCIpO3ZhciBHPVYuY2hhckNvZGVBdCgwKTtyZXR1cm4gRz49TXMmJkc8PU5zPyJfIitWOlZ9ZnVuY3Rpb24gSXIoVixHKXtyZXR1cm4gVj1YaShWKSxuZXcgRnVuY3Rpb24oImJvZHkiLCJyZXR1cm4gZnVuY3Rpb24gIitWK2AoKSB7CiAgICAidXNlIHN0cmljdCI7ICAgIHJldHVybiBib2R5LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Cn07CmApKEcpfWZ1bmN0aW9uIFlpKFYsRyl7dmFyIFk9SXIoRyxmdW5jdGlvbihKKXt0aGlzLm5hbWU9Ryx0aGlzLm1lc3NhZ2U9Sjt2YXIgdXQ9bmV3IEVycm9yKEopLnN0YWNrO3V0IT09dm9pZCAwJiYodGhpcy5zdGFjaz10aGlzLnRvU3RyaW5nKCkrYApgK3V0LnJlcGxhY2UoL15FcnJvcig6W15cbl0qKT9cbi8sIiIpKX0pO3JldHVybiBZLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFYucHJvdG90eXBlKSxZLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ZLFkucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZT09PXZvaWQgMD90aGlzLm5hbWU6dGhpcy5uYW1lKyI6ICIrdGhpcy5tZXNzYWdlfSxZfXZhciBJcz12b2lkIDA7ZnVuY3Rpb24gQWkoVil7dGhyb3cgbmV3IElzKFYpfWZ1bmN0aW9uIG5vKFYsRyxZKXtWLmZvckVhY2goZnVuY3Rpb24obXQpe05yW210XT1HfSk7ZnVuY3Rpb24gSihtdCl7dmFyIGh0PVkobXQpO2h0Lmxlbmd0aCE9PVYubGVuZ3RoJiZBaSgiTWlzbWF0Y2hlZCB0eXBlIGNvbnZlcnRlciBjb3VudCIpO2Zvcih2YXIgS3Q9MDtLdDxWLmxlbmd0aDsrK0t0KXJyKFZbS3RdLGh0W0t0XSl9dmFyIHV0PW5ldyBBcnJheShHLmxlbmd0aCksVHQ9W10sUnQ9MDtHLmZvckVhY2goZnVuY3Rpb24obXQsaHQpe0tvLmhhc093blByb3BlcnR5KG10KT91dFtodF09S29bbXRdOihUdC5wdXNoKG10KSxabi5oYXNPd25Qcm9wZXJ0eShtdCl8fChablttdF09W10pLFpuW210XS5wdXNoKGZ1bmN0aW9uKCl7dXRbaHRdPUtvW210XSwrK1J0LFJ0PT09VHQubGVuZ3RoJiZKKHV0KX0pKX0pLFR0Lmxlbmd0aD09PTAmJkoodXQpfWZ1bmN0aW9uIHBvKFYpe3ZhciBHPXJuW1ZdO2RlbGV0ZSBybltWXTt2YXIgWT1HLnJhd0NvbnN0cnVjdG9yLEo9Ry5yYXdEZXN0cnVjdG9yLHV0PUcuZmllbGRzLFR0PXV0Lm1hcChmdW5jdGlvbihSdCl7cmV0dXJuIFJ0LmdldHRlclJldHVyblR5cGV9KS5jb25jYXQodXQubWFwKGZ1bmN0aW9uKFJ0KXtyZXR1cm4gUnQuc2V0dGVyQXJndW1lbnRUeXBlfSkpO25vKFtWXSxUdCxmdW5jdGlvbihSdCl7dmFyIG10PXt9O3JldHVybiB1dC5mb3JFYWNoKGZ1bmN0aW9uKGh0LEt0KXt2YXIgdGU9aHQuZmllbGROYW1lLFRlPVJ0W0t0XSxKZT1odC5nZXR0ZXIsZ249aHQuZ2V0dGVyQ29udGV4dCxvbz1SdFtLdCt1dC5sZW5ndGhdLHZvPWh0LnNldHRlcixkcj1odC5zZXR0ZXJDb250ZXh0O210W3RlXT17cmVhZDpmdW5jdGlvbihacil7cmV0dXJuIFRlLmZyb21XaXJlVHlwZShKZShnbixacikpfSx3cml0ZTpmdW5jdGlvbihacixzZil7dmFyIE9pPVtdO3ZvKGRyLFpyLG9vLnRvV2lyZVR5cGUoT2ksc2YpKSxPbihPaSl9fX0pLFt7bmFtZTpHLm5hbWUsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKGh0KXt2YXIgS3Q9e307Zm9yKHZhciB0ZSBpbiBtdClLdFt0ZV09bXRbdGVdLnJlYWQoaHQpO3JldHVybiBKKGh0KSxLdH0sdG9XaXJlVHlwZTpmdW5jdGlvbihodCxLdCl7Zm9yKHZhciB0ZSBpbiBtdClpZighKHRlIGluIEt0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdNaXNzaW5nIGZpZWxkOiAgIicrdGUrJyInKTt2YXIgVGU9WSgpO2Zvcih0ZSBpbiBtdCltdFt0ZV0ud3JpdGUoVGUsS3RbdGVdKTtyZXR1cm4gaHQhPT1udWxsJiZodC5wdXNoKEosVGUpLFRlfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOnVyLGRlc3RydWN0b3JGdW5jdGlvbjpKfV19KX1mdW5jdGlvbiB2cihWKXtzd2l0Y2goVil7Y2FzZSAxOnJldHVybiAwO2Nhc2UgMjpyZXR1cm4gMTtjYXNlIDQ6cmV0dXJuIDI7Y2FzZSA4OnJldHVybiAzO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biB0eXBlIHNpemU6ICIrVil9fWZ1bmN0aW9uIE5jKCl7Zm9yKHZhciBWPW5ldyBBcnJheSgyNTYpLEc9MDtHPDI1NjsrK0cpVltHXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEcpO0ljPVZ9dmFyIEljPXZvaWQgMDtmdW5jdGlvbiBMbihWKXtmb3IodmFyIEc9IiIsWT1WO1Z0W1ldOylHKz1JY1tWdFtZKytdXTtyZXR1cm4gR312YXIgYmk9dm9pZCAwO2Z1bmN0aW9uIEllKFYpe3Rocm93IG5ldyBiaShWKX1mdW5jdGlvbiBycihWLEcsWSl7aWYoWT1ZfHx7fSwhKCJhcmdQYWNrQWR2YW5jZSJpbiBHKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJyZWdpc3RlclR5cGUgcmVnaXN0ZXJlZEluc3RhbmNlIHJlcXVpcmVzIGFyZ1BhY2tBZHZhbmNlIik7dmFyIEo9Ry5uYW1lO2lmKFZ8fEllKCd0eXBlICInK0orJyIgbXVzdCBoYXZlIGEgcG9zaXRpdmUgaW50ZWdlciB0eXBlaWQgcG9pbnRlcicpLEtvLmhhc093blByb3BlcnR5KFYpKXtpZihZLmlnbm9yZUR1cGxpY2F0ZVJlZ2lzdHJhdGlvbnMpcmV0dXJuO0llKCJDYW5ub3QgcmVnaXN0ZXIgdHlwZSAnIitKKyInIHR3aWNlIil9aWYoS29bVl09RyxkZWxldGUgTnJbVl0sWm4uaGFzT3duUHJvcGVydHkoVikpe3ZhciB1dD1abltWXTtkZWxldGUgWm5bVl0sdXQuZm9yRWFjaChmdW5jdGlvbihUdCl7VHQoKX0pfX1mdW5jdGlvbiBBdShWLEcsWSxKLHV0KXt2YXIgVHQ9dnIoWSk7Rz1MbihHKSxycihWLHtuYW1lOkcsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKFJ0KXtyZXR1cm4hIVJ0fSx0b1dpcmVUeXBlOmZ1bmN0aW9uKFJ0LG10KXtyZXR1cm4gbXQ/Sjp1dH0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjpmdW5jdGlvbihSdCl7dmFyIG10O2lmKFk9PT0xKW10PWR0O2Vsc2UgaWYoWT09PTIpbXQ9enQ7ZWxzZSBpZihZPT09NCltdD1jZTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gYm9vbGVhbiB0eXBlIHNpemU6ICIrRyk7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKG10W1J0Pj5UdF0pfSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfWZ1bmN0aW9uIGJ1KFYpe2lmKCEodGhpcyBpbnN0YW5jZW9mIERyKXx8IShWIGluc3RhbmNlb2YgRHIpKXJldHVybiExO2Zvcih2YXIgRz10aGlzLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLFk9dGhpcy4kJC5wdHIsSj1WLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLHV0PVYuJCQucHRyO0cuYmFzZUNsYXNzOylZPUcudXBjYXN0KFkpLEc9Ry5iYXNlQ2xhc3M7Zm9yKDtKLmJhc2VDbGFzczspdXQ9Si51cGNhc3QodXQpLEo9Si5iYXNlQ2xhc3M7cmV0dXJuIEc9PT1KJiZZPT09dXR9ZnVuY3Rpb24gd3UoVil7cmV0dXJue2NvdW50OlYuY291bnQsZGVsZXRlU2NoZWR1bGVkOlYuZGVsZXRlU2NoZWR1bGVkLHByZXNlcnZlUG9pbnRlck9uRGVsZXRlOlYucHJlc2VydmVQb2ludGVyT25EZWxldGUscHRyOlYucHRyLHB0clR5cGU6Vi5wdHJUeXBlLHNtYXJ0UHRyOlYuc21hcnRQdHIsc21hcnRQdHJUeXBlOlYuc21hcnRQdHJUeXBlfX1mdW5jdGlvbiB2YyhWKXtmdW5jdGlvbiBHKFkpe3JldHVybiBZLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLm5hbWV9SWUoRyhWKSsiIGluc3RhbmNlIGFscmVhZHkgZGVsZXRlZCIpfXZhciBEYz0hMTtmdW5jdGlvbiBLYShWKXt9ZnVuY3Rpb24gVHUoVil7Vi5zbWFydFB0cj9WLnNtYXJ0UHRyVHlwZS5yYXdEZXN0cnVjdG9yKFYuc21hcnRQdHIpOlYucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MucmF3RGVzdHJ1Y3RvcihWLnB0cil9ZnVuY3Rpb24gV2EoVil7Vi5jb3VudC52YWx1ZS09MTt2YXIgRz1WLmNvdW50LnZhbHVlPT09MDtHJiZUdShWKX1mdW5jdGlvbiAkaShWKXtyZXR1cm4gdHlwZW9mIEZpbmFsaXphdGlvbkdyb3VwPiJ1Ij8oJGk9ZnVuY3Rpb24oRyl7cmV0dXJuIEd9LFYpOihEYz1uZXcgRmluYWxpemF0aW9uR3JvdXAoZnVuY3Rpb24oRyl7Zm9yKHZhciBZPUcubmV4dCgpOyFZLmRvbmU7WT1HLm5leHQoKSl7dmFyIEo9WS52YWx1ZTtKLnB0cj9XYShKKTpjb25zb2xlLndhcm4oIm9iamVjdCBhbHJlYWR5IGRlbGV0ZWQ6ICIrSi5wdHIpfX0pLCRpPWZ1bmN0aW9uKEcpe3JldHVybiBEYy5yZWdpc3RlcihHLEcuJCQsRy4kJCksR30sS2E9ZnVuY3Rpb24oRyl7RGMudW5yZWdpc3RlcihHLiQkKX0sJGkoVikpfWZ1bmN0aW9uIE91KCl7aWYodGhpcy4kJC5wdHJ8fHZjKHRoaXMpLHRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGUpcmV0dXJuIHRoaXMuJCQuY291bnQudmFsdWUrPTEsdGhpczt2YXIgVj0kaShPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSx7JCQ6e3ZhbHVlOnd1KHRoaXMuJCQpfX0pKTtyZXR1cm4gVi4kJC5jb3VudC52YWx1ZSs9MSxWLiQkLmRlbGV0ZVNjaGVkdWxlZD0hMSxWfWZ1bmN0aW9uIEV1KCl7dGhpcy4kJC5wdHJ8fHZjKHRoaXMpLHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkJiYhdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSYmSWUoIk9iamVjdCBhbHJlYWR5IHNjaGVkdWxlZCBmb3IgZGVsZXRpb24iKSxLYSh0aGlzKSxXYSh0aGlzLiQkKSx0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlfHwodGhpcy4kJC5zbWFydFB0cj12b2lkIDAsdGhpcy4kJC5wdHI9dm9pZCAwKX1mdW5jdGlvbiBSdSgpe3JldHVybiF0aGlzLiQkLnB0cn12YXIgWmk9dm9pZCAwLFFpPVtdO2Z1bmN0aW9uIExjKCl7Zm9yKDtRaS5sZW5ndGg7KXt2YXIgVj1RaS5wb3AoKTtWLiQkLmRlbGV0ZVNjaGVkdWxlZD0hMSxWLmRlbGV0ZSgpfX1mdW5jdGlvbiBTdSgpe3JldHVybiB0aGlzLiQkLnB0cnx8dmModGhpcyksdGhpcy4kJC5kZWxldGVTY2hlZHVsZWQmJiF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlJiZJZSgiT2JqZWN0IGFscmVhZHkgc2NoZWR1bGVkIGZvciBkZWxldGlvbiIpLFFpLnB1c2godGhpcyksUWkubGVuZ3RoPT09MSYmWmkmJlppKExjKSx0aGlzLiQkLmRlbGV0ZVNjaGVkdWxlZD0hMCx0aGlzfWZ1bmN0aW9uIEN1KCl7RHIucHJvdG90eXBlLmlzQWxpYXNPZj1idSxEci5wcm90b3R5cGUuY2xvbmU9T3UsRHIucHJvdG90eXBlLmRlbGV0ZT1FdSxEci5wcm90b3R5cGUuaXNEZWxldGVkPVJ1LERyLnByb3RvdHlwZS5kZWxldGVMYXRlcj1TdX1mdW5jdGlvbiBEcigpe312YXIgWGE9e307ZnVuY3Rpb24gWWEoVixHLFkpe2lmKFZbR10ub3ZlcmxvYWRUYWJsZT09PXZvaWQgMCl7dmFyIEo9VltHXTtWW0ddPWZ1bmN0aW9uKCl7cmV0dXJuIFZbR10ub3ZlcmxvYWRUYWJsZS5oYXNPd25Qcm9wZXJ0eShhcmd1bWVudHMubGVuZ3RoKXx8SWUoIkZ1bmN0aW9uICciK1krIicgY2FsbGVkIHdpdGggYW4gaW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzICgiK2FyZ3VtZW50cy5sZW5ndGgrIikgLSBleHBlY3RzIG9uZSBvZiAoIitWW0ddLm92ZXJsb2FkVGFibGUrIikhIiksVltHXS5vdmVybG9hZFRhYmxlW2FyZ3VtZW50cy5sZW5ndGhdLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sVltHXS5vdmVybG9hZFRhYmxlPVtdLFZbR10ub3ZlcmxvYWRUYWJsZVtKLmFyZ0NvdW50XT1KfX1mdW5jdGlvbiBGYyhWLEcsWSl7bi5oYXNPd25Qcm9wZXJ0eShWKT8oKFk9PT12b2lkIDB8fG5bVl0ub3ZlcmxvYWRUYWJsZSE9PXZvaWQgMCYmbltWXS5vdmVybG9hZFRhYmxlW1ldIT09dm9pZCAwKSYmSWUoIkNhbm5vdCByZWdpc3RlciBwdWJsaWMgbmFtZSAnIitWKyInIHR3aWNlIiksWWEobixWLFYpLG4uaGFzT3duUHJvcGVydHkoWSkmJkllKCJDYW5ub3QgcmVnaXN0ZXIgbXVsdGlwbGUgb3ZlcmxvYWRzIG9mIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgYXJndW1lbnRzICgiK1krIikhIiksbltWXS5vdmVybG9hZFRhYmxlW1ldPUcpOihuW1ZdPUcsWSE9PXZvaWQgMCYmKG5bVl0ubnVtQXJndW1lbnRzPVkpKX1mdW5jdGlvbiB4dShWLEcsWSxKLHV0LFR0LFJ0LG10KXt0aGlzLm5hbWU9Vix0aGlzLmNvbnN0cnVjdG9yPUcsdGhpcy5pbnN0YW5jZVByb3RvdHlwZT1ZLHRoaXMucmF3RGVzdHJ1Y3Rvcj1KLHRoaXMuYmFzZUNsYXNzPXV0LHRoaXMuZ2V0QWN0dWFsVHlwZT1UdCx0aGlzLnVwY2FzdD1SdCx0aGlzLmRvd25jYXN0PW10LHRoaXMucHVyZVZpcnR1YWxGdW5jdGlvbnM9W119ZnVuY3Rpb24gQmMoVixHLFkpe2Zvcig7RyE9PVk7KUcudXBjYXN0fHxJZSgiRXhwZWN0ZWQgbnVsbCBvciBpbnN0YW5jZSBvZiAiK1kubmFtZSsiLCBnb3QgYW4gaW5zdGFuY2Ugb2YgIitHLm5hbWUpLFY9Ry51cGNhc3QoViksRz1HLmJhc2VDbGFzcztyZXR1cm4gVn1mdW5jdGlvbiBQdShWLEcpe2lmKEc9PT1udWxsKXJldHVybiB0aGlzLmlzUmVmZXJlbmNlJiZJZSgibnVsbCBpcyBub3QgYSB2YWxpZCAiK3RoaXMubmFtZSksMDtHLiQkfHxJZSgnQ2Fubm90IHBhc3MgIicrd2koRykrJyIgYXMgYSAnK3RoaXMubmFtZSksRy4kJC5wdHJ8fEllKCJDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAiK3RoaXMubmFtZSk7dmFyIFk9Ry4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcyxKPUJjKEcuJCQucHRyLFksdGhpcy5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiBKfWZ1bmN0aW9uIE11KFYsRyl7dmFyIFk7aWYoRz09PW51bGwpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJkllKCJudWxsIGlzIG5vdCBhIHZhbGlkICIrdGhpcy5uYW1lKSx0aGlzLmlzU21hcnRQb2ludGVyPyhZPXRoaXMucmF3Q29uc3RydWN0b3IoKSxWIT09bnVsbCYmVi5wdXNoKHRoaXMucmF3RGVzdHJ1Y3RvcixZKSxZKTowO0cuJCR8fEllKCdDYW5ub3QgcGFzcyAiJyt3aShHKSsnIiBhcyBhICcrdGhpcy5uYW1lKSxHLiQkLnB0cnx8SWUoIkNhbm5vdCBwYXNzIGRlbGV0ZWQgb2JqZWN0IGFzIGEgcG9pbnRlciBvZiB0eXBlICIrdGhpcy5uYW1lKSwhdGhpcy5pc0NvbnN0JiZHLiQkLnB0clR5cGUuaXNDb25zdCYmSWUoIkNhbm5vdCBjb252ZXJ0IGFyZ3VtZW50IG9mIHR5cGUgIisoRy4kJC5zbWFydFB0clR5cGU/Ry4kJC5zbWFydFB0clR5cGUubmFtZTpHLiQkLnB0clR5cGUubmFtZSkrIiB0byBwYXJhbWV0ZXIgdHlwZSAiK3RoaXMubmFtZSk7dmFyIEo9Ry4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcztpZihZPUJjKEcuJCQucHRyLEosdGhpcy5yZWdpc3RlcmVkQ2xhc3MpLHRoaXMuaXNTbWFydFBvaW50ZXIpc3dpdGNoKEcuJCQuc21hcnRQdHI9PT12b2lkIDAmJkllKCJQYXNzaW5nIHJhdyBwb2ludGVyIHRvIHNtYXJ0IHBvaW50ZXIgaXMgaWxsZWdhbCIpLHRoaXMuc2hhcmluZ1BvbGljeSl7Y2FzZSAwOkcuJCQuc21hcnRQdHJUeXBlPT09dGhpcz9ZPUcuJCQuc21hcnRQdHI6SWUoIkNhbm5vdCBjb252ZXJ0IGFyZ3VtZW50IG9mIHR5cGUgIisoRy4kJC5zbWFydFB0clR5cGU/Ry4kJC5zbWFydFB0clR5cGUubmFtZTpHLiQkLnB0clR5cGUubmFtZSkrIiB0byBwYXJhbWV0ZXIgdHlwZSAiK3RoaXMubmFtZSk7YnJlYWs7Y2FzZSAxOlk9Ry4kJC5zbWFydFB0cjticmVhaztjYXNlIDI6aWYoRy4kJC5zbWFydFB0clR5cGU9PT10aGlzKVk9Ry4kJC5zbWFydFB0cjtlbHNle3ZhciB1dD1HLmNsb25lKCk7WT10aGlzLnJhd1NoYXJlKFkscHIoZnVuY3Rpb24oKXt1dC5kZWxldGUoKX0pKSxWIT09bnVsbCYmVi5wdXNoKHRoaXMucmF3RGVzdHJ1Y3RvcixZKX1icmVhaztkZWZhdWx0OkllKCJVbnN1cHBvcnRpbmcgc2hhcmluZyBwb2xpY3kiKX1yZXR1cm4gWX1mdW5jdGlvbiBOdShWLEcpe2lmKEc9PT1udWxsKXJldHVybiB0aGlzLmlzUmVmZXJlbmNlJiZJZSgibnVsbCBpcyBub3QgYSB2YWxpZCAiK3RoaXMubmFtZSksMDtHLiQkfHxJZSgnQ2Fubm90IHBhc3MgIicrd2koRykrJyIgYXMgYSAnK3RoaXMubmFtZSksRy4kJC5wdHJ8fEllKCJDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAiK3RoaXMubmFtZSksRy4kJC5wdHJUeXBlLmlzQ29uc3QmJkllKCJDYW5ub3QgY29udmVydCBhcmd1bWVudCBvZiB0eXBlICIrRy4kJC5wdHJUeXBlLm5hbWUrIiB0byBwYXJhbWV0ZXIgdHlwZSAiK3RoaXMubmFtZSk7dmFyIFk9Ry4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcyxKPUJjKEcuJCQucHRyLFksdGhpcy5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiBKfWZ1bmN0aW9uIEl1KFYpe3JldHVybiB0aGlzLnJhd0dldFBvaW50ZWUmJihWPXRoaXMucmF3R2V0UG9pbnRlZShWKSksVn1mdW5jdGlvbiB2dShWKXt0aGlzLnJhd0Rlc3RydWN0b3ImJnRoaXMucmF3RGVzdHJ1Y3RvcihWKX1mdW5jdGlvbiBEdShWKXtWIT09bnVsbCYmVi5kZWxldGUoKX1mdW5jdGlvbiAkYShWLEcsWSl7aWYoRz09PVkpcmV0dXJuIFY7aWYoWS5iYXNlQ2xhc3M9PT12b2lkIDApcmV0dXJuIG51bGw7dmFyIEo9JGEoVixHLFkuYmFzZUNsYXNzKTtyZXR1cm4gSj09PW51bGw/bnVsbDpZLmRvd25jYXN0KEopfWZ1bmN0aW9uIEx1KCl7cmV0dXJuIE9iamVjdC5rZXlzKEppKS5sZW5ndGh9ZnVuY3Rpb24gRnUoKXt2YXIgVj1bXTtmb3IodmFyIEcgaW4gSmkpSmkuaGFzT3duUHJvcGVydHkoRykmJlYucHVzaChKaVtHXSk7cmV0dXJuIFZ9ZnVuY3Rpb24gQnUoVil7Wmk9VixRaS5sZW5ndGgmJlppJiZaaShMYyl9ZnVuY3Rpb24gVXUoKXtuLmdldEluaGVyaXRlZEluc3RhbmNlQ291bnQ9THUsbi5nZXRMaXZlSW5oZXJpdGVkSW5zdGFuY2VzPUZ1LG4uZmx1c2hQZW5kaW5nRGVsZXRlcz1MYyxuLnNldERlbGF5RnVuY3Rpb249QnV9dmFyIEppPXt9O2Z1bmN0aW9uIFZ1KFYsRyl7Zm9yKEc9PT12b2lkIDAmJkllKCJwdHIgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQiKTtWLmJhc2VDbGFzczspRz1WLnVwY2FzdChHKSxWPVYuYmFzZUNsYXNzO3JldHVybiBHfWZ1bmN0aW9uIGt1KFYsRyl7cmV0dXJuIEc9VnUoVixHKSxKaVtHXX1mdW5jdGlvbiB2cyhWLEcpeyghRy5wdHJUeXBlfHwhRy5wdHIpJiZBaSgibWFrZUNsYXNzSGFuZGxlIHJlcXVpcmVzIHB0ciBhbmQgcHRyVHlwZSIpO3ZhciBZPSEhRy5zbWFydFB0clR5cGUsSj0hIUcuc21hcnRQdHI7cmV0dXJuIFkhPT1KJiZBaSgiQm90aCBzbWFydFB0clR5cGUgYW5kIHNtYXJ0UHRyIG11c3QgYmUgc3BlY2lmaWVkIiksRy5jb3VudD17dmFsdWU6MX0sJGkoT2JqZWN0LmNyZWF0ZShWLHskJDp7dmFsdWU6R319KSl9ZnVuY3Rpb24gR3UoVil7dmFyIEc9dGhpcy5nZXRQb2ludGVlKFYpO2lmKCFHKXJldHVybiB0aGlzLmRlc3RydWN0b3IoViksbnVsbDt2YXIgWT1rdSh0aGlzLnJlZ2lzdGVyZWRDbGFzcyxHKTtpZihZIT09dm9pZCAwKXtpZihZLiQkLmNvdW50LnZhbHVlPT09MClyZXR1cm4gWS4kJC5wdHI9RyxZLiQkLnNtYXJ0UHRyPVYsWS5jbG9uZSgpO3ZhciBKPVkuY2xvbmUoKTtyZXR1cm4gdGhpcy5kZXN0cnVjdG9yKFYpLEp9ZnVuY3Rpb24gdXQoKXtyZXR1cm4gdGhpcy5pc1NtYXJ0UG9pbnRlcj92cyh0aGlzLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTp0aGlzLnBvaW50ZWVUeXBlLHB0cjpHLHNtYXJ0UHRyVHlwZTp0aGlzLHNtYXJ0UHRyOlZ9KTp2cyh0aGlzLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTp0aGlzLHB0cjpWfSl9dmFyIFR0PXRoaXMucmVnaXN0ZXJlZENsYXNzLmdldEFjdHVhbFR5cGUoRyksUnQ9WGFbVHRdO2lmKCFSdClyZXR1cm4gdXQuY2FsbCh0aGlzKTt2YXIgbXQ7dGhpcy5pc0NvbnN0P210PVJ0LmNvbnN0UG9pbnRlclR5cGU6bXQ9UnQucG9pbnRlclR5cGU7dmFyIGh0PSRhKEcsdGhpcy5yZWdpc3RlcmVkQ2xhc3MsbXQucmVnaXN0ZXJlZENsYXNzKTtyZXR1cm4gaHQ9PT1udWxsP3V0LmNhbGwodGhpcyk6dGhpcy5pc1NtYXJ0UG9pbnRlcj92cyhtdC5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6bXQscHRyOmh0LHNtYXJ0UHRyVHlwZTp0aGlzLHNtYXJ0UHRyOlZ9KTp2cyhtdC5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6bXQscHRyOmh0fSl9ZnVuY3Rpb24genUoKXtsci5wcm90b3R5cGUuZ2V0UG9pbnRlZT1JdSxsci5wcm90b3R5cGUuZGVzdHJ1Y3Rvcj12dSxsci5wcm90b3R5cGUuYXJnUGFja0FkdmFuY2U9OCxsci5wcm90b3R5cGUucmVhZFZhbHVlRnJvbVBvaW50ZXI9dXIsbHIucHJvdG90eXBlLmRlbGV0ZU9iamVjdD1EdSxsci5wcm90b3R5cGUuZnJvbVdpcmVUeXBlPUd1fWZ1bmN0aW9uIGxyKFYsRyxZLEosdXQsVHQsUnQsbXQsaHQsS3QsdGUpe3RoaXMubmFtZT1WLHRoaXMucmVnaXN0ZXJlZENsYXNzPUcsdGhpcy5pc1JlZmVyZW5jZT1ZLHRoaXMuaXNDb25zdD1KLHRoaXMuaXNTbWFydFBvaW50ZXI9dXQsdGhpcy5wb2ludGVlVHlwZT1UdCx0aGlzLnNoYXJpbmdQb2xpY3k9UnQsdGhpcy5yYXdHZXRQb2ludGVlPW10LHRoaXMucmF3Q29uc3RydWN0b3I9aHQsdGhpcy5yYXdTaGFyZT1LdCx0aGlzLnJhd0Rlc3RydWN0b3I9dGUsIXV0JiZHLmJhc2VDbGFzcz09PXZvaWQgMD9KPyh0aGlzLnRvV2lyZVR5cGU9UHUsdGhpcy5kZXN0cnVjdG9yRnVuY3Rpb249bnVsbCk6KHRoaXMudG9XaXJlVHlwZT1OdSx0aGlzLmRlc3RydWN0b3JGdW5jdGlvbj1udWxsKTp0aGlzLnRvV2lyZVR5cGU9TXV9ZnVuY3Rpb24gWmEoVixHLFkpe24uaGFzT3duUHJvcGVydHkoVil8fEFpKCJSZXBsYWNpbmcgbm9uZXhpc3RhbnQgcHVibGljIHN5bWJvbCIpLG5bVl0ub3ZlcmxvYWRUYWJsZSE9PXZvaWQgMCYmWSE9PXZvaWQgMD9uW1ZdLm92ZXJsb2FkVGFibGVbWV09RzoobltWXT1HLG5bVl0uYXJnQ291bnQ9WSl9ZnVuY3Rpb24ganUoVixHLFkpe3ZhciBKPW5bImR5bkNhbGxfIitWXTtyZXR1cm4gWSYmWS5sZW5ndGg/Si5hcHBseShudWxsLFtHXS5jb25jYXQoWSkpOkouY2FsbChudWxsLEcpfWZ1bmN0aW9uIEh1KFYsRyxZKXtyZXR1cm4gVi5pbmRleE9mKCJqIikhPS0xP2p1KFYsRyxZKTpBZS5nZXQoRykuYXBwbHkobnVsbCxZKX1mdW5jdGlvbiBxdShWLEcpe3ZhciBZPVtdO3JldHVybiBmdW5jdGlvbigpe1kubGVuZ3RoPWFyZ3VtZW50cy5sZW5ndGg7Zm9yKHZhciBKPTA7Sjxhcmd1bWVudHMubGVuZ3RoO0orKylZW0pdPWFyZ3VtZW50c1tKXTtyZXR1cm4gSHUoVixHLFkpfX1mdW5jdGlvbiBXbyhWLEcpe1Y9TG4oVik7ZnVuY3Rpb24gWSgpe3JldHVybiBWLmluZGV4T2YoImoiKSE9LTE/cXUoVixHKTpBZS5nZXQoRyl9dmFyIEo9WSgpO3JldHVybiB0eXBlb2YgSiE9ImZ1bmN0aW9uIiYmSWUoInVua25vd24gZnVuY3Rpb24gcG9pbnRlciB3aXRoIHNpZ25hdHVyZSAiK1YrIjogIitHKSxKfXZhciBRYT12b2lkIDA7ZnVuY3Rpb24gSmEoVil7dmFyIEc9ZXQoViksWT1MbihHKTtyZXR1cm4gVyhHKSxZfWZ1bmN0aW9uIERzKFYsRyl7dmFyIFk9W10sSj17fTtmdW5jdGlvbiB1dChUdCl7aWYoIUpbVHRdJiYhS29bVHRdKXtpZihOcltUdF0pe05yW1R0XS5mb3JFYWNoKHV0KTtyZXR1cm59WS5wdXNoKFR0KSxKW1R0XT0hMH19dGhyb3cgRy5mb3JFYWNoKHV0KSxuZXcgUWEoVisiOiAiK1kubWFwKEphKS5qb2luKFsiLCAiXSkpfWZ1bmN0aW9uIEt1KFYsRyxZLEosdXQsVHQsUnQsbXQsaHQsS3QsdGUsVGUsSmUpe3RlPUxuKHRlKSxUdD1Xbyh1dCxUdCksbXQmJihtdD1XbyhSdCxtdCkpLEt0JiYoS3Q9V28oaHQsS3QpKSxKZT1XbyhUZSxKZSk7dmFyIGduPVhpKHRlKTtGYyhnbixmdW5jdGlvbigpe0RzKCJDYW5ub3QgY29uc3RydWN0ICIrdGUrIiBkdWUgdG8gdW5ib3VuZCB0eXBlcyIsW0pdKX0pLG5vKFtWLEcsWV0sSj9bSl06W10sZnVuY3Rpb24ob28pe29vPW9vWzBdO3ZhciB2byxkcjtKPyh2bz1vby5yZWdpc3RlcmVkQ2xhc3MsZHI9dm8uaW5zdGFuY2VQcm90b3R5cGUpOmRyPURyLnByb3RvdHlwZTt2YXIgWnI9SXIoZ24sZnVuY3Rpb24oKXtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykhPT1zZil0aHJvdyBuZXcgYmkoIlVzZSAnbmV3JyB0byBjb25zdHJ1Y3QgIit0ZSk7aWYoT2kuY29uc3RydWN0b3JfYm9keT09PXZvaWQgMCl0aHJvdyBuZXcgYmkodGUrIiBoYXMgbm8gYWNjZXNzaWJsZSBjb25zdHJ1Y3RvciIpO3ZhciByMT1PaS5jb25zdHJ1Y3Rvcl9ib2R5W2FyZ3VtZW50cy5sZW5ndGhdO2lmKHIxPT09dm9pZCAwKXRocm93IG5ldyBiaSgiVHJpZWQgdG8gaW52b2tlIGN0b3Igb2YgIit0ZSsiIHdpdGggaW52YWxpZCBudW1iZXIgb2YgcGFyYW1ldGVycyAoIithcmd1bWVudHMubGVuZ3RoKyIpIC0gZXhwZWN0ZWQgKCIrT2JqZWN0LmtleXMoT2kuY29uc3RydWN0b3JfYm9keSkudG9TdHJpbmcoKSsiKSBwYXJhbWV0ZXJzIGluc3RlYWQhIik7cmV0dXJuIHIxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHNmPU9iamVjdC5jcmVhdGUoZHIse2NvbnN0cnVjdG9yOnt2YWx1ZTpacn19KTtaci5wcm90b3R5cGU9c2Y7dmFyIE9pPW5ldyB4dSh0ZSxacixzZixKZSx2byxUdCxtdCxLdCksa1M9bmV3IGxyKHRlLE9pLCEwLCExLCExKSxuMT1uZXcgbHIodGUrIioiLE9pLCExLCExLCExKSxvMT1uZXcgbHIodGUrIiBjb25zdCoiLE9pLCExLCEwLCExKTtyZXR1cm4gWGFbVl09e3BvaW50ZXJUeXBlOm4xLGNvbnN0UG9pbnRlclR5cGU6bzF9LFphKGduLFpyKSxba1MsbjEsbzFdfSl9ZnVuY3Rpb24gVWMoVixHKXtmb3IodmFyIFk9W10sSj0wO0o8VjtKKyspWS5wdXNoKGNlWyhHPj4yKStKXSk7cmV0dXJuIFl9ZnVuY3Rpb24gV3UoVixHLFksSix1dCxUdCl7RihHPjApO3ZhciBSdD1VYyhHLFkpO3V0PVdvKEosdXQpO3ZhciBtdD1bVHRdLGh0PVtdO25vKFtdLFtWXSxmdW5jdGlvbihLdCl7S3Q9S3RbMF07dmFyIHRlPSJjb25zdHJ1Y3RvciAiK0t0Lm5hbWU7aWYoS3QucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHk9PT12b2lkIDAmJihLdC5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keT1bXSksS3QucmVnaXN0ZXJlZENsYXNzLmNvbnN0cnVjdG9yX2JvZHlbRy0xXSE9PXZvaWQgMCl0aHJvdyBuZXcgYmkoIkNhbm5vdCByZWdpc3RlciBtdWx0aXBsZSBjb25zdHJ1Y3RvcnMgd2l0aCBpZGVudGljYWwgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCIrKEctMSkrIikgZm9yIGNsYXNzICciK0t0Lm5hbWUrIichIE92ZXJsb2FkIHJlc29sdXRpb24gaXMgY3VycmVudGx5IG9ubHkgcGVyZm9ybWVkIHVzaW5nIHRoZSBwYXJhbWV0ZXIgY291bnQsIG5vdCBhY3R1YWwgdHlwZSBpbmZvISIpO3JldHVybiBLdC5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVtHLTFdPWZ1bmN0aW9uKCl7RHMoIkNhbm5vdCBjb25zdHJ1Y3QgIitLdC5uYW1lKyIgZHVlIHRvIHVuYm91bmQgdHlwZXMiLFJ0KX0sbm8oW10sUnQsZnVuY3Rpb24oVGUpe3JldHVybiBLdC5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVtHLTFdPWZ1bmN0aW9uKCl7YXJndW1lbnRzLmxlbmd0aCE9PUctMSYmSWUodGUrIiBjYWxsZWQgd2l0aCAiK2FyZ3VtZW50cy5sZW5ndGgrIiBhcmd1bWVudHMsIGV4cGVjdGVkICIrKEctMSkpLGh0Lmxlbmd0aD0wLG10Lmxlbmd0aD1HO2Zvcih2YXIgZ249MTtnbjxHOysrZ24pbXRbZ25dPVRlW2duXS50b1dpcmVUeXBlKGh0LGFyZ3VtZW50c1tnbi0xXSk7dmFyIG9vPXV0LmFwcGx5KG51bGwsbXQpO3JldHVybiBPbihodCksVGVbMF0uZnJvbVdpcmVUeXBlKG9vKX0sW119KSxbXX0pfWZ1bmN0aW9uIHRmKFYsRyl7aWYoIShWIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoIm5ld18gY2FsbGVkIHdpdGggY29uc3RydWN0b3IgdHlwZSAiK3R5cGVvZiBWKyIgd2hpY2ggaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgWT1JcihWLm5hbWV8fCJ1bmtub3duRnVuY3Rpb25OYW1lIixmdW5jdGlvbigpe30pO1kucHJvdG90eXBlPVYucHJvdG90eXBlO3ZhciBKPW5ldyBZLHV0PVYuYXBwbHkoSixHKTtyZXR1cm4gdXQgaW5zdGFuY2VvZiBPYmplY3Q/dXQ6Sn1mdW5jdGlvbiBlZihWLEcsWSxKLHV0KXt2YXIgVHQ9Ry5sZW5ndGg7VHQ8MiYmSWUoImFyZ1R5cGVzIGFycmF5IHNpemUgbWlzbWF0Y2ghIE11c3QgYXQgbGVhc3QgZ2V0IHJldHVybiB2YWx1ZSBhbmQgJ3RoaXMnIHR5cGVzISIpO2Zvcih2YXIgUnQ9R1sxXSE9PW51bGwmJlkhPT1udWxsLG10PSExLGh0PTE7aHQ8Ry5sZW5ndGg7KytodClpZihHW2h0XSE9PW51bGwmJkdbaHRdLmRlc3RydWN0b3JGdW5jdGlvbj09PXZvaWQgMCl7bXQ9ITA7YnJlYWt9Zm9yKHZhciBLdD1HWzBdLm5hbWUhPT0idm9pZCIsdGU9IiIsVGU9IiIsaHQ9MDtodDxUdC0yOysraHQpdGUrPShodCE9PTA/IiwgIjoiIikrImFyZyIraHQsVGUrPShodCE9PTA/IiwgIjoiIikrImFyZyIraHQrIldpcmVkIjt2YXIgSmU9InJldHVybiBmdW5jdGlvbiAiK1hpKFYpKyIoIit0ZStgKSB7CmlmIChhcmd1bWVudHMubGVuZ3RoICE9PSBgKyhUdC0yKStgKSB7CnRocm93QmluZGluZ0Vycm9yKCdmdW5jdGlvbiBgK1YrIiBjYWxsZWQgd2l0aCAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgYXJndW1lbnRzLCBleHBlY3RlZCAiKyhUdC0yKStgIGFyZ3MhJyk7Cn0KYDttdCYmKEplKz1gdmFyIGRlc3RydWN0b3JzID0gW107CmApO3ZhciBnbj1tdD8iZGVzdHJ1Y3RvcnMiOiJudWxsIixvbz1bInRocm93QmluZGluZ0Vycm9yIiwiaW52b2tlciIsImZuIiwicnVuRGVzdHJ1Y3RvcnMiLCJyZXRUeXBlIiwiY2xhc3NQYXJhbSJdLHZvPVtJZSxKLHV0LE9uLEdbMF0sR1sxXV07UnQmJihKZSs9InZhciB0aGlzV2lyZWQgPSBjbGFzc1BhcmFtLnRvV2lyZVR5cGUoIitnbitgLCB0aGlzKTsKYCk7Zm9yKHZhciBodD0wO2h0PFR0LTI7KytodClKZSs9InZhciBhcmciK2h0KyJXaXJlZCA9IGFyZ1R5cGUiK2h0KyIudG9XaXJlVHlwZSgiK2duKyIsIGFyZyIraHQrIik7IC8vICIrR1todCsyXS5uYW1lK2AKYCxvby5wdXNoKCJhcmdUeXBlIitodCksdm8ucHVzaChHW2h0KzJdKTtpZihSdCYmKFRlPSJ0aGlzV2lyZWQiKyhUZS5sZW5ndGg+MD8iLCAiOiIiKStUZSksSmUrPShLdD8idmFyIHJ2ID0gIjoiIikrImludm9rZXIoZm4iKyhUZS5sZW5ndGg+MD8iLCAiOiIiKStUZStgKTsKYCxtdClKZSs9YHJ1bkRlc3RydWN0b3JzKGRlc3RydWN0b3JzKTsKYDtlbHNlIGZvcih2YXIgaHQ9UnQ/MToyO2h0PEcubGVuZ3RoOysraHQpe3ZhciBkcj1odD09PTE/InRoaXNXaXJlZCI6ImFyZyIrKGh0LTIpKyJXaXJlZCI7R1todF0uZGVzdHJ1Y3RvckZ1bmN0aW9uIT09bnVsbCYmKEplKz1kcisiX2R0b3IoIitkcisiKTsgLy8gIitHW2h0XS5uYW1lK2AKYCxvby5wdXNoKGRyKyJfZHRvciIpLHZvLnB1c2goR1todF0uZGVzdHJ1Y3RvckZ1bmN0aW9uKSl9S3QmJihKZSs9YHZhciByZXQgPSByZXRUeXBlLmZyb21XaXJlVHlwZShydik7CnJldHVybiByZXQ7CmApLEplKz1gfQpgLG9vLnB1c2goSmUpO3ZhciBacj10ZihGdW5jdGlvbixvbykuYXBwbHkobnVsbCx2byk7cmV0dXJuIFpyfWZ1bmN0aW9uIFh1KFYsRyxZLEosdXQsVHQsUnQsbXQpe3ZhciBodD1VYyhZLEopO0c9TG4oRyksVHQ9V28odXQsVHQpLG5vKFtdLFtWXSxmdW5jdGlvbihLdCl7S3Q9S3RbMF07dmFyIHRlPUt0Lm5hbWUrIi4iK0c7bXQmJkt0LnJlZ2lzdGVyZWRDbGFzcy5wdXJlVmlydHVhbEZ1bmN0aW9ucy5wdXNoKEcpO2Z1bmN0aW9uIFRlKCl7RHMoIkNhbm5vdCBjYWxsICIrdGUrIiBkdWUgdG8gdW5ib3VuZCB0eXBlcyIsaHQpfXZhciBKZT1LdC5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUsZ249SmVbR107cmV0dXJuIGduPT09dm9pZCAwfHxnbi5vdmVybG9hZFRhYmxlPT09dm9pZCAwJiZnbi5jbGFzc05hbWUhPT1LdC5uYW1lJiZnbi5hcmdDb3VudD09PVktMj8oVGUuYXJnQ291bnQ9WS0yLFRlLmNsYXNzTmFtZT1LdC5uYW1lLEplW0ddPVRlKTooWWEoSmUsRyx0ZSksSmVbR10ub3ZlcmxvYWRUYWJsZVtZLTJdPVRlKSxubyhbXSxodCxmdW5jdGlvbihvbyl7dmFyIHZvPWVmKHRlLG9vLEt0LFR0LFJ0KTtyZXR1cm4gSmVbR10ub3ZlcmxvYWRUYWJsZT09PXZvaWQgMD8odm8uYXJnQ291bnQ9WS0yLEplW0ddPXZvKTpKZVtHXS5vdmVybG9hZFRhYmxlW1ktMl09dm8sW119KSxbXX0pfWZ1bmN0aW9uIFl1KFYsRyxZKXtWPUxuKFYpLG5vKFtdLFtHXSxmdW5jdGlvbihKKXtyZXR1cm4gSj1KWzBdLG5bVl09Si5mcm9tV2lyZVR5cGUoWSksW119KX12YXIgVmM9W10sQW89W3t9LHt2YWx1ZTp2b2lkIDB9LHt2YWx1ZTpudWxsfSx7dmFsdWU6ITB9LHt2YWx1ZTohMX1dO2Z1bmN0aW9uIGtjKFYpe1Y+NCYmLS1Bb1tWXS5yZWZjb3VudD09PTAmJihBb1tWXT12b2lkIDAsVmMucHVzaChWKSl9ZnVuY3Rpb24gJHUoKXtmb3IodmFyIFY9MCxHPTU7RzxBby5sZW5ndGg7KytHKUFvW0ddIT09dm9pZCAwJiYrK1Y7cmV0dXJuIFZ9ZnVuY3Rpb24gWnUoKXtmb3IodmFyIFY9NTtWPEFvLmxlbmd0aDsrK1YpaWYoQW9bVl0hPT12b2lkIDApcmV0dXJuIEFvW1ZdO3JldHVybiBudWxsfWZ1bmN0aW9uIFF1KCl7bi5jb3VudF9lbXZhbF9oYW5kbGVzPSR1LG4uZ2V0X2ZpcnN0X2VtdmFsPVp1fWZ1bmN0aW9uIHByKFYpe3N3aXRjaChWKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlIG51bGw6cmV0dXJuIDI7Y2FzZSEwOnJldHVybiAzO2Nhc2UhMTpyZXR1cm4gNDtkZWZhdWx0Ont2YXIgRz1WYy5sZW5ndGg/VmMucG9wKCk6QW8ubGVuZ3RoO3JldHVybiBBb1tHXT17cmVmY291bnQ6MSx2YWx1ZTpWfSxHfX19ZnVuY3Rpb24gSnUoVixHKXtHPUxuKEcpLHJyKFYse25hbWU6Ryxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oWSl7dmFyIEo9QW9bWV0udmFsdWU7cmV0dXJuIGtjKFkpLEp9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oWSxKKXtyZXR1cm4gcHIoSil9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6dXIsZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX1mdW5jdGlvbiB0bChWLEcsWSl7c3dpdGNoKEcpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oSil7dmFyIHV0PVk/ZHQ6VnQ7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKHV0W0pdKX07Y2FzZSAxOnJldHVybiBmdW5jdGlvbihKKXt2YXIgdXQ9WT96dDpoZTtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUodXRbSj4+MV0pfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKEope3ZhciB1dD1ZP2NlOnBlO3JldHVybiB0aGlzLmZyb21XaXJlVHlwZSh1dFtKPj4yXSl9O2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBpbnRlZ2VyIHR5cGU6ICIrVil9fWZ1bmN0aW9uIGVsKFYsRyxZLEope3ZhciB1dD12cihZKTtHPUxuKEcpO2Z1bmN0aW9uIFR0KCl7fVR0LnZhbHVlcz17fSxycihWLHtuYW1lOkcsY29uc3RydWN0b3I6VHQsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKFJ0KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci52YWx1ZXNbUnRdfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKFJ0LG10KXtyZXR1cm4gbXQudmFsdWV9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6dGwoRyx1dCxKKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pLEZjKEcsVHQpfWZ1bmN0aW9uIExzKFYsRyl7dmFyIFk9S29bVl07cmV0dXJuIFk9PT12b2lkIDAmJkllKEcrIiBoYXMgdW5rbm93biB0eXBlICIrSmEoVikpLFl9ZnVuY3Rpb24gbmwoVixHLFkpe3ZhciBKPUxzKFYsImVudW0iKTtHPUxuKEcpO3ZhciB1dD1KLmNvbnN0cnVjdG9yLFR0PU9iamVjdC5jcmVhdGUoSi5jb25zdHJ1Y3Rvci5wcm90b3R5cGUse3ZhbHVlOnt2YWx1ZTpZfSxjb25zdHJ1Y3Rvcjp7dmFsdWU6SXIoSi5uYW1lKyJfIitHLGZ1bmN0aW9uKCl7fSl9fSk7dXQudmFsdWVzW1ldPVR0LHV0W0ddPVR0fWZ1bmN0aW9uIHdpKFYpe2lmKFY9PT1udWxsKXJldHVybiJudWxsIjt2YXIgRz10eXBlb2YgVjtyZXR1cm4gRz09PSJvYmplY3QifHxHPT09ImFycmF5Inx8Rz09PSJmdW5jdGlvbiI/Vi50b1N0cmluZygpOiIiK1Z9ZnVuY3Rpb24gb2woVixHKXtzd2l0Y2goRyl7Y2FzZSAyOnJldHVybiBmdW5jdGlvbihZKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoZmVbWT4+Ml0pfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShRdFtZPj4zXSl9O2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBmbG9hdCB0eXBlOiAiK1YpfX1mdW5jdGlvbiBybChWLEcsWSl7dmFyIEo9dnIoWSk7Rz1MbihHKSxycihWLHtuYW1lOkcsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKHV0KXtyZXR1cm4gdXR9LHRvV2lyZVR5cGU6ZnVuY3Rpb24odXQsVHQpe2lmKHR5cGVvZiBUdCE9Im51bWJlciImJnR5cGVvZiBUdCE9ImJvb2xlYW4iKXRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0ICInK3dpKFR0KSsnIiB0byAnK3RoaXMubmFtZSk7cmV0dXJuIFR0fSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOm9sKEcsSiksZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX1mdW5jdGlvbiBpbChWLEcsWSxKLHV0LFR0KXt2YXIgUnQ9VWMoRyxZKTtWPUxuKFYpLHV0PVdvKEosdXQpLEZjKFYsZnVuY3Rpb24oKXtEcygiQ2Fubm90IGNhbGwgIitWKyIgZHVlIHRvIHVuYm91bmQgdHlwZXMiLFJ0KX0sRy0xKSxubyhbXSxSdCxmdW5jdGlvbihtdCl7dmFyIGh0PVttdFswXSxudWxsXS5jb25jYXQobXQuc2xpY2UoMSkpO3JldHVybiBaYShWLGVmKFYsaHQsbnVsbCx1dCxUdCksRy0xKSxbXX0pfWZ1bmN0aW9uIHNsKFYsRyxZKXtzd2l0Y2goRyl7Y2FzZSAwOnJldHVybiBZP2Z1bmN0aW9uKHV0KXtyZXR1cm4gZHRbdXRdfTpmdW5jdGlvbih1dCl7cmV0dXJuIFZ0W3V0XX07Y2FzZSAxOnJldHVybiBZP2Z1bmN0aW9uKHV0KXtyZXR1cm4genRbdXQ+PjFdfTpmdW5jdGlvbih1dCl7cmV0dXJuIGhlW3V0Pj4xXX07Y2FzZSAyOnJldHVybiBZP2Z1bmN0aW9uKHV0KXtyZXR1cm4gY2VbdXQ+PjJdfTpmdW5jdGlvbih1dCl7cmV0dXJuIHBlW3V0Pj4yXX07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGludGVnZXIgdHlwZTogIitWKX19ZnVuY3Rpb24gY2woVixHLFksSix1dCl7Rz1MbihHKSx1dD09PS0xJiYodXQ9NDI5NDk2NzI5NSk7dmFyIFR0PXZyKFkpLFJ0PWZ1bmN0aW9uKEt0KXtyZXR1cm4gS3R9O2lmKEo9PT0wKXt2YXIgbXQ9MzItOCpZO1J0PWZ1bmN0aW9uKEt0KXtyZXR1cm4gS3Q8PG10Pj4+bXR9fXZhciBodD1HLmluZGV4T2YoInVuc2lnbmVkIikhPS0xO3JyKFYse25hbWU6Ryxmcm9tV2lyZVR5cGU6UnQsdG9XaXJlVHlwZTpmdW5jdGlvbihLdCx0ZSl7aWYodHlwZW9mIHRlIT0ibnVtYmVyIiYmdHlwZW9mIHRlIT0iYm9vbGVhbiIpdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNvbnZlcnQgIicrd2kodGUpKyciIHRvICcrdGhpcy5uYW1lKTtpZih0ZTxKfHx0ZT51dCl0aHJvdyBuZXcgVHlwZUVycm9yKCdQYXNzaW5nIGEgbnVtYmVyICInK3dpKHRlKSsnIiBmcm9tIEpTIHNpZGUgdG8gQy9DKysgc2lkZSB0byBhbiBhcmd1bWVudCBvZiB0eXBlICInK0crJyIsIHdoaWNoIGlzIG91dHNpZGUgdGhlIHZhbGlkIHJhbmdlIFsnK0orIiwgIit1dCsiXSEiKTtyZXR1cm4gaHQ/dGU+Pj4wOnRlfDB9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6c2woRyxUdCxKIT09MCksZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX1mdW5jdGlvbiBhbChWLEcsWSl7dmFyIEo9W0ludDhBcnJheSxVaW50OEFycmF5LEludDE2QXJyYXksVWludDE2QXJyYXksSW50MzJBcnJheSxVaW50MzJBcnJheSxGbG9hdDMyQXJyYXksRmxvYXQ2NEFycmF5XSx1dD1KW0ddO2Z1bmN0aW9uIFR0KFJ0KXtSdD1SdD4+Mjt2YXIgbXQ9cGUsaHQ9bXRbUnRdLEt0PW10W1J0KzFdO3JldHVybiBuZXcgdXQoX3QsS3QsaHQpfVk9TG4oWSkscnIoVix7bmFtZTpZLGZyb21XaXJlVHlwZTpUdCxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOlR0fSx7aWdub3JlRHVwbGljYXRlUmVnaXN0cmF0aW9uczohMH0pfWZ1bmN0aW9uIGZsKFYsRyl7Rz1MbihHKTt2YXIgWT1HPT09InN0ZDo6c3RyaW5nIjtycihWLHtuYW1lOkcsZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKEope3ZhciB1dD1wZVtKPj4yXSxUdDtpZihZKWZvcih2YXIgUnQ9Sis0LG10PTA7bXQ8PXV0OysrbXQpe3ZhciBodD1KKzQrbXQ7aWYobXQ9PXV0fHxWdFtodF09PTApe3ZhciBLdD1odC1SdCx0ZT1rKFJ0LEt0KTtUdD09PXZvaWQgMD9UdD10ZTooVHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMCksVHQrPXRlKSxSdD1odCsxfX1lbHNle2Zvcih2YXIgVGU9bmV3IEFycmF5KHV0KSxtdD0wO210PHV0OysrbXQpVGVbbXRdPVN0cmluZy5mcm9tQ2hhckNvZGUoVnRbSis0K210XSk7VHQ9VGUuam9pbigiIil9cmV0dXJuIFcoSiksVHR9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oSix1dCl7dXQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKHV0PW5ldyBVaW50OEFycmF5KHV0KSk7dmFyIFR0LFJ0PXR5cGVvZiB1dD09InN0cmluZyI7UnR8fHV0IGluc3RhbmNlb2YgVWludDhBcnJheXx8dXQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dXQgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fEllKCJDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIHN0ZDo6c3RyaW5nIiksWSYmUnQ/VHQ9ZnVuY3Rpb24oKXtyZXR1cm4gUih1dCl9OlR0PWZ1bmN0aW9uKCl7cmV0dXJuIHV0Lmxlbmd0aH07dmFyIG10PVR0KCksaHQ9eig0K210KzEpO2lmKHBlW2h0Pj4yXT1tdCxZJiZSdClYKHV0LGh0KzQsbXQrMSk7ZWxzZSBpZihSdClmb3IodmFyIEt0PTA7S3Q8bXQ7KytLdCl7dmFyIHRlPXV0LmNoYXJDb2RlQXQoS3QpO3RlPjI1NSYmKFcoaHQpLEllKCJTdHJpbmcgaGFzIFVURi0xNiBjb2RlIHVuaXRzIHRoYXQgZG8gbm90IGZpdCBpbiA4IGJpdHMiKSksVnRbaHQrNCtLdF09dGV9ZWxzZSBmb3IodmFyIEt0PTA7S3Q8bXQ7KytLdClWdFtodCs0K0t0XT11dFtLdF07cmV0dXJuIEohPT1udWxsJiZKLnB1c2goVyxodCksaHR9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6dXIsZGVzdHJ1Y3RvckZ1bmN0aW9uOmZ1bmN0aW9uKEope1coSil9fSl9ZnVuY3Rpb24gdWwoVixHLFkpe1k9TG4oWSk7dmFyIEosdXQsVHQsUnQsbXQ7Rz09PTI/KEo9ZnQsdXQ9cHQsUnQ9Z3QsVHQ9ZnVuY3Rpb24oKXtyZXR1cm4gaGV9LG10PTEpOkc9PT00JiYoSj1pdCx1dD1OdCxSdD1PdCxUdD1mdW5jdGlvbigpe3JldHVybiBwZX0sbXQ9MikscnIoVix7bmFtZTpZLGZyb21XaXJlVHlwZTpmdW5jdGlvbihodCl7Zm9yKHZhciBLdD1wZVtodD4+Ml0sdGU9VHQoKSxUZSxKZT1odCs0LGduPTA7Z248PUt0OysrZ24pe3ZhciBvbz1odCs0K2duKkc7aWYoZ249PUt0fHx0ZVtvbz4+bXRdPT0wKXt2YXIgdm89b28tSmUsZHI9SihKZSx2byk7VGU9PT12b2lkIDA/VGU9ZHI6KFRlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDApLFRlKz1kciksSmU9b28rR319cmV0dXJuIFcoaHQpLFRlfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKGh0LEt0KXt0eXBlb2YgS3QhPSJzdHJpbmciJiZJZSgiQ2Fubm90IHBhc3Mgbm9uLXN0cmluZyB0byBDKysgc3RyaW5nIHR5cGUgIitZKTt2YXIgdGU9UnQoS3QpLFRlPXooNCt0ZStHKTtyZXR1cm4gcGVbVGU+PjJdPXRlPj5tdCx1dChLdCxUZSs0LHRlK0cpLGh0IT09bnVsbCYmaHQucHVzaChXLFRlKSxUZX0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjp1cixkZXN0cnVjdG9yRnVuY3Rpb246ZnVuY3Rpb24oaHQpe1coaHQpfX0pfWZ1bmN0aW9uIGxsKFYsRyxZLEosdXQsVHQpe3JuW1ZdPXtuYW1lOkxuKEcpLHJhd0NvbnN0cnVjdG9yOldvKFksSikscmF3RGVzdHJ1Y3RvcjpXbyh1dCxUdCksZmllbGRzOltdfX1mdW5jdGlvbiBwbChWLEcsWSxKLHV0LFR0LFJ0LG10LGh0LEt0KXtybltWXS5maWVsZHMucHVzaCh7ZmllbGROYW1lOkxuKEcpLGdldHRlclJldHVyblR5cGU6WSxnZXR0ZXI6V28oSix1dCksZ2V0dGVyQ29udGV4dDpUdCxzZXR0ZXJBcmd1bWVudFR5cGU6UnQsc2V0dGVyOldvKG10LGh0KSxzZXR0ZXJDb250ZXh0Okt0fSl9ZnVuY3Rpb24gZGwoVixHKXtHPUxuKEcpLHJyKFYse2lzVm9pZDohMCxuYW1lOkcsYXJnUGFja0FkdmFuY2U6MCxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oKXt9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oWSxKKXt9fSl9ZnVuY3Rpb24gdHMoVil7cmV0dXJuIFZ8fEllKCJDYW5ub3QgdXNlIGRlbGV0ZWQgdmFsLiBoYW5kbGUgPSAiK1YpLEFvW1ZdLnZhbHVlfWZ1bmN0aW9uIG1sKFYsRyxZKXtWPXRzKFYpLEc9THMoRywiZW12YWw6OmFzIik7dmFyIEo9W10sdXQ9cHIoSik7cmV0dXJuIGNlW1k+PjJdPXV0LEcudG9XaXJlVHlwZShKLFYpfXZhciBobD17fTtmdW5jdGlvbiBGcyhWKXt2YXIgRz1obFtWXTtyZXR1cm4gRz09PXZvaWQgMD9MbihWKTpHfXZhciBHYz1bXTtmdW5jdGlvbiBfbChWLEcsWSxKKXtWPUdjW1ZdLEc9dHMoRyksWT1GcyhZKSxWKEcsWSxudWxsLEopfWZ1bmN0aW9uIG5mKCl7cmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzPT0ib2JqZWN0Ij9nbG9iYWxUaGlzOmZ1bmN0aW9uKCl7cmV0dXJuIEZ1bmN0aW9ufSgpKCJyZXR1cm4gdGhpcyIpKCl9ZnVuY3Rpb24geWwoVil7cmV0dXJuIFY9PT0wP3ByKG5mKCkpOihWPUZzKFYpLHByKG5mKClbVl0pKX1mdW5jdGlvbiBnbChWKXt2YXIgRz1HYy5sZW5ndGg7cmV0dXJuIEdjLnB1c2goViksR31mdW5jdGlvbiBBbChWLEcpe2Zvcih2YXIgWT1uZXcgQXJyYXkoViksSj0wO0o8VjsrK0opWVtKXT1McyhjZVsoRz4+MikrSl0sInBhcmFtZXRlciAiK0opO3JldHVybiBZfWZ1bmN0aW9uIGJsKFYsRyl7Zm9yKHZhciBZPUFsKFYsRyksSj1ZWzBdLHV0PUoubmFtZSsiXyQiK1kuc2xpY2UoMSkubWFwKGZ1bmN0aW9uKGduKXtyZXR1cm4gZ24ubmFtZX0pLmpvaW4oIl8iKSsiJCIsVHQ9WyJyZXRUeXBlIl0sUnQ9W0pdLG10PSIiLGh0PTA7aHQ8Vi0xOysraHQpbXQrPShodCE9PTA/IiwgIjoiIikrImFyZyIraHQsVHQucHVzaCgiYXJnVHlwZSIraHQpLFJ0LnB1c2goWVsxK2h0XSk7Zm9yKHZhciBLdD1YaSgibWV0aG9kQ2FsbGVyXyIrdXQpLHRlPSJyZXR1cm4gZnVuY3Rpb24gIitLdCtgKGhhbmRsZSwgbmFtZSwgZGVzdHJ1Y3RvcnMsIGFyZ3MpIHsKYCxUZT0wLGh0PTA7aHQ8Vi0xOysraHQpdGUrPSIgICAgdmFyIGFyZyIraHQrIiA9IGFyZ1R5cGUiK2h0KyIucmVhZFZhbHVlRnJvbVBvaW50ZXIoYXJncyIrKFRlPyIrIitUZToiIikrYCk7CmAsVGUrPVlbaHQrMV0uYXJnUGFja0FkdmFuY2U7dGUrPSIgICAgdmFyIHJ2ID0gaGFuZGxlW25hbWVdKCIrbXQrYCk7CmA7Zm9yKHZhciBodD0wO2h0PFYtMTsrK2h0KVlbaHQrMV0uZGVsZXRlT2JqZWN0JiYodGUrPSIgICAgYXJnVHlwZSIraHQrIi5kZWxldGVPYmplY3QoYXJnIitodCtgKTsKYCk7Si5pc1ZvaWR8fCh0ZSs9YCAgICByZXR1cm4gcmV0VHlwZS50b1dpcmVUeXBlKGRlc3RydWN0b3JzLCBydik7CmApLHRlKz1gfTsKYCxUdC5wdXNoKHRlKTt2YXIgSmU9dGYoRnVuY3Rpb24sVHQpLmFwcGx5KG51bGwsUnQpO3JldHVybiBnbChKZSl9ZnVuY3Rpb24gd2woVil7cmV0dXJuIFY9RnMoVikscHIobltWXSl9ZnVuY3Rpb24gVGwoVixHKXtyZXR1cm4gVj10cyhWKSxHPXRzKEcpLHByKFZbR10pfWZ1bmN0aW9uIE9sKFYpe1Y+NCYmKEFvW1ZdLnJlZmNvdW50Kz0xKX1mdW5jdGlvbiBFbChWKXtmb3IodmFyIEc9IiIsWT0wO1k8VjsrK1kpRys9KFkhPT0wPyIsICI6IiIpKyJhcmciK1k7Zm9yKHZhciBKPSJyZXR1cm4gZnVuY3Rpb24gZW12YWxfYWxsb2NhdG9yXyIrVitgKGNvbnN0cnVjdG9yLCBhcmdUeXBlcywgYXJncykgewpgLFk9MDtZPFY7KytZKUorPSJ2YXIgYXJnVHlwZSIrWSsiID0gcmVxdWlyZVJlZ2lzdGVyZWRUeXBlKE1vZHVsZVsnSEVBUDMyJ11bKGFyZ1R5cGVzID4+PiAyKSArICIrWSsnXSwgInBhcmFtZXRlciAnK1krYCIpOwp2YXIgYXJnYCtZKyIgPSBhcmdUeXBlIitZK2AucmVhZFZhbHVlRnJvbVBvaW50ZXIoYXJncyk7CmFyZ3MgKz0gYXJnVHlwZWArWStgWydhcmdQYWNrQWR2YW5jZSddOwpgO3JldHVybiBKKz0idmFyIG9iaiA9IG5ldyBjb25zdHJ1Y3RvcigiK0crYCk7CnJldHVybiBfX2VtdmFsX3JlZ2lzdGVyKG9iaik7Cn0KYCxuZXcgRnVuY3Rpb24oInJlcXVpcmVSZWdpc3RlcmVkVHlwZSIsIk1vZHVsZSIsIl9fZW12YWxfcmVnaXN0ZXIiLEopKExzLG4scHIpfXZhciBvZj17fTtmdW5jdGlvbiBSbChWLEcsWSxKKXtWPXRzKFYpO3ZhciB1dD1vZltHXTtyZXR1cm4gdXR8fCh1dD1FbChHKSxvZltHXT11dCksdXQoVixZLEopfWZ1bmN0aW9uIFNsKFYpe3JldHVybiBwcihGcyhWKSl9ZnVuY3Rpb24gQ2woVil7dmFyIEc9QW9bVl0udmFsdWU7T24oRyksa2MoVil9ZnVuY3Rpb24geGwoKXtLZSgpfWZ1bmN0aW9uIFBsKFYsRyxZKXtWdC5jb3B5V2l0aGluKFYsRyxHK1kpfWZ1bmN0aW9uIE1sKFYpe3RyeXtyZXR1cm4gQS5ncm93KFYtX3QuYnl0ZUxlbmd0aCs2NTUzNT4+PjE2KSxKdChBLmJ1ZmZlciksMX1jYXRjaHt9fWZ1bmN0aW9uIE5sKFYpe3ZhciBHPVZ0Lmxlbmd0aDtWPVY+Pj4wO3ZhciBZPTIxNDc0ODM2NDg7aWYoVj5ZKXJldHVybiExO2Zvcih2YXIgSj0xO0o8PTQ7Sio9Mil7dmFyIHV0PUcqKDErLjIvSik7dXQ9TWF0aC5taW4odXQsVisxMDA2NjMyOTYpO3ZhciBUdD1NYXRoLm1pbihZLHh0KE1hdGgubWF4KFYsdXQpLDY1NTM2KSksUnQ9TWwoVHQpO2lmKFJ0KXJldHVybiEwfXJldHVybiExfXZhciBCcz17bWFwcGluZ3M6e30sYnVmZmVyczpbbnVsbCxbXSxbXV0scHJpbnRDaGFyOmZ1bmN0aW9uKFYsRyl7dmFyIFk9QnMuYnVmZmVyc1tWXTtHPT09MHx8Rz09PTEwPygoVj09PTE/TjpJKShIKFksMCkpLFkubGVuZ3RoPTApOlkucHVzaChHKX0sdmFyYXJnczp2b2lkIDAsZ2V0OmZ1bmN0aW9uKCl7QnMudmFyYXJncys9NDt2YXIgVj1jZVtCcy52YXJhcmdzLTQ+PjJdO3JldHVybiBWfSxnZXRTdHI6ZnVuY3Rpb24oVil7dmFyIEc9ayhWKTtyZXR1cm4gR30sZ2V0NjQ6ZnVuY3Rpb24oVixHKXtyZXR1cm4gVn19O2Z1bmN0aW9uIElsKFYpe3JldHVybiAwfWZ1bmN0aW9uIHZsKFYsRyxZLEosdXQpe31mdW5jdGlvbiBEbChWLEcsWSxKKXtmb3IodmFyIHV0PTAsVHQ9MDtUdDxZO1R0Kyspe2Zvcih2YXIgUnQ9Y2VbRytUdCo4Pj4yXSxtdD1jZVtHKyhUdCo4KzQpPj4yXSxodD0wO2h0PG10O2h0KyspQnMucHJpbnRDaGFyKFYsVnRbUnQraHRdKTt1dCs9bXR9cmV0dXJuIGNlW0o+PjJdPXV0LDB9ZnVuY3Rpb24gTGwoVil7dihWfDApfUlzPW4uSW50ZXJuYWxFcnJvcj1ZaShFcnJvciwiSW50ZXJuYWxFcnJvciIpLE5jKCksYmk9bi5CaW5kaW5nRXJyb3I9WWkoRXJyb3IsIkJpbmRpbmdFcnJvciIpLEN1KCksenUoKSxVdSgpLFFhPW4uVW5ib3VuZFR5cGVFcnJvcj1ZaShFcnJvciwiVW5ib3VuZFR5cGVFcnJvciIpLFF1KCk7dmFyIEZsPXt0OnBvLEk6QXUseDpLdSx3Old1LGQ6WHUsazpZdSxIOkp1LG46ZWwsYTpubCxBOnJsLGk6aWwsajpjbCxoOmFsLEI6Zmwsdjp1bCx1OmxsLGM6cGwsSjpkbCxtOm1sLHM6X2wsYjprYyx5OnlsLHA6Ymwscjp3bCxlOlRsLGc6T2wscTpSbCxmOlNsLGw6Q2wsbzp4bCxFOlBsLEY6TmwsRzpJbCxDOnZsLHo6RGwsRDpMbH0scmY9V24oKSxSZT1uLl9fX3dhc21fY2FsbF9jdG9ycz1mdW5jdGlvbigpe3JldHVybihSZT1uLl9fX3dhc21fY2FsbF9jdG9ycz1uLmFzbS5MKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHo9bi5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKHo9bi5fbWFsbG9jPW4uYXNtLk0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVz1uLl9mcmVlPWZ1bmN0aW9uKCl7cmV0dXJuKFc9bi5fZnJlZT1uLmFzbS5OKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGV0PW4uX19fZ2V0VHlwZU5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4oZXQ9bi5fX19nZXRUeXBlTmFtZT1uLmFzbS5QKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE10PW4uX19fZW1iaW5kX3JlZ2lzdGVyX25hdGl2ZV9hbmRfYnVpbHRpbl90eXBlcz1mdW5jdGlvbigpe3JldHVybihNdD1uLl9fX2VtYmluZF9yZWdpc3Rlcl9uYXRpdmVfYW5kX2J1aWx0aW5fdHlwZXM9bi5hc20uUSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxsZT1uLmR5bkNhbGxfamlqaT1mdW5jdGlvbigpe3JldHVybihsZT1uLmR5bkNhbGxfamlqaT1uLmFzbS5SKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHdlO2Z1bmN0aW9uIFRpKFYpe3RoaXMubmFtZT0iRXhpdFN0YXR1cyIsdGhpcy5tZXNzYWdlPSJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIrVisiKSIsdGhpcy5zdGF0dXM9Vn1Ibj1mdW5jdGlvbiBWKCl7d2V8fHpjKCksd2V8fChIbj1WKX07ZnVuY3Rpb24gemMoVil7aWYoVj1WfHxmLG1uPjB8fChwbigpLG1uPjApKXJldHVybjtmdW5jdGlvbiBHKCl7d2V8fCh3ZT0hMCxuLmNhbGxlZFJ1bj0hMCwhUyYmKFRuKCksb2UoKSxvKG4pLG4ub25SdW50aW1lSW5pdGlhbGl6ZWQmJm4ub25SdW50aW1lSW5pdGlhbGl6ZWQoKSwkdCgpKSl9bi5zZXRTdGF0dXM/KG4uc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnNldFN0YXR1cygiIil9LDEpLEcoKX0sMSkpOkcoKX1pZihuLnJ1bj16YyxuLnByZUluaXQpZm9yKHR5cGVvZiBuLnByZUluaXQ9PSJmdW5jdGlvbiImJihuLnByZUluaXQ9W24ucHJlSW5pdF0pO24ucHJlSW5pdC5sZW5ndGg+MDspbi5wcmVJbml0LnBvcCgpKCk7cmV0dXJuIHpjKCksZS5yZWFkeX19KCk7dHlwZW9mIHBtPT0ib2JqZWN0IiYmdHlwZW9mIEtnPT0ib2JqZWN0Ij9LZy5leHBvcnRzPXFnOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLGZ1bmN0aW9uKCl7cmV0dXJuIHFnfSk6dHlwZW9mIHBtPT0ib2JqZWN0IiYmKHBtLkJBU0lTPXFnKX0pO3ZhciBXZz17fTttZShXZyx7ZGVmYXVsdDooKT0+cjh9KTtmdW5jdGlvbiBKNih0LGUpe3kudHlwZU9mLm9iamVjdCgidHJhbnNjb2Rlck1vZHVsZSIsZ3UpO2xldCBuPXQua3R4MkJ1ZmZlcixvPXQuc3VwcG9ydGVkVGFyZ2V0Rm9ybWF0cyxyO3RyeXtyPXhTKG4pfWNhdGNoe3Rocm93IG5ldyBnZSgiSW52YWxpZCBLVFgyIGZpbGUuIil9aWYoci5sYXllckNvdW50IT09MCl0aHJvdyBuZXcgZ2UoIktUWDIgdGV4dHVyZSBhcnJheXMgYXJlIG5vdCBzdXBwb3J0ZWQuIik7aWYoci5waXhlbERlcHRoIT09MCl0aHJvdyBuZXcgZ2UoIktUWDIgM0QgdGV4dHVyZXMgYXJlIHVuc3VwcG9ydGVkLiIpO2xldCBpPXIuZGF0YUZvcm1hdERlc2NyaXB0b3JbMF0scz1uZXcgQXJyYXkoci5sZXZlbENvdW50KTtyZXR1cm4gci52a0Zvcm1hdD09PTAmJihpLmNvbG9yTW9kZWw9PT12U3x8aS5jb2xvck1vZGVsPT09RFMpP2U4KG4scixvLGd1LGUscyk6KGUucHVzaChuLmJ1ZmZlciksdDgocixzKSksc31mdW5jdGlvbiB0OCh0LGUpe2xldCBuPXQudmtGb3JtYXQ9PT15dS5WS19GT1JNQVRfUjhHOEI4X1NSR0I/Qm4uUkdCOkJuLlJHQkEsbzt0LnZrRm9ybWF0PT09eXUuVktfRk9STUFUX1I4RzhCOEE4X1VOT1JNP289em8uVU5TSUdORURfQllURTp0LnZrRm9ybWF0PT09eXUuVktfRk9STUFUX1IxNkcxNkIxNkExNl9TRkxPQVQ/bz16by5IQUxGX0ZMT0FUOnQudmtGb3JtYXQ9PT15dS5WS19GT1JNQVRfUjMyRzMyQjMyQTMyX1NGTE9BVCYmKG89em8uRkxPQVQpO2ZvcihsZXQgcj0wO3I8dC5sZXZlbHMubGVuZ3RoOysrcil7bGV0IGk9e307ZVtyXT1pO2xldCBzPXQubGV2ZWxzW3JdLmxldmVsRGF0YSxmPXQucGl4ZWxXaWR0aD4+cix1PXQucGl4ZWxIZWlnaHQ+PnIsYz1mKnUqQm4uY29tcG9uZW50c0xlbmd0aChuKTtmb3IobGV0IGw9MDtsPHQuZmFjZUNvdW50OysrbCl7bGV0IHA9cy5ieXRlT2Zmc2V0K2MqdC50eXBlU2l6ZSpsLGQ7IWgobyl8fHpvLnNpemVJbkJ5dGVzKG8pPT09MT9kPW5ldyBVaW50OEFycmF5KHMuYnVmZmVyLHAsYyk6em8uc2l6ZUluQnl0ZXMobyk9PT0yP2Q9bmV3IFVpbnQxNkFycmF5KHMuYnVmZmVyLHAsYyk6ZD1uZXcgRmxvYXQzMkFycmF5KHMuYnVmZmVyLHAsYyksaVtJU1tsXV09e2ludGVybmFsRm9ybWF0Om4sZGF0YXR5cGU6byx3aWR0aDpmLGhlaWdodDp1LGxldmVsQnVmZmVyOmR9fX19ZnVuY3Rpb24gZTgodCxlLG4sbyxyLGkpe2xldCBzPW5ldyBvLktUWDJGaWxlKHQpLGY9cy5nZXRXaWR0aCgpLHU9cy5nZXRIZWlnaHQoKSxjPXMuZ2V0TGV2ZWxzKCksbD1zLmdldEhhc0FscGhhKCk7aWYoIShmPjApfHwhKHU+MCl8fCEoYz4wKSl0aHJvdyBzLmNsb3NlKCkscy5kZWxldGUoKSxuZXcgZ2UoIkludmFsaWQgS1RYMiBmaWxlIik7bGV0IHAsZCxtPWUuZGF0YUZvcm1hdERlc2NyaXB0b3JbMF0sXz1vLnRyYW5zY29kZXJfdGV4dHVyZV9mb3JtYXQ7aWYobS5jb2xvck1vZGVsPT09dlMpaWYobi5ldGMpcD1sP0JuLlJHQkE4X0VUQzJfRUFDOkJuLlJHQjhfRVRDMixkPWw/Xy5jVEZFVEMyX1JHQkE6Xy5jVEZFVEMxX1JHQjtlbHNlIGlmKG4uZXRjMSYmIWwpcD1Cbi5SR0JfRVRDMSxkPV8uY1RGRVRDMV9SR0I7ZWxzZSBpZihuLnMzdGMpcD1sP0JuLlJHQkFfRFhUNTpCbi5SR0JfRFhUMSxkPWw/Xy5jVEZCQzNfUkdCQTpfLmNURkJDMV9SR0I7ZWxzZSBpZihuLnB2cnRjKXA9bD9Cbi5SR0JBX1BWUlRDXzRCUFBWMTpCbi5SR0JfUFZSVENfNEJQUFYxLGQ9bD9fLmNURlBWUlRDMV80X1JHQkE6Xy5jVEZQVlJUQzFfNF9SR0I7ZWxzZSBpZihuLmFzdGMpcD1Cbi5SR0JBX0FTVEMsZD1fLmNURkFTVENfNHg0X1JHQkE7ZWxzZSBpZihuLmJjNylwPUJuLlJHQkFfQkM3LGQ9Xy5jVEZCQzdfUkdCQTtlbHNlIHRocm93IG5ldyBnZSgiTm8gdHJhbnNjb2RpbmcgZm9ybWF0IHRhcmdldCBhdmFpbGFibGUgZm9yIEVUQzFTIGNvbXByZXNzZWQga3R4Mi4iKTtlbHNlIGlmKG0uY29sb3JNb2RlbD09PURTKWlmKG4uYXN0YylwPUJuLlJHQkFfQVNUQyxkPV8uY1RGQVNUQ180eDRfUkdCQTtlbHNlIGlmKG4uYmM3KXA9Qm4uUkdCQV9CQzcsZD1fLmNURkJDN19SR0JBO2Vsc2UgaWYobi5zM3RjKXA9bD9Cbi5SR0JBX0RYVDU6Qm4uUkdCX0RYVDEsZD1sP18uY1RGQkMzX1JHQkE6Xy5jVEZCQzFfUkdCO2Vsc2UgaWYobi5ldGMpcD1sP0JuLlJHQkE4X0VUQzJfRUFDOkJuLlJHQjhfRVRDMixkPWw/Xy5jVEZFVEMyX1JHQkE6Xy5jVEZFVEMxX1JHQjtlbHNlIGlmKG4uZXRjMSYmIWwpcD1Cbi5SR0JfRVRDMSxkPV8uY1RGRVRDMV9SR0I7ZWxzZSBpZihuLnB2cnRjKXA9bD9Cbi5SR0JBX1BWUlRDXzRCUFBWMTpCbi5SR0JfUFZSVENfNEJQUFYxLGQ9bD9fLmNURlBWUlRDMV80X1JHQkE6Xy5jVEZQVlJUQzFfNF9SR0I7ZWxzZSB0aHJvdyBuZXcgZ2UoIk5vIHRyYW5zY29kaW5nIGZvcm1hdCB0YXJnZXQgYXZhaWxhYmxlIGZvciBVQVNUQyBjb21wcmVzc2VkIGt0eDIuIik7aWYoIXMuc3RhcnRUcmFuc2NvZGluZygpKXRocm93IHMuY2xvc2UoKSxzLmRlbGV0ZSgpLG5ldyBnZSgic3RhcnRUcmFuc2NvZGluZygpIGZhaWxlZCIpO2ZvcihsZXQgZz0wO2c8ZS5sZXZlbHMubGVuZ3RoOysrZyl7bGV0IGI9e307aVtnXT1iLGY9ZS5waXhlbFdpZHRoPj5nLHU9ZS5waXhlbEhlaWdodD4+ZztsZXQgTz1zLmdldEltYWdlVHJhbnNjb2RlZFNpemVJbkJ5dGVzKGcsMCwwLGQudmFsdWUpLFQ9bmV3IFVpbnQ4QXJyYXkoTyksRT1zLnRyYW5zY29kZUltYWdlKFQsZywwLDAsZC52YWx1ZSwwLC0xLC0xKTtpZighaChFKSl0aHJvdyBuZXcgZ2UoInRyYW5zY29kZUltYWdlKCkgZmFpbGVkLiIpO3IucHVzaChULmJ1ZmZlciksYltJU1swXV09e2ludGVybmFsRm9ybWF0OnAsd2lkdGg6ZixoZWlnaHQ6dSxsZXZlbEJ1ZmZlcjpUfX1yZXR1cm4gcy5jbG9zZSgpLHMuZGVsZXRlKCksaX1hc3luYyBmdW5jdGlvbiBuOCh0LGUpe2xldCBuPXQud2ViQXNzZW1ibHlDb25maWcsbz14KE5TLmRlZmF1bHQsc2VsZi5CQVNJUyk7cmV0dXJuIGgobi53YXNtQmluYXJ5RmlsZSk/Z3U9YXdhaXQgbyhuKTpndT1hd2FpdCBvKCksZ3UuaW5pdGlhbGl6ZUJhc2lzKCksITB9ZnVuY3Rpb24gbzgodCxlKXtsZXQgbj10LndlYkFzc2VtYmx5Q29uZmlnO3JldHVybiBoKG4pP244KHQsZSk6SjYodCxlKX12YXIgTlMsSVMsdlMsRFMsZ3UscjgsWGc9WigoKT0+e0l0KCk7YXQoKTtZdCgpO1JTKCk7SnIoKTtTUygpO2pnKCk7c28oKTtQUygpO05TPW1vKE1TKCksMSksSVM9WyJwb3NpdGl2ZVgiLCJuZWdhdGl2ZVgiLCJwb3NpdGl2ZVkiLCJuZWdhdGl2ZVkiLCJwb3NpdGl2ZVoiLCJuZWdhdGl2ZVoiXSx2Uz0xNjMsRFM9MTY2O3I4PVFlKG84KX0pO3ZhciBMUz17fTt2YXIgWWc9WigoKT0+e3NlbGYub25tZXNzYWdlPWZ1bmN0aW9uKHQpe2xldCBlPXQuZGF0YS5hcnJheSxuPXNlbGYud2Via2l0UG9zdE1lc3NhZ2V8fHNlbGYucG9zdE1lc3NhZ2U7dHJ5e24oe2FycmF5OmV9LFtlLmJ1ZmZlcl0pfWNhdGNoe24oe30pfX19KTt2YXIgZG0sbW0sRlM9WigoKT0+e3plKCk7VXQoKTtZdCgpO2F0KCk7SHQoKTtkbT17fTtkbS5jbGlwVHJpYW5nbGVBdEF4aXNBbGlnbmVkVGhyZXNob2xkPWZ1bmN0aW9uKHQsZSxuLG8scixpKXtpZighaCh0KSl0aHJvdyBuZXcgQigidGhyZXNob2xkIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBCKCJrZWVwQWJvdmUgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEIoInUwIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBCKCJ1MSBpcyByZXF1aXJlZC4iKTtpZighaChyKSl0aHJvdyBuZXcgQigidTIgaXMgcmVxdWlyZWQuIik7aChpKT9pLmxlbmd0aD0wOmk9W107bGV0IHMsZix1O2U/KHM9bjx0LGY9bzx0LHU9cjx0KToocz1uPnQsZj1vPnQsdT1yPnQpO2xldCBjPXMrZit1LGwscCxkLG0sXyxnO3JldHVybiBjPT09MT9zPyhsPSh0LW4pLyhvLW4pLHA9KHQtbikvKHItbiksaS5wdXNoKDEpLGkucHVzaCgyKSxwIT09MSYmKGkucHVzaCgtMSksaS5wdXNoKDApLGkucHVzaCgyKSxpLnB1c2gocCkpLGwhPT0xJiYoaS5wdXNoKC0xKSxpLnB1c2goMCksaS5wdXNoKDEpLGkucHVzaChsKSkpOmY/KGQ9KHQtbykvKHItbyksbT0odC1vKS8obi1vKSxpLnB1c2goMiksaS5wdXNoKDApLG0hPT0xJiYoaS5wdXNoKC0xKSxpLnB1c2goMSksaS5wdXNoKDApLGkucHVzaChtKSksZCE9PTEmJihpLnB1c2goLTEpLGkucHVzaCgxKSxpLnB1c2goMiksaS5wdXNoKGQpKSk6dSYmKF89KHQtcikvKG4tciksZz0odC1yKS8oby1yKSxpLnB1c2goMCksaS5wdXNoKDEpLGchPT0xJiYoaS5wdXNoKC0xKSxpLnB1c2goMiksaS5wdXNoKDEpLGkucHVzaChnKSksXyE9PTEmJihpLnB1c2goLTEpLGkucHVzaCgyKSxpLnB1c2goMCksaS5wdXNoKF8pKSk6Yz09PTI/IXMmJm4hPT10PyhtPSh0LW8pLyhuLW8pLF89KHQtcikvKG4tciksaS5wdXNoKDApLGkucHVzaCgtMSksaS5wdXNoKDEpLGkucHVzaCgwKSxpLnB1c2gobSksaS5wdXNoKC0xKSxpLnB1c2goMiksaS5wdXNoKDApLGkucHVzaChfKSk6IWYmJm8hPT10PyhnPSh0LXIpLyhvLXIpLGw9KHQtbikvKG8tbiksaS5wdXNoKDEpLGkucHVzaCgtMSksaS5wdXNoKDIpLGkucHVzaCgxKSxpLnB1c2goZyksaS5wdXNoKC0xKSxpLnB1c2goMCksaS5wdXNoKDEpLGkucHVzaChsKSk6IXUmJnIhPT10JiYocD0odC1uKS8oci1uKSxkPSh0LW8pLyhyLW8pLGkucHVzaCgyKSxpLnB1c2goLTEpLGkucHVzaCgwKSxpLnB1c2goMiksaS5wdXNoKHApLGkucHVzaCgtMSksaS5wdXNoKDEpLGkucHVzaCgyKSxpLnB1c2goZCkpOmMhPT0zJiYoaS5wdXNoKDApLGkucHVzaCgxKSxpLnB1c2goMikpLGl9O2RtLmNvbXB1dGVCYXJ5Y2VudHJpY0Nvb3JkaW5hdGVzPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMsZix1KXtpZighaCh0KSl0aHJvdyBuZXcgQigieCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgQigieSBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgQigieDEgaXMgcmVxdWlyZWQuIik7aWYoIWgobykpdGhyb3cgbmV3IEIoInkxIGlzIHJlcXVpcmVkLiIpO2lmKCFoKHIpKXRocm93IG5ldyBCKCJ4MiBpcyByZXF1aXJlZC4iKTtpZighaChpKSl0aHJvdyBuZXcgQigieTIgaXMgcmVxdWlyZWQuIik7aWYoIWgocykpdGhyb3cgbmV3IEIoIngzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGYpKXRocm93IG5ldyBCKCJ5MyBpcyByZXF1aXJlZC4iKTtsZXQgYz1uLXMsbD1zLXIscD1pLWYsZD1vLWYsbT0xLyhwKmMrbCpkKSxfPWUtZixnPXQtcyxiPShwKmcrbCpfKSptLE89KC1kKmcrYypfKSptLFQ9MS1iLU87cmV0dXJuIGgodSk/KHUueD1iLHUueT1PLHUuej1ULHUpOm5ldyBhKGIsTyxUKX07ZG0uY29tcHV0ZUxpbmVTZWdtZW50TGluZVNlZ21lbnRJbnRlcnNlY3Rpb249ZnVuY3Rpb24odCxlLG4sbyxyLGkscyxmLHUpe3kudHlwZU9mLm51bWJlcigieDAwIix0KSx5LnR5cGVPZi5udW1iZXIoInkwMCIsZSkseS50eXBlT2YubnVtYmVyKCJ4MDEiLG4pLHkudHlwZU9mLm51bWJlcigieTAxIixvKSx5LnR5cGVPZi5udW1iZXIoIngxMCIscikseS50eXBlT2YubnVtYmVyKCJ5MTAiLGkpLHkudHlwZU9mLm51bWJlcigieDExIixzKSx5LnR5cGVPZi5udW1iZXIoInkxMSIsZik7bGV0IGM9KHMtcikqKGUtaSktKGYtaSkqKHQtciksbD0obi10KSooZS1pKS0oby1lKSoodC1yKSxwPShmLWkpKihuLXQpLShzLXIpKihvLWUpO2lmKHA9PT0wKXJldHVybjtsZXQgZD1jL3AsbT1sL3A7aWYoZD49MCYmZDw9MSYmbT49MCYmbTw9MSlyZXR1cm4gaCh1KXx8KHU9bmV3IG50KSx1Lng9dCtkKihuLXQpLHUueT1lK2QqKG8tZSksdX07bW09ZG19KTt2YXIgJGc9e307bWUoJGcse2RlZmF1bHQ6KCk9PmI4fSk7ZnVuY3Rpb24geTgodCxlKXtsZXQgbj10LmlzRWFzdENoaWxkLG89dC5pc05vcnRoQ2hpbGQscj1uPyRyOjAsaT1uP3puOiRyLHM9bz8kcjowLGY9bz96bjokcix1PWM4LGM9YTgsbD1mOCxwPWw4O3UubGVuZ3RoPTAsYy5sZW5ndGg9MCxsLmxlbmd0aD0wLHAubGVuZ3RoPTA7bGV0IGQ9dTg7ZC5sZW5ndGg9MDtsZXQgbT17fSxfPXQudmVydGljZXMsZz10LmluZGljZXM7Zz1nLnN1YmFycmF5KDAsdC5pbmRleENvdW50V2l0aG91dFNraXJ0cyk7bGV0IGI9eHMuY2xvbmUodC5lbmNvZGluZyksTz1iLmhhc1ZlcnRleE5vcm1hbHMsVD0wLEU9dC52ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHMsdz10Lm1pbmltdW1IZWlnaHQsQz10Lm1heGltdW1IZWlnaHQsTj1uZXcgQXJyYXkoRSksST1uZXcgQXJyYXkoRSksTD1uZXcgQXJyYXkoRSksdj1PP25ldyBBcnJheShFKjIpOnZvaWQgMCxEPTIwLFUsQSxTLFAsRjtmb3IoQT0wLFM9MDtBPEU7KytBLFMrPTIpe2xldCBVZT1iLmRlY29kZVRleHR1cmVDb29yZGluYXRlcyhfLEEsaDgpO2lmKFU9Yi5kZWNvZGVIZWlnaHQoXyxBKSxQPU0uY2xhbXAoVWUueCp6bnwwLDAsem4pLEY9TS5jbGFtcChVZS55KnpufDAsMCx6biksTFtBXT1NLmNsYW1wKChVLXcpLyhDLXcpKnpufDAsMCx6biksUDxEJiYoUD0wKSxGPEQmJihGPTApLHpuLVA8RCYmKFA9em4pLHpuLUY8RCYmKEY9em4pLE5bQV09UCxJW0FdPUYsTyl7bGV0IGJlPWIuZ2V0T2N0RW5jb2RlZE5vcm1hbChfLEEsXzgpO3ZbU109YmUueCx2W1MrMV09YmUueX0obiYmUD49JHJ8fCFuJiZQPD0kcikmJihvJiZGPj0kcnx8IW8mJkY8PSRyKSYmKG1bQV09VCx1LnB1c2goUCksYy5wdXNoKEYpLGwucHVzaChMW0FdKSxPJiYocC5wdXNoKHZbU10pLHAucHVzaCh2W1MrMV0pKSwrK1QpfWxldCBqPVtdO2oucHVzaChuZXcgam4pLGoucHVzaChuZXcgam4pLGoucHVzaChuZXcgam4pO2xldCBIPVtdO0gucHVzaChuZXcgam4pLEgucHVzaChuZXcgam4pLEgucHVzaChuZXcgam4pO2xldCBrLEs7Zm9yKEE9MDtBPGcubGVuZ3RoO0ErPTMpe2xldCBVZT1nW0FdLGJlPWdbQSsxXSxsbj1nW0ErMl0scG49TltVZV0sVG49TltiZV0sb2U9Tltsbl07alswXS5pbml0aWFsaXplSW5kZXhlZChOLEksTCx2LFVlKSxqWzFdLmluaXRpYWxpemVJbmRleGVkKE4sSSxMLHYsYmUpLGpbMl0uaW5pdGlhbGl6ZUluZGV4ZWQoTixJLEwsdixsbik7bGV0ICR0PW1tLmNsaXBUcmlhbmdsZUF0QXhpc0FsaWduZWRUaHJlc2hvbGQoJHIsbixwbixUbixvZSxpOCk7az0wLCEoaz49JHQubGVuZ3RoKSYmKGs9SFswXS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQoJHQsayxqKSwhKGs+PSR0Lmxlbmd0aCkmJihrPUhbMV0uaW5pdGlhbGl6ZUZyb21DbGlwUmVzdWx0KCR0LGssaiksIShrPj0kdC5sZW5ndGgpJiYoaz1IWzJdLmluaXRpYWxpemVGcm9tQ2xpcFJlc3VsdCgkdCxrLGopLEs9bW0uY2xpcFRyaWFuZ2xlQXRBeGlzQWxpZ25lZFRocmVzaG9sZCgkcixvLEhbMF0uZ2V0VigpLEhbMV0uZ2V0VigpLEhbMl0uZ2V0VigpLEJTKSxVUyh1LGMsbCxwLGQsbSxLLEgsTyksazwkdC5sZW5ndGgmJihIWzJdLmNsb25lKEhbMV0pLEhbMl0uaW5pdGlhbGl6ZUZyb21DbGlwUmVzdWx0KCR0LGssaiksSz1tbS5jbGlwVHJpYW5nbGVBdEF4aXNBbGlnbmVkVGhyZXNob2xkKCRyLG8sSFswXS5nZXRWKCksSFsxXS5nZXRWKCksSFsyXS5nZXRWKCksQlMpLFVTKHUsYyxsLHAsZCxtLEssSCxPKSkpKSl9bGV0IFg9bj8tem46MCxSPW8/LXpuOjAsUT1bXSxmdD1bXSxwdD1bXSxndD1bXSxpdD1OdW1iZXIuTUFYX1ZBTFVFLE50PS1pdCxPdD1zODtPdC5sZW5ndGg9MDtsZXQgeHQ9JC5jbG9uZSh0LmVsbGlwc29pZCksX3Q9UHQuY2xvbmUodC5jaGlsZFJlY3RhbmdsZSksZHQ9X3Qubm9ydGgsVnQ9X3Quc291dGgsenQ9X3QuZWFzdCxoZT1fdC53ZXN0O2Zvcih6dDxoZSYmKHp0Kz1NLlRXT19QSSksQT0wO0E8dS5sZW5ndGg7KytBKVA9TWF0aC5yb3VuZCh1W0FdKSxQPD1yPyhRLnB1c2goQSksUD0wKTpQPj1pPyhwdC5wdXNoKEEpLFA9em4pOlA9UCoyK1gsdVtBXT1QLEY9TWF0aC5yb3VuZChjW0FdKSxGPD1zPyhmdC5wdXNoKEEpLEY9MCk6Rj49Zj8oZ3QucHVzaChBKSxGPXpuKTpGPUYqMitSLGNbQV09RixVPU0ubGVycCh3LEMsbFtBXS96biksVTxpdCYmKGl0PVUpLFU+TnQmJihOdD1VKSxsW0FdPVUsaG0ubG9uZ2l0dWRlPU0ubGVycChoZSx6dCxQL3puKSxobS5sYXRpdHVkZT1NLmxlcnAoVnQsZHQsRi96biksaG0uaGVpZ2h0PVUseHQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oaG0sV2kpLE90LnB1c2goV2kueCksT3QucHVzaChXaS55KSxPdC5wdXNoKFdpLnopO2xldCBjZT15dC5mcm9tVmVydGljZXMoT3QsYS5aRVJPLDMsZDgpLHBlPUNvLmZyb21SZWN0YW5nbGUoX3QsaXQsTnQseHQsbTgpLFF0PW5ldyBDcyh4dCkuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRGcm9tVmVydGljZXNQb3NzaWJseVVuZGVyRWxsaXBzb2lkKGNlLmNlbnRlcixPdCwzLGNlLmNlbnRlcixpdCxwOCksSnQ9TnQtaXQseGU9bmV3IFVpbnQxNkFycmF5KHUubGVuZ3RoK2MubGVuZ3RoK2wubGVuZ3RoKTtmb3IoQT0wO0E8dS5sZW5ndGg7KytBKXhlW0FdPXVbQV07bGV0IEFlPXUubGVuZ3RoO2ZvcihBPTA7QTxjLmxlbmd0aDsrK0EpeGVbQWUrQV09Y1tBXTtmb3IoQWUrPWMubGVuZ3RoLEE9MDtBPGwubGVuZ3RoOysrQSl4ZVtBZStBXT16bioobFtBXS1pdCkvSnQ7bGV0IEVlPUR0LmNyZWF0ZVR5cGVkQXJyYXkodS5sZW5ndGgsZCksdW47aWYoTyl7bGV0IFVlPW5ldyBVaW50OEFycmF5KHApO2UucHVzaCh4ZS5idWZmZXIsRWUuYnVmZmVyLFVlLmJ1ZmZlciksdW49VWUuYnVmZmVyfWVsc2UgZS5wdXNoKHhlLmJ1ZmZlcixFZS5idWZmZXIpO3JldHVybnt2ZXJ0aWNlczp4ZS5idWZmZXIsZW5jb2RlZE5vcm1hbHM6dW4saW5kaWNlczpFZS5idWZmZXIsbWluaW11bUhlaWdodDppdCxtYXhpbXVtSGVpZ2h0Ok50LHdlc3RJbmRpY2VzOlEsc291dGhJbmRpY2VzOmZ0LGVhc3RJbmRpY2VzOnB0LG5vcnRoSW5kaWNlczpndCxib3VuZGluZ1NwaGVyZTpjZSxvcmllbnRlZEJvdW5kaW5nQm94OnBlLGhvcml6b25PY2NsdXNpb25Qb2ludDpRdH19ZnVuY3Rpb24gam4oKXt0aGlzLnZlcnRleEJ1ZmZlcj12b2lkIDAsdGhpcy5pbmRleD12b2lkIDAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5zZWNvbmQ9dm9pZCAwLHRoaXMucmF0aW89dm9pZCAwfWZ1bmN0aW9uIFZTKHQsZSl7KytfbTtsZXQgbj1nOFtfbV0sbz1BOFtfbV07cmV0dXJuIG49bm4ub2N0RGVjb2RlKHQuZmlyc3QuZ2V0Tm9ybWFsWCgpLHQuZmlyc3QuZ2V0Tm9ybWFsWSgpLG4pLG89bm4ub2N0RGVjb2RlKHQuc2Vjb25kLmdldE5vcm1hbFgoKSx0LnNlY29uZC5nZXROb3JtYWxZKCksbyksV2k9YS5sZXJwKG4sbyx0LnJhdGlvLFdpKSxhLm5vcm1hbGl6ZShXaSxXaSksbm4ub2N0RW5jb2RlKFdpLGUpLC0tX20sZX1mdW5jdGlvbiBVUyh0LGUsbixvLHIsaSxzLGYsdSl7aWYocy5sZW5ndGg9PT0wKXJldHVybjtsZXQgYz0wLGw9MDtmb3IoO2w8cy5sZW5ndGg7KWw9SG9bYysrXS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQocyxsLGYpO2ZvcihsZXQgcD0wO3A8YzsrK3Ape2xldCBkPUhvW3BdO2lmKGQuaXNJbmRleGVkKCkpZC5uZXdJbmRleD1pW2QuaW5kZXhdLGQudUJ1ZmZlcj10LGQudkJ1ZmZlcj1lLGQuaGVpZ2h0QnVmZmVyPW4sdSYmKGQubm9ybWFsQnVmZmVyPW8pO2Vsc2V7bGV0IG09ZC5nZXRLZXkoKTtpZihoKGlbbV0pKWQubmV3SW5kZXg9aVttXTtlbHNle2xldCBfPXQubGVuZ3RoO3QucHVzaChkLmdldFUoKSksZS5wdXNoKGQuZ2V0VigpKSxuLnB1c2goZC5nZXRIKCkpLHUmJihvLnB1c2goZC5nZXROb3JtYWxYKCkpLG8ucHVzaChkLmdldE5vcm1hbFkoKSkpLGQubmV3SW5kZXg9XyxpW21dPV99fX1jPT09Mz8oci5wdXNoKEhvWzBdLm5ld0luZGV4KSxyLnB1c2goSG9bMV0ubmV3SW5kZXgpLHIucHVzaChIb1syXS5uZXdJbmRleCkpOmM9PT00JiYoci5wdXNoKEhvWzBdLm5ld0luZGV4KSxyLnB1c2goSG9bMV0ubmV3SW5kZXgpLHIucHVzaChIb1syXS5uZXdJbmRleCksci5wdXNoKEhvWzBdLm5ld0luZGV4KSxyLnB1c2goSG9bMl0ubmV3SW5kZXgpLHIucHVzaChIb1szXS5uZXdJbmRleCkpfXZhciB6biwkcixpOCxCUyxzOCxobSxXaSxjOCxhOCxmOCx1OCxsOCxwOCxkOCxtOCxoOCxfOCxxYSxfbSxnOCxBOCxIbyxiOCxaZz1aKCgpPT57c3MoKTtQZSgpO3plKCk7VXQoKTt2ZSgpO2F0KCk7WnQoKTtzdSgpOyRlKCk7RlMoKTtXdCgpO2RhKCk7QW4oKTtjdSgpO3NvKCk7em49MzI3NjcsJHI9em4vMnwwLGk4PVtdLEJTPVtdLHM4PVtdLGhtPW5ldyBjdCxXaT1uZXcgYSxjOD1bXSxhOD1bXSxmOD1bXSx1OD1bXSxsOD1bXSxwOD1uZXcgYSxkOD1uZXcgeXQsbTg9bmV3IENvLGg4PW5ldyBudCxfOD1uZXcgYTtqbi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGgodCl8fCh0PW5ldyBqbiksdC51QnVmZmVyPXRoaXMudUJ1ZmZlcix0LnZCdWZmZXI9dGhpcy52QnVmZmVyLHQuaGVpZ2h0QnVmZmVyPXRoaXMuaGVpZ2h0QnVmZmVyLHQubm9ybWFsQnVmZmVyPXRoaXMubm9ybWFsQnVmZmVyLHQuaW5kZXg9dGhpcy5pbmRleCx0LmZpcnN0PXRoaXMuZmlyc3QsdC5zZWNvbmQ9dGhpcy5zZWNvbmQsdC5yYXRpbz10aGlzLnJhdGlvLHR9O2puLnByb3RvdHlwZS5pbml0aWFsaXplSW5kZXhlZD1mdW5jdGlvbih0LGUsbixvLHIpe3RoaXMudUJ1ZmZlcj10LHRoaXMudkJ1ZmZlcj1lLHRoaXMuaGVpZ2h0QnVmZmVyPW4sdGhpcy5ub3JtYWxCdWZmZXI9byx0aGlzLmluZGV4PXIsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5zZWNvbmQ9dm9pZCAwLHRoaXMucmF0aW89dm9pZCAwfTtqbi5wcm90b3R5cGUuaW5pdGlhbGl6ZUZyb21DbGlwUmVzdWx0PWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1lKzE7cmV0dXJuIHRbZV0hPT0tMT9uW3RbZV1dLmNsb25lKHRoaXMpOih0aGlzLnZlcnRleEJ1ZmZlcj12b2lkIDAsdGhpcy5pbmRleD12b2lkIDAsdGhpcy5maXJzdD1uW3Rbb11dLCsrbyx0aGlzLnNlY29uZD1uW3Rbb11dLCsrbyx0aGlzLnJhdGlvPXRbb10sKytvKSxvfTtqbi5wcm90b3R5cGUuZ2V0S2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmRleGVkKCk/dGhpcy5pbmRleDpKU09OLnN0cmluZ2lmeSh7Zmlyc3Q6dGhpcy5maXJzdC5nZXRLZXkoKSxzZWNvbmQ6dGhpcy5zZWNvbmQuZ2V0S2V5KCkscmF0aW86dGhpcy5yYXRpb30pfTtqbi5wcm90b3R5cGUuaXNJbmRleGVkPWZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5pbmRleCl9O2puLnByb3RvdHlwZS5nZXRIPWZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5pbmRleCk/dGhpcy5oZWlnaHRCdWZmZXJbdGhpcy5pbmRleF06TS5sZXJwKHRoaXMuZmlyc3QuZ2V0SCgpLHRoaXMuc2Vjb25kLmdldEgoKSx0aGlzLnJhdGlvKX07am4ucHJvdG90eXBlLmdldFU9ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzLmluZGV4KT90aGlzLnVCdWZmZXJbdGhpcy5pbmRleF06TS5sZXJwKHRoaXMuZmlyc3QuZ2V0VSgpLHRoaXMuc2Vjb25kLmdldFUoKSx0aGlzLnJhdGlvKX07am4ucHJvdG90eXBlLmdldFY9ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzLmluZGV4KT90aGlzLnZCdWZmZXJbdGhpcy5pbmRleF06TS5sZXJwKHRoaXMuZmlyc3QuZ2V0VigpLHRoaXMuc2Vjb25kLmdldFYoKSx0aGlzLnJhdGlvKX07cWE9bmV3IG50LF9tPS0xLGc4PVtuZXcgYSxuZXcgYV0sQTg9W25ldyBhLG5ldyBhXTtqbi5wcm90b3R5cGUuZ2V0Tm9ybWFsWD1mdW5jdGlvbigpe3JldHVybiBoKHRoaXMuaW5kZXgpP3RoaXMubm9ybWFsQnVmZmVyW3RoaXMuaW5kZXgqMl06KHFhPVZTKHRoaXMscWEpLHFhLngpfTtqbi5wcm90b3R5cGUuZ2V0Tm9ybWFsWT1mdW5jdGlvbigpe3JldHVybiBoKHRoaXMuaW5kZXgpP3RoaXMubm9ybWFsQnVmZmVyW3RoaXMuaW5kZXgqMisxXToocWE9VlModGhpcyxxYSkscWEueSl9O0hvPVtdO0hvLnB1c2gobmV3IGpuKTtIby5wdXNoKG5ldyBqbik7SG8ucHVzaChuZXcgam4pO0hvLnB1c2gobmV3IGpuKTtiOD1RZSh5OCl9KTt2YXIgRWx0LFFnPVooKCk9PntFbHQ9aTEoeyIuL2NvbWJpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihRaCgpLFpoKSksIi4vY3JlYXRlQm94R2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4objAoKSxlMCkpLCIuL2NyZWF0ZUJveE91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihpMCgpLHIwKSksIi4vY3JlYXRlQ2lyY2xlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaDAoKSxtMCkpLCIuL2NyZWF0ZUNpcmNsZU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihBMCgpLGcwKSksIi4vY3JlYXRlQ29wbGFuYXJQb2x5Z29uR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oSTAoKSxOMCkpLCIuL2NyZWF0ZUNvcGxhbmFyUG9seWdvbk91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihMMCgpLEQwKSksIi4vY3JlYXRlQ29ycmlkb3JHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PigkMCgpLFkwKSksIi4vY3JlYXRlQ29ycmlkb3JPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oSjAoKSxRMCkpLCIuL2NyZWF0ZUN5bGluZGVyR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaV8oKSxyXykpLCIuL2NyZWF0ZUN5bGluZGVyT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGZfKCksYV8pKSwiLi9jcmVhdGVFbGxpcHNlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4obF8oKSx1XykpLCIuL2NyZWF0ZUVsbGlwc2VPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZF8oKSxwXykpLCIuL2NyZWF0ZUVsbGlwc29pZEdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KF9fKCksaF8pKSwiLi9jcmVhdGVFbGxpcHNvaWRPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oQV8oKSxnXykpLCIuL2NyZWF0ZUZydXN0dW1HZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pih4XygpLENfKSksIi4vY3JlYXRlRnJ1c3R1bU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihJXygpLE5fKSksIi4vY3JlYXRlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odDEoKSxKZykpLCIuL2NyZWF0ZUdyb3VuZFBvbHlsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ocV8oKSxIXykpLCIuL2NyZWF0ZVBsYW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oWF8oKSxXXykpLCIuL2NyZWF0ZVBsYW5lT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFpfKCksJF8pKSwiLi9jcmVhdGVQb2x5Z29uR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZXkoKSx0eSkpLCIuL2NyZWF0ZVBvbHlnb25PdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ocnkoKSxveSkpLCIuL2NyZWF0ZVBvbHlsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odXkoKSxmeSkpLCIuL2NyZWF0ZVBvbHlsaW5lVm9sdW1lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZHkoKSxweSkpLCIuL2NyZWF0ZVBvbHlsaW5lVm9sdW1lT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KF95KCksaHkpKSwiLi9jcmVhdGVSZWN0YW5nbGVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihTeSgpLFJ5KSksIi4vY3JlYXRlUmVjdGFuZ2xlT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFB5KCkseHkpKSwiLi9jcmVhdGVTaW1wbGVQb2x5bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KEl5KCksTnkpKSwiLi9jcmVhdGVTcGhlcmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihMeSgpLER5KSksIi4vY3JlYXRlU3BoZXJlT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFV5KCksQnkpKSwiLi9jcmVhdGVUYXNrUHJvY2Vzc29yV29ya2VyLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHNvKCksJGgpKSwiLi9jcmVhdGVWZWN0b3JUaWxlQ2xhbXBlZFBvbHlsaW5lcy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihreSgpLFZ5KSksIi4vY3JlYXRlVmVjdG9yVGlsZUdlb21ldHJpZXMuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oenkoKSxHeSkpLCIuL2NyZWF0ZVZlY3RvclRpbGVQb2ludHMuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ocXkoKSxIeSkpLCIuL2NyZWF0ZVZlY3RvclRpbGVQb2x5Z29ucy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihXeSgpLEt5KSksIi4vY3JlYXRlVmVjdG9yVGlsZVBvbHlsaW5lcy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PigkeSgpLFl5KSksIi4vY3JlYXRlVmVydGljZXNGcm9tR29vZ2xlRWFydGhFbnRlcnByaXNlQnVmZmVyLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGVnKCksdGcpKSwiLi9jcmVhdGVWZXJ0aWNlc0Zyb21IZWlnaHRtYXAuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ocmcoKSxvZykpLCIuL2NyZWF0ZVZlcnRpY2VzRnJvbVF1YW50aXplZFRlcnJhaW5NZXNoLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGNnKCksc2cpKSwiLi9jcmVhdGVXYWxsR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ocGcoKSxsZykpLCIuL2NyZWF0ZVdhbGxPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oaGcoKSxtZykpLCIuL2RlY29kZURyYWNvLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHdnKCksYmcpKSwiLi9kZWNvZGVHb29nbGVFYXJ0aEVudGVycHJpc2VQYWNrZXQuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oVWcoKSxCZykpLCIuL2RlY29kZUkzUy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pih6ZygpLEdnKSksIi4vdHJhbnNjb2RlS1RYMi5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihYZygpLFdnKSksIi4vdHJhbnNmZXJUeXBlZEFycmF5VGVzdC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihZZygpLExTKSksIi4vdXBzYW1wbGVRdWFudGl6ZWRUZXJyYWluTWVzaC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihaZygpLCRnKSl9KX0pO3ZhciBKZz17fTttZShKZyx7ZGVmYXVsdDooKT0+Tzh9KTthc3luYyBmdW5jdGlvbiB3OCh0KXtsZXQgZT1lMVt0XTtyZXR1cm4gaChlKXx8KHR5cGVvZiBleHBvcnRzPT0ib2JqZWN0Ij9lMVtlXT1lPURvKGBXb3JrZXJzLyR7dH1gKTooZT0oYXdhaXQgRWx0KGAuLyR7dH0uanNgKSkuZGVmYXVsdCxlMVtlXT1lKSksZX1hc3luYyBmdW5jdGlvbiBUOCh0LGUpe2xldCBuPXQuc3ViVGFza3Msbz1uLmxlbmd0aCxyPW5ldyBBcnJheShvKTtmb3IobGV0IGk9MDtpPG87aSsrKXtsZXQgcz1uW2ldLGY9cy5nZW9tZXRyeSx1PXMubW9kdWxlTmFtZTtoKHUpP3JbaV09dzgodSkudGhlbihjPT5jKGYscy5vZmZzZXQpKTpyW2ldPWZ9cmV0dXJuIFByb21pc2UuYWxsKHIpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGNhLnBhY2tDcmVhdGVHZW9tZXRyeVJlc3VsdHMoaSxlKX0pfXZhciBlMSxPOCx0MT1aKCgpPT57YXQoKTtZaCgpO3NvKCk7UWcoKTtlMT17fTtPOD1RZShUOCl9KTt2YXIgZ1Y9e307bWUoZ1Yse2NvbWJpbmVHZW9tZXRyeTooKT0+RTgsY3JlYXRlQm94R2VvbWV0cnk6KCk9PlI4LGNyZWF0ZUJveE91dGxpbmVHZW9tZXRyeTooKT0+UzgsY3JlYXRlQ2lyY2xlR2VvbWV0cnk6KCk9PkM4LGNyZWF0ZUNpcmNsZU91dGxpbmVHZW9tZXRyeTooKT0+eDgsY3JlYXRlQ29wbGFuYXJQb2x5Z29uR2VvbWV0cnk6KCk9PlA4LGNyZWF0ZUNvcGxhbmFyUG9seWdvbk91dGxpbmVHZW9tZXRyeTooKT0+TTgsY3JlYXRlQ29ycmlkb3JHZW9tZXRyeTooKT0+TjgsY3JlYXRlQ29ycmlkb3JPdXRsaW5lR2VvbWV0cnk6KCk9Pkk4LGNyZWF0ZUN5bGluZGVyR2VvbWV0cnk6KCk9PnY4LGNyZWF0ZUN5bGluZGVyT3V0bGluZUdlb21ldHJ5OigpPT5EOCxjcmVhdGVFbGxpcHNlR2VvbWV0cnk6KCk9Pkw4LGNyZWF0ZUVsbGlwc2VPdXRsaW5lR2VvbWV0cnk6KCk9PkY4LGNyZWF0ZUVsbGlwc29pZEdlb21ldHJ5OigpPT5COCxjcmVhdGVFbGxpcHNvaWRPdXRsaW5lR2VvbWV0cnk6KCk9PlU4LGNyZWF0ZUZydXN0dW1HZW9tZXRyeTooKT0+VjgsY3JlYXRlRnJ1c3R1bU91dGxpbmVHZW9tZXRyeTooKT0+azgsY3JlYXRlR2VvbWV0cnk6KCk9Pkc4LGNyZWF0ZUdyb3VuZFBvbHlsaW5lR2VvbWV0cnk6KCk9Pno4LGNyZWF0ZVBsYW5lR2VvbWV0cnk6KCk9Pmo4LGNyZWF0ZVBsYW5lT3V0bGluZUdlb21ldHJ5OigpPT5IOCxjcmVhdGVQb2x5Z29uR2VvbWV0cnk6KCk9PnE4LGNyZWF0ZVBvbHlnb25PdXRsaW5lR2VvbWV0cnk6KCk9Pks4LGNyZWF0ZVBvbHlsaW5lR2VvbWV0cnk6KCk9Plc4LGNyZWF0ZVBvbHlsaW5lVm9sdW1lR2VvbWV0cnk6KCk9Plg4LGNyZWF0ZVBvbHlsaW5lVm9sdW1lT3V0bGluZUdlb21ldHJ5OigpPT5ZOCxjcmVhdGVSZWN0YW5nbGVHZW9tZXRyeTooKT0+JDgsY3JlYXRlUmVjdGFuZ2xlT3V0bGluZUdlb21ldHJ5OigpPT5aOCxjcmVhdGVTaW1wbGVQb2x5bGluZUdlb21ldHJ5OigpPT5ROCxjcmVhdGVTcGhlcmVHZW9tZXRyeTooKT0+SjgsY3JlYXRlU3BoZXJlT3V0bGluZUdlb21ldHJ5OigpPT50VixjcmVhdGVUYXNrUHJvY2Vzc29yV29ya2VyOigpPT5lVixjcmVhdGVWZWN0b3JUaWxlQ2xhbXBlZFBvbHlsaW5lczooKT0+blYsY3JlYXRlVmVjdG9yVGlsZUdlb21ldHJpZXM6KCk9Pm9WLGNyZWF0ZVZlY3RvclRpbGVQb2ludHM6KCk9PnJWLGNyZWF0ZVZlY3RvclRpbGVQb2x5Z29uczooKT0+aVYsY3JlYXRlVmVjdG9yVGlsZVBvbHlsaW5lczooKT0+c1YsY3JlYXRlVmVydGljZXNGcm9tR29vZ2xlRWFydGhFbnRlcnByaXNlQnVmZmVyOigpPT5jVixjcmVhdGVWZXJ0aWNlc0Zyb21IZWlnaHRtYXA6KCk9PmFWLGNyZWF0ZVZlcnRpY2VzRnJvbVF1YW50aXplZFRlcnJhaW5NZXNoOigpPT5mVixjcmVhdGVXYWxsR2VvbWV0cnk6KCk9PnVWLGNyZWF0ZVdhbGxPdXRsaW5lR2VvbWV0cnk6KCk9PmxWLGRlY29kZURyYWNvOigpPT5wVixkZWNvZGVHb29nbGVFYXJ0aEVudGVycHJpc2VQYWNrZXQ6KCk9PmRWLGRlY29kZUkzUzooKT0+bVYsdHJhbnNjb2RlS1RYMjooKT0+aFYsdHJhbnNmZXJUeXBlZEFycmF5VGVzdDooKT0+X1YsdXBzYW1wbGVRdWFudGl6ZWRUZXJyYWluTWVzaDooKT0+eVZ9KTt2YXIgRTg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5RaCgpKX0sUjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5uMCgpKX0sUzg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5pMCgpKX0sQzg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5oMCgpKX0seDg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5BMCgpKX0sUDg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5JMCgpKX0sTTg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5MMCgpKX0sTjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4kMCgpKX0sSTg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5KMCgpKX0sdjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5pXygpKX0sRDg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5mXygpKX0sTDg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5sXygpKX0sRjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5kXygpKX0sQjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5fXygpKX0sVTg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5BXygpKX0sVjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT54XygpKX0sazg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5JXygpKX0sRzg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50MSgpKX0sejg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5xXygpKX0sajg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5YXygpKX0sSDg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5aXygpKX0scTg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5leSgpKX0sSzg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5yeSgpKX0sVzg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT51eSgpKX0sWDg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5keSgpKX0sWTg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5feSgpKX0sJDg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5TeSgpKX0sWjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5QeSgpKX0sUTg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5JeSgpKX0sSjg9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5MeSgpKX0sdFY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5VeSgpKX0sZVY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5zbygpKX0sblY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5reSgpKX0sb1Y9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT56eSgpKX0sclY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5xeSgpKX0saVY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5XeSgpKX0sc1Y9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4keSgpKX0sY1Y9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5lZygpKX0sYVY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5yZygpKX0sZlY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5jZygpKX0sdVY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5wZygpKX0sbFY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5oZygpKX0scFY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT53ZygpKX0sZFY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5VZygpKX0sbVY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT56ZygpKX0saFY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5YZygpKX0sX1Y9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5ZZygpKX0seVY9KCk9PntQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5aZygpKX07cmV0dXJuIEtTKGdWKTt9KSgpOwo=")});var oA=yc((Bgt,B8)=>{var Ygt=T(S()),Bf=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};Bf.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};Bf.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};Bf.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n>>1^t[e&1];for(;n>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};Bf.prototype.random_int31=function(){return this.random_int()>>>1};Bf.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};Bf.prototype.random=function(){return this.random_int()*(1/4294967296)};Bf.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};Bf.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};B8.exports=Bf});var a6=yc((eS,tS)=>{var DCt=T(S());/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof eS=="object"&&eS&&!eS.nodeType&&eS,n=typeof tS=="object"&&tS&&!tS.nodeType&&tS,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,l=38,u=700,m=72,p=128,y="-",f=/^xn--/,x=/[^\x20-\x7E]/,_=/[\x2E\u3002\uFF0E\uFF61]/g,C={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},V=s-a,L=Math.floor,Z=String.fromCharCode,G;function X(k){throw new RangeError(C[k])}function P(k,O){for(var U=k.length,J=[];U--;)J[U]=O(k[U]);return J}function v(k,O){var U=k.split("@"),J="";U.length>1&&(J=U[0]+"@",k=U[1]),k=k.replace(_,".");var z=k.split("."),ee=P(z,O).join(".");return J+ee}function A(k){for(var O=[],U=0,J=k.length,z,ee;U=55296&&z<=56319&&U65535&&(O-=65536,U+=Z(O>>>10&1023|55296),O=56320|O&1023),U+=Z(O),U}).join("")}function b(k){return k-48<10?k-22:k-65<26?k-65:k-97<26?k-97:s}function R(k,O){return k+22+75*(k<26)-((O!=0)<<5)}function E(k,O,U){var J=0;for(k=U?L(k/u):k>>1,k+=L(k/O);k>V*c>>1;J+=s)k=L(k/V);return L(J+(V+1)*k/(k+l))}function I(k){var O=[],U=k.length,J,z=0,ee=p,K=m,j,q,be,Te,ae,xe,_e,Ve,Ie;for(j=k.lastIndexOf(y),j<0&&(j=0),q=0;q=128&&X("not-basic"),O.push(k.charCodeAt(q));for(be=j>0?j+1:0;be=U&&X("invalid-input"),_e=b(k.charCodeAt(be++)),(_e>=s||_e>L((r-z)/ae))&&X("overflow"),z+=_e*ae,Ve=xe<=K?a:xe>=K+c?c:xe-K,!(_eL(r/Ie)&&X("overflow"),ae*=Ie;J=O.length+1,K=E(z-Te,J,Te==0),L(z/J)>r-ee&&X("overflow"),ee+=L(z/J),z%=J,O.splice(z++,0,ee)}return M(O)}function F(k){var O,U,J,z,ee,K,j,q,be,Te,ae,xe=[],_e,Ve,Ie,Me;for(k=A(k),_e=k.length,O=p,U=0,ee=m,K=0;K<_e;++K)ae=k[K],ae<128&&xe.push(Z(ae));for(J=z=xe.length,z&&xe.push(y);J<_e;){for(j=r,K=0;K<_e;++K)ae=k[K],ae>=O&&aeL((r-U)/Ve)&&X("overflow"),U+=(j-O)*Ve,O=j,K=0;K<_e;++K)if(ae=k[K],aer&&X("overflow"),ae==O){for(q=U,be=s;Te=be<=ee?a:be>=ee+c?c:be-ee,!(q{var BCt=T(S());/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof WA=="object"&&WA.exports?WA.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(c6,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var l;for(l=0;l1);p++)u.splice(0,1);s[m]=u.join("")}var y=-1,f=0,x=0,_=-1,C=!1;for(m=0;mf&&(y=_,f=x)):s[m]==="0"&&(C=!0,_=m,x=1);x>f&&(y=_,f=x),f>1&&s.splice(y,f,""),a=s.length;var V="";for(s[0]===""&&(V=":"),m=0;m{var YCt=T(S());/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof PA=="object"&&PA.exports?PA.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(d6,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var Dl=yc((m6,vA)=>{var OCt=T(S());/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof vA=="object"&&vA.exports?vA.exports=t(a6(),l6(),u6()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(m6,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(R,E){var I=arguments.length>=1,F=arguments.length>=2;if(!(this instanceof r))return I?F?new r(R,E):new r(R):new r;if(R===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?R=location.href+"":R=""}if(R===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(R),E!==void 0?this.absoluteTo(E):this}function s(R){return/^[0-9]+$/.test(R)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function l(R){return R.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function u(R){return R===void 0?"Undefined":String(Object.prototype.toString.call(R)).slice(8,-1)}function m(R){return u(R)==="Array"}function p(R,E){var I={},F,N;if(u(E)==="RegExp")I=null;else if(m(E))for(F=0,N=E.length;F]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(R){if(!(!R||!R.nodeName)){var E=R.nodeName.toLowerCase();if(!(E==="input"&&R.type!=="image"))return r.domAttributes[E]}};function _(R){return escape(R)}function C(R){return encodeURIComponent(R).replace(/[!'()*]/g,_).replace(/\*/g,"%2A")}r.encode=C,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=C,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(R,E){var I=r.encode(R+"");return E===void 0&&(E=r.escapeQuerySpace),E?I.replace(/%20/g,"+"):I},r.decodeQuery=function(R,E){R+="",E===void 0&&(E=r.escapeQuerySpace);try{return r.decode(E?R.replace(/\+/g,"%20"):R)}catch{return R}};var V={encode:"encode",decode:"decode"},L,Z=function(R,E){return function(I){try{return r[E](I+"").replace(r.characters[R][E].expression,function(F){return r.characters[R][E].map[F]})}catch{return I}}};for(L in V)r[L+"PathSegment"]=Z("pathname",V[L]),r[L+"UrnPathSegment"]=Z("urnpath",V[L]);var G=function(R,E,I){return function(F){var N;I?N=function(U){return r[E](r[I](U))}:N=r[E];for(var Y=(F+"").split(R),k=0,O=Y.length;k-1&&(E.fragment=R.substring(I+1)||null,R=R.substring(0,I)),I=R.indexOf("?"),I>-1&&(E.query=R.substring(I+1)||null,R=R.substring(0,I)),R=R.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),R=R.replace(/^[/\\]{2,}/i,"//"),R.substring(0,2)==="//"?(E.protocol=null,R=R.substring(2),R=r.parseAuthority(R,E)):(I=R.indexOf(":"),I>-1&&(E.protocol=R.substring(0,I)||null,E.protocol&&!E.protocol.match(r.protocol_expression)?E.protocol=void 0:R.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(R=R.substring(I+3),R=r.parseAuthority(R,E)):(R=R.substring(I+1),E.urn=!0))),E.path=R,E},r.parseHost=function(R,E){R||(R=""),R=R.replace(/\\/g,"/");var I=R.indexOf("/"),F,N;if(I===-1&&(I=R.length),R.charAt(0)==="[")F=R.indexOf("]"),E.hostname=R.substring(1,F)||null,E.port=R.substring(F+2,I)||null,E.port==="/"&&(E.port=null);else{var Y=R.indexOf(":"),k=R.indexOf("/"),O=R.indexOf(":",Y+1);O!==-1&&(k===-1||O-1?N:R.length-1),k;return Y>-1&&(N===-1||Y-1?K=K.slice(0,j)+K.slice(j).replace(Y,""):K=K.replace(Y,""),!(K.length<=U[0].length)&&!(I.ignore&&I.ignore.test(K))){ee=J+K.length;var Te=E(K,J,ee,R);if(Te===void 0){F.lastIndex=ee;continue}Te=String(Te),R=R.slice(0,J)+Te+R.slice(ee),F.lastIndex=J+Te.length}}return F.lastIndex=0,R},r.ensureValidHostname=function(R,E){var I=!!R,F=!!E,N=!1;if(F&&(N=y(r.hostProtocols,E)),N&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+E);if(R&&R.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(R).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(R){if(R){var E=Number(R);if(!(s(E)&&E>0&&E<65536))throw new TypeError('Port "'+R+'" is not a valid port')}},r.noConflict=function(R){if(R){var E={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(E.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(E.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(E.SecondLevelDomains=i.SecondLevelDomains.noConflict()),E}else i.URI===this&&(i.URI=o);return this},a.build=function(R){return R===!0?this._deferred_build=!0:(R===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function X(R){return function(E,I){return E===void 0?this._parts[R]||"":(this._parts[R]=E||null,this.build(!I),this)}}function P(R,E){return function(I,F){return I===void 0?this._parts[R]||"":(I!==null&&(I=I+"",I.charAt(0)===E&&(I=I.substring(1))),this._parts[R]=I,this.build(!F),this)}}a.protocol=X("protocol"),a.username=X("username"),a.password=X("password"),a.hostname=X("hostname"),a.port=X("port"),a.query=P("query","?"),a.fragment=P("fragment","#"),a.search=function(R,E){var I=this.query(R,E);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(R,E){var I=this.fragment(R,E);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(R,E){if(R===void 0||R===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return R?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=R?r.recodeUrnPath(R):"":this._parts.path=R?r.recodePath(R):"/",this.build(!E),this},a.path=a.pathname,a.href=function(R,E){var I;if(R===void 0)return this.toString();this._string="",this._parts=r._parts();var F=R instanceof r,N=typeof R=="object"&&(R.hostname||R.path||R.pathname);if(R.nodeName){var Y=r.getDomAttribute(R);R=R[Y]||"",N=!1}if(!F&&N&&R.pathname!==void 0&&(R=R.toString()),typeof R=="string"||R instanceof String)this._parts=r.parse(String(R),this._parts);else if(F||N){var k=F?R._parts:R;for(I in k)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=k[I]);k.query&&this.query(k.query,!1)}else throw new TypeError("invalid input");return this.build(!E),this},a.is=function(R){var E=!1,I=!1,F=!1,N=!1,Y=!1,k=!1,O=!1,U=!this._parts.urn;switch(this._parts.hostname&&(U=!1,I=r.ip4_expression.test(this._parts.hostname),F=r.ip6_expression.test(this._parts.hostname),E=I||F,N=!E,Y=N&&n&&n.has(this._parts.hostname),k=N&&r.idn_expression.test(this._parts.hostname),O=N&&r.punycode_expression.test(this._parts.hostname)),R.toLowerCase()){case"relative":return U;case"absolute":return!U;case"domain":case"name":return N;case"sld":return Y;case"ip":return E;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return F;case"idn":return k;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return O}return null};var v=a.protocol,A=a.port,M=a.hostname;a.protocol=function(R,E){if(R&&(R=R.replace(/:(\/\/)?$/,""),!R.match(r.protocol_expression)))throw new TypeError('Protocol "'+R+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return v.call(this,R,E)},a.scheme=a.protocol,a.port=function(R,E){return this._parts.urn?R===void 0?"":this:(R!==void 0&&(R===0&&(R=null),R&&(R+="",R.charAt(0)===":"&&(R=R.substring(1)),r.ensureValidPort(R))),A.call(this,R,E))},a.hostname=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},F=r.parseHost(R,I);if(F!=="/")throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-]');R=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(R,this._parts.protocol)}return M.call(this,R,E)},a.origin=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0){var I=this.protocol(),F=this.authority();return F?(I?I+"://":"")+this.authority():""}else{var N=r(R);return this.protocol(N.protocol()).authority(N.authority()).build(!E),this}},a.host=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(R,this._parts);if(I!=="/")throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-]');return this.build(!E),this},a.authority=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(R,this._parts);if(I!=="/")throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-]');return this.build(!E),this},a.userinfo=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return R[R.length-1]!=="@"&&(R+="@"),r.parseUserinfo(R,this._parts),this.build(!E),this},a.resource=function(R,E){var I;return R===void 0?this.path()+this.search()+this.hash():(I=r.parse(R),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!E),this)},a.subdomain=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var F=this._parts.hostname.length-this.domain().length,N=this._parts.hostname.substring(0,F),Y=new RegExp("^"+l(N));if(R&&R.charAt(R.length-1)!=="."&&(R+="."),R.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return R&&r.ensureValidHostname(R,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(Y,R),this.build(!E),this}},a.domain=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(typeof R=="boolean"&&(E=R,R=void 0),R===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var F=this._parts.hostname.length-this.tld(E).length-1;return F=this._parts.hostname.lastIndexOf(".",F-1)+1,this._parts.hostname.substring(F)||""}else{if(!R)throw new TypeError("cannot set domain empty");if(R.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(R,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=R;else{var N=new RegExp(l(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(N,R)}return this.build(!E),this}},a.tld=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(typeof R=="boolean"&&(E=R,R=void 0),R===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),F=this._parts.hostname.substring(I+1);return E!==!0&&n&&n.list[F.toLowerCase()]&&n.get(this._parts.hostname)||F}else{var N;if(R)if(R.match(/[^a-zA-Z0-9-]/))if(n&&n.is(R))N=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(N,R);else throw new TypeError('TLD "'+R+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");N=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(N,R)}else throw new TypeError("cannot set TLD empty");return this.build(!E),this}},a.directory=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0||R===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,F=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return R?r.decodePath(F):F}else{var N=this._parts.path.length-this.filename().length,Y=this._parts.path.substring(0,N),k=new RegExp("^"+l(Y));return this.is("relative")||(R||(R="/"),R.charAt(0)!=="/"&&(R="/"+R)),R&&R.charAt(R.length-1)!=="/"&&(R+="/"),R=r.recodePath(R),this._parts.path=this._parts.path.replace(k,R),this.build(!E),this}},a.filename=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(typeof R!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),F=this._parts.path.substring(I+1);return R?r.decodePathSegment(F):F}else{var N=!1;R.charAt(0)==="/"&&(R=R.substring(1)),R.match(/\.?\//)&&(N=!0);var Y=new RegExp(l(this.filename())+"$");return R=r.recodePath(R),this._parts.path=this._parts.path.replace(Y,R),N?this.normalizePath(E):this.build(!E),this}},a.suffix=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0||R===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),F=I.lastIndexOf("."),N,Y;return F===-1?"":(N=I.substring(F+1),Y=/^[a-z0-9%]+$/i.test(N)?N:"",R?r.decodePathSegment(Y):Y)}else{R.charAt(0)==="."&&(R=R.substring(1));var k=this.suffix(),O;if(k)R?O=new RegExp(l(k)+"$"):O=new RegExp(l("."+k)+"$");else{if(!R)return this;this._parts.path+="."+r.recodePath(R)}return O&&(R=r.recodePath(R),this._parts.path=this._parts.path.replace(O,R)),this.build(!E),this}},a.segment=function(R,E,I){var F=this._parts.urn?":":"/",N=this.path(),Y=N.substring(0,1)==="/",k=N.split(F);if(R!==void 0&&typeof R!="number"&&(I=E,E=R,R=void 0),R!==void 0&&typeof R!="number")throw new Error('Bad segment "'+R+'", must be 0-based integer');if(Y&&k.shift(),R<0&&(R=Math.max(k.length+R,0)),E===void 0)return R===void 0?k:k[R];if(R===null||k[R]===void 0)if(m(E)){k=[];for(var O=0,U=E.length;O{var Hjt=T(S());/*! @license DOMPurify 3.0.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.6/LICENSE */(function(e,t){typeof rY=="object"&&typeof sY<"u"?sY.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.DOMPurify=t())})(rY,function(){"use strict";let{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:i,getOwnPropertyDescriptor:o}=Object,{freeze:r,seal:s,create:a}=Object,{apply:c,construct:l}=typeof Reflect<"u"&&Reflect;r||(r=function(ke){return ke}),s||(s=function(ke){return ke}),c||(c=function(ke,ct,yt){return ke.apply(ct,yt)}),l||(l=function(ke,ct){return new ke(...ct)});let u=G(Array.prototype.forEach),m=G(Array.prototype.pop),p=G(Array.prototype.push),y=G(String.prototype.toLowerCase),f=G(String.prototype.toString),x=G(String.prototype.match),_=G(String.prototype.replace),C=G(String.prototype.indexOf),V=G(String.prototype.trim),L=G(RegExp.prototype.test),Z=X(TypeError);function G(ve){return function(ke){for(var ct=arguments.length,yt=new Array(ct>1?ct-1:0),ot=1;ot2&&arguments[2]!==void 0?arguments[2]:y;t&&t(ve,null);let yt=ke.length;for(;yt--;){let ot=ke[yt];if(typeof ot=="string"){let ln=ct(ot);ln!==ot&&(n(ke)||(ke[yt]=ln),ot=ln)}ve[ot]=!0}return ve}function v(ve){let ke=a(null);for(let[ct,yt]of e(ve))o(ve,ct)!==void 0&&(ke[ct]=yt);return ke}function A(ve,ke){for(;ve!==null;){let yt=o(ve,ke);if(yt){if(yt.get)return G(yt.get);if(typeof yt.value=="function")return G(yt.value)}ve=i(ve)}function ct(yt){return console.warn("fallback value for",yt),null}return ct}let M=r(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),b=r(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),R=r(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),E=r(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),I=r(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),F=r(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),N=r(["#text"]),Y=r(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),k=r(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),O=r(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),U=r(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),J=s(/\{\{[\w\W]*|[\w\W]*\}\}/gm),z=s(/<%[\w\W]*|[\w\W]*%>/gm),ee=s(/\${[\w\W]*}/gm),K=s(/^data-[\-\w.\u00B7-\uFFFF]/),j=s(/^aria-[\-\w]+$/),q=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),be=s(/^(?:\w+script|data):/i),Te=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ae=s(/^html$/i);var xe=Object.freeze({__proto__:null,MUSTACHE_EXPR:J,ERB_EXPR:z,TMPLIT_EXPR:ee,DATA_ATTR:K,ARIA_ATTR:j,IS_ALLOWED_URI:q,IS_SCRIPT_OR_DATA:be,ATTR_WHITESPACE:Te,DOCTYPE_NAME:ae});let _e=function(){return typeof window>"u"?null:window},Ve=function(ke,ct){if(typeof ke!="object"||typeof ke.createPolicy!="function")return null;let yt=null,ot="data-tt-policy-suffix";ct&&ct.hasAttribute(ot)&&(yt=ct.getAttribute(ot));let ln="dompurify"+(yt?"#"+yt:"");try{return ke.createPolicy(ln,{createHTML(vn){return vn},createScriptURL(vn){return vn}})}catch{return console.warn("TrustedTypes policy "+ln+" could not be created."),null}};function Ie(){let ve=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_e(),ke=Ln=>Ie(Ln);if(ke.version="3.0.6",ke.removed=[],!ve||!ve.document||ve.document.nodeType!==9)return ke.isSupported=!1,ke;let{document:ct}=ve,yt=ct,ot=yt.currentScript,{DocumentFragment:ln,HTMLTemplateElement:vn,Node:Dt,Element:Nt,NodeFilter:pe,NamedNodeMap:Ce=ve.NamedNodeMap||ve.MozNamedAttrMap,HTMLFormElement:Ht,DOMParser:ut,trustedTypes:hi}=ve,ji=Nt.prototype,pc=A(ji,"cloneNode"),bs=A(ji,"nextSibling"),ys=A(ji,"childNodes"),$r=A(ji,"parentNode");if(typeof vn=="function"){let Ln=ct.createElement("template");Ln.content&&Ln.content.ownerDocument&&(ct=Ln.content.ownerDocument)}let Fe,je="",{implementation:qe,createNodeIterator:Qe,createDocumentFragment:pt,getElementsByTagName:Bt}=ct,{importNode:Vn}=yt,di={};ke.isSupported=typeof e=="function"&&typeof $r=="function"&&qe&&qe.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:bo,ERB_EXPR:es,TMPLIT_EXPR:ts,DATA_ATTR:Mo,ARIA_ATTR:Ki,IS_SCRIPT_OR_DATA:ns,ATTR_WHITESPACE:zn}=xe,{IS_ALLOWED_URI:Fn}=xe,mn=null,_i=P({},[...M,...b,...R,...I,...N]),ui=null,As=P({},[...Y,...k,...O,...U]),fi=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Pr=null,Sh=null,cr=!0,kd=!0,qc=!1,pg=!0,Or=!1,bc=!1,Dd=!1,Ga=!1,Ch=!1,DT=!1,KV=!1,C8=!0,V8=!1,f_e="user-content-",UD=!0,HV=!1,BT={},YT=null,L8=P({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),R8=null,Z8=P({},["audio","video","img","source","image","track"]),kD=null,G8=P({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),eA="http://www.w3.org/1998/Math/MathML",tA="http://www.w3.org/2000/svg",kf="http://www.w3.org/1999/xhtml",OT=kf,DD=!1,BD=null,p_e=P({},[eA,tA,kf],f),bg=null,b_e=["application/xhtml+xml","text/html"],y_e="text/html",Ms=null,KT=null,g_e=ct.createElement("form"),E8=function(Ge){return Ge instanceof RegExp||Ge instanceof Function},YD=function(){let Ge=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(KT&&KT===Ge)){if((!Ge||typeof Ge!="object")&&(Ge={}),Ge=v(Ge),bg=b_e.indexOf(Ge.PARSER_MEDIA_TYPE)===-1?bg=y_e:bg=Ge.PARSER_MEDIA_TYPE,Ms=bg==="application/xhtml+xml"?f:y,mn="ALLOWED_TAGS"in Ge?P({},Ge.ALLOWED_TAGS,Ms):_i,ui="ALLOWED_ATTR"in Ge?P({},Ge.ALLOWED_ATTR,Ms):As,BD="ALLOWED_NAMESPACES"in Ge?P({},Ge.ALLOWED_NAMESPACES,f):p_e,kD="ADD_URI_SAFE_ATTR"in Ge?P(v(G8),Ge.ADD_URI_SAFE_ATTR,Ms):G8,R8="ADD_DATA_URI_TAGS"in Ge?P(v(Z8),Ge.ADD_DATA_URI_TAGS,Ms):Z8,YT="FORBID_CONTENTS"in Ge?P({},Ge.FORBID_CONTENTS,Ms):L8,Pr="FORBID_TAGS"in Ge?P({},Ge.FORBID_TAGS,Ms):{},Sh="FORBID_ATTR"in Ge?P({},Ge.FORBID_ATTR,Ms):{},BT="USE_PROFILES"in Ge?Ge.USE_PROFILES:!1,cr=Ge.ALLOW_ARIA_ATTR!==!1,kd=Ge.ALLOW_DATA_ATTR!==!1,qc=Ge.ALLOW_UNKNOWN_PROTOCOLS||!1,pg=Ge.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Or=Ge.SAFE_FOR_TEMPLATES||!1,bc=Ge.WHOLE_DOCUMENT||!1,Ch=Ge.RETURN_DOM||!1,DT=Ge.RETURN_DOM_FRAGMENT||!1,KV=Ge.RETURN_TRUSTED_TYPE||!1,Ga=Ge.FORCE_BODY||!1,C8=Ge.SANITIZE_DOM!==!1,V8=Ge.SANITIZE_NAMED_PROPS||!1,UD=Ge.KEEP_CONTENT!==!1,HV=Ge.IN_PLACE||!1,Fn=Ge.ALLOWED_URI_REGEXP||q,OT=Ge.NAMESPACE||kf,fi=Ge.CUSTOM_ELEMENT_HANDLING||{},Ge.CUSTOM_ELEMENT_HANDLING&&E8(Ge.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(fi.tagNameCheck=Ge.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Ge.CUSTOM_ELEMENT_HANDLING&&E8(Ge.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(fi.attributeNameCheck=Ge.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Ge.CUSTOM_ELEMENT_HANDLING&&typeof Ge.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(fi.allowCustomizedBuiltInElements=Ge.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Or&&(kd=!1),DT&&(Ch=!0),BT&&(mn=P({},[...N]),ui=[],BT.html===!0&&(P(mn,M),P(ui,Y)),BT.svg===!0&&(P(mn,b),P(ui,k),P(ui,U)),BT.svgFilters===!0&&(P(mn,R),P(ui,k),P(ui,U)),BT.mathMl===!0&&(P(mn,I),P(ui,O),P(ui,U))),Ge.ADD_TAGS&&(mn===_i&&(mn=v(mn)),P(mn,Ge.ADD_TAGS,Ms)),Ge.ADD_ATTR&&(ui===As&&(ui=v(ui)),P(ui,Ge.ADD_ATTR,Ms)),Ge.ADD_URI_SAFE_ATTR&&P(kD,Ge.ADD_URI_SAFE_ATTR,Ms),Ge.FORBID_CONTENTS&&(YT===L8&&(YT=v(YT)),P(YT,Ge.FORBID_CONTENTS,Ms)),UD&&(mn["#text"]=!0),bc&&P(mn,["html","head","body"]),mn.table&&(P(mn,["tbody"]),delete Pr.tbody),Ge.TRUSTED_TYPES_POLICY){if(typeof Ge.TRUSTED_TYPES_POLICY.createHTML!="function")throw Z('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ge.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Z('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Fe=Ge.TRUSTED_TYPES_POLICY,je=Fe.createHTML("")}else Fe===void 0&&(Fe=Ve(hi,ot)),Fe!==null&&typeof je=="string"&&(je=Fe.createHTML(""));r&&r(Ge),KT=Ge}},X8=P({},["mi","mo","mn","ms","mtext"]),I8=P({},["foreignobject","desc","title","annotation-xml"]),x_e=P({},["title","style","font","a","script"]),nA=P({},b);P(nA,R),P(nA,E);let OD=P({},I);P(OD,F);let __e=function(Ge){let Zt=$r(Ge);(!Zt||!Zt.tagName)&&(Zt={namespaceURI:OT,tagName:"template"});let bn=y(Ge.tagName),No=y(Zt.tagName);return BD[Ge.namespaceURI]?Ge.namespaceURI===tA?Zt.namespaceURI===kf?bn==="svg":Zt.namespaceURI===eA?bn==="svg"&&(No==="annotation-xml"||X8[No]):!!nA[bn]:Ge.namespaceURI===eA?Zt.namespaceURI===kf?bn==="math":Zt.namespaceURI===tA?bn==="math"&&I8[No]:!!OD[bn]:Ge.namespaceURI===kf?Zt.namespaceURI===tA&&!I8[No]||Zt.namespaceURI===eA&&!X8[No]?!1:!OD[bn]&&(x_e[bn]||!nA[bn]):!!(bg==="application/xhtml+xml"&&BD[Ge.namespaceURI]):!1},yg=function(Ge){p(ke.removed,{element:Ge});try{Ge.parentNode.removeChild(Ge)}catch{Ge.remove()}},KD=function(Ge,Zt){try{p(ke.removed,{attribute:Zt.getAttributeNode(Ge),from:Zt})}catch{p(ke.removed,{attribute:null,from:Zt})}if(Zt.removeAttribute(Ge),Ge==="is"&&!ui[Ge])if(Ch||DT)try{yg(Zt)}catch{}else try{Zt.setAttribute(Ge,"")}catch{}},W8=function(Ge){let Zt=null,bn=null;if(Ga)Ge=""+Ge;else{let Xa=x(Ge,/^[\r\n\t ]+/);bn=Xa&&Xa[0]}bg==="application/xhtml+xml"&&OT===kf&&(Ge=''+Ge+"");let No=Fe?Fe.createHTML(Ge):Ge;if(OT===kf)try{Zt=new ut().parseFromString(No,bg)}catch{}if(!Zt||!Zt.documentElement){Zt=qe.createDocument(OT,"template",null);try{Zt.documentElement.innerHTML=DD?je:No}catch{}}let Ea=Zt.body||Zt.documentElement;return Ge&&bn&&Ea.insertBefore(ct.createTextNode(bn),Ea.childNodes[0]||null),OT===kf?Bt.call(Zt,bc?"html":"body")[0]:bc?Zt.documentElement:Ea},P8=function(Ge){return Qe.call(Ge.ownerDocument||Ge,Ge,pe.SHOW_ELEMENT|pe.SHOW_COMMENT|pe.SHOW_TEXT,null)},T_e=function(Ge){return Ge instanceof Ht&&(typeof Ge.nodeName!="string"||typeof Ge.textContent!="string"||typeof Ge.removeChild!="function"||!(Ge.attributes instanceof Ce)||typeof Ge.removeAttribute!="function"||typeof Ge.setAttribute!="function"||typeof Ge.namespaceURI!="string"||typeof Ge.insertBefore!="function"||typeof Ge.hasChildNodes!="function")},v8=function(Ge){return typeof Dt=="function"&&Ge instanceof Dt},Df=function(Ge,Zt,bn){di[Ge]&&u(di[Ge],No=>{No.call(ke,Zt,bn,KT)})},F8=function(Ge){let Zt=null;if(Df("beforeSanitizeElements",Ge,null),T_e(Ge))return yg(Ge),!0;let bn=Ms(Ge.nodeName);if(Df("uponSanitizeElement",Ge,{tagName:bn,allowedTags:mn}),Ge.hasChildNodes()&&!v8(Ge.firstElementChild)&&L(/<[/\w]/g,Ge.innerHTML)&&L(/<[/\w]/g,Ge.textContent))return yg(Ge),!0;if(!mn[bn]||Pr[bn]){if(!Pr[bn]&&A8(bn)&&(fi.tagNameCheck instanceof RegExp&&L(fi.tagNameCheck,bn)||fi.tagNameCheck instanceof Function&&fi.tagNameCheck(bn)))return!1;if(UD&&!YT[bn]){let No=$r(Ge)||Ge.parentNode,Ea=ys(Ge)||Ge.childNodes;if(Ea&&No){let Xa=Ea.length;for(let $c=Xa-1;$c>=0;--$c)No.insertBefore(pc(Ea[$c],!0),bs(Ge))}}return yg(Ge),!0}return Ge instanceof Nt&&!__e(Ge)||(bn==="noscript"||bn==="noembed"||bn==="noframes")&&L(/<\/no(script|embed|frames)/i,Ge.innerHTML)?(yg(Ge),!0):(Or&&Ge.nodeType===3&&(Zt=Ge.textContent,u([bo,es,ts],No=>{Zt=_(Zt,No," ")}),Ge.textContent!==Zt&&(p(ke.removed,{element:Ge.cloneNode()}),Ge.textContent=Zt)),Df("afterSanitizeElements",Ge,null),!1)},w8=function(Ge,Zt,bn){if(C8&&(Zt==="id"||Zt==="name")&&(bn in ct||bn in g_e))return!1;if(!(kd&&!Sh[Zt]&&L(Mo,Zt))){if(!(cr&&L(Ki,Zt))){if(!ui[Zt]||Sh[Zt]){if(!(A8(Ge)&&(fi.tagNameCheck instanceof RegExp&&L(fi.tagNameCheck,Ge)||fi.tagNameCheck instanceof Function&&fi.tagNameCheck(Ge))&&(fi.attributeNameCheck instanceof RegExp&&L(fi.attributeNameCheck,Zt)||fi.attributeNameCheck instanceof Function&&fi.attributeNameCheck(Zt))||Zt==="is"&&fi.allowCustomizedBuiltInElements&&(fi.tagNameCheck instanceof RegExp&&L(fi.tagNameCheck,bn)||fi.tagNameCheck instanceof Function&&fi.tagNameCheck(bn))))return!1}else if(!kD[Zt]){if(!L(Fn,_(bn,zn,""))){if(!((Zt==="src"||Zt==="xlink:href"||Zt==="href")&&Ge!=="script"&&C(bn,"data:")===0&&R8[Ge])){if(!(qc&&!L(ns,_(bn,zn,"")))){if(bn)return!1}}}}}}return!0},A8=function(Ge){return Ge.indexOf("-")>0},M8=function(Ge){Df("beforeSanitizeAttributes",Ge,null);let{attributes:Zt}=Ge;if(!Zt)return;let bn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ui},No=Zt.length;for(;No--;){let Ea=Zt[No],{name:Xa,namespaceURI:$c,value:gg}=Ea,zV=Ms(Xa),el=Xa==="value"?gg:V(gg);if(bn.attrName=zV,bn.attrValue=el,bn.keepAttr=!0,bn.forceKeepAttr=void 0,Df("uponSanitizeAttribute",Ge,bn),el=bn.attrValue,bn.forceKeepAttr||(KD(Xa,Ge),!bn.keepAttr))continue;if(!pg&&L(/\/>/i,el)){KD(Xa,Ge);continue}Or&&u([bo,es,ts],U8=>{el=_(el,U8," ")});let N8=Ms(Ge.nodeName);if(w8(N8,zV,el)){if(V8&&(zV==="id"||zV==="name")&&(KD(Xa,Ge),el=f_e+el),Fe&&typeof hi=="object"&&typeof hi.getAttributeType=="function"&&!$c)switch(hi.getAttributeType(N8,zV)){case"TrustedHTML":{el=Fe.createHTML(el);break}case"TrustedScriptURL":{el=Fe.createScriptURL(el);break}}try{$c?Ge.setAttributeNS($c,Xa,el):Ge.setAttribute(Xa,el),m(ke.removed)}catch{}}}Df("afterSanitizeAttributes",Ge,null)},S_e=function Ln(Ge){let Zt=null,bn=P8(Ge);for(Df("beforeSanitizeShadowDOM",Ge,null);Zt=bn.nextNode();)Df("uponSanitizeShadowNode",Zt,null),!F8(Zt)&&(Zt.content instanceof ln&&Ln(Zt.content),M8(Zt));Df("afterSanitizeShadowDOM",Ge,null)};return ke.sanitize=function(Ln){let Ge=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Zt=null,bn=null,No=null,Ea=null;if(DD=!Ln,DD&&(Ln=""),typeof Ln!="string"&&!v8(Ln))if(typeof Ln.toString=="function"){if(Ln=Ln.toString(),typeof Ln!="string")throw Z("dirty is not a string, aborting")}else throw Z("toString is not a function");if(!ke.isSupported)return Ln;if(Dd||YD(Ge),ke.removed=[],typeof Ln=="string"&&(HV=!1),HV){if(Ln.nodeName){let gg=Ms(Ln.nodeName);if(!mn[gg]||Pr[gg])throw Z("root node is forbidden and cannot be sanitized in-place")}}else if(Ln instanceof Dt)Zt=W8(""),bn=Zt.ownerDocument.importNode(Ln,!0),bn.nodeType===1&&bn.nodeName==="BODY"||bn.nodeName==="HTML"?Zt=bn:Zt.appendChild(bn);else{if(!Ch&&!Or&&!bc&&Ln.indexOf("<")===-1)return Fe&&KV?Fe.createHTML(Ln):Ln;if(Zt=W8(Ln),!Zt)return Ch?null:KV?je:""}Zt&&Ga&&yg(Zt.firstChild);let Xa=P8(HV?Ln:Zt);for(;No=Xa.nextNode();)F8(No)||(No.content instanceof ln&&S_e(No.content),M8(No));if(HV)return Ln;if(Ch){if(DT)for(Ea=pt.call(Zt.ownerDocument);Zt.firstChild;)Ea.appendChild(Zt.firstChild);else Ea=Zt;return(ui.shadowroot||ui.shadowrootmode)&&(Ea=Vn.call(yt,Ea,!0)),Ea}let $c=bc?Zt.outerHTML:Zt.innerHTML;return bc&&mn["!doctype"]&&Zt.ownerDocument&&Zt.ownerDocument.doctype&&Zt.ownerDocument.doctype.name&&L(ae,Zt.ownerDocument.doctype.name)&&($c=" +`+$c),Or&&u([bo,es,ts],gg=>{$c=_($c,gg," ")}),Fe&&KV?Fe.createHTML($c):$c},ke.setConfig=function(){let Ln=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};YD(Ln),Dd=!0},ke.clearConfig=function(){KT=null,Dd=!1},ke.isValidAttribute=function(Ln,Ge,Zt){KT||YD({});let bn=Ms(Ln),No=Ms(Ge);return w8(bn,No,Zt)},ke.addHook=function(Ln,Ge){typeof Ge=="function"&&(di[Ln]=di[Ln]||[],p(di[Ln],Ge))},ke.removeHook=function(Ln){if(di[Ln])return m(di[Ln])},ke.removeHooks=function(Ln){di[Ln]&&(di[Ln]=[])},ke.removeAllHooks=function(){di={}},ke}var Me=Ie();return Me})});var gre=yc((TLn,yre)=>{"use strict";var SLn=T(S());yre.exports=RDe;var tW=1e20;function RDe(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,l,u,m,p,y,f,x;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?u=t.stride:u=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,m=p.getContext("2d"),r=p.width,s=p.height,y=m.getImageData(0,0,r,s),c=y.data,u=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,m=e,r=p.width,s=p.height,y=m.getImageData(0,0,r,s),c=y.data,u=4):window.ImageData&&e instanceof window.ImageData&&(y=e,r=e.width,s=e.height,c=y.data,u=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(l=c,c=Array(r*s),f=0,x=Math.floor(l.length/u);f{var DLn=T(S());function ADe(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,l=9,u=10,m=11,p=12,y=13,f=14,x=15,_=16,C=17,V=0,L=1,Z=2,G=3,X=4;function P(b,R){return 55296<=b.charCodeAt(R)&&b.charCodeAt(R)<=56319&&56320<=b.charCodeAt(R+1)&&b.charCodeAt(R+1)<=57343}function v(b,R){R===void 0&&(R=0);var E=b.charCodeAt(R);if(55296<=E&&E<=56319&&R=1){var I=b.charCodeAt(R-1),F=E;return 55296<=I&&I<=56319?(I-55296)*1024+(F-56320)+65536:F}return E}function A(b,R,E){var I=[b].concat(R).concat([E]),F=I[I.length-2],N=E,Y=I.lastIndexOf(f);if(Y>1&&I.slice(1,Y).every(function(U){return U==i})&&[i,y,C].indexOf(b)==-1)return Z;var k=I.lastIndexOf(o);if(k>0&&I.slice(1,k).every(function(U){return U==o})&&[p,o].indexOf(F)==-1)return I.filter(function(U){return U==o}).length%2==1?G:X;if(F==e&&N==t)return V;if(F==n||F==e||F==t)return N==f&&R.every(function(U){return U==i})?Z:L;if(N==n||N==e||N==t)return L;if(F==s&&(N==s||N==a||N==l||N==u))return V;if((F==l||F==a)&&(N==a||N==c))return V;if((F==u||F==c)&&N==c)return V;if(N==i||N==x)return V;if(N==r)return V;if(F==p)return V;var O=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[y,C].indexOf(I[O])!=-1&&I.slice(O+1,-1).every(function(U){return U==i})&&N==f||F==x&&[_,C].indexOf(N)!=-1?V:R.indexOf(o)!=-1?Z:F==o&&N==o?V:L}this.nextBreak=function(b,R){if(R===void 0&&(R=0),R<0)return 0;if(R>=b.length-1)return b.length;for(var E=M(v(b,R)),I=[],F=R+1;F{"use strict";var tIn=T(S());OO.exports=bN;OO.exports.default=bN;function bN(e,t,n){n=n||2;var i=t&&t.length,o=i?t[0]*n:e.length,r=nse(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;var a,c,l,u,m,p,y;if(i&&(r=k3e(e,t,r,n)),e.length>80*n){a=l=e[0],c=u=e[1];for(var f=n;fl&&(l=m),p>u&&(u=p);y=Math.max(l-a,u-c),y=y!==0?32767/y:0}return LW(r,s,n,a,c,y,0),s}function nse(e,t,n,i,o){var r,s;if(o===YO(e,t,n,i)>0)for(r=t;r=t;r-=i)s=tse(r,e[r],e[r+1],s);return s&&yN(s,s.next)&&(ZW(s),s=s.next),s}function $x(e,t){if(!e)return e;t||(t=e);var n=e,i;do if(i=!1,!n.steiner&&(yN(n,n.next)||Tr(n.prev,n,n.next)===0)){if(ZW(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function LW(e,t,n,i,o,r,s){if(e){!s&&r&&K3e(e,i,o,r);for(var a=e,c,l;e.prev!==e.next;){if(c=e.prev,l=e.next,r?M3e(e,i,o,r):A3e(e)){t.push(c.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),ZW(e),e=l.next,a=l.next;continue}if(e=l,e===a){s?s===1?(e=N3e($x(e),t,n),LW(e,t,n,i,o,r,2)):s===2&&U3e(e,t,n,i,o,r):LW($x(e),t,n,i,o,r,1);break}}}}function A3e(e){var t=e.prev,n=e,i=e.next;if(Tr(t,n,i)>=0)return!1;for(var o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,l=i.y,u=or?o>s?o:s:r>s?r:s,y=a>c?a>l?a:l:c>l?c:l,f=i.next;f!==t;){if(f.x>=u&&f.x<=p&&f.y>=m&&f.y<=y&&hC(o,a,r,c,s,l,f.x,f.y)&&Tr(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function M3e(e,t,n,i){var o=e.prev,r=e,s=e.next;if(Tr(o,r,s)>=0)return!1;for(var a=o.x,c=r.x,l=s.x,u=o.y,m=r.y,p=s.y,y=ac?a>l?a:l:c>l?c:l,_=u>m?u>p?u:p:m>p?m:p,C=DO(y,f,t,n,i),V=DO(x,_,t,n,i),L=e.prevZ,Z=e.nextZ;L&&L.z>=C&&Z&&Z.z<=V;){if(L.x>=y&&L.x<=x&&L.y>=f&&L.y<=_&&L!==o&&L!==s&&hC(a,u,c,m,l,p,L.x,L.y)&&Tr(L.prev,L,L.next)>=0||(L=L.prevZ,Z.x>=y&&Z.x<=x&&Z.y>=f&&Z.y<=_&&Z!==o&&Z!==s&&hC(a,u,c,m,l,p,Z.x,Z.y)&&Tr(Z.prev,Z,Z.next)>=0))return!1;Z=Z.nextZ}for(;L&&L.z>=C;){if(L.x>=y&&L.x<=x&&L.y>=f&&L.y<=_&&L!==o&&L!==s&&hC(a,u,c,m,l,p,L.x,L.y)&&Tr(L.prev,L,L.next)>=0)return!1;L=L.prevZ}for(;Z&&Z.z<=V;){if(Z.x>=y&&Z.x<=x&&Z.y>=f&&Z.y<=_&&Z!==o&&Z!==s&&hC(a,u,c,m,l,p,Z.x,Z.y)&&Tr(Z.prev,Z,Z.next)>=0)return!1;Z=Z.nextZ}return!0}function N3e(e,t,n){var i=e;do{var o=i.prev,r=i.next.next;!yN(o,r)&&ise(o,i,i.next,r)&&RW(o,r)&&RW(r,o)&&(t.push(o.i/n|0),t.push(i.i/n|0),t.push(r.i/n|0),ZW(i),ZW(i.next),i=e=r),i=i.next}while(i!==e);return $x(i)}function U3e(e,t,n,i,o,r){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&J3e(s,a)){var c=ose(s,a);s=$x(s,s.next),c=$x(c,c.next),LW(s,t,n,i,o,r,0),LW(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function k3e(e,t,n,i){var o=[],r,s,a,c,l;for(r=0,s=t.length;r=n.next.y&&n.next.y!==n.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>r&&(r=a,s=n.x=n.x&&n.x>=l&&i!==n.x&&hC(os.x||n.x===s.x&&O3e(s,n)))&&(s=n,m=p)),n=n.next;while(n!==c);return s}function O3e(e,t){return Tr(e.prev,e,t.prev)<0&&Tr(t.next,e,e.next)<0}function K3e(e,t,n,i){var o=e;do o.z===0&&(o.z=DO(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,H3e(o)}function H3e(e){var t,n,i,o,r,s,a,c,l=1;do{for(n=e,e=null,r=null,s=0;n;){for(s++,i=n,a=0,t=0;t0||c>0&&i;)a!==0&&(c===0||!i||n.z<=i.z)?(o=n,n=n.nextZ,a--):(o=i,i=i.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;n=i}r.nextZ=null,l*=2}while(s>1);return e}function DO(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function z3e(e){var t=e,n=e;do(t.x=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function J3e(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!Q3e(e,t)&&(RW(e,t)&&RW(t,e)&&j3e(e,t)&&(Tr(e.prev,e,t.prev)||Tr(e,t.prev,t))||yN(e,t)&&Tr(e.prev,e,e.next)>0&&Tr(t.prev,t,t.next)>0)}function Tr(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function yN(e,t){return e.x===t.x&&e.y===t.y}function ise(e,t,n,i){var o=pN(Tr(e,t,n)),r=pN(Tr(e,t,i)),s=pN(Tr(n,i,e)),a=pN(Tr(n,i,t));return!!(o!==r&&s!==a||o===0&&fN(e,n,t)||r===0&&fN(e,i,t)||s===0&&fN(n,e,i)||a===0&&fN(n,t,i))}function fN(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function pN(e){return e>0?1:e<0?-1:0}function Q3e(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&ise(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function RW(e,t){return Tr(e.prev,e,e.next)<0?Tr(e,t,e.next)>=0&&Tr(e,e.prev,t)>=0:Tr(e,t,e.prev)<0||Tr(e,e.next,t)<0}function j3e(e,t){var n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function ose(e,t){var n=new BO(e.i,e.x,e.y),i=new BO(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function tse(e,t,n,i){var o=new BO(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function ZW(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function BO(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}bN.deviation=function(e,t,n,i){var o=t&&t.length,r=o?t[0]*n:e.length,s=Math.abs(YO(e,0,r,n));if(o)for(var a=0,c=t.length;a0&&(i+=e[o-1].length,n.holes.push(i))}return n}});var Gde=yc((xH,_H)=>{var Njn=T(S());(function(e,t){typeof xH=="object"&&typeof _H<"u"?_H.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self).RBush=t()})(xH,function(){"use strict";function e(_,C,V,L,Z){(function G(X,P,v,A,M){for(;A>v;){if(A-v>600){var b=A-v+1,R=P-v+1,E=Math.log(b),I=.5*Math.exp(2*E/3),F=.5*Math.sqrt(E*I*(b-I)/b)*(R-b/2<0?-1:1),N=Math.max(v,Math.floor(P-R*I/b+F)),Y=Math.min(A,Math.floor(P+(b-R)*I/b+F));G(X,P,N,Y,M)}var k=X[P],O=v,U=A;for(t(X,v,P),M(X[A],k)>0&&t(X,v,A);O0;)U--}M(X[v],k)===0?t(X,v,U):t(X,++U,A),U<=P&&(v=U+1),P<=U&&(A=U-1)}})(_,C,V||0,L||_.length-1,Z||n)}function t(_,C,V){var L=_[C];_[C]=_[V],_[V]=L}function n(_,C){return _C?1:0}var i=function(_){_===void 0&&(_=9),this._maxEntries=Math.max(4,_),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function o(_,C,V){if(!V)return C.indexOf(_);for(var L=0;L=_.minX&&C.maxY>=_.minY}function f(_){return{children:_,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function x(_,C,V,L,Z){for(var G=[C,V];G.length;)if(!((V=G.pop())-(C=G.pop())<=L)){var X=C+Math.ceil((V-C)/L/2)*L;e(_,X,C,V,Z),G.push(C,X,X,V)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(_){var C=this.data,V=[];if(!y(_,C))return V;for(var L=this.toBBox,Z=[];C;){for(var G=0;G=0&&Z[C].children.length>this._maxEntries;)this._split(Z,C),C--;this._adjustParentBBoxes(L,Z,C)},i.prototype._split=function(_,C){var V=_[C],L=V.children.length,Z=this._minEntries;this._chooseSplitAxis(V,Z,L);var G=this._chooseSplitIndex(V,Z,L),X=f(V.children.splice(G,V.children.length-G));X.height=V.height,X.leaf=V.leaf,r(V,this.toBBox),r(X,this.toBBox),C?_[C-1].children.push(X):this._splitRoot(V,X)},i.prototype._splitRoot=function(_,C){this.data=f([_,C]),this.data.height=_.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(_,C,V){for(var L,Z,G,X,P,v,A,M=1/0,b=1/0,R=C;R<=V-C;R++){var E=s(_,0,R,this.toBBox),I=s(_,R,V,this.toBBox),F=(Z=E,G=I,X=void 0,P=void 0,v=void 0,A=void 0,X=Math.max(Z.minX,G.minX),P=Math.max(Z.minY,G.minY),v=Math.min(Z.maxX,G.maxX),A=Math.min(Z.maxY,G.maxY),Math.max(0,v-X)*Math.max(0,A-P)),N=u(E)+u(I);F=C;M--){var b=_.children[M];a(X,_.leaf?Z(b):b),P+=m(X)}return P},i.prototype._adjustParentBBoxes=function(_,C,V){for(var L=V;L>=0;L--)a(C[L],_)},i.prototype._condense=function(_){for(var C=_.length-1,V=void 0;C>=0;C--)_[C].children.length===0?C>0?(V=_[C-1].children).splice(V.indexOf(_[C]),1):this.clear():r(_[C],this.toBBox)},i})});var g4=yc((exports,module)=>{var D9i=T(S());/*! + * protobuf.js v7.2.5 (c) 2016, daniel wirtz + * compiled tue, 22 aug 2023 00:04:28 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,l=!0;c1&&l.charAt(u)==="=";)++m;return Math.ceil(l.length*3)/4-m};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(l,u,m){for(var p=null,y=[],f=0,x=0,_;u>2],_=(C&3)<<4,x=1;break;case 1:y[f++]=o[_|C>>4],_=(C&15)<<2,x=2;break;case 2:y[f++]=o[_|C>>6],y[f++]=o[C&63],x=0;break}f>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,y)),f=0)}return x&&(y[f++]=o[_],y[f++]=61,x===1&&(y[f++]=61)),p?(f&&p.push(String.fromCharCode.apply(String,y.slice(0,f))),p.join("")):String.fromCharCode.apply(String,y.slice(0,f))};var a="invalid encoding";i.decode=function(l,u,m){for(var p=m,y=0,f,x=0;x1)break;if((_=r[_])===undefined)throw Error(a);switch(y){case 0:f=_,y=1;break;case 1:u[m++]=f<<2|(_&48)>>4,f=_,y=2;break;case 2:u[m++]=(f&15)<<4|(_&60)>>2,f=_,y=3;break;case 3:u[m++]=(f&3)<<6|_,y=0;break}}if(y===1)throw Error(a);return m-p},i.test=function(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c0?0:2147483648,y,f);else if(isNaN(p))m(2143289344,y,f);else if(p>34028234663852886e22)m((x<<31|2139095040)>>>0,y,f);else if(p<11754943508222875e-54)m((x<<31|Math.round(p/1401298464324817e-60))>>>0,y,f);else{var _=Math.floor(Math.log(p)/Math.LN2),C=Math.round(p*Math.pow(2,-_)*8388608)&8388607;m((x<<31|_+127<<23|C)>>>0,y,f)}}c.writeFloatLE=l.bind(null,o),c.writeFloatBE=l.bind(null,r);function u(m,p,y){var f=m(p,y),x=(f>>31)*2+1,_=f>>>23&255,C=f&8388607;return _===255?C?NaN:x*(1/0):_===0?x*1401298464324817e-60*C:x*Math.pow(2,_-150)*(C+8388608)}c.readFloatLE=u.bind(null,s),c.readFloatBE=u.bind(null,a)}(),typeof Float64Array<"u"?function(){var l=new Float64Array([-0]),u=new Uint8Array(l.buffer),m=u[7]===128;function p(_,C,V){l[0]=_,C[V]=u[0],C[V+1]=u[1],C[V+2]=u[2],C[V+3]=u[3],C[V+4]=u[4],C[V+5]=u[5],C[V+6]=u[6],C[V+7]=u[7]}function y(_,C,V){l[0]=_,C[V]=u[7],C[V+1]=u[6],C[V+2]=u[5],C[V+3]=u[4],C[V+4]=u[3],C[V+5]=u[2],C[V+6]=u[1],C[V+7]=u[0]}c.writeDoubleLE=m?p:y,c.writeDoubleBE=m?y:p;function f(_,C){return u[0]=_[C],u[1]=_[C+1],u[2]=_[C+2],u[3]=_[C+3],u[4]=_[C+4],u[5]=_[C+5],u[6]=_[C+6],u[7]=_[C+7],l[0]}function x(_,C){return u[7]=_[C],u[6]=_[C+1],u[5]=_[C+2],u[4]=_[C+3],u[3]=_[C+4],u[2]=_[C+5],u[1]=_[C+6],u[0]=_[C+7],l[0]}c.readDoubleLE=m?f:x,c.readDoubleBE=m?x:f}():function(){function l(m,p,y,f,x,_){var C=f<0?1:0;if(C&&(f=-f),f===0)m(0,x,_+p),m(1/f>0?0:2147483648,x,_+y);else if(isNaN(f))m(0,x,_+p),m(2146959360,x,_+y);else if(f>17976931348623157e292)m(0,x,_+p),m((C<<31|2146435072)>>>0,x,_+y);else{var V;if(f<22250738585072014e-324)V=f/5e-324,m(V>>>0,x,_+p),m((C<<31|V/4294967296)>>>0,x,_+y);else{var L=Math.floor(Math.log(f)/Math.LN2);L===1024&&(L=1023),V=f*Math.pow(2,-L),m(V*4503599627370496>>>0,x,_+p),m((C<<31|L+1023<<20|V*1048576&1048575)>>>0,x,_+y)}}}c.writeDoubleLE=l.bind(null,o,0,4),c.writeDoubleBE=l.bind(null,r,4,0);function u(m,p,y,f,x){var _=m(f,x+p),C=m(f,x+y),V=(C>>31)*2+1,L=C>>>20&2047,Z=4294967296*(C&1048575)+_;return L===2047?Z?NaN:V*(1/0):L===0?V*5e-324*Z:V*Math.pow(2,L-1075)*(Z+4503599627370496)}c.readDoubleLE=u.bind(null,s,0,4),c.readDoubleBE=u.bind(null,a,4,0)}(),c}function o(c,l,u){l[u]=c&255,l[u+1]=c>>>8&255,l[u+2]=c>>>16&255,l[u+3]=c>>>24}function r(c,l,u){l[u]=c>>>24,l[u+1]=c>>>16&255,l[u+2]=c>>>8&255,l[u+3]=c&255}function s(c,l){return(c[l]|c[l+1]<<8|c[l+2]<<16|c[l+3]<<24)>>>0}function a(c,l){return(c[l]<<24|c[l+1]<<16|c[l+2]<<8|c[l+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,l=null,u=a;return function(p){if(p<1||p>c)return o(p);u+p>a&&(l=o(a),u=0);var y=r.call(l,u,u+=p);return u&7&&(u=(u|7)+1),y}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c191&&p<224?u[m++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,u[m++]=55296+(p>>10),u[m++]=56320+(p&1023)):u[m++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,m>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,u)),m=0);return l?(m&&l.push(String.fromCharCode.apply(String,u.slice(0,m))),l.join("")):String.fromCharCode.apply(String,u.slice(0,m))},i.write=function(r,s,a){for(var c=a,l,u,m=0;m>6|192,s[a++]=l&63|128):(l&64512)===55296&&((u=r.charCodeAt(m+1))&64512)===56320?(l=65536+((l&1023)<<10)+(u&1023),++m,s[a++]=l>>18|240,s[a++]=l>>12&63|128,s[a++]=l>>6&63|128,s[a++]=l&63|128):(s[a++]=l>>12|224,s[a++]=l>>6&63|128,s[a++]=l&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(f,x){return RangeError("index out of range: "+f.pos+" + "+(x||1)+" > "+f.len)}function c(f){this.buf=f,this.pos=0,this.len=f.length}var l=typeof Uint8Array<"u"?function(x){if(x instanceof Uint8Array||Array.isArray(x))return new c(x);throw Error("illegal buffer")}:function(x){if(Array.isArray(x))return new c(x);throw Error("illegal buffer")},u=function(){return i.Buffer?function(_){return(c.create=function(V){return i.Buffer.isBuffer(V)?new o(V):l(V)})(_)}:l};c.create=u(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var x=4294967295;return function(){if(x=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(x=(x|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return x;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return x}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var x=this.uint32();return x>>>1^-(x&1)|0};function m(){var f=new r(0,0),x=0;if(this.len-this.pos>4){for(;x<4;++x)if(f.lo=(f.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f;if(f.lo=(f.lo|(this.buf[this.pos]&127)<<28)>>>0,f.hi=(f.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return f;x=0}else{for(;x<3;++x){if(this.pos>=this.len)throw a(this);if(f.lo=(f.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f}return f.lo=(f.lo|(this.buf[this.pos++]&127)<>>0,f}if(this.len-this.pos>4){for(;x<5;++x)if(f.hi=(f.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f}else for(;x<5;++x){if(this.pos>=this.len)throw a(this);if(f.hi=(f.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(f,x){return(f[x-4]|f[x-3]<<8|f[x-2]<<16|f[x-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function y(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var x=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,x},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var x=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,x},c.prototype.bytes=function(){var x=this.uint32(),_=this.pos,C=this.pos+x;if(C>this.len)throw a(this,x);if(this.pos+=x,Array.isArray(this.buf))return this.buf.slice(_,C);if(_===C){var V=i.Buffer;return V?V.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,_,C)},c.prototype.string=function(){var x=this.bytes();return s.read(x,0,x.length)},c.prototype.skip=function(x){if(typeof x=="number"){if(this.pos+x>this.len)throw a(this,x);this.pos+=x}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(f){switch(f){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(f=this.uint32()&7)!==4;)this.skipType(f);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+f+" at offset "+this.pos)}return this},c._configure=function(f){o=f,c.create=u(),o._configure();var x=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return m.call(this)[x](!1)},uint64:function(){return m.call(this)[x](!0)},sint64:function(){return m.call(this).zzDecode()[x](!1)},fixed64:function(){return y.call(this)[x](!0)},sfixed64:function(){return y.call(this)[x](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,l,u){if(!l)throw TypeError("request must be specified");var m=this;if(!u)return i.asPromise(r,m,s,a,c,l);if(!m.rpcImpl)return setTimeout(function(){u(Error("already ended"))},0),undefined;try{return m.rpcImpl(s,a[m.requestDelimited?"encodeDelimited":"encode"](l).finish(),function(y,f){if(y)return m.emit("error",y,s),u(y);if(f===null)return m.end(!0),undefined;if(!(f instanceof c))try{f=c[m.responseDelimited?"decodeDelimited":"decode"](f)}catch(x){return m.emit("error",x,s),u(x)}return m.emit("data",f,s),u(null,f)})}catch(p){return m.emit("error",p,s),setTimeout(function(){u(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,l){this.lo=c>>>0,this.hi=l>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(l){if(l===0)return r;var u=l<0;u&&(l=-l);var m=l>>>0,p=(l-m)/4294967296>>>0;return u&&(p=~p>>>0,m=~m>>>0,++m>4294967295&&(m=0,++p>4294967295&&(p=0))),new o(m,p)},o.from=function(l){if(typeof l=="number")return o.fromNumber(l);if(i.isString(l))if(i.Long)l=i.Long.fromString(l);else return o.fromNumber(parseInt(l,10));return l.low||l.high?new o(l.low>>>0,l.high>>>0):r},o.prototype.toNumber=function(l){if(!l&&this.hi>>>31){var u=~this.lo+1>>>0,m=~this.hi>>>0;return u||(m=m+1>>>0),-(u+m*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(l){return i.Long?new i.Long(this.lo|0,this.hi|0,!!l):{low:this.lo|0,high:this.hi|0,unsigned:!!l}};var a=String.prototype.charCodeAt;o.fromHash=function(l){return l===s?r:new o((a.call(l,0)|a.call(l,1)<<8|a.call(l,2)<<16|a.call(l,3)<<24)>>>0,(a.call(l,4)|a.call(l,5)<<8|a.call(l,6)<<16|a.call(l,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var l=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^l)>>>0,this.lo=(this.lo<<1^l)>>>0,this},o.prototype.zzDecode=function(){var l=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^l)>>>0,this.hi=(this.hi>>>1^l)>>>0,this},o.prototype.length=function(){var l=this.lo,u=(this.lo>>>28|this.hi<<4)>>>0,m=this.hi>>>24;return m===0?u===0?l<16384?l<128?1:2:l<2097152?3:4:u<16384?u<128?5:6:u<2097152?7:8:m<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var l=a[c];return l!=null&&a.hasOwnProperty(c)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var l=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(l.lo,l.hi,c):l.toNumber(!!c)};function o(s,a,c){for(var l=Object.keys(a),u=0;u-1;--m)if(c[u[m]]===1&&this[u[m]]!==undefined&&this[u[m]]!==null)return u[m]}},i.oneOfSetter=function(a){return function(c){for(var l=0;l127;)Z[G++]=L&127|128,L>>>=7;Z[G]=L}function x(L,Z){this.len=L,this.next=undefined,this.val=Z}x.prototype=Object.create(c.prototype),x.prototype.fn=f,m.prototype.uint32=function(Z){return this.len+=(this.tail=this.tail.next=new x((Z=Z>>>0)<128?1:Z<16384?2:Z<2097152?3:Z<268435456?4:5,Z)).len,this},m.prototype.int32=function(Z){return Z<0?this._push(_,10,r.fromNumber(Z)):this.uint32(Z)},m.prototype.sint32=function(Z){return this.uint32((Z<<1^Z>>31)>>>0)};function _(L,Z,G){for(;L.hi;)Z[G++]=L.lo&127|128,L.lo=(L.lo>>>7|L.hi<<25)>>>0,L.hi>>>=7;for(;L.lo>127;)Z[G++]=L.lo&127|128,L.lo=L.lo>>>7;Z[G++]=L.lo}m.prototype.uint64=function(Z){var G=r.from(Z);return this._push(_,G.length(),G)},m.prototype.int64=m.prototype.uint64,m.prototype.sint64=function(Z){var G=r.from(Z).zzEncode();return this._push(_,G.length(),G)},m.prototype.bool=function(Z){return this._push(y,1,Z?1:0)};function C(L,Z,G){Z[G]=L&255,Z[G+1]=L>>>8&255,Z[G+2]=L>>>16&255,Z[G+3]=L>>>24}m.prototype.fixed32=function(Z){return this._push(C,4,Z>>>0)},m.prototype.sfixed32=m.prototype.fixed32,m.prototype.fixed64=function(Z){var G=r.from(Z);return this._push(C,4,G.lo)._push(C,4,G.hi)},m.prototype.sfixed64=m.prototype.fixed64,m.prototype.float=function(Z){return this._push(i.float.writeFloatLE,4,Z)},m.prototype.double=function(Z){return this._push(i.float.writeDoubleLE,8,Z)};var V=i.Array.prototype.set?function(Z,G,X){G.set(Z,X)}:function(Z,G,X){for(var P=0;P>>0;if(!G)return this._push(y,1,0);if(i.isString(Z)){var X=m.alloc(G=s.length(Z));s.decode(Z,X,0),Z=X}return this.uint32(G)._push(V,G,Z)},m.prototype.string=function(Z){var G=a.length(Z);return G?this.uint32(G)._push(a.write,G,Z):this._push(y,1,0)},m.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new c(l,0,0),this.len=0,this},m.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(l,0,0),this.len=0),this},m.prototype.ldelim=function(){var Z=this.head,G=this.tail,X=this.len;return this.reset().uint32(X),X&&(this.tail.next=Z.next,this.tail=G,this.len+=X),this},m.prototype.finish=function(){for(var Z=this.head.next,G=this.constructor.alloc(this.len),X=0;Z;)Z.fn(Z.val,G,X),X+=Z.len,Z=Z.next;return G},m._configure=function(L){o=L,m.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,l,u){l.set(c,u)}:function(c,l,u){if(c.copy)c.copy(l,u,0,c.length);else for(var m=0;m>>0;return this.uint32(l),l&&this._push(r.writeBytesBuffer,l,c),this};function s(a,c,l){a.length<40?o.utf8.write(a,c,l):c.utf8Write?c.utf8Write(a,l):c.write(a,l)}r.prototype.string=function(c){var l=o.Buffer.byteLength(c);return this.uint32(l),l&&this._push(s,l,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var Ege=yc((VMi,Kk)=>{var LMi=T(S());/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(u,m){m=m||{};var p=m.encodedMaskData||m.encodedMaskData===null,y=c(u,m.inputOffset||0,p),f=m.noDataValue!==null?m.noDataValue:o.defaultNoDataValue,x=r(y,m.pixelType||Float32Array,m.encodedMaskData,f,m.returnMask),_={width:y.width,height:y.height,pixelData:x.resultPixels,minValue:x.minValue,maxValue:y.pixels.maxValue,noDataValue:f};return x.resultMask&&(_.maskData=x.resultMask),m.returnEncodedMask&&y.mask&&(_.encodedMaskData=y.mask.bitset?y.mask.bitset:null),m.returnFileInfo&&(_.fileInfo=s(y),m.computeUsedBitDepths&&(_.fileInfo.bitDepths=a(y))),_};var r=function(u,m,p,y,f){var x=0,_=u.pixels.numBlocksX,C=u.pixels.numBlocksY,V=Math.floor(u.width/_),L=Math.floor(u.height/C),Z=2*u.maxZError,G=Number.MAX_VALUE,X;p=p||(u.mask?u.mask.bitset:null);var P,v;P=new m(u.width*u.height),f&&p&&(v=new Uint8Array(u.width*u.height));for(var A=new Float32Array(V*L),M,b,R=0;R<=C;R++){var E=R!==C?L:u.height%C;if(E!==0)for(var I=0;I<=_;I++){var F=I!==_?V:u.width%_;if(F!==0){var N=R*u.width*L+I*V,Y=u.width-F,k=u.pixels.blocks[x],O,U,J;k.encoding<2?(k.encoding===0?O=k.rawData:(l(k.stuffedData,k.bitsPerPixel,k.numValidPixels,k.offset,Z,A,u.pixels.maxValue),O=A),U=0):k.encoding===2?J=0:J=k.offset;var z;if(p)for(b=0;b>3],z<<=N&7),M=0;M>3]),z&128?(v&&(v[N]=1),X=k.encoding<2?O[U++]:J,G=G>X?X:G,P[N++]=X):(v&&(v[N]=0),P[N++]=y),z<<=1;N+=Y}else if(k.encoding<2)for(b=0;bX?X:G,P[N++]=X;N+=Y}else for(G=G>J?J:G,b=0;b0){var _=new Uint8Array(Math.ceil(y.width*y.height/8));x=new DataView(u,m,y.mask.numBytes);var C=x.getInt16(0,!0),V=2,L=0;do{if(C>0)for(;C--;)_[L++]=x.getUint8(V++);else{var Z=x.getUint8(V++);for(C=-C;C--;)_[L++]=Z}C=x.getInt16(V,!0),V+=2}while(V0?1:0),v=X+(y.height%X>0?1:0);y.pixels.blocks=new Array(P*v);for(var A=0,M=0;M3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){m++;continue}if(F!==0&&F!==2){if(F>>=6,I.offsetType=F,F===2)I.offset=x.getInt8(1),R++;else if(F===1)I.offset=x.getInt16(1,!0),R+=2;else if(F===0)I.offset=x.getFloat32(1,!0),R+=4;else throw"Invalid block offset type";if(I.encoding===1)if(F=x.getUint8(R),R++,I.bitsPerPixel=F&63,F>>=6,I.numValidPixelsType=F,F===2)I.numValidPixels=x.getUint8(R),R++;else if(F===1)I.numValidPixels=x.getUint16(R,!0),R+=2;else if(F===0)I.numValidPixels=x.getUint32(R,!0),R+=4;else throw"Invalid valid pixel count type"}if(m+=R,I.encoding!==3){var N,Y;if(I.encoding===0){var k=(y.pixels.numBytes-1)/4;if(k!==Math.floor(k))throw"uncompressed block has invalid length";N=new ArrayBuffer(k*4),Y=new Uint8Array(N),Y.set(new Uint8Array(u,m,k*4));var O=new Float32Array(N);I.rawData=O,m+=k*4}else if(I.encoding===1){var U=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),J=Math.ceil(U/4);N=new ArrayBuffer(J*4),Y=new Uint8Array(N),Y.set(new Uint8Array(u,m,U)),I.stuffedData=new Uint32Array(N),m+=U}}}return y.eofOffset=m,y},l=function(u,m,p,y,f,x,_){var C=(1<=m)G=X>>>Z-m&C,Z-=m;else{var A=m-Z;G=(X&C)<>>Z}x[L]=G=u?(Z=G>>>L-u&_,L-=u):(X=u-L,Z=(G&_)<>>L),l[V]=p[Z];else for(P=Math.ceil((x-y)/f),V=0;V=u?(Z=G>>>L-u&_,L-=u):(X=u-L,Z=(G&_)<>>L),l[V]=Z=l?(L=Z>>>V-l&f,V-=l):(C=l-V,L=(Z&f)<>>V),G[_]=L=u?(G=X>>>Z&_,L-=u,Z+=u):(P=u-L,G=X>>>Z&_,X=c[C++],L=32-P,G|=(X&(1<=u?(G=X>>>Z&_,L-=u,Z+=u):(P=u-L,G=X>>>Z&_,X=c[C++],L=32-P,G|=(X&(1<=l?(L=G>>>Z&f,V-=l,Z+=l):(C=l-V,L=G>>>Z&f,G=c[x++],V=32-C,L|=(G&(1<=u?(_=C>>>x-u&p,x-=u):(V=u-x,_=(C&p)<>>x),l[f]=_;return l},originalUnstuff2:function(c,l,u,m){var p=(1<=u?(C=V>>>_&p,x-=u,_+=u):(L=u-x,C=V>>>_&p,V=c[y++],x=32-L,C|=(V&(1<=359?359:p;p-=f;do l+=c[y++]<<8,u+=l+=c[y++];while(--f);l=(l&65535)+(l>>>16),u=(u&65535)+(u>>>16)}return m&1&&(u+=l+=c[y]<<8),l=(l&65535)+(l>>>16),u=(u&65535)+(u>>>16),(u<<16|l)>>>0},readHeaderInfo:function(c,l){var u=l.ptr,m=new Uint8Array(c,u,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,m),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;u+=6;var y=new DataView(c,u,8),f=y.getInt32(0,!0);p.fileVersion=f,u+=4,f>=3&&(p.checksum=y.getUint32(4,!0),u+=4),y=new DataView(c,u,12),p.height=y.getUint32(0,!0),p.width=y.getUint32(4,!0),u+=8,f>=4?(p.numDims=y.getUint32(8,!0),u+=4):p.numDims=1,y=new DataView(c,u,40),p.numValidPixel=y.getUint32(0,!0),p.microBlockSize=y.getInt32(4,!0),p.blobSize=y.getInt32(8,!0),p.imageType=y.getInt32(12,!0),p.maxZError=y.getFloat64(16,!0),p.zMin=y.getFloat64(24,!0),p.zMax=y.getFloat64(32,!0),u+=40,l.headerInfo=p,l.ptr=u;var x,_;if(f>=3&&(_=f>=4?52:48,x=this.computeChecksumFletcher32(new Uint8Array(c,u-_,p.blobSize-14)),x!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,l){var u=l.headerInfo,m=this.getDataTypeArray(u.imageType),p=u.numDims*this.getDataTypeSize(u.imageType),y=this.readSubArray(c,l.ptr,m,p),f=this.readSubArray(c,l.ptr+p,m,p);l.ptr+=2*p;var x,_=!0;for(x=0;x0){_=new Uint8Array(Math.ceil(p/8)),f=new DataView(c,u,x.numBytes);var V=f.getInt16(0,!0),L=2,Z=0,G=0;do{if(V>0)for(;V--;)_[Z++]=f.getUint8(L++);else for(G=f.getUint8(L++),V=-V;V--;)_[Z++]=G;V=f.getInt16(L,!0),L+=2}while(L>3],X<<=P&7):X=_[P>>3],X&128&&(C[P]=1);l.pixels.resultMask=C,x.bitset=_,u+=x.numBytes}return l.ptr=u,l.mask=x,!0},readDataOneSweep:function(c,l,u){var m=l.ptr,p=l.headerInfo,y=p.numDims,f=p.width*p.height,x=p.imageType,_=p.numValidPixel*r.getDataTypeSize(x)*y,C,V=l.pixels.resultMask;if(u===Uint8Array)C=new Uint8Array(c,m,_);else{var L=new ArrayBuffer(_),Z=new Uint8Array(L);Z.set(new Uint8Array(c,m,_)),C=new u(L)}if(C.length===f*y)l.pixels.resultPixels=C;else{l.pixels.resultPixels=new u(f*y);var G=0,X=0,P=0,v=0;if(y>1)for(P=0;P=x)return!1;var _=new Uint32Array(x-f);r.decodeBits(c,l,_);var C=[],V,L,Z,G;for(V=f;V0&&(C[L].second=R<>>32-G,32-b>=G?(b+=G,b===32&&(b=0,E++,R=M[E])):(b+=G-32,E++,R=M[E],C[L].second|=R>>>32-b));var I=0,F=0,N=new s;for(V=0;V=u?F=u:F=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var Y=[],k,O,U,J,z,ee;for(V=f;V0)if(k=[G,L],G<=F)for(O=C[L].second<=0;J--)z=O>>>J&1,z?(ee.right||(ee.right=new s),ee=ee.right):(ee.left||(ee.left=new s),ee=ee.left),J===0&&!ee.val&&(ee.val=k[1]);return{decodeLut:Y,numBitsLUTQick:F,numBitsLUT:I,tree:N,stuffedData:M,srcPtr:E,bitPos:b}},readHuffman:function(c,l,u){var m=l.headerInfo,p=m.numDims,y=l.headerInfo.height,f=l.headerInfo.width,x=f*y,_=this.readHuffmanTree(c,l),C=_.decodeLut,V=_.tree,L=_.stuffedData,Z=_.srcPtr,G=_.bitPos,X=_.numBitsLUTQick,P=_.numBitsLUT,v=l.headerInfo.imageType===0?128:0,A,M,b,R=l.pixels.resultMask,E,I,F,N,Y,k,O,U=0;G>0&&(Z++,G=0);var J=L[Z],z=l.encodeMode===1,ee=new u(x*p),K=ee,j;for(j=0;j1&&(K=new u(ee.buffer,x*j,x),U=0),l.headerInfo.numValidPixel===f*y)for(k=0,N=0;N>>32-X,I=E,32-G>>64-G-X,I=E),C[I])M=C[I][1],G+=C[I][0];else for(E=J<>>32-P,I=E,32-G>>64-G-P,I=E),A=V,O=0;O>>P-O-1&1,A=F?A.right:A.left,!(A.left||A.right)){M=A.val,G=G+O+1;break}G>=32&&(G-=32,Z++,J=L[Z]),b=M-v,z?(Y>0?b+=U:N>0?b+=K[k-f]:b+=U,b&=255,K[k]=b,U=b):K[k]=b}else for(k=0,N=0;N>>32-X,I=E,32-G>>64-G-X,I=E),C[I])M=C[I][1],G+=C[I][0];else for(E=J<>>32-P,I=E,32-G>>64-G-P,I=E),A=V,O=0;O>>P-O-1&1,A=F?A.right:A.left,!(A.left||A.right)){M=A.val,G=G+O+1;break}G>=32&&(G-=32,Z++,J=L[Z]),b=M-v,z?(Y>0&&R[k-1]?b+=U:N>0&&R[k-f]?b+=K[k-f]:b+=U,b&=255,K[k]=b,U=b):K[k]=b}l.ptr=l.ptr+(Z+1)*4+(G>0?4:0)}l.pixels.resultPixels=ee},decodeBits:function(c,l,u,m,p){{var y=l.headerInfo,f=y.fileVersion,x=0,_=new DataView(c,l.ptr,5),C=_.getUint8(0);x++;var V=C>>6,L=V===0?4:3-V,Z=(C&32)>0,G=C&31,X=0;if(L===1)X=_.getUint8(x),x++;else if(L===2)X=_.getUint16(x,!0),x+=2;else if(L===4)X=_.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var P=2*y.maxZError,v,A,M,b,R,E,I,F,N,Y,k=y.numDims>1?y.maxValues[p]:y.zMax;if(Z){for(l.counter.lut++,F=_.getUint8(x),N=G,x++,b=Math.ceil((F-1)*G/8),R=Math.ceil(b/4),A=new ArrayBuffer(R*4),M=new Uint8Array(A),l.ptr+=x,M.set(new Uint8Array(c,l.ptr,b)),I=new Uint32Array(A),l.ptr+=b,Y=0;F-1>>>Y;)Y++;b=Math.ceil(X*Y/8),R=Math.ceil(b/4),A=new ArrayBuffer(R*4),M=new Uint8Array(A),M.set(new Uint8Array(c,l.ptr,b)),v=new Uint32Array(A),l.ptr+=b,f>=3?E=o.unstuffLUT2(I,G,F-1,m,P,k):E=o.unstuffLUT(I,G,F-1,m,P,k),f>=3?o.unstuff2(v,u,Y,X,E):o.unstuff(v,u,Y,X,E)}else l.counter.bitstuffer++,Y=G,l.ptr+=x,Y>0&&(b=Math.ceil(X*Y/8),R=Math.ceil(b/4),A=new ArrayBuffer(R*4),M=new Uint8Array(A),M.set(new Uint8Array(c,l.ptr,b)),v=new Uint32Array(A),l.ptr+=b,f>=3?m==null?o.originalUnstuff2(v,u,Y,X):o.unstuff2(v,u,Y,X,!1,m,P,k):m==null?o.originalUnstuff(v,u,Y,X):o.unstuff(v,u,Y,X,!1,m,P,k))}},readTiles:function(c,l,u){var m=l.headerInfo,p=m.width,y=m.height,f=m.microBlockSize,x=m.imageType,_=r.getDataTypeSize(x),C=Math.ceil(p/f),V=Math.ceil(y/f);l.pixels.numBlocksY=V,l.pixels.numBlocksX=C,l.pixels.ptr=0;var L=0,Z=0,G=0,X=0,P=0,v=0,A=0,M=0,b=0,R=0,E=0,I=0,F=0,N=0,Y=0,k=0,O,U,J,z,ee,K,j=new u(f*f),q=y%f||f,be=p%f||f,Te,ae,xe=m.numDims,_e,Ve=l.pixels.resultMask,Ie=l.pixels.resultPixels;for(G=0;G1&&(Ie=new u(l.pixels.resultPixels.buffer,p*y*_e*_,p*y)),A=c.byteLength-l.ptr,O=new DataView(c,l.ptr,Math.min(10,A)),U={},k=0,M=O.getUint8(0),k++,b=M>>6&255,R=M>>2&15,R!==(X*f>>3&15))throw"integrity issue";if(K=M&3,K>3)throw l.ptr+=k,"Invalid block encoding ("+K+")";if(K===2){l.counter.constant++,l.ptr+=k;continue}else if(K===0){if(l.counter.uncompressed++,l.ptr+=k,F=P*v*_,N=c.byteLength-l.ptr,F=F1)for(y=0;y=-128&&l<=127;break;case 1:u=l>=0&&l<=255;break;case 2:u=l>=-32768&&l<=32767;break;case 3:u=l>=0&&l<=65536;break;case 4:u=l>=-2147483648&&l<=2147483647;break;case 5:u=l>=0&&l<=4294967296;break;case 6:u=l>=-34027999387901484e22&&l<=34027999387901484e22;break;case 7:u=l>=5e-324&&l<=17976931348623157e292;break;default:u=!1}return u},getDataTypeSize:function(c){var l=0;switch(c){case 0:case 1:l=1;break;case 2:case 3:l=2;break;case 4:case 5:case 6:l=4;break;case 7:l=8;break;default:l=c}return l},getDataTypeUsed:function(c,l){var u=c;switch(c){case 2:case 4:u=c-l;break;case 3:case 5:u=c-2*l;break;case 6:l===0?u=c:l===1?u=2:u=1;break;case 7:l===0?u=c:u=c-2*l+1;break;default:u=c;break}return u},getOnePixel:function(c,l,u,m){var p=0;switch(u){case 0:p=m.getInt8(l);break;case 1:p=m.getUint8(l);break;case 2:p=m.getInt16(l,!0);break;case 3:p=m.getUint16(l,!0);break;case 4:p=m.getInt32(l,!0);break;case 5:p=m.getUInt32(l,!0);break;case 6:p=m.getFloat32(l,!0);break;case 7:p=m.getFloat64(l,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,l,u){this.val=c,this.left=l,this.right=u},a={decode:function(c,l){l=l||{};var u=l.noDataValue,m=0,p={};if(p.ptr=l.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var y=p.headerInfo,f=y.fileVersion,x=r.getDataTypeArray(y.imageType);r.readMask(c,p),y.numValidPixel!==y.width*y.height&&!p.pixels.resultMask&&(p.pixels.resultMask=l.maskData);var _=y.width*y.height;if(p.pixels.resultPixels=new x(_*y.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},y.numValidPixel!==0)if(y.zMax===y.zMin)r.constructConstantSurface(p);else if(f>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var C=new DataView(c,p.ptr,2),V=C.getUint8(0);if(p.ptr++,V)r.readDataOneSweep(c,p,x);else if(f>1&&y.imageType<=1&&Math.abs(y.maxZError-.5)<1e-5){var L=C.getUint8(1);if(p.ptr++,p.encodeMode=L,L>2||f<4&&L>1)throw"Invalid Huffman flag "+L;L?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var Z;l.inputOffset?(Z=p.headerInfo.blobSize+l.inputOffset-p.ptr,Math.abs(Z)>=1&&(p.eofOffset=l.inputOffset+p.headerInfo.blobSize)):(Z=p.headerInfo.blobSize-p.ptr,Math.abs(Z)>=1&&(p.eofOffset=p.headerInfo.blobSize));var G={width:y.width,height:y.height,pixelData:p.pixels.resultPixels,minValue:y.zMin,maxValue:y.zMax,validPixelCount:y.numValidPixel,dimCount:y.numDims,dimStats:{minValues:y.minValues,maxValues:y.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(y.imageType,u)){var X=p.pixels.resultMask;for(m=0;m<_;m++)X[m]||(G.pixelData[m]=u);G.noDataValue=u}return p.noDataValue=u,l.returnFileInfo&&(G.fileInfo=r.formatFileInfo(p)),G}},getBandCount:function(c){var l=0,u=0,m={};for(m.ptr=0,m.pixels={};u1&&V.fileInfo.mask&&V.fileInfo.mask.numBytes>0&&f.push(V.maskData),m++,C.pixels.push(V.pixelData),C.statistics.push({minValue:V.minValue,maxValue:V.maxValue,noDataValue:V.noDataValue,dimStats:V.dimStats})}var L,Z,G;if(u>1&&f.length>1){for(G=C.width*C.height,C.bandMasks=f,_=new Uint8Array(G),_.set(f[0]),L=1;L{var Kpo=T(S());e_e.exports={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}});var i_e=yc((Hpo,n_e)=>{var zpo=T(S()),{webm:zyt,mp4:Jyt}=t_e(),d8=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,u8=()=>"wakeLock"in navigator,m8=class{constructor(){if(this.enabled=!1,u8()){this._wakeLock=null;let t=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",t),document.addEventListener("fullscreenchange",t)}else d8()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",zyt),this._addSourceToVideo(this.noSleepVideo,"mp4",Jyt),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(t,n,i){var o=document.createElement("source");o.src=i,o.type=`video/${n}`,t.appendChild(o)}get isEnabled(){return this.enabled}enable(){return u8()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,console.error(`${t.name}, ${t.message}`),t}):d8()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(n=>(this.enabled=!0,n)).catch(n=>{throw this.enabled=!1,n})}disable(){u8()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):d8()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}};n_e.exports=m8});var Ggt={};G_e(Ggt,{AlphaMode:()=>Oh,AlphaPipelineStage:()=>JX,Animation:()=>f9,AnimationViewModel:()=>p9,Appearance:()=>to,ApproximateTerrainHeights:()=>li,ArcGISTiledElevationTerrainProvider:()=>fj,ArcGisBaseMapType:()=>ch,ArcGisMapServerImageryProvider:()=>X0,ArcGisMapService:()=>Rd,ArcType:()=>Jt,ArticulationStageType:()=>za,AssociativeArray:()=>Tt,AttributeCompression:()=>Kn,AttributeType:()=>an,AutoExposure:()=>PF,AutomaticUniforms:()=>Yf,Axis:()=>Zo,AxisAlignedBoundingBox:()=>ub,B3dmLoader:()=>hX,B3dmParser:()=>dX,BaseLayerPicker:()=>T9,BaseLayerPickerViewModel:()=>_9,BatchTable:()=>Bg,BatchTableHierarchy:()=>bx,BatchTexture:()=>Wc,BatchTexturePipelineStage:()=>QX,Billboard:()=>uo,BillboardCollection:()=>od,BillboardGraphics:()=>Ua,BillboardVisualizer:()=>iG,BingMapsGeocoderService:()=>bj,BingMapsImageryProvider:()=>cv,BingMapsStyle:()=>H1,BlendEquation:()=>ma,BlendFunction:()=>_o,BlendOption:()=>So,BlendingState:()=>un,BoundingRectangle:()=>He,BoundingSphere:()=>ce,BoundingSphereState:()=>lt,BoundingVolumeSemantics:()=>Px,BoxEmitter:()=>$Q,BoxGeometry:()=>cl,BoxGeometryUpdater:()=>_E,BoxGraphics:()=>nx,BoxOutlineGeometry:()=>sm,BrdfLutGenerator:()=>Mv,Buffer:()=>mt,BufferLoader:()=>Sx,BufferUsage:()=>Ne,CPUStylingPipelineStage:()=>eI,CallbackProperty:()=>fm,Camera:()=>co,CameraEventAggregator:()=>kF,CameraEventType:()=>vi,CameraFlightPath:()=>Uv,Cartesian2:()=>D,Cartesian3:()=>h,Cartesian4:()=>se,Cartographic:()=>he,CartographicGeocoderService:()=>gj,CatmullRomSpline:()=>xj,Cesium3DContentGroup:()=>px,Cesium3DTile:()=>xu,Cesium3DTileBatchTable:()=>gp,Cesium3DTileColorBlendMode:()=>fl,Cesium3DTileContent:()=>e4,Cesium3DTileContentFactory:()=>Qx,Cesium3DTileContentState:()=>Fo,Cesium3DTileContentType:()=>cs,Cesium3DTileFeature:()=>Ss,Cesium3DTileFeatureTable:()=>Zm,Cesium3DTileOptimizationHint:()=>hu,Cesium3DTileOptimizations:()=>WW,Cesium3DTilePass:()=>Xo,Cesium3DTilePassState:()=>Du,Cesium3DTilePointFeature:()=>Dp,Cesium3DTileRefine:()=>Wo,Cesium3DTileStyle:()=>bT,Cesium3DTileStyleEngine:()=>MW,Cesium3DTilesInspector:()=>x9,Cesium3DTilesInspectorViewModel:()=>g9,Cesium3DTilesVoxelProvider:()=>r4,Cesium3DTileset:()=>zs,Cesium3DTilesetBaseTraversal:()=>YW,Cesium3DTilesetCache:()=>FW,Cesium3DTilesetGraphics:()=>lx,Cesium3DTilesetHeatmap:()=>wW,Cesium3DTilesetMetadata:()=>c_,Cesium3DTilesetMostDetailedTraversal:()=>kW,Cesium3DTilesetSkipTraversal:()=>HW,Cesium3DTilesetStatistics:()=>o0,Cesium3DTilesetTraversal:()=>Gs,Cesium3DTilesetVisualizer:()=>zW,CesiumInspector:()=>R9,CesiumInspectorViewModel:()=>L9,CesiumTerrainProvider:()=>Xw,CesiumWidget:()=>iw,Check:()=>tl,CheckerboardMaterialProperty:()=>ZC,CircleEmitter:()=>lw,CircleGeometry:()=>_j,CircleOutlineGeometry:()=>Tj,ClassificationModelDrawCommand:()=>EX,ClassificationPipelineStage:()=>jX,ClassificationPrimitive:()=>TS,ClassificationType:()=>kn,ClearCommand:()=>ti,ClippingPlane:()=>vx,ClippingPlaneCollection:()=>ss,Clock:()=>Dm,ClockRange:()=>Er,ClockStep:()=>mo,ClockViewModel:()=>d9,CloudCollection:()=>u4,CloudType:()=>yV,Color:()=>B,ColorBlendMode:()=>Ha,ColorGeometryInstanceAttribute:()=>Ut,ColorMaterialProperty:()=>At,Command:()=>$j,ComponentDatatype:()=>Q,Composite3DTileContent:()=>ZE,CompositeEntityCollection:()=>yK,CompositeMaterialProperty:()=>EC,CompositePositionProperty:()=>Js,CompositeProperty:()=>$a,CompressedTextureBuffer:()=>bL,ComputeCommand:()=>Kd,ComputeEngine:()=>nL,ConditionsExpression:()=>ow,ConeEmitter:()=>h4,ConstantPositionProperty:()=>Gc,ConstantProperty:()=>qn,ConstantSpline:()=>yX,ContentMetadata:()=>TW,Context:()=>QZ,ContextLimits:()=>kt,CoplanarPolygonGeometry:()=>W2,CoplanarPolygonGeometryLibrary:()=>qp,CoplanarPolygonOutlineGeometry:()=>yu,CornerType:()=>Ii,CorridorGeometry:()=>f_,CorridorGeometryLibrary:()=>Mi,CorridorGeometryUpdater:()=>i2,CorridorGraphics:()=>ox,CorridorOutlineGeometry:()=>n2,Credit:()=>St,CreditDisplay:()=>Yv,CubeMap:()=>Ma,CubeMapFace:()=>Wh,CubicRealPolynomial:()=>kg,CullFace:()=>yi,CullingVolume:()=>Qr,CumulusCloud:()=>Fd,CustomDataSource:()=>l2,CustomHeightmapTerrainProvider:()=>Sj,CustomShader:()=>WT,CustomShaderMode:()=>Up,CustomShaderPipelineStage:()=>aI,CustomShaderTranslucencyMode:()=>Yb,CylinderGeometry:()=>d2,CylinderGeometryLibrary:()=>p_,CylinderGeometryUpdater:()=>m2,CylinderGraphics:()=>rx,CylinderOutlineGeometry:()=>u2,CzmlDataSource:()=>S2,DataSource:()=>Zr,DataSourceClock:()=>Bm,DataSourceCollection:()=>C2,DataSourceDisplay:()=>lP,DebugAppearance:()=>f4,DebugCameraPrimitive:()=>Zf,DebugInspector:()=>JF,DebugModelMatrixPrimitive:()=>uw,DefaultProxy:()=>Cj,DepthFunction:()=>ka,DepthPlane:()=>Qv,DequantizationPipelineStage:()=>lI,DerivedCommand:()=>w0,DeveloperError:()=>fe,DeviceOrientationCameraController:()=>qv,DirectionalLight:()=>p4,DiscardEmptyTileImagePolicy:()=>z1,DiscardMissingTileImagePolicy:()=>sv,DistanceDisplayCondition:()=>Gt,DistanceDisplayConditionGeometryInstanceAttribute:()=>Un,DoubleEndedPriorityQueue:()=>yT,DoublyLinkedList:()=>vW,DracoLoader:()=>Rp,DrawCommand:()=>nt,DynamicGeometryBatch:()=>C_,DynamicGeometryUpdater:()=>ii,EarthOrientationParameters:()=>fL,EarthOrientationParametersSample:()=>$0,EasingFunction:()=>Ir,EllipseGeometry:()=>Uc,EllipseGeometryLibrary:()=>Gl,EllipseGeometryUpdater:()=>L2,EllipseGraphics:()=>sx,EllipseOutlineGeometry:()=>hd,Ellipsoid:()=>re,EllipsoidGeodesic:()=>eu,EllipsoidGeometry:()=>Is,EllipsoidGeometryUpdater:()=>Z2,EllipsoidGraphics:()=>ax,EllipsoidOutlineGeometry:()=>sd,EllipsoidPrimitive:()=>Pv,EllipsoidRhumbLine:()=>ha,EllipsoidSurfaceAppearance:()=>b4,EllipsoidTangentPlane:()=>Fr,EllipsoidTerrainProvider:()=>Cf,EllipsoidalOccluder:()=>d0,Empty3DTileContent:()=>mC,EncodedCartesian3:()=>On,Entity:()=>Oo,EntityCluster:()=>ad,EntityCollection:()=>Es,EntityView:()=>uP,Event:()=>ye,EventHelper:()=>Vr,Expression:()=>nu,ExpressionNodeType:()=>ft,ExtrapolationType:()=>ld,FeatureDetection:()=>Mt,FeatureIdPipelineStage:()=>Bb,Fog:()=>$v,ForEach:()=>Xe,FrameRateMonitor:()=>fw,FrameState:()=>eF,Framebuffer:()=>Us,FramebufferManager:()=>mi,FrustumCommands:()=>oF,FrustumGeometry:()=>Q_,FrustumOutlineGeometry:()=>Hv,Fullscreen:()=>lr,FullscreenButton:()=>X9,FullscreenButtonViewModel:()=>E9,GeoJsonDataSource:()=>fP,GeoJsonLoader:()=>fX,GeocodeType:()=>rg,Geocoder:()=>W9,GeocoderService:()=>NV,GeocoderViewModel:()=>I9,GeographicProjection:()=>Zi,GeographicTilingScheme:()=>Di,Geometry:()=>dt,Geometry3DTileContent:()=>EE,GeometryAttribute:()=>Ze,GeometryAttributes:()=>hn,GeometryFactory:()=>Vj,GeometryInstance:()=>_t,GeometryInstanceAttribute:()=>Da,GeometryOffsetAttribute:()=>rn,GeometryPipeline:()=>An,GeometryPipelineStage:()=>hI,GeometryType:()=>Hd,GeometryUpdater:()=>oi,GeometryVisualizer:()=>Q2,GetFeatureInfoFormat:()=>K_,Globe:()=>Ev,GlobeDepth:()=>rF,GlobeSurfaceShaderSet:()=>rv,GlobeSurfaceTile:()=>Nu,GlobeSurfaceTileProvider:()=>xv,GlobeTranslucency:()=>_v,GlobeTranslucencyFramebuffer:()=>sF,GlobeTranslucencyState:()=>tF,GltfBufferViewLoader:()=>vS,GltfDracoLoader:()=>FS,GltfImageLoader:()=>wS,GltfIndexBufferLoader:()=>AS,GltfJsonLoader:()=>NS,GltfLoader:()=>Ip,GltfLoaderUtil:()=>gl,GltfStructuralMetadataLoader:()=>sX,GltfTextureLoader:()=>US,GltfVertexBufferLoader:()=>kS,GoogleEarthEnterpriseImageryProvider:()=>C4,GoogleEarthEnterpriseMapsProvider:()=>uv,GoogleEarthEnterpriseMetadata:()=>O0,GoogleEarthEnterpriseTerrainData:()=>UV,GoogleEarthEnterpriseTerrainProvider:()=>Gj,GoogleEarthEnterpriseTileInformation:()=>bw,GoogleMaps:()=>FT,GpxDataSource:()=>gP,GregorianDate:()=>Jf,GridImageryProvider:()=>V4,GridMaterialProperty:()=>NC,GroundGeometryUpdater:()=>Hn,GroundPolylineGeometry:()=>qg,GroundPolylinePrimitive:()=>dm,GroundPrimitive:()=>Rc,GroupMetadata:()=>VC,HeadingPitchRange:()=>Pu,HeadingPitchRoll:()=>Aa,Heap:()=>dL,HeightReference:()=>Ke,HeightmapEncoding:()=>wu,HeightmapTerrainData:()=>Sa,HeightmapTessellator:()=>B1,HermitePolynomialApproximation:()=>h2,HermiteSpline:()=>Ub,HilbertOrder:()=>XS,HomeButton:()=>G9,HomeButtonViewModel:()=>Z9,HorizontalOrigin:()=>bi,I3SDataProvider:()=>CT,I3SDecoder:()=>yw,I3SFeature:()=>gw,I3SField:()=>xw,I3SGeometry:()=>xV,I3SLayer:()=>TV,I3SNode:()=>_V,I3dmLoader:()=>bX,I3dmParser:()=>pX,Iau2000Orientation:()=>Iv,Iau2006XysData:()=>pL,Iau2006XysSample:()=>Pg,IauOrientationAxes:()=>Wv,IauOrientationParameters:()=>Xv,ImageBasedLighting:()=>fx,ImageBasedLightingPipelineStage:()=>vX,ImageMaterialProperty:()=>bb,Imagery:()=>eV,ImageryLayer:()=>na,ImageryLayerCollection:()=>Tv,ImageryLayerFeatureInfo:()=>ah,ImageryProvider:()=>Yc,ImageryState:()=>ci,Implicit3DTileContent:()=>BS,ImplicitAvailabilityBitstream:()=>WS,ImplicitMetadataView:()=>PS,ImplicitSubdivisionScheme:()=>Mr,ImplicitSubtree:()=>Ix,ImplicitSubtreeCache:()=>aw,ImplicitSubtreeMetadata:()=>XE,ImplicitTileCoordinates:()=>u_,ImplicitTileset:()=>d_,IndexDatatype:()=>Ue,InfoBox:()=>v9,InfoBoxViewModel:()=>P9,InspectorShared:()=>Za,InstanceAttributeSemantic:()=>Nr,InstancingPipelineStage:()=>OX,InterpolationAlgorithm:()=>Ej,InterpolationType:()=>Lm,Intersect:()=>qt,IntersectionTests:()=>Si,Intersections2D:()=>H0,Interval:()=>Tc,InvertClassification:()=>lV,Ion:()=>bm,IonGeocoderService:()=>i9,IonImageryProvider:()=>I0,IonResource:()=>$l,IonWorldImageryStyle:()=>W0,Iso8601:()=>Ye,JobScheduler:()=>nF,JobType:()=>ba,JsonMetadataTable:()=>Ep,JulianDate:()=>te,KTX2Transcoder:()=>yL,KeyboardEventModifier:()=>ra,KeyframeNode:()=>Qi,KmlCamera:()=>xP,KmlDataSource:()=>FP,KmlLookAt:()=>GP,KmlTour:()=>EP,KmlTourFlyTo:()=>IP,KmlTourWait:()=>WP,Label:()=>Qb,LabelCollection:()=>qh,LabelGraphics:()=>um,LabelStyle:()=>vo,LabelVisualizer:()=>j2,LagrangePolynomialApproximation:()=>f2,LeapSecond:()=>Ui,Light:()=>Z4,LightingModel:()=>Hh,LightingPipelineStage:()=>pI,LinearApproximation:()=>y_,LinearSpline:()=>Nb,ManagedArray:()=>Ic,MapMode2D:()=>wl,MapProjection:()=>Wj,MapboxImageryProvider:()=>mv,MapboxStyleImageryProvider:()=>G4,Material:()=>ki,MaterialAppearance:()=>so,MaterialPipelineStage:()=>yI,MaterialProperty:()=>Yo,Math:()=>W,Matrix2:()=>$i,Matrix3:()=>$,Matrix4:()=>w,Megatexture:()=>CV,MetadataClass:()=>Tm,MetadataClassProperty:()=>Lb,MetadataComponentType:()=>tn,MetadataEntity:()=>Mn,MetadataEnum:()=>HE,MetadataEnumValue:()=>KE,MetadataPipelineStage:()=>ru,MetadataSchema:()=>Sm,MetadataSchemaLoader:()=>DS,MetadataSemantic:()=>Wx,MetadataTable:()=>bl,MetadataTableProperty:()=>WE,MetadataType:()=>Ot,MipmapHint:()=>Ph,Model:()=>Xm,Model3DTileContent:()=>Jh,ModelAlphaOptions:()=>PI,ModelAnimation:()=>TX,ModelAnimationChannel:()=>_X,ModelAnimationCollection:()=>SX,ModelAnimationLoop:()=>Tl,ModelAnimationState:()=>Gm,ModelArticulation:()=>wX,ModelArticulationStage:()=>FX,ModelClippingPlanesPipelineStage:()=>NX,ModelColorPipelineStage:()=>Db,ModelComponents:()=>Ft,ModelDrawCommand:()=>XX,ModelFeature:()=>CX,ModelFeatureTable:()=>LX,ModelGraphics:()=>mp,ModelLightingOptions:()=>kI,ModelMatrixUpdateStage:()=>KX,ModelNode:()=>UX,ModelRenderResources:()=>vI,ModelRuntimeNode:()=>zX,ModelRuntimePrimitive:()=>II,ModelSceneGraph:()=>BI,ModelSilhouettePipelineStage:()=>AI,ModelSkin:()=>WI,ModelSplitterPipelineStage:()=>NI,ModelStatistics:()=>YI,ModelType:()=>nr,ModelUtility:()=>nn,ModelVisualizer:()=>$2,Moon:()=>Fv,MorphTargetsPipelineStage:()=>xI,MorphWeightSpline:()=>Pj,MortonOrder:()=>sy,Multiple3DTileContent:()=>VW,MultisampleFramebuffer:()=>jZ,NavigationHelpButton:()=>w9,NavigationHelpButtonViewModel:()=>F9,NearFarScalar:()=>Pt,NeverTileDiscardPolicy:()=>X4,NodeRenderResources:()=>UI,NodeStatisticsPipelineStage:()=>HX,NodeTransformationProperty:()=>cx,OIT:()=>aF,Occluder:()=>wv,OctahedralProjectedCubeMap:()=>pm,OffsetGeometryInstanceAttribute:()=>zi,OpenCageGeocoderService:()=>Fj,OpenStreetMapImageryProvider:()=>K0,OrderedGroundPrimitiveCollection:()=>V2,OrientedBoundingBox:()=>Wn,OrthographicFrustum:()=>en,OrthographicOffCenterFrustum:()=>yr,Packable:()=>wj,PackableForInterpolation:()=>Aj,Particle:()=>VV,ParticleBurst:()=>W4,ParticleEmitter:()=>P4,ParticleSystem:()=>v4,Pass:()=>Re,PassState:()=>Na,PathGraphics:()=>hp,PathVisualizer:()=>tP,PeliasGeocoderService:()=>n9,PerInstanceColorAppearance:()=>sn,PerformanceDisplay:()=>A0,PerformanceWatchdog:()=>U9,PerformanceWatchdogViewModel:()=>N9,PerspectiveFrustum:()=>Ri,PerspectiveOffCenterFrustum:()=>Kc,PickDepth:()=>iF,PickDepthFramebuffer:()=>lF,PickFramebuffer:()=>mF,Picking:()=>pF,PickingPipelineStage:()=>_I,PinBuilder:()=>V0,PixelDatatype:()=>Je,PixelFormat:()=>st,Plane:()=>on,PlaneGeometry:()=>G2,PlaneGeometryUpdater:()=>X2,PlaneGraphics:()=>hE,PlaneOutlineGeometry:()=>E2,PntsLoader:()=>KI,PntsParser:()=>Yx,PointCloud:()=>Vw,PointCloudEyeDomeLighting:()=>Wp,PointCloudShading:()=>Kh,PointCloudStylingPipelineStage:()=>SI,PointGraphics:()=>dx,PointPrimitive:()=>Xs,PointPrimitiveCollection:()=>vC,PointVisualizer:()=>iP,PolygonGeometry:()=>Z_,PolygonGeometryLibrary:()=>Bn,PolygonGeometryUpdater:()=>v2,PolygonGraphics:()=>mm,PolygonHierarchy:()=>fa,PolygonOutlineGeometry:()=>P2,PolygonPipeline:()=>ai,Polyline:()=>du,PolylineArrowMaterialProperty:()=>kC,PolylineCollection:()=>Pm,PolylineColorAppearance:()=>wr,PolylineDashMaterialProperty:()=>BC,PolylineGeometry:()=>C0,PolylineGeometryUpdater:()=>sP,PolylineGlowMaterialProperty:()=>OC,PolylineGraphics:()=>Ba,PolylineMaterialAppearance:()=>Ds,PolylineOutlineMaterialProperty:()=>fy,PolylinePipeline:()=>Xi,PolylineVisualizer:()=>cP,PolylineVolumeGeometry:()=>A2,PolylineVolumeGeometryLibrary:()=>Mm,PolylineVolumeGeometryUpdater:()=>k2,PolylineVolumeGraphics:()=>ux,PolylineVolumeOutlineGeometry:()=>U2,PositionProperty:()=>dp,PositionPropertyArray:()=>f0,PostProcessStage:()=>po,PostProcessStageCollection:()=>AF,PostProcessStageComposite:()=>Hc,PostProcessStageLibrary:()=>Yu,PostProcessStageSampleMode:()=>Ed,PostProcessStageTextureCache:()=>cT,Primitive:()=>Zn,PrimitiveCollection:()=>Zl,PrimitiveLoadPlan:()=>Mx,PrimitiveOutlineGenerator:()=>Ax,PrimitiveOutlinePipelineStage:()=>LI,PrimitivePipeline:()=>Jg,PrimitiveRenderResources:()=>DI,PrimitiveState:()=>mr,PrimitiveStatisticsPipelineStage:()=>RI,PrimitiveType:()=>we,ProjectionPicker:()=>M9,ProjectionPickerViewModel:()=>A9,Property:()=>H,PropertyArray:()=>HC,PropertyAttribute:()=>wx,PropertyAttributeProperty:()=>nX,PropertyBag:()=>ml,PropertyTable:()=>Pc,PropertyTexture:()=>Fx,PropertyTextureProperty:()=>tX,ProviderViewModel:()=>Yr,Proxy:()=>Mj,QuadraticRealPolynomial:()=>Cc,QuadtreeOccluders:()=>Sv,QuadtreePrimitive:()=>Gv,QuadtreeTile:()=>Cv,QuadtreeTileLoadState:()=>Fs,QuadtreeTileProvider:()=>U4,QuantizedMeshTerrainData:()=>LT,QuarticRealPolynomial:()=>AG,Quaternion:()=>Ae,QuaternionSpline:()=>xX,Queue:()=>ny,Ray:()=>Sn,Rectangle:()=>de,RectangleCollisionChecker:()=>I_,RectangleGeometry:()=>E_,RectangleGeometryLibrary:()=>ls,RectangleGeometryUpdater:()=>D2,RectangleGraphics:()=>hm,RectangleOutlineGeometry:()=>e_,ReferenceFrame:()=>io,ReferenceProperty:()=>p0,RenderState:()=>De,Renderbuffer:()=>Kl,RenderbufferFormat:()=>xc,Request:()=>Uo,RequestErrorEvent:()=>Eh,RequestScheduler:()=>Fa,RequestState:()=>$n,RequestType:()=>Jr,Resource:()=>Ee,ResourceCache:()=>Bi,ResourceCacheKey:()=>xl,ResourceCacheStatistics:()=>jE,ResourceLoader:()=>oo,ResourceLoaderState:()=>Rt,Rotation:()=>Vu,RuntimeError:()=>me,S2Cell:()=>Sp,SDFSettings:()=>Rs,SampledPositionProperty:()=>js,SampledProperty:()=>ud,Sampler:()=>dn,ScaledPositionProperty:()=>mf,Scene:()=>jF,SceneFramebuffer:()=>tT,SceneMode:()=>ie,SceneMode2DPipelineStage:()=>ZI,SceneModePicker:()=>D9,SceneModePickerViewModel:()=>k9,SceneTransforms:()=>Ji,SceneTransitioner:()=>UF,ScreenSpaceCameraController:()=>YF,ScreenSpaceEventHandler:()=>Id,ScreenSpaceEventType:()=>_n,SelectedFeatureIdPipelineStage:()=>Ob,SelectionIndicator:()=>O9,SelectionIndicatorViewModel:()=>Y9,ShaderBuilder:()=>Ag,ShaderCache:()=>YZ,ShaderDestination:()=>Le,ShaderFunction:()=>eG,ShaderProgram:()=>Qt,ShaderSource:()=>Be,ShaderStruct:()=>$Z,ShadowMap:()=>U0,ShadowMapShader:()=>If,ShadowMode:()=>xn,ShadowVolumeAppearance:()=>Ql,ShowGeometryInstanceAttribute:()=>gn,Simon1994PlanetaryPositions:()=>ab,SimplePolylineGeometry:()=>Nj,SingleTileImageryProvider:()=>hv,SkinningPipelineStage:()=>EI,SkyAtmosphere:()=>qF,SkyBox:()=>$F,SpatialNode:()=>Rw,SphereEmitter:()=>D4,SphereGeometry:()=>Uj,SphereOutlineGeometry:()=>e0,Spherical:()=>p2,Spline:()=>ro,SplitDirection:()=>vc,Splitter:()=>LV,StaticGeometryColorBatch:()=>Gu,StaticGeometryPerMaterialBatch:()=>Eu,StaticGroundGeometryColorBatch:()=>b1,StaticGroundGeometryPerMaterialBatch:()=>B2,StaticGroundPolylinePerMaterialBatch:()=>aP,StaticOutlineGeometryBatch:()=>x1,StencilConstants:()=>wt,StencilFunction:()=>Dn,StencilOperation:()=>ht,SteppedSpline:()=>gX,Stereographic:()=>ic,StripeMaterialProperty:()=>JC,StripeOrientation:()=>Om,StructuralMetadata:()=>ya,StyleCommandsNeeded:()=>Em,StyleExpression:()=>B4,Sun:()=>nw,SunLight:()=>tp,SunPostProcess:()=>HF,SupportedImageFormats:()=>aX,SvgPathBindingHandler:()=>c9,TaskProcessor:()=>pi,Terrain:()=>Iw,TerrainData:()=>sh,TerrainEncoding:()=>sc,TerrainExaggeration:()=>Vc,TerrainFillMesh:()=>oV,TerrainMesh:()=>Mu,TerrainOffsetProperty:()=>mx,TerrainProvider:()=>Ur,TerrainQuantization:()=>vs,TerrainState:()=>ao,Texture:()=>Wt,TextureAtlas:()=>Jb,TextureCache:()=>OZ,TextureMagnificationFilter:()=>Ti,TextureManager:()=>jw,TextureMinificationFilter:()=>cn,TextureUniform:()=>zj,TextureWrap:()=>Gn,TileAvailability:()=>xh,TileBoundingRegion:()=>bu,TileBoundingS2Cell:()=>XW,TileBoundingSphere:()=>t0,TileBoundingVolume:()=>Q4,TileCoordinatesImageryProvider:()=>Pw,TileDiscardPolicy:()=>q4,TileEdge:()=>yn,TileImagery:()=>tV,TileMapServiceImageryProvider:()=>ky,TileMetadata:()=>SW,TileOrientedBoundingBox:()=>gu,TileProviderError:()=>Vo,TileReplacementQueue:()=>Vv,TileSelectionResult:()=>jn,TileState:()=>$4,Tileset3DTileContent:()=>JI,TilesetMetadata:()=>IW,TilesetPipelineStage:()=>WX,TilingScheme:()=>kj,TimeConstants:()=>Qn,TimeDynamicImagery:()=>H_,TimeDynamicPointCloud:()=>IV,TimeInterval:()=>Tn,TimeIntervalCollection:()=>Rr,TimeIntervalCollectionPositionProperty:()=>b0,TimeIntervalCollectionProperty:()=>y0,TimeStandard:()=>Jn,Timeline:()=>Q9,TimelineHighlightRange:()=>z9,TimelineTrack:()=>J9,Tipsify:()=>DG,ToggleButtonViewModel:()=>dg,Tonemapper:()=>Qy,Transforms:()=>vt,TranslationRotationScale:()=>yb,TranslucentTileClassification:()=>hF,TridiagonalSystemSolver:()=>jS,TrustedServers:()=>oS,TweenCollection:()=>mT,UniformState:()=>JZ,UniformType:()=>PV,UrlTemplateImageryProvider:()=>Ca,VERSION:()=>Zgt,VRButton:()=>H9,VRButtonViewModel:()=>K9,VRTheWorldTerrainProvider:()=>Dj,VaryingType:()=>Jj,Vector3DTileBatch:()=>Dh,Vector3DTileClampedPolylines:()=>gW,Vector3DTileContent:()=>_W,Vector3DTileGeometry:()=>_p,Vector3DTilePoints:()=>uW,Vector3DTilePolygons:()=>mW,Vector3DTilePolylines:()=>Jx,Vector3DTilePrimitive:()=>xx,VelocityOrientationProperty:()=>y2,VelocityVectorProperty:()=>T_,VertexArray:()=>ni,VertexArrayFacade:()=>ip,VertexAttributeSemantic:()=>Ct,VertexFormat:()=>We,VerticalOrigin:()=>In,VideoSynchronizer:()=>Bj,View:()=>oT,Viewer:()=>b8,ViewportQuad:()=>nj,Visibility:()=>sr,Visualizer:()=>sJ,VoxelBoxShape:()=>wf,VoxelContent:()=>cw,VoxelCylinderShape:()=>Af,VoxelEllipsoidShape:()=>gT,VoxelInspector:()=>$9,VoxelInspectorViewModel:()=>q9,VoxelPrimitive:()=>FV,VoxelProvider:()=>sj,VoxelRenderResources:()=>Hw,VoxelShape:()=>aj,VoxelShapeType:()=>Oi,VoxelTraversal:()=>WV,VulkanConstants:()=>Yj,WallGeometry:()=>O2,WallGeometryLibrary:()=>W_,WallGeometryUpdater:()=>z2,WallGraphics:()=>fp,WallOutlineGeometry:()=>H2,WebGLConstants:()=>ne,WebMapServiceImageryProvider:()=>pv,WebMapTileServiceImageryProvider:()=>yv,WebMercatorProjection:()=>Ei,WebMercatorTilingScheme:()=>kr,WindingOrder:()=>Hr,WireframeIndexGenerator:()=>sC,WireframePipelineStage:()=>XI,_shadersAcesTonemappingStage:()=>bF,_shadersAdditiveBlend:()=>OF,_shadersAdjustTranslucentFS:()=>M1,_shadersAllMaterialAppearanceFS:()=>sG,_shadersAllMaterialAppearanceVS:()=>aG,_shadersAmbientOcclusionGenerate:()=>yF,_shadersAmbientOcclusionModulate:()=>gF,_shadersAspectRampMaterial:()=>mG,_shadersAtmosphereCommon:()=>Z0,_shadersBasicMaterialAppearanceFS:()=>cG,_shadersBasicMaterialAppearanceVS:()=>lG,_shadersBillboardCollectionFS:()=>QI,_shadersBillboardCollectionVS:()=>jI,_shadersBlackAndWhite:()=>xF,_shadersBloomComposite:()=>_F,_shadersBrdfLutGeneratorFS:()=>AP,_shadersBrightPass:()=>KF,_shadersBrightness:()=>TF,_shadersBumpMapMaterial:()=>hG,_shadersCPUStylingStageFS:()=>$X,_shadersCPUStylingStageVS:()=>qX,_shadersCheckerboardMaterial:()=>fG,_shadersCloudCollectionFS:()=>MP,_shadersCloudCollectionVS:()=>NP,_shadersCloudNoiseFS:()=>UP,_shadersCloudNoiseVS:()=>kP,_shadersCompareAndPackTranslucentDepth:()=>DP,_shadersCompositeOITFS:()=>BP,_shadersCompositeTranslucentClassification:()=>iT,_shadersContrastBias:()=>SF,_shadersCustomShaderStageFS:()=>nI,_shadersCustomShaderStageVS:()=>tI,_shadersCzmBuiltins:()=>vg,_shadersDepthOfField:()=>CF,_shadersDepthPlaneFS:()=>YP,_shadersDepthPlaneVS:()=>OP,_shadersDepthView:()=>VF,_shadersDepthViewPacked:()=>Hj,_shadersDotMaterial:()=>pG,_shadersEdgeDetection:()=>LF,_shadersElevationBandMaterial:()=>bG,_shadersElevationContourMaterial:()=>yG,_shadersElevationRampMaterial:()=>gG,_shadersEllipsoidFS:()=>N1,_shadersEllipsoidSurfaceAppearanceFS:()=>mw,_shadersEllipsoidSurfaceAppearanceVS:()=>hw,_shadersEllipsoidVS:()=>U1,_shadersFXAA:()=>ZF,_shadersFXAA3_11:()=>KP,_shadersFadeMaterial:()=>xG,_shadersFeatureIdStageFS:()=>iI,_shadersFeatureIdStageVS:()=>oI,_shadersFilmicTonemapping:()=>RF,_shadersGaussianBlur1D:()=>Jy,_shadersGeometryStageFS:()=>dI,_shadersGeometryStageVS:()=>uI,_shadersGlobeFS:()=>HP,_shadersGlobeVS:()=>zP,_shadersGridMaterial:()=>_G,_shadersGroundAtmosphere:()=>k1,_shadersHSBToRGB:()=>hR,_shadersHSLToRGB:()=>fR,_shadersImageBasedLightingStageFS:()=>PX,_shadersInstancingStageCommon:()=>kX,_shadersInstancingStageVS:()=>DX,_shadersIntersectBox:()=>Nw,_shadersIntersectClippingPlanes:()=>Mw,_shadersIntersectCylinder:()=>Uw,_shadersIntersectDepth:()=>Aw,_shadersIntersectEllipsoid:()=>kw,_shadersIntersection:()=>XT,_shadersIntersectionUtils:()=>ww,_shadersLegacyInstancingStageVS:()=>BX,_shadersLensFlare:()=>GF,_shadersLightingStageFS:()=>fI,_shadersMaterialStageFS:()=>bI,_shadersMegatexture:()=>Kw,_shadersMetadataStageFS:()=>rI,_shadersMetadataStageVS:()=>sI,_shadersModelClippingPlanesStageFS:()=>MX,_shadersModelColorStageFS:()=>AX,_shadersModelFS:()=>RX,_shadersModelSilhouetteStageFS:()=>FI,_shadersModelSilhouetteStageVS:()=>wI,_shadersModelSplitterStageFS:()=>MI,_shadersModelVS:()=>ZX,_shadersModifiedReinhardTonemapping:()=>EF,_shadersMorphTargetsStageVS:()=>gI,_shadersNightVision:()=>XF,_shadersNormalMapMaterial:()=>TG,_shadersOctahedralProjectionAtlasFS:()=>TE,_shadersOctahedralProjectionFS:()=>SE,_shadersOctahedralProjectionVS:()=>CE,_shadersOctree:()=>Ow,_shadersPassThrough:()=>Al,_shadersPassThroughDepth:()=>Ky,_shadersPerInstanceColorAppearanceFS:()=>IG,_shadersPerInstanceColorAppearanceVS:()=>WG,_shadersPerInstanceFlatColorAppearanceFS:()=>Ug,_shadersPerInstanceFlatColorAppearanceVS:()=>PG,_shadersPointCloudEyeDomeLighting:()=>cX,_shadersPointCloudStylingStageVS:()=>TI,_shadersPointPrimitiveCollectionFS:()=>hy,_shadersPointPrimitiveCollectionVS:()=>o2,_shadersPolylineArrowMaterial:()=>SG,_shadersPolylineColorAppearanceVS:()=>eE,_shadersPolylineCommon:()=>jl,_shadersPolylineDashMaterial:()=>CG,_shadersPolylineFS:()=>ex,_shadersPolylineGlowMaterial:()=>VG,_shadersPolylineMaterialAppearanceVS:()=>tE,_shadersPolylineOutlineMaterial:()=>LG,_shadersPolylineShadowVolumeFS:()=>QG,_shadersPolylineShadowVolumeMorphFS:()=>jG,_shadersPolylineShadowVolumeMorphVS:()=>qG,_shadersPolylineShadowVolumeVS:()=>$G,_shadersPolylineVS:()=>rW,_shadersPrimitiveOutlineStageFS:()=>VI,_shadersPrimitiveOutlineStageVS:()=>CI,_shadersRGBToHSB:()=>pR,_shadersRGBToHSL:()=>bR,_shadersRGBToXYZ:()=>yR,_shadersReinhardTonemapping:()=>IF,_shadersReprojectWebMercatorFS:()=>JP,_shadersReprojectWebMercatorVS:()=>QP,_shadersRimLightingMaterial:()=>RG,_shadersSelectedFeatureIdStageCommon:()=>rC,_shadersShadowVolumeAppearanceFS:()=>xS,_shadersShadowVolumeAppearanceVS:()=>MG,_shadersShadowVolumeFS:()=>mb,_shadersSilhouette:()=>WF,_shadersSkinningStageVS:()=>GI,_shadersSkyAtmosphereCommon:()=>D1,_shadersSkyAtmosphereFS:()=>jP,_shadersSkyAtmosphereVS:()=>qP,_shadersSkyBoxFS:()=>$P,_shadersSkyBoxVS:()=>ev,_shadersSlopeRampMaterial:()=>ZG,_shadersStripeMaterial:()=>GG,_shadersSunFS:()=>tv,_shadersSunTextureFS:()=>nv,_shadersSunVS:()=>iv,_shadersTexturedMaterialAppearanceFS:()=>dG,_shadersTexturedMaterialAppearanceVS:()=>uG,_shadersVector3DTileClampedPolylinesFS:()=>bW,_shadersVector3DTileClampedPolylinesVS:()=>pW,_shadersVector3DTilePolylinesVS:()=>hW,_shadersVectorTileVS:()=>ES,_shadersViewportQuadFS:()=>ov,_shadersViewportQuadVS:()=>Sg,_shadersVoxelFS:()=>vw,_shadersVoxelVS:()=>Fw,_shadersWater:()=>EG,_shadersXYZToRGB:()=>gR,_shadersacesTonemapping:()=>xR,_shadersalphaWeight:()=>_R,_shadersantialias:()=>TR,_shadersapproximateSphericalCoordinates:()=>SR,_shadersbackFacing:()=>CR,_shadersbranchFreeTernary:()=>VR,_shaderscascadeColor:()=>LR,_shaderscascadeDistance:()=>RR,_shaderscascadeMatrix:()=>ZR,_shaderscascadeWeights:()=>GR,_shaderscolumbusViewMorph:()=>ER,_shaderscomputePosition:()=>XR,_shadersconvertUvToBox:()=>Dw,_shadersconvertUvToCylinder:()=>Bw,_shadersconvertUvToEllipsoid:()=>Yw,_shaderscosineAndSine:()=>IR,_shadersdecompressTextureCoordinates:()=>WR,_shadersdefaultPbrMaterial:()=>PR,_shadersdegreesPerRadian:()=>_L,_shadersdepthClamp:()=>vR,_shadersdepthRange:()=>TL,_shadersdepthRangeStruct:()=>oR,_shaderseastNorthUpToEyeCoordinates:()=>FR,_shadersellipsoidContainsPoint:()=>wR,_shadersellipsoidWgs84TextureCoordinates:()=>AR,_shadersepsilon1:()=>SL,_shadersepsilon2:()=>CL,_shadersepsilon3:()=>VL,_shadersepsilon4:()=>LL,_shadersepsilon5:()=>RL,_shadersepsilon6:()=>ZL,_shadersepsilon7:()=>GL,_shadersequalsEpsilon:()=>MR,_shaderseyeOffset:()=>NR,_shaderseyeToWindowCoordinates:()=>UR,_shadersfastApproximateAtan:()=>kR,_shadersfog:()=>DR,_shadersgammaCorrect:()=>BR,_shadersgeodeticSurfaceNormal:()=>YR,_shadersgetDefaultMaterial:()=>OR,_shadersgetLambertDiffuse:()=>KR,_shadersgetSpecular:()=>HR,_shadersgetWaterNoise:()=>zR,_shadershue:()=>JR,_shadersinfinity:()=>EL,_shadersinverseGamma:()=>QR,_shadersisEmpty:()=>jR,_shadersisFull:()=>qR,_shaderslatitudeToWebMercatorFraction:()=>$R,_shaderslineDistance:()=>eZ,_shaderslinearToSrgb:()=>tZ,_shadersluminance:()=>nZ,_shadersmaterial:()=>rR,_shadersmaterialInput:()=>sR,_shadersmetersPerPixel:()=>iZ,_shadersmodelMaterial:()=>aR,_shadersmodelToWindowCoordinates:()=>oZ,_shadersmodelVertexOutput:()=>cR,_shadersmultiplyWithColorBalance:()=>rZ,_shadersnearFarScalar:()=>sZ,_shadersoctDecode:()=>aZ,_shadersoneOverPi:()=>XL,_shadersoneOverTwoPi:()=>IL,_shaderspackDepth:()=>cZ,_shaderspassCesium3DTile:()=>WL,_shaderspassCesium3DTileClassification:()=>PL,_shaderspassCesium3DTileClassificationIgnoreShow:()=>vL,_shaderspassClassification:()=>FL,_shaderspassCompute:()=>wL,_shaderspassEnvironment:()=>AL,_shaderspassGlobe:()=>ML,_shaderspassOpaque:()=>NL,_shaderspassOverlay:()=>UL,_shaderspassTerrainClassification:()=>kL,_shaderspassTranslucent:()=>DL,_shaderspassVoxels:()=>BL,_shaderspbrLighting:()=>lZ,_shaderspbrMetallicRoughnessMaterial:()=>dZ,_shaderspbrParameters:()=>lR,_shaderspbrSpecularGlossinessMaterial:()=>uZ,_shadersphong:()=>mZ,_shaderspi:()=>YL,_shaderspiOverFour:()=>OL,_shaderspiOverSix:()=>KL,_shaderspiOverThree:()=>HL,_shaderspiOverTwo:()=>zL,_shadersplaneDistance:()=>hZ,_shaderspointAlongRay:()=>fZ,_shadersradiansPerDegree:()=>JL,_shadersray:()=>dR,_shadersrayEllipsoidIntersectionInterval:()=>pZ,_shadersraySegment:()=>uR,_shadersraySphereIntersectionInterval:()=>bZ,_shadersreadDepth:()=>yZ,_shadersreadNonPerspective:()=>gZ,_shadersreverseLogDepth:()=>xZ,_shadersround:()=>_Z,_shaderssampleOctahedralProjection:()=>TZ,_shaderssaturation:()=>SZ,_shaderssceneMode2D:()=>QL,_shaderssceneMode3D:()=>jL,_shaderssceneModeColumbusView:()=>qL,_shaderssceneModeMorphing:()=>$L,_shadersshadowDepthCompare:()=>CZ,_shadersshadowParameters:()=>mR,_shadersshadowVisibility:()=>VZ,_shaderssignNotZero:()=>LZ,_shaderssolarRadius:()=>eR,_shaderssphericalHarmonics:()=>RZ,_shaderssrgbToLinear:()=>ZZ,_shaderstangentToEyeSpaceMatrix:()=>GZ,_shaderstextureCube:()=>EZ,_shadersthreePiOver2:()=>tR,_shaderstransformPlane:()=>XZ,_shaderstranslateRelativeToEye:()=>IZ,_shaderstranslucentPhong:()=>WZ,_shaderstranspose:()=>PZ,_shaderstwoPi:()=>nR,_shadersunpackDepth:()=>vZ,_shadersunpackFloat:()=>FZ,_shadersunpackUint:()=>wZ,_shadersvalueTransform:()=>AZ,_shadersvertexLogDepth:()=>MZ,_shaderswebMercatorMaxLatitude:()=>iR,_shaderswindowToEyeCoordinates:()=>NZ,_shaderswriteDepthClamp:()=>UZ,_shaderswriteLogDepth:()=>kZ,_shaderswriteNonPerspective:()=>DZ,addBuffer:()=>kE,addDefaults:()=>PE,addExtensionsRequired:()=>ME,addExtensionsUsed:()=>iu,addPipelineExtras:()=>Eb,addToArray:()=>rs,appendForwardSlash:()=>sL,arrayRemoveDuplicates:()=>go,barycentricCoordinates:()=>Yg,binarySearch:()=>Lo,buildDrawCommand:()=>IX,buildModuleUrl:()=>$t,buildVoxelDrawCommands:()=>Jw,clone:()=>Oe,combine:()=>xt,computeFlyToLocationForRectangle:()=>vT,createBillboardPointCallback:()=>Ox,createCommand:()=>Cn,createDefaultImageryProviderViewModels:()=>S9,createDefaultTerrainProviderViewModels:()=>C9,createElevationBandMaterial:()=>lj,createGooglePhotorealistic3DTileset:()=>dj,createGuid:()=>Yn,createMaterialPropertyDescriptor:()=>Ro,createOsmBuildingsAsync:()=>uj,createPropertyDescriptor:()=>le,createRawPropertyDescriptor:()=>ul,createTangentSpaceDebugPrimitive:()=>mj,createTaskProcessorWorker:()=>Qj,createUniform:()=>$V,createUniformArray:()=>eL,createWorldImageryAsync:()=>P0,createWorldTerrainAsync:()=>ZT,decodeGoogleEarthEnterpriseData:()=>pw,decodeVectorPolylinePositions:()=>xW,defaultValue:()=>g,defer:()=>il,defined:()=>d,demodernizeShader:()=>BZ,deprecationWarning:()=>zr,destroyObject:()=>ue,exportKml:()=>uJ,findAccessorMinMax:()=>Zx,findContentMetadata:()=>jx,findGroupMetadata:()=>qx,findTileMetadata:()=>CW,forEachTextureInMaterial:()=>MS,formatError:()=>Tf,freezeRenderState:()=>uB,getAbsoluteUri:()=>Zh,getAccessorByteStride:()=>yl,getBaseUri:()=>aL,getBinaryAccessor:()=>ed,getClipAndStyleCode:()=>Sw,getClippingFunction:()=>E0,getComponentReader:()=>Gp,getElement:()=>En,getExtensionFromUri:()=>Vg,getFilenameFromUri:()=>m0,getImageFromTypedArray:()=>Qw,getImagePixels:()=>nm,getJsonFromTypedArray:()=>Go,getMagic:()=>ym,getStringFromTypedArray:()=>hl,getTimestamp:()=>gi,hasExtension:()=>ri,heightReferenceOnEntityPropertyChanged:()=>pp,isBitSet:()=>mc,isBlobUri:()=>Lg,isCrossOriginUrl:()=>Rg,isDataUri:()=>jf,isLeapYear:()=>Qf,knockout:()=>Se,knockout_3_5_1:()=>MT,knockout_es5:()=>a9,loadAndExecuteScript:()=>Zg,loadCubeMap:()=>tG,loadImageFromTypedArray:()=>Vx,loadKTX2:()=>rl,mergeSort:()=>F0,moveTechniqueRenderStates:()=>AE,moveTechniquesToExtension:()=>NE,numberOfComponentsForType:()=>nd,objectToQuery:()=>Gg,oneTimeWarning:()=>It,parseBatchTable:()=>Fp,parseFeatureMetadataLegacy:()=>rX,parseGlb:()=>FE,parseResponseHeaders:()=>cL,parseStructuralMetadata:()=>oX,pointInsideTriangle:()=>Oj,preprocess3DTileContent:()=>tf,processVoxelProperties:()=>zw,queryToObject:()=>Bl,readAccessorPacked:()=>DE,removeExtension:()=>Gx,removeExtensionsRequired:()=>vE,removeExtensionsUsed:()=>Rx,removePipelineExtras:()=>wE,removeUnusedElements:()=>UE,resizeImageToNextPowerOfTwo:()=>Wb,sampleTerrain:()=>q2,sampleTerrainMostDetailed:()=>S0,scaleToGeodeticSurface:()=>Tg,subdivideArray:()=>NG,subscribeAndEvaluate:()=>aa,updateAccessorComponentTypes:()=>BE,updateVersion:()=>YE,usesExtension:()=>tr,viewerCesium3DTilesInspectorMixin:()=>y8,viewerCesiumInspectorMixin:()=>g8,viewerDragDropMixin:()=>_8,viewerPerformanceWatchdogMixin:()=>T8,viewerVoxelInspectorMixin:()=>S8,webGLConstantToGlslType:()=>Kj,wrapFunction:()=>r9,writeTextToCanvas:()=>Hx});var xyo=T(S(),1);var eJi=T(S(),1);var Gxt=T(S(),1);var qgt=T(S(),1);var Ugt=T(S(),1);var Pgt=T(S(),1);function X_e(e){return e!=null}var d=X_e;var wgt=T(S(),1);function xg(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}d(Object.create)&&(xg.prototype=Object.create(Error.prototype),xg.prototype.constructor=xg);xg.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return d(this.stack)&&(e+=` +${this.stack.toString()}`),e};xg.throwInstantiationError=function(){throw new xg("This function defines an interface and should not be called directly.")};var fe=xg;var is={};is.typeOf={};function I_e(e){return`${e} is required, actual value was undefined`}function HT(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}is.defined=function(e,t){if(!d(t))throw new fe(I_e(e))};is.typeOf.func=function(e,t){if(typeof t!="function")throw new fe(HT(typeof t,"function",e))};is.typeOf.string=function(e,t){if(typeof t!="string")throw new fe(HT(typeof t,"string",e))};is.typeOf.number=function(e,t){if(typeof t!="number")throw new fe(HT(typeof t,"number",e))};is.typeOf.number.lessThan=function(e,t,n){if(is.typeOf.number(e,t),t>=n)throw new fe(`Expected ${e} to be less than ${n}, actual value was ${t}`)};is.typeOf.number.lessThanOrEquals=function(e,t,n){if(is.typeOf.number(e,t),t>n)throw new fe(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};is.typeOf.number.greaterThan=function(e,t,n){if(is.typeOf.number(e,t),t<=n)throw new fe(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};is.typeOf.number.greaterThanOrEquals=function(e,t,n){if(is.typeOf.number(e,t),t0?1:-1});at.signNotZero=function(e){return e<0?-1:1};at.toSNorm=function(e,t){return t=g(t,255),Math.round((at.clamp(e,-1,1)*.5+.5)*t)};at.fromSNorm=function(e,t){return t=g(t,255),at.clamp(e,0,t)/t*2-1};at.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:at.clamp((e-t)/n,0,1)};at.sinh=g(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});at.cosh=g(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});at.lerp=function(e,t,n){return(1-n)*e+n*t};at.PI=Math.PI;at.ONE_OVER_PI=1/Math.PI;at.PI_OVER_TWO=Math.PI/2;at.PI_OVER_THREE=Math.PI/3;at.PI_OVER_FOUR=Math.PI/4;at.PI_OVER_SIX=Math.PI/6;at.THREE_PI_OVER_TWO=3*Math.PI/2;at.TWO_PI=2*Math.PI;at.ONE_OVER_TWO_PI=1/(2*Math.PI);at.RADIANS_PER_DEGREE=Math.PI/180;at.DEGREES_PER_RADIAN=180/Math.PI;at.RADIANS_PER_ARCSECOND=at.RADIANS_PER_DEGREE/3600;at.toRadians=function(e){return e*at.RADIANS_PER_DEGREE};at.toDegrees=function(e){return e*at.DEGREES_PER_RADIAN};at.convertLongitudeRange=function(e){let t=at.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};at.clampToLatitudeRange=function(e){return at.clamp(e,-1*at.PI_OVER_TWO,at.PI_OVER_TWO)};at.negativePiToPi=function(e){return e>=-at.PI&&e<=at.PI?e:at.zeroToTwoPi(e+at.PI)-at.PI};at.zeroToTwoPi=function(e){if(e>=0&&e<=at.TWO_PI)return e;let t=at.mod(e,at.TWO_PI);return Math.abs(t)at.EPSILON14?at.TWO_PI:t};at.mod=function(e,t){return at.sign(e)===at.sign(t)&&Math.abs(e)n};at.greaterThanOrEquals=function(e,t,n){return e-t>-n};var rA=[1];at.factorial=function(e){let t=rA.length;if(e>=t){let n=rA[t-1];for(let i=t;i<=e;i++){let o=n*i;rA.push(o),n=o}}return rA[e]};at.incrementWrap=function(e,t,n){return n=g(n,0),++e,e>t&&(e=n),e};at.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};at.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};at.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};at.clamp=function(e,t,n){return en?n:e};var Y8=new HD.default;at.setRandomNumberSeed=function(e){Y8=new HD.default(e)};at.nextRandomNumber=function(){return Y8.random()};at.randomBetween=function(e,t){return at.nextRandomNumber()*(t-e)+e};at.acosClamped=function(e){return Math.acos(at.clamp(e,-1,1))};at.asinClamped=function(e){return Math.asin(at.clamp(e,-1,1))};at.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};at.logBase=function(e,t){return Math.log(e)/Math.log(t)};at.cbrt=g(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});at.log2=g(Math.log2,function(t){return Math.log(t)*Math.LOG2E});at.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};at.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};at.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=at.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?at.PI_OVER_TWO-i:i,i=e<0?at.PI-i:i,i=t<0?-i:i,i};var W=at;function et(e,t,n){this.x=g(e,0),this.y=g(t,0),this.z=g(n,0)}et.fromSpherical=function(e,t){d(t)||(t=new et);let n=e.clock,i=e.cone,o=g(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};et.fromElements=function(e,t,n,i){return d(i)?(i.x=e,i.y=t,i.z=n,i):new et(e,t,n)};et.clone=function(e,t){if(d(e))return d(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new et(e.x,e.y,e.z)};et.fromCartesian4=et.clone;et.packedLength=3;et.pack=function(e,t,n){return n=g(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};et.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new et),n.x=e[t++],n.y=e[t++],n.z=e[t],n};et.packArray=function(e,t){let n=e.length,i=n*3;d(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;oi&&(o=l,i=u)}let r=1,s=0,a=jD[o],c=qD[o];if(Math.abs(e[tt.getElementIndex(c,a)])>n){let l=e[tt.getElementIndex(c,c)],u=e[tt.getElementIndex(a,a)],m=e[tt.getElementIndex(c,a)],p=(l-u)/2/m,y;p<0?y=-1/(-p+Math.sqrt(1+p*p)):y=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+y*y),s=y*r}return t=tt.clone(tt.IDENTITY,t),t[tt.getElementIndex(a,a)]=t[tt.getElementIndex(c,c)]=r,t[tt.getElementIndex(c,a)]=s,t[tt.getElementIndex(a,c)]=-s,t}var lA=new tt,J8=new tt;tt.computeEigenDecomposition=function(e,t){let n=W.EPSILON20,i=10,o=0,r=0;d(t)||(t={});let s=t.unitary=tt.clone(tt.IDENTITY,t.unitary),a=t.diagonal=tt.clone(e,t.diagonal),c=n*k_e(a);for(;rc;)B_e(a,lA),tt.transpose(lA,J8),tt.multiply(a,lA,a),tt.multiply(J8,a,a),tt.multiply(s,lA,s),++o>2&&(++r,o=0);return t};tt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};tt.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],l=e[8];return t*(r*l-c*s)+o*(c*i-n*l)+a*(n*s-r*i)};tt.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],l=e[7],u=e[8],m=tt.determinant(e);t[0]=s*u-l*a,t[1]=l*o-i*u,t[2]=i*a-s*o,t[3]=c*a-r*u,t[4]=n*u-c*o,t[5]=r*o-n*a,t[6]=r*l-c*s,t[7]=c*i-n*l,t[8]=n*s-r*i;let p=1/m;return tt.multiplyByScalar(t,p,t)};var Y_e=new tt;tt.inverseTranspose=function(e,t){return tt.inverse(tt.transpose(e,Y_e),t)};tt.equals=function(e,t){return e===t||d(e)&&d(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};tt.equalsEpsilon=function(e,t,n){return n=g(n,0),e===t||d(e)&&d(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};tt.IDENTITY=Object.freeze(new tt(1,0,0,0,1,0,0,0,1));tt.ZERO=Object.freeze(new tt(0,0,0,0,0,0,0,0,0));tt.COLUMN0ROW0=0;tt.COLUMN0ROW1=1;tt.COLUMN0ROW2=2;tt.COLUMN1ROW0=3;tt.COLUMN1ROW1=4;tt.COLUMN1ROW2=5;tt.COLUMN2ROW0=6;tt.COLUMN2ROW1=7;tt.COLUMN2ROW2=8;Object.defineProperties(tt.prototype,{length:{get:function(){return tt.packedLength}}});tt.prototype.clone=function(e){return tt.clone(this,e)};tt.prototype.equals=function(e){return tt.equals(this,e)};tt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};tt.prototype.equalsEpsilon=function(e,t){return tt.equalsEpsilon(this,e,t)};tt.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var $=tt;var mxt=T(S(),1);function JV(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}d(Object.create)&&(JV.prototype=Object.create(Error.prototype),JV.prototype.constructor=JV);JV.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return d(this.stack)&&(e+=` +${this.stack.toString()}`),e};var me=JV;function $e(e,t,n,i,o,r,s,a,c,l,u,m,p,y,f,x){this[0]=g(e,0),this[1]=g(o,0),this[2]=g(c,0),this[3]=g(p,0),this[4]=g(t,0),this[5]=g(r,0),this[6]=g(l,0),this[7]=g(y,0),this[8]=g(n,0),this[9]=g(s,0),this[10]=g(u,0),this[11]=g(f,0),this[12]=g(i,0),this[13]=g(a,0),this[14]=g(m,0),this[15]=g(x,0)}$e.packedLength=16;$e.pack=function(e,t,n){return n=g(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};$e.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new $e),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};$e.packArray=function(e,t){let n=e.length,i=n*16;d(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o=W.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};gs.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=W.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};gs.fromTypedArray=function(e){if(e instanceof Uint8Array)return gs.UNSIGNED_BYTE;if(e instanceof Uint16Array)return gs.UNSIGNED_SHORT;if(e instanceof Uint32Array)return gs.UNSIGNED_INT};var Ue=Object.freeze(gs);var kxt=T(S(),1);var dA={STREAM_DRAW:ne.STREAM_DRAW,STATIC_DRAW:ne.STATIC_DRAW,DYNAMIC_DRAW:ne.DYNAMIC_DRAW,validate:function(e){return e===dA.STREAM_DRAW||e===dA.STATIC_DRAW||e===dA.DYNAMIC_DRAW}},Ne=Object.freeze(dA);function Yd(e){e=g(e,g.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=d(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=Yn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}Yd.createVertexBuffer=function(e){return new Yd({context:e.context,bufferTarget:ne.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};Yd.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ue.getSizeInBytes(n),o=new Yd({context:t,bufferTarget:ne.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(Yd.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});Yd.prototype._getBuffer=function(){return this._buffer};Yd.prototype.copyFromArrayView=function(e,t){t=g(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};Yd.prototype.copyFromBuffer=function(e,t,n,i){let o=ne.COPY_READ_BUFFER,r=ne.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};Yd.prototype.getBufferData=function(e,t,n,i){t=g(t,0),n=g(n,0);let o=this._gl,r=ne.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};Yd.prototype.isDestroyed=function(){return!1};Yd.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var mt=Yd;var h_t=T(S(),1);var l_t=T(S(),1);var i_t=T(S(),1);var qxt=T(S(),1);var j0,pr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},nl={};Object.defineProperties(nl,{element:{get:function(){if(nl.supportsFullscreen())return document[pr.fullscreenElement]}},changeEventName:{get:function(){if(nl.supportsFullscreen())return pr.fullscreenchange}},errorEventName:{get:function(){if(nl.supportsFullscreen())return pr.fullscreenerror}},enabled:{get:function(){if(nl.supportsFullscreen())return document[pr.fullscreenEnabled]}},fullscreen:{get:function(){if(nl.supportsFullscreen())return nl.element!==null}}});nl.supportsFullscreen=function(){if(d(j0))return j0;j0=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return pr.requestFullscreen="requestFullscreen",pr.exitFullscreen="exitFullscreen",pr.fullscreenEnabled="fullscreenEnabled",pr.fullscreenElement="fullscreenElement",pr.fullscreenchange="fullscreenchange",pr.fullscreenerror="fullscreenerror",j0=!0,j0;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i{let t=new Image;t.onload=function(){gc._result=t.width>0&&t.height>0,e(gc._result)},t.onerror=function(){gc._result=!1,e(gc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),gc._promise};Object.defineProperties(gc,{initialized:{get:function(){return d(gc._result)}}});var jT=[];typeof ArrayBuffer<"u"&&(jT.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&jT.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&jT.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&jT.push(BigInt64Array),typeof BigUint64Array<"u"&&jT.push(BigUint64Array));var Od={isChrome:rB,chromeVersion:sTe,isSafari:$8,safariVersion:aTe,isWebkit:e7,webkitVersion:cTe,isInternetExplorer:t7,internetExplorerVersion:lTe,isEdge:yA,edgeVersion:dTe,isFirefox:gA,firefoxVersion:hTe,isWindows:uTe,isIPadOrIOS:mTe,hardwareConcurrency:g(Wa.hardwareConcurrency,3),supportsPointerEvents:fTe,supportsImageRenderingPixelated:o7,supportsWebP:gc,imageRenderingValue:pTe,typedArrayTypes:jT};Od.supportsBasis=function(e){return Od.supportsWebAssembly()&&e.context.supportsBasis};Od.supportsFullscreen=function(){return lr.supportsFullscreen()};Od.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};Od.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};Od.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};Od.supportsBigInt=function(){return typeof BigInt<"u"};Od.supportsWebWorkers=function(){return typeof Worker<"u"};Od.supportsWebAssembly=function(){return typeof WebAssembly<"u"};Od.supportsWebgl2=function(e){return e.context.webgl2};Od.supportsEsmWebWorkers=function(){return!gA()||parseInt(sB)>=114};var Mt=Od;function aB(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function oe(e,t,n,i){this.red=g(e,1),this.green=g(t,1),this.blue=g(n,1),this.alpha=g(i,1)}oe.fromCartesian4=function(e,t){return d(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new oe(e.x,e.y,e.z,e.w)};oe.fromBytes=function(e,t,n,i,o){return e=oe.byteToFloat(g(e,255)),t=oe.byteToFloat(g(t,255)),n=oe.byteToFloat(g(n,255)),i=oe.byteToFloat(g(i,255)),d(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new oe(e,t,n,i)};oe.fromAlpha=function(e,t,n){return d(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new oe(e.red,e.green,e.blue,t)};var cB,lB,Of;Mt.supportsTypedArrays()&&(cB=new ArrayBuffer(4),lB=new Uint32Array(cB),Of=new Uint8Array(cB));oe.fromRgba=function(e,t){return lB[0]=e,oe.fromBytes(Of[0],Of[1],Of[2],Of[3],t)};oe.fromHsl=function(e,t,n,i,o){e=g(e,0)%1,t=g(t,0),n=g(n,0),i=g(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let l=2*n-c;r=aB(l,c,e+1/3),s=aB(l,c,e),a=aB(l,c,e-1/3)}return d(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new oe(r,s,a,i)};oe.fromRandom=function(e,t){e=g(e,g.EMPTY_OBJECT);let n=e.red;if(!d(n)){let s=g(e.minimumRed,0),a=g(e.maximumRed,1);n=s+W.nextRandomNumber()*(a-s)}let i=e.green;if(!d(i)){let s=g(e.minimumGreen,0),a=g(e.maximumGreen,1);i=s+W.nextRandomNumber()*(a-s)}let o=e.blue;if(!d(o)){let s=g(e.minimumBlue,0),a=g(e.maximumBlue,1);o=s+W.nextRandomNumber()*(a-s)}let r=e.alpha;if(!d(r)){let s=g(e.minimumAlpha,0),a=g(e.maximumAlpha,1);r=s+W.nextRandomNumber()*(a-s)}return d(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new oe(n,i,o,r)};var bTe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,yTe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,gTe=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,xTe=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;oe.fromCssColorString=function(e,t){d(t)||(t=new oe),e=e.trim();let n=oe[e.toUpperCase()];if(d(n))return oe.clone(n,t),t;let i=bTe.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(g(i[4],"f"),16)/15,t):(i=yTe.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(g(i[4],"ff"),16)/255,t):(i=gTe.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(g(i[4],"1.0")),t):(i=xTe.exec(e),i!==null?oe.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(g(i[4],"1.0")),t):(t=void 0,t))))};oe.packedLength=4;oe.pack=function(e,t,n){return n=g(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};oe.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new oe),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};oe.byteToFloat=function(e){return e/255};oe.floatToByte=function(e){return e===1?255:e*256|0};oe.clone=function(e,t){if(d(e))return d(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new oe(e.red,e.green,e.blue,e.alpha)};oe.equals=function(e,t){return e===t||d(e)&&d(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};oe.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};oe.prototype.clone=function(e){return oe.clone(this,e)};oe.prototype.equals=function(e){return oe.equals(this,e)};oe.prototype.equalsEpsilon=function(e,t){return this===e||d(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};oe.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};oe.prototype.toCssColorString=function(){let e=oe.floatToByte(this.red),t=oe.floatToByte(this.green),n=oe.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};oe.prototype.toCssHexString=function(){let e=oe.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=oe.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=oe.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=oe.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};oe.prototype.toBytes=function(e){let t=oe.floatToByte(this.red),n=oe.floatToByte(this.green),i=oe.floatToByte(this.blue),o=oe.floatToByte(this.alpha);return d(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};oe.prototype.toRgba=function(){return Of[0]=oe.floatToByte(this.red),Of[1]=oe.floatToByte(this.green),Of[2]=oe.floatToByte(this.blue),Of[3]=oe.floatToByte(this.alpha),lB[0]};oe.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};oe.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};oe.prototype.withAlpha=function(e,t){return oe.fromAlpha(this,e,t)};oe.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};oe.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};oe.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};oe.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};oe.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};oe.lerp=function(e,t,n,i){return i.red=W.lerp(e.red,t.red,n),i.green=W.lerp(e.green,t.green,n),i.blue=W.lerp(e.blue,t.blue,n),i.alpha=W.lerp(e.alpha,t.alpha,n),i};oe.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};oe.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};oe.ALICEBLUE=Object.freeze(oe.fromCssColorString("#F0F8FF"));oe.ANTIQUEWHITE=Object.freeze(oe.fromCssColorString("#FAEBD7"));oe.AQUA=Object.freeze(oe.fromCssColorString("#00FFFF"));oe.AQUAMARINE=Object.freeze(oe.fromCssColorString("#7FFFD4"));oe.AZURE=Object.freeze(oe.fromCssColorString("#F0FFFF"));oe.BEIGE=Object.freeze(oe.fromCssColorString("#F5F5DC"));oe.BISQUE=Object.freeze(oe.fromCssColorString("#FFE4C4"));oe.BLACK=Object.freeze(oe.fromCssColorString("#000000"));oe.BLANCHEDALMOND=Object.freeze(oe.fromCssColorString("#FFEBCD"));oe.BLUE=Object.freeze(oe.fromCssColorString("#0000FF"));oe.BLUEVIOLET=Object.freeze(oe.fromCssColorString("#8A2BE2"));oe.BROWN=Object.freeze(oe.fromCssColorString("#A52A2A"));oe.BURLYWOOD=Object.freeze(oe.fromCssColorString("#DEB887"));oe.CADETBLUE=Object.freeze(oe.fromCssColorString("#5F9EA0"));oe.CHARTREUSE=Object.freeze(oe.fromCssColorString("#7FFF00"));oe.CHOCOLATE=Object.freeze(oe.fromCssColorString("#D2691E"));oe.CORAL=Object.freeze(oe.fromCssColorString("#FF7F50"));oe.CORNFLOWERBLUE=Object.freeze(oe.fromCssColorString("#6495ED"));oe.CORNSILK=Object.freeze(oe.fromCssColorString("#FFF8DC"));oe.CRIMSON=Object.freeze(oe.fromCssColorString("#DC143C"));oe.CYAN=Object.freeze(oe.fromCssColorString("#00FFFF"));oe.DARKBLUE=Object.freeze(oe.fromCssColorString("#00008B"));oe.DARKCYAN=Object.freeze(oe.fromCssColorString("#008B8B"));oe.DARKGOLDENROD=Object.freeze(oe.fromCssColorString("#B8860B"));oe.DARKGRAY=Object.freeze(oe.fromCssColorString("#A9A9A9"));oe.DARKGREEN=Object.freeze(oe.fromCssColorString("#006400"));oe.DARKGREY=oe.DARKGRAY;oe.DARKKHAKI=Object.freeze(oe.fromCssColorString("#BDB76B"));oe.DARKMAGENTA=Object.freeze(oe.fromCssColorString("#8B008B"));oe.DARKOLIVEGREEN=Object.freeze(oe.fromCssColorString("#556B2F"));oe.DARKORANGE=Object.freeze(oe.fromCssColorString("#FF8C00"));oe.DARKORCHID=Object.freeze(oe.fromCssColorString("#9932CC"));oe.DARKRED=Object.freeze(oe.fromCssColorString("#8B0000"));oe.DARKSALMON=Object.freeze(oe.fromCssColorString("#E9967A"));oe.DARKSEAGREEN=Object.freeze(oe.fromCssColorString("#8FBC8F"));oe.DARKSLATEBLUE=Object.freeze(oe.fromCssColorString("#483D8B"));oe.DARKSLATEGRAY=Object.freeze(oe.fromCssColorString("#2F4F4F"));oe.DARKSLATEGREY=oe.DARKSLATEGRAY;oe.DARKTURQUOISE=Object.freeze(oe.fromCssColorString("#00CED1"));oe.DARKVIOLET=Object.freeze(oe.fromCssColorString("#9400D3"));oe.DEEPPINK=Object.freeze(oe.fromCssColorString("#FF1493"));oe.DEEPSKYBLUE=Object.freeze(oe.fromCssColorString("#00BFFF"));oe.DIMGRAY=Object.freeze(oe.fromCssColorString("#696969"));oe.DIMGREY=oe.DIMGRAY;oe.DODGERBLUE=Object.freeze(oe.fromCssColorString("#1E90FF"));oe.FIREBRICK=Object.freeze(oe.fromCssColorString("#B22222"));oe.FLORALWHITE=Object.freeze(oe.fromCssColorString("#FFFAF0"));oe.FORESTGREEN=Object.freeze(oe.fromCssColorString("#228B22"));oe.FUCHSIA=Object.freeze(oe.fromCssColorString("#FF00FF"));oe.GAINSBORO=Object.freeze(oe.fromCssColorString("#DCDCDC"));oe.GHOSTWHITE=Object.freeze(oe.fromCssColorString("#F8F8FF"));oe.GOLD=Object.freeze(oe.fromCssColorString("#FFD700"));oe.GOLDENROD=Object.freeze(oe.fromCssColorString("#DAA520"));oe.GRAY=Object.freeze(oe.fromCssColorString("#808080"));oe.GREEN=Object.freeze(oe.fromCssColorString("#008000"));oe.GREENYELLOW=Object.freeze(oe.fromCssColorString("#ADFF2F"));oe.GREY=oe.GRAY;oe.HONEYDEW=Object.freeze(oe.fromCssColorString("#F0FFF0"));oe.HOTPINK=Object.freeze(oe.fromCssColorString("#FF69B4"));oe.INDIANRED=Object.freeze(oe.fromCssColorString("#CD5C5C"));oe.INDIGO=Object.freeze(oe.fromCssColorString("#4B0082"));oe.IVORY=Object.freeze(oe.fromCssColorString("#FFFFF0"));oe.KHAKI=Object.freeze(oe.fromCssColorString("#F0E68C"));oe.LAVENDER=Object.freeze(oe.fromCssColorString("#E6E6FA"));oe.LAVENDAR_BLUSH=Object.freeze(oe.fromCssColorString("#FFF0F5"));oe.LAWNGREEN=Object.freeze(oe.fromCssColorString("#7CFC00"));oe.LEMONCHIFFON=Object.freeze(oe.fromCssColorString("#FFFACD"));oe.LIGHTBLUE=Object.freeze(oe.fromCssColorString("#ADD8E6"));oe.LIGHTCORAL=Object.freeze(oe.fromCssColorString("#F08080"));oe.LIGHTCYAN=Object.freeze(oe.fromCssColorString("#E0FFFF"));oe.LIGHTGOLDENRODYELLOW=Object.freeze(oe.fromCssColorString("#FAFAD2"));oe.LIGHTGRAY=Object.freeze(oe.fromCssColorString("#D3D3D3"));oe.LIGHTGREEN=Object.freeze(oe.fromCssColorString("#90EE90"));oe.LIGHTGREY=oe.LIGHTGRAY;oe.LIGHTPINK=Object.freeze(oe.fromCssColorString("#FFB6C1"));oe.LIGHTSEAGREEN=Object.freeze(oe.fromCssColorString("#20B2AA"));oe.LIGHTSKYBLUE=Object.freeze(oe.fromCssColorString("#87CEFA"));oe.LIGHTSLATEGRAY=Object.freeze(oe.fromCssColorString("#778899"));oe.LIGHTSLATEGREY=oe.LIGHTSLATEGRAY;oe.LIGHTSTEELBLUE=Object.freeze(oe.fromCssColorString("#B0C4DE"));oe.LIGHTYELLOW=Object.freeze(oe.fromCssColorString("#FFFFE0"));oe.LIME=Object.freeze(oe.fromCssColorString("#00FF00"));oe.LIMEGREEN=Object.freeze(oe.fromCssColorString("#32CD32"));oe.LINEN=Object.freeze(oe.fromCssColorString("#FAF0E6"));oe.MAGENTA=Object.freeze(oe.fromCssColorString("#FF00FF"));oe.MAROON=Object.freeze(oe.fromCssColorString("#800000"));oe.MEDIUMAQUAMARINE=Object.freeze(oe.fromCssColorString("#66CDAA"));oe.MEDIUMBLUE=Object.freeze(oe.fromCssColorString("#0000CD"));oe.MEDIUMORCHID=Object.freeze(oe.fromCssColorString("#BA55D3"));oe.MEDIUMPURPLE=Object.freeze(oe.fromCssColorString("#9370DB"));oe.MEDIUMSEAGREEN=Object.freeze(oe.fromCssColorString("#3CB371"));oe.MEDIUMSLATEBLUE=Object.freeze(oe.fromCssColorString("#7B68EE"));oe.MEDIUMSPRINGGREEN=Object.freeze(oe.fromCssColorString("#00FA9A"));oe.MEDIUMTURQUOISE=Object.freeze(oe.fromCssColorString("#48D1CC"));oe.MEDIUMVIOLETRED=Object.freeze(oe.fromCssColorString("#C71585"));oe.MIDNIGHTBLUE=Object.freeze(oe.fromCssColorString("#191970"));oe.MINTCREAM=Object.freeze(oe.fromCssColorString("#F5FFFA"));oe.MISTYROSE=Object.freeze(oe.fromCssColorString("#FFE4E1"));oe.MOCCASIN=Object.freeze(oe.fromCssColorString("#FFE4B5"));oe.NAVAJOWHITE=Object.freeze(oe.fromCssColorString("#FFDEAD"));oe.NAVY=Object.freeze(oe.fromCssColorString("#000080"));oe.OLDLACE=Object.freeze(oe.fromCssColorString("#FDF5E6"));oe.OLIVE=Object.freeze(oe.fromCssColorString("#808000"));oe.OLIVEDRAB=Object.freeze(oe.fromCssColorString("#6B8E23"));oe.ORANGE=Object.freeze(oe.fromCssColorString("#FFA500"));oe.ORANGERED=Object.freeze(oe.fromCssColorString("#FF4500"));oe.ORCHID=Object.freeze(oe.fromCssColorString("#DA70D6"));oe.PALEGOLDENROD=Object.freeze(oe.fromCssColorString("#EEE8AA"));oe.PALEGREEN=Object.freeze(oe.fromCssColorString("#98FB98"));oe.PALETURQUOISE=Object.freeze(oe.fromCssColorString("#AFEEEE"));oe.PALEVIOLETRED=Object.freeze(oe.fromCssColorString("#DB7093"));oe.PAPAYAWHIP=Object.freeze(oe.fromCssColorString("#FFEFD5"));oe.PEACHPUFF=Object.freeze(oe.fromCssColorString("#FFDAB9"));oe.PERU=Object.freeze(oe.fromCssColorString("#CD853F"));oe.PINK=Object.freeze(oe.fromCssColorString("#FFC0CB"));oe.PLUM=Object.freeze(oe.fromCssColorString("#DDA0DD"));oe.POWDERBLUE=Object.freeze(oe.fromCssColorString("#B0E0E6"));oe.PURPLE=Object.freeze(oe.fromCssColorString("#800080"));oe.RED=Object.freeze(oe.fromCssColorString("#FF0000"));oe.ROSYBROWN=Object.freeze(oe.fromCssColorString("#BC8F8F"));oe.ROYALBLUE=Object.freeze(oe.fromCssColorString("#4169E1"));oe.SADDLEBROWN=Object.freeze(oe.fromCssColorString("#8B4513"));oe.SALMON=Object.freeze(oe.fromCssColorString("#FA8072"));oe.SANDYBROWN=Object.freeze(oe.fromCssColorString("#F4A460"));oe.SEAGREEN=Object.freeze(oe.fromCssColorString("#2E8B57"));oe.SEASHELL=Object.freeze(oe.fromCssColorString("#FFF5EE"));oe.SIENNA=Object.freeze(oe.fromCssColorString("#A0522D"));oe.SILVER=Object.freeze(oe.fromCssColorString("#C0C0C0"));oe.SKYBLUE=Object.freeze(oe.fromCssColorString("#87CEEB"));oe.SLATEBLUE=Object.freeze(oe.fromCssColorString("#6A5ACD"));oe.SLATEGRAY=Object.freeze(oe.fromCssColorString("#708090"));oe.SLATEGREY=oe.SLATEGRAY;oe.SNOW=Object.freeze(oe.fromCssColorString("#FFFAFA"));oe.SPRINGGREEN=Object.freeze(oe.fromCssColorString("#00FF7F"));oe.STEELBLUE=Object.freeze(oe.fromCssColorString("#4682B4"));oe.TAN=Object.freeze(oe.fromCssColorString("#D2B48C"));oe.TEAL=Object.freeze(oe.fromCssColorString("#008080"));oe.THISTLE=Object.freeze(oe.fromCssColorString("#D8BFD8"));oe.TOMATO=Object.freeze(oe.fromCssColorString("#FF6347"));oe.TURQUOISE=Object.freeze(oe.fromCssColorString("#40E0D0"));oe.VIOLET=Object.freeze(oe.fromCssColorString("#EE82EE"));oe.WHEAT=Object.freeze(oe.fromCssColorString("#F5DEB3"));oe.WHITE=Object.freeze(oe.fromCssColorString("#FFFFFF"));oe.WHITESMOKE=Object.freeze(oe.fromCssColorString("#F5F5F5"));oe.YELLOW=Object.freeze(oe.fromCssColorString("#FFFF00"));oe.YELLOWGREEN=Object.freeze(oe.fromCssColorString("#9ACD32"));oe.TRANSPARENT=Object.freeze(new oe(0,0,0,0));var B=oe;function xA(e){e=g(e,g.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}xA.ALL=Object.freeze(new xA({color:new B(0,0,0,0),depth:1,stencil:0}));xA.prototype.execute=function(e,t){e.clear(this,t)};var ti=xA;var x_t=T(S(),1);var p_t=T(S(),1),_Te={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},Re=Object.freeze(_Te);function r7(e){e=g(e,g.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=g(e.persists,!1),this.pass=Re.COMPUTE,this.owner=e.owner}r7.prototype.execute=function(e){e.execute(this)};var Kd=r7;var JSt=T(S(),1);var pTt=T(S(),1);var V_t=T(S(),1);function Xt(e,t){this.x=g(e,0),this.y=g(t,0)}Xt.fromElements=function(e,t,n){return d(n)?(n.x=e,n.y=t,n):new Xt(e,t)};Xt.clone=function(e,t){if(d(e))return d(t)?(t.x=e.x,t.y=e.y,t):new Xt(e.x,e.y)};Xt.fromCartesian3=Xt.clone;Xt.fromCartesian4=Xt.clone;Xt.packedLength=2;Xt.pack=function(e,t,n){return n=g(n,0),t[n++]=e.x,t[n]=e.y,t};Xt.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new Xt),n.x=e[t++],n.y=e[t],n};Xt.packArray=function(e,t){let n=e.length,i=n*2;d(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;oW.EPSILON12);return d(o)?(o.x=r*A,o.y=s*M,o.z=a*b,o):new h(r*A,s*M,a*b)}var Tg=VTe;function Kr(e,t,n){this.longitude=g(e,0),this.latitude=g(t,0),this.height=g(n,0)}Kr.fromRadians=function(e,t,n,i){return n=g(n,0),d(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Kr(e,t,n)};Kr.fromDegrees=function(e,t,n,i){return e=W.toRadians(e),t=W.toRadians(t),Kr.fromRadians(e,t,n,i)};var LTe=new h,RTe=new h,ZTe=new h,GTe=new h(1/6378137,1/6378137,1/6356752314245179e-9),ETe=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),XTe=W.EPSILON1;Kr.fromCartesian=function(e,t,n){let i=d(t)?t.oneOverRadii:GTe,o=d(t)?t.oneOverRadiiSquared:ETe,r=d(t)?t._centerToleranceSquared:XTe,s=Tg(e,i,o,r,RTe);if(!d(s))return;let a=h.multiplyComponents(s,o,LTe);a=h.normalize(a,a);let c=h.subtract(e,s,ZTe),l=Math.atan2(a.y,a.x),u=Math.asin(a.z),m=W.sign(h.dot(c,e))*h.magnitude(c);return d(n)?(n.longitude=l,n.latitude=u,n.height=m,n):new Kr(l,u,m)};Kr.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Kr.clone=function(e,t){if(d(e))return d(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Kr(e.longitude,e.latitude,e.height)};Kr.equals=function(e,t){return e===t||d(e)&&d(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Kr.equalsEpsilon=function(e,t,n){return n=g(n,0),e===t||d(e)&&d(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Kr.ZERO=Object.freeze(new Kr(0,0,0));Kr.prototype.clone=function(e){return Kr.clone(this,e)};Kr.prototype.equals=function(e){return Kr.equals(this,e)};Kr.prototype.equalsEpsilon=function(e,t){return Kr.equalsEpsilon(this,e,t)};Kr.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var he=Kr;var j_t=T(S(),1);var Y_t=T(S(),1);function d7(e,t,n,i){t=g(t,0),n=g(n,0),i=g(i,0),e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=W.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function qi(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,d7(this,e,t,n)}Object.defineProperties(qi.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});qi.clone=function(e,t){if(!d(e))return;let n=e._radii;return d(t)?(h.clone(n,t._radii),h.clone(e._radiiSquared,t._radiiSquared),h.clone(e._radiiToTheFourth,t._radiiToTheFourth),h.clone(e._oneOverRadii,t._oneOverRadii),h.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new qi(n.x,n.y,n.z)};qi.fromCartesian3=function(e,t){return d(t)||(t=new qi),d(e)&&d7(t,e.x,e.y,e.z),t};qi.WGS84=Object.freeze(new qi(6378137,6378137,6356752314245179e-9));qi.UNIT_SPHERE=Object.freeze(new qi(1,1,1));qi.MOON=Object.freeze(new qi(W.LUNAR_RADIUS,W.LUNAR_RADIUS,W.LUNAR_RADIUS));qi.prototype.clone=function(e){return qi.clone(this,e)};qi.packedLength=h.packedLength;qi.pack=function(e,t,n){return n=g(n,0),h.pack(e._radii,t,n),t};qi.unpack=function(e,t,n){t=g(t,0);let i=h.unpack(e,t);return qi.fromCartesian3(i,n)};qi.prototype.geocentricSurfaceNormal=h.normalize;qi.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return d(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};qi.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,W.EPSILON14))return d(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var ITe=new h,WTe=new h;qi.prototype.cartographicToCartesian=function(e,t){let n=ITe,i=WTe;this.geodeticSurfaceNormalCartographic(e,n),h.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(h.dot(n,i));return h.divideByScalar(i,o,i),h.multiplyByScalar(n,e.height,n),d(t)||(t=new h),h.add(i,n,t)};qi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;d(t)?t.length=n:t=new Array(n);for(let i=0;i=this._radii.z-t))return n};var wTe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],ATe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function l7(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*wTe[s];r+=ATe[s]*(n(i+a)+n(i-a))}return r*=o,r}qi.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n=0?u.longitude:u.longitude+W.TWO_PI;o=Math.min(o,m),r=Math.max(r,m)}return i-n>r-o&&(n=o,i=r,i>W.PI&&(i=i-W.TWO_PI),n>W.PI&&(n=n-W.TWO_PI)),d(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new Nn(n,s,i,a)};Nn.fromCartesianArray=function(e,t,n){t=g(t,re.WGS84);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let l=0,u=e.length;l=0?m.longitude:m.longitude+W.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>W.PI&&(o=o-W.TWO_PI),i>W.PI&&(i=i-W.TWO_PI)),d(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new Nn(i,a,o,c)};Nn.clone=function(e,t){if(d(e))return d(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new Nn(e.west,e.south,e.east,e.north)};Nn.equalsEpsilon=function(e,t,n){return n=g(n,0),e===t||d(e)&&d(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};Nn.prototype.clone=function(e){return Nn.clone(this,e)};Nn.prototype.equals=function(e){return Nn.equals(this,e)};Nn.equals=function(e,t){return e===t||d(e)&&d(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};Nn.prototype.equalsEpsilon=function(e,t){return Nn.equalsEpsilon(this,e,t)};Nn.validate=function(e){};Nn.southwest=function(e,t){return d(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new he(e.west,e.south)};Nn.northwest=function(e,t){return d(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new he(e.west,e.north)};Nn.northeast=function(e,t){return d(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new he(e.east,e.north)};Nn.southeast=function(e,t){return d(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new he(e.east,e.south)};Nn.center=function(e,t){let n=e.east,i=e.west;n0?i+=W.TWO_PI:r0&&(r+=W.TWO_PI),i=u))return d(n)?(n.west=a,n.south=l,n.east=c,n.north=u,n):new Nn(a,l,c,u)};Nn.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return d(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new Nn(i,o,r,s)};Nn.union=function(e,t,n){d(n)||(n=new Nn);let i=e.east,o=e.west,r=t.east,s=t.west;i0?i+=W.TWO_PI:r0&&(r+=W.TWO_PI),io||W.equalsEpsilon(n,o,W.EPSILON14))&&(n=e.south&&i<=e.north};var NTe=new he;Nn.subsample=function(e,t,n,i){t=g(t,re.WGS84),n=g(n,0),d(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,l=NTe;l.height=n,l.longitude=c,l.latitude=r,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=a,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.latitude=s,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=c,i[o]=t.cartographicToCartesian(l,i[o]),o++,r<0?l.latitude=r:s>0?l.latitude=s:l.latitude=0;for(let u=1;u<8;++u)l.longitude=-Math.PI+u*W.PI_OVER_TWO,Nn.contains(e,l)&&(i[o]=t.cartographicToCartesian(l,i[o]),o++);return l.latitude===0&&(l.longitude=c,i[o]=t.cartographicToCartesian(l,i[o]),o++,l.longitude=a,i[o]=t.cartographicToCartesian(l,i[o]),o++),i.length=o,i};Nn.subsection=function(e,t,n,i,o,r){if(d(r)||(r=new Nn),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=W.TWO_PI+e.east-e.west;r.west=W.negativePiToPi(e.west+t*a),r.east=W.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};Nn.MAX_VALUE=Object.freeze(new Nn(-Math.PI,-W.PI_OVER_TWO,Math.PI,W.PI_OVER_TWO));var de=Nn;function br(e,t,n,i){this.x=g(e,0),this.y=g(t,0),this.width=g(n,0),this.height=g(i,0)}br.packedLength=4;br.pack=function(e,t,n){return n=g(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};br.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new br),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};br.fromPoints=function(e,t){if(d(t)||(t=new br),!d(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;an.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};br.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.widthr+t.height?qt.OUTSIDE:qt.INTERSECTING};br.equals=function(e,t){return e===t||d(e)&&d(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};br.prototype.clone=function(e){return br.clone(this,e)};br.prototype.intersect=function(e){return br.intersect(this,e)};br.prototype.equals=function(e){return br.equals(this,e)};var He=br;var gTt=T(S(),1);var la={POINTS:ne.POINTS,LINES:ne.LINES,LINE_LOOP:ne.LINE_LOOP,LINE_STRIP:ne.LINE_STRIP,TRIANGLES:ne.TRIANGLES,TRIANGLE_STRIP:ne.TRIANGLE_STRIP,TRIANGLE_FAN:ne.TRIANGLE_FAN};la.isLines=function(e){return e===la.LINES||e===la.LINE_LOOP||e===la.LINE_STRIP};la.isTriangles=function(e){return e===la.TRIANGLES||e===la.TRIANGLE_STRIP||e===la.TRIANGLE_FAN};la.validate=function(e){return e===la.POINTS||e===la.LINES||e===la.LINE_LOOP||e===la.LINE_STRIP||e===la.TRIANGLES||e===la.TRIANGLE_STRIP||e===la.TRIANGLE_FAN};var we=Object.freeze(la);var _Tt=T(S(),1),Sg=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;var LTt=T(S(),1);var dr={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function qV(e){e=g(e,g.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=g(e.primitiveType,we.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=g(e.offset,0),this._instanceCount=g(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._flags=0,this.cull=g(e.cull,!0),this.occlude=g(e.occlude,!0),this.executeInClosestFrustum=g(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=g(e.debugShowBoundingVolume,!1),this.castShadows=g(e.castShadows,!1),this.receiveShadows=g(e.receiveShadows,!1),this.pickOnly=g(e.pickOnly,!1),this.depthForTranslucentClassification=g(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function Pa(e,t){return(e._flags&t)===t}function q0(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(qV.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return Pa(this,dr.CULL)},set:function(e){Pa(this,dr.CULL)!==e&&(q0(this,dr.CULL,e),this.dirty=!0)}},occlude:{get:function(){return Pa(this,dr.OCCLUDE)},set:function(e){Pa(this,dr.OCCLUDE)!==e&&(q0(this,dr.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return Pa(this,dr.CAST_SHADOWS)},set:function(e){Pa(this,dr.CAST_SHADOWS)!==e&&(q0(this,dr.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return Pa(this,dr.RECEIVE_SHADOWS)},set:function(e){Pa(this,dr.RECEIVE_SHADOWS)!==e&&(q0(this,dr.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return Pa(this,dr.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){Pa(this,dr.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(q0(this,dr.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return Pa(this,dr.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){Pa(this,dr.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(q0(this,dr.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickOnly:{get:function(){return Pa(this,dr.PICK_ONLY)},set:function(e){Pa(this,dr.PICK_ONLY)!==e&&(q0(this,dr.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return Pa(this,dr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){Pa(this,dr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(q0(this,dr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});qV.shallowClone=function(e,t){if(d(e))return d(t)||(t=new qV),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};qV.prototype.execute=function(e,t){e.draw(this,t)};var nt=qV;var UTt=T(S(),1);var WTt=T(S(),1);var GTt=T(S(),1);var Gi={UNSIGNED_BYTE:ne.UNSIGNED_BYTE,UNSIGNED_SHORT:ne.UNSIGNED_SHORT,UNSIGNED_INT:ne.UNSIGNED_INT,FLOAT:ne.FLOAT,HALF_FLOAT:ne.HALF_FLOAT_OES,UNSIGNED_INT_24_8:ne.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:ne.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:ne.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:ne.UNSIGNED_SHORT_5_6_5};Gi.toWebGLConstant=function(e,t){switch(e){case Gi.UNSIGNED_BYTE:return ne.UNSIGNED_BYTE;case Gi.UNSIGNED_SHORT:return ne.UNSIGNED_SHORT;case Gi.UNSIGNED_INT:return ne.UNSIGNED_INT;case Gi.FLOAT:return ne.FLOAT;case Gi.HALF_FLOAT:return t.webgl2?ne.HALF_FLOAT:ne.HALF_FLOAT_OES;case Gi.UNSIGNED_INT_24_8:return ne.UNSIGNED_INT_24_8;case Gi.UNSIGNED_SHORT_4_4_4_4:return ne.UNSIGNED_SHORT_4_4_4_4;case Gi.UNSIGNED_SHORT_5_5_5_1:return ne.UNSIGNED_SHORT_5_5_5_1;case Gi.UNSIGNED_SHORT_5_6_5:return Gi.UNSIGNED_SHORT_5_6_5}};Gi.isPacked=function(e){return e===Gi.UNSIGNED_INT_24_8||e===Gi.UNSIGNED_SHORT_4_4_4_4||e===Gi.UNSIGNED_SHORT_5_5_5_1||e===Gi.UNSIGNED_SHORT_5_6_5};Gi.sizeInBytes=function(e){switch(e){case Gi.UNSIGNED_BYTE:return 1;case Gi.UNSIGNED_SHORT:case Gi.UNSIGNED_SHORT_4_4_4_4:case Gi.UNSIGNED_SHORT_5_5_5_1:case Gi.UNSIGNED_SHORT_5_6_5:case Gi.HALF_FLOAT:return 2;case Gi.UNSIGNED_INT:case Gi.FLOAT:case Gi.UNSIGNED_INT_24_8:return 4}};Gi.validate=function(e){return e===Gi.UNSIGNED_BYTE||e===Gi.UNSIGNED_SHORT||e===Gi.UNSIGNED_INT||e===Gi.FLOAT||e===Gi.HALF_FLOAT||e===Gi.UNSIGNED_INT_24_8||e===Gi.UNSIGNED_SHORT_4_4_4_4||e===Gi.UNSIGNED_SHORT_5_5_5_1||e===Gi.UNSIGNED_SHORT_5_6_5};var Je=Object.freeze(Gi);var rt={DEPTH_COMPONENT:ne.DEPTH_COMPONENT,DEPTH_STENCIL:ne.DEPTH_STENCIL,ALPHA:ne.ALPHA,RED:ne.RED,RG:ne.RG,RGB:ne.RGB,RGBA:ne.RGBA,LUMINANCE:ne.LUMINANCE,LUMINANCE_ALPHA:ne.LUMINANCE_ALPHA,RGB_DXT1:ne.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:ne.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:ne.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:ne.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:ne.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:ne.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:ne.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:ne.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:ne.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:ne.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:ne.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:ne.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:ne.COMPRESSED_RGBA_BPTC_UNORM};rt.componentsLength=function(e){switch(e){case rt.RGB:return 3;case rt.RGBA:return 4;case rt.LUMINANCE_ALPHA:case rt.RG:return 2;case rt.ALPHA:case rt.RED:case rt.LUMINANCE:return 1;default:return 1}};rt.validate=function(e){return e===rt.DEPTH_COMPONENT||e===rt.DEPTH_STENCIL||e===rt.ALPHA||e===rt.RED||e===rt.RG||e===rt.RGB||e===rt.RGBA||e===rt.LUMINANCE||e===rt.LUMINANCE_ALPHA||e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5||e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1||e===rt.RGBA_ASTC||e===rt.RGB_ETC1||e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC||e===rt.RGBA_BC7};rt.isColorFormat=function(e){return e===rt.ALPHA||e===rt.RGB||e===rt.RGBA||e===rt.LUMINANCE||e===rt.LUMINANCE_ALPHA};rt.isDepthFormat=function(e){return e===rt.DEPTH_COMPONENT||e===rt.DEPTH_STENCIL};rt.isCompressedFormat=function(e){return e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5||e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1||e===rt.RGBA_ASTC||e===rt.RGB_ETC1||e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC||e===rt.RGBA_BC7};rt.isDXTFormat=function(e){return e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5};rt.isPVRTCFormat=function(e){return e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1};rt.isASTCFormat=function(e){return e===rt.RGBA_ASTC};rt.isETC1Format=function(e){return e===rt.RGB_ETC1};rt.isETC2Format=function(e){return e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC};rt.isBC7Format=function(e){return e===rt.RGBA_BC7};rt.compressedTextureSizeInBytes=function(e,t,n){switch(e){case rt.RGB_DXT1:case rt.RGBA_DXT1:case rt.RGB_ETC1:case rt.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case rt.RGBA_DXT3:case rt.RGBA_DXT5:case rt.RGBA_ASTC:case rt.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case rt.RGB_PVRTC_4BPPV1:case rt.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case rt.RGB_PVRTC_2BPPV1:case rt.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case rt.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};rt.textureSizeInBytes=function(e,t,n,i){let o=rt.componentsLength(e);return Je.isPacked(t)&&(o=1),o*Je.sizeInBytes(t)*n*i};rt.alignmentInBytes=function(e,t,n){let i=rt.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};rt.createTypedArray=function(e,t,n,i){let o,r=Je.sizeInBytes(t);r===Uint8Array.BYTES_PER_ELEMENT?o=Uint8Array:r===Uint16Array.BYTES_PER_ELEMENT?o=Uint16Array:r===Float32Array.BYTES_PER_ELEMENT&&t===Je.FLOAT?o=Float32Array:o=Uint32Array;let s=rt.componentsLength(e)*n*i;return new o(s)};rt.flipY=function(e,t,n,i,o){if(o===1)return e;let r=rt.createTypedArray(t,n,i,o),s=rt.componentsLength(t),a=i*s;for(let c=0;c0&&console.log(`${Rh}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),d(c)&&c.length>0&&console.log(`${Rh}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),d(c)&&c.length>0&&console.log(`${Rh}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let l,u=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${Rh}Shader program link log: ${c}`),m(o,"vertex"),m(r,"fragment"),l=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${Rh}Vertex shader compile log: ${c}`),console.error(`${Rh} Vertex shader source: +${n}`),l=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${Rh}Fragment shader compile log: ${c}`),console.error(`${Rh} Fragment shader source: +${i}`),l=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new me(l);function m(p,y){if(!d(u))return;let f=u.getTranslatedShaderSource(p);if(f===""){console.error(`${Rh}${y} shader translation failed.`);return}console.error(`${Rh}Translated ${y} shaderSource: +${f}`)}}function rSe(e,t,n){let i={};for(let o=0;o=0){if(u=n[l.slice(0,f)],!d(u))continue;m=u._locations,m.length<=1&&(p=u.value,y=e.getUniformLocation(t,l),y!==null&&(m.push(y),p.push(e.getUniform(t,y))))}else{m=[];for(let x=0;x0)n=Math.sqrt(u+1),s=.5*n,n=.5/n,i=(e[$.COLUMN1ROW2]-e[$.COLUMN2ROW1])*n,o=(e[$.COLUMN2ROW0]-e[$.COLUMN0ROW2])*n,r=(e[$.COLUMN0ROW1]-e[$.COLUMN1ROW0])*n;else{let m=bSe,p=0;c>a&&(p=1),l>a&&l>c&&(p=2);let y=m[p],f=m[y];n=Math.sqrt(e[$.getElementIndex(p,p)]-e[$.getElementIndex(y,y)]-e[$.getElementIndex(f,f)]+1);let x=ySe;x[p]=.5*n,n=.5/n,s=(e[$.getElementIndex(f,y)]-e[$.getElementIndex(y,f)])*n,x[y]=(e[$.getElementIndex(y,p)]+e[$.getElementIndex(p,y)])*n,x[f]=(e[$.getElementIndex(f,p)]+e[$.getElementIndex(p,f)])*n,i=-x[0],o=-x[1],r=-x[2]}return d(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new it(i,o,r,s)};var $7=new it,e6=new it,fB=new it,t6=new it;it.fromHeadingPitchRoll=function(e,t){return t6=it.fromAxisAngle(h.UNIT_X,e.roll,$7),fB=it.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=it.multiply(fB,t6,fB),e6=it.fromAxisAngle(h.UNIT_Z,-e.heading,$7),it.multiply(e6,t,t)};var RA=new h,pB=new h,tm=new it,n6=new it,ZA=new it;it.packedLength=4;it.pack=function(e,t,n){return n=g(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};it.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new it),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};it.packedInterpolationLength=3;it.convertPackedArrayForInterpolation=function(e,t,n,i){it.unpack(e,n*4,ZA),it.conjugate(ZA,ZA);for(let o=0,r=n-t+1;o=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,l=a*a;for(let y=7;y>=0;--y)Hf[y]=(GA[y]*c-EA[y])*s,zf[y]=(GA[y]*l-EA[y])*s;let u=r*n*(1+Hf[0]*(1+Hf[1]*(1+Hf[2]*(1+Hf[3]*(1+Hf[4]*(1+Hf[5]*(1+Hf[6]*(1+Hf[7])))))))),m=a*(1+zf[0]*(1+zf[1]*(1+zf[2]*(1+zf[3]*(1+zf[4]*(1+zf[5]*(1+zf[6]*(1+zf[7])))))))),p=it.multiplyByScalar(e,m,_Se);return it.multiplyByScalar(t,u,i),it.add(p,i,i)};it.fastSquad=function(e,t,n,i,o,r){let s=it.fastSlerp(e,t,o,rL),a=it.fastSlerp(n,i,o,qT);return it.fastSlerp(s,a,2*o*(1-o),r)};it.equals=function(e,t){return e===t||d(e)&&d(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};it.equalsEpsilon=function(e,t,n){return n=g(n,0),e===t||d(e)&&d(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};it.ZERO=Object.freeze(new it(0,0,0,0));it.IDENTITY=Object.freeze(new it(0,0,0,1));it.prototype.clone=function(e){return it.clone(this,e)};it.prototype.equals=function(e){return it.equals(this,e)};it.prototype.equalsEpsilon=function(e,t){return it.equalsEpsilon(this,e,t)};it.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Ae=it;var wLt=T(S(),1);var HVt=T(S(),1);var xCt=T(S(),1);function TSe(e,t,n){let i=0,o=e.length-1,r,s;for(;i<=o;){if(r=~~((i+o)/2),s=n(e[r],t),s<0){i=r+1;continue}if(s>0){o=r-1;continue}return r}return~(o+1)}var Lo=TSe;var TCt=T(S(),1);function SSe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var $0=SSe;var kCt=T(S(),1);var CCt=T(S(),1);function CSe(e,t,n,i,o,r,s,a){this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a}var Jf=CSe;var LCt=T(S(),1);function VSe(e){return e%4===0&&e%100!==0||e%400===0}var Qf=VSe;var ZCt=T(S(),1);function LSe(e,t){this.julianDate=e,this.offset=t}var Ui=LSe;var ECt=T(S(),1),RSe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},Qn=Object.freeze(RSe);var ICt=T(S(),1),ZSe={UTC:0,TAI:1},Jn=Object.freeze(ZSe);var s6=new Jf,xB=[31,28,31,30,31,30,31,31,30,31,30,31],_B=29;function TB(e,t){return Lt.compare(e.julianDate,t.julianDate)}var $T=new Ui;function IA(e){$T.julianDate=e;let t=Lt.leapSeconds,n=Lo(t,$T,TB);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&Lt.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),Lt.addSeconds(e,i,e)}function r6(e,t){$T.julianDate=e;let n=Lt.leapSeconds,i=Lo(n,$T,TB);if(i<0&&(i=~i),i===0)return Lt.addSeconds(e,-n[0].offset,t);if(i>=n.length)return Lt.addSeconds(e,-n[i-1].offset,t);let o=Lt.secondsDifference(n[i].julianDate,e);if(o===0)return Lt.addSeconds(e,-n[i].offset,t);if(!(o<=1))return Lt.addSeconds(e,-n[--i].offset,t)}function eb(e,t,n){let i=t/Qn.SECONDS_PER_DAY|0;return e+=i,t-=Qn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Qn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function SB(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,l=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let u=r+(i*Qn.SECONDS_PER_HOUR+o*Qn.SECONDS_PER_MINUTE+s*Qn.SECONDS_PER_MILLISECOND);return u>=43200&&(l-=1),[l,u]}var GSe=/^(\d{4})$/,ESe=/^(\d{4})-(\d{2})$/,XSe=/^(\d{4})-?(\d{3})$/,ISe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,WSe=/^(\d{4})-?(\d{2})-?(\d{2})$/,CB=/([Z+\-])?(\d{2})?:?(\d{2})?$/,PSe=/^(\d{2})(\.\d+)?/.source+CB.source,vSe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+CB.source,FSe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+CB.source;function Lt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=g(e,0),t=g(t,0),n=g(n,Jn.UTC);let i=e|0;t=t+(e-i)*Qn.SECONDS_PER_DAY,eb(i,t,this),n===Jn.UTC&&IA(this)}Lt.fromGregorianDate=function(e,t){let n=SB(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return d(t)?(eb(n[0],n[1],t),IA(t),t):new Lt(n[0],n[1],Jn.UTC)};Lt.fromDate=function(e,t){let n=SB(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return d(t)?(eb(n[0],n[1],t),IA(t),t):new Lt(n[0],n[1],Jn.UTC)};Lt.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,l=0,u=n[0],m=n[1],p,y;if(n=u.match(WSe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=u.match(ESe),n!==null)i=+n[1],o=+n[2];else if(n=u.match(GSe),n!==null)i=+n[1];else{let C;if(n=u.match(XSe),n!==null)i=+n[1],C=+n[2],y=Qf(i);else if(n=u.match(ISe),n!==null){i=+n[1];let V=+n[2],L=+n[3]||0,Z=new Date(Date.UTC(i,0,4));C=V*7+L-Z.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(C),o=p.getUTCMonth()+1,r=p.getUTCDate()}y=Qf(i);let f;if(d(m)){n=m.match(FSe),n!==null?(s=+n[1],a=+n[2],c=+n[3],l=+(n[4]||0)*1e3,f=5):(n=m.match(vSe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,f=4):(n=m.match(PSe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,f=3)));let C=n[f],V=+n[f+1],L=+(n[f+2]||0);switch(C){case"+":s=s-V,a=a-L;break;case"-":s=s+V,a=a+L;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let x=c===60;for(x&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=y&&o===2?_B:xB[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=y&&o===2?_B:xB[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=y&&o===2?_B:xB[o-1],r+=p;let _=SB(i,o,r,s,a,c,l);return d(t)?(eb(_[0],_[1],t),IA(t)):t=new Lt(_[0],_[1],Jn.UTC),x&&Lt.addSeconds(t,1,t),t};Lt.now=function(e){return Lt.fromDate(new Date,e)};var XA=new Lt(0,0,Jn.TAI);Lt.toGregorianDate=function(e,t){let n=!1,i=r6(e,XA);d(i)||(Lt.addSeconds(e,-1,XA),i=r6(XA,XA),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let l=80*s/2447|0,u=s-(2447*l/80|0)|0;s=l/11|0;let m=l+2-12*s|0,p=100*(a-49)+c+s|0,y=r/Qn.SECONDS_PER_HOUR|0,f=r-y*Qn.SECONDS_PER_HOUR,x=f/Qn.SECONDS_PER_MINUTE|0;f=f-x*Qn.SECONDS_PER_MINUTE;let _=f|0,C=(f-_)/Qn.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(_+=1),d(t)?(t.year=p,t.month=m,t.day=u,t.hour=y,t.minute=x,t.second=_,t.millisecond=C,t.isLeapSecond=n,t):new Jf(p,m,u,y,x,_,C,n)};Lt.toDate=function(e){let t=Lt.toGregorianDate(e,s6),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};Lt.toIso8601=function(e,t){let n=Lt.toGregorianDate(e,s6),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,l=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&l===0&&(i=9999,o=12,r=31,s=24);let u;return!d(t)&&l!==0?(u=(l*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${u}Z`):!d(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(u=(l*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${u}Z`)};Lt.clone=function(e,t){if(d(e))return d(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new Lt(e.dayNumber,e.secondsOfDay,Jn.TAI)};Lt.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};Lt.equals=function(e,t){return e===t||d(e)&&d(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};Lt.equalsEpsilon=function(e,t,n){return n=g(n,0),e===t||d(e)&&d(t)&&Math.abs(Lt.secondsDifference(e,t))<=n};Lt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Qn.SECONDS_PER_DAY};Lt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Qn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};Lt.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Qn.SECONDS_PER_DAY;return n+i};Lt.computeTaiMinusUtc=function(e){$T.julianDate=e;let t=Lt.leapSeconds,n=Lo(t,$T,TB);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};Lt.addSeconds=function(e,t,n){return eb(e.dayNumber,e.secondsOfDay+t,n)};Lt.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Qn.SECONDS_PER_MINUTE;return eb(e.dayNumber,i,n)};Lt.addHours=function(e,t,n){let i=e.secondsOfDay+t*Qn.SECONDS_PER_HOUR;return eb(e.dayNumber,i,n)};Lt.addDays=function(e,t,n){let i=e.dayNumber+t;return eb(i,e.secondsOfDay,n)};Lt.lessThan=function(e,t){return Lt.compare(e,t)<0};Lt.lessThanOrEquals=function(e,t){return Lt.compare(e,t)<=0};Lt.greaterThan=function(e,t){return Lt.compare(e,t)>0};Lt.greaterThanOrEquals=function(e,t){return Lt.compare(e,t)>=0};Lt.prototype.clone=function(e){return Lt.clone(this,e)};Lt.prototype.equals=function(e){return Lt.equals(this,e)};Lt.prototype.equalsEpsilon=function(e,t){return Lt.equalsEpsilon(this,e,t)};Lt.prototype.toString=function(){return Lt.toIso8601(this)};Lt.leapSeconds=[new Ui(new Lt(2441317,43210,Jn.TAI),10),new Ui(new Lt(2441499,43211,Jn.TAI),11),new Ui(new Lt(2441683,43212,Jn.TAI),12),new Ui(new Lt(2442048,43213,Jn.TAI),13),new Ui(new Lt(2442413,43214,Jn.TAI),14),new Ui(new Lt(2442778,43215,Jn.TAI),15),new Ui(new Lt(2443144,43216,Jn.TAI),16),new Ui(new Lt(2443509,43217,Jn.TAI),17),new Ui(new Lt(2443874,43218,Jn.TAI),18),new Ui(new Lt(2444239,43219,Jn.TAI),19),new Ui(new Lt(2444786,43220,Jn.TAI),20),new Ui(new Lt(2445151,43221,Jn.TAI),21),new Ui(new Lt(2445516,43222,Jn.TAI),22),new Ui(new Lt(2446247,43223,Jn.TAI),23),new Ui(new Lt(2447161,43224,Jn.TAI),24),new Ui(new Lt(2447892,43225,Jn.TAI),25),new Ui(new Lt(2448257,43226,Jn.TAI),26),new Ui(new Lt(2448804,43227,Jn.TAI),27),new Ui(new Lt(2449169,43228,Jn.TAI),28),new Ui(new Lt(2449534,43229,Jn.TAI),29),new Ui(new Lt(2450083,43230,Jn.TAI),30),new Ui(new Lt(2450630,43231,Jn.TAI),31),new Ui(new Lt(2451179,43232,Jn.TAI),32),new Ui(new Lt(2453736,43233,Jn.TAI),33),new Ui(new Lt(2454832,43234,Jn.TAI),34),new Ui(new Lt(2456109,43235,Jn.TAI),35),new Ui(new Lt(2457204,43236,Jn.TAI),36),new Ui(new Lt(2457754,43237,Jn.TAI),37)];var te=Lt;var FVt=T(S(),1),R6=T(Dl(),1);var HCt=T(S(),1);function wSe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var sL=wSe;var QCt=T(S(),1);function h6(e,t){if(e===null||typeof e!="object")return e;t=g(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=h6(o,t)),n[i]=o}return n}var Oe=h6;var e1t=T(S(),1);function f6(e,t,n){n=g(n,!1);let i={},o=d(e),r=d(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=f6(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var xt=f6;var n1t=T(S(),1);function ASe(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var il=ASe;var s1t=T(S(),1),p6=T(Dl(),1);function VB(e,t){let n;return typeof document<"u"&&(n=document),VB._implementation(e,t,n)}VB._implementation=function(e,t,n){if(!d(t)){if(typeof n>"u")return e;t=g(n.baseURI,n.location.href)}let i=new p6.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var Zh=VB;var c1t=T(S(),1),b6=T(Dl(),1);function MSe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new b6.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var aL=MSe;var d1t=T(S(),1),y6=T(Dl(),1);function NSe(e){let t=new y6.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var Vg=NSe;var h1t=T(S(),1);var g6={};function USe(e,t,n){d(t)||(t=e.width),d(n)||(n=e.height);let i=g6[t];d(i)||(i={},g6[t]=i);let o=i[n];if(!d(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var nm=USe;var p1t=T(S(),1);var kSe=/^blob:/i;function DSe(e){return kSe.test(e)}var Lg=DSe;var g1t=T(S(),1);var Gh;function BSe(e){d(Gh)||(Gh=document.createElement("a")),Gh.href=window.location.href;let t=Gh.host,n=Gh.protocol;return Gh.href=e,Gh.href=Gh.href,n!==Gh.protocol||t!==Gh.host}var Rg=BSe;var _1t=T(S(),1);var YSe=/^data:/i;function OSe(e){return YSe.test(e)}var jf=OSe;var S1t=T(S(),1);function KSe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var Zg=KSe;var V1t=T(S(),1);function HSe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var cL=jSe;function x6(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=cL(this.responseHeaders))}x6.prototype.toString=function(){let e="Request has failed.";return d(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Eh=x6;var sVt=T(S(),1),wA=T(Dl(),1);var K1t=T(S(),1);function lL(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(lL.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});lL.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};lL.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r0){for(o.sort(qSe),e=0;e=0;--t)this.heapify(t)};Eg.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(oi&&(r=t[i],this._length=i),r};Eg.prototype.pop=function(e){if(e=g(e,0),this._length===0)return;let t=this._array,n=t[e];return LB(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var dL=Eg;function $Se(e,t){return e.priority-t.priority}var eo={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},nS=20,va=new dL({comparator:$Se});va.maximumLength=nS;va.reserve(nS);var Xh=[],qf={},eCe=typeof document<"u"?new wA.default(document.location.href):new wA.default,AA=new ye;function Do(){}Do.maximumRequests=50;Do.maximumRequestsPerServer=6;Do.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18,"tile.googleapis.com:443":18,"tile.openstreetmap.org:443":18};Do.throttleRequests=!0;Do.debugShowStatistics=!1;Do.requestCompletedEvent=AA;Object.defineProperties(Do,{statistics:{get:function(){return eo}},priorityHeapLength:{get:function(){return nS},set:function(e){if(ee;){let t=va.pop();Xg(t)}nS=e,va.maximumLength=e,va.reserve(e)}}});function _6(e){d(e.priorityFunction)&&(e.priority=e.priorityFunction())}Do.serverHasOpenSlots=function(e,t){t=g(t,1);let n=g(Do.requestsByServer[e],Do.maximumRequestsPerServer);return qf[e]+t<=n};Do.heapHasOpenSlots=function(e){return va.length+e<=nS};function T6(e){return e.state===$n.UNISSUED&&(e.state=$n.ISSUED,e.deferred=il()),e.deferred.promise}function tCe(e){return function(t){if(e.state===$n.CANCELLED)return;let n=e.deferred;--eo.numberOfActiveRequests,--qf[e.serverKey],AA.raiseEvent(),e.state=$n.RECEIVED,e.deferred=void 0,n.resolve(t)}}function nCe(e){return function(t){e.state!==$n.CANCELLED&&(++eo.numberOfFailedRequests,--eo.numberOfActiveRequests,--qf[e.serverKey],AA.raiseEvent(t),e.state=$n.FAILED,e.deferred.reject(t))}}function S6(e){let t=T6(e);return e.state=$n.ACTIVE,Xh.push(e),++eo.numberOfActiveRequests,++eo.numberOfActiveRequestsEver,++qf[e.serverKey],e.requestFunction().then(tCe(e)).catch(nCe(e)),t}function Xg(e){let t=e.state===$n.ACTIVE;if(e.state=$n.CANCELLED,++eo.numberOfCancelledRequests,d(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--eo.numberOfActiveRequests,--qf[e.serverKey],++eo.numberOfCancelledActiveRequests),d(e.cancelFunction)&&e.cancelFunction()}Do.update=function(){let e,t,n=0,i=Xh.length;for(e=0;e0&&(Xh[e-n]=t)}Xh.length-=n;let o=va.internalArray,r=va.length;for(e=0;e0;){if(t=va.pop(),t.cancelled){Xg(t);continue}if(t.throttleByServer&&!Do.serverHasOpenSlots(t.serverKey)){Xg(t);continue}S6(t),++a}iCe()};Do.getServerKey=function(e){let t=new wA.default(e);t.scheme()===""&&(t=t.absoluteTo(eCe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=qf[n];return d(i)||(qf[n]=0),n};Do.request=function(e){if(jf(e.url)||Lg(e.url))return AA.raiseEvent(),e.state=$n.RECEIVED,e.requestFunction();if(++eo.numberOfAttemptedRequests,d(e.serverKey)||(e.serverKey=Do.getServerKey(e.url)),Do.throttleRequests&&e.throttleByServer&&!Do.serverHasOpenSlots(e.serverKey))return;if(!Do.throttleRequests||!e.throttle)return S6(e);if(Xh.length>=Do.maximumRequests)return;_6(e);let t=va.insert(e);if(d(t)){if(t===e)return;Xg(t)}return T6(e)};function iCe(){Do.debugShowStatistics&&(eo.numberOfActiveRequests===0&&eo.lastNumberOfActiveRequests>0&&(eo.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${eo.numberOfAttemptedRequests}`),eo.numberOfAttemptedRequests=0),eo.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${eo.numberOfCancelledRequests}`),eo.numberOfCancelledRequests=0),eo.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${eo.numberOfCancelledActiveRequests}`),eo.numberOfCancelledActiveRequests=0),eo.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${eo.numberOfFailedRequests}`),eo.numberOfFailedRequests=0)),eo.lastNumberOfActiveRequests=eo.numberOfActiveRequests)}Do.clearForSpecs=function(){for(;va.length>0;){let t=va.pop();Xg(t)}let e=Xh.length;for(let t=0;t0}},credits:{get:function(){return this._credits}}});Vt.prototype.toString=function(){return this.getUrlComponent(!0,!0)};Vt.prototype.parseUrl=function(e,t,n,i){let o=new R6.default(e),r=rCe(o.query());this._queryParameters=t?NA(r,this.queryParameters,n):r,o.search(""),o.fragment(""),d(i)&&o.scheme()===""&&(o=o.absoluteTo(Zh(i))),this._url=o.toString()};function rCe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:Bl(e)}function NA(e,t,n){if(!n)return xt(e,t);let i=Oe(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];d(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}Vt.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${sCe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return d(s)?encodeURIComponent(s):o})),t&&d(this.proxy)&&(n=this.proxy.getURL(n)),n};function sCe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!d(e[t[0]])?`?${t[0]}`:`?${Gg(e)}`}Vt.prototype.setQueryParameters=function(e,t){t?this._queryParameters=NA(this._queryParameters,e,!1):this._queryParameters=NA(e,this._queryParameters,!1)};Vt.prototype.appendQueryParameters=function(e){this._queryParameters=NA(e,this._queryParameters,!0)};Vt.prototype.setTemplateValues=function(e,t){t?this._templateValues=xt(this._templateValues,e):this._templateValues=xt(e,this._templateValues)};Vt.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,d(e.url)){let n=g(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return d(e.queryParameters)&&(t._queryParameters=xt(e.queryParameters,t.queryParameters)),d(e.templateValues)&&(t._templateValues=xt(e.templateValues,t.templateValues)),d(e.headers)&&(t.headers=xt(e.headers,t.headers)),d(e.proxy)&&(t.proxy=e.proxy),d(e.request)&&(t.request=e.request),d(e.retryCallback)&&(t.retryCallback=e.retryCallback),d(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};Vt.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};Vt.prototype.clone=function(e){return d(e)?(e._url=this._url,e._queryParameters=Oe(this._queryParameters),e._templateValues=Oe(this._templateValues),e.headers=Oe(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new Vt({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:d(this.credits)?this.credits.slice():void 0})};Vt.prototype.getBaseUri=function(e){return aL(this.getUrlComponent(e),e)};Vt.prototype.appendForwardSlash=function(){this._url=sL(this._url)};Vt.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};Vt.fetchArrayBuffer=function(e){return new Vt(e).fetchArrayBuffer()};Vt.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};Vt.fetchBlob=function(e){return new Vt(e).fetchBlob()};Vt.prototype.fetchImage=function(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.preferImageBitmap,!1),n=g(e.preferBlob,!1),i=g(e.flipY,!1),o=g(e.skipColorSpaceConversion,!1);if(ZB(this.request),!Z6||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return RB({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!d(r))return;let s,a,c,l;return Vt.supportsImageBitmapOptions().then(function(u){return s=u,a=s&&t,r}).then(function(u){if(!d(u))return;if(l=u,a)return Vt.createImageBitmapFromBlob(u,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let m=window.URL.createObjectURL(u);return c=new Vt({url:m}),RB({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(u){if(d(u))return u.blob=l,a||window.URL.revokeObjectURL(c.url),u}).catch(function(u){return d(c)&&window.URL.revokeObjectURL(c.url),u.blob=l,Promise.reject(u)})};function RB(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=il();return Vt._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=Fa.request(r);if(d(s))return s.catch(function(a){return r.state!==$n.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=$n.UNISSUED,r.deferred=void 0,RB({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}Vt.fetchImage=function(e){return new Vt(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};Vt.prototype.fetchText=function(){return this.fetch({responseType:"text"})};Vt.fetchText=function(e){return new Vt(e).fetchText()};Vt.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(d(e))return e.then(function(t){if(d(t))return JSON.parse(t)})};Vt.fetchJson=function(e){return new Vt(e).fetchJson()};Vt.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};Vt.fetchXML=function(e){return new Vt(e).fetchXML()};Vt.prototype.fetchJsonp=function(e){e=g(e,"callback"),ZB(this.request);let t;do t=`loadJsonp${W.nextRandomNumber().toString().substring(2,8)}`;while(d(window[t]));return G6(this,e,t)};function G6(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=il();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},Vt._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=Fa.request(o);if(d(s))return s.catch(function(a){return o.state!==$n.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=$n.UNISSUED,o.deferred=void 0,G6(e,t,n)):Promise.reject(a)})})}Vt.fetchJsonp=function(e){return new Vt(e).fetchJsonp(e.callbackParameterName)};Vt.prototype._makeRequest=function(e){let t=this;ZB(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=xt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,l=e.data,u=il(),m=Vt._Implementations.loadWithXhr(i,r,c,l,s,u,a);return d(m)&&d(m.abort)&&(n.cancelFunction=function(){m.abort()}),u.promise};let o=Fa.request(n);if(d(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==$n.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=$n.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function ZB(e){if(e.state===$n.ISSUED||e.state===$n.ACTIVE)throw new me("The Resource is already being fetched.");e.state=$n.UNISSUED,e.deferred=void 0}var aCe=/^data:(.*?)(;base64)?,(.*)$/;function MA(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function V6(e,t){let n=MA(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r(a=l.parse(e),c=u,a.protocol==="https:"?import("https"):import("http"))).then(l=>{let u={protocol:a.protocol,hostname:a.hostname,port:a.port,path:a.path,query:a.query,method:n,headers:o};l.request(u).on("response",function(m){if(m.statusCode<200||m.statusCode>=300){r.reject(new Eh(m.statusCode,m,m.headers));return}let p=[];m.on("data",function(y){p.push(y)}),m.on("end",function(){let y=Buffer.concat(p);m.headers["content-encoding"]==="gzip"?c.gunzip(y,function(f,x){f?r.reject(new me("Error decompressing response.")):r.resolve(L6(x,t))}):r.resolve(L6(y,t))})}).on("error",function(m){r.reject(new Eh)}).end()})}var dCe=typeof XMLHttpRequest>"u";Vt._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=aCe.exec(e);if(a!==null){r.resolve(cCe(a,t));return}if(dCe){lCe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(oS.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),d(s)&&d(c.overrideMimeType)&&c.overrideMimeType(s),d(o))for(let u in o)o.hasOwnProperty(u)&&c.setRequestHeader(u,o[u]);d(t)&&(c.responseType=t);let l=!1;return typeof e=="string"&&(l=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(l&&c.status===0)){r.reject(new Eh(c.status,c.response,c.getAllResponseHeaders()));return}let u=c.response,m=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let y=c.getAllResponseHeaders().trim().split(/[\r\n]+/),f={};y.forEach(function(x){let _=x.split(": "),C=_.shift();f[C]=_.join(": ")}),r.resolve(f);return}if(c.status===204)r.resolve();else if(d(u)&&(!d(t)||m===t))r.resolve(u);else if(t==="json"&&typeof u=="string")try{r.resolve(JSON.parse(u))}catch(p){r.reject(p)}else(m===""||m==="document")&&d(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(m===""||m==="text")&&d(c.responseText)?r.resolve(c.responseText):r.reject(new me("Invalid XMLHttpRequest response type."))},c.onerror=function(u){r.reject(new Eh)},c.send(i),c};Vt._Implementations.loadAndExecuteScript=function(e,t,n){return Zg(e,t).catch(function(i){n.reject(i)})};Vt._DefaultImplementations={};Vt._DefaultImplementations.createImage=Vt._Implementations.createImage;Vt._DefaultImplementations.loadWithXhr=Vt._Implementations.loadWithXhr;Vt._DefaultImplementations.loadAndExecuteScript=Vt._Implementations.loadAndExecuteScript;Vt.DEFAULT=Object.freeze(new Vt({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var Ee=Vt;function hL(e){e=g(e,g.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=g(e.addNewLeapSeconds,!0),d(e.data)?E6(this,e.data):E6(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}hL.fromUrl=async function(e,t){t=g(t,g.EMPTY_OBJECT);let n=Ee.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new me(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new hL({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};hL.NONE=Object.freeze({compute:function(e,t){return d(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new $0(0,0,0,0,0),t}});hL.prototype.compute=function(e,t){if(!d(this._samples))return;if(d(t)||(t=new $0(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(d(i)){let a=n[i],c=n[i+1],l=te.lessThanOrEquals(a,e),u=!d(c),m=u||te.greaterThanOrEquals(c,e);if(l&&m)return o=i,!u&&c.equals(e)&&++o,r=o+1,I6(this,n,this._samples,e,o,r,t),t}let s=Lo(n,e,te.compare,this._dateColumn);return s>=0?(st.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],l=t[r];if(c.equals(l)||i.equals(c))return X6(e,n,o,a,s),s;if(i.equals(l))return X6(e,n,r,a,s),s;let u=te.secondsDifference(i,c)/te.secondsDifference(l,c),m=o*a,p=r*a,y=n[m+e._ut1MinusUtcSecondsColumn],f=n[p+e._ut1MinusUtcSecondsColumn],x=f-y;if(x>.5||x<-.5){let _=n[m+e._taiMinusUtcSecondsColumn],C=n[p+e._taiMinusUtcSecondsColumn];_!==C&&(l.equals(i)?y=f:f-=C-_)}return s.xPoleWander=mL(u,n[m+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=mL(u,n[m+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=mL(u,n[m+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=mL(u,n[m+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=mL(u,y,f),s}var fL=hL;var qVt=T(S(),1);function wa(e,t,n){this.heading=g(e,0),this.pitch=g(t,0),this.roll=g(n,0)}wa.fromQuaternion=function(e,t){d(t)||(t=new wa);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-W.asinClamped(n),t};wa.fromDegrees=function(e,t,n,i){return d(i)||(i=new wa),i.heading=e*W.RADIANS_PER_DEGREE,i.pitch=t*W.RADIANS_PER_DEGREE,i.roll=n*W.RADIANS_PER_DEGREE,i};wa.clone=function(e,t){if(d(e))return d(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new wa(e.heading,e.pitch,e.roll)};wa.equals=function(e,t){return e===t||d(e)&&d(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};wa.equalsEpsilon=function(e,t,n,i){return e===t||d(e)&&d(t)&&W.equalsEpsilon(e.heading,t.heading,n,i)&&W.equalsEpsilon(e.pitch,t.pitch,n,i)&&W.equalsEpsilon(e.roll,t.roll,n,i)};wa.prototype.clone=function(e){return wa.clone(this,e)};wa.prototype.equals=function(e){return wa.equals(this,e)};wa.prototype.equalsEpsilon=function(e,t,n){return wa.equalsEpsilon(this,e,t,n)};wa.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Aa=wa;var pLt=T(S(),1);var iLt=T(S(),1);var W6={};var P6=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function mCe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t"u"?e:(d(UA)||(UA=document.createElement("a")),UA.href=e,UA.href)}var Ig;function F6(){if(d(Ig))return Ig;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:d(W6?.url)?e=Zh(".",W6.url):typeof define=="object"&&d(define.amd)&&!define.amd.toUrlUndefined&&d(Q0.toUrl)?e=Zh("..",Wg("Core/buildModuleUrl.js")):e=mCe(),Ig=new Ee({url:v6(e)}),Ig.appendForwardSlash(),Ig}function hCe(e){return v6(Q0.toUrl(`../${e}`))}function w6(e){return F6().getDerivedResource({url:e}).url}var kA;function Wg(e){return d(kA)||(typeof define=="object"&&d(define.amd)&&!define.amd.toUrlUndefined&&d(Q0.toUrl)?kA=hCe:kA=w6),kA(e)}Wg._cesiumScriptRegex=P6;Wg._buildModuleUrlFromBaseUrl=w6;Wg._clearBaseResource=function(){Ig=void 0};Wg.setBaseUrl=function(e){Ig=Ee.DEFAULT.getDerivedResource({url:e})};Wg.getCesiumBaseUrl=F6;var $t=Wg;var sLt=T(S(),1);function fCe(e,t,n){this.x=e,this.y=t,this.s=n}var Pg=fCe;function XB(e){e=g(e,g.EMPTY_OBJECT),this._xysFileUrlTemplate=Ee.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=g(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=g(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new te(this._sampleZeroJulianEphemerisDate,0,Jn.TAI),this._stepSizeDays=g(e.stepSizeDays,1),this._samplesPerXysFile=g(e.samplesPerXysFile,1e3),this._totalSamples=g(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var pCe=new te(0,0,Jn.TAI);function GB(e,t,n){let i=pCe;return i.dayNumber=t,i.secondsOfDay=n,te.daysDifference(i,e._sampleZeroDateTT)}XB.prototype.preload=function(e,t,n,i){let o=GB(this,e,t),r=GB(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,l=a/this._samplesPerXysFile|0,u=[];for(let m=c;m<=l;++m)u.push(EB(this,m));return Promise.all(u)};XB.prototype.computeXysRadians=function(e,t,n){let i=GB(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,l=this._samples;if(d(l[s*3])||(EB(this,s/this._samplesPerXysFile|0),c=!0),d(l[a*3])||(EB(this,a/this._samplesPerXysFile|0),c=!0),c)return;d(n)?(n.x=0,n.y=0,n.s=0):n=new Pg(0,0,0);let u=i-s*this._stepSizeDays,m=this._work,p=this._denominators,y=this._coef,f=this._xTable,x,_;for(x=0;x<=r;++x)m[x]=u-f[x];for(x=0;x<=r;++x){for(y[x]=1,_=0;_<=r;++_)_!==x&&(y[x]*=m[_]);y[x]*=p[x];let C=(s+x)*3;n.x+=y[x]*l[C++],n.y+=y[x]*l[C++],n.s+=y[x]*l[C]}return n};function EB(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;d(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new Ee({url:$t(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let l=0,u=a.length;l=43200?o=(r+.5)/Qn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Qn.DAYS_PER_JULIAN_CENTURY;let a=(RCe+o*(ZCe+o*(GCe+o*ECe)))*WCe%W.TWO_PI,c=ICe+XCe*(n-24515455e-1),l=(i+Qn.SECONDS_PER_DAY*.5)%Qn.SECONDS_PER_DAY,u=a+c*l,m=Math.cos(u),p=Math.sin(u);return d(t)?(t[0]=m,t[1]=-p,t[2]=0,t[3]=p,t[4]=m,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new $(m,p,0,-p,m,0,0,0,1)};Hi.iau2006XysData=new pL;Hi.earthOrientationParameters=fL.NONE;var FB=32.184,PCe=2451545;Hi.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+FB,i=e.stop.dayNumber,o=e.stop.secondsOfDay+FB;return Hi.iau2006XysData.preload(t,n,i,o)};Hi.computeIcrfToFixedMatrix=function(e,t){d(t)||(t=new $);let n=Hi.computeFixedToIcrfMatrix(e,t);if(d(n))return $.transpose(n,t)};var vCe=new Pg(0,0,0),FCe=new $0(0,0,0,0,0,0),PB=new $,vB=new $;Hi.computeFixedToIcrfMatrix=function(e,t){d(t)||(t=new $);let n=Hi.earthOrientationParameters.compute(e,FCe);if(!d(n))return;let i=e.dayNumber,o=e.secondsOfDay+FB,r=Hi.iau2006XysData.computeXysRadians(i,o,vCe);if(!d(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),l=PB;l[0]=1-c*s*s,l[3]=-c*s*a,l[6]=s,l[1]=-c*s*a,l[4]=1-c*a*a,l[7]=a,l[2]=-s,l[5]=-a,l[8]=1-c*(s*s+a*a);let u=$.fromRotationZ(-r.s,vB),m=$.multiply(l,u,PB),p=e.dayNumber,y=e.secondsOfDay-te.computeTaiMinusUtc(e)+n.ut1MinusUtc,f=p-2451545,x=y/Qn.SECONDS_PER_DAY,_=.779057273264+x+.00273781191135448*(f+x);_=_%1*W.TWO_PI;let C=$.fromRotationZ(_,vB),V=$.multiply(m,C,PB),L=Math.cos(n.xPoleWander),Z=Math.cos(n.yPoleWander),G=Math.sin(n.xPoleWander),X=Math.sin(n.yPoleWander),P=i-PCe+o/Qn.SECONDS_PER_DAY;P/=36525;let v=-47e-6*P*W.RADIANS_PER_DEGREE/3600,A=Math.cos(v),M=Math.sin(v),b=vB;return b[0]=L*A,b[1]=L*M,b[2]=G,b[3]=-Z*M+X*G*A,b[4]=Z*A+X*G*M,b[5]=-X*L,b[6]=-X*M-Z*G*A,b[7]=X*A-Z*G*M,b[8]=Z*L,$.multiply(V,b,t)};var wCe=new se;Hi.pointToWindowCoordinates=function(e,t,n,i){return i=Hi.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};Hi.pointToGLWindowCoordinates=function(e,t,n,i){d(i)||(i=new D);let o=wCe;return w.multiplyByVector(e,se.fromElements(n.x,n.y,n.z,1,o),o),se.multiplyByScalar(o,1/o.w,o),w.multiplyByVector(t,o,o),D.fromCartesian4(o,i)};var ACe=new h,MCe=new h,NCe=new h;Hi.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=g(n,re.WGS84).geodeticSurfaceNormal(e,ACe),r=h.cross(t,o,MCe);h.equalsEpsilon(r,h.ZERO,W.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,NCe);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),d(i)||(i=new $),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var M6=new w(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),N6=new he,U6=new h,UCe=new h,kCe=new $,wB=new w,k6=new w;Hi.basisTo2D=function(e,t,n){let i=w.getTranslation(t,UCe),o=e.ellipsoid,r=o.cartesianToCartographic(i,N6),s=e.project(r,U6);h.fromElements(s.z,s.x,s.y,s);let a=Hi.eastNorthUpToFixedFrame(i,o,wB),c=w.inverseTransformation(a,k6),l=w.getMatrix3(t,kCe),u=w.multiplyByMatrix3(c,l,n);return w.multiply(M6,u,n),w.setTranslation(n,s,n),n};Hi.wgs84To2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=Hi.eastNorthUpToFixedFrame(t,i,wB),r=w.inverseTransformation(o,k6),s=i.cartesianToCartographic(t,N6),a=e.project(s,U6);h.fromElements(a.z,a.x,a.y,a);let c=w.fromTranslation(a,wB);return w.multiply(M6,r,n),w.multiply(c,n,n),n};var vt=Hi;function AB(e){e=g(e,g.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=g(e.primitiveType,we.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=g(e.geometryType,Hd.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}AB.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&d(e.attributes[n])&&d(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var DCe=new he,BCe=new h,D6=new w,YCe=[new he,new he,new he],OCe=[new D,new D,new D],KCe=[new D,new D,new D],HCe=new h,zCe=new Ae,JCe=new w,QCe=new $i;AB._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=de.center(i,DCe),s=he.toCartesian(r,n,BCe),a=vt.eastNorthUpToFixedFrame(s,n,D6),c=w.inverse(a,D6),l=OCe,u=YCe;u[0].longitude=i.west,u[0].latitude=i.south,u[1].longitude=i.west,u[1].latitude=i.north,u[2].longitude=i.east,u[2].latitude=i.south;let m=HCe;for(o=0;o<3;o++)he.toCartesian(u[o],n,m),m=w.multiplyByPointAsVector(c,m,m),l[o].x=m.x,l[o].y=m.y;let p=Ae.fromAxisAngle(h.UNIT_Z,-t,zCe),y=$.fromQuaternion(p,JCe),f=e.length,x=Number.POSITIVE_INFINITY,_=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY,V=Number.NEGATIVE_INFINITY;for(o=0;o{e.onmessage=function(o){let r=o.data.array,s=d(r)&&r[0]===t;i(s),e.terminate(),da._canTransferArrayBuffer=s}})}return da._canTransferArrayBuffer}var NB=new ye;function MB(e){let t;try{t=new Blob([e],{type:"application/javascript"})}catch{let o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,r=new o;r.append(e),t=r.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(t)}function UB(e){let t=new B6.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i={},o;if(Rg(e)){let s=`importScripts("${e}");`;return o=MB(s),new Worker(o,i)}let r=e.replace(/\.js$/,"");if(!n&&typeof CESIUM_WORKERS<"u"){let s=` + importScripts("${MB(CESIUM_WORKERS)}"); + CesiumWorkers["${r}"](); + `;return o=MB(s),new Worker(o,i)}if(o=e,n||(o=$t(`${da._workerModulePrefix+r}.js`)),!Mt.supportsEsmWebWorkers())throw new me("This browser is not supported. Please update your browser to continue.");return i.type="module",new Worker(o,i)}async function qCe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Mt.supportsWebAssembly()){if(!d(t.fallbackModulePath))throw new me(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=$t(t.fallbackModulePath),n}n.wasmBinaryFile=$t(t.wasmBinaryFile);let i=await Ee.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function da(e,t){this._workerPath=e,this._maximumActiveTasks=g(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var $Ce=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(d(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new me(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new fe(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),NB.raiseEvent(s),i(s)}else NB.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},e1e=[];async function t1e(e,t,n){let i=await Promise.resolve(Y6());d(n)?i||(n.length=0):n=e1e;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",$Ce(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:$t.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function n1e(e,t,n){++e._activeTasks;try{let i=await t1e(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}da.prototype.scheduleTask=function(e,t){if(d(this._worker)||(this._worker=UB(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return n1e(this,e,t)};da.prototype.initWebAssemblyModule=async function(e){if(d(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=UB(this._workerPath),i=await qCe(this,e),o=await Promise.resolve(Y6()),r,s=i.wasmBinary;d(s)&&o&&(r=[s]);let a=new Promise((c,l)=>{n.onmessage=function({data:u}){d(u)?c(u.result):l(new me("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};da.prototype.isDestroyed=function(){return!1};da.prototype.destroy=function(){return d(this._worker)&&this._worker.terminate(),ue(this)};da.taskCompletedEvent=NB;da._defaultWorkerModulePrefix="Workers/";da._workerModulePrefix=da._defaultWorkerModulePrefix;da._canTransferArrayBuffer=void 0;var pi=da;function $f(){}$f._transcodeTaskProcessor=new pi("transcodeKTX2",Number.POSITIVE_INFINITY);$f._readyPromise=void 0;function i1e(){let e=$f._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return $f._transcodeTaskProcessor;throw new me("KTX2 transcoder could not be initialized.")});$f._readyPromise=e}$f.transcode=function(e,t){return d($f._readyPromise)||i1e(),$f._readyPromise.then(function(n){let i;if(e instanceof ArrayBuffer){let o=new Uint8Array(e);return i={supportedTargetFormats:t,ktx2Buffer:o},n.scheduleTask(i,[e])}return i={supportedTargetFormats:t,ktx2Buffer:e},n.scheduleTask(i,[e.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]),r=o.length,s;for(s=0;s1/pi. + * + * @alias czm_oneOverPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverPi = ...; + * + * // Example + * float pi = 1.0 / czm_oneOverPi; + */ +const float czm_oneOverPi = 0.3183098861837907; +`;var vZt=T(S(),1),IL=`/** + * A built-in GLSL floating-point constant for 1/2pi. + * + * @alias czm_oneOverTwoPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_TWO_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverTwoPi = ...; + * + * // Example + * float pi = 2.0 * czm_oneOverTwoPi; + */ +const float czm_oneOverTwoPi = 0.15915494309189535; +`;var wZt=T(S(),1),WL=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} + * + * @name czm_passCesium3DTile + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTile = 4.0; +`;var MZt=T(S(),1),PL=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} + * + * @name czm_passCesium3DTileClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassification = 5.0; +`;var UZt=T(S(),1),vL=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} + * + * @name czm_passCesium3DTileClassificationIgnoreShow + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; +`;var DZt=T(S(),1),FL=`/** + * The automatic GLSL constant for {@link Pass#CLASSIFICATION} + * + * @name czm_passClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passClassification = 7.0; +`;var YZt=T(S(),1),wL=`/** + * The automatic GLSL constant for {@link Pass#COMPUTE} + * + * @name czm_passCompute + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCompute = 1.0; +`;var KZt=T(S(),1),AL=`/** + * The automatic GLSL constant for {@link Pass#ENVIRONMENT} + * + * @name czm_passEnvironment + * @glslConstant + * + * @see czm_pass + */ +const float czm_passEnvironment = 0.0; +`;var zZt=T(S(),1),ML=`/** + * The automatic GLSL constant for {@link Pass#GLOBE} + * + * @name czm_passGlobe + * @glslConstant + * + * @see czm_pass + */ +const float czm_passGlobe = 2.0; +`;var QZt=T(S(),1),NL=`/** + * The automatic GLSL constant for {@link Pass#OPAQUE} + * + * @name czm_passOpaque + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOpaque = 7.0; +`;var qZt=T(S(),1),UL=`/** + * The automatic GLSL constant for {@link Pass#OVERLAY} + * + * @name czm_passOverlay + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOverlay = 10.0; +`;var eGt=T(S(),1),kL=`/** + * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} + * + * @name czm_passTerrainClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTerrainClassification = 3.0; +`;var nGt=T(S(),1),DL=`/** + * The automatic GLSL constant for {@link Pass#TRANSLUCENT} + * + * @name czm_passTranslucent + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTranslucent = 8.0; +`;var oGt=T(S(),1),BL=`/** + * The automatic GLSL constant for {@link Pass#VOXELS} + * + * @name czm_passVoxels + * @glslConstant + * + * @see czm_pass + */ +const float czm_passVoxels = 9.0; +`;var sGt=T(S(),1),YL=`/** + * A built-in GLSL floating-point constant for Math.PI. + * + * @alias czm_pi + * @glslConstant + * + * @see CesiumMath.PI + * + * @example + * // GLSL declaration + * const float czm_pi = ...; + * + * // Example + * float twoPi = 2.0 * czm_pi; + */ +const float czm_pi = 3.141592653589793; +`;var cGt=T(S(),1),OL=`/** + * A built-in GLSL floating-point constant for pi/4. + * + * @alias czm_piOverFour + * @glslConstant + * + * @see CesiumMath.PI_OVER_FOUR + * + * @example + * // GLSL declaration + * const float czm_piOverFour = ...; + * + * // Example + * float pi = 4.0 * czm_piOverFour; + */ +const float czm_piOverFour = 0.7853981633974483; +`;var dGt=T(S(),1),KL=`/** + * A built-in GLSL floating-point constant for pi/6. + * + * @alias czm_piOverSix + * @glslConstant + * + * @see CesiumMath.PI_OVER_SIX + * + * @example + * // GLSL declaration + * const float czm_piOverSix = ...; + * + * // Example + * float pi = 6.0 * czm_piOverSix; + */ +const float czm_piOverSix = 0.5235987755982988; +`;var mGt=T(S(),1),HL=`/** + * A built-in GLSL floating-point constant for pi/3. + * + * @alias czm_piOverThree + * @glslConstant + * + * @see CesiumMath.PI_OVER_THREE + * + * @example + * // GLSL declaration + * const float czm_piOverThree = ...; + * + * // Example + * float pi = 3.0 * czm_piOverThree; + */ +const float czm_piOverThree = 1.0471975511965976; +`;var fGt=T(S(),1),zL=`/** + * A built-in GLSL floating-point constant for pi/2. + * + * @alias czm_piOverTwo + * @glslConstant + * + * @see CesiumMath.PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_piOverTwo = ...; + * + * // Example + * float pi = 2.0 * czm_piOverTwo; + */ +const float czm_piOverTwo = 1.5707963267948966; +`;var bGt=T(S(),1),JL=`/** + * A built-in GLSL floating-point constant for converting degrees to radians. + * + * @alias czm_radiansPerDegree + * @glslConstant + * + * @see CesiumMath.RADIANS_PER_DEGREE + * + * @example + * // GLSL declaration + * const float czm_radiansPerDegree = ...; + * + * // Example + * float rad = czm_radiansPerDegree * deg; + */ +const float czm_radiansPerDegree = 0.017453292519943295; +`;var gGt=T(S(),1),QL=`/** + * The constant identifier for the 2D {@link SceneMode} + * + * @name czm_sceneMode2D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode2D = 2.0; +`;var _Gt=T(S(),1),jL=`/** + * The constant identifier for the 3D {@link SceneMode} + * + * @name czm_sceneMode3D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode3D = 3.0; +`;var SGt=T(S(),1),qL=`/** + * The constant identifier for the Columbus View {@link SceneMode} + * + * @name czm_sceneModeColumbusView + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneModeColumbusView = 1.0; +`;var VGt=T(S(),1),$L=`/** + * The constant identifier for the Morphing {@link SceneMode} + * + * @name czm_sceneModeMorphing + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + */ +const float czm_sceneModeMorphing = 0.0; +`;var RGt=T(S(),1),eR=`/** + * A built-in GLSL floating-point constant for one solar radius. + * + * @alias czm_solarRadius + * @glslConstant + * + * @see CesiumMath.SOLAR_RADIUS + * + * @example + * // GLSL declaration + * const float czm_solarRadius = ...; + */ +const float czm_solarRadius = 695500000.0; +`;var GGt=T(S(),1),tR=`/** + * A built-in GLSL floating-point constant for 3pi/2. + * + * @alias czm_threePiOver2 + * @glslConstant + * + * @see CesiumMath.THREE_PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_threePiOver2 = ...; + * + * // Example + * float pi = (2.0 / 3.0) * czm_threePiOver2; + */ +const float czm_threePiOver2 = 4.71238898038469; +`;var XGt=T(S(),1),nR=`/** + * A built-in GLSL floating-point constant for 2pi. + * + * @alias czm_twoPi + * @glslConstant + * + * @see CesiumMath.TWO_PI + * + * @example + * // GLSL declaration + * const float czm_twoPi = ...; + * + * // Example + * float pi = czm_twoPi / 2.0; + */ +const float czm_twoPi = 6.283185307179586; +`;var WGt=T(S(),1),iR=`/** + * The maximum latitude, in radians, both North and South, supported by a Web Mercator + * (EPSG:3857) projection. Technically, the Mercator projection is defined + * for any latitude up to (but not including) 90 degrees, but it makes sense + * to cut it off sooner because it grows exponentially with increasing latitude. + * The logic behind this particular cutoff value, which is the one used by + * Google Maps, Bing Maps, and Esri, is that it makes the projection + * square. That is, the rectangle is equal in the X and Y directions. + * + * The constant value is computed as follows: + * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) + * + * @name czm_webMercatorMaxLatitude + * @glslConstant + */ +const float czm_webMercatorMaxLatitude = 1.4844222297453324; +`;var vGt=T(S(),1),oR=`/** + * @name czm_depthRangeStruct + * @glslStruct + */ +struct czm_depthRangeStruct +{ + float near; + float far; +}; +`;var wGt=T(S(),1),rR=`/** + * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} specular Intensity of incoming light reflecting in a single direction. + * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + */ +struct czm_material +{ + vec3 diffuse; + float specular; + float shininess; + vec3 normal; + vec3 emission; + float alpha; +}; +`;var MGt=T(S(),1),sR=`/** + * Used as input to every material's czm_getMaterial function. + * + * @name czm_materialInput + * @glslStruct + * + * @property {float} s 1D texture coordinates. + * @property {vec2} st 2D texture coordinates. + * @property {vec3} str 3D texture coordinates. + * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. + * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. + * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. + * @property {float} height The height of the terrain in meters above or below the WGS84 ellipsoid. Only available for globe materials. + * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. + * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. + */ +struct czm_materialInput +{ + float s; + vec2 st; + vec3 str; + vec3 normalEC; + mat3 tangentToEyeMatrix; + vec3 positionToEyeEC; + float height; + float slope; + float aspect; +}; +`;var UGt=T(S(),1),aR=`/** + * Struct for representing a material for a {@link Model}. The model + * rendering pipeline will pass this struct between material, custom shaders, + * and lighting stages. This is not to be confused with {@link czm_material} + * which is used by the older Fabric materials system, although they are similar. + *

+ * All color values (diffuse, specular, emissive) are in linear color space. + *

+ * + * @name czm_modelMaterial + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. + * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. + * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. + * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + */ +struct czm_modelMaterial { + vec3 diffuse; + float alpha; + vec3 specular; + float roughness; + vec3 normalEC; + float occlusion; + vec3 emissive; +}; +`;var DGt=T(S(),1),cR=`/** + * Struct for representing the output of a custom vertex shader. + * + * @name czm_modelVertexOutput + * @glslStruct + * + * @see {@link CustomShader} + * @see {@link Model} + * + * @property {vec3} positionMC The position of the vertex in model coordinates + * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. + */ +struct czm_modelVertexOutput { + vec3 positionMC; + float pointSize; +}; +`;var YGt=T(S(),1),lR=`/** + * Parameters for {@link czm_pbrLighting} + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuseColor the diffuse color of the material for the lambert term of the rendering equation + * @property {float} roughness a value from 0.0 to 1.0 that indicates how rough the surface of the material is. + * @property {vec3} f0 The reflectance of the material at normal incidence + */ +struct czm_pbrParameters +{ + vec3 diffuseColor; + float roughness; + vec3 f0; +}; +`;var KGt=T(S(),1),dR=`/** + * DOC_TBA + * + * @name czm_ray + * @glslStruct + */ +struct czm_ray +{ + vec3 origin; + vec3 direction; +}; +`;var zGt=T(S(),1),uR=`/** + * DOC_TBA + * + * @name czm_raySegment + * @glslStruct + */ +struct czm_raySegment +{ + float start; + float stop; +}; + +/** + * DOC_TBA + * + * @name czm_emptyRaySegment + * @glslConstant + */ +const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); + +/** + * DOC_TBA + * + * @name czm_fullRaySegment + * @glslConstant + */ +const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); +`;var QGt=T(S(),1),mR=`struct czm_shadowParameters +{ +#ifdef USE_CUBE_MAP_SHADOW + vec3 texCoords; +#else + vec2 texCoords; +#endif + + float depthBias; + float depth; + float nDotL; + vec2 texelStepSize; + float normalShadingSmooth; + float darkness; +}; +`;var qGt=T(S(),1),hR=`/** + * Converts an HSB color (hue, saturation, brightness) to RGB + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_HSBToRGB + * @glslFunction + * + * @param {vec3} hsb The color in HSB. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + +vec3 czm_HSBToRGB(vec3 hsb) +{ + vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); + return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); +} +`;var eEt=T(S(),1),fR=`/** + * Converts an HSL color (hue, saturation, lightness) to RGB + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_HSLToRGB + * @glslFunction + * + * @param {vec3} rgb The color in HSL. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 hueToRGB(float hue) +{ + float r = abs(hue * 6.0 - 3.0) - 1.0; + float g = 2.0 - abs(hue * 6.0 - 2.0); + float b = 2.0 - abs(hue * 6.0 - 4.0); + return clamp(vec3(r, g, b), 0.0, 1.0); +} + +vec3 czm_HSLToRGB(vec3 hsl) +{ + vec3 rgb = hueToRGB(hsl.x); + float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; + return (rgb - 0.5) * c + hsl.z; +} +`;var nEt=T(S(),1),pR=`/** + * Converts an RGB color to HSB (hue, saturation, brightness) + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_RGBToHSB + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + +vec3 czm_RGBToHSB(vec3 rgb) +{ + vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); + vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); + + float d = q.x - min(q.w, q.y); + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); +} +`;var oEt=T(S(),1),bR=`/** + * Converts an RGB color to HSL (hue, saturation, lightness) + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_RGBToHSL + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSL. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 RGBtoHCV(vec3 rgb) +{ + // Based on work by Sam Hocevar and Emil Persson + vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); + vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); + float c = q.x - min(q.w, q.y); + float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); + return vec3(h, c, q.x); +} + +vec3 czm_RGBToHSL(vec3 rgb) +{ + vec3 hcv = RGBtoHCV(rgb); + float l = hcv.z - hcv.y * 0.5; + float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); + return vec3(hcv.x, s, l); +} +`;var sEt=T(S(),1),yR=`/** + * Converts an RGB color to CIE Yxy. + *

The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + *

+ * + * @name czm_RGBToXYZ + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in CIE Yxy. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_RGBToXYZ(vec3 rgb) +{ + const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, + 0.3576, 0.7152, 0.1192, + 0.1805, 0.0722, 0.9505); + vec3 xyz = RGB2XYZ * rgb; + vec3 Yxy; + Yxy.r = xyz.g; + float temp = dot(vec3(1.0), xyz); + Yxy.gb = xyz.rg / temp; + return Yxy; +} +`;var cEt=T(S(),1),gR=`/** + * Converts a CIE Yxy color to RGB. + *

The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + *

+ * + * @name czm_XYZToRGB + * @glslFunction + * + * @param {vec3} Yxy The color in CIE Yxy. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_XYZToRGB(vec3 Yxy) +{ + const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, + -1.5371, 1.8760, -0.2040, + -0.4985, 0.0416, 1.0572); + vec3 xyz; + xyz.r = Yxy.r * Yxy.g / Yxy.b; + xyz.g = Yxy.r; + xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; + + return XYZ2RGB * xyz; +} +`;var dEt=T(S(),1),xR=`// See: +// https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + +vec3 czm_acesTonemapping(vec3 color) { + float g = 0.985; + float a = 0.065; + float b = 0.0001; + float c = 0.433; + float d = 0.238; + + color = (color * (color + a) - b) / (color * (g * color + c) + d); + + color = clamp(color, 0.0, 1.0); + + return color; +} +`;var mEt=T(S(),1),_R=`/** + * @private + */ +float czm_alphaWeight(float a) +{ + float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + + // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: + // http://jcgt.org/published/0002/02/09/ + return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); +} +`;var fEt=T(S(),1),TR=`/** + * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. + * + * @name czm_antialias + * @glslFunction + * + * @param {vec4} color1 The color on one side of the edge. + * @param {vec4} color2 The color on the other side of the edge. + * @param {vec4} currentcolor The current color, either color1 or color2. + * @param {float} dist The distance to the edge in texture coordinates. + * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. + * @returns {vec4} The anti-aliased color. + * + * @example + * // GLSL declarations + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); + * + * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space + * float dist = abs(textureCoordinates.t - 0.5); + * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); + * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); + */ +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) +{ + float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); + float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); + val1 = val1 * (1.0 - val2); + val1 = val1 * val1 * (3.0 - (2.0 * val1)); + val1 = pow(val1, 0.5); //makes the transition nicer + + vec4 midColor = (color1 + color2) * 0.5; + return mix(midColor, currentColor, val1); +} + +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) +{ + return czm_antialias(color1, color2, currentColor, dist, 0.1); +} +`;var bEt=T(S(),1),SR=`/** + * Approximately computes spherical coordinates given a normal. + * Uses approximate inverse trigonometry for speed and consistency, + * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. + * + * @name czm_approximateSphericalCoordinates + * @glslFunction + * + * @param {vec3} normal arbitrary-length normal. + * + * @returns {vec2} Approximate latitude and longitude spherical coordinates. + */ +vec2 czm_approximateSphericalCoordinates(vec3 normal) { + // Project into plane with vertical for latitude + float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); + float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); + return vec2(latitudeApproximation, longitudeApproximation); +} +`;var gEt=T(S(),1),CR=`/** + * Determines if the fragment is back facing + * + * @name czm_backFacing + * @glslFunction + * + * @returns {bool} true if the fragment is back facing; otherwise, false. + */ +bool czm_backFacing() +{ + // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. + return gl_FrontFacing == false; +} +`;var _Et=T(S(),1),VR=`/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a float expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {float} a Value to return if the comparison is true. + * @param {float} b Value to return if the comparison is false. + * + * @returns {float} equivalent of comparison ? a : b + */ +float czm_branchFreeTernary(bool comparison, float a, float b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec2 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec2} a Value to return if the comparison is true. + * @param {vec2} b Value to return if the comparison is false. + * + * @returns {vec2} equivalent of comparison ? a : b + */ +vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec3 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec4 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} +`;var SEt=T(S(),1),LR=` +vec4 czm_cascadeColor(vec4 weights) +{ + return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; +} +`;var VEt=T(S(),1),RR=` +uniform vec4 shadowMap_cascadeDistances; + +float czm_cascadeDistance(vec4 weights) +{ + return dot(shadowMap_cascadeDistances, weights); +} +`;var REt=T(S(),1),ZR=` +uniform mat4 shadowMap_cascadeMatrices[4]; + +mat4 czm_cascadeMatrix(vec4 weights) +{ + return shadowMap_cascadeMatrices[0] * weights.x + + shadowMap_cascadeMatrices[1] * weights.y + + shadowMap_cascadeMatrices[2] * weights.z + + shadowMap_cascadeMatrices[3] * weights.w; +} +`;var GEt=T(S(),1),GR=` +uniform vec4 shadowMap_cascadeSplits[2]; + +vec4 czm_cascadeWeights(float depthEye) +{ + // One component is set to 1.0 and all others set to 0.0. + vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); + vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); + return near * far; +} +`;var XEt=T(S(),1),ER=`/** + * DOC_TBA + * + * @name czm_columbusViewMorph + * @glslFunction + */ +vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) +{ + // Just linear for now. + vec3 p = mix(position2D.xyz, position3D.xyz, time); + return vec4(p, 1.0); +} +`;var WEt=T(S(),1),XR=`/** + * Returns a position in model coordinates relative to eye taking into + * account the current scene mode: 3D, 2D, or Columbus view. + *

+ * This uses standard position attributes, position3DHigh, + * position3DLow, position2DHigh, and position2DLow, + * and should be used when writing a vertex shader for an {@link Appearance}. + *

+ * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var vEt=T(S(),1),IR=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var wEt=T(S(),1),WR=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var MEt=T(S(),1),PR=`/** + * Get default parameters for physically based rendering. These defaults + * describe a rough dielectric (non-metal) surface (e.g. rough plastic). + * + * @return {czm_pbrParameters} Default parameters for {@link czm_pbrLighting} + */ +czm_pbrParameters czm_defaultPbrMaterial() +{ + czm_pbrParameters results; + results.diffuseColor = vec3(1.0); + results.roughness = 1.0; + + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + results.f0 = REFLECTANCE_DIELECTRIC; + return results; +} +`;var UEt=T(S(),1),vR=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var DEt=T(S(),1),FR=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + *

+ * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at positionMC, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var YEt=T(S(),1),wR=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var KEt=T(S(),1),AR=`/** + * DOC_TBA + * + * @name czm_ellipsoidWgs84TextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var zEt=T(S(),1),MR=`/** + * Compares left and right componentwise. Returns true + * if they are within epsilon and false otherwise. The inputs + * left and right can be floats, vec2s, + * vec3s, or vec4s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} true if the components are within epsilon and false otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var QEt=T(S(),1),NR=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var qEt=T(S(),1),UR=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

+ * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var eXt=T(S(),1),kR=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var nXt=T(S(),1),DR=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var oXt=T(S(),1),BR=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var sXt=T(S(),1),YR=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var cXt=T(S(),1),OR=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var dXt=T(S(),1),KR=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var mXt=T(S(),1),HR=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var fXt=T(S(),1),zR=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var bXt=T(S(),1),JR=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var gXt=T(S(),1),QR=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var _Xt=T(S(),1),jR=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var SXt=T(S(),1),qR=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var VXt=T(S(),1),$R=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var RXt=T(S(),1),eZ=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var GXt=T(S(),1),tZ=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var XXt=T(S(),1),nZ=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var WXt=T(S(),1),iZ=`/** + * Computes the size of a pixel in meters at a distance from the eye. + *

+ * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + *

+ * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + *

+ * Use this version when scaling by pixel ratio. + *

+ * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var vXt=T(S(),1),oZ=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

+ * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + *

+ * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 q = czm_modelViewProjection * position; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var wXt=T(S(),1),rZ=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var MXt=T(S(),1),sZ=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var UXt=T(S(),1),aZ=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var DXt=T(S(),1),cZ=`/** + * Packs a depth value into a vec3 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec3} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var YXt=T(S(),1),lZ=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0); +} + +float smithVisibilityG1(float NdotV, float roughness) +{ + // this is the k value for direct lighting. + // for image based lighting it will be roughness^2 / 2 + float k = (roughness + 1.0) * (roughness + 1.0) / 8.0; + return NdotV / (NdotV * (1.0 - k) + k); +} + +float smithVisibilityGGX(float roughness, float NdotL, float NdotV) +{ + return ( + smithVisibilityG1(NdotL, roughness) * + smithVisibilityG1(NdotV, roughness) + ); +} + +float GGX(float roughness, float NdotH) +{ + float roughnessSquared = roughness * roughness; + float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0; + return roughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + *

+ * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@czm_pbrMetallicRoughnessMaterial}, {@czm_pbrSpecularGlossinessMaterial} and {@czm_defaultPbrMaterial} + *

+ * + * @name czm_pbrlighting + * @glslFunction + * + * @param {vec3} positionEC The position of the fragment in eye coordinates + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} lightColorHdr radiance of the light source. This is a HDR value. + * @param {czm_pbrParameters} The computed PBR parameters. + * @return {vec3} The computed HDR color + * + * @example + * czm_pbrParameters pbrParameters = czm_pbrMetallicRoughnessMaterial( + * baseColor, + * metallic, + * roughness + * ); + * vec3 color = czm_pbrlighting( + * positionEC, + * normalEC, + * lightDirectionEC, + * lightColorHdr, + * pbrParameters); + */ +vec3 czm_pbrLighting( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) +{ + vec3 v = -normalize(positionEC); + vec3 l = normalize(lightDirectionEC); + vec3 h = normalize(v + l); + vec3 n = normalEC; + float NdotL = clamp(dot(n, l), 0.001, 1.0); + float NdotV = abs(dot(n, v)) + 0.001; + float NdotH = clamp(dot(n, h), 0.0, 1.0); + float LdotH = clamp(dot(l, h), 0.0, 1.0); + float VdotH = clamp(dot(v, h), 0.0, 1.0); + + vec3 f0 = pbrParameters.f0; + float reflectance = max(max(f0.r, f0.g), f0.b); + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + float alpha = pbrParameters.roughness; + float G = smithVisibilityGGX(alpha, NdotL, NdotV); + float D = GGX(alpha, NdotH); + vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV); + + vec3 diffuseColor = pbrParameters.diffuseColor; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL * lightColorHdr; +} +`;var KXt=T(S(),1),dZ=`/** + * Compute parameters for physically based rendering using the + * metallic/roughness workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrMetallicRoughnessMaterial + * @glslFunction + * + * @param {vec3} baseColor For dielectrics, this is the base color. For metals, this is the f0 value (reflectance at normal incidence) + * @param {float} metallic 0.0 indicates dielectric. 1.0 indicates metal. Values in between are allowed (e.g. to model rust or dirt); + * @param {float} roughness A value between 0.0 and 1.0 + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrMetallicRoughnessMaterial( + vec3 baseColor, + float metallic, + float roughness +) +{ + czm_pbrParameters results; + + // roughness is authored as perceptual roughness + // square it to get material roughness + roughness = clamp(roughness, 0.0, 1.0); + results.roughness = roughness * roughness; + + // dielectrics use f0 = 0.04, metals use albedo as f0 + metallic = clamp(metallic, 0.0, 1.0); + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + vec3 f0 = mix(REFLECTANCE_DIELECTRIC, baseColor, metallic); + results.f0 = f0; + + // diffuse only applies to dielectrics. + results.diffuseColor = baseColor * (1.0 - f0) * (1.0 - metallic); + + return results; +} +`;var zXt=T(S(),1),uZ=`/** + * Compute parameters for physically based rendering using the + * specular/glossy workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrSpecularGlossinessMaterial + * @glslFunction + * + * @param {vec3} diffuse The diffuse color for dielectrics (non-metals) + * @param {vec3} specular The reflectance at normal incidence (f0) + * @param {float} glossiness A number from 0.0 to 1.0 indicating how smooth the surface is. + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrSpecularGlossinessMaterial( + vec3 diffuse, + vec3 specular, + float glossiness +) +{ + czm_pbrParameters results; + + // glossiness is the opposite of roughness, but easier for artists to use. + float roughness = 1.0 - glossiness; + results.roughness = roughness * roughness; + + results.diffuseColor = diffuse * (1.0 - max(max(specular.r, specular.g), specular.b)); + results.f0 = specular; + + return results; +} +`;var QXt=T(S(),1),mZ=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var qXt=T(S(),1),hZ=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var eIt=T(S(),1),fZ=`/** + * Computes the point along a ray at the given time. time can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var nIt=T(S(),1),pZ=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var oIt=T(S(),1),bZ=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var sIt=T(S(),1),yZ=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var cIt=T(S(),1),gZ=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var dIt=T(S(),1),xZ=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var mIt=T(S(),1),_Z=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var fIt=T(S(),1),TZ=`/** + * Samples the 4 neighboring pixels and return the weighted average. + * + * @private + */ +vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod) +{ + direction /= dot(vec3(1.0), abs(direction)); + vec2 rev = abs(direction.zx) - vec2(1.0); + vec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x, + direction.z < 0.0 ? rev.y : -rev.y); + vec2 uv = direction.y < 0.0 ? neg : direction.xz; + vec2 coord = 0.5 * uv + vec2(0.5); + vec2 pixel = 1.0 / textureSize; + + if (lod > 0.0) + { + // Each subseqeuent mip level is half the size + float scale = 1.0 / pow(2.0, lod); + float offset = ((textureSize.y + 1.0) / textureSize.x); + + coord.x *= offset; + coord *= scale; + + coord.x += offset + pixel.x; + coord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0; + } + else + { + coord.x *= (textureSize.y / textureSize.x); + } + + // Do bilinear filtering + #ifndef OES_texture_float_linear + vec3 color1 = texture(projectedMap, coord + vec2(0.0, pixel.y)).rgb; + vec3 color2 = texture(projectedMap, coord + vec2(pixel.x, 0.0)).rgb; + vec3 color3 = texture(projectedMap, coord + pixel).rgb; + vec3 color4 = texture(projectedMap, coord).rgb; + + vec2 texturePosition = coord * textureSize; + + float fu = fract(texturePosition.x); + float fv = fract(texturePosition.y); + + vec3 average1 = mix(color4, color2, fu); + vec3 average2 = mix(color1, color3, fu); + + vec3 color = mix(average1, average2, fv); + #else + vec3 color = texture(projectedMap, coord).rgb; + #endif + + return color; +} + + +/** + * Samples from a cube map that has been projected using an octahedral projection from the given direction. + * + * @name czm_sampleOctahedralProjection + * @glslFunction + * + * @param {sampler2D} projectedMap The texture with the octahedral projected cube map. + * @param {vec2} textureSize The width and height dimensions in pixels of the projected map. + * @param {vec3} direction The normalized direction used to sample the cube map. + * @param {float} lod The level of detail to sample. + * @param {float} maxLod The maximum level of detail. + * @returns {vec3} The color of the cube map at the direction. + */ +vec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) { + float currentLod = floor(lod + 0.5); + float nextLod = min(currentLod + 1.0, maxLod); + + vec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod); + vec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod); + + return mix(colorNextLod, colorCurrentLod, nextLod - lod); +} +`;var bIt=T(S(),1),SZ=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var gIt=T(S(),1),CZ=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var _It=T(S(),1),VZ=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var SIt=T(S(),1),LZ=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function sign except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var VIt=T(S(),1),RZ=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + *

+ * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + *

+ * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + return + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); +} +`;var RIt=T(S(),1),ZZ=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var GIt=T(S(),1),GZ=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var XIt=T(S(),1),EZ=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinates to sample the texture at. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +}`;var WIt=T(S(),1),XZ=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var vIt=T(S(),1),IZ=`/** + * Translates a position (or any vec3) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate high and low bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + *

+ * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + *

+ * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var wIt=T(S(),1),WZ=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var MIt=T(S(),1),PZ=`/** + * Returns the transpose of the matrix. The input matrix can be + * a mat2, mat3, or mat4. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var UIt=T(S(),1),vZ=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ + float czm_unpackDepth(vec4 packedDepth) + { + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); + } +`;var DIt=T(S(),1),FZ=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var YIt=T(S(),1),wZ=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + *

+ * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + *

+ * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var KIt=T(S(),1),AZ=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var zIt=T(S(),1),MZ=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + *

+ * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + *

+ * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var QIt=T(S(),1),NZ=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of czm_viewportTransformation. The transformation from + * normalized device coordinates to clip coordinates is done using fragmentCoordinate.w, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision + return eyeCoordinate; +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var qIt=T(S(),1),UZ=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var eWt=T(S(),1),kZ=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

+ * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when + * ray-casting geometry using a full screen quad. + *

+ * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

+ * Use this when the vertex shader calls {@link czm_vertexlogDepth}. + *

+ * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var nWt=T(S(),1),DZ=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var vg={czm_degreesPerRadian:_L,czm_depthRange:TL,czm_epsilon1:SL,czm_epsilon2:CL,czm_epsilon3:VL,czm_epsilon4:LL,czm_epsilon5:RL,czm_epsilon6:ZL,czm_epsilon7:GL,czm_infinity:EL,czm_oneOverPi:XL,czm_oneOverTwoPi:IL,czm_passCesium3DTile:WL,czm_passCesium3DTileClassification:PL,czm_passCesium3DTileClassificationIgnoreShow:vL,czm_passClassification:FL,czm_passCompute:wL,czm_passEnvironment:AL,czm_passGlobe:ML,czm_passOpaque:NL,czm_passOverlay:UL,czm_passTerrainClassification:kL,czm_passTranslucent:DL,czm_passVoxels:BL,czm_pi:YL,czm_piOverFour:OL,czm_piOverSix:KL,czm_piOverThree:HL,czm_piOverTwo:zL,czm_radiansPerDegree:JL,czm_sceneMode2D:QL,czm_sceneMode3D:jL,czm_sceneModeColumbusView:qL,czm_sceneModeMorphing:$L,czm_solarRadius:eR,czm_threePiOver2:tR,czm_twoPi:nR,czm_webMercatorMaxLatitude:iR,czm_depthRangeStruct:oR,czm_material:rR,czm_materialInput:sR,czm_modelMaterial:aR,czm_modelVertexOutput:cR,czm_pbrParameters:lR,czm_ray:dR,czm_raySegment:uR,czm_shadowParameters:mR,czm_HSBToRGB:hR,czm_HSLToRGB:fR,czm_RGBToHSB:pR,czm_RGBToHSL:bR,czm_RGBToXYZ:yR,czm_XYZToRGB:gR,czm_acesTonemapping:xR,czm_alphaWeight:_R,czm_antialias:TR,czm_approximateSphericalCoordinates:SR,czm_backFacing:CR,czm_branchFreeTernary:VR,czm_cascadeColor:LR,czm_cascadeDistance:RR,czm_cascadeMatrix:ZR,czm_cascadeWeights:GR,czm_columbusViewMorph:ER,czm_computePosition:XR,czm_cosineAndSine:IR,czm_decompressTextureCoordinates:WR,czm_defaultPbrMaterial:PR,czm_depthClamp:vR,czm_eastNorthUpToEyeCoordinates:FR,czm_ellipsoidContainsPoint:wR,czm_ellipsoidWgs84TextureCoordinates:AR,czm_equalsEpsilon:MR,czm_eyeOffset:NR,czm_eyeToWindowCoordinates:UR,czm_fastApproximateAtan:kR,czm_fog:DR,czm_gammaCorrect:BR,czm_geodeticSurfaceNormal:YR,czm_getDefaultMaterial:OR,czm_getLambertDiffuse:KR,czm_getSpecular:HR,czm_getWaterNoise:zR,czm_hue:JR,czm_inverseGamma:QR,czm_isEmpty:jR,czm_isFull:qR,czm_latitudeToWebMercatorFraction:$R,czm_lineDistance:eZ,czm_linearToSrgb:tZ,czm_luminance:nZ,czm_metersPerPixel:iZ,czm_modelToWindowCoordinates:oZ,czm_multiplyWithColorBalance:rZ,czm_nearFarScalar:sZ,czm_octDecode:aZ,czm_packDepth:cZ,czm_pbrLighting:lZ,czm_pbrMetallicRoughnessMaterial:dZ,czm_pbrSpecularGlossinessMaterial:uZ,czm_phong:mZ,czm_planeDistance:hZ,czm_pointAlongRay:fZ,czm_rayEllipsoidIntersectionInterval:pZ,czm_raySphereIntersectionInterval:bZ,czm_readDepth:yZ,czm_readNonPerspective:gZ,czm_reverseLogDepth:xZ,czm_round:_Z,czm_sampleOctahedralProjection:TZ,czm_saturation:SZ,czm_shadowDepthCompare:CZ,czm_shadowVisibility:VZ,czm_signNotZero:LZ,czm_sphericalHarmonics:RZ,czm_srgbToLinear:ZZ,czm_tangentToEyeSpaceMatrix:GZ,czm_textureCube:EZ,czm_transformPlane:XZ,czm_translateRelativeToEye:IZ,czm_translucentPhong:WZ,czm_transpose:PZ,czm_unpackDepth:vZ,czm_unpackFloat:FZ,czm_unpackUint:wZ,czm_valueTransform:AZ,czm_vertexLogDepth:MZ,czm_windowToEyeCoordinates:NZ,czm_writeDepthClamp:UZ,czm_writeLogDepth:kZ,czm_writeNonPerspective:DZ};var EPt=T(S(),1);function r1e(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"varying $2"),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +${n}`):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var BZ=r1e;function H6(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r=0;--o)i=`${i+t[o].glslSource} +`;return i.replace(n.glslSource,"")}function Q6(e,t,n){let i,o,r="",s=e.sources;if(d(s))for(i=0,o=s.length;i-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};im.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(d(o))return o.shaderProgram};im.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new Be({sources:[r]})),typeof s=="string"&&(s=new Be({sources:[s]}));let c=this._context,l=r.createCombinedVertexShader(c),u=s.createCombinedFragmentShader(c),m=new Qt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:l,fragmentShaderSource:s,fragmentShaderText:u,attributeLocations:a}),p={cache:this,shaderProgram:m,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),m._cachedShader=p,this._shaders[o]=p,m};function kB(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var ep={high:0,low:0};vh.fromCartesian=function(e,t){d(t)||(t=new vh);let n=t.high,i=t.low;return vh.encode(e.x,ep),n.x=ep.high,i.x=ep.low,vh.encode(e.y,ep),n.y=ep.high,i.y=ep.low,vh.encode(e.z,ep),n.z=ep.high,i.z=ep.low,t};var DB=new vh;vh.writeElements=function(e,t,n){vh.fromCartesian(e,DB);let i=DB.high,o=DB.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var On=vh;var Mvt=T(S(),1);var Wvt=T(S(),1);var Cvt=T(S(),1);var pvt=T(S(),1);function _s(e,t){this.normal=h.clone(e),this.distance=t}_s.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return d(n)?(h.clone(t,n.normal),n.distance=i,n):new _s(t,i)};var m1e=new h;_s.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,m1e),i=e.w;return d(t)?(h.clone(n,t.normal),t.distance=i,t):new _s(n,i)};_s.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var h1e=new h;_s.projectPointOntoPlane=function(e,t,n){d(n)||(n=new h);let i=_s.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,h1e);return h.subtract(t,o,n)};var f1e=new w,p1e=new se,b1e=new h;_s.transform=function(e,t,n){let i=e.normal,o=e.distance,r=w.inverseTranspose(t,f1e),s=se.fromElements(i.x,i.y,i.z,o,p1e);s=w.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,b1e);return s=se.divideByScalar(s,h.magnitude(a),s),_s.fromCartesian4(s,n)};_s.clone=function(e,t){return d(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new _s(e.normal,e.distance)};_s.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};_s.ORIGIN_XY_PLANE=Object.freeze(new _s(h.UNIT_Z,0));_s.ORIGIN_YZ_PLANE=Object.freeze(new _s(h.UNIT_X,0));_s.ORIGIN_ZX_PLANE=Object.freeze(new _s(h.UNIT_Y,0));var on=_s;function zd(e){this.planes=g(e,[])}var KZ=[new h,new h,new h];h.clone(h.UNIT_X,KZ[0]);h.clone(h.UNIT_Y,KZ[1]);h.clone(h.UNIT_Z,KZ[2]);var rb=new h,y1e=new h,$6=new on(new h(1,0,0),0);zd.fromBoundingSphere=function(e,t){d(t)||(t=new zd);let n=KZ.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;aG1e;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*W.TWO_PI,o}function X1e(e,t){let n=Math.floor(e/W.TWO_PI);e-=n*W.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=W.zeroToTwoPi(r),e<0&&(r-=W.TWO_PI),r+=n*W.TWO_PI,r}function I1e(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),l=Math.sin(n);return d(i)?(i[0]=c*o-l*r*s,i[1]=l*o+c*r*s,i[2]=r*a,i[3]=-c*r-l*o*s,i[4]=-l*r+c*o*s,i[5]=o*a,i[6]=l*a,i[7]=-c*a,i[8]=s):i=new $(c*o-l*r*s,-c*r-l*o*s,l*a,l*o+c*r*s,-l*r+c*o*s,-c*a,r*a,o*a,s),i}var W1e=1.0000010178*ua,P1e=100.46645683*Jd,v1e=129597742283429e-5*Yl,nq=16002,iq=21863,oq=32004,rq=10931,sq=14529,aq=16368,cq=15318,lq=32794,F1e=64*1e-7*ua,w1e=-152*1e-7*ua,A1e=62*1e-7*ua,M1e=-8*1e-7*ua,N1e=32*1e-7*ua,U1e=-41*1e-7*ua,k1e=19*1e-7*ua,D1e=-11*1e-7*ua,B1e=-150*1e-7*ua,Y1e=-46*1e-7*ua,O1e=68*1e-7*ua,K1e=54*1e-7*ua,H1e=14*1e-7*ua,z1e=24*1e-7*ua,J1e=-28*1e-7*ua,Q1e=22*1e-7*ua,dq=10,uq=16002,mq=21863,hq=10931,fq=1473,pq=32004,bq=4387,yq=73,j1e=-325*1e-7,q1e=-322*1e-7,$1e=-79*1e-7,eVe=232*1e-7,tVe=-52*1e-7,nVe=97*1e-7,iVe=55*1e-7,oVe=-41*1e-7,rVe=-105*1e-7,sVe=-137*1e-7,aVe=258*1e-7,cVe=35*1e-7,lVe=-116*1e-7,dVe=-88*1e-7,uVe=-112*1e-7,mVe=-80*1e-7,cS=new te(0,0,Jn.TAI);function hVe(e,t){xq(e,cS);let i=(cS.dayNumber-HA.dayNumber+(cS.secondsOfDay-HA.secondsOfDay)/Qn.SECONDS_PER_DAY)/(Qn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=W1e+F1e*Math.cos(nq*o)+B1e*Math.sin(nq*o)+w1e*Math.cos(iq*o)+Y1e*Math.sin(iq*o)+A1e*Math.cos(oq*o)+O1e*Math.sin(oq*o)+M1e*Math.cos(rq*o)+K1e*Math.sin(rq*o)+N1e*Math.cos(sq*o)+H1e*Math.sin(sq*o)+U1e*Math.cos(aq*o)+z1e*Math.sin(aq*o)+k1e*Math.cos(cq*o)+J1e*Math.sin(cq*o)+D1e*Math.cos(lq*o)+Q1e*Math.sin(lq*o),s=P1e+v1e*i+j1e*Math.cos(dq*o)+rVe*Math.sin(dq*o)+q1e*Math.cos(uq*o)+sVe*Math.sin(uq*o)+$1e*Math.cos(mq*o)+aVe*Math.sin(mq*o)+eVe*Math.cos(hq*o)+cVe*Math.sin(hq*o)+tVe*Math.cos(fq*o)+lVe*Math.sin(fq*o)+nVe*Math.cos(pq*o)+dVe*Math.sin(pq*o)+iVe*Math.cos(bq*o)+uVe*Math.sin(bq*o)+oVe*Math.cos(yq*o)+mVe*Math.sin(yq*o),a=.0167086342-.0004203654*i,c=102.93734808*Jd+11612.3529*Yl*i,l=469.97289*Yl*i,u=174.87317577*Jd-8679.27034*Yl*i;return _q(r,a,l,c,u,s,t)}function Tq(e,t){xq(e,cS);let i=(cS.dayNumber-HA.dayNumber+(cS.secondsOfDay-HA.secondsOfDay)/Qn.SECONDS_PER_DAY)/Qn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,l=5.15668983*Jd,u=-8e-5*i+.02966*o-42e-6*r-13e-8*s,m=83.35324312*Jd,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,y=125.04455501*Jd,f=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*Jd,_=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,C=297.85019547*Jd+Yl*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),V=93.27209062*Jd+Yl*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),L=134.96340251*Jd+Yl*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),Z=357.52910918*Jd+Yl*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),G=310.17137918*Jd-Yl*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),X=2*C,P=4*C,v=6*C,A=2*L,M=3*L,b=4*L,R=2*V;a+=3400.4*Math.cos(X)-635.6*Math.cos(X-L)-235.6*Math.cos(L)+218.1*Math.cos(X-Z)+181*Math.cos(X+L),c+=.014216*Math.cos(X-L)+.008551*Math.cos(X-A)-.001383*Math.cos(L)+.001356*Math.cos(X+L)-.001147*Math.cos(P-M)-914e-6*Math.cos(P-A)+869e-6*Math.cos(X-Z-L)-627e-6*Math.cos(X)-394e-6*Math.cos(P-b)+282e-6*Math.cos(X-Z-A)-279e-6*Math.cos(C-L)-236e-6*Math.cos(A)+231e-6*Math.cos(P)+229e-6*Math.cos(v-b)-201e-6*Math.cos(A-R),u+=486.26*Math.cos(X-R)-40.13*Math.cos(X)+37.51*Math.cos(R)+25.73*Math.cos(A-R)+19.97*Math.cos(X-Z-R),p+=-55609*Math.sin(X-L)-34711*Math.sin(X-A)-9792*Math.sin(L)+9385*Math.sin(P-M)+7505*Math.sin(P-A)+5318*Math.sin(X+L)+3484*Math.sin(P-b)-3417*Math.sin(X-Z-L)-2530*Math.sin(v-b)-2376*Math.sin(X)-2075*Math.sin(X-M)-1883*Math.sin(A)-1736*Math.sin(v-5*L)+1626*Math.sin(Z)-1370*Math.sin(v-M),f+=-5392*Math.sin(X-R)-540*Math.sin(Z)-441*Math.sin(X)+423*Math.sin(R)-288*Math.sin(A-R),_+=-3332.9*Math.sin(X)+1197.4*Math.sin(X-L)-662.5*Math.sin(Z)+396.3*Math.sin(L)-218*Math.sin(X-Z);let E=2*G,I=3*G;u+=46.997*Math.cos(G)*i-.614*Math.cos(X-R+G)*i+.614*Math.cos(X-R-G)*i-.0297*Math.cos(E)*o-.0335*Math.cos(G)*o+.0012*Math.cos(X-R+E)*o-16e-5*Math.cos(G)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(E)*r;let F=2.116*Math.sin(G)*i-.111*Math.sin(X-R-G)*i-.0015*Math.sin(G)*o;p+=F,_+=F,f+=-520.77*Math.sin(G)*i+13.66*Math.sin(X-R+G)*i+1.12*Math.sin(X-G)*i-1.06*Math.sin(R-G)*i+.66*Math.sin(E)*o+.371*Math.sin(G)*o-.035*Math.sin(X-R+E)*o-.015*Math.sin(X-R+G)*o+.0014*Math.sin(G)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(E)*r,a*=V1e;let N=l+u*Yl,Y=m+p*Yl,k=x+_*Yl,O=y+f*Yl;return _q(a,c,N,Y,O,k,t)}var gq=.012300034,fVe=gq/(gq+1)*-1;function pVe(e,t){return t=Tq(e,t),h.multiplyByScalar(t,fVe,t)}var Sq=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),HZ=new h;YB.computeSunPositionInEarthInertialFrame=function(e,t){return d(e)||(e=te.now()),d(t)||(t=new h),HZ=hVe(e,HZ),t=h.negate(HZ,t),pVe(e,HZ),h.subtract(t,HZ,t),$.multiplyByVector(Sq,t,t),t};YB.computeMoonPositionInEarthInertialFrame=function(e,t){return d(e)||(e=te.now()),t=Tq(e,t),$.multiplyByVector(Sq,t,t),t};var ab=YB;var Jvt=T(S(),1),zA={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};zA.getMorphTime=function(e){return e===zA.SCENE3D?1:e===zA.MORPHING?void 0:0};var ie=Object.freeze(zA);var $vt=T(S(),1);function bVe(e){e=g(e,g.EMPTY_OBJECT),this.color=B.clone(g(e.color,B.WHITE)),this.intensity=g(e.intensity,2)}var tp=bVe;function lS(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new He,this._viewportCartesian4=new se,this._viewportDirty=!1,this._viewportOrthographicMatrix=w.clone(w.IDENTITY),this._viewportTransformation=w.clone(w.IDENTITY),this._model=w.clone(w.IDENTITY),this._view=w.clone(w.IDENTITY),this._inverseView=w.clone(w.IDENTITY),this._projection=w.clone(w.IDENTITY),this._infiniteProjection=w.clone(w.IDENTITY),this._entireFrustum=new D,this._currentFrustum=new D,this._frustumPlanes=new se,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(w.IDENTITY),this._view3DDirty=!0,this._view3D=new w,this._inverseView3DDirty=!0,this._inverseView3D=new w,this._inverseModelDirty=!0,this._inverseModel=new w,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new w,this._modelViewDirty=!0,this._modelView=new w,this._modelView3DDirty=!0,this._modelView3D=new w,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new w,this._inverseModelViewDirty=!0,this._inverseModelView=new w,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new w,this._viewProjectionDirty=!0,this._viewProjection=new w,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new w,this._modelViewProjectionDirty=!0,this._modelViewProjection=new w,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new w,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new w,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new w,this._normalDirty=!0,this._normal=new $,this._normal3DDirty=!0,this._normal3D=new $,this._inverseNormalDirty=!0,this._inverseNormal=new $,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new $,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new On,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new D,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new B,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsDimensions=new D,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(lS.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!He.equals(e,this._viewport)){He.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return Cq(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return Cq(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){w.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,w.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,w.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return OB(this),this._view3D}},viewRotation:{get:function(){return OB(this),this._viewRotation}},viewRotation3D:{get:function(){return OB(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return Rq(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return Rq(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return RVe(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return ZVe(this),this._modelView}},modelView3D:{get:function(){return GVe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return vVe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return EVe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return XVe(this),this._inverseModelView3D}},viewProjection:{get:function(){return IVe(this),this._viewProjection}},inverseViewProjection:{get:function(){return WVe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return PVe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return FVe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return wVe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return AVe(this),this._modelViewInfiniteProjection}},normal:{get:function(){return MVe(this),this._normal}},normal3D:{get:function(){return NVe(this),this._normal3D}},inverseNormal:{get:function(){return UVe(this),this._inverseNormal}},inverseNormal3D:{get:function(){return kVe(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return Lq(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return Lq(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsDimensions:{get:function(){return this._specularEnvironmentMapsDimensions}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return g(this._ellipsoid,re.WGS84)}}});function yVe(e,t){w.clone(t,e._view),w.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function gVe(e,t){w.clone(t,e._inverseView),w.getMatrix3(t,e._inverseViewRotation)}function xVe(e,t){w.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function _Ve(e,t){w.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}function TVe(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=t.positionCartographic;d(n)?e._eyeHeight=n.height:e._eyeHeight=-e._ellipsoid.maximumRadius,e._encodedCameraPositionMCDirty=!0}var zZ=new $,SVe=new he;function CVe(e,t){d(vt.computeIcrfToFixedMatrix(t.time,zZ))||(zZ=vt.computeTemeToPseudoFixedMatrix(t.time,zZ));let n=ab.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(zZ,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=ab.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(zZ,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,SVe);i.project(r,e._sunPositionColumbusView)}lS.prototype.updateCamera=function(e){yVe(this,e.viewMatrix),gVe(this,e.inverseViewMatrix),TVe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ie.SCENE2D&&e.frustum instanceof en};lS.prototype.updateFrustum=function(e){xVe(this,e.projectionMatrix),d(e.infiniteProjectionMatrix)&&_Ve(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=W.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;d(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};lS.prototype.updatePass=function(e){this._pass=e};var VVe=[],LVe=new tp;lS.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===ie.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),CVe(this,e);let n=g(e.light,LVe);n instanceof tp?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=$.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=h.multiplyByScalar(o,n.intensity,o);let r=h.maximumComponent(o);r>1?h.divideByScalar(o,r,this._lightColor):h.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=d(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=g(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=g(e.sphericalHarmonicCoefficients,VVe),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,d(this._specularEnvironmentMaps)&&D.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=vt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let c=t.frustum.fov,l=this._viewport,u;d(c)?l.height>l.width?u=Math.tan(.5*c)*2/l.height:u=Math.tan(.5*c)*2/l.width:u=1/Math.max(l.width,l.height),this._geometricToleranceOverMeter=u*e.maximumScreenSpaceError,B.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function Cq(e){if(e._viewportDirty){let t=e._viewport;w.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),w.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function RVe(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ie.SCENE2D&&e._mode!==ie.MORPHING&&!e._orthographicIn3D?w.inverse(e._projection,e._inverseProjection):w.clone(w.ZERO,e._inverseProjection))}function ZVe(e){e._modelViewDirty&&(e._modelViewDirty=!1,w.multiplyTransformation(e._view,e._model,e._modelView))}function GVe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,w.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function EVe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,w.inverse(e.modelView,e._inverseModelView))}function XVe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,w.inverse(e.modelView3D,e._inverseModelView3D))}function IVe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,w.multiply(e._projection,e._view,e._viewProjection))}function WVe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,w.inverse(e.viewProjection,e._inverseViewProjection))}function PVe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,w.multiply(e._projection,e.modelView,e._modelViewProjection))}function vVe(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function FVe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,w.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function wVe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,w.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function AVe(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,w.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function MVe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;w.getMatrix3(e.inverseModelView,t),$.transpose(t,t)}}function NVe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;w.getMatrix3(e.inverseModelView3D,t),$.transpose(t,t)}}function UVe(e){if(e._inverseNormalDirty){e._inverseNormalDirty=!1;let t=e._inverseNormal;w.getMatrix3(e.modelView,t),$.transpose(t,t)}}function kVe(e){if(e._inverseNormal3DDirty){e._inverseNormal3DDirty=!1;let t=e._inverseNormal3D;w.getMatrix3(e.modelView3D,t),$.transpose(t,t)}}var Vq=new h;function Lq(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,w.multiplyByPoint(e.inverseModel,e._cameraPosition,Vq),On.fromCartesian(Vq,e._encodedCameraPositionMC))}var DVe=new h,BVe=new h,YVe=new h,OVe=new h,KVe=new he,HVe=new h,zVe=new w;function JVe(e,t,n,i,o,r,s,a){let c=DVe;c.x=e.y,c.y=e.z,c.z=e.x;let l=BVe;l.x=n.y,l.y=n.z,l.z=n.x;let u=YVe;u.x=i.y,u.y=i.z,u.z=i.x;let m=OVe;m.x=t.y,m.y=t.z,m.z=t.x,r===ie.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,KVe);p.longitude=W.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=W.clamp(p.latitude,-W.PI_OVER_TWO,W.PI_OVER_TWO);let y=s.ellipsoid,f=y.cartographicToCartesian(p,HVe),x=vt.eastNorthUpToFixedFrame(f,y,zVe);return w.multiplyByPointAsVector(x,l,l),w.multiplyByPointAsVector(x,u,u),w.multiplyByPointAsVector(x,m,m),d(a)||(a=new w),a[0]=l.x,a[1]=u.x,a[2]=-m.x,a[3]=0,a[4]=l.y,a[5]=u.y,a[6]=-m.y,a[7]=0,a[8]=l.z,a[9]=u.z,a[10]=-m.z,a[11]=0,a[12]=-h.dot(l,f),a[13]=-h.dot(u,f),a[14]=h.dot(m,f),a[15]=1,a}function OB(e){e._view3DDirty&&(e._mode===ie.SCENE3D?w.clone(e._view,e._view3D):JVe(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),w.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function Rq(e){e._inverseView3DDirty&&(w.inverseTransformation(e.view3D,e._inverseView3D),w.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var JZ=lS;var WFt=T(S(),1);function QVe(e,t,n,i){let o=d(t.vertexBuffer),r=d(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:g(t.index,n),enabled:g(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:g(t.componentDatatype,Q.FLOAT),normalize:g(t.normalize,!1),offsetInBytes:g(t.offsetInBytes,0),strideInBytes:g(t.strideInBytes,0),instanceDivisor:g(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let l=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(l,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(l),this.instanceDivisor>0&&(i.glVertexAttribDivisor(l,this.instanceDivisor),i._vertexAttribDivisors[l]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function Gq(e,t,n){for(let i=0;i0&&(c=!0),d(s[r].value)&&(l=!0);let m;t.vertexArrayObject&&(m=t.glCreateVertexArray(),t.glBindVertexArray(m),Gq(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=l,this._context=t,this._gl=n,this._vao=m,this._attributes=s,this._indexBuffer=o}function Zq(e){return e.values.length/e.componentsPerAttribute}function jVe(e){return Q.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function qVe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&d(e[n])&&d(e[n].values)&&(o.push(n),e[n].componentDatatype===Q.DOUBLE&&(e[n].componentDatatype=Q.FLOAT,e[n].values=Q.createTypedArray(Q.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=Zq(e[o[0]]),t=1;t0){let l=Q.getSizeInBytes(e[o[0]].componentDatatype),u=a%l;u!==0&&(a+=l-u);let m=r*a,p=new ArrayBuffer(m),y={};for(t=0;t=W.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=mt.createIndexBuffer({context:t,typedArray:new Uint32Array(y),usage:i,indexDatatype:Ue.UNSIGNED_INT}):p=mt.createIndexBuffer({context:t,typedArray:new Uint16Array(y),usage:i,indexDatatype:Ue.UNSIGNED_SHORT})),new np({context:t,attributes:u,indexBuffer:p})};Object.defineProperties(np.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});np.prototype.getAttribute=function(e){return this._attributes[e]};function $Ve(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=kt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function eLe(e,t){let n=e._attributes,i=n.length;for(let o=0;o"u")throw new me("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!d(r))throw new me("The browser supports WebGL, but initialization failed.");return r}function nLe(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function iLe(e,t,n,i){let o=`${nLe(e,i)}: ${t.name}(`;for(let r=0;r=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=sLe(this._originalGLContext,e?oLe:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Wt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Wt({context:this,pixelFormat:st.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Wt({context:this,pixelFormat:st.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new Ma({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return aLe}}});function Eq(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,De.partialApply(e._gl,o,t,r,n,i)}var KB;typeof WebGLRenderingContext<"u"&&(KB=[ne.BACK]);function HB(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=KB;if(d(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var cLe=new ti;Ol.prototype.clear=function(e,t){e=g(e,cLe),t=g(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;d(o)&&(B.equals(this._clearColor,o)||(B.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),d(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),d(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=g(e.renderState,this._defaultRenderState);Eq(this,a,t,!0);let c=g(e.framebuffer,t.framebuffer);HB(this,c),n.clear(i)};function lLe(e,t,n,i,o){HB(e,t),Eq(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function dLe(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=g(t._modelMatrix,w.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let l=r.indexBuffer;d(l)?(s=s*l.bytesPerIndex,d(a)?a=Math.min(a,l.numberOfIndices):a=l.numberOfIndices,c===0?e._gl.drawElements(o,a,l.indexDatatype,s):e.glDrawElementsInstanced(o,a,l.indexDatatype,s,c)):(d(a)?a=Math.min(a,r.numberOfVertices):a=r.numberOfVertices,c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}Ol.prototype.draw=function(e,t,n,i){t=g(t,this._defaultPassState);let o=g(e._framebuffer,t.framebuffer),r=g(e._renderState,this._defaultRenderState);n=g(n,e._shaderProgram),i=g(i,e._uniformMap),lLe(this,o,t,n,r),dLe(this,e,n,i)};Ol.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=KB;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i0&&(a=s.getColorTexture(0).pixelDatatype);let c=st.createTypedArray(st.RGBA,a,o,r);return HB(this,s),t.readPixels(n,i,o,r,st.RGBA,Je.toWebGLConstant(a,this),c),c};var Xq={position:0,textureCoordinates:1};Ol.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!d(e)){let t=new dt({attributes:{position:new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:we.TRIANGLES});e=ni.fromGeometry({context:this,geometry:t,attributeLocations:Xq,bufferUsage:Ne.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};Ol.prototype.createViewportQuadCommand=function(e,t){return t=g(t,g.EMPTY_OBJECT),new nt({vertexArray:this.getViewportQuadVertexArray(),primitiveType:we.TRIANGLES,renderState:t.renderState,shaderProgram:Qt.fromCache({context:this,vertexShaderSource:Sg,fragmentShaderSource:e,attributeLocations:Xq}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};Ol.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function zB(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(zB.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});zB.prototype.destroy=function(){delete this._pickObjects[this.key]};Ol.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new me("Out of unique Pick IDs.");return this._pickObjects[t]=e,new zB(this._pickObjects,t,B.fromRgba(t))};Ol.prototype.isDestroyed=function(){return!1};Ol.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];d(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),ue(this)};Ol._deprecationWarning=zr;var QZ=Ol;var Nwt=T(S(),1);var ywt=T(S(),1);function dS(e){e=g(e,g.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height;this._width=n,this._height=i;let o=e.colorRenderbuffers,r=e.colorTextures;if(d(o)!==d(r))throw new fe("Both color renderbuffer and texture attachments must be provided.");let s=e.depthStencilRenderbuffer,a=e.depthStencilTexture;if(d(s)!==d(a))throw new fe("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Us({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:e.destroyAttachments}),this._colorFramebuffer=new Us({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:e.destroyAttachments})}dS.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};dS.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};dS.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),d(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};dS.prototype.isDestroyed=function(){return!1};dS.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var jZ=dS;var Zwt=T(S(),1);var _wt=T(S(),1);var al={RGBA4:ne.RGBA4,RGBA8:ne.RGBA8,RGBA16F:ne.RGBA16F,RGBA32F:ne.RGBA32F,RGB5_A1:ne.RGB5_A1,RGB565:ne.RGB565,DEPTH_COMPONENT16:ne.DEPTH_COMPONENT16,STENCIL_INDEX8:ne.STENCIL_INDEX8,DEPTH_STENCIL:ne.DEPTH_STENCIL,DEPTH24_STENCIL8:ne.DEPTH24_STENCIL8,validate:function(e){return e===al.RGBA4||e===al.RGBA8||e===al.RGBA16F||e===al.RGBA32F||e===al.RGB5_A1||e===al.RGB565||e===al.DEPTH_COMPONENT16||e===al.STENCIL_INDEX8||e===al.DEPTH_STENCIL||e===al.DEPTH24_STENCIL8},getColorFormat:function(e){return e===ne.FLOAT?al.RGBA32F:e===ne.HALF_FLOAT_OES?al.RGBA16F:al.RGBA8}},xc=Object.freeze(al);function qZ(e){e=g(e,g.EMPTY_OBJECT);let n=e.context._gl,i=kt.maximumRenderbufferSize,o=g(e.format,xc.RGBA4),r=d(e.width)?e.width:n.drawingBufferWidth,s=d(e.height)?e.height:n.drawingBufferHeight,a=g(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(qZ.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});qZ.prototype._getRenderbuffer=function(){return this._renderbuffer};qZ.prototype.isDestroyed=function(){return!1};qZ.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var Kl=qZ;function os(e){e=g(e,g.EMPTY_OBJECT),this._numSamples=g(e.numSamples,1),this._colorAttachmentsLength=g(e.colorAttachmentsLength,1),this._color=g(e.color,!0),this._depth=g(e.depth,!1),this._depthStencil=g(e.depthStencil,!1),this._supportsDepthTexture=g(e.supportsDepthTexture,!1),this._createColorAttachments=g(e.createColorAttachments,!0),this._createDepthAttachments=g(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(os.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});os.prototype.isDirty=function(e,t,n,i,o){n=g(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=d(i)&&this._pixelDatatype!==i||d(o)&&this._pixelFormat!==o,c=n===1?d(this._framebuffer):d(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!d(this._colorTextures[0])};os.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?g(i,1):1,o=g(o,this._color?g(this._pixelDatatype,Je.UNSIGNED_BYTE):void 0),r=g(r,this._color?g(this._pixelFormat,st.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s1){let a=xc.getColorFormat(o);this._colorRenderbuffers[s]=new Kl({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Wt({context:e,width:t,height:n,pixelFormat:st.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new Kl({context:e,width:t,height:n,format:xc.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new Kl({context:e,width:t,height:n,format:xc.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Wt({context:e,width:t,height:n,pixelFormat:st.DEPTH_COMPONENT,pixelDatatype:Je.UNSIGNED_INT,sampler:dn.NEAREST}):this._depthRenderbuffer=new Kl({context:e,width:t,height:n,format:xc.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new jZ({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new Us({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};os.prototype.getColorTexture=function(e){return e=g(e,0),this._colorTextures[e]};os.prototype.setColorTexture=function(e,t){t=g(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};os.prototype.getColorRenderbuffer=function(e){return e=g(e,0),this._colorRenderbuffers[e]};os.prototype.setColorRenderbuffer=function(e,t){t=g(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};os.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};os.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};os.prototype.getDepthTexture=function(){return this._depthTexture};os.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};os.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};os.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};os.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};os.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};os.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};os.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};os.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};os.prototype.destroy=function(){if(this._color){let e,t=this._colorTextures.length;for(e=0;e0?Q.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};Ts._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(d(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=d(n);if(!o||n.sizeInBytes0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}Ts.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t0&&(this._hash={},e.length=0)};var Tt=Mg;var A9t=T(S(),1);function Hl(e,t){e=g(e,0),this._near=e,t=g(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(Hl.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});Hl.packedLength=2;Hl.pack=function(e,t,n){return n=g(n,0),t[n++]=e.near,t[n]=e.far,t};Hl.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new Hl),n.near=e[t++],n.far=e[t],n};Hl.equals=function(e,t){return e===t||d(e)&&d(t)&&e.near===t.near&&e.far===t.far};Hl.clone=function(e,t){if(d(e))return d(t)||(t=new Hl),t.near=e.near,t.far=e.far,t};Hl.prototype.clone=function(e){return Hl.clone(this,e)};Hl.prototype.equals=function(e){return Hl.equals(this,e)};var Gt=Hl;var k9t=T(S(),1);function Qd(e,t,n,i){this.near=g(e,0),this.nearValue=g(t,0),this.far=g(n,1),this.farValue=g(i,0)}Qd.clone=function(e,t){if(d(e))return d(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Qd(e.near,e.nearValue,e.far,e.farValue)};Qd.packedLength=4;Qd.pack=function(e,t,n){return n=g(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};Qd.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new Qd),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Qd.equals=function(e,t){return e===t||d(e)&&d(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Qd.prototype.clone=function(e){return Qd.clone(this,e)};Qd.prototype.equals=function(e){return Qd.equals(this,e)};var Pt=Qd;var B9t=T(S(),1),TLe={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2},Ke=Object.freeze(TLe);var O9t=T(S(),1),SLe={CENTER:0,LEFT:1,RIGHT:-1},bi=Object.freeze(SLe);var H9t=T(S(),1),CLe={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},In=Object.freeze(CLe);var J9t=T(S(),1),VLe={DONE:0,PENDING:1,FAILED:2},lt=Object.freeze(VLe);var eAt=T(S(),1);function rm(){fe.throwInstantiationError()}Object.defineProperties(rm.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});rm.prototype.getValue=fe.throwInstantiationError;rm.prototype.equals=fe.throwInstantiationError;rm.equals=function(e,t){return e===t||d(e)&&e.equals(t)};rm.arrayEquals=function(e,t){if(e===t)return!0;if(!d(e)||!d(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i-1;o--)r=t[o],d(r._billboard)&&d(r._position)&&s.set(r.id,new Iq(r));for(o=i.length-1;o>-1;o--)r=i[o],d(r._billboard)&&d(r._position)?s.contains(r.id)||s.set(r.id,new Iq(r)):(qB(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],qB(s.get(r.id),r,a),s.remove(r.id)};function qB(e,t,n){d(e)&&(e.billboard=void 0,n.removeBillboard(t))}var iG=lb;var Kjt=T(S(),1);var tMt=T(S(),1);var PAt=T(S(),1);var xAt=T(S(),1);function YLe(e,t){this.start=g(e,0),this.stop=g(t,0)}var Tc=YLe;function pn(e,t){this.center=h.clone(g(e,h.ZERO)),this.radius=g(t,0)}var t3=new h,n3=new h,i3=new h,o3=new h,r3=new h,s3=new h,a3=new h,ks=new h,c3=new h,l3=new h,d3=new h,u3=new h,OLe=4/3*W.PI;pn.fromPoints=function(e,t){if(d(t)||(t=new pn),!d(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],a3),i=h.clone(n,t3),o=h.clone(n,n3),r=h.clone(n,i3),s=h.clone(n,o3),a=h.clone(n,r3),c=h.clone(n,s3),l=e.length,u;for(u=1;us.x&&h.clone(n,s),Aa.y&&h.clone(n,a),Mc.z&&h.clone(n,c)}let m=h.magnitudeSquared(h.subtract(s,i,ks)),p=h.magnitudeSquared(h.subtract(a,o,ks)),y=h.magnitudeSquared(h.subtract(c,r,ks)),f=i,x=s,_=m;p>_&&(_=p,f=o,x=a),y>_&&(_=y,f=r,x=c);let C=c3;C.x=(f.x+x.x)*.5,C.y=(f.y+x.y)*.5,C.z=(f.z+x.z)*.5;let V=h.magnitudeSquared(h.subtract(x,C,ks)),L=Math.sqrt(V),Z=l3;Z.x=i.x,Z.y=o.y,Z.z=r.z;let G=d3;G.x=s.x,G.y=a.y,G.z=c.z;let X=h.midpoint(Z,G,u3),P=0;for(u=0;uP&&(P=v);let A=h.magnitudeSquared(h.subtract(n,C,ks));if(A>V){let M=Math.sqrt(A);L=(L+M)*.5,V=L*L;let b=M-L;C.x=(L*C.x+b*n.x)/M,C.y=(L*C.y+b*n.y)/M,C.z=(L*C.z+b*n.z)/M}}return Lc.x&&h.clone(o,c),bl.y&&h.clone(o,l),Ru.z&&h.clone(o,u)}let y=h.magnitudeSquared(h.subtract(c,r,ks)),f=h.magnitudeSquared(h.subtract(l,s,ks)),x=h.magnitudeSquared(h.subtract(u,a,ks)),_=r,C=c,V=y;f>V&&(V=f,_=s,C=l),x>V&&(V=x,_=a,C=u);let L=c3;L.x=(_.x+C.x)*.5,L.y=(_.y+C.y)*.5,L.z=(_.z+C.z)*.5;let Z=h.magnitudeSquared(h.subtract(C,L,ks)),G=Math.sqrt(Z),X=l3;X.x=r.x,X.y=s.y,X.z=a.z;let P=d3;P.x=c.x,P.y=l.y,P.z=u.z;let v=h.midpoint(X,P,u3),A=0;for(p=0;pA&&(A=M);let b=h.magnitudeSquared(h.subtract(o,L,ks));if(b>Z){let R=Math.sqrt(b);G=(G+R)*.5,Z=G*G;let E=R-G;L.x=(G*L.x+E*o.x)/R,L.y=(G*L.y+E*o.y)/R,L.z=(G*L.z+E*o.z)/R}}return Ga.x&&h.clone(i,a),Mc.y&&h.clone(i,c),bl.z&&h.clone(i,l)}let p=h.magnitudeSquared(h.subtract(a,o,ks)),y=h.magnitudeSquared(h.subtract(c,r,ks)),f=h.magnitudeSquared(h.subtract(l,s,ks)),x=o,_=a,C=p;y>C&&(C=y,x=r,_=c),f>C&&(C=f,x=s,_=l);let V=c3;V.x=(x.x+_.x)*.5,V.y=(x.y+_.y)*.5,V.z=(x.z+_.z)*.5;let L=h.magnitudeSquared(h.subtract(_,V,ks)),Z=Math.sqrt(L),G=l3;G.x=o.x,G.y=r.y,G.z=s.z;let X=d3;X.x=a.x,X.y=c.y,X.z=l.z;let P=h.midpoint(G,X,u3),v=0;for(m=0;mv&&(v=A);let M=h.magnitudeSquared(h.subtract(i,V,ks));if(M>L){let b=Math.sqrt(M);Z=(Z+b)*.5,L=Z*Z;let R=b-Z;V.x=(Z*V.x+R*i.x)/b,V.y=(Z*V.y+R*i.y)/b,V.z=(Z*V.z+R*i.z)/b}}return Z=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let l=(o+c+s)*.5,u=h.multiplyByScalar(a,(-o+l)/c,iRe);return h.add(u,i,u),h.clone(u,n.center),n.radius=l,n};var oRe=new h;pn.expand=function(e,t,n){n=pn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,oRe));return i>n.radius&&(n.radius=i),n};pn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=h.dot(o,n)+t.distance;return r<-i?qt.OUTSIDE:r maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var NNt=T(S(),1),yG=`uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var kNt=T(S(),1),gG=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var BNt=T(S(),1),xG=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var ONt=T(S(),1),_G=`uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var HNt=T(S(),1),TG=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var JNt=T(S(),1),SG=`uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var jNt=T(S(),1),CG=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var $Nt=T(S(),1),VG=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var t5t=T(S(),1),LG=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var i5t=T(S(),1),RG=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var r5t=T(S(),1),ZG=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var a5t=T(S(),1),GG=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var l5t=T(S(),1),EG=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function ze(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=g(e.minificationFilter,cn.LINEAR),this._magnificationFilter=g(e.magnificationFilter,Ti.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,VRe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),d(ze._uniformList[this.type])||(ze._uniformList[this.type]=Object.keys(this._uniforms))}ze._uniformList={};ze.fromType=function(e,t){let n=new ze({fabric:{type:e}});if(d(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};ze.prototype.isTranslucent=function(){if(d(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i-1)return!0;return!1}function XRe(e){let t=e._template.components,n=e._template.source;if(d(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,d(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&ERe(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; +`}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${o} = ${t[o]}; +`}e.shaderSource+=`return material; +} +`}}var Yq={mat2:$i,mat3:$,mat4:w},IRe=/\.ktx2$/i;function WRe(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!d(r)||r===ze.DefaultImageId;t=r;let c=n._textures[e],l,u;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&d(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!d(c)||c===i.defaultTexture){let p=new dn({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Wt({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else d(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Wt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];d(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,l=`${e}Dimensions`,o.hasOwnProperty(l)&&(u=o[l],u.x=r._width,u.y=r._height);return}if(s&&d(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),d(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,l=`${e}Dimensions`,o.hasOwnProperty(l)&&(u=o[l],u.x=c._width,u.y=c._height)),a)return;let m=r instanceof Ee;if(!d(n._texturePaths[e])||m&&r.url!==n._texturePaths[e].url||!m&&r!==n._texturePaths[e]){if(typeof r=="string"||m){let p=m?r:Ee.createIfNeeded(r),y;IRe.test(p.url)?y=rl(p.url):y=p.fetchImage(),Promise.resolve(y).then(function(f){n._loadedImages.push({id:e,image:f})}).catch(function(){d(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function PRe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof Ma){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(d(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===ze.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[Ee.createIfNeeded(i.positiveX).fetchImage(),Ee.createIfNeeded(i.negativeX).fetchImage(),Ee.createIfNeeded(i.positiveY).fetchImage(),Ee.createIfNeeded(i.negativeY).fetchImage(),Ee.createIfNeeded(i.positiveZ).fetchImage(),Ee.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function vRe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&Oq(e,n)}function Oq(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=FRe(o),s;if(r==="channels")s=XG(e,t,o,!1);else{if(r==="sampler2D"){let l=`${t}Dimensions`;ARe(e,l)>0&&(i[l]={type:"ivec3",x:1,y:1},Oq(e,l))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let l=`uniform ${r} ${t};`;e.shaderSource=l+e.shaderSource}let c=`${t}_${e._count++}`;if(s=XG(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(WRe(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(PRe(t));else if(r.indexOf("mat")!==-1){let l=new Yq[r];e._uniforms[c]=function(){return Yq[r].fromColumnMajorArray(e.uniforms[t],l)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function FRe(e){let t=e.type;if(!d(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof Ee||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===ze.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function wRe(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new ze({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=xt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;XG(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=XG(e,i,a)}}function XG(e,t,n,i){i=g(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,l,u){return l||u?c:(o+=1,n)}),o}function ARe(e,t,n){return XG(e,t,t,n)}ze._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};ze.DefaultImageId="czm_defaultImage";ze.DefaultCubeMapId="czm_defaultCubeMap";ze.ColorType="Color";ze._materialCache.addMaterial(ze.ColorType,{fabric:{type:ze.ColorType,uniforms:{color:new B(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});ze.ImageType="Image";ze._materialCache.addMaterial(ze.ImageType,{fabric:{type:ze.ImageType,uniforms:{image:ze.DefaultImageId,repeat:new D(1,1),color:new B(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});ze.DiffuseMapType="DiffuseMap";ze._materialCache.addMaterial(ze.DiffuseMapType,{fabric:{type:ze.DiffuseMapType,uniforms:{image:ze.DefaultImageId,channels:"rgb",repeat:new D(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});ze.AlphaMapType="AlphaMap";ze._materialCache.addMaterial(ze.AlphaMapType,{fabric:{type:ze.AlphaMapType,uniforms:{image:ze.DefaultImageId,channel:"a",repeat:new D(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});ze.SpecularMapType="SpecularMap";ze._materialCache.addMaterial(ze.SpecularMapType,{fabric:{type:ze.SpecularMapType,uniforms:{image:ze.DefaultImageId,channel:"r",repeat:new D(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});ze.EmissionMapType="EmissionMap";ze._materialCache.addMaterial(ze.EmissionMapType,{fabric:{type:ze.EmissionMapType,uniforms:{image:ze.DefaultImageId,channels:"rgb",repeat:new D(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});ze.BumpMapType="BumpMap";ze._materialCache.addMaterial(ze.BumpMapType,{fabric:{type:ze.BumpMapType,uniforms:{image:ze.DefaultImageId,channel:"r",strength:.8,repeat:new D(1,1)},source:hG},translucent:!1});ze.NormalMapType="NormalMap";ze._materialCache.addMaterial(ze.NormalMapType,{fabric:{type:ze.NormalMapType,uniforms:{image:ze.DefaultImageId,channels:"rgb",strength:.8,repeat:new D(1,1)},source:TG},translucent:!1});ze.GridType="Grid";ze._materialCache.addMaterial(ze.GridType,{fabric:{type:ze.GridType,uniforms:{color:new B(0,1,0,1),cellAlpha:.1,lineCount:new D(8,8),lineThickness:new D(1,1),lineOffset:new D(0,0)},source:_G},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});ze.StripeType="Stripe";ze._materialCache.addMaterial(ze.StripeType,{fabric:{type:ze.StripeType,uniforms:{horizontal:!0,evenColor:new B(1,1,1,.5),oddColor:new B(0,0,1,.5),offset:0,repeat:5},source:GG},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});ze.CheckerboardType="Checkerboard";ze._materialCache.addMaterial(ze.CheckerboardType,{fabric:{type:ze.CheckerboardType,uniforms:{lightColor:new B(1,1,1,.5),darkColor:new B(0,0,0,.5),repeat:new D(5,5)},source:fG},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});ze.DotType="Dot";ze._materialCache.addMaterial(ze.DotType,{fabric:{type:ze.DotType,uniforms:{lightColor:new B(1,1,0,.75),darkColor:new B(0,1,1,.75),repeat:new D(5,5)},source:pG},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});ze.WaterType="Water";ze._materialCache.addMaterial(ze.WaterType,{fabric:{type:ze.WaterType,uniforms:{baseWaterColor:new B(.2,.3,.6,1),blendColor:new B(0,1,.699,1),specularMap:ze.DefaultImageId,normalMap:ze.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:EG},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});ze.RimLightingType="RimLighting";ze._materialCache.addMaterial(ze.RimLightingType,{fabric:{type:ze.RimLightingType,uniforms:{color:new B(1,0,0,.7),rimColor:new B(1,1,1,.4),width:.3},source:RG},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});ze.FadeType="Fade";ze._materialCache.addMaterial(ze.FadeType,{fabric:{type:ze.FadeType,uniforms:{fadeInColor:new B(1,0,0,1),fadeOutColor:new B(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new D(.5,.5)},source:xG},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});ze.PolylineArrowType="PolylineArrow";ze._materialCache.addMaterial(ze.PolylineArrowType,{fabric:{type:ze.PolylineArrowType,uniforms:{color:new B(1,1,1,1)},source:SG},translucent:!0});ze.PolylineDashType="PolylineDash";ze._materialCache.addMaterial(ze.PolylineDashType,{fabric:{type:ze.PolylineDashType,uniforms:{color:new B(1,0,1,1),gapColor:new B(0,0,0,0),dashLength:16,dashPattern:255},source:CG},translucent:!0});ze.PolylineGlowType="PolylineGlow";ze._materialCache.addMaterial(ze.PolylineGlowType,{fabric:{type:ze.PolylineGlowType,uniforms:{color:new B(0,.5,1,1),glowPower:.25,taperPower:1},source:VG},translucent:!0});ze.PolylineOutlineType="PolylineOutline";ze._materialCache.addMaterial(ze.PolylineOutlineType,{fabric:{type:ze.PolylineOutlineType,uniforms:{color:new B(1,1,1,1),outlineColor:new B(1,0,0,1),outlineWidth:1},source:LG},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});ze.ElevationContourType="ElevationContour";ze._materialCache.addMaterial(ze.ElevationContourType,{fabric:{type:ze.ElevationContourType,uniforms:{spacing:100,color:new B(1,0,0,1),width:1},source:yG},translucent:!1});ze.ElevationRampType="ElevationRamp";ze._materialCache.addMaterial(ze.ElevationRampType,{fabric:{type:ze.ElevationRampType,uniforms:{image:ze.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:gG},translucent:!1});ze.SlopeRampMaterialType="SlopeRamp";ze._materialCache.addMaterial(ze.SlopeRampMaterialType,{fabric:{type:ze.SlopeRampMaterialType,uniforms:{image:ze.DefaultImageId},source:ZG},translucent:!1});ze.AspectRampMaterialType="AspectRamp";ze._materialCache.addMaterial(ze.AspectRampMaterialType,{fabric:{type:ze.AspectRampMaterialType,uniforms:{image:ze.DefaultImageId},source:mG},translucent:!1});ze.ElevationBandType="ElevationBand";ze._materialCache.addMaterial(ze.ElevationBandType,{fabric:{type:ze.ElevationBandType,uniforms:{heights:ze.DefaultImageId,colors:ze.DefaultImageId},source:bG},translucent:!0});var ki=ze;function Ng(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.translucent,!0),n=g(e.closed,!1),i=g(e.materialSupport,Ng.MaterialSupport.TEXTURED);this.material=d(e.material)?e.material:ki.fromType(ki.ColorType),this.translucent=t,this._vertexShaderSource=g(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=g(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=g(e.flat,!1),this._faceForward=g(e.faceForward,!n)}Object.defineProperties(Ng.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});Ng.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;Ng.prototype.isTranslucent=to.prototype.isTranslucent;Ng.prototype.getRenderState=to.prototype.getRenderState;Ng.MaterialSupport={BASIC:Object.freeze({vertexFormat:We.POSITION_AND_NORMAL,vertexShaderSource:lG,fragmentShaderSource:cG}),TEXTURED:Object.freeze({vertexFormat:We.POSITION_NORMAL_AND_ST,vertexShaderSource:uG,fragmentShaderSource:dG}),ALL:Object.freeze({vertexFormat:We.ALL,vertexShaderSource:aG,fragmentShaderSource:sG})};var so=Ng;var CUt=T(S(),1);var cUt=T(S(),1),IG=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var dUt=T(S(),1),WG=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var mUt=T(S(),1),Ug=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var fUt=T(S(),1),PG=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function op(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.translucent,!0),n=g(e.closed,!1),i=g(e.flat,!1),o=i?PG:WG,r=i?Ug:IG,s=i?op.FLAT_VERTEX_FORMAT:op.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=g(e.vertexShaderSource,o),this._fragmentShaderSource=g(e.fragmentShaderSource,r),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=g(e.faceForward,!n)}Object.defineProperties(op.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});op.VERTEX_FORMAT=We.POSITION_AND_NORMAL;op.FLAT_VERTEX_FORMAT=We.POSITION_ONLY;op.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;op.prototype.isTranslucent=to.prototype.isTranslucent;op.prototype.getRenderState=to.prototype.getRenderState;var sn=op;var XUt=T(S(),1);function fS(e){this._definitionChanged=new ye,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(fS.prototype,{isConstant:{get:function(){return H.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color")});fS.prototype.getType=function(e){return"Color"};fS.prototype.getValue=function(e,t){return d(t)||(t={}),t.color=H.getValueOrClonedDefault(this._color,e,B.WHITE,t.color),t};fS.prototype.equals=function(e){return this===e||e instanceof fS&&H.equals(this._color,e._color)};var At=fS;var MOt=T(S(),1);var gOt=T(S(),1);var qUt=T(S(),1);var NUt=T(S(),1);function db(e){e=g(e,g.EMPTY_OBJECT),this._ellipsoid=g(e.ellipsoid,re.WGS84),this._rectangle=g(e.rectangle,de.MAX_VALUE),this._projection=new Zi(this._ellipsoid),this._numberOfLevelZeroTilesX=g(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=g(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(db.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});db.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<=o&&(l=o-1);let u=(i.north-e.latitude)/a|0;return u>=r&&(u=r-1),d(n)?(n.x=l,n.y=u,n):new D(l,u)};var Di=db;var Kq=new h,Hq=new h,zq=new he,f3=new h,MRe=new h,Jq=new ce,NRe=new Di,vG=[new he,new he,new he,new he],FG=new D,vr={};vr.initialize=function(){let e=vr._initPromise;return d(e)||(e=Ee.fetchJson($t("Assets/approximateTerrainHeights.json")).then(function(t){vr._terrainHeights=t}),vr._initPromise=e),e};vr.getMinimumMaximumHeights=function(e,t){t=g(t,re.WGS84);let n=Qq(e),i=vr._defaultMinTerrainHeight,o=vr._defaultMaxTerrainHeight;if(d(n)){let r=`${n.level}-${n.x}-${n.y}`,s=vr._terrainHeights[r];d(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(de.northeast(e,zq),Kq),t.cartographicToCartesian(de.southwest(e,zq),Hq),h.midpoint(Hq,Kq,f3);let a=t.scaleToGeodeticSurface(f3,MRe);if(d(a)){let c=h.distance(f3,a);i=Math.min(i,-c)}else i=vr._defaultMinTerrainHeight}return i=Math.max(vr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};vr.getBoundingSphere=function(e,t){t=g(t,re.WGS84);let n=Qq(e),i=vr._defaultMaxTerrainHeight;if(d(n)){let r=`${n.level}-${n.x}-${n.y}`,s=vr._terrainHeights[r];d(s)&&(i=s[1])}let o=ce.fromRectangle3D(e,t,0);return ce.fromRectangle3D(e,t,i,Jq),ce.union(o,Jq,o)};function Qq(e){he.fromRadians(e.east,e.north,0,vG[0]),he.fromRadians(e.west,e.north,0,vG[1]),he.fromRadians(e.east,e.south,0,vG[2]),he.fromRadians(e.west,e.south,0,vG[3]);let t=0,n=0,i=0,o=0,r=vr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let l=vG[c];if(NRe.positionToTileXY(l,s,FG),c===0)i=FG.x,o=FG.y;else if(i!==FG.x||o!==FG.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}vr._terrainHeightsMaxLevel=6;vr._defaultMaxTerrainHeight=9e3;vr._defaultMinTerrainHeight=-1e5;vr._terrainHeights=void 0;vr._initPromise=void 0;Object.defineProperties(vr,{initialized:{get:function(){return d(vr._terrainHeights)}}});var li=vr;var lDt=T(S(),1);var Kkt=T(S(),1);var okt=T(S(),1);function Sc(e,t,n){this.minimum=h.clone(g(e,h.ZERO)),this.maximum=h.clone(g(t,h.ZERO)),d(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Sc.fromCorners=function(e,t,n){return d(n)||(n=new Sc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Sc.fromPoints=function(e,t){if(d(t)||(t=new Sc),!d(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let m=1;m0?qt.INSIDE:r+o<0?qt.OUTSIDE:qt.INTERSECTING};Sc.prototype.clone=function(e){return Sc.clone(this,e)};Sc.prototype.intersectPlane=function(e){return Sc.intersectPlane(this,e)};Sc.prototype.equals=function(e){return Sc.equals(this,e)};var ub=Sc;var Wkt=T(S(),1);var akt=T(S(),1);var p3={};p3.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function jq(e,t,n){let i=e+t;return W.sign(e)!==W.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))l&&l/c0?[a/e,n/a]:[n/a,a/e]};var Cc=p3;var pkt=T(S(),1);var dkt=T(S(),1);var y3={};y3.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function b3(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,l=r*a,u=r*r,m=s*s,p=o*s-u,y=o*a-r*s,f=r*a-m,x=4*p*f-y*y,_,C;if(x<0){let J,z,ee;u*l>=c*m?(J=o,z=p,ee=-2*r*p+o*y):(J=a,z=f,ee=-a*y+2*s*f);let j=-(ee<0?-1:1)*Math.abs(J)*Math.sqrt(-x);C=-ee+j;let q=C/2,be=q<0?-Math.pow(-q,1/3):Math.pow(q,1/3),Te=C===j?-be:-z/be;return _=z<=0?be+Te:-ee/(be*be+Te*Te+z),u*l>=c*m?[(_-r)/o]:[-a/(_+s)]}let V=p,L=-2*r*p+o*y,Z=f,G=-a*y+2*s*f,X=Math.sqrt(x),P=Math.sqrt(3)/2,v=Math.abs(Math.atan2(o*X,-L)/3);_=2*Math.sqrt(-V);let A=Math.cos(v);C=_*A;let M=_*(-A/2-P*Math.sin(v)),b=C+M>2*r?C-r:M-r,R=o,E=b/R;v=Math.abs(Math.atan2(a*X,-G)/3),_=2*Math.sqrt(-Z),A=Math.cos(v),C=_*A,M=_*(-A/2-P*Math.sin(v));let I=-a,F=C+M<2*s?C+s:M+s,N=I/F,Y=R*F,k=-b*F-R*I,O=b*I,U=(s*k-r*O)/(-r*k+s*Y);return E<=U?E<=N?U<=N?[E,U,N]:[E,N,U]:[N,E,U]:E<=N?[U,E,N]:U<=N?[U,N,E]:[N,U,E]}y3.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return Cc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=Cc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return b3(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):b3(e,t,0,i);if(i===0)return o=Cc.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return b3(e,t,n,i)};var kg=y3;var g3={};g3.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,l=n*n,u=l*n,m=i*i,p=m*i,y=o*o,f=y*o;return a*l*m-4*c*p-4*e*u*m+18*e*t*n*p-27*r*m*m+256*s*f+o*(18*c*n*i-4*a*u+16*e*l*l-80*e*t*l*i-6*e*a*m+144*r*n*m)+y*(144*e*a*n-27*a*a-128*r*l-192*r*t*i)};function am(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=kg.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let l=-e/4,u=c[c.length-1];if(Math.abs(u)=0&&y>=0){let x=Math.sqrt(p),_=Math.sqrt(y);return[l-_,l-x,l+x,l+_]}else{if(p>=0&&y<0)return f=Math.sqrt(p),[l-f,l+f];if(p<0&&y>=0)return f=Math.sqrt(y),[l-f,l+f]}}return[]}else if(u>0){let m=Math.sqrt(u),p=(r+u-s/m)/2,y=(r+u+s/m)/2,f=Cc.computeRealRoots(1,m,p),x=Cc.computeRealRoots(1,-m,y);return f.length!==0?(f[0]+=l,f[1]+=l,x.length!==0?(x[0]+=l,x[1]+=l,f[1]<=x[0]?[f[0],f[1],x[0],x[1]]:x[1]<=f[0]?[x[0],x[1],f[0],f[1]]:f[0]>=x[0]&&f[1]<=x[1]?[x[0],f[0],f[1],x[1]]:x[0]>=f[0]&&x[1]<=f[1]?[f[0],x[0],x[1],f[1]]:f[0]>x[0]&&f[0]0){let m=u[0],p=t-m,y=p*p,f=e/2,x=p/2,_=y-4*i,C=y+4*Math.abs(i),V=s-4*m,L=s+4*Math.abs(m),Z,G;if(m<0||_*L=b[0]&&M[1]<=b[1]?[b[0],M[0],M[1],b[1]]:b[0]>=M[0]&&b[1]<=M[1]?[M[0],b[0],b[1],M[1]]:M[0]>b[0]&&M[0]u)||(p=h.cross(m,a,$q),f=h.dot(s,p),f<0||y+f>u))return;x=h.dot(c,p)/u}else{if(Math.abs(u)1||(p=h.cross(m,a,$q),f=h.dot(s,p)*_,f<0||y+f>1))return;x=h.dot(c,p)*_}return x};er.rayTriangle=function(e,t,n,i,o,r){let s=er.rayTriangleParametric(e,t,n,i,o);if(!(!d(s)||s<0))return d(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var DRe=new Sn;er.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=DRe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=er.rayTriangleParametric(a,n,i,o,r);if(!(!d(c)||c<0||c>h.distance(e,t)))return d(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function BRe(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,l=(-t-a)*s;return cs))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var KRe=new h,HRe=new h;er.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,KRe),o=h.multiplyComponents(n,e.direction,HRe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,l,u,m;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),l=c*a,pl){u=s*s-l,m=-s+Math.sqrt(u);let f=m/c,x=a/m;return f0?y.push(new h(i,o*A,o*-R)):R!==0?(y.push(new h(i,o*A,o*-R)),y.push(new h(i,o*A,o*R)),++v):y.push(new h(i,o*A,o*R))}return y}var x3=new h,e$=new h,t$=new h,qA=new h,JRe=new h,QRe=new $,jRe=new $,qRe=new $,$Re=new $,eZe=new $,n$=new $,i$=new $,o$=new h,tZe=new h,nZe=new he;er.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let X=t.geodeticSurfaceNormal(n,x3);if(h.dot(i,X)>=0)return n}let o=d(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,x3),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,qA),c=h.normalize(h.cross(a,s,e$),e$),l=h.normalize(h.cross(s,c,t$),t$),u=QRe;u[0]=s.x,u[1]=s.y,u[2]=s.z,u[3]=c.x,u[4]=c.y,u[5]=c.z,u[6]=l.x,u[7]=l.y,u[8]=l.z;let m=$.transpose(u,jRe),p=$.fromScale(t.radii,qRe),y=$.fromScale(t.oneOverRadii,$Re),f=eZe;f[0]=0,f[1]=-i.z,f[2]=i.y,f[3]=i.z,f[4]=0,f[5]=-i.x,f[6]=-i.y,f[7]=i.x,f[8]=0;let x=$.multiply($.multiply(m,y,n$),f,n$),_=$.multiply($.multiply(x,p,i$),u,i$),C=$.multiplyByVector(x,n,JRe),V=zRe(_,h.negate(C,x3),0,0,1),L,Z,G=V.length;if(G>0){let X=h.clone(h.ZERO,tZe),P=Number.NEGATIVE_INFINITY;for(let A=0;AP&&(P=b,X=h.clone(L,X))}let v=t.cartesianToCartographic(X,nZe);return P=W.clamp(P,0,1),Z=h.magnitude(h.subtract(X,n,qA))*Math.sqrt(1-P*P),Z=o?-Z:Z,v.height=Z,t.cartographicToCartesian(v,new h)}};var iZe=new h;er.lineSegmentPlane=function(e,t,n,i){d(i)||(i=new h);let o=h.subtract(t,e,iZe),r=n.normal,s=h.dot(r,o);if(Math.abs(s)1))return h.multiplyByScalar(o,c,i),h.add(e,i,i),i};er.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=h.dot(o,e)+r<0,a=h.dot(o,t)+r<0,c=h.dot(o,n)+r<0,l=0;l+=s?1:0,l+=a?1:0,l+=c?1:0;let u,m;if((l===1||l===2)&&(u=new h,m=new h),l===1){if(s)return er.lineSegmentPlane(e,t,i,u),er.lineSegmentPlane(e,n,i,m),{positions:[e,t,n,u,m],indices:[0,3,4,1,2,4,1,4,3]};if(a)return er.lineSegmentPlane(t,n,i,u),er.lineSegmentPlane(t,e,i,m),{positions:[e,t,n,u,m],indices:[1,3,4,2,0,4,2,4,3]};if(c)return er.lineSegmentPlane(n,e,i,u),er.lineSegmentPlane(n,t,i,m),{positions:[e,t,n,u,m],indices:[2,3,4,0,1,4,0,4,3]}}else if(l===2)if(s)if(a){if(!c)return er.lineSegmentPlane(e,n,i,u),er.lineSegmentPlane(t,n,i,m),{positions:[e,t,n,u,m],indices:[0,1,4,0,4,3,2,3,4]}}else return er.lineSegmentPlane(n,t,i,u),er.lineSegmentPlane(e,t,i,m),{positions:[e,t,n,u,m],indices:[2,0,4,2,4,3,1,3,4]};else return er.lineSegmentPlane(t,e,i,u),er.lineSegmentPlane(n,e,i,m),{positions:[e,t,n,u,m],indices:[1,2,4,1,4,3,0,3,4]}};var Si=er;var _3=new se;function Ah(e,t){t=g(t,re.WGS84),e=t.scaleToGeodeticSurface(e);let n=vt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(w.getColumn(n,0,_3)),this._yAxis=h.fromCartesian4(w.getColumn(n,1,_3));let i=h.fromCartesian4(w.getColumn(n,2,_3));this._plane=on.fromPointNormal(e,i)}Object.defineProperties(Ah.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var oZe=new ub;Ah.fromPoints=function(e,t){let n=ub.fromPoints(e,oZe);return new Ah(n.center,t)};var a$=new Sn,$A=new h;Ah.prototype.projectPointOntoPlane=function(e,t){let n=a$;n.origin=e,h.normalize(e,n.direction);let i=Si.rayPlane(n,this._plane,$A);if(d(i)||(h.negate(n.direction,n.direction),i=Si.rayPlane(n,this._plane,$A)),d(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return d(t)?(t.x=r,t.y=s,t):new D(r,s)}};Ah.prototype.projectPointsOntoPlane=function(e,t){d(t)||(t=[]);let n=0,i=e.length;for(let o=0;o0?0:P.latitude,R=he.fromRadians(M,e.north,n,bZe),E=he.fromRadians(e.west,e.north,n,yZe),I=he.fromRadians(e.west,b,n,gZe),F=he.fromRadians(e.west,e.south,n,xZe),N=he.fromRadians(M,e.south,n,_Ze),Y=i.cartographicToCartesian(R,TZe),k=i.cartographicToCartesian(E,d$),O=i.cartographicToCartesian(I,SZe),U=i.cartographicToCartesian(F,u$),J=i.cartographicToCartesian(N,CZe),z=A.projectPointToNearestOnPlane(Y,VZe),ee=A.projectPointToNearestOnPlane(k,LZe),K=A.projectPointToNearestOnPlane(O,RZe),j=A.projectPointToNearestOnPlane(U,ZZe),q=A.projectPointToNearestOnPlane(J,GZe);return r=Math.min(ee.x,K.x,j.x),s=-r,c=Math.max(ee.y,z.y),a=Math.min(j.y,q.y),E.height=F.height=t,k=i.cartographicToCartesian(E,d$),U=i.cartographicToCartesian(F,u$),l=Math.min(on.getPointDistance(m,k),on.getPointDistance(m,U)),u=n,c$(A.origin,A.xAxis,A.yAxis,A.zAxis,r,s,a,c,l,u,o)}let p=e.south>0,y=e.north<0,f=p?e.south:y?e.north:0,x=de.center(e,l$).longitude,_=h.fromRadians(x,f,n,i,EZe);_.z=0;let V=Math.abs(_.x)=c?qt.INSIDE:qt.INTERSECTING};var f$=new h,p$=new h,b$=new h,MZe=new h,m$=new h,NZe=new h;wi.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,h$),i=e.halfAxes,o=$.getColumn(i,0,f$),r=$.getColumn(i,1,p$),s=$.getColumn(i,2,b$),a=h.magnitude(o),c=h.magnitude(r),l=h.magnitude(s),u=!0,m=!0,p=!0;a>0?h.divideByScalar(o,a,o):u=!1,c>0?h.divideByScalar(r,c,r):m=!1,l>0?h.divideByScalar(s,l,s):p=!1;let y=!u+!m+!p,f,x,_;if(y===1){let Z=o;f=r,x=s,m?p||(Z=s,x=o):(Z=r,f=o),_=h.cross(f,x,m$),Z===o?o=_:Z===r?r=_:Z===s&&(s=_)}else if(y===2){f=o,m?f=r:p&&(f=s);let Z=h.UNIT_Y;Z.equalsEpsilon(f,W.EPSILON3)&&(Z=h.UNIT_X),x=h.cross(f,Z,MZe),h.normalize(x,x),_=h.cross(f,x,m$),h.normalize(_,_),f===o?(r=x,s=_):f===r?(s=x,o=_):f===s&&(o=x,r=_)}else y===3&&(o=h.UNIT_X,r=h.UNIT_Y,s=h.UNIT_Z);let C=NZe;C.x=h.dot(n,o),C.y=h.dot(n,r),C.z=h.dot(n,s);let V=0,L;return C.x<-a?(L=C.x+a,V+=L*L):C.x>a&&(L=C.x-a,V+=L*L),C.y<-c?(L=C.y+c,V+=L*L):C.y>c&&(L=C.y-c,V+=L*L),C.z<-l?(L=C.z+l,V+=L*L):C.z>l&&(L=C.z-l,V+=L*L),V};var UZe=new h,kZe=new h;wi.computePlaneDistances=function(e,t,n,i){d(i)||(i=new Tc);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,f$),l=$.getColumn(a,1,p$),u=$.getColumn(a,2,b$),m=h.add(c,l,UZe);h.add(m,u,m),h.add(m,s,m);let p=h.subtract(m,t,kZe),y=h.dot(n,p);return o=Math.min(y,o),r=Math.max(y,r),h.add(s,c,m),h.add(m,l,m),h.subtract(m,u,m),h.subtract(m,t,p),y=h.dot(n,p),o=Math.min(y,o),r=Math.max(y,r),h.add(s,c,m),h.subtract(m,l,m),h.add(m,u,m),h.subtract(m,t,p),y=h.dot(n,p),o=Math.min(y,o),r=Math.max(y,r),h.add(s,c,m),h.subtract(m,l,m),h.subtract(m,u,m),h.subtract(m,t,p),y=h.dot(n,p),o=Math.min(y,o),r=Math.max(y,r),h.subtract(s,c,m),h.add(m,l,m),h.add(m,u,m),h.subtract(m,t,p),y=h.dot(n,p),o=Math.min(y,o),r=Math.max(y,r),h.subtract(s,c,m),h.add(m,l,m),h.subtract(m,u,m),h.subtract(m,t,p),y=h.dot(n,p),o=Math.min(y,o),r=Math.max(y,r),h.subtract(s,c,m),h.subtract(m,l,m),h.add(m,u,m),h.subtract(m,t,p),y=h.dot(n,p),o=Math.min(y,o),r=Math.max(y,r),h.subtract(s,c,m),h.subtract(m,l,m),h.subtract(m,u,m),h.subtract(m,t,p),y=h.dot(n,p),o=Math.min(y,o),r=Math.max(y,r),i.start=o,i.stop=r,i};var DZe=new h,BZe=new h,YZe=new h;wi.computeCorners=function(e,t){d(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,o=$.getColumn(i,0,DZe),r=$.getColumn(i,1,BZe),s=$.getColumn(i,2,YZe);return h.clone(n,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],o,t[1]),h.subtract(t[1],r,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],o,t[2]),h.add(t[2],r,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],o,t[3]),h.add(t[3],r,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],o,t[4]),h.subtract(t[4],r,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],o,t[5]),h.subtract(t[5],r,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],o,t[6]),h.add(t[6],r,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],o,t[7]),h.add(t[7],r,t[7]),h.add(t[7],s,t[7]),t};var OZe=new $;wi.computeTransformation=function(e,t){d(t)||(t=new w);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,OZe);return w.fromRotationTranslation(i,n,t)};var KZe=new ce;wi.isOccluded=function(e,t){let n=ce.fromOrientedBoundingBox(e,KZe);return!t.isBoundingSphereVisible(n)};wi.prototype.intersectPlane=function(e){return wi.intersectPlane(this,e)};wi.prototype.distanceSquaredTo=function(e){return wi.distanceSquaredTo(this,e)};wi.prototype.computePlaneDistances=function(e,t,n){return wi.computePlaneDistances(this,e,t,n)};wi.prototype.computeCorners=function(e){return wi.computeCorners(this,e)};wi.prototype.computeTransformation=function(e){return wi.computeTransformation(this,e)};wi.prototype.isOccluded=function(e){return wi.isOccluded(this,e)};wi.equals=function(e,t){return e===t||d(e)&&d(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};wi.prototype.clone=function(e){return wi.clone(this,e)};wi.prototype.equals=function(e){return wi.equals(this,e)};var Wn=wi;var mDt=T(S(),1);var eM={};eM.getHeight=function(e,t,n){return(e-n)*t+n};var HZe=new h;eM.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,HZe),s=eM.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var Vc=eM;var eOt=T(S(),1);var fDt=T(S(),1),MG=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; + +#ifdef EXTRUDED_GEOMETRY +in vec3 extrudeDirection; + +uniform float u_globeMinimumAltitude; +#endif // EXTRUDED_GEOMETRY + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif // PER_INSTANCE_COLOR + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +out vec4 v_sphericalExtents; +#else // SPHERICAL +out vec2 v_inversePlaneExtents; +out vec4 v_westPlane; +out vec4 v_southPlane; +#endif // SPHERICAL +out vec3 v_uvMinAndSphericalLongitudeRotation; +out vec3 v_uMaxAndInverseDistance; +out vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +void main() +{ + vec4 position = czm_computePosition(); + +#ifdef EXTRUDED_GEOMETRY + float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); + delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; + + //extrudeDirection is zero for the top layer + position = position + vec4(extrudeDirection * delta, 0.0); +#endif + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL + v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); + v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); +#else // SPHERICAL +#ifdef COLUMBUS_VIEW_2D + vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); + vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); + + // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var bDt=T(S(),1),mb=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var gDt=T(S(),1),y$={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};y$.NUMBER_OF_CLASSIFICATION_TYPES=3;var kn=Object.freeze(y$);var TDt=T(S(),1);var zZe={NEVER:ne.NEVER,LESS:ne.LESS,EQUAL:ne.EQUAL,LESS_OR_EQUAL:ne.LEQUAL,GREATER:ne.GREATER,NOT_EQUAL:ne.NOTEQUAL,GREATER_OR_EQUAL:ne.GEQUAL,ALWAYS:ne.ALWAYS},ka=Object.freeze(zZe);var Q3t=T(S(),1);var CDt=T(S(),1);function JZe(e,t){let n=[],i=e.length,o=0;for(;o>1^-(e&1)}yo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a>11,u=c>>5&o,m=c&i,p=3*a;t[p]=l*r,t[p+1]=u*s,t[p+2]=m*r}return t};var Kn=yo;var rBt=T(S(),1);var C$=new h,V$=new h,L$=new h;function lGe(e,t,n,i,o){d(o)||(o=new h);let r,s,a,c,l,u,m,p;if(d(t.z)){if(h.equalsEpsilon(e,t,W.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,W.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,W.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,C$),s=h.subtract(i,t,V$),a=h.subtract(e,t,L$),c=h.dot(r,r),l=h.dot(r,s),u=h.dot(r,a),m=h.dot(s,s),p=h.dot(s,a)}else{if(D.equalsEpsilon(e,t,W.EPSILON14))return h.clone(h.UNIT_X,o);if(D.equalsEpsilon(e,n,W.EPSILON14))return h.clone(h.UNIT_Y,o);if(D.equalsEpsilon(e,i,W.EPSILON14))return h.clone(h.UNIT_Z,o);r=D.subtract(n,t,C$),s=D.subtract(i,t,V$),a=D.subtract(e,t,L$),c=D.dot(r,r),l=D.dot(r,s),u=D.dot(r,a),m=D.dot(s,s),p=D.dot(s,a)}o.y=m*u-l*p,o.z=c*p-l*u;let y=c*m-l*l;if(y!==0)return o.y/=y,o.z/=y,o.x=1-o.y-o.z,o}var Yg=lGe;var lBt=T(S(),1);var C3={};C3.calculateACMR=function(e){e=g(e,g.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=g(e.cacheSize,24),o=t.length;if(!d(n)){n=0;let a=0,c=t[a];for(;an&&(n=c),++a,c=t[a]}let r=[];for(let a=0;ai&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};C3.tipsify=function(e){e=g(e,g.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=g(e.cacheSize,24),o;function r(b,R,E,I){for(;R.length>=1;){let F=R[R.length-1];if(R.splice(R.length-1,1),b[F].numLiveTriangles>0)return F}for(;o0)return++o,o-1;++o}return-1}function s(b,R,E,I,F,N,Y){let k=-1,O,U=-1,J=0;for(;JU||U===-1)&&(U=O,k=z)),++J}return k===-1?r(I,N,b,Y):k}let a=t.length,c=0,l=0,u=t[l],m=a;if(d(n))c=n+1;else{for(;lc&&(c=u),++l,u=t[l];if(c===-1)return 0;++c}let p=[],y;for(y=0;yi&&(L.timeStamp=_,++_),++l}x=s(t,i,C,p,_,V,c)}return X};var DG=C3;var Lc={};function cM(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function dGe(e){let t=e.length,n=t/3*6,i=Ue.createTypedArray(t,n),o=0;for(let r=0;r=3){let n=(t-2)*6,i=Ue.createTypedArray(t,n);cM(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r0){let t=e.length-1,n=(t-1)*6,i=Ue.createTypedArray(t,n),o=e[0],r=0;for(let s=1;so&&(o=n[r]);e.indices=DG.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function R$(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&d(e[n])&&d(e[n].values)){let i=e[n];t[n]=new Ze({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function hGe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&d(t[i])&&d(t[i].values)){let o=t[i];for(let r=0;r=W.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=R$(e.attributes),a=e.indices,c=a.length,l;e.primitiveType===we.TRIANGLES?l=3:e.primitiveType===we.LINES?l=2:e.primitiveType===we.POINTS&&(l=1);for(let u=0;u=W.SIXTY_FOUR_KILOBYTES&&(t.push(new dt({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=R$(e.attributes))}o.length!==0&&t.push(new dt({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var Z$=new h,fGe=new he;Lc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=d(o)?o:new Zi;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),l=0;for(let u=0;u_&&(_=V)}return new dt({attributes:u,indices:f,primitiveType:l,boundingSphere:d(x)?new ce(x,_):void 0})}Lc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r0&&o.push(Z3(t,"geometry")),n.length>0&&(o.push(Z3(n,"westHemisphereGeometry")),o.push(Z3(n,"eastHemisphereGeometry"))),o};var jd=new h,BG=new h,pS=new h,bS=new h;Lc.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),l;for(l=0;l0){for(u=0;u3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;oo?i>r?s=W.sign(e.y):s=W.sign(n.y):o>r?s=W.sign(t.y):s=W.sign(n.y);let a=s<0;hb(e,a),hb(t,a),hb(n,a)}var I$=new h;function qd(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,I$),e.y/(e.y-t.y),I$),n),h.clone(n,i),hb(n,!0),hb(i,!1)}var Og=new h,Kg=new h,Hg=new h,zg=new h,G3={positions:new Array(7),indices:new Array(3*3)};function ZGe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;RGe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=G3.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(qd(e,t,Og,Hg),qd(e,n,Kg,zg),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(qd(t,n,Og,Hg),qd(t,e,Kg,zg),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(qd(n,e,Og,Hg),qd(n,t,Kg,zg),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(qd(n,e,Og,Hg),qd(n,t,Kg,zg),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(qd(t,n,Og,Hg),qd(t,e,Kg,zg),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(qd(e,t,Og,Hg),qd(e,n,Kg,zg),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=G3.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=Og,c[4]=Kg,c[5]=Hg,c[6]=zg,c.length=7),G3}function W$(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&d(n[o])&&d(n[o].values)){let r=n[o];r.values=Q.createTypedArray(r.componentDatatype,r.values)}let i=dt.computeNumberOfVertices(e);return e.indices=Ue.createTypedArray(i,e.indices),t&&(e.boundingSphere=ce.fromVertices(n.position.values)),e}function gS(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&d(t[i])&&d(t[i].values)){let o=t[i];n[i]=new Ze({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new dt({attributes:n,indices:[],primitiveType:e.primitiveType})}function W3(e,t,n){let i=d(e.geometry.boundingSphere);t=W$(t,i),n=W$(n,i),d(n)&&!d(t)?e.geometry=n:!d(n)&&d(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function P3(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,l,u,m,p){let y=e.fromArray(l,r*t,n),f=e.fromArray(l,s*t,i),x=e.fromArray(l,a*t,o);e.multiplyByScalar(y,c.x,y),e.multiplyByScalar(f,c.y,f),e.multiplyByScalar(x,c.z,x);let _=e.add(y,f,y);e.add(_,x,_),p&&e.normalize(_,_),e.pack(_,u,m*t)}}var GGe=P3(se,4),aM=P3(h,3),M$=P3(D,2),EGe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,l=o[n]*i.z;r[s]=a+c+l>W.EPSILON6?1:0},OG=new h,E3=new h,X3=new h,XGe=new h;function rM(e,t,n,i,o,r,s,a,c,l,u,m,p,y,f,x){if(!d(r)&&!d(s)&&!d(a)&&!d(c)&&!d(l)&&y===0)return;let _=h.fromArray(o,e*3,OG),C=h.fromArray(o,t*3,E3),V=h.fromArray(o,n*3,X3),L=Yg(i,_,C,V,XGe);if(d(L)){if(d(r)&&aM(e,t,n,L,r,m.normal.values,x,!0),d(l)){let Z=h.fromArray(l,e*3,OG),G=h.fromArray(l,t*3,E3),X=h.fromArray(l,n*3,X3);h.multiplyByScalar(Z,L.x,Z),h.multiplyByScalar(G,L.y,G),h.multiplyByScalar(X,L.z,X);let P;!h.equals(Z,h.ZERO)||!h.equals(G,h.ZERO)||!h.equals(X,h.ZERO)?(P=h.add(Z,G,Z),h.add(P,X,P),h.normalize(P,P)):(P=OG,P.x=0,P.y=0,P.z=0),h.pack(P,m.extrudeDirection.values,x*3)}if(d(u)&&EGe(e,t,n,L,u,m.applyOffset.values,x),d(s)&&aM(e,t,n,L,s,m.tangent.values,x,!0),d(a)&&aM(e,t,n,L,a,m.bitangent.values,x,!0),d(c)&&M$(e,t,n,L,c,m.st.values,x),y>0)for(let Z=0;Z3){let I=E.positions,F=E.indices,N=F.length;for(let Y=0;Y0)continue;let c=h.unpack(i,s,k$);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let l=h.unpack(o,s,I3);(a.y<0&&l.y>0||a.y>0&&l.y<0)&&(s+30||ce.intersectPlane(n,on.ORIGIN_ZX_PLANE)!==qt.INTERSECTING))return e;if(t.geometryType!==Hd.NONE)switch(t.geometryType){case Hd.POLYLINES:UGe(e);break;case Hd.TRIANGLES:P$(e);break;case Hd.LINES:v$(e);break}else LGe(t),t.primitiveType===we.TRIANGLES?P$(e):t.primitiveType===we.LINES&&v$(e);return e};var An=Lc;var BBt=T(S(),1);function ll(e){this._ellipsoid=g(e,re.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(ll.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});ll.mercatorAngleToGeodeticLatitude=function(e){return W.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};ll.geodeticLatitudeToMercatorAngle=function(e){e>ll.MaximumLatitude?e=ll.MaximumLatitude:e<-ll.MaximumLatitude&&(e=-ll.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};ll.MaximumLatitude=ll.mercatorAngleToGeodeticLatitude(Math.PI);ll.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=ll.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return d(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};ll.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=ll.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return d(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new he(i,o,r)};var Ei=ll;function kGe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r=0){let l=i[a];o=l.offset+l.count,s=l.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let l=0;lr&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function YGe(e,t){let n=[];return F3(e,"geometry",t,n),F3(e,"westHemisphereGeometry",t,n),F3(e,"eastHemisphereGeometry",t,n),n}var sp={};sp.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=BGe(e),t.length>0&&(n=An.createAttributeLocations(t[0]),e.createPickOffsets&&(r=YGe(i,t))),d(i[0].attributes)&&d(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),l=new Array(o);for(let u=0;u0&&(n.set(c.indices,s),s+=f)}return t.push(n.buffer),{stringTable:i,packedData:n}};sp.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s0){let G=_.length/C;for(Z=Ue.createTypedArray(G,x),i=0;i= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${o}`};function K$(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",l=`in ${a} ${c};`,u="",m="";if(i){u+=`vec2 st; +`;let f=s>1?`${c}.x`:c;m+=` st = czm_decompressTextureCoordinates(${f}); +`}n&&o&&r?(u+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,m+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(u+=`vec3 normal; +`,m+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),o&&(u+=`vec3 tangent; +`,m+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),r&&(u+=`vec3 bitangent; +`,m+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=Be.replaceMain(p,"czm_non_compressed_main");let y=`void main() +{ +${m} czm_non_compressed_main(); +}`;return[l,u,p,y].join(` +`)}function rEe(e){let t=Be.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function sEe(e){let t=Be.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function H$(e,t){let n=e.vertexAttributes}function aEe(e,t){return function(){return e[t]}}var w3=Math.max(Mt.hardwareConcurrency-1,1),lM,cEe=new pi("combineGeometry");function lEe(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===mr.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],l=[];for(o=0;o0){let x=new Float64Array(m);for(f=[x.buffer],r=0;r0?(e._recomputeBoundingSpheres=!0,e._state=mr.COMBINED):HG(e,t,mr.FAILED,void 0)}).catch(function(m){HG(e,t,mr.FAILED,m)})}}function dEe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a0?(e._recomputeBoundingSpheres=!0,e._state=mr.COMBINED):HG(e,t,mr.FAILED,void 0)}function uEe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!d(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!d(a)){for(a=new Array(s),i=0;i0||ce.intersectPlane(x,on.ORIGIN_ZX_PLANE)!==qt.INTERSECTING?c.push(x):(l.push(x),u.push(x))}let m=c[0],p=u[0],y=l[0];for(i=1;i0){if(kt.maximumVertexTextureImageUnits===0)throw new me("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==mr.COMPLETE&&this._state!==mr.COMBINED&&(this.asynchronous?lEe(this,e):dEe(this,e)),this._state===mr.COMBINED&&(mEe(this,e),J$(this,e),fEe(this,e)),!this.show||this._state!==mr.COMPLETE)return;this._batchTableOffsetsUpdated||J$(this,e),this._recomputeBoundingSpheres&&uEe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=d(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),d(this._material)&&this._material.update(t);let l=n.closed&&c;o&&g(this._createRenderStatesFunction,pEe)(this,t,n,l),r&&g(this._createShaderProgramFunction,bEe)(this,e,n),(o||r)&&g(this._createCommandsFunction,yEe)(this,n,i,c,l,this._colorCommands,this._pickCommands,e),g(this._updateAndQueueCommandsFunction,gEe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,l)};var xEe=new ce,_Ee=new ce;function iee(e,t,n){if(n===rn.TOP){let i=ce.clone(e,xEe),o=ce.clone(e,_Ee);o.center=h.add(o.center,t,o.center),e=ce.union(i,o,e)}else n===rn.ALL&&(e.center=h.add(e.center,t,e.center));return e}function TEe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=Q.createTypedArray(o.componentDatatype,r);return d(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function SEe(e,t,n,i,o){return function(r){let s=$$(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var CEe=new h;function VEe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(d(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;d(r)&&iee(i,h.fromArray(r.get(),0,CEe),e._offsetInstanceExtend[n]),d(o)&&(i=ce.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function LEe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}hr.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(d(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let l=0;l 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef PICK +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + // Check for logDepthOrDepth != 0.0 to make sure this should be classified. + if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { + out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource + czm_writeDepthClamp(); + } +#else // CULL_FRAGMENTS + out_FragColor.a = 1.0; +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function $d(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new M3;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new M3;if(o.requiresTextureCoordinates=e,n instanceof sn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}$d.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof sn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof sn||(o=t.material.shaderSource),new Be({defines:i,sources:[o,xS]})};$d.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new Be({defines:n,sources:[xS],pickColorQualifier:"in"})};$d.prototype.createVertexShader=function(e,t,n,i){return uee(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};$d.prototype.createPickVertexShader=function(e,t,n,i){return uee(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var oee=new h,ree=new he,see={high:0,low:0};function uee(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let l=ree;l.longitude=W.PI,l.latitude=0,l.height=0;let u=s.project(l,oee),m=On.encode(u.x,see);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${m.high.toFixed(`${m.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${m.low.toFixed(`${m.low}`.length+1)}`;let p=ree;p.longitude=-W.PI,p.latitude=0,p.height=0;let y=s.project(p,oee);m=On.encode(y.x,see),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${m.high.toFixed(`${m.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${m.low.toFixed(`${m.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),d(r)&&r instanceof sn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new Be({defines:c,sources:[o]})}function M3(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(M3.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function aee(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/D.distance(t,e)}var ZEe=[new D,new D,new D,new D];function mee(e,t){let n=ZEe,i=D.unpack(t,0,n[0]),o=D.unpack(t,2,n[1]),r=D.unpack(t,4,n[2]);e.uMaxVmax=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/aee(i,o,r),a=1/aee(i,r,o);e.uvMinAndExtents=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var hee=new he,fee=new h,GEe=new h,EEe=new h,dM={high:0,low:0};function pee(e,t,n){let i=hee;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,fee);i.latitude=e.north;let r=t.project(i,GEe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,EEe),a=[0,0,0,0],c=[0,0,0,0],l=On.encode(o.x,dM);a[0]=l.high,c[0]=l.low,l=On.encode(o.y,dM),a[1]=l.high,c[1]=l.low,l=On.encode(r.y,dM),a[2]=l.high,c[2]=l.low,l=On.encode(s.x,dM),a[3]=l.high,c[3]=l.low,n.planes2D_HIGH=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var XEe=new w,IEe=new w,cee=new h,WEe=new he,PEe=[new he,new he,new he,new he,new he,new he,new he,new he];function vEe(e,t,n,i,o,r){let s=de.center(e,WEe);s.height=n;let a=he.toCartesian(s,t,cee),c=vt.eastNorthUpToFixedFrame(a,t,XEe),l=w.inverse(c,IEe),u=e.west,m=e.east,p=e.north,y=e.south,f=PEe;f[0].latitude=y,f[0].longitude=u,f[1].latitude=p,f[1].longitude=u,f[2].latitude=p,f[2].longitude=m,f[3].latitude=y,f[3].longitude=m;let x=(u+m)*.5,_=(p+y)*.5;f[4].latitude=y,f[4].longitude=x,f[5].latitude=p,f[5].longitude=x,f[6].latitude=_,f[6].longitude=u,f[7].latitude=_,f[7].longitude=m;let C=Number.POSITIVE_INFINITY,V=Number.NEGATIVE_INFINITY,L=Number.POSITIVE_INFINITY,Z=Number.NEGATIVE_INFINITY;for(let v=0;v<8;v++){f[v].height=n;let A=he.toCartesian(f[v],t,cee);w.multiplyByPoint(l,A,A),A.z=0,C=Math.min(C,A.x),V=Math.max(V,A.x),L=Math.min(L,A.y),Z=Math.max(Z,A.y)}let G=i;G.x=C,G.y=L,G.z=0,w.multiplyByPoint(c,G,G);let X=o;X.x=V,X.y=L,X.z=0,w.multiplyByPoint(c,X,X),h.subtract(X,G,o);let P=r;P.x=C,P.y=Z,P.z=0,w.multiplyByPoint(c,P,P),h.subtract(P,G,r)}var FEe=new h,wEe=new h,AEe=new On;$d.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=fee,s=FEe,a=wEe;vEe(e,n,g(o,0),r,s,a);let c={};mee(c,t);let l=On.fromCartesian(r,AEe);return c.southWest_HIGH=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.high,[0,0,0])}),c.southWest_LOW=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.low,[0,0,0])}),c.eastward=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),pee(e,i,c),c};var MEe=new h;function lee(e,t,n,i){let o=hee;o.latitude=e,o.longitude=t,o.height=0;let r=he.toCartesian(o,n,MEe),s=Math.sqrt(r.x*r.x+r.y*r.y),a=W.fastApproximateAtan2(s,r.z),c=W.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var dee=new D;$d.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=lee(e.south,e.west,n,dee),r=o.x,s=o.y,a=lee(e.north,e.east,n,dee),c=a.x,l=a.y,u=0;s>l&&(u=W.PI-s,s=-W.PI,l+=u),r-=W.EPSILON5,s-=W.EPSILON5,c+=W.EPSILON5,l+=W.EPSILON5;let m=1/(l-s),p=1/(c-r),y={sphericalExtents:new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,m]}),longitudeRotation:new Da({componentDatatype:Q.FLOAT,componentsPerAttribute:1,normalize:!1,value:[u]})};return mee(y,t),pee(e,i,y),y};$d.hasAttributesForTextureCoordinatePlanes=function(e){return d(e.southWest_HIGH)&&d(e.southWest_LOW)&&d(e.northward)&&d(e.eastward)&&d(e.planes2D_HIGH)&&d(e.planes2D_LOW)&&d(e.uMaxVmax)&&d(e.uvMinAndExtents)};$d.hasAttributesForSphericalExtents=function(e){return d(e.sphericalExtents)&&d(e.longitudeRotation)&&d(e.planes2D_HIGH)&&d(e.planes2D_LOW)&&d(e.uMaxVmax)&&d(e.uvMinAndExtents)};function NEe(e){return Math.max(e.width,e.height)>$d.MAX_WIDTH_FOR_PLANAR_EXTENTS}$d.shouldUseSphericalCoordinates=function(e){return NEe(e)};$d.MAX_WIDTH_FOR_PLANAR_EXTENTS=W.toRadians(1);var Ql=$d;var GYt=T(S(),1);var TYt=T(S(),1);var UEe={NEVER:ne.NEVER,LESS:ne.LESS,EQUAL:ne.EQUAL,LESS_OR_EQUAL:ne.LEQUAL,GREATER:ne.GREATER,NOT_EQUAL:ne.NOTEQUAL,GREATER_OR_EQUAL:ne.GEQUAL,ALWAYS:ne.ALWAYS},Dn=Object.freeze(UEe);var VYt=T(S(),1);var kEe={ZERO:ne.ZERO,KEEP:ne.KEEP,REPLACE:ne.REPLACE,INCREMENT:ne.INCR,DECREMENT:ne.DECR,INVERT:ne.INVERT,INCREMENT_WRAP:ne.INCR_WRAP,DECREMENT_WRAP:ne.DECR_WRAP},ht=Object.freeze(kEe);var uM={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};uM.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Dn.ALWAYS,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.REPLACE},backFunction:Dn.ALWAYS,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.REPLACE},reference:uM.CESIUM_3D_TILE_MASK,mask:uM.CESIUM_3D_TILE_MASK}};var wt=Object.freeze(uM);function Qg(e){e=g(e,g.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=g(e.show,!0),this.classificationType=g(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=g(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=g(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=g(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:g(e.vertexCacheOptimize,!1),interleave:g(e.interleave,!1),releaseGeometryInstances:g(e.releaseGeometryInstances,!0),allowPicking:g(e.allowPicking,!0),asynchronous:g(e.asynchronous,!0),compressVertices:g(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(Qg.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});Qg.isSupported=function(e){return e.context.stencilBuffer};function _S(e,t){let n=t?Dn.EQUAL:Dn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:ht.KEEP,zFail:ht.DECREMENT_WRAP,zPass:ht.KEEP},backFunction:n,backOperation:{fail:ht.KEEP,zFail:ht.INCREMENT_WRAP,zPass:ht.KEEP},reference:wt.CESIUM_3D_TILE_MASK,mask:wt.CESIUM_3D_TILE_MASK},stencilMask:wt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:ka.LESS_OR_EQUAL},depthMask:!1}}function U3(e){return{stencilTest:{enabled:e,frontFunction:Dn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Dn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:wt.CLASSIFICATION_MASK},stencilMask:wt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var DEe={stencilTest:{enabled:!0,frontFunction:Dn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Dn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:wt.CLASSIFICATION_MASK},stencilMask:wt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function BEe(e,t,n,i){if(d(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=De.fromCache(_S(o,!1)),e._rsStencilDepthPass3DTiles=De.fromCache(_S(o,!0)),e._rsColorPass=De.fromCache(U3(o,!1)),e._rsPickPass=De.fromCache(DEe)}function YEe(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; +`,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=Be.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${r} czm_non_compressed_main(); +}`;return[i,o,s,a].join(` +`)}}function OEe(e,t){let n=t.context,i=e._primitive,o=MG;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=Zn._appendDistanceDisplayConditionToShader(i,o),o=Zn._modifyShaderPosition(e,o,t.scene3DOnly),o=Zn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=YEe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new Be({defines:[a],sources:[o]}),l=new Be({sources:[mb]}),u=e._primitive._attributeLocations,m=new Ql(s,r,e.appearance);if(e._spStencil=Qt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:u}),e._primitive.allowPicking){let f=Be.createPickVertexShaderSource(o);f=Zn._appendShowToShader(i,f),f=Zn._updatePickColorAttribute(f);let x=m.createPickFragmentShader(!1),_=m.createPickVertexShader([a],f,!1,t.mapProjection);if(e._spPick=Qt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:_,fragmentShaderSource:x,attributeLocations:u}),s){let C=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!d(C)){let V=m.createPickFragmentShader(!0),L=m.createPickVertexShader([a],f,!0,t.mapProjection);C=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:L,fragmentShaderSource:V,attributeLocations:u})}e._spPick2D=C}}else e._spPick=Qt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:u});o=Zn._appendShowToShader(i,o),c=new Be({defines:[a],sources:[o]}),e._sp=Qt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:u});let p=m.createFragmentShader(!1),y=m.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=Qt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:y,fragmentShaderSource:p,attributeLocations:u}),s){let f=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!d(f)){let x=m.createFragmentShader(!0),_=m.createVertexShader([a],o,!0,t.mapProjection);f=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:_,fragmentShaderSource:x,attributeLocations:u})}e._spColor2D=f}}function KEe(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),l=e._needs2DShader;for(o=0;o0&&(c=o[0].attributes,p=Ql.hasAttributesForSphericalExtents(c),y=Ql.hasAttributesForTextureCoordinatePlanes(c),m=c.color),s=0;s{d(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Qg.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Qg.prototype.isDestroyed=function(){return!1};Qg.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,ue(this)};var TS=Qg;var QEe={u_globeMinimumAltitude:function(){return 55e3}};function dl(e){e=g(e,g.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!d(t)&&d(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s{!this._ready&&d(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};dl.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};dl.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};dl.prototype.isDestroyed=function(){return!1};dl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};dl._supportsMaterials=function(e){return e.depthTexture};dl.supportsMaterials=function(e){return dl._supportsMaterials(e.frameState.context)};var Rc=dl;var VOt=T(S(),1);function SS(){fe.throwInstantiationError()}Object.defineProperties(SS.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});SS.prototype.getType=fe.throwInstantiationError;SS.prototype.getValue=fe.throwInstantiationError;SS.prototype.equals=fe.throwInstantiationError;SS.getValue=function(e,t,n){let i;return d(t)&&(i=t.getType(e),d(i))?((!d(n)||n.type!==i)&&(n=ki.fromType(i)),t.getValue(e,n.uniforms),n):((!d(n)||n.type!==ki.ColorType)&&(n=ki.fromType(ki.ColorType)),B.clone(B.WHITE,n.uniforms.color),n)};var Yo=SS;function jg(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}jg.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!H.getValueOrDefault(t.show,n,!0)};jg.prototype._setOptions=fe.throwInstantiationError;jg.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!d(s.fill)||s.fill.getValue(e)){let l=t.fillMaterialProperty,u=l instanceof At,m,p=t._getIsClosed(c);if(u)m=new sn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let y=Yo.getValue(e,l,this._material);this._material=y,m=new so({material:y,translucent:y.isTranslucent(),closed:p})}if(n)c.vertexFormat=sn.VERTEX_FORMAT,this._primitive=o.add(new Rc({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:m,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),H.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=m.vertexFormat;let y=this._geometryUpdater.createFillGeometryInstance(e);u&&(m.translucent=y.attributes.color.value[3]!==255),this._primitive=i.add(new Zn({geometryInstances:y,appearance:m,asynchronous:!1,shadows:a}))}}if(!n&&d(s.outline)&&s.outline.getValue(e)){let l=this._geometryUpdater.createOutlineGeometryInstance(e),u=H.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new Zn({geometryInstances:l,appearance:new sn({flat:!0,translucent:l.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(u)}}),asynchronous:!1,shadows:a}))}};jg.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return d(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),d(o)&&d(o.boundingSphere))?(ce.clone(o.boundingSphere,e),lt.DONE):d(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),d(o)&&d(o.boundingSphere))?(ce.clone(o.boundingSphere,e),lt.DONE):d(n)&&!n.ready||d(i)&&!i.ready?lt.PENDING:lt.FAILED};jg.prototype.isDestroyed=function(){return!1};jg.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),ue(this)};var ii=jg;var ijt=T(S(),1);var U4t=T(S(),1);var YHt=T(S(),1);var WKt=T(S(),1);var UOt=T(S(),1),rXe={NONE:0,GEODESIC:1,RHUMB:2},Jt=Object.freeze(rXe);var OOt=T(S(),1);var Tee=W.EPSILON10;function sXe(e,t,n,i){if(!d(e))return;n=g(n,!1);let o=d(i),r=e.length;if(r<2)return e;let s,a=e[0],c,l,u=0,m=-1;for(s=1;sW.EPSILON12);let R=M*(t*t-n*n)/(n*n),E=1+R*(4096+R*(R*(320-175*R)-768))/16384,I=R*(256+R*(R*(74-47*R)-128))/1024,F=b*b,N=I*A*(b+I*(v*(2*F-1)-I*b*(4*A*A-3)*(4*F-3)/6)/4),Y=n*E*(P-N),k=Math.atan2(y*X,_-V*G),O=Math.atan2(m*X,_*G-V);e._distance=Y,e._startHeading=k,e._endHeading=O,e._uSquared=R}var dXe=new h,B3=new h;function Cee(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,B3),dXe),r=h.normalize(i.cartographicToCartesian(n,B3),B3);lXe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=he.clone(t,e._start),e._end=he.clone(n,e._end),e._start.height=0,e._end.height=0,aXe(e)}function zG(e,t,n){let i=g(n,re.WGS84);this._ellipsoid=i,this._start=new he,this._end=new he,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,d(e)&&d(t)&&Cee(this,e,t,i)}Object.defineProperties(zG.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});zG.prototype.setEndPoints=function(e,t){Cee(this,e,t,this._ellipsoid)};zG.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};zG.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),l=Math.sin(6*i),u=Math.sin(8*i),m=i*i,p=i*m,y=n.u8Over256,f=n.u2Over4,x=n.u6Over64,_=n.u4Over16,C=2*p*y*o/3+i*(1-f+7*_/4-15*x/4+579*y/64-(_-15*x/4+187*y/16)*o-(5*x/4-115*y/16)*r-29*y*s/16)+(f/2-_+71*x/32-85*y/16)*a+(5*_/16-5*x/4+383*y/96)*c-m*((x-11*y/2)*a+5*y*c/2)+(29*x/96-29*y/16)*l+539*y*u/1536,V=Math.asin(Math.sin(C)*n.cosineAlpha),L=Math.atan(n.a/n.b*Math.tan(V));C=C-n.sigma;let Z=Math.cos(2*n.sigma+C),G=Math.sin(C),X=Math.cos(C),P=n.cosineU*X,v=n.sineU*G,M=Math.atan2(G*n.sineHeading,P-v*n.cosineHeading)-See(n.f,n.sineAlpha,n.cosineSquaredAlpha,C,G,X,Z);return d(t)?(t.longitude=this._start.longitude+M,t.latitude=L,t.height=0,t):new he(this._start.longitude+M,L,0)};var eu=zG;var aKt=T(S(),1);function O3(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,l=n,u=Math.sin(2*l),m=Math.sin(4*l),p=Math.sin(6*l),y=Math.sin(8*l),f=Math.sin(10*l),x=Math.sin(12*l);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*l-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*u+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*m-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*y-(693*a/1310720+6237*c/5242880)*f+1001*c/8388608*x)}function uXe(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,l=c*c,u=l*c,m=u*c,p=m*c,y=p*c,f=Math.sin(2*i),x=Math.cos(2*i),_=Math.sin(4*i),C=Math.cos(4*i),V=Math.sin(6*i),L=Math.cos(6*i),Z=Math.sin(8*i),G=Math.cos(8*i),X=Math.sin(10*i),P=Math.cos(10*i),v=Math.sin(12*i);return i+i*c/4+7*i*l/64+15*i*u/256+579*i*m/16384+1515*i*p/65536+16837*i*y/1048576+(3*i*l/16+45*i*u/256-i*(32*o-561)*m/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*y/5242880)*x+(21*i*u/256+483*i*m/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*y/1048576)*C+(151*i*m/4096+4681*i*p/65536+1479*i*y/16384-453*r*y/32768)*L+(1097*i*p/65536+42783*i*y/1048576)*G+8011*i*y/1048576*P+(3*c/8+3*l/16+213*u/2048-3*o*u/64+255*m/4096-33*o*m/512+20861*p/524288-33*o*p/512+s*p/1024+28273*y/1048576-471*o*y/8192+9*s*y/4096)*f+(21*l/256+21*u/256+533*m/8192-21*o*m/512+197*p/4096-315*o*p/4096+584039*y/16777216-12517*o*y/131072+7*s*y/2048)*_+(151*u/6144+151*m/4096+5019*p/131072-453*o*p/16384+26965*y/786432-8607*o*y/131072)*V+(1097*m/131072+1097*p/65536+225797*y/10485760-1097*o*y/65536)*Z+(8011*p/2621440+8011*y/1048576)*X+293393*y/251658240*v}function CS(e,t){if(e===0)return Math.log(Math.tan(.5*(W.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(W.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function mXe(e,t,n,i,o){let r=CS(e._ellipticity,n),s=CS(e._ellipticity,o);return Math.atan2(W.negativePiToPi(i-t),s-r)}function hXe(e,t,n,i,o,r,s){let a=e._heading,c=r-i,l=0;if(W.equalsEpsilon(Math.abs(a),W.PI_OVER_TWO,W.EPSILON8))if(t===n)l=t*Math.cos(o)*W.negativePiToPi(c);else{let u=Math.sin(o);l=t*Math.cos(o)*W.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*u*u)}else{let u=O3(e._ellipticity,t,o);l=(O3(e._ellipticity,t,s)-u)/Math.cos(a)}return Math.abs(l)}var fXe=new h,Y3=new h;function Vee(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,Y3),fXe),r=h.normalize(i.cartographicToCartesian(n,Y3),Y3),s=i.maximumRadius,a=i.minimumRadius,c=s*s,l=a*a;e._ellipticitySquared=(c-l)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=he.clone(t,e._start),e._start.height=0,e._end=he.clone(n,e._end),e._end.height=0,e._heading=mXe(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=hXe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function Lee(e,t,n,i,o,r){if(n===0)return he.clone(e,r);let s=o*o,a,c,l;if(Math.abs(W.PI_OVER_TWO-Math.abs(t))>W.EPSILON8){let u=O3(o,i,e.latitude),m=n*Math.cos(t),p=u+m;if(c=uXe(p,o,i),Math.abs(t)0?a=W.negativePiToPi(e.longitude+l):a=W.negativePiToPi(e.longitude-l)}return d(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new he(a,c,0)}function ap(e,t,n){let i=g(n,re.WGS84);this._ellipsoid=i,this._start=new he,this._end=new he,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,d(e)&&d(t)&&Vee(this,e,t,i)}Object.defineProperties(ap.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});ap.fromStartHeadingDistance=function(e,t,n,i,o){let r=g(i,re.WGS84),s=r.maximumRadius,a=r.minimumRadius,c=s*s,l=a*a,u=Math.sqrt((c-l)/c);t=W.negativePiToPi(t);let m=Lee(e,t,n,r.maximumRadius,u);return!d(o)||d(i)&&!i.equals(o.ellipsoid)?new ap(e,m,r):(o.setEndPoints(e,m),o)};ap.prototype.setEndPoints=function(e,t){Vee(this,e,t,this._ellipsoid)};ap.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};ap.prototype.interpolateUsingSurfaceDistance=function(e,t){return Lee(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};ap.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=W.negativePiToPi(e),W.equalsEpsilon(Math.abs(e),Math.PI,W.EPSILON14)&&(e=W.sign(r.longitude)*Math.PI),d(t)||(t=new he),Math.abs(W.PI_OVER_TWO-o)<=W.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(W.equalsEpsilon(Math.abs(W.PI_OVER_TWO-o),W.PI_OVER_TWO,W.EPSILON8))return W.equalsEpsilon(e,r.longitude,W.EPSILON12)?void 0:(t.longitude=e,t.latitude=W.PI_OVER_TWO*W.sign(W.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(W.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),l=(1+a)/(1-a),u=r.latitude,m;do{m=u;let p=n*Math.sin(m),y=(1+p)/(1-p);u=2*Math.atan(c*Math.pow(y/l,n/2))-W.PI_OVER_TWO}while(!W.equalsEpsilon(u,m,W.EPSILON12));return t.longitude=e,t.latitude=u,t.height=0,t};ap.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(W.equalsEpsilon(Math.abs(i),W.PI_OVER_TWO,W.EPSILON8))return;let r=CS(n,o.latitude),s=CS(n,e),a=Math.tan(i)*(s-r),c=W.negativePiToPi(o.longitude+a);return d(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new he(c,e,0)};var ha=ap;var $3=[Zi,Ei],pXe=$3.length,Oee=Math.cos(W.toRadians(30)),Ree=Math.cos(W.toRadians(150)),Kee=0,Hee=1e3;function pb(e){e=g(e,g.EMPTY_OBJECT);let t=e.positions;this.width=g(e.width,1),this._positions=t,this.granularity=g(e.granularity,9999),this.loop=g(e.loop,!1),this.arcType=g(e.arcType,Jt.GEODESIC),this._ellipsoid=re.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(pb.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+re.packedLength+1+1}}});pb.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;iOee||rW.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,vee),l=c.cartesianToCartographic(s,Pee)),l.height=0;let u=e.project(l,o);return o=h.subtract(u,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var FXe=new h,Fee=new h;function wee(e,t,n,i,o,r){let s=h.subtract(t,e,FXe);h.normalize(s,s);let a=n-Kee,c=h.multiplyByScalar(s,a,Fee);h.add(e,c,o);let l=i-Hee;c=h.multiplyByScalar(s,l,Fee),h.add(t,c,r)}var wXe=new h;function pM(e,t){let n=on.getPointDistance(bM,e),i=on.getPointDistance(bM,t),o=wXe;W.equalsEpsilon(n,0,W.EPSILON2)?(o=cp(t,e,o),h.multiplyByScalar(o,W.EPSILON2,o),h.add(e,o,e)):W.equalsEpsilon(i,0,W.EPSILON2)&&(o=cp(e,t,o),h.multiplyByScalar(o,W.EPSILON2,o),h.add(t,o,t))}function AXe(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(W.equalsEpsilon(n,W.PI,W.EPSILON11)){let o=W.sign(t.longitude);return e.longitude=o*(n-W.EPSILON11),1}else if(W.equalsEpsilon(i,W.PI,W.EPSILON11)){let o=W.sign(e.longitude);return t.longitude=o*(i-W.EPSILON11),2}return 0}var Jee=new he,Qee=new he,Aee=new h,J3=new h,Mee=new h,Nee=new h,MXe=new h,Uee=new h,NXe=[Jee,Qee],UXe=new de,kXe=new h,DXe=new h,BXe=new h,YXe=new h,OXe=new h,KXe=new h,Q3=new h,j3=new h,HXe=new h,zXe=new h,JXe=new h,kee=new h,QXe=new h,jXe=new h,qXe=new On,$Xe=new On,Dee=new h,eIe=new h,Bee=new h,tIe=[new ce,new ce],jee=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],Yee=jee.length;function nIe(e,t,n,i,o,r,s){let a,c,l=t._ellipsoid,u=n.length/3-1,m=u*8,p=m*4,y=u*36,f=m>65535?new Uint32Array(y):new Uint16Array(y),x=new Float64Array(m*3),_=new Float32Array(p),C=new Float32Array(p),V=new Float32Array(p),L=new Float32Array(p),Z=new Float32Array(p),G,X,P,v;s&&(G=new Float32Array(p),X=new Float32Array(p),P=new Float32Array(p),v=new Float32Array(m*2));let A=r.length/2,M=0,b=Jee;b.height=0;let R=Qee;R.height=0;let E=Aee,I=J3;if(s)for(c=0,a=1;aOee?(yt=JG(t,b,ve,ke,Q3),ot=JG(t,R,j,ct,j3)):Ki===1?(ot=JG(t,R,j,ct,j3),yt.x=0,yt.y=W.sign(b.longitude-Math.abs(R.longitude)),yt.z=0):(yt=JG(t,b,ve,ke,Q3),ot.x=0,ot.y=W.sign(b.longitude-R.longitude),ot.z=0)}let ln=h.distance(Me,K),vn=On.fromCartesian(Ie,qXe),Dt=h.subtract(ee,Ie,HXe),Nt=h.normalize(Dt,kee),pe=h.subtract(Me,Ie,zXe);pe=h.normalize(pe,pe);let Ce=h.cross(Nt,pe,kee);Ce=h.normalize(Ce,Ce);let Ht=h.cross(pe,ve,QXe);Ht=h.normalize(Ht,Ht);let ut=h.subtract(K,ee,JXe);ut=h.normalize(ut,ut);let hi=h.cross(j,ut,jXe);hi=h.normalize(hi,hi);let ji=ln/N,pc=q/N,bs=0,ys,$r,Fe,je=0,qe=0;if(s){bs=h.distance(ke,ct),ys=On.fromCartesian(ke,$Xe),$r=h.subtract(ct,ke,Dee),Fe=h.normalize($r,eIe);let Ki=Fe.x;Fe.x=Fe.y,Fe.y=-Ki,je=bs/M,qe=be/M}for(Y=0;Y<8;Y++){let Ki=J+Y*4,ns=O+Y*2,zn=Ki+3,Fn=Y<4?1:-1,mn=Y===2||Y===3||Y===6||Y===7?1:-1;h.pack(vn.high,_,Ki),_[zn]=Dt.x,h.pack(vn.low,C,Ki),C[zn]=Dt.y,h.pack(Ht,V,Ki),V[zn]=Dt.z,h.pack(hi,L,Ki),L[zn]=ji*Fn,h.pack(Ce,Z,Ki);let _i=pc*mn;_i===0&&mn<0&&(_i=9),Z[zn]=_i,s&&(G[Ki]=ys.high.x,G[Ki+1]=ys.high.y,G[Ki+2]=ys.low.x,G[Ki+3]=ys.low.y,P[Ki]=-yt.y,P[Ki+1]=yt.x,P[Ki+2]=ot.y,P[Ki+3]=-ot.x,X[Ki]=$r.x,X[Ki+1]=$r.y,X[Ki+2]=Fe.x,X[Ki+3]=Fe.y,v[ns]=je*Fn,_i=qe*mn,_i===0&&mn<0&&(_i=9),v[ns+1]=_i)}let Qe=BXe,pt=YXe,Bt=kXe,Vn=DXe,di=de.fromCartographicArray(NXe,UXe),bo=li.getMinimumMaximumHeights(di,l),es=bo.minimumTerrainHeight,ts=bo.maximumTerrainHeight;Te+=Math.abs(es),Te+=Math.abs(ts),wee(Ie,Me,es,ts,Qe,Bt),wee(ee,K,es,ts,pt,Vn);let Mo=h.multiplyByScalar(Ce,W.EPSILON5,Bee);h.add(Qe,Mo,Qe),h.add(pt,Mo,pt),h.add(Bt,Mo,Bt),h.add(Vn,Mo,Vn),pM(Qe,pt),pM(Bt,Vn),h.pack(Qe,x,U),h.pack(pt,x,U+3),h.pack(Vn,x,U+6),h.pack(Bt,x,U+9),Mo=h.multiplyByScalar(Ce,-2*W.EPSILON5,Bee),h.add(Qe,Mo,Qe),h.add(pt,Mo,pt),h.add(Bt,Mo,Bt),h.add(Vn,Mo,Vn),pM(Qe,pt),pM(Bt,Vn),h.pack(Qe,x,U+12),h.pack(pt,x,U+15),h.pack(Vn,x,U+18),h.pack(Bt,x,U+21),k+=2,c+=3,O+=16,U+=24,J+=32,q+=ln,be+=bs}c=0;let ae=0;for(a=0;a halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var wKt=T(S(),1),jG=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var MKt=T(S(),1),qG=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var UKt=T(S(),1),$G=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var $Kt=T(S(),1);var DKt=T(S(),1),eE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var YKt=T(S(),1),jl=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var eY=`${jl} +${eE}`,iIe=Ug;Mt.isInternetExplorer()||(eY=`#define CLIP_POLYLINE +${eY}`);function $g(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.translucent,!0),n=!1,i=$g.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=g(e.vertexShaderSource,eY),this._fragmentShaderSource=g(e.fragmentShaderSource,iIe),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties($g.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});$g.VERTEX_FORMAT=We.POSITION_ONLY;$g.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;$g.prototype.isTranslucent=to.prototype.isTranslucent;$g.prototype.getRenderState=to.prototype.getRenderState;var wr=$g;var fHt=T(S(),1);var tHt=T(S(),1),tE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var iHt=T(S(),1),ex=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var tY=`${jl} +${tE}`,oIe=ex;Mt.isInternetExplorer()||(tY=`#define CLIP_POLYLINE +${tY}`);function tx(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.translucent,!0),n=!1,i=tx.VERTEX_FORMAT;this.material=d(e.material)?e.material:ki.fromType(ki.ColorType),this.translucent=t,this._vertexShaderSource=g(e.vertexShaderSource,tY),this._fragmentShaderSource=g(e.fragmentShaderSource,oIe),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(tx.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});tx.VERTEX_FORMAT=We.POSITION_AND_ST;tx.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;tx.prototype.isTranslucent=to.prototype.isTranslucent;tx.prototype.getRenderState=to.prototype.getRenderState;var Ds=tx;function lp(e){e=g(e,g.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;d(t)||(t=new Ds),this.appearance=t,this.show=g(e.show,!0),this.classificationType=g(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=g(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=g(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:g(e.interleave,!1),releaseGeometryInstances:g(e.releaseGeometryInstances,!0),allowPicking:g(e.allowPicking,!0),asynchronous:g(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=qee(!1),this._renderState3DTiles=qee(!0),this._renderStateMorph=De.fromCache({cull:{enabled:!0,face:yi.FRONT},depthTest:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(lp.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});lp.initializeTerrainHeights=function(){return li.initialize()};function rIe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()($G);s=Zn._appendShowToShader(o,s),s=Zn._appendDistanceDisplayConditionToShader(o,s),s=Zn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(qG);a=Zn._appendShowToShader(o,a),a=Zn._appendDistanceDisplayConditionToShader(o,a),a=Zn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(QG),l=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],u="",m="";d(n.material)?(m=d(n.material)?n.material.shaderSource:"",m.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&l.push("ANGLE_VARYING"),m.search(/in\s+float\s+v_width;/g)!==-1&&l.push("WIDTH_VARYING")):u="PER_INSTANCE_COLOR",l.push(u);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",u]:[u],y=new Be({defines:l,sources:[s]}),f=new Be({defines:p,sources:[m,c]});e._sp=Qt.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:y,fragmentShaderSource:f,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!d(x)){let C=new Be({defines:l.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:C,fragmentShaderSource:f,attributeLocations:r})}e._sp2D=x;let _=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!d(_)){let C=new Be({defines:l.concat([`MAX_TERRAIN_HEIGHT ${li._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(jG);let V=new Be({defines:p,sources:[m,c]});_=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:C,fragmentShaderSource:V,attributeLocations:r})}e._spMorph=_}function qee(e){return De.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Dn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Dn.EQUAL,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},reference:wt.CESIUM_3D_TILE_MASK,mask:wt.CESIUM_3D_TILE_MASK}})}function sIe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let l=t instanceof wr?{}:n._uniforms,u=s._batchTable.getUniformMapCallback()(l);for(let m=0;m{!this._ready&&d(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};lp.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};lp.isSupported=function(e){return e.frameState.context.depthTexture};lp.prototype.isDestroyed=function(){return!1};lp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,ue(this)};var dm=lp;var hzt=T(S(),1);var szt=T(S(),1);var $Ht=T(S(),1);var cIe=new D(1,1),lIe=!1,dIe=B.WHITE;function VS(e){e=g(e,g.EMPTY_OBJECT),this._definitionChanged=new ye,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(VS.prototype,{isConstant:{get:function(){return H.isConstant(this._image)&&H.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:le("image"),repeat:le("repeat"),color:le("color"),transparent:le("transparent")});VS.prototype.getType=function(e){return"Image"};VS.prototype.getValue=function(e,t){return d(t)||(t={}),t.image=H.getValueOrUndefined(this._image,e),t.repeat=H.getValueOrClonedDefault(this._repeat,e,cIe,t.repeat),t.color=H.getValueOrClonedDefault(this._color,e,dIe,t.color),H.getValueOrDefault(this._transparent,e,lIe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};VS.prototype.equals=function(e){return this===e||e instanceof VS&&H.equals(this._image,e._image)&&H.equals(this._repeat,e._repeat)&&H.equals(this._color,e._color)&&H.equals(this._transparent,e._transparent)};var bb=VS;function uIe(e){if(e instanceof B)return new At(e);if(typeof e=="string"||e instanceof Ee||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new bb;return t.image=e,t}}function mIe(e,t){return le(e,t,uIe)}var Ro=mIe;function nE(e){this._definitionChanged=new ye,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(g(e,g.EMPTY_OBJECT))}Object.defineProperties(nE.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),dimensions:le("dimensions"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});nE.prototype.clone=function(e){return d(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new nE(this)};nE.prototype.merge=function(e){this.show=g(this.show,e.show),this.dimensions=g(this.dimensions,e.dimensions),this.heightReference=g(this.heightReference,e.heightReference),this.fill=g(this.fill,e.fill),this.material=g(this.material,e.material),this.outline=g(this.outline,e.outline),this.outlineColor=g(this.outlineColor,e.outlineColor),this.outlineWidth=g(this.outlineWidth,e.outlineWidth),this.shadows=g(this.shadows,e.shadows),this.distanceDisplayCondition=g(this.distanceDisplayCondition,e.distanceDisplayCondition)};var nx=nE;var Izt=T(S(),1);var pzt=T(S(),1),hIe={FIXED:0,INERTIAL:1},io=Object.freeze(hIe);var Czt=T(S(),1);function LS(){fe.throwInstantiationError()}Object.defineProperties(LS.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError},referenceFrame:{get:fe.throwInstantiationError}});LS.prototype.getValue=fe.throwInstantiationError;LS.prototype.getValueInReferenceFrame=fe.throwInstantiationError;LS.prototype.equals=fe.throwInstantiationError;var nY=new $;LS.convertToReferenceFrame=function(e,t,n,i,o){if(!d(t))return t;if(d(o)||(o=new h),n===i)return h.clone(t,o);let r=vt.computeIcrfToFixedMatrix(e,nY);if(d(r)||(r=vt.computeTemeToPseudoFixedMatrix(e,nY)),n===io.INERTIAL)return $.multiplyByVector(r,t,o);if(n===io.FIXED)return $.multiplyByVector($.transpose(r,nY),t,o)};var dp=LS;function ix(e,t){this._definitionChanged=new ye,this._value=h.clone(e),this._referenceFrame=g(t,io.FIXED)}Object.defineProperties(ix.prototype,{isConstant:{get:function(){return!d(this._value)||this._referenceFrame===io.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});ix.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,io.FIXED,t)};ix.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),d(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};ix.prototype.getValueInReferenceFrame=function(e,t,n){return dp.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};ix.prototype.equals=function(e){return this===e||e instanceof ix&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Gc=ix;var Mzt=T(S(),1);function iE(e){this._definitionChanged=new ye,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(g(e,g.EMPTY_OBJECT))}Object.defineProperties(iE.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),width:le("width"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),cornerType:le("cornerType"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});iE.prototype.clone=function(e){return d(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new iE(this)};iE.prototype.merge=function(e){this.show=g(this.show,e.show),this.positions=g(this.positions,e.positions),this.width=g(this.width,e.width),this.height=g(this.height,e.height),this.heightReference=g(this.heightReference,e.heightReference),this.extrudedHeight=g(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=g(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=g(this.cornerType,e.cornerType),this.granularity=g(this.granularity,e.granularity),this.fill=g(this.fill,e.fill),this.material=g(this.material,e.material),this.outline=g(this.outline,e.outline),this.outlineColor=g(this.outlineColor,e.outlineColor),this.outlineWidth=g(this.outlineWidth,e.outlineWidth),this.shadows=g(this.shadows,e.shadows),this.distanceDisplayCondition=g(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=g(this.classificationType,e.classificationType),this.zIndex=g(this.zIndex,e.zIndex)};var ox=iE;var kzt=T(S(),1);function fIe(e){return e}function pIe(e,t){return le(e,t,fIe)}var ul=pIe;var zzt=T(S(),1);function oE(e){this._definitionChanged=new ye,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(g(e,g.EMPTY_OBJECT))}Object.defineProperties(oE.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),length:le("length"),topRadius:le("topRadius"),bottomRadius:le("bottomRadius"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),slices:le("slices"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});oE.prototype.clone=function(e){return d(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new oE(this)};oE.prototype.merge=function(e){this.show=g(this.show,e.show),this.length=g(this.length,e.length),this.topRadius=g(this.topRadius,e.topRadius),this.bottomRadius=g(this.bottomRadius,e.bottomRadius),this.heightReference=g(this.heightReference,e.heightReference),this.fill=g(this.fill,e.fill),this.material=g(this.material,e.material),this.outline=g(this.outline,e.outline),this.outlineColor=g(this.outlineColor,e.outlineColor),this.outlineWidth=g(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=g(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=g(this.slices,e.slices),this.shadows=g(this.shadows,e.shadows),this.distanceDisplayCondition=g(this.distanceDisplayCondition,e.distanceDisplayCondition)};var rx=oE;var tJt=T(S(),1);function rE(e){this._definitionChanged=new ye,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(g(e,g.EMPTY_OBJECT))}Object.defineProperties(rE.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),semiMajorAxis:le("semiMajorAxis"),semiMinorAxis:le("semiMinorAxis"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),rotation:le("rotation"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});rE.prototype.clone=function(e){return d(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new rE(this)};rE.prototype.merge=function(e){this.show=g(this.show,e.show),this.semiMajorAxis=g(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=g(this.semiMinorAxis,e.semiMinorAxis),this.height=g(this.height,e.height),this.heightReference=g(this.heightReference,e.heightReference),this.extrudedHeight=g(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=g(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=g(this.rotation,e.rotation),this.stRotation=g(this.stRotation,e.stRotation),this.granularity=g(this.granularity,e.granularity),this.fill=g(this.fill,e.fill),this.material=g(this.material,e.material),this.outline=g(this.outline,e.outline),this.outlineColor=g(this.outlineColor,e.outlineColor),this.outlineWidth=g(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=g(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=g(this.shadows,e.shadows),this.distanceDisplayCondition=g(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=g(this.classificationType,e.classificationType),this.zIndex=g(this.zIndex,e.zIndex)};var sx=rE;var cJt=T(S(),1);function sE(e){this._definitionChanged=new ye,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(g(e,g.EMPTY_OBJECT))}Object.defineProperties(sE.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),radii:le("radii"),innerRadii:le("innerRadii"),minimumClock:le("minimumClock"),maximumClock:le("maximumClock"),minimumCone:le("minimumCone"),maximumCone:le("maximumCone"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),stackPartitions:le("stackPartitions"),slicePartitions:le("slicePartitions"),subdivisions:le("subdivisions"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});sE.prototype.clone=function(e){return d(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new sE(this)};sE.prototype.merge=function(e){this.show=g(this.show,e.show),this.radii=g(this.radii,e.radii),this.innerRadii=g(this.innerRadii,e.innerRadii),this.minimumClock=g(this.minimumClock,e.minimumClock),this.maximumClock=g(this.maximumClock,e.maximumClock),this.minimumCone=g(this.minimumCone,e.minimumCone),this.maximumCone=g(this.maximumCone,e.maximumCone),this.heightReference=g(this.heightReference,e.heightReference),this.fill=g(this.fill,e.fill),this.material=g(this.material,e.material),this.outline=g(this.outline,e.outline),this.outlineColor=g(this.outlineColor,e.outlineColor),this.outlineWidth=g(this.outlineWidth,e.outlineWidth),this.stackPartitions=g(this.stackPartitions,e.stackPartitions),this.slicePartitions=g(this.slicePartitions,e.slicePartitions),this.subdivisions=g(this.subdivisions,e.subdivisions),this.shadows=g(this.shadows,e.shadows),this.distanceDisplayCondition=g(this.distanceDisplayCondition,e.distanceDisplayCondition)};var ax=sE;var fJt=T(S(),1);function aE(e){this._definitionChanged=new ye,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(g(e,g.EMPTY_OBJECT))}Object.defineProperties(aE.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),text:le("text"),font:le("font"),style:le("style"),scale:le("scale"),showBackground:le("showBackground"),backgroundColor:le("backgroundColor"),backgroundPadding:le("backgroundPadding"),pixelOffset:le("pixelOffset"),eyeOffset:le("eyeOffset"),horizontalOrigin:le("horizontalOrigin"),verticalOrigin:le("verticalOrigin"),heightReference:le("heightReference"),fillColor:le("fillColor"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),translucencyByDistance:le("translucencyByDistance"),pixelOffsetScaleByDistance:le("pixelOffsetScaleByDistance"),scaleByDistance:le("scaleByDistance"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance")});aE.prototype.clone=function(e){return d(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new aE(this)};aE.prototype.merge=function(e){this.show=g(this.show,e.show),this.text=g(this.text,e.text),this.font=g(this.font,e.font),this.style=g(this.style,e.style),this.scale=g(this.scale,e.scale),this.showBackground=g(this.showBackground,e.showBackground),this.backgroundColor=g(this.backgroundColor,e.backgroundColor),this.backgroundPadding=g(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=g(this.pixelOffset,e.pixelOffset),this.eyeOffset=g(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=g(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=g(this.verticalOrigin,e.verticalOrigin),this.heightReference=g(this.heightReference,e.heightReference),this.fillColor=g(this.fillColor,e.fillColor),this.outlineColor=g(this.outlineColor,e.outlineColor),this.outlineWidth=g(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=g(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=g(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=g(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=g(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=g(this.disableDepthTestDistance,e.disableDepthTestDistance)};var um=aE;var YJt=T(S(),1);var GJt=T(S(),1);var _Jt=T(S(),1);var bIe=new h(1,1,1),yIe=h.ZERO,gIe=Ae.IDENTITY;function ete(e,t,n){this.translation=h.clone(g(e,yIe)),this.rotation=Ae.clone(g(t,gIe)),this.scale=h.clone(g(n,bIe))}ete.prototype.equals=function(e){return this===e||d(e)&&h.equals(this.translation,e.translation)&&Ae.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var yb=ete;var iY=new yb;function cE(e){e=g(e,g.EMPTY_OBJECT),this._definitionChanged=new ye,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(cE.prototype,{isConstant:{get:function(){return H.isConstant(this._translation)&&H.isConstant(this._rotation)&&H.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:le("translation"),rotation:le("rotation"),scale:le("scale")});cE.prototype.getValue=function(e,t){return d(t)||(t=new yb),t.translation=H.getValueOrClonedDefault(this._translation,e,iY.translation,t.translation),t.rotation=H.getValueOrClonedDefault(this._rotation,e,iY.rotation,t.rotation),t.scale=H.getValueOrClonedDefault(this._scale,e,iY.scale,t.scale),t};cE.prototype.equals=function(e){return this===e||e instanceof cE&&H.equals(this._translation,e._translation)&&H.equals(this._rotation,e._rotation)&&H.equals(this._scale,e._scale)};var cx=cE;var wJt=T(S(),1);function up(e,t){this._propertyNames=[],this._definitionChanged=new ye,d(e)&&this.merge(e,t)}Object.defineProperties(up.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t (textureSize.y / textureSize.x)) + { + mipLevel = 1.0; + if (uv.y - pixel.y > yMipLevel1) + { + mipLevel = 2.0; + if (uv.y - pixel.y * 3.0 > yMipLevel2) + { + mipLevel = 3.0; + if (uv.y - pixel.y * 5.0 > yMipLevel3) + { + mipLevel = 4.0; + if (uv.y - pixel.y * 7.0 > yMipLevel4) + { + mipLevel = 5.0; + } + } + } + } + } + + if (mipLevel > 0.0) + { + float scale = pow(2.0, mipLevel); + + uv.y -= (pixel.y * (mipLevel - 1.0) * 2.0); + uv.x *= ((textureSize.x - 2.0) / textureSize.y); + + uv.x -= 1.0 + pixel.x; + uv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0))); + uv *= scale; + } + else + { + uv.x *= (textureSize.x / textureSize.y); + } + + if(mipLevel == 0.0) + { + out_FragColor = texture(texture0, uv); + } + else if(mipLevel == 1.0) + { + out_FragColor = texture(texture1, uv); + } + else if(mipLevel == 2.0) + { + out_FragColor = texture(texture2, uv); + } + else if(mipLevel == 3.0) + { + out_FragColor = texture(texture3, uv); + } + else if(mipLevel == 4.0) + { + out_FragColor = texture(texture4, uv); + } + else if(mipLevel == 5.0) + { + out_FragColor = texture(texture5, uv); + } + else + { + out_FragColor = vec4(0.0); + } +} +`;var t8t=T(S(),1),SE=`in vec3 v_cubeMapCoordinates; +uniform samplerCube cubeMap; + +void main() +{ + vec4 rgba = czm_textureCube(cubeMap, v_cubeMapCoordinates); + #ifdef RGBA_NORMALIZED + out_FragColor = vec4(rgba.rgb, 1.0); + #else + float m = rgba.a * 16.0; + vec3 r = rgba.rgb * m; + out_FragColor = vec4(r * r, 1.0); + #endif +} +`;var i8t=T(S(),1),CE=`in vec4 position; +in vec3 cubeMapCoordinates; + +out vec3 v_cubeMapCoordinates; + +void main() +{ + gl_Position = position; + v_cubeMapCoordinates = cubeMapCoordinates; +} +`;function hx(e){this._url=e,this._cubeMapBuffers=void 0,this._cubeMaps=void 0,this._texture=void 0,this._mipTextures=void 0,this._va=void 0,this._sp=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new ye}Object.defineProperties(hx.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});hx.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};var kIe=new h(1,0,0),DIe=new h(0,0,1),BIe=new h(-1,0,0),YIe=new h(0,0,-1),yM=new h(0,1,0),OIe=new h(0,-1,0),hte=[yM,BIe,DIe,OIe,kIe,yM,YIe,yM,yM],fte=hte.length,pte=new Float32Array(fte*3),ute=0;for(let e=0;e0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useSphericalHarmonicCoefficients:{get:function(){return d(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics}},specularEnvironmentMapAtlas:{get:function(){return this._specularEnvironmentMapAtlas}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return d(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps}}});function JIe(e,t){if(pm.isSupported(t)){if(e._specularEnvironmentMapAtlas=e._specularEnvironmentMapAtlas&&e._specularEnvironmentMapAtlas.destroy(),d(e._specularEnvironmentMaps)){let n=new pm(e._specularEnvironmentMaps);e._specularEnvironmentMapAtlas=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}VE.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;D.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=D.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._luminanceAtZenith!==this._previousLuminanceAtZenith&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||d(this._luminanceAtZenith)!==d(this._previousLuminanceAtZenith),this._previousLuminanceAtZenith=this._luminanceAtZenith),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||d(this._previousSphericalHarmonicCoefficients)!==d(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentMapAtlasDirty&&(JIe(this,t),this._specularEnvironmentMapAtlasDirty=!1),d(this._specularEnvironmentMapAtlas)&&(this._specularEnvironmentMapAtlas.update(e),this._specularEnvironmentMapAtlas.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!d(this._specularEnvironmentMapAtlas)&&d(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!d(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!d(this._sphericalHarmonicCoefficients)&&d(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!d(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!d(this._specularEnvironmentMapAtlas)&&d(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!d(this._sphericalHarmonicCoefficients)&&d(e.sphericalHarmonicCoefficients)};VE.prototype.isDestroyed=function(){return!1};VE.prototype.destroy=function(){return this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var fx=VE;var O8t=T(S(),1),dY=T(Dl(),1);var A8t=T(S(),1);var lY,bte="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyMzVjZDg3Yi0wMjVkLTQ0MzctOTZjOC1jZjMwNjkzZmI5MWUiLCJpZCI6MjU5LCJpYXQiOjE2OTg4NTM0MDl9.L_g01CjNKNVijEJ_8kOxiO02OADnuSjRFLkZWvhupcc",gM={};gM.defaultAccessToken=bte;gM.defaultServer=new Ee({url:"https://api.cesium.com/"});gM.getDefaultTokenCredit=function(e){if(e===bte){if(!d(lY)){let t=` This application is using Cesium's default ion access token. Please assign Cesium.Ion.defaultAccessToken with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at https://cesium.com.`;lY=new St(t,!0)}return lY}};var bm=gM;function Xc(e,t){let n,i=e.externalType,o=d(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:QIe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new me("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");Ee.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new dY.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}d(Object.create)&&(Xc.prototype=Object.create(Ee.prototype),Xc.prototype.constructor=Xc);Xc.fromAssetId=function(e,t){let n=Xc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Xc(i,n)})};Object.defineProperties(Xc.prototype,{credits:{get:function(){return d(this._ionRoot)?this._ionRoot.credits:d(this._credits)?this._credits:(this._credits=Xc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Xc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(St.getIonCredit),i=bm.getDefaultTokenCredit(t.queryParameters.access_token);return d(i)&&n.push(St.clone(i)),n};Xc.prototype.clone=function(e){let t=g(this._ionRoot,this);return d(e)||(e=new Xc(t._ionEndpoint,t._ionEndpointResource)),e=Ee.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Xc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},d(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return Ee.prototype.fetchImage.call(this,e)};Xc.prototype._makeRequest=function(e){return this._isExternal||new dY.default(this.url).authority()!==this._ionEndpointDomain?Ee.prototype._makeRequest.call(this,e):(d(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),Ee.prototype._makeRequest.call(this,e))};Xc._createEndpointResource=function(e,t){t=g(t,g.EMPTY_OBJECT);let n=g(t.server,bm.defaultServer),i=g(t.accessToken,bm.defaultAccessToken);n=Ee.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return d(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function QIe(e,t){let n=g(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!d(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(d(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var $l=Xc;var z8t=T(S(),1);function kh(e){e=g(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(kh.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(et.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});kh.prototype.get=function(e){return this._array[e]};kh.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};kh.prototype.peek=function(){return this._array[this._length-1]};kh.prototype.push=function(e){let t=this.length++;this._array[t]=e};kh.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};kh.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};kh.prototype.resize=function(e){this.length=e};kh.prototype.trim=function(e){e=g(e,this._length),this._array.length=e};var Ic=kh;var $8t=T(S(),1);var bp={X:0,Y:1,Z:2};bp.Y_UP_TO_Z_UP=w.fromRotationTranslation($.fromRotationX(W.PI_OVER_TWO));bp.Z_UP_TO_Y_UP=w.fromRotationTranslation($.fromRotationX(-W.PI_OVER_TWO));bp.X_UP_TO_Z_UP=w.fromRotationTranslation($.fromRotationY(-W.PI_OVER_TWO));bp.Z_UP_TO_X_UP=w.fromRotationTranslation($.fromRotationY(W.PI_OVER_TWO));bp.X_UP_TO_Y_UP=w.fromRotationTranslation($.fromRotationZ(W.PI_OVER_TWO));bp.Y_UP_TO_X_UP=w.fromRotationTranslation($.fromRotationZ(-W.PI_OVER_TWO));bp.fromName=function(e){return bp[e]};var Zo=Object.freeze(bp);var dvn=T(S(),1);var n7t=T(S(),1);function yte(e){e=g(e,g.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(yte.prototype,{metadata:{get:function(){return this._metadata}}});var px=yte;var zEn=T(S(),1);var y7t=T(S(),1);var d7t=T(S(),1);var s7t=T(S(),1);function gb(e,t,n){return t=g(t,0),n=g(n,e.byteLength-t),e=e.subarray(t,t+n),gb.decode(e)}gb.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};gb.decodeWithFromCharCode=function(e){let t="",n=jIe(e),i=n.length;for(let o=0;o>10)+55296,(r&1023)+56320))}return t};function LE(e,t,n){return t<=e&&e<=n}function jIe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c0){let o=Math.min(t,kt.maximumTextureSize),r=Math.ceil(t/kt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,l=c*.5;n=new D(o,r),i=new se(s,a,c,l)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(Ya.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return d(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),d(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});Ya.DEFAULT_COLOR_VALUE=B.WHITE;Ya.DEFAULT_SHOW_VALUE=!0;function gte(e){let t=e._textureDimensions;return t.x*t.y*4}function xte(e){if(!d(e._batchValues)){let t=gte(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function _te(e){if(!d(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Ya.prototype.setShow=function(e,t){if(t&&!d(this._showAlphaProperties))return;let n=_te(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=xte(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Ya.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n0){let i=e._pickIds,o=gte(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c0;){if(t=u.pop(),c[t]===l)continue;c[t]=l;let m=n(e,t);if(d(m))return m;let p=o[t],y=s[t];for(let f=0;f0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${r} +${CWe(i)}${s}`}};function Ste(e,t){return e=Be.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function VWe(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let l=o;l0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};lo.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=Be.replaceMain(e,"tile_main"),kt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_main(); + out_FragColor = tile_featureColor; + out_FragColor.rgb *= out_FragColor.a; +}`:e+=`uniform sampler2D tile_batchTexture; +uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +void main() +{ + tile_main(); + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } + out_FragColor = featureProperties; + out_FragColor.rgb *= out_FragColor.a; +} +`,e}};function LWe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===fl.HIGHLIGHT)return 0;if(n===fl.REPLACE)return 1;if(n===fl.MIX)return W.clamp(i,W.EPSILON4,1)}lo.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return xt(t,{tile_batchTexture:function(){return g(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return LWe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};lo.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var xb={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};lo.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=RWe(this);for(let l=t;l>>wt.SKIP_LOD_BIT_SHIFT}function vWe(e){let t=Oe(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=un.ALPHA_BLEND,t.stencilTest=wt.setCesium3DTileBit(),t.stencilMask=wt.CESIUM_3D_TILE_MASK,De.fromCache(t)}function FWe(e){let t=Oe(e,!0);return t.stencilTest=wt.setCesium3DTileBit(),t.stencilMask=wt.CESIUM_3D_TILE_MASK,De.fromCache(t)}lo.prototype.update=function(e,t){this._batchTexture.update(e,t)};lo.prototype.isDestroyed=function(){return!1};lo.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var gp=lo;var Mqt=T(S(),1);var G6t=T(S(),1);function wWe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var Dh=wWe;var Lqt=T(S(),1);var X6t=T(S(),1),ES=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;var v6t=T(S(),1);function tu(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(tu.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return d(this._color)||(this._color=new B),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(d(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});tu.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};tu.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};tu.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};tu.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(d(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(d(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(d(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(d(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),d(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=d(e.group)?e.group.metadata:void 0;if(d(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let l=e.tileset.metadata;if(d(l)){if(l.hasPropertyBySemantic(n))return l.getPropertyBySemantic(n);if(l.hasProperty(n))return l.getProperty(n)}};tu.prototype.getPropertyInherited=function(e){return tu.getPropertyInherited(this._content,this._batchId,e)};tu.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};tu.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};tu.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};tu.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Ss=tu;var J6t=T(S(),1);var w6t=T(S(),1),hY=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},fY=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},pl=class e{static get version(){return"1.3.8"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,n,i){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=n,i?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,n){return e.literals[t]=n,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(e.hooks[t]){let i={context:this,node:n};return e.hooks.run(t,i),i.node}return n}searchHook(t){if(e.hooks[t]){let n={context:this};return e.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.lengthr.right_a&&m.right_a?i>m.prec:i<=m.prec;for(;o.length>2&&u(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:e.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+l),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:e.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,e.max_unop_len),i=n.length;i>0;){if(e.unary_ops.hasOwnProperty(n)&&(!e.isIdentifierStart(this.code)||this.index+n.length=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===e.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=n.length;s":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});pl.max_unop_len=pl.getMaxKeyLen(pl.unary_ops);pl.max_binop_len=pl.getMaxKeyLen(pl.binary_ops);var _b=e=>new pl(e).parse(),MWe=Object.getOwnPropertyNames(pl);MWe.forEach(e=>{_b[e]===void 0&&e!=="prototype"&&(_b[e]=pl[e])});_b.Jsep=pl;var NWe="ConditionalExpression",UWe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:NWe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};_b.plugins.register(UWe);var M6t=T(S(),1),kWe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},ft=Object.freeze(kWe);function xm(e,t){this._expression=e,e=e2e(e,t),e=n2e(t2e(e)),_b.addBinaryOp("=~",0),_b.addBinaryOp("!~",0);let n;try{n=_b(e)}catch(i){throw new me(i)}this._runtimeAst=Ci(this,n)}Object.defineProperties(xm.prototype,{expression:{get:function(){return this._expression}}});var Pn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new D],cartesian3Array:[new h],cartesian4Array:[new se],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new D),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new se),this.cartesian4Array[this.cartesian4Index++]}};xm.prototype.evaluate=function(e,t){Pn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof B&&n instanceof se?B.fromCartesian4(n,t):n instanceof D||n instanceof h||n instanceof se?n.clone(t):n};xm.prototype.evaluateColor=function(e,t){Pn.reset();let n=this._runtimeAst.evaluate(e);return B.fromCartesian4(n,t)};xm.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} +{ + return ${o}; +} +`,o};xm.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};xm.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var DWe=["!","-","+"],Lte=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],TM=/\${(.*?)}/g,BWe=/\\/g,YWe="@#%",OWe=/@#%/g,SM=new B,CM={abs:Cs(Math.abs),sqrt:Cs(Math.sqrt),cos:Cs(Math.cos),sin:Cs(Math.sin),tan:Cs(Math.tan),acos:Cs(Math.acos),asin:Cs(Math.asin),atan:Cs(Math.atan),radians:Cs(W.toRadians),degrees:Cs(W.toDegrees),sign:Cs(W.sign),floor:Cs(Math.floor),ceil:Cs(Math.ceil),round:Cs(Math.round),exp:Cs(Math.exp),exp2:Cs(HWe),log:Cs(Math.log),log2:Cs(zWe),fract:Cs(KWe),length:JWe,normalize:QWe},VM={atan2:xM(Math.atan2,!1),pow:xM(Math.pow,!1),min:xM(Math.min,!0),max:xM(Math.max,!0),distance:jWe,dot:qWe,cross:$We},yY={clamp:Rte(W.clamp,!0),mix:Rte(W.lerp,!0)};function KWe(e){return e-Math.floor(e)}function HWe(e){return Math.pow(2,e)}function zWe(e){return W.log2(e)}function Cs(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof D)return D.fromElements(e(n.x),e(n.y),Pn.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),Pn.getCartesian3());if(n instanceof se)return se.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Pn.getCartesian4());throw new me(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function xM(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof D)return D.fromElements(e(i.x,o),e(i.y,o),Pn.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),Pn.getCartesian3());if(i instanceof se)return se.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),Pn.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof D&&o instanceof D)return D.fromElements(e(i.x,o.x),e(i.y,o.y),Pn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),Pn.getCartesian3());if(i instanceof se&&o instanceof se)return se.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),Pn.getCartesian4());throw new me(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function Rte(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof D&&o instanceof D)return D.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),Pn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),Pn.getCartesian3());if(i instanceof se&&o instanceof se)return se.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),Pn.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof D&&o instanceof D&&r instanceof D)return D.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),Pn.getCartesian2());if(i instanceof h&&o instanceof h&&r instanceof h)return h.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),Pn.getCartesian3());if(i instanceof se&&o instanceof se&&r instanceof se)return se.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),Pn.getCartesian4());throw new me(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function JWe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof D)return D.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof se)return se.magnitude(t);throw new me(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function QWe(e,t){if(typeof t=="number")return 1;if(t instanceof D)return D.normalize(t,Pn.getCartesian2());if(t instanceof h)return h.normalize(t,Pn.getCartesian3());if(t instanceof se)return se.normalize(t,Pn.getCartesian4());throw new me(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function jWe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof D&&n instanceof D)return D.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof se&&n instanceof se)return se.distance(t,n);throw new me(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function qWe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof D&&n instanceof D)return D.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof se&&n instanceof se)return se.dot(t,n);throw new me(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function $We(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,Pn.getCartesian3());throw new me(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function gt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,m2e(this)}function e2e(e,t){if(!d(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;d(o)&&(e=e.replace(i,o))}return e}function t2e(e){return e.replace(BWe,YWe)}function bY(e){return e.replace(OWe,"\\")}function n2e(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o=0&&r=0?new gt(ft.VARIABLE_IN_STRING,e.value):new gt(ft.LITERAL_STRING,bY(e.value))}function o2e(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!d(c.callee)||c.callee.name!=="regExp")throw new me(`${o} is not a function.`);return i===0?o==="test"?new gt(ft.LITERAL_BOOLEAN,!1):new gt(ft.LITERAL_NULL,null):(s=Ci(e,c),a=Ci(e,n[0]),new gt(ft.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=Ci(e,c),new gt(ft.FUNCTION_CALL,o,r);throw new me(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new gt(ft.LITERAL_COLOR,o);if(r=Ci(e,n[0]),d(n[1])){let c=Ci(e,n[1]);return new gt(ft.LITERAL_COLOR,o,[r,c])}return new gt(ft.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new me(`${o} requires three arguments.`);return r=[Ci(e,n[0]),Ci(e,n[1]),Ci(e,n[2])],new gt(ft.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new me(`${o} requires four arguments.`);return r=[Ci(e,n[0]),Ci(e,n[1]),Ci(e,n[2]),Ci(e,n[3])],new gt(ft.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c1)throw new me(`${o} requires exactly one argument.`);return r=Ci(e,n[0]),new gt(ft.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new me(`${o} does not take any argument.`);return new gt(ft.UNARY,o)}else if(d(CM[o])){if(i!==1)throw new me(`${o} requires exactly one argument.`);return r=Ci(e,n[0]),new gt(ft.UNARY,o,r)}else if(d(VM[o])){if(i!==2)throw new me(`${o} requires exactly two arguments.`);return s=Ci(e,n[0]),a=Ci(e,n[1]),new gt(ft.BINARY,o,s,a)}else if(d(yY[o])){if(i!==3)throw new me(`${o} requires exactly three arguments.`);s=Ci(e,n[0]),a=Ci(e,n[1]);let c=Ci(e,n[2]);return new gt(ft.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new gt(ft.LITERAL_BOOLEAN,!1):(r=Ci(e,n[0]),new gt(ft.UNARY,o,r));if(o==="Number")return i===0?new gt(ft.LITERAL_NUMBER,0):(r=Ci(e,n[0]),new gt(ft.UNARY,o,r));if(o==="String")return i===0?new gt(ft.LITERAL_STRING,""):(r=Ci(e,n[0]),new gt(ft.UNARY,o,r));if(o==="regExp")return r2e(e,t)}}throw new me(`Unexpected function call "${o}".`)}function r2e(e,t){let n=t.arguments;if(n.length===0)return new gt(ft.LITERAL_REGEX,new RegExp);let i=Ci(e,n[0]),o;if(n.length>1){let r=Ci(e,n[1]);if(pY(i)&&pY(r)){try{o=new RegExp(bY(String(i._value)),r._value)}catch(s){throw new me(s)}return new gt(ft.LITERAL_REGEX,o)}return new gt(ft.REGEX,i,r)}if(pY(i)){try{o=new RegExp(bY(String(i._value)))}catch(r){throw new me(r)}return new gt(ft.LITERAL_REGEX,o)}return new gt(ft.REGEX,i)}function s2e(e){if(d2e(e.name)){let t=u2e(e.name);return t.substr(0,8)==="tiles3d_"?new gt(ft.BUILTIN_VARIABLE,t):new gt(ft.VARIABLE,t)}else{if(e.name==="NaN")return new gt(ft.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new gt(ft.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new gt(ft.LITERAL_UNDEFINED,void 0)}throw new me(`${e.name} is not defined.`)}function a2e(e){let t=e.property.name;if(t==="PI")return new gt(ft.LITERAL_NUMBER,Math.PI);if(t==="E")return new gt(ft.LITERAL_NUMBER,Math.E)}function c2e(e){if(e.property.name==="POSITIVE_INFINITY")return new gt(ft.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function l2e(e,t){if(t.object.name==="Math")return a2e(t);if(t.object.name==="Number")return c2e(t);let n,i=Ci(e,t.object);return t.computed?(n=Ci(e,t.property),new gt(ft.MEMBER,"brackets",i,n)):(n=new gt(ft.LITERAL_STRING,t.property.name),new gt(ft.MEMBER,"dot",i,n))}function pY(e){return e._type>=ft.LITERAL_NULL}function d2e(e){return e.substr(0,4)==="czm_"}function u2e(e){return e.substr(4)}function Ci(e,t){let n,i,o,r;if(t.type==="Literal")n=i2e(t);else if(t.type==="CallExpression")n=o2e(e,t);else if(t.type==="Identifier")n=s2e(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=Ci(e,t.argument);if(DWe.indexOf(i)>-1)n=new gt(ft.UNARY,i,s);else throw new me(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=Ci(e,t.left),r=Ci(e,t.right),Lte.indexOf(i)>-1)n=new gt(ft.BINARY,i,o,r);else throw new me(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=Ci(e,t.left),r=Ci(e,t.right),Lte.indexOf(i)>-1&&(n=new gt(ft.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=Ci(e,t.test);o=Ci(e,t.consequent),r=Ci(e,t.alternate),n=new gt(ft.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=l2e(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:d(VM[e._value])&&(e.evaluate=p2e(e._value)):e._type===ft.TERNARY?e.evaluate=b2e(e._value):e._type===ft.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===ft.ARRAY?e.evaluate=e._evaluateArray:e._type===ft.VARIABLE?e.evaluate=e._evaluateVariable:e._type===ft.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===ft.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===ft.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===ft.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===ft.REGEX?e.evaluate=e._evaluateRegExp:e._type===ft.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=h2e):e.evaluate=e._evaluateLiteral}function h2e(e){return d(e)?e.content.tileset.timeSinceLoad:0}function f2e(e){let t=CM[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function p2e(e){let t=VM[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function b2e(e){let t=yY[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function LM(e,t){if(d(e))return e.getPropertyInherited(t)}gt.prototype._evaluateLiteral=function(){return this._value};gt.prototype._evaluateLiteralColor=function(e){let t=SM,n=this._left;if(this._value==="color")d(n)?n.length>1?(B.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):B.fromCssColorString(n[0].evaluate(e),t):B.fromBytes(255,255,255,255,t);else if(this._value==="rgb")B.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;B.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?B.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&B.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return se.fromColor(t,Pn.getCartesian4())};gt.prototype._evaluateLiteralVector=function(e){let t=Pn.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a1)throw new me(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new me(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return D.fromArray(t,0,Pn.getCartesian2());if(n==="vec3")return h.fromArray(t,0,Pn.getCartesian3());if(n==="vec4")return se.fromArray(t,0,Pn.getCartesian4())};gt.prototype._evaluateLiteralString=function(){return this._value};gt.prototype._evaluateVariableString=function(e){let t=this._value,n=TM.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=LM(e,o);d(r)||(r=""),t=t.replace(i,r),n=TM.exec(t)}return t};gt.prototype._evaluateVariable=function(e){return LM(e,this._value)};function yx(e){return e._value==="feature"}gt.prototype._evaluateMemberDot=function(e){if(yx(this._left))return LM(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!d(t))return;let n=this._right.evaluate(e);if(t instanceof D||t instanceof h||t instanceof se){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};gt.prototype._evaluateMemberBrackets=function(e){if(yx(this._left))return LM(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!d(t))return;let n=this._right.evaluate(e);if(t instanceof D||t instanceof h||t instanceof se){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};gt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};gt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new me(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};gt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new me(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new me(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};gt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new me(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new me(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};gt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.add(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,Pn.getCartesian3());if(n instanceof se&&t instanceof se)return se.add(t,n,Pn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new me(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.subtract(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,Pn.getCartesian3());if(n instanceof se&&t instanceof se)return se.subtract(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new me(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.multiplyComponents(t,n,Pn.getCartesian2());if(n instanceof D&&typeof t=="number")return D.multiplyByScalar(n,t,Pn.getCartesian2());if(t instanceof D&&typeof n=="number")return D.multiplyByScalar(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,Pn.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,Pn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,Pn.getCartesian3());if(n instanceof se&&t instanceof se)return se.multiplyComponents(t,n,Pn.getCartesian4());if(n instanceof se&&typeof t=="number")return se.multiplyByScalar(n,t,Pn.getCartesian4());if(t instanceof se&&typeof n=="number")return se.multiplyByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new me(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.divideComponents(t,n,Pn.getCartesian2());if(t instanceof D&&typeof n=="number")return D.divideByScalar(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,Pn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,Pn.getCartesian3());if(n instanceof se&&t instanceof se)return se.divideComponents(t,n,Pn.getCartesian4());if(t instanceof se&&typeof n=="number")return se.divideByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new me(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.fromElements(t.x%n.x,t.y%n.y,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Pn.getCartesian3());if(n instanceof se&&t instanceof se)return se.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new me(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof D&&t instanceof D||n instanceof h&&t instanceof h||n instanceof se&&t instanceof se?t.equals(n):t===n};gt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof D&&t instanceof D||n instanceof h&&t instanceof h||n instanceof se&&t instanceof se?!t.equals(n):t!==n};gt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new me(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};gt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};gt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};gt.prototype._evaluateIsExactClass=function(e){return d(e)?e.isExactClass(this._left.evaluate(e)):!1};gt.prototype._evaluateIsClass=function(e){return d(e)?e.isClass(this._left.evaluate(e)):!1};gt.prototype._evaluateGetExactClassName=function(e){if(d(e))return e.getExactClassName()};gt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};gt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};gt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};gt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";d(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new me(o)}return i};gt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new me(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};gt.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new me(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new me(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};gt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new me(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return d(i)?i[1]:null};gt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof D||t instanceof h||t instanceof se)return String(t);throw new me(`Unexpected function call "${this._value}".`)};function Zte(e){let t=e._left,n=t.length;for(let a=0;a1){let p=l[0],y=l[1];return y!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${y})`}}else return"vec4(1.0)";return`vec4(${l[0]}, 1.0)`}else{if(c==="rgb")return i=Gte(this),d(i)?_M(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, 1.0)`;if(c==="rgba")return l[3]!=="1.0"&&(t.translucent=!0),i=Gte(this),d(i)?_M(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, ${l[3]})`;if(c==="hsl")return i=Zte(this),d(i)?_M(i):`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), 1.0)`;if(c==="hsla")return i=Zte(this),d(i)?(i.alpha!==1&&(t.translucent=!0),_M(i)):(l[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), ${l[3]})`)}break;case ft.LITERAL_VECTOR:u=o.length,m=`${c}(`;for(let p=0;p0;){let u=t.pop();if(B.equals(u.color,a.color))l=gY(n,s,l,i,o,u.batchIds,r),a.batchIds=a.batchIds.concat(u.batchIds),a.count=l-a.offset;else{let m=l;l=gY(n,s,l,i,o,u.batchIds,r),u.offset=m,u.count=l-m,c.push(u),a=u}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function xY(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let l=0;l0;){let m=t.pop();if(B.equals(m.color,r.color))l=xY(a,c,l,n,i,m.batchIds,o),r.batchIds=r.batchIds.concat(m.batchIds),r.count=l-r.offset;else{let p=l;l=xY(a,c,l,n,i,m.batchIds,o),m.offset=p,m.count=l-p,s.push(m),r=m}}let u=e._va;e._va=e._vaSwap,e._vaSwap=u,e._batchedIndices=s}function Z2e(e,t){return t.color.toRgba()-e.color.toRgba()}function G2e(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s=x&&s{e.isDestroyed()||(e._error=f)}):void 0}}function Y2e(e){d(e._primitive)||(e._primitive=new xx({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:g(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}td.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};td.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};td.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};td.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};td.prototype.update=function(e){if(!this._ready){if(d(this._promise)||(this._promise=B2e(this)),d(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};td.prototype.isDestroyed=function(){return!1};td.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var _p=td;function Tp(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,H2e(this,i,o)}Object.defineProperties(Tp.prototype,{featuresLength:{get:function(){return d(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return d(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return d(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return d(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function O2e(e){return function(t,n){d(e._geometries)&&e._geometries.updateCommands(t,n)}}function K2e(e,t){let n,i,o,r,s,a=g(e.BOXES_LENGTH,0),c=g(e.CYLINDERS_LENGTH,0),l=g(e.ELLIPSOIDS_LENGTH,0),u=g(e.SPHERES_LENGTH,0);if(a>0&&d(e.BOX_BATCH_IDS)){let f=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,f,a)}if(c>0&&d(e.CYLINDER_BATCH_IDS)){let f=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,f,c)}if(l>0&&d(e.ELLIPSOID_BATCH_IDS)){let f=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,f,l)}if(u>0&&d(e.SPHERE_BATCH_IDS)){let f=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,f,u)}let m=d(n)||d(i)||d(o)||d(r),p=a>0&&!d(n)||c>0&&!d(i)||l>0&&!d(o)||u>0&&!d(r);if(m&&p)throw new me("If one group of batch ids is defined, then all batch ids must be defined");if(!d(n)&&!d(i)&&!d(o)&&!d(r)){let f=0;if(!d(n)&&a>0)for(n=new Uint16Array(a),s=0;s0)for(i=new Uint16Array(c),s=0;s0)for(o=new Uint16Array(l),s=0;s0)for(r=new Uint16Array(u),s=0;s0&&(y=Go(i,n,l),n+=l,u>0&&(f=new Uint8Array(t,n,u),f=new Uint8Array(f)));let x=g(m.BOXES_LENGTH,0),_=g(m.CYLINDERS_LENGTH,0),C=g(m.ELLIPSOIDS_LENGTH,0),V=g(m.SPHERES_LENGTH,0),L=x+_+C+V,Z=new gp(e,L,y,f,O2e(e));if(e._batchTable=Z,L===0)return;let G=e.tile.computedTransform,X;d(m.RTC_CENTER)&&(X=h.unpack(m.RTC_CENTER),w.multiplyByPoint(G,X,X));let P=K2e(m,p);if(x>0||_>0||C>0||V>0){let v,A,M,b;if(x>0){let R=p.byteOffset+m.BOXES.byteOffset;v=new Float32Array(p.buffer,R,_p.packedBoxLength*x)}if(_>0){let R=p.byteOffset+m.CYLINDERS.byteOffset;A=new Float32Array(p.buffer,R,_p.packedCylinderLength*_)}if(C>0){let R=p.byteOffset+m.ELLIPSOIDS.byteOffset;M=new Float32Array(p.buffer,R,_p.packedEllipsoidLength*C)}if(V>0){let R=p.byteOffset+m.SPHERES.byteOffset;b=new Float32Array(p.buffer,R,_p.packedSphereLength*V)}return e._geometries=new _p({boxes:v,boxBatchIds:P.boxes,cylinders:A,cylinderBatchIds:P.cylinders,ellipsoids:M,ellipsoidBatchIds:P.ellipsoids,spheres:b,sphereBatchIds:P.spheres,center:X,modelMatrix:G,batchTable:Z,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function vte(e){let t=e.featuresLength;if(!d(e._features)&&t>0){let n=new Array(t);d(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}Tp.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Tp.prototype.getFeature=function(e){return vte(this),this._features[e]};Tp.prototype.applyDebugSettings=function(e,t){d(this._geometries)&&this._geometries.applyDebugSettings(e,t)};Tp.prototype.applyStyle=function(e){vte(this),d(this._geometries)&&this._geometries.applyStyle(e,this._features)};Tp.prototype.update=function(e,t){d(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),d(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};Tp.prototype.isDestroyed=function(){return!1};Tp.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var EE=Tp;var Ean=T(S(),1);var jqt=T(S(),1);var _Y={};_Y.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),Fte(i,o,r,s);return c};_Y.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s>>0,TY=2*Tx+1,Sb=4,Mte=[],Nte=[],Q2e=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],Cb=1,IS=2,RM=[Cb,0,0,Cb|IS];function Ar(e){if(!Mt.supportsBigInt())throw new me("S2 required BigInt support");this._cellId=e,this._level=Ar.getLevel(e)}Ar.fromToken=function(e){return new Ar(Ar.getIdFromToken(e))};Ar.isValidId=function(e){return!(e<=0||e>>BigInt(TY)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Ar.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Ar.isValidId(Ar.getIdFromToken(e)):!1};Ar.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Ar.getTokenFromId=function(e){let t=Math.floor(sPe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Ar.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return Tx-(t>>1)};Ar.prototype.getChild=function(e){let t=Dte(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Ar(n)};Ar.prototype.getParent=function(){let e=Dte(this._cellId)<>1&1;return kte(i[0],o[0][r^n&1],o[1][r])}function $2e(e,t){let n=Ute(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,l=(o<<1)+c,u=(r<<1)+c;return[i,l,u]}function Ute(e){Mte.length===0&&iPe();let t=Number(e>>BigInt(TY)),n=t&Cb,i=(1<=0;s--){let c=(1<<2*(s===7?Tx-7*Sb:Sb))-1;n+=Number(e>>BigInt(s*2*Sb+1)&BigInt(c))<<2,n=Nte[n];let l=s*Sb;o+=n>>Sb+2<>2&i)<=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function wte(e){return 1/J2e*e}function tPe(e,t){let n=[[],[]],i=nPe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=ZM(Ate(r)),n[o][1]=ZM(Ate(s))}return n}function nPe(e){return 1<>>0}function Ate(e){return 1/z2e*e}function Vb(e,t,n,i,o,r){if(e===Sb){let s=(t<>1),n+(s[0]&1),i,o,r^RM[0]),Vb(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^RM[1]),Vb(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^RM[2]),Vb(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^RM[3])}}function iPe(){Vb(0,0,0,0,0,0),Vb(0,0,0,Cb,0,Cb),Vb(0,0,0,IS,0,IS),Vb(0,0,0,Cb|IS,0,Cb|IS)}function Dte(e){return e&~e+BigInt(1)}function oPe(e){return BigInt(1)<>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(SY.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});SY.prototype.getBit=function(e){if(d(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var WS=SY;var b$t=T(S(),1);function Cp(e){e=g(e,g.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(Cp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Cp.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};Cp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};Cp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};Cp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};Cp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};Cp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};Cp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var PS=Cp;var g$t=T(S(),1);var GM={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};GM.getBranchingFactor=function(e){switch(e){case GM.OCTREE:return 8;case GM.QUADTREE:return 4}};var Mr=Object.freeze(GM);var G$t=T(S(),1);var C$t=T(S(),1);function Ys(){}Object.defineProperties(Ys.prototype,{class:{get:function(){fe.throwInstantiationError()}}});Ys.prototype.hasProperty=function(e){fe.throwInstantiationError()};Ys.prototype.hasPropertyBySemantic=function(e){fe.throwInstantiationError()};Ys.prototype.getPropertyIds=function(e){fe.throwInstantiationError()};Ys.prototype.getProperty=function(e){fe.throwInstantiationError()};Ys.prototype.setProperty=function(e,t){fe.throwInstantiationError()};Ys.prototype.getPropertyBySemantic=function(e){fe.throwInstantiationError()};Ys.prototype.setPropertyBySemantic=function(e,t){fe.throwInstantiationError()};Ys.hasProperty=function(e,t,n){if(d(t[e]))return!0;let i=n.properties;if(!d(i))return!1;let o=i[e];return!!(d(o)&&d(o.default))};Ys.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!d(i))return!1;let o=i[e];return d(o)};Ys.getPropertyIds=function(e,t,n){n=d(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&d(e[o])&&n.push(o);let i=t.properties;if(d(i))for(let o in i)i.hasOwnProperty(o)&&!d(e[o])&&d(i[o].default)&&n.push(o);return n};Ys.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!d(o)&&d(i.default))return o=Oe(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(d(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};Ys.setProperty=function(e,t,n,i){if(!d(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;d(r)&&(o=r[e]);let s=!0;return d(o)&&(t=o.packVectorAndMatrixTypes(t,s),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};Ys.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!d(i))return;let o=i[e];if(d(o))return Ys.getProperty(o.id,t,n)};Ys.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!d(o))return!1;let r=i.propertiesBySemantic[e];return d(r)?Ys.setProperty(r.id,t,n,i):!1};var Mn=Ys;function Vp(e){e=g(e,g.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=d(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Vp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Vp.prototype.hasProperty=function(e){return Mn.hasProperty(e,this._properties,this._class)};Vp.prototype.hasPropertyBySemantic=function(e){return Mn.hasPropertyBySemantic(e,this._properties,this._class)};Vp.prototype.getPropertyIds=function(e){return Mn.getPropertyIds(this._properties,this._class,e)};Vp.prototype.getProperty=function(e){return Mn.getProperty(e,this._properties,this._class)};Vp.prototype.setProperty=function(e,t){return Mn.setProperty(e,t,this._properties,this._class)};Vp.prototype.getPropertyBySemantic=function(e){return Mn.getPropertyBySemantic(e,this._properties,this._class)};Vp.prototype.setPropertyBySemantic=function(e,t){return Mn.setPropertyBySemantic(e,t,this._properties,this._class)};var XE=Vp;var xen=T(S(),1);var men=T(S(),1);var P$t=T(S(),1);var Et={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Et.getMinimum=function(e){switch(e){case Et.INT8:return-128;case Et.UINT8:return 0;case Et.INT16:return-32768;case Et.UINT16:return 0;case Et.INT32:return-2147483648;case Et.UINT32:return 0;case Et.INT64:return Mt.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Et.UINT64:return Mt.supportsBigInt()?BigInt(0):0;case Et.FLOAT32:return-34028234663852886e22;case Et.FLOAT64:return-Number.MAX_VALUE}};Et.getMaximum=function(e){switch(e){case Et.INT8:return 127;case Et.UINT8:return 255;case Et.INT16:return 32767;case Et.UINT16:return 65535;case Et.INT32:return 2147483647;case Et.UINT32:return 4294967295;case Et.INT64:return Mt.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Et.UINT64:return Mt.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Et.FLOAT32:return 34028234663852886e22;case Et.FLOAT64:return Number.MAX_VALUE}};Et.isIntegerType=function(e){switch(e){case Et.INT8:case Et.UINT8:case Et.INT16:case Et.UINT16:case Et.INT32:case Et.UINT32:case Et.INT64:case Et.UINT64:return!0;default:return!1}};Et.isUnsignedIntegerType=function(e){switch(e){case Et.UINT8:case Et.UINT16:case Et.UINT32:case Et.UINT64:return!0;default:return!1}};Et.isVectorCompatible=function(e){switch(e){case Et.INT8:case Et.UINT8:case Et.INT16:case Et.UINT16:case Et.INT32:case Et.UINT32:case Et.FLOAT32:case Et.FLOAT64:return!0;default:return!1}};Et.normalize=function(e,t){return Math.max(Number(e)/Number(Et.getMaximum(t)),-1)};Et.unnormalize=function(e,t){let n=Et.getMaximum(t),i=Et.isUnsignedIntegerType(t)?0:-n;return e=W.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Et.INT64||t===Et.UINT64)&&Mt.supportsBigInt()&&(e=BigInt(e)),e>n?n:e1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};pa.prototype.handleNoData=function(e){let t=this._noData;if(!d(t))return e;if(!Kte(e,t))return e};function Kte(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n1;return d(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};pa.prototype.packVectorAndMatrixTypes=function(e,t){t=g(t,!1);let n=Ot.getMathType(this._type),i=this._isArray,o=Ot.getComponentCount(this._type),r=i&&o>1;return d(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};pa.prototype.validate=function(e){if(!(!d(e)&&d(this._default)))return this._required&&!d(e)?"required property must have a value":this._isArray?uPe(this,e):Hte(this,e)};function uPe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;io?Bte(e,t,n):void 0}if(etn.getMaximum(t))return Bte(e,t,n)}function Ote(e,t){return`value ${e} of type ${t} must be finite`}function CY(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function SPe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function VPe(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<96?x-97:x>64?x-39:x+4}for(var _=0,f=0;f0&&f<=256),r(f%4==0);var x=n.exports.meshopt_encodeVertexBufferBound(y,f);return c(n.exports.meshopt_encodeVertexBuffer,x,p,y,f)},encodeIndexBuffer:function(p,y,f){r(f==2||f==4),r(y%3==0);var x=u(p,f),_=n.exports.meshopt_encodeIndexBufferBound(y,l(x)+1);return c(n.exports.meshopt_encodeIndexBuffer,_,x,y,4)},encodeIndexSequence:function(p,y,f){r(f==2||f==4);var x=u(p,f),_=n.exports.meshopt_encodeIndexSequenceBound(y,l(x)+1);return c(n.exports.meshopt_encodeIndexSequence,_,x,y,4)},encodeGltfBuffer:function(p,y,f,x){var _={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(_[x]),_[x](p,y,f)},encodeFilterOct:function(p,y,f,x){return r(f==4||f==8),r(x>=1&&x<=16),m(n.exports.meshopt_encodeFilterOct,p,y,f,x,16)},encodeFilterQuat:function(p,y,f,x){return r(f==8),r(x>=4&&x<=16),m(n.exports.meshopt_encodeFilterQuat,p,y,f,x,16)},encodeFilterExp:function(p,y,f,x,_){r(f>0&&f%4==0),r(x>=1&&x<=24);var C={Separate:0,SharedVector:1,SharedComponent:2};return m(n.exports.meshopt_encodeFilterExp,p,y,f,x,f,_?C[_]:1)}}}();var Men=T(S()),qte=function(){"use strict";var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:78Yqdbk:qzezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlinalgic9Wfglawcj;cbffhOdndndndndnaHalco4fRbbalci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOaoRblaoRbbgAco4glalciSgCE86bbawcj;cbfaifglcGfaoclfaCfgORbbaAcl4ciGgCaCciSgCE86bbalcVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbalc7faOaCfgORbbaAciGgAaAciSgAE86bbalctfaOaAfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkaOaoRbwaoRbbgAcl4glalcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgORbbaAcsGgAaAcsSgAE86bbalcVfaOaAfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekaOao8Pbb83bbaOcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhPdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkaCcefhCamcefgmad6hsamad9hmbkaPhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaPhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj;8ifcjjj98G::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;a9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;d8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgAclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(n)?t:e,r,s=WebAssembly.instantiate(a(o),{}).then(function(C){r=C.instance,r.exports.__wasm_call_ctors()});function a(C){for(var V=new Uint8Array(C.length),L=0;L96?Z-97:Z>64?Z-39:Z+4}for(var G=0,L=0;L0?x(C,V,L,u[Z],l[G]):s.then(function(){var X=new Uint8Array(C*V);return c(r.exports[u[Z]],X,C,V,L,r.exports[l[G]]),X})}}}();var ken=T(S()),Nen=function(){"use strict";var e="b9H79TebbbecD9Geueu9Geub9Gbb9Gquuuuuuu99uueu9Gvuuuuub9Gluuuue999Giuuue999Gluuuueu9Giuuueuimxdilvorbwwbewlve9Weiiviebeoweuecj;jekr7oo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95beX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbla9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbvl79IV9RboDwebcekdDqq:XJxdbkp8WiKuP99Hu8Jjjjjbcj;bb9Rgq8KjjjjbaqcKfcbc;Kbz1jjjb8AaqcualcdtgkalcFFFFi0Egxcbyd;S1jjbHjjjjbbgmBdKaqceBd94aqamBdwaqaxcbyd;S1jjbHjjjjbbgPBd3aqcdBd94aqaPBdxaqcuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbgsBdaaqciBd94aqasBdzaqcwfaeadalcbz:cjjjbaqaxcbyd;S1jjbHjjjjbbgzBd8KaqclBd94aqaxcbyd;S1jjbHjjjjbbgHBdyaqcvBd94alcd4alfhOcehAinaAgCcethAaCaO6mbkcbhXaqcuaCcdtgAaCcFFFFi0Ecbyd;S1jjbHjjjjbbgOBd8SaqcoBd94aOcFeaAz1jjjbhQdnalTmbavcd4hLaCcufhKinaiaXaL2cdtfgYydlgCcH4aC7c:F:b:DD2aYydbgCcH4aC7c;D;O:B8J27aYydwgCcH4aC7c:3F;N8N27hOcbhCdndninaQaOaKGgOcdtfg8AydbgAcuSmeaiaAaL2cdtfaYcxz:ljjjbTmdaCcefgCaOfhOaCaK9nmbxdkka8AaXBdbaXhAkazaXcdtfaABdbaXcefgXal9hmbkcbhCaHhAinaAaCBdbaAclfhAalaCcefgC9hmbkcbhCazhAaHhOindnaCaAydbgKSmbaOaHaKcdtfgKydbBdbaKaCBdbkaAclfhAaOclfhOalaCcefgC9hmbkkcbhOaqalcbyd;S1jjbHjjjjbbgYBd8WaqcrBd94aqaxcbyd;S1jjbHjjjjbbgCBd80aqcwBd94aqaxcbyd;S1jjbHjjjjbbgABdUaqcDBd94aCcFeakz1jjjbhEaAcFeakz1jjjbh3dnalTmbascwfh5indnamaOcdtgCfydbg8ETmbasaPaCfydbcitfh8Fa3aCfhaaEaCfhXcbhLindndna8FaLcitfydbgQaO9hmbaXaOBdbaaaOBdbxekdnamaQcdtgkfydbghTmbasaPakfydbcitgCfydbaOSmeahcufh8Aa5aCfhAcbhCina8AaCSmeaCcefhCaAydbhKaAcwfhAaKaO9hmbkaCah6meka3akfgCaOaQaCydbcuSEBdbaXaQaOaXydbcuSEBdbkaLcefgLa8E9hmbkkaOcefgOal9hmbkazhAaHhOa3hKaEhLcbhCindndnaCaAydbg8A9hmbdnaCaOydbg8A9hmbaLydbh8AdnaKydbgQcu9hmba8Acu9hmbaYaCfcb86bbxikaYaCfhXdnaCaQSmbaCa8ASmbaXce86bbxikaXcl86bbxdkdnaCaHa8AcdtgQfydb9hmbdnaKydbgXcuSmbaCaXSmbaLydbgkcuSmbaCakSmba3aQfydbg8EcuSmba8Ea8ASmbaEaQfydbgQcuSmbaQa8ASmbdnazaXcdtfydbazaQcdtfydb9hmbazakcdtfydbaza8Ecdtfydb9hmbaYaCfcd86bbxlkaYaCfcl86bbxikaYaCfcl86bbxdkaYaCfcl86bbxekaYaCfaYa8AfRbb86bbkaAclfhAaOclfhOaKclfhKaLclfhLalaCcefgC9hmbkawceGTmbaYhCalhAindnaCRbbce9hmbaCcl86bbkaCcefhCaAcufgAmbkkcbhLcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhmaqcKfaqyd94gCcdtfamBdbaqaCcefgABd94amaialavz:djjjb8AaqcKfaAcdtfcualc8S2gAalc;D;O;f8U0Ecbyd;S1jjbHjjjjbbgOBdbaqaCcdfBd94aOcbaAz1jjjbhsdnadTmbaehAindnamaAclfydbg8Acx2fgCIdbamaAydbgQcx2fgOIdbgg:tg8JamaAcwfydbgXcx2fgKIdlaOIdlg8K:tg8LNaKIdbag:tg8MaCIdla8K:tg8NN:tgyayNa8NaKIdwaOIdwg8P:tgINa8LaCIdwa8P:tg8NN:tg8La8LNa8Na8MNaIa8JN:tg8Ja8JNMM:rg8MJbbbb9ETmbaya8M:vhya8Ja8M:vh8Ja8La8M:vh8LkasazaQcdtfydbc8S2fgCa8La8M:rg8Ma8LNNg8NaCIdbMUdbaCa8Ja8Ma8JNg8RNgIaCIdlMUdlaCaya8MayNg8SNgRaCIdwMUdwaCa8Ra8LNg8RaCIdxMUdxaCa8Sa8LNg8UaCIdzMUdzaCa8Sa8JNg8SaCIdCMUdCaCa8La8Maya8PNa8LagNa8Ka8JNMM:mg8KNggNg8LaCIdKMUdKaCa8JagNg8JaCId3MUd3aCayagNgyaCIdaMUdaaCaga8KNggaCId8KMUd8KaCa8MaCIdyMUdyasaza8Acdtfydbc8S2fgCa8NaCIdbMUdbaCaIaCIdlMUdlaCaRaCIdwMUdwaCa8RaCIdxMUdxaCa8UaCIdzMUdzaCa8SaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCayaCIdaMUdaaCagaCId8KMUd8KaCa8MaCIdyMUdyasazaXcdtfydbc8S2fgCa8NaCIdbMUdbaCaIaCIdlMUdlaCaRaCIdwMUdwaCa8RaCIdxMUdxaCa8UaCIdzMUdzaCa8SaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCayaCIdaMUdaaCagaCId8KMUd8KaCa8MaCIdyMUdyaAcxfhAaLcifgLad6mbkcbh8AaehXincbhAinaYaeaAc:81jjbfydbgQa8AfcdtfydbgOfRbbhCdndnaYaXaAfydbgKfRbbgLc99fcFeGcpe0mbaCceSmbaCcd9hmekdnaLcufcFeGce0mbaEaKcdtfydbaO9hmekdnaCcufcFeGce0mba3aOcdtfydbaK9hmekdnaLcv2aCfc:G1jjbfRbbTmbazaOcdtfydbazaKcdtfydb0mekJbbacJbbjZaCceSEh8MaLceShkamaeaQcdtc:81jjbfydba8Afcdtfydbcx2fhCdnamaOcx2fgLIdwamaKcx2fgQIdwg8K:tg8La8LNaLIdbaQIdbg8P:tg8Ja8JNaLIdlaQIdlg8N:tgyayNMM:rggJbbbb9ETmba8Lag:vh8Layag:vhya8Jag:vh8JkJbbaca8MakEh8SdnaCIdwa8K:tg8Ma8La8Ma8LNaCIdba8P:tgRa8JNayaCIdla8N:tg8RNMMgIN:tg8Ma8MNaRa8JaIN:tg8La8LNa8RayaIN:tg8Ja8JNMM:rgyJbbbb9ETmba8May:vh8Ma8Jay:vh8Ja8Lay:vh8LkasazaKcdtfydbc8S2fgCa8La8SagNgya8LNNgIaCIdbMUdbaCa8Jaya8JNg8SNgRaCIdlMUdlaCa8Maya8MNggNg8RaCIdwMUdwaCa8Sa8LNg8SaCIdxMUdxaCaga8LNg8UaCIdzMUdzaCaga8JNg8VaCIdCMUdCaCa8Laya8Ma8KNa8La8PNa8Na8JNMM:mg8KNggNg8LaCIdKMUdKaCa8JagNg8JaCId3MUd3aCa8MagNg8MaCIdaMUdaaCaga8KNggaCId8KMUd8KaCayaCIdyMUdyasazaOcdtfydbc8S2fgCaIaCIdbMUdbaCaRaCIdlMUdlaCa8RaCIdwMUdwaCa8SaCIdxMUdxaCa8UaCIdzMUdzaCa8VaCIdCMUdCaCa8LaCIdKMUdKaCa8JaCId3MUd3aCa8MaCIdaMUdaaCagaCId8KMUd8KaCayaCIdyMUdykaAclfgAcx9hmbkaXcxfhXa8Acifg8Aad6mbkkdnabaeSmbabaeadcdtz:hjjjb8Akcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaaqcKfaqyd94gCcdtfaaBdbaqaCcefgABd94aqcKfaAcdtfcuadcdtadcFFFFi0Ecbyd;S1jjbHjjjjbbg5BdbaqaCcdfgABd94aqcKfaAcdtfaxcbyd;S1jjbHjjjjbbgiBdbaqaCcifgABd94aqcKfaAcdtfalcbyd;S1jjbHjjjjbbg8WBdbaqaCclfBd94JbbbbhRdnadao9nmbararNh8Saacwfh8Xaqydwh8Yaqydxh8Zaqydzh80JbbbbhRinaqcwfabadgPalazz:cjjjbcbhhabhXcbhkincbhCindnazaXaCfydbgOcdtgefydbgLazabaCc:81jjbfydbakfcdtfydbgAcdtfydbg8ASmbaYaAfRbbgQcv2aYaOfRbbgKfc;q1jjbfRbbg8FaKcv2aQfg8Ec;q1jjbfRbbgdVcFeGTmbdna8Ec:G1jjbfRbbTmba8AaL0mekdnaKaQ9hmbaKcufcFeGce0mbaEaefydbaA9hmekaaahcx2fgKaAaOadcFeGgLEBdlaKaOaAaLEBdbaKaLa8FGcb9hBdwahcefhhkaCclfgCcx9hmbkaXcxfhXakcifgkaP6mbkdndnahTmbaahAahh8AinaAcwfgQJbbbbJbbjZasazaAydbgOcdtfydbc8S2fgCIdyg8L:va8LJbbbb9BEaCIdwamaAclfgeydbgKcx2fgLIdwg8LNaCIdzaLIdbg8JNaCIdaMg8Ma8MMMa8LNaCIdlaLIdlg8MNaCIdCa8LNaCId3Mg8La8LMMa8MNaCIdba8JNaCIdxa8MNaCIdKMg8La8LMMa8JNaCId8KMMM:lNgyJbbbbJbbjZasazaKaOaQydbgLEgQcdtfydbc8S2fgCIdyg8L:va8LJbbbb9BEaCIdwamaOaKaLEgXcx2fgLIdwg8LNaCIdzaLIdbg8JNaCIdaMg8Ma8MMMa8LNaCIdlaLIdlg8MNaCIdCa8LNaCId3Mg8La8LMMa8MNaCIdba8JNaCIdxa8MNaCIdKMg8La8LMMa8JNaCId8KMMM:lNg8Laya8L9FgCEUdbaeaKaXaCEBdbaAaOaQaCEBdbaAcxfhAa8Acufg8Ambkaqcjefcbcj;abz1jjjb8Aa8XhCahhAinaqcjefaCydbcO4c;8ZGfgOaOydbcefBdbaCcxfhCaAcufgAmbkcbhCcbhAinaqcjefaCfgOydbhKaOaABdbaKaAfhAaCclfgCcj;ab9hmbkcbhCa8XhAinaqcjefaAydbcO4c;8ZGfgOaOydbgOcefBdba5aOcdtfaCBdbaAcxfhAahaCcefgC9hmbkaPao9RgOci9Uh81dnalTmbcbhCaihAinaAaCBdbaAclfhAalaCcefgC9hmbkkcbhBa8Wcbalz1jjjbh83aOcO9UhUa81ce4h85cbh86cbhkdninaaa5akcdtfydbcx2fgXIdwg8Ja8S9Emea86a819pmeJFFuuh8Ldna85ah9pmbaaa5a85cdtfydbcx2fIdwJbb;aZNh8Lkdna8Ja8L9ETmba86aU0mdkdna83azaXydlg87cdtg88fydbgOfg89Rbba83azaXydbgecdtg8:fydbgZfgnRbbVmbdna8YaZcdtgCfydbgKTmba80a8ZaCfydbcitfhCamaOcx2fg8Ecwfhda8EclfhxamaZcx2fg8Fcwfhva8FclfhwcbhAcehQdnindnaiaCydbcdtfydbgLaOSmbaiaCclfydbcdtfydbg8AaOSmbama8Acx2fg8AIdbamaLcx2fgLIdbg8M:tg8LawIdbaLIdlgy:tggNa8FIdba8M:tg8Ka8AIdlay:tg8JN:ta8LaxIdbay:tg8PNa8EIdba8M:tg8Na8JN:tNa8JavIdbaLIdwgy:tgINaga8AIdway:tg8MN:ta8JadIdbay:tgyNa8Pa8MN:tNa8Ma8KNaIa8LN:ta8Ma8NNaya8LN:tNMMJbbbb9DmdkaCcwfhCaAcefgAaK6hQaKaA9hmbkkaQceGTmba85cefh85xekaXcwfhKasaOc8S2fgCasaZc8S2fgAIdbaCIdbMUdbaCaAIdlaCIdlMUdlaCaAIdwaCIdwMUdwaCaAIdxaCIdxMUdxaCaAIdzaCIdzMUdzaCaAIdCaCIdCMUdCaCaAIdKaCIdKMUdKaCaAId3aCId3MUd3aCaAIdaaCIdaMUdaaCaAId8KaCId8KMUd8KaCaAIdyaCIdyMUdydndndndnaYaefgARbbc9:fPdebdkaehCinaiaCcdtgCfaOBdbaHaCfydbgCae9hmbxikkaHa88fydbhCaHa8:fydbheaia8:fa87BdbaCh87kaiaecdtfa87Bdbkance86bba89ce86bbaKIdbg8LaRaRa8L9DEhRaBcefhBcecdaARbbceSEa86fh86kakcefgkah9hmbkkaBTmbdnalTmbcbhAaEhCindnaCydbgOcuSmbdnaAaiaOcdtgKfydbgO9hmbaEaKfydbhOkaCaOBdbkaCclfhCalaAcefgA9hmbkcbhAa3hCindnaCydbgOcuSmbdnaAaiaOcdtgKfydbgO9hmba3aKfydbhOkaCaOBdbkaCclfhCalaAcefgA9hmbkkcbhdabhCcbhLindnaiaCydbcdtfydbgAaiaCclfydbcdtfydbgOSmbaAaiaCcwfydbcdtfydbgKSmbaOaKSmbabadcdtfg8AaABdba8AclfaOBdba8AcwfaKBdbadcifhdkaCcxfhCaLcifgLaP9pmdxbkkaPhdxdkadao0mbkkdnaDTmbaDaR:rUdbkaqyd94gCcdtaqcKffc98fhzdninaCTmeazydbcbyd;W1jjbH:bjjjbbazc98fhzaCcufhCxbkkaqcj;bbf8Kjjjjbadk;pleouabydbcbaicdtz1jjjb8Aadci9UhvdnadTmbabydbhodnalTmbaehradhwinaoalarydbcdtfydbcdtfgDaDydbcefBdbarclfhrawcufgwmbxdkkaehradhwinaoarydbcdtfgDaDydbcefBdbarclfhrawcufgwmbkkdnaiTmbabydbhrabydlhwcbhDaihoinawaDBdbawclfhwarydbaDfhDarclfhraocufgombkkdnadci6mbavceavce0EhqabydlhvabydwhrinaecwfydbhwaeclfydbhDaeydbhodnalTmbalawcdtfydbhwalaDcdtfydbhDalaocdtfydbhokaravaocdtfgdydbcitfaDBdbaradydbcitfawBdladadydbcefBdbaravaDcdtfgdydbcitfawBdbaradydbcitfaoBdladadydbcefBdbaravawcdtfgwydbcitfaoBdbarawydbcitfaDBdlawawydbcefBdbaecxfheaqcufgqmbkkdnaiTmbabydlhrabydbhwinararydbawydb9RBdbawclfhwarclfhraicufgimbkkk:3ldouv998Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdnadTmbaicd4hvdnabTmbavcdthocbhraehwinabarcx2fgiaearav2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinalczfaifgDawaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawaofhwarcefgrad9hmbxdkkavcdthrcbhwincbhiinalczfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbalaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbkkalIdbalIdzgk:tJbbbb:xgqalIdlalIdCgx:tgmamaq9DEgqalIdwalIdKgm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgiaqaiIdbax:tNUdbabcwfgiaqaiIdbam:tNUdbabcxfhbadcufgdmbkkaPk:Qdidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgoaDIdbgrarao9EEUdbaladfgDaoaDIdbgrarao9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkavJbbbb:xgvaoaoav9DEgoararao9DEk9DeeuabcFeaicdtz1jjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;01jjbgeabcifc98GfgbBd;01jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;01jjbgeabcrfc94GfgbBd;01jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;01jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;01jjbfgdBd;01jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:cedbcjwk9PFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbeeebeebebbeeebebbbbbebebbbbbebbbdbbbbbbbbbbbbbbbeeeeebebbbbbebbbbbeebbbbbbc;Swkxebbbdbbbj9Kbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(p){n=p.instance,n.exports.__wasm_call_ctors()});function o(p){for(var y=new Uint8Array(p.length),f=0;f96?x-97:x>64?x-39:x+4}for(var _=0,f=0;f=3),r(x%3==0),r(_>=0&&_<=1);for(var V=0,L=0;L<(C?C.length:0);++L)V|=m[C[L]];var Z=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p),G=l(n.exports.meshopt_simplify,Z,p.length,y,y.length/f,f*4,x,_,V);return G[0]=p instanceof Uint32Array?G[0]:new p.constructor(G[0]),G},getScale:function(p,y){return r(p instanceof Float32Array),r(p.length%y==0),u(n.exports.meshopt_simplifyScale,p,p.length/y,y*4)}}}();function Cx(e){e=g(e,g.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,l=a.byteOffset,u=a.byteLength,m=!1,p,y,f,x;if(ri(a,"EXT_meshopt_compression")){let C=a.extensions.EXT_meshopt_compression;c=C.buffer,l=g(C.byteOffset,0),u=C.byteLength,m=!0,p=C.byteStride,y=C.count,f=C.mode,x=g(C.filter,"NONE")}let _=n.buffers[c];this._hasMeshopt=m,this._meshoptByteStride=p,this._meshoptCount=y,this._meshoptMode=f,this._meshoptFilter=x,this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._buffer=_,this._bufferId=c,this._byteOffset=l,this._byteLength=u,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=Rt.UNLOADED,this._promise=void 0}d(Object.create)&&(Cx.prototype=Object.create(oo.prototype),Cx.prototype.constructor=Cx);Object.defineProperties(Cx.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function FPe(e){try{let t=wPe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);qte.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=Rt.READY,e}catch(t){if(e.isDestroyed())return;e.unload(),e._state=Rt.FAILED;let n="Failed to load buffer view";throw e.getError(n,t)}}Cx.prototype.load=async function(){return d(this._promise)?this._promise:(this._state=Rt.LOADING,this._promise=FPe(this),this._promise)};function wPe(e){let t=e._resourceCache,n=e._buffer;if(d(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}Cx.prototype.unload=function(){d(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var vS=Cx;var htn=T(S(),1);var stn=T(S(),1);function xr(){}xr._maxDecodingConcurrency=Math.max(Mt.hardwareConcurrency-1,1);xr._decoderTaskProcessor=void 0;xr._taskProcessorReady=!1;xr._error=void 0;xr._getDecoderTaskProcessor=function(){if(!d(xr._decoderTaskProcessor)){let e=new pi("decodeDraco",xr._maxDecodingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(t){t?xr._taskProcessorReady=!0:xr._error=new me("Draco decoder could not be initialized.")}).catch(t=>{xr._error=t}),xr._decoderTaskProcessor=e}return xr._decoderTaskProcessor};xr.decodePointCloud=function(e){let t=xr._getDecoderTaskProcessor();if(d(xr._error))throw xr._error;if(xr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};xr.decodeBufferView=function(e){let t=xr._getDecoderTaskProcessor();if(d(xr._error))throw xr._error;if(xr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var Rp=xr;function Zb(e){e=g(e,g.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=Rt.UNLOADED,this._promise=void 0,this._dracoError=void 0}d(Object.create)&&(Zb.prototype=Object.create(oo.prototype),Zb.prototype.constructor=Zb);Object.defineProperties(Zb.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function APe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=Rt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;$te(e,n)}}Zb.prototype.load=async function(){return d(this._promise)?this._promise:(this._state=Rt.LOADING,this._promise=APe(this),this._promise)};function $te(e,t){e.unload(),e._state=Rt.FAILED;let n="Failed to load Draco";throw e.getError(n,t)}async function MPe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=Rt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}Zb.prototype.process=function(e){if(this._state===Rt.READY)return!0;if(this._state!==Rt.PROCESSING||(d(this._dracoError)&&$te(this,this._dracoError),!d(this._bufferViewTypedArray))||d(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=Rp.decodeBufferView(a);if(!d(c))return!1;this._decodePromise=MPe(this,c)};Zb.prototype.unload=function(){d(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var FS=Zb;var Ztn=T(S(),1);var gtn=T(S(),1);function NPe(e){let t=e.uint8Array,n=e.format,i=e.request,o=g(e.flipY,!1),r=g(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return Ee.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(Ee.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new Ee({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return d(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return d(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var Vx=NPe;function Zp(e){e=g(e,g.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,l=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=l,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=Rt.UNLOADED,this._promise=void 0}d(Object.create)&&(Zp.prototype=Object.create(oo.prototype),Zp.prototype.constructor=Zp);Object.defineProperties(Zp.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});Zp.prototype.load=function(){return d(this._promise)?this._promise:d(this._bufferViewId)?(this._promise=UPe(this),this._promise):(this._promise=kPe(this),this._promise)};function ene(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function UPe(e){e._state=Rt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await BPe(i);if(e.isDestroyed())return;let r=ene(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Rt.READY,e}catch(n){return e.isDestroyed()?void 0:tne(e,n,"Failed to load embedded image")}}async function kPe(e){e._state=Rt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await OPe(i);if(e.isDestroyed())return;let r=ene(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=Rt.READY,e}catch(o){return e.isDestroyed()?void 0:tne(e,o,`Failed to load image: ${n}`)}}function tne(e,t,n){return e.unload(),e._state=Rt.FAILED,Promise.reject(e.getError(n,t))}function DPe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new me("Image format is not recognized")}async function BPe(e){let t=DPe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return rl(n)}return Zp._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var YPe=/(^data:image\/ktx2)|(\.ktx2$)/i;function OPe(e){let t=e.getUrlComponent(!1,!0);return YPe.test(t)?rl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}Zp.prototype.unload=function(){d(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};Zp._loadImageFromTypedArray=Vx;var wS=Zp;var ktn=T(S(),1);var Etn=T(S(),1),KPe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},ba=Object.freeze(KPe);function Gb(e){e=g(e,g.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=g(e.asynchronous,!0),l=g(e.loadBuffer,!1),u=g(e.loadTypedArray,!1),m=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=m,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=l,this._loadTypedArray=u,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=Rt.UNLOADED,this._promise=void 0}d(Object.create)&&(Gb.prototype=Object.create(oo.prototype),Gb.prototype.constructor=Gb);Object.defineProperties(Gb.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var HPe=new RY;Gb.prototype.load=async function(){return d(this._promise)?this._promise:d(this._draco)?(this._promise=zPe(this),this._promise):(this._promise=JPe(this),this._promise)};async function zPe(e){e._state=Rt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=Rt.LOADED,e)}catch(n){if(e.isDestroyed())return;LY(e,n)}}async function JPe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=Rt.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=QPe(e,a),e._state=Rt.PROCESSING,e}catch(s){if(e.isDestroyed())return;LY(e,s)}}function QPe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ue.getSizeInBytes(s),c=t.buffer,l=t.byteOffset+o.byteOffset;if(l%a!==0){let m=r*a,p=new Uint8Array(c,l,m);c=new Uint8Array(p).buffer,l=0,zr("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let u;return s===Ue.UNSIGNED_BYTE?u=new Uint8Array(c,l,r):s===Ue.UNSIGNED_SHORT?u=new Uint16Array(c,l,r):s===Ue.UNSIGNED_INT&&(u=new Uint32Array(c,l,r)),u}function LY(e,t){e.unload(),e._state=Rt.FAILED;let n="Failed to load index buffer";throw e.getError(n,t)}function RY(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}RY.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};RY.prototype.execute=function(){this.buffer=nne(this.typedArray,this.indexDatatype,this.context)};function nne(e,t,n){let i=mt.createIndexBuffer({typedArray:e,context:n,usage:Ne.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}Gb.prototype.process=function(e){if(this._state===Rt.READY)return!0;if(this._state!==Rt.LOADED&&this._state!==Rt.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(d(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=Q.fromTypedArray(t),this._indexDatatype=n)}catch(o){LY(this,o)}if(!d(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=HPe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,ba.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=nne(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=Rt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};Gb.prototype.unload=function(){d(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;d(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),d(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var AS=Gb;var qon=T(S(),1);var mnn=T(S(),1);var Ytn=T(S(),1);function jPe(e,t,n){if(n=g(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var rs=jPe;var jtn=T(S(),1);var Htn=T(S(),1);function qPe(e,t){return d(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var tr=qPe;function Kt(){}Kt.objectLegacy=function(e,t){if(d(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(d(o))return o}}};Kt.object=function(e,t){if(d(e)){let n=e.length;for(let i=0;i0)return i.byteStride}return Q.getSizeInBytes(t.componentType)*nd(t.type)}var yl=eve;function tve(e){Xe.accessor(e,function(n){d(n.bufferView)&&(n.byteOffset=g(n.byteOffset,0))}),Xe.bufferView(e,function(n){d(n.buffer)&&(n.byteOffset=g(n.byteOffset,0))}),Xe.mesh(e,function(n){Xe.meshPrimitive(n,function(i){if(i.mode=g(i.mode,ne.TRIANGLES),!d(i.material)){d(e.materials)||(e.materials=[]);let o={name:"default"};i.material=rs(e.materials,o)}})}),Xe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=g(i.normalized,!1),d(o)){let r=e.bufferViews[o];r.byteStride=yl(e,i),r.target=ne.ARRAY_BUFFER}}),Xe.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(d(o)){let r=e.bufferViews[o];r.target=ne.ELEMENT_ARRAY_BUFFER}}),Xe.material(e,function(n){let i=g(n.extensions,g.EMPTY_OBJECT),o=i.KHR_materials_common;if(d(o)){let c=o.technique,l=d(o.values)?o.values:{};o.values=l,l.ambient=d(l.ambient)?l.ambient:[0,0,0,1],l.emission=d(l.emission)?l.emission:[0,0,0,1],l.transparency=g(l.transparency,1),c!=="CONSTANT"&&(l.diffuse=d(l.diffuse)?l.diffuse:[0,0,0,1],c!=="LAMBERT"&&(l.specular=d(l.specular)?l.specular:[0,0,0,1],l.shininess=g(l.shininess,0))),o.transparent=g(o.transparent,!1),o.doubleSided=g(o.doubleSided,!1);return}n.emissiveFactor=g(n.emissiveFactor,[0,0,0]),n.alphaMode=g(n.alphaMode,"OPAQUE"),n.doubleSided=g(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=g(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;d(r)&&Xe.materialValue(n,function(c){d(c.index)&&Lx(c)}),Lx(n.emissiveTexture),Lx(n.normalTexture),Lx(n.occlusionTexture);let s=n.pbrMetallicRoughness;d(s)&&(s.baseColorFactor=g(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=g(s.metallicFactor,1),s.roughnessFactor=g(s.roughnessFactor,1),Lx(s.baseColorTexture),Lx(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;d(a)&&(a.diffuseFactor=g(a.diffuseFactor,[1,1,1,1]),a.specularFactor=g(a.specularFactor,[1,1,1]),a.glossinessFactor=g(a.glossinessFactor,1),Lx(a.specularGlossinessTexture))}),Xe.animation(e,function(n){Xe.animationSampler(n,function(i){i.interpolation=g(i.interpolation,"LINEAR")})});let t=nve(e);return Xe.node(e,function(n,i){d(t[i])||d(n.translation)||d(n.rotation)||d(n.scale)?(n.translation=g(n.translation,[0,0,0]),n.rotation=g(n.rotation,[0,0,0,1]),n.scale=g(n.scale,[1,1,1])):n.matrix=g(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Xe.sampler(e,function(n){n.wrapS=g(n.wrapS,ne.REPEAT),n.wrapT=g(n.wrapT,ne.REPEAT)}),d(e.scenes)&&!d(e.scene)&&(e.scene=0),e}function nve(e){let t={};return Xe.animation(e,function(n){Xe.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function Lx(e){d(e)&&(e.texCoord=g(e.texCoord,0))}var PE=tve;var bnn=T(S(),1);function ive(e){return Xe.shader(e,function(t){XM(t)}),Xe.buffer(e,function(t){XM(t)}),Xe.image(e,function(t){XM(t)}),XM(e),e}function XM(e){e.extras=d(e.extras)?e.extras:{},e.extras._pipeline=d(e.extras._pipeline)?e.extras._pipeline:{}}var Eb=ive;var Wnn=T(S(),1);var Cnn=T(S(),1);var xnn=T(S(),1);function ove(e,t){let n=e.extensionsRequired;if(d(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var vE=ove;function rve(e,t){let n=e.extensionsUsed;if(d(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),vE(e,t),n.length===0&&delete e.extensionsUsed}}var Rx=rve;var sve=4;function ave(e){if(ym(e)!=="glTF")throw new me("File is not valid binary glTF");let n=ine(e,0,5),i=n[1];if(i!==1&&i!==2)throw new me("Binary glTF version is not 1 or 2");return i===1?cve(e,n):lve(e,n)}function ine(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r0){let m=g(u.binary_glTF,u.KHR_binary_glTF);d(m)&&(m.extras._pipeline.source=l,delete m.uri)}return Rx(c,"KHR_binary_glTF"),c}function lve(e,t){let n=t[2],i=12,o,r;for(;i0){let a=s[0];a.extras._pipeline.source=r}}return o}var FE=ave;var wnn=T(S(),1);function dve(e){return Xe.shader(e,function(t){IM(t)}),Xe.buffer(e,function(t){IM(t)}),Xe.image(e,function(t){IM(t)}),IM(e),e}function IM(e){d(e.extras)&&(d(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var wE=dve;var yon=T(S(),1);var Unn=T(S(),1);function uve(e,t){let n=e.extensionsUsed;d(n)||(n=[],e.extensionsUsed=n),rs(n,t,!0)}var iu=uve;var Qnn=T(S(),1);var Bnn=T(S(),1);function mve(e){switch(e){case Q.BYTE:return function(t,n,i,o,r){for(let s=0;s-1:!1}var bve=[ne.ZERO,ne.ONE,ne.SRC_COLOR,ne.ONE_MINUS_SRC_COLOR,ne.SRC_ALPHA,ne.ONE_MINUS_SRC_ALPHA,ne.DST_ALPHA,ne.ONE_MINUS_DST_ALPHA,ne.DST_COLOR,ne.ONE_MINUS_DST_COLOR];function yve(e,t){if(!d(e))return t;for(let n=0;n<4;n++)if(bve.indexOf(e[n])===-1)return t;return e}function gve(e){let t={},n={},i=e.techniques;return d(i)&&(Xe.technique(e,function(o,r){let s=o.states;if(d(s)){let a=n[r]={};if(one(s,ne.BLEND)){a.alphaMode="BLEND";let c=s.functions;d(c)&&(d(c.blendEquationSeparate)||d(c.blendFuncSeparate))&&(t[r]={blendEquation:g(c.blendEquationSeparate,fve),blendFactors:yve(c.blendFuncSeparate,pve)})}one(s,ne.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(d(e.extensions)||(e.extensions={}),iu(e,"KHR_blend")),Xe.material(e,function(o){if(d(o.technique)){let r=n[o.technique];Xe.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];d(s)&&(d(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var AE=gve;var pin=T(S(),1);var cin=T(S(),1);function xve(e,t){let n=e.extensionsRequired;d(n)||(n=[],e.extensionsRequired=n),rs(n,t,!0),iu(e,t)}var ME=xve;function _ve(e){let t=e.techniques,n={},i={},o={};if(d(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Xe.technique(e,function(a,c){let l={name:a.name,program:void 0,attributes:{},uniforms:{}},u;if(Xe.techniqueAttribute(a,function(m,p){u=a.parameters[m],l.attributes[p]={semantic:u.semantic}}),Xe.techniqueUniform(a,function(m,p){u=a.parameters[m],l.uniforms[p]={count:u.count,node:u.node,type:u.type,semantic:u.semantic,value:u.value},d(n[c])||(n[c]={}),n[c][m]=p}),d(o[a.program]))l.program=o[a.program];else{let m=e.programs[a.program],p={name:m.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},y=e.shaders[m.fragmentShader];p.fragmentShader=rs(r.shaders,y,!0);let f=e.shaders[m.vertexShader];p.vertexShader=rs(r.shaders,f,!0),l.program=rs(r.programs,p),o[a.program]=l.program}i[c]=rs(r.techniques,l)}),r.techniques.length>0&&(d(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,iu(e,"KHR_techniques_webgl"),ME(e,"KHR_techniques_webgl"))}return Xe.material(e,function(r){if(d(r.technique)){let s={technique:i[r.technique]};Xe.objectLegacy(r.values,function(a,c){d(s.values)||(s.values={});let l=n[r.technique][c];d(l)&&(s.values[l]=a)}),d(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var NE=_ve;var Zin=T(S(),1);var _in=T(S(),1);function Tve(e,t){tl.typeOf.object("material",e),tl.defined("handler",t);let n=e.pbrMetallicRoughness;if(d(n)){if(d(n.baseColorTexture)){let o=n.baseColorTexture,r=t(o.index,o);if(d(r))return r}if(d(n.metallicRoughnessTexture)){let o=n.metallicRoughnessTexture,r=t(o.index,o);if(d(r))return r}}if(d(e.extensions)){let o=e.extensions.KHR_materials_pbrSpecularGlossiness;if(d(o)){if(d(o.diffuseTexture)){let s=o.diffuseTexture,a=t(s.index,s);if(d(a))return a}if(d(o.specularGlossinessTexture)){let s=o.specularGlossinessTexture,a=t(s.index,s);if(d(a))return a}}let r=e.extensions.KHR_materials_common;if(d(r)&&d(r.values)){let s=r.values.diffuse,a=r.values.ambient,c=r.values.emission,l=r.values.specular;if(d(s)&&d(s.index)){let u=t(s.index,s);if(d(u))return u}if(d(a)&&d(a.index)){let u=t(a.index,a);if(d(u))return u}if(d(c)&&d(c.index)){let u=t(c.index,c);if(d(u))return u}if(d(l)&&d(l.index)){let u=t(l.index,l);if(d(u))return u}}}let i=Xe.materialValue(e,function(o){if(d(o.index)){let r=t(o.index,o);if(d(r))return r}});if(d(i))return i;if(d(e.emissiveTexture)){let o=e.emissiveTexture,r=t(o.index,o);if(d(r))return r}if(d(e.normalTexture)){let o=e.normalTexture,r=t(o.index,o);if(d(r))return r}if(d(e.occlusionTexture)){let o=e.occlusionTexture,r=t(o.index,o);if(d(r))return r}}var MS=Tve;var rne=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function Sve(e,t){return t=g(t,rne),rne.forEach(function(n){t.indexOf(n)>-1&&Vve(e,n)}),e}var Cve={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function Vve(e,t){let n=Cve[t],i=e[n];if(d(i)){let o=0,r=Yh[t](e),s=i.length;for(let a=0;at&&o.attributes[c]--}),Xe.meshPrimitiveTarget(o,function(a){Xe.meshPrimitiveTargetAttribute(a,function(c,l){c>t&&a[l]--})});let r=o.indices;d(r)&&r>t&&o.indices--;let s=o.extensions;d(s)&&d(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Xe.skin(e,function(i){d(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Xe.animation(e,function(i){Xe.animationSampler(i,function(o){d(o.input)&&o.input>t&&o.input--,d(o.output)&&o.output>t&&o.output--})})};Bh.buffer=function(e,t){e.buffers.splice(t,1),Xe.bufferView(e,function(i){d(i.buffer)&&i.buffer>t&&i.buffer--,d(i.extensions)&&d(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};Bh.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Xe.accessor(e,function(i){d(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Xe.shader(e,function(i){d(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Xe.image(e,function(i){d(i.bufferView)&&i.bufferView>t&&i.bufferView--}),tr(e,"KHR_draco_mesh_compression")&&Xe.mesh(e,function(i){Xe.meshPrimitive(i,function(o){d(o.extensions)&&d(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),tr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(d(a)){for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];d(l.bufferView)&&l.bufferView>t&&l.bufferView--,d(l.arrayOffsetBufferView)&&l.arrayOffsetBufferView>t&&l.arrayOffsetBufferView--,d(l.stringOffsetBufferView)&&l.stringOffsetBufferView>t&&l.stringOffsetBufferView--}}}}if(tr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(d(o)){let r=o.length;for(let s=0;st&&u.values--,d(u.arrayOffsets)&&u.arrayOffsets>t&&u.arrayOffsets--,d(u.stringOffsets)&&u.stringOffsets>t&&u.stringOffsets--}}}}};Bh.image=function(e,t){e.images.splice(t,1),Xe.texture(e,function(i){d(i.source)&&i.source>t&&--i.source;let o=i.extensions;d(o)&&d(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:d(o)&&d(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};Bh.mesh=function(e,t){e.meshes.splice(t,1),Xe.node(e,function(i){d(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};Bh.node=function(e,t){e.nodes.splice(t,1),Xe.skin(e,function(i){d(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Xe.animation(e,function(i){Xe.animationChannel(i,function(o){d(o.target)&&d(o.target.node)&&o.target.node>t&&o.target.node--})}),Xe.technique(e,function(i){Xe.techniqueUniform(i,function(o){d(o.node)&&o.node>t&&o.node--})}),Xe.node(e,function(i){d(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Xe.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};Bh.material=function(e,t){e.materials.splice(t,1),Xe.mesh(e,function(i){Xe.meshPrimitive(i,function(o){d(o.material)&&o.material>t&&o.material--})})};Bh.sampler=function(e,t){e.samplers.splice(t,1),Xe.texture(e,function(i){d(i.sampler)&&i.sampler>t&&--i.sampler})};Bh.texture=function(e,t){if(e.textures.splice(t,1),Xe.material(e,function(i){MS(i,function(o,r){r.index>t&&--r.index})}),tr(e,"EXT_feature_metadata")){Xe.mesh(e,function(r){Xe.meshPrimitive(r,function(s){let a=s.extensions;if(d(a)&&d(a.EXT_feature_metadata)){let l=a.EXT_feature_metadata.featureIdTextures;if(d(l)){let u=l.length;for(let m=0;mt&&--y.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(d(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c].texture;u.index>t&&--u.index}}}}if(tr(e,"EXT_mesh_features")&&Xe.mesh(e,function(i){Xe.meshPrimitive(i,function(o){let r=o.extensions;if(d(r)&&d(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(d(a)){let c=a.length;for(let l=0;lt&&--u.texture.index}}}})}),tr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(d(o)){let r=o.length;for(let s=0;st&&--u.index}}}}};function Yh(){}Yh.accessor=function(e){let t={};return Xe.mesh(e,function(n){Xe.meshPrimitive(n,function(i){Xe.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Xe.meshPrimitiveTarget(i,function(r){Xe.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;d(o)&&(t[o]=!0)})}),Xe.skin(e,function(n){d(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Xe.animation(e,function(n){Xe.animationSampler(n,function(i){d(i.input)&&(t[i.input]=!0),d(i.output)&&(t[i.output]=!0)})}),tr(e,"EXT_mesh_gpu_instancing")&&Xe.node(e,function(n){d(n.extensions)&&d(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),tr(e,"CESIUM_primitive_outline")&&Xe.mesh(e,function(n){Xe.meshPrimitive(n,function(i){let o=i.extensions;if(d(o)&&d(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;d(s)&&(t[s]=!0)}})}),t};Yh.buffer=function(e){let t={};return Xe.bufferView(e,function(n){d(n.buffer)&&(t[n.buffer]=!0),d(n.extensions)&&d(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};Yh.bufferView=function(e){let t={};if(Xe.accessor(e,function(n){d(n.bufferView)&&(t[n.bufferView]=!0)}),Xe.shader(e,function(n){d(n.bufferView)&&(t[n.bufferView]=!0)}),Xe.image(e,function(n){d(n.bufferView)&&(t[n.bufferView]=!0)}),tr(e,"KHR_draco_mesh_compression")&&Xe.mesh(e,function(n){Xe.meshPrimitive(n,function(i){d(i.extensions)&&d(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),tr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(d(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];d(c.bufferView)&&(t[c.bufferView]=!0),d(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),d(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(tr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(d(i)){let o=i.length;for(let r=0;r0&&(t[n.mesh]=!0)}}),t};function sne(e,t,n){let i=e.nodes[t];return d(i.mesh)||d(i.camera)||d(i.skin)||d(i.weights)||d(i.extras)||d(i.extensions)&&Object.keys(i.extensions).length!==0||d(n[t])?!1:!d(i.children)||i.children.filter(function(o){return!sne(e,o,n)}).length===0}Yh.node=function(e){let t={};return Xe.skin(e,function(n){d(n.skeleton)&&(t[n.skeleton]=!0),Xe.skinJoint(n,function(i){t[i]=!0})}),Xe.animation(e,function(n){Xe.animationChannel(n,function(i){d(i.target)&&d(i.target.node)&&(t[i.target.node]=!0)})}),Xe.technique(e,function(n){Xe.techniqueUniform(n,function(i){d(i.node)&&(t[i.node]=!0)})}),Xe.node(e,function(n,i){sne(e,i,t)||(t[i]=!0)}),t};Yh.material=function(e){let t={};return Xe.mesh(e,function(n){Xe.meshPrimitive(n,function(i){d(i.material)&&(t[i.material]=!0)})}),t};Yh.texture=function(e){let t={};if(Xe.material(e,function(n){MS(n,function(i){t[i]=!0})}),tr(e,"EXT_feature_metadata")){Xe.mesh(e,function(o){Xe.meshPrimitive(o,function(r){let s=r.extensions;if(d(s)&&d(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(d(c)){let l=c.length;for(let u=0;u0)for(s.mesh=n.meshes[c[0]],t=1;t0&&d(s.skin)){let u=e.skins[s.skin];u.skeleton=n.nodes[c[0]]}delete s.skeletons}d(s.jointName)&&delete s.jointName}),Xe.skin(e,function(s){d(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(d(a)){let c=[],l=a.length;for(t=0;t=0&&(a=r.substring(0,s),c=r.substring(s));let l,u=Hve[a];d(u)?(l=u+c,t[r]=l):d(Kve[a])||(l=`_${r}`,t[r]=l)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];d(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Xe.technique(e,function(n){Xe.techniqueParameter(n,function(i){let o=t[i.semantic];d(o)&&(i.semantic=o)})})}function Jve(e){Xe.camera(e,function(t){let n=t.perspective;if(d(n)){let i=n.aspectRatio;d(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;d(o)&&o===0&&(n.yfov=1)}})}function GY(e,t){return d(t.byteStride)&&t.byteStride!==0?t.byteStride:yl(e,t)}function Qve(e){Xe.buffer(e,function(t){d(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Xe.accessor(e,function(t){let n=t.bufferView;if(d(n)){let i=e.bufferViews[n],o=GY(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(g(i.byteLength,0),r)}})}function jve(e){let t,n,i,o=e.bufferViews,r={};Xe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];d(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Xe.accessor(e,function(a){d(a.bufferView)&&(s[a.bufferView]=g(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,y){return p.byteOffset-y.byteOffset});let l=0,u=0,m=c.length;for(t=0;t=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Xe.node(e,function(n,i){if(d(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),lne(n)&&dne(e,i))}}),delete e.nodes[t]}function $ve(e){return Xe.node(e,function(t,n){lne(t)&&dne(e,n)}),e}function eFe(e){Xe.animation(e,function(t){Xe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!d(i.min)||!d(i.max)){let o=Zx(e,i);i.min=o.min,i.max=o.max}})})}function tFe(e){Xe.accessor(e,function(t){if(d(t.min)||d(t.max)){let n=Zx(e,t);d(t.min)&&(t.min=n.min),d(t.max)&&(t.max=n.max)}})}function nFe(e){e.asset=g(e.asset,{}),e.asset.version="2.0",cne(e),wve(e),$ve(e),Ave(e),Mve(e),Uve(e),Dve(e),Qve(e),jve(e),qve(e),eFe(e),tFe(e),Bve(e),Yve(e),Ove(e),zve(e),BE(e),Jve(e),AE(e),NE(e),Nve(e)}var iFe=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],oFe=["u_diffuse","u_diffuse_mat"];function EY(e){e.pbrMetallicRoughness=d(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function vM(e){return d(e.index)}function FM(e){return Array.isArray(e)&&e.length===4}function une(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function rFe(e,t){t=g(t,g.EMPTY_OBJECT);let n=g(t.baseColorTextureNames,iFe),i=g(t.baseColorFactorNames,oFe);Xe.material(e,function(o){Xe.materialValue(o,function(r,s){n.indexOf(s)!==-1&&vM(r)?(EY(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&FM(r)&&(EY(o),o.pbrMetallicRoughness.baseColorFactor=une(r))})}),Gx(e,"KHR_techniques_webgl"),Gx(e,"KHR_blend")}function sFe(e){Xe.material(e,function(t){let n=g(t.extensions,g.EMPTY_OBJECT).KHR_materials_common;if(d(n)){n.technique==="CONSTANT"&&(iu(e,"KHR_materials_unlit"),t.extensions=d(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={});let o=d(n.values)?n.values:{},r=o.ambient,s=o.diffuse,a=o.emission,c=o.transparency,l=n.doubleSided,u=n.transparent;EY(t),d(r)&&(FM(r)?t.emissiveFactor=r.slice(0,3):vM(r)&&(t.emissiveTexture=r)),d(s)&&(FM(s)?t.pbrMetallicRoughness.baseColorFactor=une(s):vM(s)&&(t.pbrMetallicRoughness.baseColorTexture=s)),d(l)&&(t.doubleSided=l),d(a)&&(FM(a)?t.emissiveFactor=a.slice(0,3):vM(a)&&(t.emissiveTexture=a)),d(c)&&(d(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=c:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,c]),d(u)&&(t.alphaMode=u?"BLEND":"OPAQUE")}}),Gx(e,"KHR_materials_common")}var YE=Xve;var Pon=T(S(),1);var _on=T(S(),1);var si={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function aFe(e){switch(e){case si.POSITION:return"positionMC";case si.NORMAL:return"normalMC";case si.TANGENT:return"tangentMC";case si.TEXCOORD:return"texCoord";case si.COLOR:return"color";case si.JOINTS:return"joints";case si.WEIGHTS:return"weights";case si.FEATURE_ID:return"featureId"}}si.hasSetIndex=function(e){switch(e){case si.POSITION:case si.NORMAL:case si.TANGENT:return!1;case si.TEXCOORD:case si.COLOR:case si.JOINTS:case si.WEIGHTS:case si.FEATURE_ID:return!0}};si.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return si.POSITION;case"NORMAL":return si.NORMAL;case"TANGENT":return si.TANGENT;case"TEXCOORD":return si.TEXCOORD;case"COLOR":return si.COLOR;case"JOINTS":return si.JOINTS;case"WEIGHTS":return si.WEIGHTS;case"_FEATURE_ID":return si.FEATURE_ID}};si.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return si.POSITION;case"RGBA":case"RGB":case"RGB565":return si.COLOR;case"NORMAL":case"NORMAL_OCT16P":return si.NORMAL;case"BATCH_ID":return si.FEATURE_ID}};si.getGlslType=function(e){switch(e){case si.POSITION:case si.NORMAL:case si.TANGENT:return"vec3";case si.TEXCOORD:return"vec2";case si.COLOR:return"vec4";case si.JOINTS:return"ivec4";case si.WEIGHTS:return"vec4";case si.FEATURE_ID:return"int"}};si.getVariableName=function(e,t){let n=aFe(e);return d(t)&&(n+=`_${t}`),n};var Ct=Object.freeze(si);function Oa(){}Oa.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;d(n)&&d(n.message)&&(i+=` +${n.message}`);let o=new me(i);return d(n)&&(o.stack=`Original stack: +${n.stack} +Handler stack: +${o.stack}`),o};Oa.getNodeTransform=function(e){return d(e.matrix)?e.matrix:w.fromTranslationQuaternionRotationScale(d(e.translation)?e.translation:h.ZERO,d(e.rotation)?e.rotation:Ae.IDENTITY,d(e.scale)?e.scale:h.ONE)};Oa.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r>t};Os.fromSubtreeJson=async function(e,t,n,i,o){let r=new Os(e,i,o),s;d(t)?s={json:t,binary:void 0}:s=jFe(n);let a=s.json;r._subtreeJson=a;let c;if(ri(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(d(a.tileMetadata)){let V=a.tileMetadata;c=a.propertyTables[V]}let l=[];if(d(a.contentMetadata)){let V=a.contentMetadata.length;for(let L=0;L0;u=u||m;for(let p=0;p>BigInt(61)),l=c%2===0?XS.encode2D(i,o,r):XS.encode2D(i,r,o),u=Sp.fromFacePositionLevel(c,BigInt(l),i),m,p;if(d(s)){let y=(a.maximumHeight+a.minimumHeight)/2;m=n<4?a.minimumHeight:y,p=n<4?y:a.maximumHeight}else m=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:Sp.getTokenFromId(u._cellId),minimumHeight:m,maximumHeight:p}}}}var xwe=new h,_we=new h,AY=new h,Twe=new $;function Rne(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,_we),s=$.unpack(e,3,Twe),a=Math.pow(2,-t),c=-1+(2*n+1)*a,l=-1+(2*i+1)*a,u=0,m=h.fromElements(a,a,1,xwe);d(o)&&(u=-1+(2*o+1)*a,m.z=a);let p=h.fromElements(c,l,u,AY);p=$.multiplyByVector(s,p,AY),p=h.add(p,r,AY);let y=$.clone(s);y=$.multiplyByScale(y,m,y);let f=new Array(12);return h.pack(p,f),$.pack(y,f,3),f}var Swe=new de;function Zne(e,t,n,i,o){if(t===0)return e.slice();let r=de.unpack(e,0,Swe),s=e[4],a=e[5],c=Math.pow(2,-t),l=c*r.width,u=W.negativePiToPi(r.west+n*l),m=W.negativePiToPi(u+l),p=c*r.height,y=W.negativePiToPi(r.south+i*p),f=W.negativePiToPi(y+p),x=s,_=a;if(d(o)){let C=c*(a-s);x+=o*C,_=x+C}return[u,y,m,f,x,_]}function Cwe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=Vne(i,o,n,!1,t),s=Cne(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},l=Gne(e,i.baseResource,c,t);return l.implicitTileset=i,l.implicitCoordinates=o,l}function Gne(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}_l.prototype.hasProperty=function(e,t){return!1};_l.prototype.getFeature=function(e){};_l.prototype.applyDebugSettings=function(e,t){};_l.prototype.applyStyle=function(e){};_l.prototype.update=function(e,t){};_l.prototype.isDestroyed=function(){return!1};_l.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};_l._deriveBoundingBox=Rne;_l._deriveBoundingRegion=Zne;_l._deriveBoundingVolumeS2=Lne;var BS=_l;var P1n=T(S(),1);var Ian=T(S(),1),Vwe={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},Tl=Object.freeze(Vwe);var V1n=T(S(),1);var tcn=T(S(),1);var Fan=T(S(),1);function YS(e,t){this._distance=t,this._normal=new Ene(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(YS.prototype,{distance:{get:function(){return this._distance},set:function(e){d(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){d(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});YS.fromPlane=function(e,t){return d(t)?(t.normal=e.normal,t.distance=e.distance):t=new YS(e.normal,e.distance),t};YS.clone=function(e,t){return d(t)?(t.normal=e.normal,t.distance=e.distance,t):new YS(e.normal,e.distance)};function Ene(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(Ene.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){d(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){d(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){d(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var vx=YS;function Ka(e){e=g(e,g.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=g(e.enabled,!0),this.modelMatrix=w.clone(g(e.modelMatrix,w.IDENTITY)),this.edgeColor=B.clone(g(e.edgeColor,B.WHITE)),this.edgeWidth=g(e.edgeWidth,0),this.planeAdded=new ye,this.planeRemoved=new ye,this._owner=void 0;let t=g(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?vne:Fne,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(d(n)){let i=n.length;for(let o=0;o0&&(r=qt.OUTSIDE);for(let s=0;s=r;)C=o[C-r];o.push(C),s[x]=_}_>jwe&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):_>qwe&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=_,t[a]=_):x===l?(l=_,t[a+1]=_):(u=_,t[a+2]=_),x=kne(i,c,l,u,p,y,f)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function kne(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,l=0,u=DY(e,t,a,c,l);if(u===0)return t;let m=0,p=o?1:0,y=r?1:0,f=DY(e,n,m,p,y);if(f===0)return n;let x=s?1:0,_=0,C=r?1:0,V=DY(e,i,x,_,C);if(V===0)return i;let L=u&f&V,Z,G,X;if(L&1)Z=0,G=1,X=2;else if(L&2)Z=0,X=1,G=2;else if(L&4)G=0,Z=1,X=2;else if(L&8)G=0,X=1,Z=2;else if(L&16)X=0,Z=1,G=2;else if(L&32)X=0,G=1,Z=2;else{let M=BY(u),b=BY(f),R=BY(V);return M>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}DM.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a1;)i>>=1,r.push(Dne(i));let s=new Wt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:st.LUMINANCE,sampler:new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR_MIPMAP_LINEAR,magnificationFilter:Ti.LINEAR})});return t.outlineTexture=s,s};function Dne(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function Bne(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),d(this._processError)){this._state=Eo.FAILED;let o=this._processError;this._processError=void 0,YM(this,o)}let t=this._textureErrors.pop();if(d(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===Eo.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=Eo.FAILED,YM(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=Eo.FAILED,YM(this,o)}return this._incrementallyLoadTextures?n:n&&i};function W9e(e,t,n,i,o,r,s,a){let l=t.accessors[n].bufferView;return Bi.getVertexBufferLoader({gltf:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:a,bufferViewId:l,draco:o,attributeSemantic:i,accessorId:n,asynchronous:e._asynchronous,loadBuffer:r,loadTypedArray:s})}function P9e(e,t,n,i,o,r,s){return Bi.getIndexBufferLoader({gltf:t,accessorId:n,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,draco:i,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function v9e(e,t,n){let i=Bi.getBufferViewLoader({gltf:t,bufferViewId:n,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(i),i}function zne(e,t,n){let i=t.byteOffset,o=yl(e,t),r=t.count,s=nd(t.type),a=t.componentType,c=Q.getSizeInBytes(a),l=c*s,u=r*s;if(o===l)return n=new Uint8Array(n),Q.createArrayBufferView(a,n.buffer,n.byteOffset+i,u);let m=Q.createTypedArray(a,u),p=new DataView(n.buffer),y=new Array(s),f=Gp(t.componentType);i=n.byteOffset+i;for(let x=0;x{d(o)&&d(o.attributes)&&d(o.attributes[u])?K9e(x,_,r,s):H9e(t,c,x,_,r,s)},x}function jne(e,t,n,i,o,r,s,a){let c=i.modelSemantic,l=c===Ct.POSITION,u=c===Ct.FEATURE_ID,m=l&&!r&&e._loadAttributesFor2D&&!a.scene3DOnly,p=e._loadForClassification&&u,y=e._loadAttributesAsTypedArray,f=!y,x=y||m||p,V=Qne(e,t,n,i,o,s?!1:f,s?!0:x,a),L=new Mx.AttributeLoadPlan(V);return L.loadBuffer=f,L.loadTypedArray=x,L}function z9e(e,t,n,i,o,r){let s=d(i.ROTATION),a=d(i.TRANSLATION)&&d(t.accessors[i.TRANSLATION].min)&&d(t.accessors[i.TRANSLATION].max),c=YY(e,Nr,o),l=c.modelSemantic,u=l===Nr.TRANSLATION||l===Nr.ROTATION||l===Nr.SCALE,m=l===Nr.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&u||!r.context.instancedArrays,y=!p,f=e._loadAttributesFor2D&&!r.scene3DOnly;return Qne(e,t,n,c,void 0,y,p||m&&(!a||f),r)}function J9e(e,t,n,i,o,r,s){let a=t.accessors[n],c=a.bufferView;if(!d(i)&&!d(c))return;let l=new c9e;l.count=a.count;let u=e._loadAttributesAsTypedArray,m=e._loadIndicesForWireframe&&!s.context.webgl2,p=e._loadForClassification&&o,f=!u,x=u||m||p,V=P9e(e,t,n,i,r?!1:f,r?!0:x,s),L=e._geometryLoaders.length;e._geometryLoaders.push(V);let Z=V.load();e._loaderPromises.push(Z),e._geometryCallbacks[L]=()=>{l.indexDatatype=V.indexDatatype,l.buffer=V.buffer,l.typedArray=V.typedArray};let G=new Mx.IndicesLoadPlan(l);return G.loadBuffer=f,G.loadTypedArray=x,G}function Xp(e,t,n,i,o,r){let s=gl.getImageIdFromTexture({gltf:t,textureId:n.index,supportedImageFormats:i});if(!d(s))return;let a=Bi.getTextureLoader({gltf:t,textureInfo:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:i,frameState:o,asynchronous:e._asynchronous}),c=gl.createModelTextureReader({textureInfo:n}),l=e._textureLoaders.length;e._textureLoaders.push(a);let u=a.load().catch(m=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw m;e._textureState=Eo.FAILED,e._textureErrors.push(m)}});return e._texturesPromises.push(u),e._textureCallbacks[l]=()=>{c.texture=a.texture,d(r)&&(c.texture.sampler=r)},c}function Q9e(e,t,n,i,o){let r=new R9e,s=g(n.extensions,g.EMPTY_OBJECT),a=s.KHR_materials_pbrSpecularGlossiness,c=n.pbrMetallicRoughness;if(r.unlit=d(s.KHR_materials_unlit),d(a)){let l=new L9e;r.specularGlossiness=l,d(a.diffuseTexture)&&(l.diffuseTexture=Xp(e,t,a.diffuseTexture,i,o)),d(a.specularGlossinessTexture)&&d(a.specularGlossinessTexture)&&(l.specularGlossinessTexture=Xp(e,t,a.specularGlossinessTexture,i,o)),l.diffuseFactor=ou(se,a.diffuseFactor),l.specularFactor=ou(h,a.specularFactor),l.glossinessFactor=a.glossinessFactor,r.pbrSpecularGlossiness=a}else if(d(c)){let l=new V9e;d(c.baseColorTexture)&&(l.baseColorTexture=Xp(e,t,c.baseColorTexture,i,o)),d(c.metallicRoughnessTexture)&&(l.metallicRoughnessTexture=Xp(e,t,c.metallicRoughnessTexture,i,o)),l.baseColorFactor=ou(se,c.baseColorFactor),l.metallicFactor=c.metallicFactor,l.roughnessFactor=c.roughnessFactor,r.metallicRoughness=l}return d(n.emissiveTexture)&&(r.emissiveTexture=Xp(e,t,n.emissiveTexture,i,o)),d(n.normalTexture)&&!e._loadForClassification&&(r.normalTexture=Xp(e,t,n.normalTexture,i,o)),d(n.occlusionTexture)&&(r.occlusionTexture=Xp(e,t,n.occlusionTexture,i,o)),r.emissiveFactor=ou(h,n.emissiveFactor),r.alphaMode=n.alphaMode,r.alphaCutoff=n.alphaCutoff,r.doubleSided=n.doubleSided,r}function qne(e,t){let n=new One;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function $ne(e,t,n,i){let o=new One,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=Jne(r.attribute),o.positionalLabel=i,o}function eie(e,t){let n=new Hne;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function tie(e,t,n,i){let o=new Hne,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=g(r.constant,0);let s=g(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function j9e(e,t,n,i,o,r){let s=new Kne;s.featureCount=n.featureCount,s.nullFeatureId=n.nullFeatureId,s.propertyTableId=n.propertyTable,s.label=n.label,s.positionalLabel=r;let a=n.texture;s.textureReader=Xp(e,t,a,i,o,dn.NEAREST);let l=(d(a.channels)?a.channels:[0]).map(function(u){return"rgba".charAt(u)}).join("");return s.textureReader.channels=l,s}function q9e(e,t,n,i,o,r,s,a){let c=new Kne,l=n.featureIds,u=l.texture;return c.featureCount=s,c.propertyTableId=i,c.textureReader=Xp(e,t,u,o,r,dn.NEAREST),c.textureReader.channels=l.channels,c.positionalLabel=a,c}function $9e(e,t,n,i,o,r){let s=new l9e,a=void 0,c=!1;for(let l in n)if(n.hasOwnProperty(l)){let u=n[l],m=YY(e,Ct,l),p=jne(e,t,u,m,a,c,i,r);s.attributes.push(p.attribute),o.attributePlans.push(p)}return s}function eAe(e,t,n,i,o,r){let s=new d9e,a=new Mx(s);e._primitiveLoadPlans.push(a);let c=n.material;d(c)&&(s.material=Q9e(e,t,t.materials[c],o,r));let l=g(n.extensions,g.EMPTY_OBJECT),u=!1,m=l.CESIUM_primitive_outline;e._loadPrimitiveOutline&&d(m)&&(u=!0,a.needsOutlines=!0,a.outlineIndices=tAe(e,t,m,a));let p=e._loadForClassification,y=l.KHR_draco_mesh_compression,f=!1,x=n.attributes;if(d(x)){for(let P in x)if(x.hasOwnProperty(P)){let v=x[P],A=YY(e,Ct,P),M=A.modelSemantic;if(p&&!O9e(M))continue;M===Ct.FEATURE_ID&&(f=!0);let b=jne(e,t,v,A,y,i,u,r);a.attributePlans.push(b),s.attributes.push(b.attribute)}}let _=n.targets;if(d(_)&&!p){let P=_.length;for(let v=0;v=s.clientWidth)l=!0;else{if(L.x>s.clientWidth*.5){a.width=L.x,c.frustum.right=p.x-C,Qa=lX(r,n,c,Qa),ga.clipToGLWindowCoordinates(a,Qa,KY),a.x+=L.x,c.position.x=-c.position.x;let Z=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-Z,Qa=lX(r,n,c,Qa),ga.clipToGLWindowCoordinates(a,Qa,HY)}else{a.x+=L.x,a.width-=L.x,c.frustum.left=-p.x-C,Qa=lX(r,n,c,Qa),ga.clipToGLWindowCoordinates(a,Qa,KY),a.x=a.x-a.width,c.position.x=-c.position.x;let Z=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-Z,Qa=lX(r,n,c,Qa),ga.clipToGLWindowCoordinates(a,Qa,HY)}h.clone(y,c.position),c.frustum=f.clone(),i=D.clone(KY,i),(i.x<0||i.x>s.clientWidth)&&(i.x=HY.x)}}if(o.mode!==ie.SCENE2D||l){if(Qa=lX(r,n,c,Qa),Qa.z<0&&!(c.frustum instanceof en)&&!(c.frustum instanceof yr))return;i=ga.clipToGLWindowCoordinates(a,Qa,i)}return i.y=s.clientHeight-i.y,i};ga.wgs84ToDrawingBufferCoordinates=function(e,t,n){if(n=ga.wgs84ToWindowCoordinates(e,t,n),!!d(n))return ga.transformWindowToDrawingBuffer(e,n,n)};var Pp=new h,NAe=new he;ga.computeActualWgs84Position=function(e,t,n){let i=e.mode;if(i===ie.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,NAe);if(!d(r))return;if(o.project(r,Pp),i===ie.COLUMBUS_VIEW)return h.fromElements(Pp.z,Pp.x,Pp.y,n);if(i===ie.SCENE2D)return h.fromElements(0,Pp.x,Pp.y,n);let s=e.morphTime;return h.fromElements(W.lerp(Pp.z,t.x,s),W.lerp(Pp.x,t.y,s),W.lerp(Pp.y,t.z,s),n)};var aie=new h,cie=new h,lie=new w;ga.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,aie),w.computeViewportTransformation(e,0,1,lie),w.multiplyByPoint(lie,aie,cie),D.fromCartesian3(cie,n)};ga.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return D.fromElements(t.x*o,t.y*r,n)};var UAe=new se,die=new se;ga.drawingBufferToWgs84Coordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let y=n*r.log2FarDepthFromNearPlusOne,f=Math.pow(2,y)-1;n=c*(1-a/(f+a))/(c-a)}let l=e.view.passState.viewport,u=se.clone(se.UNIT_W,UAe);u.x=(t.x-l.x)/l.width*2-1,u.y=(t.y-l.y)/l.height*2-1,u.z=n*2-1,u.w=1;let m,p=e.camera.frustum;if(d(p.fovy)){m=w.multiplyByVector(r.inverseViewProjection,u,die);let y=1/m.w;h.multiplyByScalar(m,y,m)}else{let y=p.offCenterFrustum;d(y)&&(p=y),m=die,m.x=(u.x*(p.right-p.left)+p.left+p.right)*.5,m.y=(u.y*(p.top-p.bottom)+p.bottom+p.top)*.5,m.z=(u.z*(a-c)-a-c)*.5,m.w=1,m=w.multiplyByVector(r.inverseView,m,m)}return h.fromCartesian4(m,i)};var Ji=ga;var oun=T(S(),1),kAe={LEFT:-1,NONE:0,RIGHT:1},vc=Object.freeze(kAe);var $un=T(S(),1);var dun=T(S(),1);var HS={};HS._deprecationWarning=zr;var vp=Uint32Array.BYTES_PER_ELEMENT;HS.parse=function(e,t){let n=g(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=vp;let r=o.getUint32(t,!0);if(r!==1)throw new me(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=vp;let s=o.getUint32(t,!0);t+=vp;let a=o.getUint32(t,!0);t+=vp;let c=o.getUint32(t,!0);t+=vp;let l=o.getUint32(t,!0);t+=vp;let u=o.getUint32(t,!0);t+=vp;let m;l>=570425344?(t-=vp*2,m=a,l=c,u=0,a=0,c=0,HS._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):u>=570425344&&(t-=vp,m=l,l=a,u=c,a=0,c=0,HS._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:g(m,0)}:(p=Go(i,t,a),t+=a);let y=new Uint8Array(e,t,c);t+=c;let f,x;l>0&&(f=Go(i,t,l),t+=l,u>0&&(x=new Uint8Array(e,t,u),x=new Uint8Array(x),t+=u));let _=n+s-t;if(_===0)throw new me("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,_):(HS._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+_))),{batchLength:m,featureTableJson:p,featureTableBinary:y,batchTableJson:f,batchTableBinary:x,gltf:C}};var dX=HS;var pun=T(S(),1);function uX(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function uie(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return d(a)||(a=Q.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function DAe(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return d(r)||(r=Q.createTypedArray(n,i),o[t]=r),r}uX.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(d(i))return d(i.byteOffset)?(t=g(t,Q.UNSIGNED_INT),n=g(n,1),uie(this,e,t,n,1,i.byteOffset)):i};uX.prototype.hasProperty=function(e){return d(this.json[e])};uX.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(d(i))return d(i.byteOffset)?(d(i.componentType)&&(t=Q.fromName(i.componentType)),uie(this,e,t,n,this.featuresLength,i.byteOffset)):DAe(this,e,t,i)};uX.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!d(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a0&&(f=Go(i,t,l),t+=l,u>0&&(x=new Uint8Array(e,t,u),x=new Uint8Array(x),t+=u));let _=n+s-t;if(_===0)throw new me("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,_):(HM._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+_))),{gltfFormat:m,featureTableJson:p,featureTableBinary:y,batchTableJson:f,batchTableBinary:x,gltf:C}};var pX=HM;var wp={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},zM=Ft.Attribute,lMe=Ft.FeatureIdAttribute,yie=Ft.Instances;function Ap(e){e=g(e,g.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=g(e.byteOffset,0),r=g(e.releaseGltfJson,!1),s=g(e.asynchronous,!0),a=g(e.incrementallyLoadTextures,!0),c=g(e.upAxis,Zo.Y),l=g(e.forwardAxis,Zo.X),u=g(e.loadAttributesAsTypedArray,!1),m=g(e.loadIndicesForWireframe,!1),p=g(e.loadPrimitiveOutline,!0);i=d(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=l,this._loadAttributesAsTypedArray=u,this._loadIndicesForWireframe=m,this._loadPrimitiveOutline=p,this._state=wp.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=w.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}d(Object.create)&&(Ap.prototype=Object.create(oo.prototype),Ap.prototype.constructor=Ap);Object.defineProperties(Ap.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Ap.prototype.load=function(){if(d(this._promise))return this._promise;let e=pX.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Zm(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!d(a))throw new me("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",Q.FLOAT,3);d(c)&&(this._transform=w.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let l={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let m=hl(e.gltf);m=m.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:m});l.gltfResource=p,l.baseResource=p}else l.gltfResource=this._i3dmResource,l.typedArray=e.gltf;let u=new Ip(l);return this._gltfLoader=u,this._state=wp.LOADING,this._promise=u.load().then(()=>{if(!this.isDestroyed())return this._state=wp.PROCESSING,this}).catch(m=>{if(!this.isDestroyed())throw dMe(this,m)}),this._promise};function dMe(e,t){e.unload(),e._state=wp.FAILED;let n="Failed to load i3dm";return e.getError(n,t)}Ap.prototype.process=function(e){if(this._state===wp.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===wp.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=w.multiplyTransformation(this._transform,i.transform,i.transform),hMe(this,i,e),uMe(this,i),this._components=i,this._arrayBuffer=void 0,this._state=wp.READY,!0};function uMe(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(d(n.json))o=Fp({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new Pc({name:Tm.BATCH_TABLE_CLASS_NAME,count:i});o=new ya({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var JM=new h,QY=new Array(4),mMe=new w;function hMe(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",Q.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,l=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),u=pMe(o,r),m;c&&(m=new Float32Array(4*r));let p;l&&(p=new Float32Array(3*r));let y=new Float32Array(r),f=h.unpackArray(u),x=new h,_=new h,C=new h,V=new h,L=new $,Z=new Ae,G=new Array(4),X=new h,P=new Array(3),v=new w;if(!d(s)||h.equals(h.unpack(s),h.ZERO)){let k=ce.fromPoints(f);for(i=0;i0&&(k.instances=Y?fMe(A):A,Y=!0)}}function fMe(e){let t=new yie;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o=n[t]){if(t+1=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o=n[o]&&e=0&&!(e>=n[o]&&en&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};zS.prototype.clampTime=function(e){let t=this.times;return W.clamp(e,t[0],t[t.length-1])};var ro=zS;function JS(e){this._value=e,this._valueType=ro.getPointType(e)}Object.defineProperties(JS.prototype,{value:{get:function(){return this._value}}});JS.prototype.findTimeInterval=function(e){};JS.prototype.wrapTime=function(e){return 0};JS.prototype.clampTime=function(e){return 0};JS.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var yX=JS;var vhn=T(S(),1);var Thn=T(S(),1);function QS(e){e=g(e,g.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=ro.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(QS.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});QS.prototype.findTimeInterval=ro.prototype.findTimeInterval;QS.prototype.wrapTime=ro.prototype.wrapTime;QS.prototype.clampTime=ro.prototype.clampTime;QS.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(d(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var Nb=QS;var Vhn=T(S(),1);var gie={};gie.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a=0;--a)s[a]=h.subtract(r[a],h.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var jS=gie;var xie=[],_ie=[],Tie=[],Sie=[];function _Me(e,t,n){let i=xie,o=Tie,r=_ie,s=Sie;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(d(c)||(c=s[0]=new h),h.clone(t,c),a=1;a0&&e.afterRender.push(a._raiseStartEvent)),a.loop===Tl.REPEAT)y=y-Math.floor(y);else if(a.loop===Tl.MIRRORED_REPEAT){let C=Math.floor(y),V=y-C;y=C%2===1?1-V:V}a.reverse&&(y=1-y);let _=y*l*a.multiplier;_=W.clamp(_,a.localStartTime,a.localStopTime),a.animate(_),a.update.numberOfListeners>0&&(a._updateEventTime=_,e.afterRender.push(a._raiseUpdateEvent)),i=!0,x||(a._state=Gm.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&QM.push(a))}}n=QM.length;for(let s=0;ss||o<-s&&r>-s}function tC(e,t){if(!d(t))return;let n=Np.clone(t),i=nt.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function DMe(e){tC(e,e._originalCommand),tC(e,e._translucentCommand),tC(e,e._skipLodBackfaceCommand),tC(e,e._skipLodStencilCommand),tC(e,e._silhouetteModelCommand),tC(e,e._silhouetteColorCommand)}function BMe(e){let t=nt.shallowClone(e);t.pass=Re.TRANSLUCENT;let n=Oe(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=un.ALPHA_BLEND,t.renderState=De.fromCache(n),t}function YMe(e,t){let n=t._silhouetteId%255,i=nt.shallowClone(e),o=Oe(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:ne.ALWAYS,backFunction:ne.ALWAYS,reference:n,mask:-1,frontOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.REPLACE},backOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=De.fromCache(o),i}function OMe(e,t){let n=t._silhouetteId%255,i=nt.shallowClone(e),o=Oe(e.renderState,!0);o.cull.enabled=!1,(e.pass===Re.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=Re.TRANSLUCENT,o.depthMask=!1,o.blending=un.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:ne.NOTEQUAL,backFunction:ne.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.KEEP},backOperation:{fail:ne.KEEP,zFail:ne.KEEP,zPass:ne.KEEP}};let s=Oe(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=De.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function KMe(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=HMe(o);if(r!==s){let a=zMe(r),c=Oe(o.renderState,!0);c.stencilTest.reference=a,o.renderState=De.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function HMe(e){return(e.renderState.stencilTest.reference&wt.SKIP_LOD_MASK)>>>wt.SKIP_LOD_BIT_SHIFT}function zMe(e){return wt.CESIUM_3D_TILE_MASK|e< 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var Xie={name:"ModelClippingPlanesPipelineStage"},oNe=new D;Xie.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,Le.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,Le.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,Le.FRAGMENT),ss.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,Le.FRAGMENT);let s=ss.getTextureResolution(i,o,oNe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,Le.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,Le.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",Le.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",Le.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",Le.FRAGMENT),r.addFragmentLines(MX);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=B.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=xt(a,e.uniformMap)};var NX=Xie;var U0n=T(S(),1);function Iie(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(Iie.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){d(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var UX=Iie;var Pbn=T(S(),1);var fbn=T(S(),1);var D0n=T(S(),1),kX=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var Y0n=T(S(),1),DX=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var K0n=T(S(),1),BX=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var $M=new w,rNe=new w,sNe=new w,Pie={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:Mie,_transformsToTypedArray:sO};Pie.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(kX);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,l=n.mode!==ie.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,u=[];TNe(e,n,i,u,l),VNe(e,n,i,u);let m={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,Le.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",Le.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",Le.VERTEX),m.u_instance_modifiedModelView=function(){let p=w.multiplyTransformation(s.modelMatrix,a.components.transform,$M);return l?w.multiplyTransformation(n.context.uniformState.view3D,p,$M):(n.mode!==ie.SCENE3D&&(p=vt.basisTo2D(n.mapProjection,p,$M)),w.multiplyTransformation(n.context.uniformState.view,p,$M))},m.u_instance_nodeTransform=function(){return w.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,rNe)},r.addVertexLines(BX)):r.addVertexLines(DX),l){r.addDefine("USE_2D_INSTANCING",void 0,Le.VERTEX),r.addUniform("mat4","u_modelView2D",Le.VERTEX);let p=n.context,y=w.fromTranslation(c.instancingReferencePoint2D,new w);m.u_modelView2D=function(){return w.multiplyTransformation(p.uniformState.view,y,sNe)}}e.uniformMap=xt(m,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,u)};var YX=new w,aNe=new h;function cNe(e,t,n,i,o){let r=w.multiplyTransformation(t,e,YX);return r=w.multiplyTransformation(r,n,YX),o=vt.basisTo2D(i.mapProjection,r,o),o}function lNe(e,t,n,i,o){let r=w.fromTranslation(e,YX),s=w.multiplyTransformation(t,r,YX);s=w.multiplyTransformation(s,n,YX);let a=w.getTranslation(s,aNe);return o=Ji.computeActualWgs84Position(i,a,o),o}function vie(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=w.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=w.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=w.clone(o.computedModelMatrix,t),t=w.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=w.clone(w.IDENTITY,n))}var Fie=new w,wie=new w,dNe=new w,uNe=new h;function mNe(e,t,n,i){let o=Fie,r=wie;vie(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let l=0;l=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:an.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var OX=Pie;var xbn=T(S(),1);var cO={};cO.name="ModelMatrixUpdateStage";cO.update=function(e,t,n){let i=n.mode!==ie.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Nie(e,t,o,e.transformToRoot),e._transformDirty=!1}};function Nie(e,t,n,i){let o;i=w.multiplyTransformation(i,e.transform,new w),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=xt(o,e.uniformMap)};var QX=Yie;var jbn=T(S(),1);var Oie={name:"ClassificationPipelineStage"};Oie.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,Le.BOTH);let o=e.runtimePrimitive;d(o.batchLengths)||RNe(t,o)};function RNe(e,t){let n=nn.getAttributeBySemantic(e,Ct.POSITION);if(!d(n))throw new me("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=d(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=nn.getAttributeBySemantic(e,Ct.FEATURE_ID,0);if(!d(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let l=[],u=[0],m=r?i[0]:0,p=c[m],y=0;for(let x=1;xwNe(i,t,n)):[]}function wNe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=nn,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),l=new Array(c.length);for(let u=0;uMNe(n,t)):[]}function MNe(e,t){let{sanitizeGlslIdentifier:n}=nn,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;au),n.addStructField(Vi.STRUCT_ID_METADATA_FS,r,o);let p=`attributes.texCoord_${a}`,y=`texture(${m}, ${p}).${c}`,f=s.unpackInShader(y),x=$ie({valueExpression:f,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:Le.FRAGMENT,property:s}),_=`metadata.${o} = ${x};`;n.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_FS,[_])}function Qie(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=qie(Vi.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Vi.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_FS,s),Le.includesVertexShader(r)&&(e.addStructField(Vi.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function jie(e,t){let{propertyStatistics:n}=t;if(!d(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===Ot.ENUM)return;let s=Vi.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=qie(s,n,a,r),l=`${r}MetadataStatistics`;e.addStructField(Vi.STRUCT_ID_METADATA_STATISTICS_FS,l,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_FS,c),Le.includesVertexShader(t.shaderDestination)&&(e.addStructField(Vi.STRUCT_ID_METADATA_STATISTICS_VS,l,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function qie(e,t,n,i){function o(r){let s=t[r.specName];if(d(s))return`${n}.${r.shaderName} = ${i}(${s});`}return d(t)?e.map(o).filter(d):[]}function $ie(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:l}=e;s.addUniform(c,o,l),s.addUniform(c,r,l);let{offset:u,scale:m}=n;return a[o]=()=>u,a[r]=()=>m,`czm_valueTransform(${o}, ${r}, ${t})`}var ru=Vi;var Hyn=T(S(),1),HNe={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},Yb=Object.freeze(HNe);var Ks={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:It};Ks.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;d(a)&&(e.lightingOptions.lightingModel=a),c===Yb.TRANSLUCENT?r.pass=Re.TRANSLUCENT:c===Yb.OPAQUE&&(r.pass=void 0);let l=t5e(s,t);if(!l.customShaderEnabled)return;if(r5e(i,s,l),l.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,Le.BOTH),d(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,Le.VERTEX),d(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,Le.FRAGMENT);let p=Up.getDefineName(s.mode);i.addDefine(p,void 0,Le.FRAGMENT)}let u=s.uniforms;for(let p in u)if(u.hasOwnProperty(p)){let y=u[p];i.addUniform(y.type,p)}let m=s.varyings;for(let p in m)if(m.hasOwnProperty(p)){let y=m[p];i.addVarying(y,p)}e.uniformMap=xt(e.uniformMap,s.uniformMap)};function zNe(e){let t={};for(let n=0;n1?(f=e.attributeIndex,e.attributeIndex+=p):y&&!c?f=0:f=e.attributeIndex++,m5e(e,m,f,p,s,a)}T5e(i,t.attributes),t.primitiveType===we.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(uI),i.addFragmentLines(dI)};function m5e(e,t,n,i,o,r){let s=e.shaderBuilder,a=nn.getAttributeInfo(t),c=o&&!r;i>1?p5e(e,t,n,i):f5e(e,t,n,c),y5e(s,a,c),b5e(s,a),d(t.semantic)&&h5e(s,t),g5e(s,a,o),x5e(s,a,c),_5e(s,a)}function h5e(e,t){let n=t.semantic,i=t.setIndex;switch(n){case Ct.NORMAL:e.addDefine("HAS_NORMALS");break;case Ct.TANGENT:e.addDefine("HAS_TANGENTS");break;case Ct.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case Ct.TEXCOORD:case Ct.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function f5e(e,t,n,i){let o=t.quantization,r,s;d(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.semantic,c=t.setIndex;a===Ct.FEATURE_ID&&c>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=c+1);let l=a===Ct.POSITION,u=l?0:n,m=an.getNumberOfComponents(r),p={index:u,value:d(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:m,componentDatatype:s,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!l||!i)return;let y=e.runtimePrimitive.positionBuffer2D,f={index:n,vertexBuffer:y,count:t.count,componentsPerAttribute:m,componentDatatype:Q.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(f)}function p5e(e,t,n,i){let o=t.quantization,r,s;d(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.normalized,l=an.getNumberOfComponents(r)/i,u=Q.getSizeInBytes(s),m=l*u,p=t.byteStride;for(let y=0;y0,l=!d(a)&&c;if(d(r)&&!l){let x=k5e(a),_=D5e(r,x);B5e(i,_);let V=Y5e(_).indexOf("normalMC")>=0,L=nn.getAttributeBySemantic(t,Ct.NORMAL);if(V&&!L)throw new me("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,Le.VERTEX),_.styleTranslucent&&(e.alphaOptions.pass=Re.TRANSLUCENT)}let u=o.pointCloudShading;u.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,Le.VERTEX),u.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,Le.VERTEX);let m,p,y;nr.is3DTiles(o.type)&&(p=!0,m=o.content,y=m.tile.refine===Wo.ADD),i.addUniform("vec4","model_pointCloudParameters",Le.VERTEX),i.addVertexLines(TI);let f=e.uniformMap;f.model_pointCloudParameters=function(){let x=A5e,_=1;p&&(_=y?5:m.tileset.memoryAdjustedScreenSpaceError),x.x=g(u.maximumAttenuation,_),x.x*=n.pixelRatio;let C=M5e(e,t,u,m);x.y=C*u.geometricErrorScale;let V=n.context,L=n.camera.frustum,Z;return n.mode===ie.SCENE2D||L instanceof en?Z=Number.POSITIVE_INFINITY:Z=V.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=Z,p&&(x.w=m.tileset.timeSinceLoad),x}};var uoe=new h;function M5e(e,t,n,i){if(d(i)){let u=i.tile.geometricError;if(u>0)return u}if(d(n.baseResolution))return n.baseResolution;let o=nn.getAttributeBySemantic(t,Ct.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,uoe);a=w.multiplyByPointAsVector(s,a,uoe);let c=a.x*a.y*a.z;return W.cbrt(c/r)}var N5e={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},U5e={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function k5e(e){let t=Oe(U5e);if(!d(e))return t;for(let n=0;n0,m=d(i.skin),p=d(r),f=!(p&&d(r.fragmentShaderText))||r.mode!==Up.REPLACE_MATERIAL,x=nn.hasQuantizedAttributes(n.attributes),_=o.debugWireframe&&we.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),C=o.pointCloudShading,V=d(C)&&C.attenuation,L=d(C)&&C.backFaceCulling,Z=n.primitiveType===we.POINTS&&(d(s)||V||L),G=o._enableShowOutline&&d(n.outlineCoordinates),X=uUe(o,i,n),P=d(o.classificationType);l&&t.push(ZI),t.push(hI),_&&t.push(XI),P&&t.push(jX),u&&t.push(xI),m&&t.push(EI),Z&&t.push(SI),x&&t.push(lI),f&&t.push(yI),t.push(Bb),t.push(ru),X.hasPropertyTable&&(t.push(Ob),t.push(QX),t.push(eI)),p&&t.push(aI),t.push(pI),o.allowPicking&&t.push(_I),G&&t.push(LI),t.push(JX),t.push(RI)};function uUe(e,t,n){let i;return d(t.instances)&&(i=nn.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),d(i))?{hasFeatureIds:!0,hasPropertyTable:d(i.propertyTableId)}:(i=nn.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),d(i)?{hasFeatureIds:!0,hasPropertyTable:d(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var II=Voe;var NTn=T(S(),1);function pO(e){e=g(e,g.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],mUe(this)}Object.defineProperties(pO.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function mUe(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var tN={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};tN.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,Le.FRAGMENT),i.addFragmentLines(MI);let o={};i.addUniform("float",tN.SPLIT_DIRECTION_UNIFORM_NAME,Le.FRAGMENT),o[tN.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=xt(o,e.uniformMap)};var NI=tN;var fSn=T(S(),1);function pUe(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Oe(e.uniformMap),this.alphaOptions=Oe(e.alphaOptions),this.renderStateOptions=Oe(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var UI=pUe;var RSn=T(S(),1);var gSn=T(S(),1);function bUe(e){e=g(e,g.EMPTY_OBJECT),this.lightingModel=g(e.lightingModel,Hh.UNLIT)}var kI=bUe;function yUe(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Oe(e.uniformMap),this.alphaOptions=Oe(e.alphaOptions),this.renderStateOptions=Oe(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=d(n.indices)?n.indices.count:nn.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=nn.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=ce.fromCornerPoints(this.positionMin,this.positionMax,new ce),this.lightingOptions=new kI,this.pickId=void 0}var DI=yUe;function id(e){e=g(e,g.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=w.clone(w.IDENTITY),this._computedModelMatrix2D=w.clone(w.IDENTITY),this._axisCorrectionMatrix=nn.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new w),this._runtimeArticulations={},gUe(this)}Object.defineProperties(id.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function gUe(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;Roe(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let V=0;V0&&(m=Go(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let y=new Zm(l,u),f=y.getGlobalProperty("POINTS_LENGTH");if(y.featuresLength=f,!d(f))throw new me("Feature table global property: POINTS_LENGTH must be defined");let x=y.getGlobalProperty("RTC_CENTER",Q.FLOAT,3);d(x)&&(x=h.unpack(x));let _=PUe(y,m);if(_.rtcCenter=x,_.pointsLength=f,!_.hasPositions){let C=vUe(y);_.positions=C,_.hasPositions=_.hasPositions||d(C)}if(!_.hasPositions)throw new me("Either POSITION or POSITION_QUANTIZED must be defined.");if(!_.hasNormals){let C=wUe(y);_.normals=C,_.hasNormals=_.hasNormals||d(C)}if(!_.hasColors){let C=FUe(y);_.colors=C,_.hasColors=_.hasColors||d(C),_.hasConstantColor=d(_.constantColor),_.isTranslucent=d(C)&&C.isTranslucent}if(!_.hasBatchIds){let C=AUe(y);_.batchIds=C,_.hasBatchIds=_.hasBatchIds||d(C)}if(_.hasBatchIds){let C=y.getGlobalProperty("BATCH_LENGTH");if(!d(C))throw new me("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");_.batchLength=C}return d(p)&&(p=new Uint8Array(p),_.batchTableJson=m,_.batchTableBinary=p),_};function PUe(e,t){let n=e.json,i,o,r,s=d(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=d(t)&&d(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;d(a)&&(r=a.properties);let c,l,u,m,p;if(d(s)){o=s.properties;let f=s.byteOffset,x=s.byteLength;if(!d(o)||!d(f)||!d(x))throw new me("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(f,f+x),c=d(o.POSITION),l=d(o.RGB)||d(o.RGBA),u=d(o.NORMAL),m=d(o.BATCH_ID),p=d(o.RGBA)}let y;return d(i)&&(y={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:xt(o,r),dequantizeInShader:!0}),{draco:y,hasPositions:c,hasColors:l,isTranslucent:p,hasNormals:u,hasBatchIds:m}}function vUe(e){let t=e.json,n;if(d(t.POSITION))return n=e.getPropertyArray("POSITION",Q.FLOAT,3),{name:Ct.POSITION,semantic:Ct.POSITION,typedArray:n,isQuantized:!1,componentDatatype:Q.FLOAT,type:an.VEC3};if(d(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",Q.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Q.FLOAT,3);if(!d(i))throw new me("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65536-1,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Q.FLOAT,3);if(!d(r))throw new me("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:Ct.POSITION,semantic:Ct.POSITION,typedArray:n,isQuantized:!0,componentDatatype:Q.FLOAT,type:an.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:Q.UNSIGNED_SHORT,quantizedType:an.VEC3}}}function FUe(e){let t=e.json,n;if(d(t.RGBA))return n=e.getPropertyArray("RGBA",Q.UNSIGNED_BYTE,4),{name:Ct.COLOR,semantic:Ct.COLOR,setIndex:0,typedArray:n,componentDatatype:Q.UNSIGNED_BYTE,type:an.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(d(t.RGB))return n=e.getPropertyArray("RGB",Q.UNSIGNED_BYTE,3),{name:"COLOR",semantic:Ct.COLOR,setIndex:0,typedArray:n,componentDatatype:Q.UNSIGNED_BYTE,type:an.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(d(t.RGB565))return n=e.getPropertyArray("RGB565",Q.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Ct.COLOR,setIndex:0,typedArray:n,componentDatatype:Q.FLOAT,type:an.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(d(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",Q.UNSIGNED_BYTE,4),o=i[3],r=B.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:Ct.COLOR,semantic:Ct.COLOR,setIndex:0,constantColor:r,componentDatatype:Q.FLOAT,type:an.VEC4,isQuantized:!1,isTranslucent:s}}}function wUe(e){let t=e.json,n;if(d(t.NORMAL))return n=e.getPropertyArray("NORMAL",Q.FLOAT,3),{name:Ct.NORMAL,semantic:Ct.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:Q.FLOAT,type:an.VEC3};if(d(t.NORMAL_OCT16P)){n=e.getPropertyArray("NORMAL_OCT16P",Q.UNSIGNED_BYTE,2);let i=8;return{name:Ct.NORMAL,semantic:Ct.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<0&&rke(e,a,m,t),d(n.rtcCenter)&&(u.transform=w.multiplyByTranslation(u.transform,n.rtcCenter,u.transform));let p=n.positions;d(p)&&p.isQuantized&&(u.transform=w.multiplyByTranslation(u.transform,p.quantizedVolumeOffset,u.transform)),e._components=u,e._parsedContent=void 0,e._arrayBuffer=void 0}function rke(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s0){e._errorEvent.raiseEvent(t);return}console.log(t)}function ske(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=d(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return woe(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===nr.GLTF&&It("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(ss.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},lightColor:{get:function(){return this._lightColor},set:function(e){d(e)!==d(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});To.prototype.getNode=function(e){return this._nodesByName[e]};To.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};To.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};To.prototype.makeStyleDirty=function(){this._styleDirty=!0};To.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var cke=new w,lke=new $,dke=new w;To.prototype.update=function(e){let t=!1;try{t=uke(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")bO(this,n);else{let i=nn.getError("model",this._resource,n);bO(this,i)}}if(mke(this,e),hke(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!d(n)){if(this._loader.isUnloaded())return;let r=nn.getError("model",this._resource,new me("Failed to load model."));bO(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;d(i)&&i.propertyTableCount>0&&ske(this,i);let o=new BI({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ie.MORPHING)){if(fke(this),pke(this),bke(this,e),yke(this),gke(this,e),xke(this,e),_ke(this,e),Tke(this,e),this._defaultTexture=e.context.defaultTexture,Ske(this,e),Cke(this,e),Vke(this),Lke(this,e),Gke(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this)});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this)),Zke(this),Eke(this,e),Xke(this),Ike(this,e)}};function uke(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function mke(e,t){d(e._customShader)&&e._customShader.update(t)}function hke(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function fke(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;d(n)&&n.propertyTableCount>0&&(e.featureTableId=ake(t,e),e._styleDirty=!0,e.resetDrawCommands())}function pke(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function bke(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r=i&&r<=o}function Fke(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r0&&e.alpha<1};To.prototype.isInvisible=function(){let e=this.color;return d(e)&&e.alpha===0};function Aoe(e){return e.context.stencilBuffer}To.prototype.hasSilhouette=function(e){return Aoe(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!d(this._classificationType)};To.prototype.hasSkipLevelOfDetail=function(e){if(!nr.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};To.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return d(e)&&e.enabled&&e.length!==0};To.prototype.isDestroyed=function(){return!1};To.prototype.destroy=function(){let e=this._loader;d(e)&&e.destroy();let t=this._featureTables;if(d(t)){let i=t.length;for(let o=0;o0,i=d(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=d(i)&&d(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),Foe(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function HI(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var Xm=To;function Ls(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Ls.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return d(t)&&d(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(d(t)&&d(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Ls.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};Ls.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return d(i)?n.featureTables[i].hasProperty(e,t):!1};Ls.prototype.applyDebugSettings=function(e,t){t=e?t:B.WHITE,this.featuresLength===0?this._model.color=t:d(this.batchTable)&&this.batchTable.setAllColor(t)};Ls.prototype.applyStyle=function(e){this._model.style=e};Ls.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,d(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0),d(o)&&d(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:Tl.REPEAT}),this._ready=!0)};Ls.prototype.isDestroyed=function(){return!1};Ls.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};Ls.fromGltf=async function(e,t,n,i){let o=new Ls(e,t,n),s=zI(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await Xm.fromGltfAsync(s);return o._model=c,o};Ls.fromB3dm=async function(e,t,n,i,o){let r=new Ls(e,t,n),a=zI(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let l=await Xm.fromB3dm(a);return r._model=l,r};Ls.fromI3dm=async function(e,t,n,i,o){let r=new Ls(e,t,n),a=zI(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Xm.fromI3dm(a);return r._model=c,r};Ls.fromPnts=async function(e,t,n,i,o){let r=new Ls(e,t,n),a=zI(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Xm.fromPnts(a);return r._model=c,r};Ls.fromGeoJson=async function(e,t,n,i){let o=new Ls(e,t,n),s=zI(e,t,o,{geoJson:i,resource:n}),a=await Xm.fromGeoJson(s);return o._model=a,o};function zI(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:Re.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return xt(i,o)}var Jh=Ls;var w1n=T(S(),1);function Im(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Im.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Im.fromJson=function(e,t,n,i){let o=new Im(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};Im.prototype.hasProperty=function(e,t){return!1};Im.prototype.getFeature=function(e){};Im.prototype.applyDebugSettings=function(e,t){};Im.prototype.applyStyle=function(e){};Im.prototype.update=function(e,t){};Im.prototype.isDestroyed=function(){return!1};Im.prototype.destroy=function(){return ue(this)};var JI=Im;var NEn=T(S(),1);var MZn=T(S(),1);var rLn=T(S(),1);var M1n=T(S(),1),QI=`uniform sampler2D u_atlas; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +#ifdef FRAGMENT_DEPTH_CHECK +in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates +in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +in mat2 v_rotationMatrix; + +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) +{ + vec2 lookupVector = imageSize * (depthLookupST - adjustedST); + lookupVector = v_rotationMatrix * lookupVector; + vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal + + vec2 translation = v_originTextureCoordinateAndTranslate.zw; + + if (applyTranslate) + { + // this is only needed for labels where the horizontal origin is not LEFT + // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT + translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); + } + + vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif + + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +void main() +{ + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; + +#ifdef LOG_DEPTH + czm_writeLogDepth(); +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + float temp = v_compressed.y; + + temp = temp * SHIFT_RIGHT1; + + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + bool enableDepthTest = temp2 != 0.0; + bool applyTranslate = floor(temp) != 0.0; + + if (enableDepthTest) { + temp = v_compressed.z; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); + + temp = v_compressed.w; + temp = temp * SHIFT_RIGHT12; + + vec2 imageSize; + imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; + imageSize.x = floor(temp); + + vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; + adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); + + float epsilonEyeDepth = v_compressed.x + czm_epsilon1; + float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); + + // negative values go into the screen + if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) + { + float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner + if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) + { + float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner + if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) + { + discard; + } + } + } + } +#endif + +} +`;var U1n=T(S(),1),jI=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +#ifdef FRAGMENT_DEPTH_CHECK +out vec4 v_textureCoordinateBounds; +out vec4 v_originTextureCoordinateAndTranslate; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +out mat2 v_rotationMatrix; +#endif + +out vec4 v_pickColor; +out vec4 v_color; +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VERTEX_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + +#ifdef FRAGMENT_DEPTH_CHECK + vec2 depthOrigin = origin.xy; +#endif + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + +#ifdef INSTANCED + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; +#else + vec2 direction; + direction.x = floor(compressed * SHIFT_RIGHT1); + direction.y = compressed - direction.x * SHIFT_LEFT1; + + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); +#endif + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef FRAGMENT_DEPTH_CHECK + float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + float applyTranslate = 0.0; + if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false + { + applyTranslate = 1.0; + labelHorizontalOrigin -= 2.0; + depthOrigin.x = labelHorizontalOrigin + 1.0; + } + + depthOrigin = vec2(1.0) - (depthOrigin * 0.5); +#endif + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 pickColor; + vec4 color; + + temp = compressedAttribute2.y; + temp = temp * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + temp = compressedAttribute2.x; + temp = temp * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor /= 255.0; + + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + +#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) + float eyeDepth = positionEC.z; +#endif + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = compressedAttribute3.z; +#endif + +#ifdef VERTEX_DEPTH_CHECK +if (lengthSq < disableDepthTestDistance) { + float depthsilon = 10.0; + + vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + if (sizeInMeters) { + translate /= mpp; + dimensions /= mpp; + imageSize /= mpp; + } + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + v_rotationMatrix = rotationMatrix; +#else + v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); +#endif + + float enableDepthCheck = 0.0; + if (lengthSq < disableDepthTestDistance) + { + enableDepthCheck = 1.0; + } + + float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); + float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); + + float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); + float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); + + v_compressed.x = eyeDepth; + v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; + v_compressed.z = dw * SHIFT_LEFT12 + dh; + v_compressed.w = iw * SHIFT_LEFT12 + ih; + v_originTextureCoordinateAndTranslate.xy = depthOrigin; + v_originTextureCoordinateAndTranslate.zw = translate; + v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; + +#endif + +#ifdef SDF + vec4 outlineColor; + float outlineWidth; + + temp = sdf.x; + temp = temp * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + +} +`;var sVn=T(S(),1);function Li(e,t){e=g(e,g.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;d(n)&&(n=Pt.clone(n)),d(i)&&(i=Pt.clone(i)),d(o)&&(o=Pt.clone(o)),d(r)&&(r=Gt.clone(r)),this._show=g(e.show,!0),this._position=h.clone(g(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._pixelOffset=D.clone(g(e.pixelOffset,D.ZERO)),this._translate=new D(0,0),this._eyeOffset=h.clone(g(e.eyeOffset,h.ZERO)),this._heightReference=g(e.heightReference,Ke.NONE),this._verticalOrigin=g(e.verticalOrigin,In.CENTER),this._horizontalOrigin=g(e.horizontalOrigin,bi.CENTER),this._scale=g(e.scale,1),this._color=B.clone(g(e.color,B.WHITE)),this._rotation=g(e.rotation,0),this._alignedAxis=h.clone(g(e.alignedAxis,h.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=g(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=g(e.collection,t),this._pickId=void 0,this._pickPrimitive=g(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;d(s)&&(d(a)||(typeof s=="string"?a=s:d(s.src)?a=s.src:a=Yn()),this._imageId=a,this._image=s),d(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),d(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ie.SCENE3D,this._clusterShow=!0,this._outlineColor=B.clone(g(e.outlineColor,B.BLACK)),this._outlineWidth=g(e.outlineWidth,0),this._updateClamping()}var Moe=Li.SHOW_INDEX=0,sN=Li.POSITION_INDEX=1,Boe=Li.PIXEL_OFFSET_INDEX=2,Ake=Li.EYE_OFFSET_INDEX=3,Mke=Li.HORIZONTAL_ORIGIN_INDEX=4,Nke=Li.VERTICAL_ORIGIN_INDEX=5,Uke=Li.SCALE_INDEX=6,aN=Li.IMAGE_INDEX_INDEX=7,Noe=Li.COLOR_INDEX=8,kke=Li.ROTATION_INDEX=9,Dke=Li.ALIGNED_AXIS_INDEX=10,Bke=Li.SCALE_BY_DISTANCE_INDEX=11,Yke=Li.TRANSLUCENCY_BY_DISTANCE_INDEX=12,Oke=Li.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,Kke=Li.DISTANCE_DISPLAY_CONDITION=14,Hke=Li.DISABLE_DEPTH_DISTANCE=15;Li.TEXTURE_COORDINATE_BOUNDS=16;var Uoe=Li.SDF_INDEX=17;Li.NUMBER_OF_PROPERTIES=18;function Po(e,t){let n=e._billboardCollection;d(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(Li.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Po(this,Moe))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),Po(this,sN))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),Po(this,sN))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;D.equals(t,e)||(D.clone(e,t),Po(this,Boe))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Pt.equals(t,e)||(this._scaleByDistance=Pt.clone(e,t),Po(this,Bke))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Pt.equals(t,e)||(this._translucencyByDistance=Pt.clone(e,t),Po(this,Yke))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Pt.equals(t,e)||(this._pixelOffsetScaleByDistance=Pt.clone(e,t),Po(this,Oke))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),Po(this,Ake))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Po(this,Mke))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,Po(this,Nke))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,Po(this,Uke))}},color:{get:function(){return this._color},set:function(e){let t=this._color;B.equals(t,e)||(B.clone(e,t),Po(this,Noe))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,Po(this,kke))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),Po(this,Dke))}},width:{get:function(){return g(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,Po(this,aN))}},height:{get:function(){return g(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,Po(this,aN))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,Po(this,Noe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Gt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Gt.clone(e,this._distanceDisplayCondition),Po(this,Kke))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Po(this,Hke))}},id:{get:function(){return this._id},set:function(e){this._id=e,d(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,d(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){d(e)?typeof e=="string"?this.setImage(e,e):e instanceof Ee?this.setImage(e.url,e):d(e.src)?this.setImage(e.src,e):this.setImage(Yn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,Po(this,aN))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),Po(this,sN)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Po(this,Moe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;B.equals(t,e)||(B.clone(e,t),Po(this,Uoe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Po(this,Uoe))}}});Li.prototype.getPickId=function(e){return d(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};Li.prototype._updateClamping=function(){Li._updateClamping(this._billboardCollection,this)};var qI=new he,koe=new h;Li._updateClamping=function(e,t){let n=e._scene;if(!d(n)||!d(n.globe))return;let i=n.globe,o=i.ellipsoid,r=i._surface,s=n.frameState.mode,a=s!==t._mode;if(t._mode=s,(t._heightReference===Ke.NONE||a)&&d(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===Ke.NONE||!d(t._position))return;let c=o.cartesianToCartographic(t._position);if(!d(c)){t._actualClampedPosition=void 0;return}d(t._removeCallbackFunc)&&t._removeCallbackFunc();function l(m){if(t._heightReference===Ke.RELATIVE_TO_GROUND)if(t._mode===ie.SCENE3D){let p=o.cartesianToCartographic(m,qI);p.height+=c.height,o.cartographicToCartesian(p,m)}else m.x+=c.height;t._clampedPosition=h.clone(m,t._clampedPosition)}t._removeCallbackFunc=r.updateHeight(c,l),he.clone(c,qI);let u=i.getHeight(c);d(u)&&(qI.height=u),o.cartographicToCartesian(qI,koe),l(koe)};Li.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(c){if(r._imageId!==t||r._image!==n||!He.equals(r._imageSubRegion,i))return;let l=e.textureCoordinates[c];r._imageWidth=e.texture.width*l.width,r._imageHeight=e.texture.height*l.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,Po(r,aN);let u=r._billboardCollection._scene;d(u)&&u.frameState.afterRender.push(()=>!0)}if(d(n)&&(o=e.addImage(t,n)),d(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!d(o))return;let a=e.getImageIndex(t);if(d(a)&&!d(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};Li.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,d(this._billboardCollection._textureAtlas)&&this._loadImage())};Li.prototype.setImageSubRegion=function(e,t){this._imageId===e&&He.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=He.clone(t),d(this._billboardCollection._textureAtlas)&&this._loadImage())};Li.prototype._setTranslate=function(e){let t=this._translate;D.equals(t,e)||(D.clone(e,t),Po(this,Boe))};Li.prototype._getActualPosition=function(){return d(this._clampedPosition)?this._clampedPosition:this._actualPosition};Li.prototype._setActualPosition=function(e){d(this._clampedPosition)||h.clone(e,this._actualPosition),Po(this,sN)};var Doe=new se;Li._computeActualPosition=function(e,t,n,i){return d(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ie.SCENE3D?t:(w.multiplyByPoint(i,t,Doe),Ji.computeActualWgs84Position(n,Doe))};var Yoe=new h;Li._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=w.multiplyByPoint(e,t,Yoe),a=Ji.wgs84WithEyeOffsetToWindowCoordinates(o,s,n,r);if(d(a))return D.add(a,i,a),a};var rN=new D(0,0);Li.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;d(t)||(t=new D),D.clone(this._pixelOffset,rN),D.add(rN,this._translate,rN);let i=n.modelMatrix,o=this._position;if(d(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==ie.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,qI);o=a.cartographicToCartesian(c,Yoe),i=w.IDENTITY}return Li._computeScreenSpacePosition(i,o,this._eyeOffset,rN,e,t)};Li.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===bi.RIGHT?s-=i:e.horizontalOrigin===bi.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===In.BOTTOM||e.verticalOrigin===In.BASELINE?a-=o:e.verticalOrigin===In.CENTER&&(a-=o*.5),d(n)||(n=new He),n.x=s,n.y=a,n.width=i,n.height=o,n};Li.prototype.equals=function(e){return this===e||d(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&He.equals(this._imageSubRegion,e._imageSubRegion)&&B.equals(this._color,e._color)&&D.equals(this._pixelOffset,e._pixelOffset)&&D.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Pt.equals(this._scaleByDistance,e._scaleByDistance)&&Pt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Pt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Gt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Li.prototype._destroy=function(){d(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),d(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var uo=Li;var cVn=T(S(),1),zke={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},So=Object.freeze(zke);var dVn=T(S(),1),Jke={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Rs=Object.freeze(Jke);var CVn=T(S(),1);function kp(e,t,n,i,o){this.bottomLeft=g(e,D.ZERO),this.topRight=g(t,D.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var Qke=new D(16,16);function zb(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.borderWidthInPixels,1),n=g(e.initialSize,Qke);this._context=e.context,this._pixelFormat=g(e.pixelFormat,st.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Yn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(zb.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return d(this._texture)||(this._texture=new Wt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function jke(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),l=o*(a+t.height+r),u=s/c,m=a/l,p=new kp(new D(s+r,r),new D(c,a)),y=new kp(new D,new D(c,a),e._root,p),f=new kp(new D(r,a+r),new D(c,l)),x=new kp(new D,new D(c,l),y,f);for(let V=0;Vs){t.childNode1=new kp(new D(t.bottomLeft.x,t.bottomLeft.y),new D(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a0)&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1));let p,y;if(d(o._labelDimensions))y=o._labelDimensions.x,p=o._labelDimensions.y;else{let C=0,V=0,L=o._imageIndex;if(L!==-1){let G=n[L];C=G.height,V=G.width}p=Math.round(g(o.height,e._textureAtlas.texture.dimensions.y*C));let Z=e._textureAtlas.texture.width;y=Math.round(g(o.width,Z*V))}let f=Math.floor(W.clamp(y,0,TO)),x=Math.floor(W.clamp(p,0,TO)),_=f*TO+x;e._instanced?(r=o._index,s(r,a,c,u,_)):(r=o._index*4,s(r+0,a,c,u,_),s(r+1,a,c,u,_),s(r+2,a,c,u,_),s(r+3,a,c,u,_))}function hre(e,t,n,i,o){if(o.heightReference===Ke.CLAMP_TO_GROUND){let f=e._scene,x=t.context,_=t.globeTranslucencyState.translucent,C=d(f.globe)&&f.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!_&&C}let r,s=i[xo.textureCoordinateBoundsOrLabelTranslate];if(kt.maximumVertexTextureImageUnits>0){let f=0,x=0;d(o._labelTranslate)&&(f=o._labelTranslate.x,x=o._labelTranslate.y),e._instanced?(r=o._index,s(r,f,x,0,0)):(r=o._index*4,s(r+0,f,x,0,0),s(r+1,f,x,0,0),s(r+2,f,x,0,0),s(r+3,f,x,0,0));return}let a=0,c=0,l=0,u=0,m=o._imageIndex;if(m!==-1){let f=n[m];a=f.x,c=f.y,l=f.width,u=f.height}let p=a+l,y=c+u;e._instanced?(r=o._index,s(r,a,c,p,y)):(r=o._index*4,s(r+0,a,c,p,y),s(r+1,a,c,p,y),s(r+2,a,c,p,y),s(r+3,a,c,p,y))}function bDe(e,t,n,i,o){if(!d(e._batchTable))return;let r=i[xo.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function fre(e,t,n,i,o){if(!e._sdf)return;let r,s=i[xo.sdf],a=o.outlineColor,c=o.outlineWidth,l=B.floatToByte(a.red),u=B.floatToByte(a.green),m=B.floatToByte(a.blue),p=l*cC+u*Qh+m,y=c/Rs.RADIUS,f=B.floatToByte(a.alpha)*cC+B.floatToByte(y)*Qh;e._instanced?(r=o._index,s(r,p,f)):(r=o._index*4,s(r+0,p+ore,f),s(r+1,p+rre,f),s(r+2,p+sre,f),s(r+3,p+are,f))}function yDe(e,t,n,i,o){nre(e,t,n,i,o),cre(e,t,n,i,o),lre(e,t,n,i,o),CO(e,t,n,i,o),VO(e,t,n,i,o),dre(e,t,n,i,o),ure(e,t,n,i,o),mre(e,t,n,i,o),hre(e,t,n,i,o),bDe(e,t,n,i,o),fre(e,t,n,i,o)}function SO(e,t,n,i,o,r){let s;i.mode===ie.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c0){this._vaf=uDe(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),m=this._vaf.writers;for(let v=0;v0){let v=TDe;v.length=0,(c[eW]||c[nDe]||c[tDe])&&v.push(nre),(c[$I]||c[Hoe]||c[$ke]||c[eDe]||c[qke])&&(v.push(cre),this._instanced&&v.push(VO)),(c[$I]||c[iDe]||c[joe])&&(v.push(lre),v.push(CO)),(c[$I]||c[Joe])&&v.push(CO),c[zoe]&&v.push(VO),c[Qoe]&&v.push(dre),c[qoe]&&v.push(ure),(c[$oe]||c[oDe]||c[$I]||c[eW])&&v.push(mre),(c[$I]||c[eW])&&v.push(hre),c[ere]&&v.push(fre);let A=v.length;if(m=this._vaf.writers,a/n>.1){for(let M=0;Mn*1.5&&(s.length=n),!d(this._vaf)||!d(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ce.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let f,x=w.IDENTITY;e.mode===ie.SCENE3D?(x=this.modelMatrix,f=ce.clone(this._baseVolumeWC,this._boundingVolume)):f=ce.clone(this._baseVolume2D,this._boundingVolume),xDe(this,e,f);let _=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,_){this._blendOption===So.OPAQUE||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=De.fromCache({depthTest:{enabled:!0,func:ne.LESS},depthMask:!0}):this._rsOpaque=void 0;let v=this._blendOption===So.TRANSLUCENT;this._blendOption===So.TRANSLUCENT||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=De.fromCache({depthTest:{enabled:!0,func:v?ne.LEQUAL:ne.LESS},depthMask:v,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let C,V,L,Z,G,X=kt.maximumVertexTextureImageUnits>0;if(_||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){C=jI,V=QI,G=[],d(this._batchTable)&&(G.push("VECTOR_TILE"),C=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(C),V=this._batchTable.getFragmentShaderCallback(!1,void 0)(V)),L=new Be({defines:G,sources:[C]}),this._instanced&&L.defines.push("INSTANCED"),this._shaderRotation&&L.defines.push("ROTATION"),this._shaderAlignedAxis&&L.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&L.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&L.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&L.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&L.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&L.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(X?L.defines.push("VERTEX_DEPTH_CHECK"):L.defines.push("FRAGMENT_DEPTH_CHECK"));let v=1-Rs.CUTOFF;this._sdf&&L.defines.push("SDF");let A=d(this._batchTable)?"VECTOR_TILE":"";this._blendOption===So.OPAQUE_AND_TRANSLUCENT&&(Z=new Be({defines:["OPAQUE",A],sources:[V]}),this._shaderClampToGround&&(X?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${v}`)),this._sp=Qt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:xo}),Z=new Be({defines:["TRANSLUCENT",A],sources:[V]}),this._shaderClampToGround&&(X?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${v}`)),this._spTranslucent=Qt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:xo})),this._blendOption===So.OPAQUE&&(Z=new Be({defines:[A],sources:[V]}),this._shaderClampToGround&&(X?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${v}`)),this._sp=Qt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:xo})),this._blendOption===So.TRANSLUCENT&&(Z=new Be({defines:[A],sources:[V]}),this._shaderClampToGround&&(X?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${v}`)),this._spTranslucent=Qt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:xo})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let P=e.commandList;if(p.render||p.pick){let v=this._colorCommands,A=this._blendOption===So.OPAQUE,M=this._blendOption===So.OPAQUE_AND_TRANSLUCENT,b=this._vaf.va,R=b.length,E=this._uniforms,I;d(this._batchTable)?(E=this._batchTable.getUniformMapCallback()(E),I=this._batchTable.getPickId()):I="v_pickColor",v.length=R;let F=M?R*2:R;for(let N=0;N0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){d(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=g(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,CDe);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=B.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&lC(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});Hs.defaultColor=B.WHITE;Hs.defaultPointOutlineColor=B.BLACK;Hs.defaultPointOutlineWidth=0;Hs.defaultPointSize=8;function lC(e){let t=e._billboard;if(d(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(d(e._billboardImage))return;let n=g(e._color,Hs.defaultColor),i=g(e._pointOutlineColor,Hs.defaultPointOutlineColor),o=g(e._pointOutlineWidth,Hs.defaultPointOutlineWidth),r=g(e._pointSize,Hs.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,l=e._billboardSize;if(B.equals(n,s)&&B.equals(i,a)&&o===c&&r===l)return;e._billboardColor=B.clone(n,e._billboardColor),e._billboardOutlineColor=B.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let u=n.alpha,m=n.toCssColorString(),p=i.toCssColorString(),y=JSON.stringify([m,r,p,o]);t.setImage(y,Ox(u,m,p,o,r))}Hs.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Hs.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Hs.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Hs.prototype.getPropertyInherited=function(e){return Ss.getPropertyInherited(this._content,this._batchId,e)};Hs.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Hs.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Hs.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Hs.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Dp=Hs;var aRn=T(S(),1);var _Ln=T(S(),1);function VDe(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),l=100,u=r.width+l|0,m=3*a,p=m/2;c.width=u,c.height=m;let y=c.getContext("2d");y.font=n,y.fillStyle="white",y.fillRect(0,0,c.width+1,c.height+1),i&&(y.strokeStyle="black",y.lineWidth=e.lineWidth,y.strokeText(t,l/2,p)),o&&(y.fillStyle="black",y.fillText(t,l/2,p));let f=y.getImageData(0,0,u,m).data,x=f.length,_=u*4,C,V,L,Z;for(C=0;C=0;--C)if(f[C]!==255){Z=C/_|0;break}let G=-1;for(C=0;C]/,o=[],r="",s=qr.LTR,a="",c=e.length;for(let l=0;l";case">":return"<"}}var vDe="\u05D0-\u05EA",FDe="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",Tre=new RegExp(`[${vDe}${FDe}]`);function wDe(e){let t=e.split(` +`),n="";for(let i=0;il+1?s[l+1].Type===qr.RTL?(c=m+c,a=0):(c=oW(c,a,u.Word),a+=u.Word.length):c=oW(c,0,m)):u.Type===qr.RTL?c=oW(c,a,m):u.Type===qr.LTR?(c+=u.Word,a=c.length):(u.Type===qr.WEAK||u.Type===qr.BRACKETS)&&(l>0&&s[l-1].Type===qr.RTL?s.length>l+1?s[l+1].Type===qr.RTL?c=oW(c,a,m):(c+=u.Word,a=c.length):c+=u.Word:(c+=u.Word,a=c.length))}n+=c,i0,m=t._backgroundBillboard,p=e._backgroundBillboardCollection;u?(d(m)||(m=p.add({collection:e,image:Zre,imageSubRegion:kDe}),t._backgroundBillboard=m),m.color=t._backgroundColor,m.show=t._show,m.position=t._position,m.eyeOffset=t._eyeOffset,m.pixelOffset=t._pixelOffset,m.horizontalOrigin=bi.LEFT,m.verticalOrigin=t._verticalOrigin,m.heightReference=t._heightReference,m.scale=t.totalScale,m.pickPrimitive=t,m.id=t._id,m.translucencyByDistance=t._translucencyByDistance,m.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,m.scaleByDistance=t._scaleByDistance,m.distanceDisplayCondition=t._distanceDisplayCondition,m.disableDepthTestDistance=t._disableDepthTestDistance,m.clusterShow=t.clusterShow):d(m)&&(p.remove(m),t._backgroundBillboard=m=void 0);let y=e._glyphTextureCache;for(l=0;l0&&L.height>0){let Z=(0,Lre.default)(L,{cutoff:Rs.CUTOFF,radius:Rs.RADIUS}),G=L.getContext("2d"),X=L.width,P=L.height,v=G.getImageData(0,0,X,P);for(let A=0;A0?V=L.pop():(V=e._billboardCollection.add({collection:e}),V._labelDimensions=new D,V._labelTranslate=new D),a.billboard=V),V.show=t._show,V.position=t._position,V.eyeOffset=t._eyeOffset,V.pixelOffset=t._pixelOffset,V.horizontalOrigin=bi.LEFT,V.verticalOrigin=t._verticalOrigin,V.heightReference=t._heightReference,V.scale=t.totalScale,V.pickPrimitive=t,V.id=t._id,V.image=_,V.translucencyByDistance=t._translucencyByDistance,V.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,V.scaleByDistance=t._scaleByDistance,V.distanceDisplayCondition=t._distanceDisplayCondition,V.disableDepthTestDistance=t._disableDepthTestDistance,V._batchIndex=t._batchIndex,V.outlineColor=t.outlineColor,t.style===vo.FILL_AND_OUTLINE?(V.color=t._fillColor,V.outlineWidth=t.outlineWidth):t.style===vo.FILL?(V.color=t._fillColor,V.outlineWidth=0):t.style===vo.OUTLINE&&(V.color=B.TRANSPARENT,V.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function Vre(e,t,n){return t===bi.CENTER?-e/2:t===bi.RIGHT?-(e+n.x):n.x}var ir=new D,HDe=new D;function zDe(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,l=0,u=1,m,p=t.length,y=e._backgroundBillboard,f=D.clone(d(y)?e._backgroundPadding:D.ZERO,HDe);for(f.x/=e._relativeSize,f.y/=e._relativeSize,m=0;m0&&(C===bi.CENTER?G=-s/2-f.x:C===bi.RIGHT?G=-(s+f.x*2):G=0,ir.x=G*_,V===In.TOP?ir.y=x-l-c:V===In.CENTER?ir.y=(x-l)/2-c:V===In.BASELINE?ir.y=-f.y-c:ir.y=0,ir.y=ir.y*_,y.width=v,y.height=A,y._setTranslate(ir),y._labelTranslate=D.clone(ir,y._labelTranslate)),e.heightReference===Ke.CLAMP_TO_GROUND)for(m=0;m0?So.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};jh.prototype.isDestroyed=function(){return!1};jh.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),ue(this)};var qh=jh;var xZn=T(S(),1);var lRn=T(S(),1),rW=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var vRn=T(S(),1);var SRn=T(S(),1);var Fc={};Fc.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};Fc.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var JDe=new he;Fc.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o0){t=g(t,w.IDENTITY);let o=w.inverseTransformation(t,QDe),r=w.multiplyByPoint(o,h.ZERO,jDe),s=h.normalize(w.multiplyByPointAsVector(o,h.UNIT_Y,Ere),Ere),a=on.fromPointNormal(r,s,qDe),c=h.normalize(w.multiplyByPointAsVector(o,h.UNIT_X,Xre),Xre),l=on.fromPointNormal(r,c,$De),u=1;n.push(h.clone(e[0]));let m=n[0],p=e.length;for(let y=1;y2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;d(t)&&(i=w.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Xi.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(vre),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=ce.fromPoints(this._actualPositions),this._boundingVolumeWC=ce.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new ce}var Pre=rd.POSITION_INDEX=0,sBe=rd.SHOW_INDEX=1,aBe=rd.WIDTH_INDEX=2,cBe=rd.MATERIAL_INDEX=3,aW=rd.POSITION_SIZE_INDEX=4,lBe=rd.DISTANCE_DISPLAY_CONDITION=5,vre=rd.NUMBER_OF_PROPERTIES=6;function Yp(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;d(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(rd.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,Yp(this,sBe))}},positions:{get:function(){return this._positions},set:function(e){let t=go(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&Yp(this,aW),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=ce.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=ce.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),Yp(this,Pre),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Yp(this,cBe))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,Yp(this,aBe))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,Yp(this,aW)}}},id:{get:function(){return this._id},set:function(e){this._id=e,d(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!d(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Gt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Gt.clone(e,this._distanceDisplayCondition),Yp(this,lBe))}}});rd.prototype.update=function(){let e=w.IDENTITY;d(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[Pre]>0||this._propertiesChanged[aW]>0;if((!w.equals(e,this._modelMatrix)||i)&&(this._segments=Xi.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=ce.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=w.clone(e,this._modelMatrix),this._segments.positions.length!==t)Yp(this,aW);else{let o=n.length;for(let r=0;r2){if(o[PO]||o[Fre]){let f=e.mode===ie.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=On.fromCartesian(f.center,Bre),_=se.fromElements(x.low.x,x.low.y,x.low.z,f.radius,Yre);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,_)}if(o[hBe]){let f=Ore;f.x=0,f.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;d(x)&&(f.x=x.near,f.y=x.far),this._batchTable.setBatchedAttribute(i._index,4,f)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c0){let O=A.isTranslucent();a>=s?(b=new nt({owner:e}),n.push(b)):b=n[a],++a,R=xt(p(A._uniforms),e._uniformMap),b.boundingVolume=ce.clone(cW,b.boundingVolume),b.modelMatrix=i,b.shaderProgram=G,b.vertexArray=x.va,b.renderState=O?e._translucentRS:e._opaqueRS,b.pass=O?Re.TRANSLUCENT:Re.OPAQUE,b.debugShowBoundingVolume=u,b.pickId="v_pickColor",b.uniformMap=R,b.count=M,b.offset=Z,Z+=M,M=0,c=!0,r.push(b)}A=I._material,A.update(o),v=F}let N=I._locatorBuckets,Y=N.length;for(let O=0;O0&&(a>=s?(b=new nt({owner:e}),n.push(b)):b=n[a],++a,R=xt(p(A._uniforms),e._uniformMap),b.boundingVolume=ce.clone(cW,b.boundingVolume),b.modelMatrix=i,b.shaderProgram=G,b.vertexArray=x.va,b.renderState=A.isTranslucent()?e._translucentRS:e._opaqueRS,b.pass=A.isTranslucent()?Re.TRANSLUCENT:Re.OPAQUE,b.debugShowBoundingVolume=u,b.pickId="v_pickColor",b.uniformMap=R,b.count=M,b.offset=Z,c=!0,r.push(b)),v=void 0}}n.length=a}Wm.prototype.isDestroyed=function(){return!1};Wm.prototype.destroy=function(){return Kre(this),FO(this),Hre(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function bBe(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[PO]?(i.bufferUsage!==Ne.STREAM_DRAW&&(t=!0,i.bufferUsage=Ne.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Ne.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Ne.STATIC_DRAW):i.frameCount--),t}var Are=[0,0,0];function Mre(e,t,n){e._createVertexArray=!1,FO(e),Kre(e),xBe(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,l=[[]],u=0,m=e._polylineBuckets,p,y;for(p in m)m.hasOwnProperty(p)&&(y=m[p],y.updateShader(t,r,s),u+=y.lengthOfPositions);if(u>0){let f=e._mode,x=new Float32Array(6*u*3),_=new Float32Array(u*4),C,V=0,L=0,Z=0;for(p in m)if(m.hasOwnProperty(p)){y=m[p],y.write(x,_,V,L,Z,r,t,n),f===ie.MORPHING&&(d(C)||(C=new Float32Array(6*u*3)),y.writeForMorph(C,V));let R=y.lengthOfPositions;V+=6*R*3,L+=R*4,Z+=R*4,c=y.updateIndices(i,a,l,c)}let G=e._positionBufferUsage.bufferUsage,X=Ne.STATIC_DRAW;e._positionBuffer=mt.createVertexBuffer({context:t,typedArray:x,usage:G});let P;d(C)&&(P=mt.createVertexBuffer({context:t,typedArray:C,usage:G})),e._texCoordExpandAndBatchIndexBuffer=mt.createVertexBuffer({context:t,typedArray:_,usage:X});let v=3*Float32Array.BYTES_PER_ELEMENT,A=4*Float32Array.BYTES_PER_ELEMENT,M=0,b=i.length;for(let R=0;R0){let E=new Uint16Array(o),I=mt.createIndexBuffer({context:t,typedArray:E,usage:Ne.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});M+=a[R];let F=6*(R*(v*W.SIXTY_FOUR_KILOBYTES)-M*v),N=v+F,Y=v+N,k=v+Y,O=v+k,U=v+O,J=R*(A*W.SIXTY_FOUR_KILOBYTES)-M*A,z=[{index:Cl.position3DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:F,strideInBytes:6*v},{index:Cl.position3DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:N,strideInBytes:6*v},{index:Cl.position2DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:F,strideInBytes:6*v},{index:Cl.position2DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:N,strideInBytes:6*v},{index:Cl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:Y,strideInBytes:6*v},{index:Cl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:k,strideInBytes:6*v},{index:Cl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:Y,strideInBytes:6*v},{index:Cl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:k,strideInBytes:6*v},{index:Cl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:O,strideInBytes:6*v},{index:Cl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:U,strideInBytes:6*v},{index:Cl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:O,strideInBytes:6*v},{index:Cl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:U,strideInBytes:6*v},{index:Cl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:Q.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:J}],ee,K,j,q;f===ie.SCENE3D?(K=e._positionBuffer,ee="vertexBuffer",j=Are,q="value"):f===ie.SCENE2D||f===ie.COLUMBUS_VIEW?(K=Are,ee="value",j=e._positionBuffer,q="vertexBuffer"):(K=P,ee="vertexBuffer",j=e._positionBuffer,q="vertexBuffer"),z[0][ee]=K,z[1][ee]=K,z[2][q]=j,z[3][q]=j,z[4][ee]=K,z[5][ee]=K,z[6][q]=j,z[7][q]=j,z[8][ee]=K,z[9][ee]=K,z[10][q]=j,z[11][q]=j;let be=new ni({context:t,attributes:z,indexBuffer:I});e._vertexArrays.push({va:be,buckets:l[R]})}}}function yBe(e,t){return t instanceof Wt?t.id:t}var mN=[];function gBe(e){let t=ki._uniformList[e.type],n=t.length;mN.length=2*n;let i=0;for(let o=0;o1){a.update();let c=a.material,l=i[c.type];d(l)||(l=i[c.type]=new $h(c,t,n)),l.addPolyline(a)}}}function _Be(e,t){let n=t.mode;(e._mode!==n||!w.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=w.clone(e.modelMatrix),e._createVertexArray=!0)}function vO(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s0,_=y._index,C=this.getSegments(y,a),V=C.positions,L=C.lengths,Z=V.length,G=y.getPickId(s).color,X=0,P=0,v;for(let Y=0;Y0||as.x>0&&uu.x<0)&&h.clone(as,uu),(as.x<0&&mu.x>0||as.x>0&&mu.x<0)&&h.clone(as,mu));let J=O?2:0,z=U?2:4;for(let ee=J;ee2&&(r.setBatchedAttribute(_,2,E),r.setBatchedAttribute(_,3,I),r.setBatchedAttribute(_,4,F))}};var CBe=new h,VBe=new h,LBe=new h,Nre=new h;$h.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r0&&(c=a[a.length-1]+1);let l=this.polylines,u=l.length;for(let m=0;m0)y[0]=x;else continue}else y=p._segments.lengths;let f=y.length;if(f>0){let x=0;for(let _=0;_W.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:x}),x=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new WO(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),x+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:x}),c+4>W.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new WO(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};$h.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o0){e._boundingVolume2D=ce.fromPoints(o,e._boundingVolume2D);let l=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(l.z,l.x,l.y)}return dC.positions=o,dC.lengths=e._segments.lengths,dC};var kre;$h.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*W.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=kre,c=6*s*3;!d(a)||a.lengthc&&(a=new Float32Array(a.buffer,0,c));let l=this.getSegments(t,i),u=l.positions,m=l.lengths,p=0,y=0,f=0,x;s=u.length;for(let _=0;_0||as.x>0&&uu.x<0)&&h.clone(as,uu),(as.x<0&&mu.x>0||as.x>0&&mu.x<0)&&h.clone(as,mu));let Z=V?2:0,G=L?2:4;for(let X=Z;X{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,l=e._labelCollection,u=e._polylineCollection;n=e._positions;let m=e._batchIds,p=n.length/3;for(let y=0;y{e.isDestroyed()||(e._error=a)})}qb.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let f=new Float64Array(y.packedBuffer),x=f[0];kBe(e,f),e._indices=Ue.getSizeInBytes(x)===2?new Uint16Array(y.indices):new Uint32Array(y.indices),e._indexOffsets=new Uint32Array(y.indexOffsets),e._indexCounts=new Uint32Array(y.indexCounts),e._batchedPositions=new Float32Array(y.positions),e._vertexBatchIds=new Uint16Array(y.batchIds),OBe(e),e._ready=!0}).catch(y=>{e.isDestroyed()||(e._error=y)})}function OBe(e){d(e._primitive)||(e._primitive=new xx({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}Op.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Op.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Op.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Op.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Op.prototype.update=function(e){if(!this._ready){if(d(this._promise)||(this._promise=YBe(this)),d(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Op.prototype.isDestroyed=function(){return!1};Op.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var mW=Op;var ZGn=T(S(),1);var tGn=T(S(),1),hW=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function vm(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=g(e.ellipsoid,re.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=B.clone(B.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(vm.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function KBe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+de.packedLength+re.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,de.pack(t,a,c),c+=de.packedLength,re.pack(o,a,c),c+=re.packedLength,h.pack(r,a,c),a}var HBe=new pi("createVectorTilePolylines",5),uC={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function zBe(e,t){if(d(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;d(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=KBe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},l=HBe.scheduleTask(c,a);if(d(l))return l.then(function(u){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(u.decodedPositions),e._decodedPositionOffsets=new Uint32Array(u.decodedPositionOffsets)),e._currentPositions=new Float32Array(u.currentPositions),e._previousPositions=new Float32Array(u.previousPositions),e._nextPositions=new Float32Array(u.nextPositions),e._expandAndWidth=new Float32Array(u.expandAndWidth),e._vertexBatchIds=new Uint16Array(u.batchIds);let m=u.indexDatatype;e._indices=m===Ue.UNSIGNED_SHORT?new Uint16Array(u.indices):new Uint32Array(u.indices),JBe(e,t),e._ready=!0}).catch(u=>{e.isDestroyed()||(e._error=u)})}function JBe(e,t){if(!d(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let l=mt.createVertexBuffer({context:t,typedArray:i,usage:Ne.STATIC_DRAW}),u=mt.createVertexBuffer({context:t,typedArray:n,usage:Ne.STATIC_DRAW}),m=mt.createVertexBuffer({context:t,typedArray:o,usage:Ne.STATIC_DRAW}),p=mt.createVertexBuffer({context:t,typedArray:r,usage:Ne.STATIC_DRAW}),y=mt.createVertexBuffer({context:t,typedArray:s,usage:Ne.STATIC_DRAW}),f=mt.createIndexBuffer({context:t,typedArray:a,usage:Ne.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ue.UNSIGNED_SHORT:Ue.UNSIGNED_INT}),x=[{index:uC.previousPosition,vertexBuffer:l,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:uC.currentPosition,vertexBuffer:u,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:uC.nextPosition,vertexBuffer:m,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:uC.expandAndWidth,vertexBuffer:p,componentDatatype:Q.FLOAT,componentsPerAttribute:2},{index:uC.a_batchId,vertexBuffer:y,componentDatatype:Q.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ni({context:t,attributes:x,indexBuffer:f}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var fW=new w,Jre=new h;function QBe(e,t){d(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return w.clone(n,fW),w.multiplyByPoint(fW,e._center,Jre),w.setTranslation(fW,Jre,fW),fW},u_highlightColor:function(){return e._highlightColor}})}function jBe(e){if(d(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=De.fromCache({blending:un.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var qBe=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function $Be(e,t){if(d(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(hW),o=n.getFragmentShaderCallback(!1,void 0,!1)(qBe),r=new Be({defines:["VECTOR_TILE",Mt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[jl,i]}),s=new Be({defines:["VECTOR_TILE"],sources:[o]});e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:uC})}function e3e(e,t){if(!d(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new nt({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:Re.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}vm.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!d(n)||!d(i))return;let r,s,a=n.length,c=0,l=0;for(r=0;r + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var IGn=T(S(),1),bW=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function Kp(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=g(e.ellipsoid,re.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new D(li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight),this._boundingVolume=Wn.fromRectangle(e.rectangle,li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=B.clone(B.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Kp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function r3e(e,t,n){let i=li.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;Wn.fromRectangle(c,o,r,n,a)}function s3e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+de.packedLength+re.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,de.pack(t,a,c),c+=de.packedLength,re.pack(o,a,c),c+=re.packedLength,h.pack(r,a,c),a}var a3e=new pi("createVectorTileClampedPolylines"),$b={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function c3e(e,t){if(d(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;d(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=s3e(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},l=a3e.scheduleTask(c,a);if(d(l))return l.then(function(u){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(u.decodedPositions),e._decodedPositionOffsets=new Uint32Array(u.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(u.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(u.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(u.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(u.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(u.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(u.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(u.vertexBatchIds);let m=u.indexDatatype;e._indices=m===Ue.UNSIGNED_SHORT?new Uint16Array(u.indices):new Uint32Array(u.indices),l3e(e,t),e._ready=!0}).catch(u=>{e.isDestroyed()||(e._error=u)})}function l3e(e,t){if(!d(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,l=e._indices,u=n.byteLength+i.byteLength;u+=o.byteLength+r.byteLength,u+=s.byteLength+a.byteLength,u+=c.byteLength+l.byteLength,e._trianglesLength=l.length/3,e._geometryByteLength=u;let m=mt.createVertexBuffer({context:t,typedArray:n,usage:Ne.STATIC_DRAW}),p=mt.createVertexBuffer({context:t,typedArray:i,usage:Ne.STATIC_DRAW}),y=mt.createVertexBuffer({context:t,typedArray:o,usage:Ne.STATIC_DRAW}),f=mt.createVertexBuffer({context:t,typedArray:r,usage:Ne.STATIC_DRAW}),x=mt.createVertexBuffer({context:t,typedArray:s,usage:Ne.STATIC_DRAW}),_=mt.createVertexBuffer({context:t,typedArray:a,usage:Ne.STATIC_DRAW}),C=mt.createVertexBuffer({context:t,typedArray:c,usage:Ne.STATIC_DRAW}),V=mt.createIndexBuffer({context:t,typedArray:l,usage:Ne.STATIC_DRAW,indexDatatype:l.BYTES_PER_ELEMENT===2?Ue.UNSIGNED_SHORT:Ue.UNSIGNED_INT}),L=[{index:$b.startEllipsoidNormal,vertexBuffer:m,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:$b.endEllipsoidNormal,vertexBuffer:p,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:$b.startPositionAndHeight,vertexBuffer:y,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:$b.endPositionAndHeight,vertexBuffer:f,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:$b.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:$b.endFaceNormalAndHalfWidth,vertexBuffer:_,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:$b.a_batchId,vertexBuffer:C,componentDatatype:Q.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ni({context:t,attributes:L,indexBuffer:V}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var yW=new w,Qre=new h;function d3e(e,t){d(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return w.clone(n,yW),w.multiplyByPoint(yW,e._center,Qre),w.setTranslation(yW,Qre,yW),yW},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function jre(e){return De.fromCache({cull:{enabled:!0,face:yi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Dn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Dn.EQUAL,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},reference:wt.CESIUM_3D_TILE_MASK,mask:wt.CESIUM_3D_TILE_MASK}})}function u3e(e){d(e._rs)||(e._rs=jre(!1),e._rs3DTiles=jre(!0))}function m3e(e,t){if(d(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(pW),o=n.getFragmentShaderCallback(!1,void 0,!0)(bW),r=new Be({defines:["VECTOR_TILE",Mt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[jl,i]}),s=new Be({defines:["VECTOR_TILE"],sources:[o]});e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:$b})}function h3e(e,t){let n=e._command;if(!d(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new nt({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:Re.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=nt.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=Re.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===kn.TERRAIN||i===kn.BOTH)&&t.commandList.push(n),(i===kn.CESIUM_3D_TILE||i===kn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}Kp.prototype.getPositions=function(e){return Jx.getPolylinePositions(this,e)};Kp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o{e.isDestroyed()||(e._error=t)})}Kp.prototype.update=function(e){let t=e.context;if(!this._ready){if(d(this._promise)||(this._promise=g3e(this).then(c3e(this,t))),d(this._error)){let i=this._error;throw this._error=void 0,i}return}d3e(this,t),m3e(this,t),u3e(this);let n=e.passes;(n.render||n.pick)&&h3e(this,e)};Kp.prototype.isDestroyed=function(){return!1};Kp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var gW=Kp;var xEn=T(S(),1);var AO=32767,x3e=new he,_3e=new h;function T3e(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);Kn.zigZagDeltaDecode(s,a,c);let l=new Float64Array(e.length);for(let u=0;u0&&d(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&d(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&d(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let l=d(n)||d(i)||d(o),u=s>0&&!d(n)||a>0&&!d(i)||c>0&&!d(o);if(l&&u)throw new me("If one group of batch ids is defined, then all batch ids must be defined");if(!d(n)&&!d(i)&&!d(o)){let p=0;if(!d(n)&&s>0)for(n=new Uint16Array(s),r=0;r0)for(i=new Uint16Array(a),r=0;r0)for(o=new Uint16Array(c),r=0;r0&&(C=Go(i,n,l),n+=l,u>0&&(V=new Uint8Array(t,n,u),V=new Uint8Array(V),n+=u));let L=g(x.POLYGONS_LENGTH,0),Z=g(x.POLYLINES_LENGTH,0),G=g(x.POINTS_LENGTH,0),X=L+Z+G,P=new gp(e,X,C,V,S3e(e));if(e._batchTable=P,X===0)return;let v=new Zm(x,_),A=v.getGlobalProperty("REGION");if(!d(A))throw new me("Feature table global property: REGION must be defined");let M=de.unpack(A),b=A[4],R=A[5],E=e._tile.computedTransform,I=v.getGlobalProperty("RTC_CENTER",Q.FLOAT,3);d(I)?(I=h.unpack(I),w.multiplyByPoint(E,I,I)):(I=de.center(M),I.height=W.lerp(b,R,.5),I=re.WGS84.cartographicToCartesian(I));let F=C3e(x,_);if(n+=(4-n%4)%4,L>0){v.featuresLength=L;let N=g(v.getPropertyArray("POLYGON_COUNTS",Q.UNSIGNED_INT,1),v.getPropertyArray("POLYGON_COUNT",Q.UNSIGNED_INT,1));if(!d(N))throw new me("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let Y=g(v.getPropertyArray("POLYGON_INDEX_COUNTS",Q.UNSIGNED_INT,1),v.getPropertyArray("POLYGON_INDEX_COUNT",Q.UNSIGNED_INT,1));if(!d(Y))throw new me("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let k=N.reduce(function(K,j){return K+j*2},0),O=Y.reduce(function(K,j){return K+j},0),U=new Uint32Array(t,n,O);n+=m;let J=new Uint16Array(t,n,k);n+=p;let z,ee;d(x.POLYGON_MINIMUM_HEIGHTS)&&d(x.POLYGON_MAXIMUM_HEIGHTS)&&(z=v.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",Q.FLOAT,1),ee=v.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",Q.FLOAT,1)),e._polygons=new mW({positions:J,counts:N,indexCounts:Y,indices:U,minimumHeight:b,maximumHeight:R,polygonMinimumHeights:z,polygonMaximumHeights:ee,center:I,rectangle:M,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:P,batchIds:F.polygons,modelMatrix:E})}if(Z>0){v.featuresLength=Z;let N=g(v.getPropertyArray("POLYLINE_COUNTS",Q.UNSIGNED_INT,1),v.getPropertyArray("POLYLINE_COUNT",Q.UNSIGNED_INT,1));if(!d(N))throw new me("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let Y=v.getPropertyArray("POLYLINE_WIDTHS",Q.UNSIGNED_SHORT,1);if(!d(Y)){Y=new Uint16Array(Z);for(let ee=0;ee0){let N=new Uint16Array(t,n,G*3);n+=f,e._points=new uW({positions:N,batchIds:F.points,minimumHeight:b,maximumHeight:R,rectangle:M,batchTable:P})}}function MO(e){let t=e.featuresLength;if(!d(e._features)&&t>0){let n=new Array(t);d(e._polygons)&&e._polygons.createFeatures(e,n),d(e._polylines)&&e._polylines.createFeatures(e,n),d(e._points)&&e._points.createFeatures(e,n),e._features=n}}ef.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};ef.prototype.getFeature=function(e){return d(this._features)||MO(this),this._features[e]};ef.prototype.applyDebugSettings=function(e,t){d(this._polygons)&&this._polygons.applyDebugSettings(e,t),d(this._polylines)&&this._polylines.applyDebugSettings(e,t),d(this._points)&&this._points.applyDebugSettings(e,t)};ef.prototype.applyStyle=function(e){d(this._features)||MO(this),d(this._polygons)&&this._polygons.applyStyle(e,this._features),d(this._polylines)&&this._polylines.applyStyle(e,this._features),d(this._points)&&this._points.applyStyle(e,this._features)};ef.prototype.update=function(e,t){let n=!0;d(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),d(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),d(this._points)&&(this._points.update(t),n=n&&this._points.ready),d(this._batchTable)&&n&&(d(this._features)||MO(this),this._batchTable.update(e,t),this._ready=!0)};ef.prototype.getPolylinePositions=function(e){let t=this._polylines;if(d(t))return t.getPositions(e)};ef.prototype.isDestroyed=function(){return!1};ef.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function Z3e(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c=0?i[r]:void 0}var qx=X3e;var IXn=T(S(),1);var VXn=T(S(),1);function Qp(e){e=g(e,g.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(Qp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Qp.prototype.hasProperty=function(e){return Mn.hasProperty(e,this._properties,this._class)};Qp.prototype.hasPropertyBySemantic=function(e){return Mn.hasPropertyBySemantic(e,this._properties,this._class)};Qp.prototype.getPropertyIds=function(e){return Mn.getPropertyIds(this._properties,this._class,e)};Qp.prototype.getProperty=function(e){return Mn.getProperty(e,this._properties,this._class)};Qp.prototype.setProperty=function(e,t){return Mn.setProperty(e,t,this._properties,this._class)};Qp.prototype.getPropertyBySemantic=function(e){return Mn.getPropertyBySemantic(e,this._properties,this._class)};Qp.prototype.setPropertyBySemantic=function(e,t){return Mn.setPropertyBySemantic(e,t,this._properties,this._class)};var SW=Qp;function UO(e,t){let n=ri(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!d(n))return;if(!d(e.schema)){UO._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=g(e.schema.classes,g.EMPTY_OBJECT);if(d(n.class)){let o=i[n.class];return new SW({tile:n,class:o})}}UO._oneTimeWarning=It;var CW=UO;var $Xn=T(S(),1);var MXn=T(S(),1);function I3e(e){let t=new Uint8Array(e),n=ym(t);if(n==="glTF"&&(n="glb"),cs.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=W3e(t);if(d(i.root))return{contentType:cs.EXTERNAL_TILESET,jsonPayload:i};if(d(i.asset))return{contentType:cs.GLTF,jsonPayload:i};if(d(i.tileAvailability))return{contentType:cs.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(d(i.type))return{contentType:cs.GEOJSON,jsonPayload:i};if(d(i.voxelTable))return{contentType:cs.VOXEL_JSON,jsonPayload:i};throw new me("Invalid tile content.")}function W3e(e){let t;try{t=Go(e)}catch{throw new me("Invalid tile content.")}return t}var tf=I3e;function Am(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=d(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;sw3e(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(d),o}async function w3e(e,t,n){if(d(t))try{let i=tf(t);if(i.contentType===cs.EXTERNAL_TILESET)throw new me("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===cs.GEOMETRY||i.contentType===cs.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=Qx[i.contentType];d(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let l=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let m=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=m.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=jx(o,l));let u=qx(o,l);return d(u)&&(a.group=new px({metadata:u})),a}catch(i){ese(e,n,i)}}function ese(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=d(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}Am.prototype.cancelRequests=function(){for(let e=0;e0?Hr.COUNTER_CLOCKWISE:Hr.CLOCKWISE};ey.triangulate=function(e,t){let n=D.packArray(e);return(0,lse.default)(n,t,2)};var dse=new h,use=new h,mse=new h,sse=new h,ase=new h,cse=new h,jp=new h,hse=new D,fse=new D,pse=new D,fC=new D;ey.computeSubdivision=function(e,t,n,i,o){o=g(o,W.RADIANS_PER_DEGREE);let r=d(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),u=new Array(c*2),m=0,p=0;for(a=0;a0;){let L=s.pop(),Z=s.pop(),G=s.pop(),X=h.fromArray(l,G*3,dse),P=h.fromArray(l,Z*3,use),v=h.fromArray(l,L*3,mse),A,M,b;r&&(A=D.fromArray(u,G*2,hse),M=D.fromArray(u,Z*2,fse),b=D.fromArray(u,L*2,pse));let R=h.multiplyByScalar(h.normalize(X,sse),x,sse),E=h.multiplyByScalar(h.normalize(P,ase),x,ase),I=h.multiplyByScalar(h.normalize(v,cse),x,cse),F=h.magnitudeSquared(h.subtract(R,E,jp)),N=h.magnitudeSquared(h.subtract(E,I,jp)),Y=h.magnitudeSquared(h.subtract(I,R,jp)),k=Math.max(F,N,Y),O,U,J;k>C?F===k?(O=`${Math.min(G,Z)} ${Math.max(G,Z)}`,a=f[O],d(a)||(U=h.add(X,P,jp),h.multiplyByScalar(U,.5,U),l.push(U.x,U.y,U.z),a=l.length/3-1,f[O]=a,r&&(J=D.add(A,M,fC),D.multiplyByScalar(J,.5,J),u.push(J.x,J.y))),s.push(G,a,L),s.push(a,Z,L)):N===k?(O=`${Math.min(Z,L)} ${Math.max(Z,L)}`,a=f[O],d(a)||(U=h.add(P,v,jp),h.multiplyByScalar(U,.5,U),l.push(U.x,U.y,U.z),a=l.length/3-1,f[O]=a,r&&(J=D.add(M,b,fC),D.multiplyByScalar(J,.5,J),u.push(J.x,J.y))),s.push(Z,a,G),s.push(a,L,G)):Y===k&&(O=`${Math.min(L,G)} ${Math.max(L,G)}`,a=f[O],d(a)||(U=h.add(v,X,jp),h.multiplyByScalar(U,.5,U),l.push(U.x,U.y,U.z),a=l.length/3-1,f[O]=a,r&&(J=D.add(b,A,fC),D.multiplyByScalar(J,.5,J),u.push(J.x,J.y))),s.push(L,a,Z),s.push(a,G,Z)):(y.push(G),y.push(Z),y.push(L))}let V={attributes:{position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:l})},indices:y,primitiveType:we.TRIANGLES};return r&&(V.attributes.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:u})),new dt(V)};var eYe=new he,tYe=new he,nYe=new he,KO=new he;ey.computeRhumbLineSubdivision=function(e,t,n,i,o){o=g(o,W.RADIANS_PER_DEGREE);let r=d(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),u=new Array(c*2),m=0,p=0;for(a=0;a0;){let G=s.pop(),X=s.pop(),P=s.pop(),v=h.fromArray(l,P*3,dse),A=h.fromArray(l,X*3,use),M=h.fromArray(l,G*3,mse),b,R,E;r&&(b=D.fromArray(u,P*2,hse),R=D.fromArray(u,X*2,fse),E=D.fromArray(u,G*2,pse));let I=e.cartesianToCartographic(v,eYe),F=e.cartesianToCartographic(A,tYe),N=e.cartesianToCartographic(M,nYe);C.setEndPoints(I,F);let Y=C.surfaceDistance;V.setEndPoints(F,N);let k=V.surfaceDistance;L.setEndPoints(N,I);let O=L.surfaceDistance,U=Math.max(Y,k,O),J,z,ee,K,j;U>_?Y===U?(J=`${Math.min(P,X)} ${Math.max(P,X)}`,a=f[J],d(a)||(z=C.interpolateUsingFraction(.5,KO),ee=(I.height+F.height)*.5,K=h.fromRadians(z.longitude,z.latitude,ee,e,jp),l.push(K.x,K.y,K.z),a=l.length/3-1,f[J]=a,r&&(j=D.add(b,R,fC),D.multiplyByScalar(j,.5,j),u.push(j.x,j.y))),s.push(P,a,G),s.push(a,X,G)):k===U?(J=`${Math.min(X,G)} ${Math.max(X,G)}`,a=f[J],d(a)||(z=V.interpolateUsingFraction(.5,KO),ee=(F.height+N.height)*.5,K=h.fromRadians(z.longitude,z.latitude,ee,e,jp),l.push(K.x,K.y,K.z),a=l.length/3-1,f[J]=a,r&&(j=D.add(R,E,fC),D.multiplyByScalar(j,.5,j),u.push(j.x,j.y))),s.push(X,a,P),s.push(a,G,P)):O===U&&(J=`${Math.min(G,P)} ${Math.max(G,P)}`,a=f[J],d(a)||(z=L.interpolateUsingFraction(.5,KO),ee=(N.height+I.height)*.5,K=h.fromRadians(z.longitude,z.latitude,ee,e,jp),l.push(K.x,K.y,K.z),a=l.length/3-1,f[J]=a,r&&(j=D.add(E,b,fC),D.multiplyByScalar(j,.5,j),u.push(j.x,j.y))),s.push(G,a,X),s.push(a,P,X)):(y.push(P),y.push(X),y.push(G))}let Z={attributes:{position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:l})},indices:y,primitiveType:we.TRIANGLES};return r&&(Z.attributes.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:u})),new dt(Z)};ey.scaleToGeodeticHeight=function(e,t,n,i){n=g(n,re.WGS84);let o=q3e,r=$3e;if(t=g(t,0),i=g(i,!0),d(e)){let s=e.length;for(let a=0;aa?y=W.TWO_PI-c+a:y=a-c;let x=Math.ceil(y/t)+1,_=Math.ceil(f/t)+1,C=y/(x-1),V=f/(_-1),L=de.northwest(e,r),Z=de.center(e,rYe);(n!==0||i!==0)&&(Z.longitude=0;f--)ls.computePosition(t,n,!1,y,f,x),m[p++]=x.x,m[p++]=x.y,m[p++]=x.z;for(f=0,y=i-2;y>0;y--)ls.computePosition(t,n,!1,y,f,x),m[p++]=x.x,m[p++]=x.y,m[p++]=x.z;let _=m.length/3*2,C=Ue.createTypedArray(m.length/3,_),V=0;for(let Z=0;Z0){pu.longitude=(t.west+t.east)*.5,pu.latitude=l;let x=n.cartographicToCartesian(pu,yC.origin);h.clone(c,yC.direction);let _=on.fromPointNormal(e.southwestCornerCartesian,e.westNormal,Vse);Si.rayPlane(yC,_,e.southwestCornerCartesian),u=n.geodeticSurfaceNormal(x,xN)}else u=n.geodeticSurfaceNormalCartographic(de.southeast(t),xN);let m=h.cross(u,a,Cse);h.normalize(m,e.southNormal);let p=t.north,y;if(p<0){pu.longitude=(t.west+t.east)*.5,pu.latitude=p;let x=n.cartographicToCartesian(pu,yC.origin);h.negate(c,yC.direction);let _=on.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,Vse);Si.rayPlane(yC,_,e.northeastCornerCartesian),y=n.geodeticSurfaceNormal(x,xN)}else y=n.geodeticSurfaceNormalCartographic(de.northwest(t),xN);let f=h.cross(a,y,Cse);h.normalize(f,e.northNormal)}var yYe=new h,gYe=new h,xYe=new h(0,-1,0),_Ye=new h(0,0,-1),Lse=new h;function TYe(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!de.contains(e.rectangle,o)){let l=e.southwestCornerCartesian,u=e.northeastCornerCartesian,m=e.westNormal,p=e.southNormal,y=e.eastNormal,f=e.northNormal;t.mode!==ie.SCENE3D&&(l=t.mapProjection.project(de.southwest(e.rectangle),yYe),l.z=l.y,l.y=l.x,l.x=0,u=t.mapProjection.project(de.northeast(e.rectangle),gYe),u.z=u.y,u.y=u.x,u.x=0,m=xYe,y=h.UNIT_Y,p=_Ye,f=h.UNIT_Z);let x=h.subtract(i,l,Lse),_=h.dot(x,m),C=h.dot(x,p),V=h.subtract(i,u,Lse),L=h.dot(V,y),Z=h.dot(V,f);_>0?r+=_*_:L>0&&(r+=L*L),C>0?r+=C*C:Z>0&&(r+=Z*Z)}let s,a,c;if(t.mode===ie.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let l=s-c;r+=l*l}else if(s10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};ty.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};ty.prototype.contains=function(e){return this._array.indexOf(e)!==-1};ty.prototype.clear=function(){this._array.length=this._offset=this._length=0};ty.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var ny=ty;var Ho={};Ho.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!d(o))continue;n+=2;let r=o.positions,s=o.holes;if(d(r)&&r.length>0&&(n+=r.length*t.packedLength),d(s)){let a=s.length;for(let c=0;c0;){let r=o.pop();if(!d(r))continue;let s=r.positions,a=r.holes;if(t[n++]=d(s)?s.length:0,t[n++]=d(a)?a.length:0,d(s)){let c=s.length;for(let l=0;l0?new Array(o):void 0;for(let a=0;aW.PI){let c=s;s=a,a=c}if(!(r.longitudea))return n.cartographicToCartesian(r)}function WYe(e,t,n,i){if(i===Jt.RHUMB)return IYe(e,t,n);let o=Si.lineSegmentPlane(e,t,on.ORIGIN_XY_PLANE);if(d(o))return n.scaleToGeodeticSurface(o,o)}var PYe=new he;function vYe(e,t,n){let i=[],o,r,s,a,c,l=0;for(;lt.cartesianToCartographic(m,PYe).longitude;if(s===0)i.push({position:l,type:s,visited:!1,next:a,theta:u(o)});else if(a!==0){if(c=WYe(o,r,t,n),++l,!d(c))continue;e.splice(l,0,c),i.push({position:l,type:s,visited:!1,next:a,theta:u(c)})}++l}return i}function vse(e,t,n,i,o,r,s){let a=[],c=r,l=m=>p=>p.position===m,u=[];do{let m=n[c];a.push(m);let p=i.findIndex(l(c)),y=i[p];if(!d(y)){++c;continue}let{visited:f,type:x,next:_}=y;if(y.visited=!0,x===0){if(_===0){let Z=i[p-(s?1:-1)];if(Z?.position===c+1)Z.visited=!0;else{++c;continue}}if(!f&&s&&_>0||r===c&&!s&&_<0){++c;continue}}if(!(s?x>=0:x<=0)){++c;continue}f||u.push(c);let V=p+(s?1:-1),L=i[V];if(!d(L)){++c;continue}c=L.position}while(c=0&&c!==r&&a.lengthl.theta-u.theta);let c=s[0].z>=0;o=vse(i,o,s,a,1,0,c)}return i};Ho.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new ny;c.enqueue(e);let l=d(r);for(;c.length!==0;){let u=c.dequeue(),m=u.positions,p=u.holes,y,f;if(i)for(f=m.length,y=0;y1){for(let P of X)c.enqueue(new fa(P,p));continue}}let V=m.slice(),L=d(p)?p.length:0,Z=[],G;for(y=0;y0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):on.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,on.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=oK(on.projectPointOntoPlane(c,t,iK),i[0],c,o),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=wse(t,p[0],p[1]),h.distance(a,t)}let u=Number.MAX_VALUE,m;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=oK(on.projectPointOntoPlane(c,t,iK),i[r],c,this._edgeNormals[n[r]]),m=h.distanceSquared(a,t),m3)return a=oK(on.projectPointOntoPlane(this._boundingPlanes[1],t,iK),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let l=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+l)%4]):h.distance(t,this._vertices[4+(n[1]-2+l)%4])};var nOe=new h,iOe=new h;function wse(e,t,n){let i=h.subtract(n,t,nOe),o=h.subtract(e,t,iOe),r=h.dot(i,o);if(r<=0)return t;let s=h.dot(i,i);return r>=s?n:(r=r/s,new h((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var oOe=new on(h.UNIT_X,0);function oK(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c0&&(f=!0,m+=l),s1||ri(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=d(n.transform)?w.unpack(n.transform):w.clone(w.IDENTITY);let a=d(i)?i.computedTransform:e.modelMatrix,c=w.multiply(a,this.transform,new w),l=d(i)?i._initialTransform:w.IDENTITY;this._initialTransform=w.multiply(l,this.transform,new w),this.computedTransform=c,this.metadata=CW(e,n),this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let u;d(s)&&d(s.boundingVolume)&&(u=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=u,this._contentBoundingVolume2D=void 0;let m;d(n.viewerRequestVolume)&&(m=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=m,this.geometricError=n.geometricError,this._geometricError=n.geometricError,d(this._geometricError)||(this._geometricError=d(i)?i._geometricError:e._geometricError,zo._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;d(n.refine)?((n.refine==="replace"||n.refine==="add")&&zo._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?Wo.REPLACE:Wo.ADD):d(i)?p=i.refine:p=Wo.REPLACE,this.refine=p,this.children=[],this.parent=i;let y,f=!1,x,_,C;if(t=Ee.createIfNeeded(t),r)x=Fo.UNLOADED,_=t.clone();else if(d(s)){let G=s.uri;d(s.url)&&(zo._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),G=s.url),G===""?(zo._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),y=new mC(e,this),f=!0,x=Fo.READY):(x=Fo.UNLOADED,_=t.getDerivedResource({url:G}),C=Fa.getServerKey(_.getUrlComponent()))}else y=new mC(e,this),f=!0,x=Fo.READY;this._content=y,this._contentResource=_,this._contentState=x,this._expiredContent=void 0,this._serverKey=C,this.hasEmptyContent=f,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.cacheNode=void 0;let V=n.expire,L,Z;d(V)&&(L=V.duration,d(V.date)&&(Z=te.fromIso8601(V.date))),this.expireDuration=L,this.expireDate=Z,this.lastStyleTime=0,this._optimChildrenWithinParent=hu.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._clippingPlanesState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=B.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new te,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}zo._deprecationWarning=zr;Object.defineProperties(zo.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return g(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return d(this._color)||(this._color=new B),B.clone(this._color)},set:function(e){this._color=B.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||d(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===Fo.READY}},contentUnloaded:{get:function(){return this._contentState===Fo.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===Fo.EXPIRED}},contentFailed:{get:function(){return this._contentState===Fo.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var ry=new h;function uOe(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,ry),c=h.add(s.positionWC,a,ry),l=h.subtract(c,r,ry);if(h.magnitude(l)>o){let Z=h.normalize(l,ry),G=h.multiplyByScalar(Z,o,ry),X=h.add(r,G,ry),P=h.subtract(X,s.positionWC,ry),v=h.normalize(P,ry);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,v))}else e._foveatedFactor=0;let p=e.refine===Wo.REPLACE,y=n.isSkippingLevelOfDetail;if(p&&!y||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&y||n._pass===Xo.PRELOAD_FLIGHT||n._pass===Xo.PRELOAD)return!1;let f=1-Math.cos(s.frustum.fov*.5),x=n.foveatedConeSize*f;if(e._foveatedFactor<=x)return!1;let _=f-x,C=W.clamp((e._foveatedFactor-x)/_,0,1),V=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,C),L=e._screenSpaceError===0&&d(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-V<=L}var Dse=new te;zo.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=g(n,1),r=d(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,l=a.frustum,u=c.drawingBufferWidth,m=c.drawingBufferHeight*o,p;if(e.mode===ie.SCENE2D||l instanceof en){let y=l.offCenterFrustum;d(y)&&(l=y);let f=Math.max(l.top-l.bottom,l.right-l.left)/Math.max(u,m);p=s/f}else{let y=Math.max(this._distanceToCamera,W.EPSILON7),f=l.sseDenominator;if(p=s*m/(y*f),i.dynamicScreenSpaceError){let x=i._dynamicScreenSpaceErrorComputedDensity,_=i.dynamicScreenSpaceErrorFactor,C=W.fog(y,x)*_;p-=C}}return p/=e.pixelRatio,p};function mOe(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=e.memoryAdjustedScreenSpaceError,i=t._screenSpaceErrorProgressiveResolution>n;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let o=t.parent,r=t._screenSpaceErrorProgressiveResolution<=n,s=d(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function hOe(e,t){let n=t.parent,o=d(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}zo.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=d(t)?t.computedTransform:n.modelMatrix,o=d(t)?t._visibilityPlaneMask:Qr.MASK_INDETERMINATE;this.updateTransform(i),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==Qr.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=hOe(n,this),this._priorityProgressiveResolution=mOe(n,this),this.priorityDeferred=uOe(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};zo.prototype.updateExpiration=function(){if(d(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=te.now(Dse);te.lessThan(this.expireDate,e)&&(this._contentState=Fo.EXPIRED,this._expiredContent=this._content)}};function fOe(e){if(!d(e.expireDuration))return;let t=te.now(Dse);te.addSeconds(t,e.expireDuration,t),d(e.expireDate)?te.lessThan(e.expireDate,t)&&te.clone(t,e.expireDate):e.expireDate=te.clone(t)}function pOe(e){return function(){return e._priority}}zo.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?bOe(this):gOe(this)};function bOe(e){let t=e._content,n=e._tileset;if(!d(t)){let o=ri(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new VW(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(d(i))return e._contentState=Fo.LOADING,i.then(o=>{if(!e.isDestroyed()&&d(o))return e._contentState=Fo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=Fo.FAILED,o})}async function yOe(e,t,n,i,o){let r=e._contentState;e._contentState=Fo.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===$n.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=Fo.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===$n.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await xOe(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=Fo.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=Fo.FAILED,a}}function gOe(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new Uo({throttle:!0,throttleByServer:!0,type:Jr.TILES3D,priorityFunction:pOe(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!d(r)){++o.statistics.numberOfAttemptedRequests;return}return yOe(e,o,i,n,r)}async function xOe(e,t){let n=tf(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===cs.GEOMETRY||n.contentType===cs.VECTOR,(n.contentType===cs.IMPLICIT_SUBTREE||n.contentType===cs.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===cs.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=Qx[n.contentType];if(e.isDestroyed())return;d(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,l=e.implicitCoordinates;o.metadata=c.getContentMetadataView(l,0)}else e.hasImplicitContent||(o.metadata=jx(i,s));let a=qx(i,s);return d(a)&&(o.group=new px({metadata:a})),o}zo.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};zo.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=Fo.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var Bse=new ce;function aK(e,t){if(t.mode!==ie.SCENE3D&&!d(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=ce.projectTo2D(n,t.mapProjection,Bse);e._boundingVolume2D=new t0(i.center,i.radius)}return t.mode!==ie.SCENE3D?e._boundingVolume2D:e._boundingVolume}function _Oe(e,t){if(t.mode!==ie.SCENE3D&&!d(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=ce.projectTo2D(n,t.mapProjection,Bse);e._contentBoundingVolume2D=new t0(i.center,i.radius)}return t.mode!==ie.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}zo.prototype.visibility=function(e,t){let n=e.cullingVolume,i=aK(this,e),o=this._tileset,r=o.clippingPlanes;if(d(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=s!==qt.INSIDE,s===qt.OUTSIDE)return Qr.MASK_OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};zo.prototype.contentVisibility=function(e){if(!d(this._contentBoundingVolume))return qt.INSIDE;if(this._visibilityPlaneMask===Qr.MASK_INSIDE)return qt.INSIDE;let t=e.cullingVolume,n=_Oe(this,e),i=this._tileset,o=i.clippingPlanes;if(d(o)&&o.enabled){let r=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=r!==qt.INSIDE,r===qt.OUTSIDE)return qt.OUTSIDE}return t.computeVisibility(n)};zo.prototype.distanceToTile=function(e){return aK(this,e).distanceToCamera(e)};var TOe=new h;zo.prototype.distanceToTileCenter=function(e){let n=aK(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,TOe);return h.dot(e.camera.directionWC,i)};zo.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!d(t)||t.distanceToCamera(e)===0};var Yse=new $,Ose=new h,SOe=new $,Kse=new h,Hse=new de,COe=new Wn,sK=new w;function VOe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Kse),o=$.fromArray(e,3,SOe);i=w.multiplyByPoint(t,i,i);let r=w.getMatrix3(t,Yse);return o=$.multiply(r,o,o),d(n)?(n.update(i,o),n):new gu(i,o)}function LOe(e,t,n,i){let o=de.unpack(e,0,Hse),r=e[4],s=e[5],a=Wn.fromRectangle(o,r,s,re.WGS84,COe),c=a.center,l=a.halfAxes;t=w.multiplyTransformation(t,w.inverseTransformation(n,sK),sK),c=w.multiplyByPoint(t,c,c);let u=w.getMatrix3(t,Yse);return l=$.multiply(u,l,l),d(i)&&i instanceof gu?(i.update(c,l),i):new gu(c,l)}function ROe(e,t,n,i){if(!w.equalsEpsilon(t,n,W.EPSILON8))return LOe(e,t,n,i);if(d(i))return i;let o=de.unpack(e,0,Hse);return new bu({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function ZOe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Kse),o=e[3];i=w.multiplyByPoint(t,i,i);let r=w.getScale(t,Ose),s=h.maximumComponent(r);return o*=s,d(n)?(n.update(i,o),n):new t0(i,o)}zo.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(d(i)&&(o=Px.parseBoundingVolumeSemantic("TILE",i)),d(o)&&(e=o),!d(e))throw new me("boundingVolume must be defined");if(ri(e,"3DTILES_bounding_volume_S2"))return new XW(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(d(r))return VOe(r,t,n);if(d(s))return ROe(s,t,this._initialTransform,n);if(d(a))return ZOe(a,t,n);throw new me("boundingVolume must contain a sphere, region, or box")};zo.prototype.updateTransform=function(e){e=g(e,w.IDENTITY);let t=w.multiplyTransformation(e,this.transform,sK);if(!!w.equals(t,this.computedTransform))return;w.clone(t,this.computedTransform);let i=this._header,o=this._contentHeader;this._boundingVolume=this.createBoundingVolume(i.boundingVolume,this.computedTransform,this._boundingVolume),d(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(o.boundingVolume,this.computedTransform,this._contentBoundingVolume)),d(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(i.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};zo.prototype.updateGeometricErrorScale=function(){let e=w.getScale(this.computedTransform,Ose),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!d(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function GOe(e,t,n,i){if(!i.isRender)return;let o=d(e._contentHeader)&&d(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=B.WHITE:c=B.DARKGRAY:c=B.YELLOW,d(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let l=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");l.color=Ut.toValue(c,l.color)}else!r&&d(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(d(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(B.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&d(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&d(e._viewerRequestVolume)?(d(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(B.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&d(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||d(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=B.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function EOe(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&d(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(d(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=Fo.FAILED,o}}function XOe(e,t){let n=t.clippingPlanes,i=0;d(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}zo.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;XOe(this,e),GOe(this,e,t,n),EOe(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;se.cacheBytes||n);){let s=r.item;r=r.next,this.unloadTile(e,s,t)}};l_.prototype.trim=function(){this._trimTiles=!0};var FW=l_;var Ovn=T(S(),1);function ZN(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function lK(e,t){let n;return t==="_loadTimestamp"?n=te.toDate(e).getTime():n=e,n}ZN.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=lK(e,n),this._referenceMaximum[n]=lK(t,n)};function POe(e,t){let n=e.tilePropertyName;if(d(n)){let i=lK(t[n],n);return d(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var cK=[new B(.1,.1,.1,1),new B(.153,.278,.878,1),new B(.827,.231,.49,1),new B(.827,.188,.22,1),new B(1,.592,.259,1),new B(1,.843,0,1)];ZN.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!d(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=POe(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+W.EPSILON7,c=W.clamp(i-o,0,s)/s,l=cK.length-1,u=c*l,m=Math.floor(u),p=Math.ceil(u),y=u-m,f=cK[m],x=cK[p],_=B.clone(B.WHITE);_.red=W.lerp(f.red,x.red,y),_.green=W.lerp(f.green,x.green,y),_.blue=W.lerp(f.blue,x.blue,y),e._debugColor=_};ZN.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(d(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=d(t)&&d(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var wW=ZN;var zvn=T(S(),1);function LC(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}LC.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function GN(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,l=t.texturesByteLength,u=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-l:l,e.batchTableByteLength+=n?-u:u):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),d(o)){let m=o.length;for(let p=0;p>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function uK(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}NW.encode2D=function(e,t){return(jse(e)|jse(t)<<1)>>>0};NW.decode2D=function(e,t){return d(t)||(t=new Array(2)),t[0]=qse(e),t[1]=qse(e>>1),t};NW.encode3D=function(e,t,n){return dK(e)|dK(t)<<1|dK(n)<<2};NW.decode3D=function(e,t){return d(t)||(t=new Array(3)),t[0]=uK(e),t[1]=uK(e>>1),t[2]=uK(e>>2),t};var sy=NW;function wo(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===Mr.OCTREE&&(this.z=e.z)}Object.defineProperties(wo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===Mr.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===Mr.OCTREE?sy.encode3D(this.x,this.y,this.z):sy.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===Mr.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});wo.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===Mr.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};wo.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===Mr.OCTREE?this.z===e.z:!0)};wo.prototype.isImplicitTilesetRoot=function(){return this.level===0};wo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};wo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};wo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===Mr.OCTREE&&(e.z=this.z),e};var $se=[0,0,0];wo.fromMortonIndex=function(e,t,n,i){let o;return e===Mr.OCTREE?(o=sy.decode3D(i,$se),new wo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=sy.decode2D(i,$se),new wo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};wo.fromTileIndex=function(e,t,n){let i,o,r;return e===Mr.OCTREE?(i=Math.floor(W.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(W.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),wo.fromMortonIndex(e,t,i,r)};var u_=wo;var RFn=T(S(),1);var _Fn=T(S(),1);function r0(){}r0.selectTiles=function(e,t){fe.throwInstantiationError()};r0.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};r0.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};r0.selectTile=function(e,t){if(e.contentVisibility(t)===qt.OUTSIDE)return;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];eae(r,t),e._visible=r._visible;return}if(MOe(e,t)){e._visible=!1;return}let i=e.refine===Wo.REPLACE,o=e._optimChildrenWithinParent===hu.USE_OPTIMIZATION;if(i&&o&&n&&!NOe(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function MOe(e,t){let{parent:n,tileset:i}=e;return!d(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Wo.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function NOe(e,t){let n=!1,i=e.children;for(let o=0;o0;){UW.stackMaximumLength=Math.max(UW.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Wo.ADD,l=a.refine===Wo.REPLACE,u=kOe(a);u&&DOe(a,s,t),(c||l&&!u)&&(BOe(e,a),o(a,t),YOe(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return UW.stack.trim(UW.stackMaximumLength),n};function kOe(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function DOe(e,t,n){let{children:i}=e;for(let o=0;o0;){DW.stackMaximumLength=Math.max(DW.stackMaximumLength,a.length);let c=a.pop(),l=c.parent,u=!d(l)||l._refines;c._refines=i(c)?OOe(c,a,t)&&u:!1;let m=!c._refines&&u;c.hasRenderableContent?c.refine===Wo.ADD?(mK(c,t),o(c,t)):c.refine===Wo.REPLACE&&(o(c,t),m&&mK(c,t)):(n._emptyTiles.push(c),o(c,t),m&&mK(c,t)),r(c,t),s(c,t)}}function HOe(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=Gs,s=!0,a=BW.stack;for(a.push(e);a.length>0;){BW.stackMaximumLength=Math.max(BW.stackMaximumLength,a.length);let c=a.pop(),l=c.children,u=l.length,m=!c.hasRenderableContent&&n(c),p=!c.hasRenderableContent&&c.children.length===0;if(!m&&!c.contentAvailable&&!p&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),m)for(let y=0;y0;){KW.stackMaximumLength=Math.max(KW.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;cn._depth+e.skipLevels)}function qOe(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=Gs;for(let l=0;lt:e._screenSpaceError>t:!0}function eKe(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.memoryAdjustedScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=Gs,c=OW.stack;for(c.push(e);c.length>0;){OW.stackMaximumLength=Math.max(OW.stackMaximumLength,c.length);let l=c.pop();QOe(l,t);let u=l.parent,m=!d(u)||u._refines;l._refines=o(l)?qOe(l,c,t)&&m:!1;let p=!l._refines&&m;l.hasRenderableContent?l.refine===Wo.ADD?(EN(l,t),r(l,t)):l.refine===Wo.REPLACE&&($Oe(l,i)?(r(l,t),p&&EN(l,t)):p?(EN(l,t),r(l,t)):jOe(n,l)&&r(l,t)):(n._emptyTiles.push(l),r(l,t),p&&EN(l,t)),s(l,t),a(l,t)}}function tKe(e,t){let{selectTile:n,canTraverse:i}=Gs,{stack:o,ancestorStack:r}=s0,s;for(o.push(e);o.length>0||r.length>0;){if(s0.stackMaximumLength=Math.max(s0.stackMaximumLength,o.length),s0.ancestorStackMaximumLength=Math.max(s0.ancestorStackMaximumLength,r.length),r.length>0){let l=r.peek();if(l._stackLength===o.length){r.pop(),l!==s&&(l._finalResolution=!1),n(l,t);continue}}let a=o.pop();if(!d(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===Wo.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let l=a.children;for(let u=0;uli._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=vt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=w.clone(s._initialClippingPlanesOriginMatrix),s};Sr.loadJson=function(e){return Ee.createIfNeeded(e).fetchJson()};Sr.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};Sr.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!d(i))throw new me("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new me("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");d(t.extensionsRequired)&&Sr.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;d(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=oae(this,e,t.root,n);d(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===Wo.ADD;let l=c._header.children;if(d(l))for(let u=0;u_.minimumRadius){let L=he.fromCartesian(V,_,iKe);n=h.normalize(a.positionWC,rae),i=a.directionWC,o=a.positionCartographic.height,r=0,s=L.height*2}else{let L=w.multiplyByPoint(x,a.positionWC,sKe);if(n=h.UNIT_Z,i=w.multiplyByPointAsVector(x,a.directionWC,aKe),i=h.normalize(i,i),o=L.z,l instanceof gu){let Z=c._header.boundingVolume.box[11];r=V.z-Z,s=V.z+Z}else if(l instanceof t0){let Z=C.radius;r=V.z-Z,s=V.z+Z}}}let u=e.dynamicScreenSpaceErrorHeightFalloff,m=r+(s-r)*u,p=s,y=W.clamp((o-m)/(p-m),0,1),f=1-Math.abs(h.dot(i,n));f=f*(1-y),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*f}function lKe(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();d(o)&&(o.then(r=>{!d(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{cae(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?xKe(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function aae(e,t){return e._priority-t._priority}Sr.prototype.postPassesUpdate=function(e){d(this._root)&&(dKe(this,e),TKe(this,e),this._cache.unloadTiles(this,dae),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};Sr.prototype.prePassesUpdate=function(e){if(!d(this._root))return;hKe(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,d(t)&&t.enabled&&t.update(e),d(this._loadTimestamp)||(this._loadTimestamp=te.clone(e.time)),this._timeSinceLoad=Math.max(te.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&cKe(this,e),e.newFrame&&this._cache.reset()};function dKe(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o=1;if(r._contentState!==Fo.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function uKe(e){let t=e._requestedTiles;t.sort(aae);for(let n=0;n0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`))}function mKe(e){let t=e._processingQueue,n=0;for(let i=0;i0&&(t[i-n]=o)}t.length-=n}function hKe(e,t){mKe(e);let n=e._processingQueue,{cacheBytes:i,maximumCacheOverflowBytes:o,statistics:r}=e,s=i+o,a=!1;for(let c=0;cs){a=!0;break}let l=n[c];try{l.process(e,t),l.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(l))}catch(u){--r.numberOfTilesProcessing,cae(u,e,l)}}e.totalMemoryUsageInBytes0&&fKe(e)}function fKe(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n0&&(i+=` +Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,o++),i+=` +Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${sae(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${sae(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a0;e._backfaceCommands.length=0,a&&(d(e._stencilClearCommand)||(e._stencilClearCommand=new ti({stencil:0,pass:Re.CESIUM_3D_TILE,renderState:De.fromCache({stencilMask:wt.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:l}=e,u=n.isRender,m=i.length;for(let f=0;f=0;--_)i[m+x+_]=i[m+_];for(let _=0;_0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(d(e._tileDebugLabels)||(e._tileDebugLabels=new qh),yKe(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var lae=[];function xKe(e,t){let n=t,i=lae;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r{t.push(St.clone(i))});let n=e.asset.extras;if(d(n)&&d(n.cesium)&&d(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;oi.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}Sr.prototype.getTraversal=function(e){let{pass:t}=e;return t===Xo.MOST_DETAILED_PRELOAD||t===Xo.MOST_DETAILED_PICK?kW:this.isSkippingLevelOfDetail?HW:YW};Sr.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};Sr.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Xo.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Xo.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Xo.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=Xo.getPassOptions(n),a=s.ignoreCommands,c=g(t.commandList,i),l=c.length;e.commandList=c,e.camera=g(t.camera,o),e.cullingVolume=g(t.cullingVolume,r);let u=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=VKe(this,e,u,s)),a&&(c.length=l),e.commandList=i,e.camera=o,e.cullingVolume=r};Sr.prototype.hasExtension=function(e){return d(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};Sr.prototype.isDestroyed=function(){return!1};Sr.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),d(this._root)){let e=lae;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i-1;i--)pK(this,e[i],t,n);return ue(this)};ay.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!d(n)||n.loadFail)return lt.FAILED;let i=n.tilesetPrimitive;return d(i)?i.show?(ce.clone(i.boundingSphere,t),lt.DONE):lt.FAILED:lt.PENDING};ay.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],d(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],d(r._tileset)?s.set(r.id,r):(pK(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],pK(this,r,a,c),s.remove(r.id)};function pK(e,t,n,i){let o=n[t.id];d(o)&&(d(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function RKe(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await zs.fromUrl(e);if(o.id=n,i.add(o),!d(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var zW=ay;var c9n=T(S(),1);var ZKe=B.WHITE,GKe=B.BLACK,EKe=new D(2,2);function RC(e){e=g(e,g.EMPTY_OBJECT),this._definitionChanged=new ye,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(RC.prototype,{isConstant:{get:function(){return H.isConstant(this._evenColor)&&H.isConstant(this._oddColor)&&H.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:le("evenColor"),oddColor:le("oddColor"),repeat:le("repeat")});RC.prototype.getType=function(e){return"Checkerboard"};RC.prototype.getValue=function(e,t){return d(t)||(t={}),t.lightColor=H.getValueOrClonedDefault(this._evenColor,e,ZKe,t.lightColor),t.darkColor=H.getValueOrClonedDefault(this._oddColor,e,GKe,t.darkColor),t.repeat=H.getValueOrDefault(this._repeat,e,EKe),t};RC.prototype.equals=function(e){return this===e||e instanceof RC&&H.equals(this._evenColor,e._evenColor)&&H.equals(this._oddColor,e._oddColor)&&H.equals(this._repeat,e._repeat)};var ZC=RC;var R9n=T(S(),1);var x9n=T(S(),1);var mae={id:void 0};function JW(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function ja(e){this._owner=e,this._entities=new Tt,this._addedEntities=new Tt,this._removedEntities=new Tt,this._changedEntities=new Tt,this._suspendCount=0,this._collectionChanged=new ye,this._id=Yn(),this._show=!0,this._firing=!1,this._refire=!1}ja.prototype.suspendEvents=function(){this._suspendCount++};ja.prototype.resumeEvents=function(){this._suspendCount--,JW(this)};Object.defineProperties(ja.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t-1;c--)s=a[c],fae(e,p,y,s);for(r=n-1;r>=0;r--)for(l=t[r],l.collectionChanged.addEventListener(Cr.prototype._onCollectionChanged,e),a=l.values,y=l.id,c=a.length-1;c>-1;c--){s=a[c],hae(e,p,y,s);let x=m.getById(s.id);d(x)||(x=u.getById(s.id),d(x)?bK(x):(IN.id=s.id,x=new Oo(IN)),m.add(x)),x.merge(s)}e._collectionsCopy=t.slice(0),u.suspendEvents(),u.removeAll();let f=m.values;for(r=0;r=0;a--)c=i[a].getById(x),d(c)&&(d(l)||(l=r.getById(x),bK(l)),l.merge(c));d(l)||r.removeById(x),l=void 0}let y=t.length;for(s=0;s=0;a--)c=i[a].getById(x),d(c)&&(d(l)||(l=r.getById(x),d(l)?bK(l):(IN.id=x,l=new Oo(IN),r.add(l))),l.merge(c));l=void 0}r.resumeEvents()};Cr.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),l=c[t],u=!d(l),m=!0;for(let p=s-1;p>=0;p--){let y=o[p].getById(e.id);if(d(y)){let f=y[t];if(d(f)){if(m)if(m=!1,d(f.merge)&&d(f.clone))l=f.clone(l);else{l=f;break}l.merge(f)}}}u&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=l};var yK=Cr;var q9n=T(S(),1);var K9n=T(S(),1);var G9n=T(S(),1);function gK(){this._removalFunctions=[]}gK.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};gK.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};Lr.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};Lr.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};Lr.prototype.contains=function(e){return this.indexOf(e)>=0};var xK=new Tn;Lr.prototype.indexOf=function(e){let t=this._intervals;xK.start=e,xK.stop=e;let n=Lo(t,xK,TK);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-10&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i0&&(o=te.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((d(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(te.greaterThan(e.stop,n[i-1].stop)?e=new Tn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Tn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=te.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Tn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new Tn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(d(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Tn({start:e.start,stop:te.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:te.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Tn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};Lr.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Lo(t,e,TK);n<0&&(n=~n);let i=!1;for(n>0&&(te.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(te.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new Tn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new Tn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),QW[2]=Qf(l)?29:28;a>QW[c]||c>=13;)a>QW[c]&&(a-=QW[c],++c),c>=13&&(--c,l+=Math.floor(c/12),c=c%12,++c),QW[2]=Qf(l)?29:28;return qa.millisecond=i,qa.second=o,qa.minute=r,qa.hour=s,qa.day=a,qa.month=c,qa.year=l,te.fromGregorianDate(qa,n)}var XKe=new te,IKe=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function bae(e,t){if(!d(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(IKe);if(!d(n))return!1;if(d(n[1])&&(t.year=Number(n[1].replace(",","."))),d(n[2])&&(t.month=Number(n[2].replace(",","."))),d(n[3])&&(t.day=Number(n[3].replace(",","."))*7),d(n[4])&&(t.day+=Number(n[4].replace(",","."))),d(n[5])&&(t.hour=Number(n[5].replace(",","."))),d(n[6])&&(t.minute=Number(n[6].replace(",","."))),d(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),te.toGregorianDate(te.fromIso8601(e,XKe),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var jW=new Jf;Lr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=te.fromIso8601(n[0]),o=te.fromIso8601(n[1]),r=[];if(!bae(n[2],jW))r.push(i,o);else{let s=te.clone(i);for(r.push(s);te.compare(s,o)<0;)s=_K(s,jW),te.compare(o,s)<=0&&te.clone(o,s),r.push(s)}return Lr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Lr.fromIso8601DateArray=function(e,t){return Lr.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return te.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Lr.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=g(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let l=0;l=0?-a:a}var OKe=new h(-1,0,0),h_=new w,KKe=new w,VK=new $,HKe=$.IDENTITY.clone(),zKe=new h,JKe=new se,yae=new h;function a0(e,t,n,i,o,r,s,a){let c=zKe,l=JKe;h_=vt.eastNorthUpToFixedFrame(e,o,h_),c=w.multiplyByPointAsVector(h_,OKe,c),c=h.normalize(c,c);let u=YKe(c,t,e,o);VK=$.fromRotationZ(u,VK),yae.z=r,h_=w.multiplyTransformation(h_,w.fromRotationTranslation(VK,yae,KKe),h_);let m=HKe;m[0]=s;for(let p=0;p0){let x=l?2:1;for(let _=0;_=0};var qKe=new h,$Ke=new h;qW.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=BKe(e,r),a=i._granularity,c=i._cornerType,l=o?jKe(t,n):gae(t,n),u=o?gae(t,n):void 0,m=n.height/2,p=n.width/2,y=e.length,f=[],x=o?[]:void 0,_=vKe,C=FKe,V=wKe,L=AKe,Z=MKe,G=NKe,X=UKe,P=kKe,v=DKe,A=e[0],M=e[1];L=r.geodeticSurfaceNormal(A,L),_=h.subtract(M,A,_),_=h.normalize(_,_),P=h.cross(L,_,P),P=h.normalize(P,P);let b=s[0],R=s[1];o&&(x=a0(A,P,u,x,r,b+m,1,1)),v=h.clone(A,v),A=M,C=h.negate(_,C);let E,I;for(let Y=1;YVe;p--)_e=W.PI_OVER_TWO-p*xe,q[ae++]=1-be*(1+Math.cos(_e)),q[ae++]=.5*(1+Math.sin(_e));for(p=Ve;p>0;p--)_e=W.PI_OVER_TWO-xe*p,q[ae++]=1-Te*(1+Math.cos(_e)),q[ae++]=.5*(1+Math.sin(_e));for(p=u-_;p>0;p--)q[ae++]=p*Te,q[ae++]=1;for(p=1;p0;p--)q[ae++]=(p-1)*Te,q[ae++]=1}c.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:q})}return t.normal&&(c.normal=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:X.normals})),t.tangent&&(c.tangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:X.tangents})),t.bitangent&&(c.bitangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:X.bitangents})),{attributes:c,indices:k}}function mHe(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,l;if(t.normal||t.bitangent||t.tangent){let u=t.normal?new Float32Array(s*6):void 0,m=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,y=Pae,f=vae,x=AN,_=MN,C=uHe,V=Fae,L=c;for(l=0;l-t?(o=xHe,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),XK(e,o,i)};of.prototype.computeHorizonCullingPoint=function(e,t,n){return qae(this._ellipsoid,e,t,n)};var Qae=re.clone(re.UNIT_SPHERE);of.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=jae(this._ellipsoid,n,Qae);return qae(o,e,t,i)};of.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return $ae(this._ellipsoid,e,t,n,i,o)};of.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=jae(this._ellipsoid,o,Qae);return $ae(s,e,t,n,i,r)};var _He=[];of.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=de.subsample(e,t,0,_He),o=ce.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var THe=new h;function jae(e,t,n){if(d(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,THe);e=re.fromCartesian3(i,n)}return e}function qae(e,t,n,i){d(i)||(i=new h);let o=nce(e,t),r=0;for(let s=0,a=n.length;s0:s>o&&s*s/h.magnitudeSquared(r)>o)}var SHe=new h,CHe=new h;function ece(e,t,n){let i=e.transformPositionToScaledSpace(t,SHe),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,CHe);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),l=1/r,u=Math.sqrt(o-1)*l;return 1/(a*l-c*u)}function tce(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var EK=new h;function nce(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,EK),h.normalize(EK,EK))}var d0=of;var ZNn=T(S(),1);function Gr(e,t){e=g(e,g.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;d(n)&&(n=Pt.clone(n)),d(i)&&(i=Pt.clone(i)),d(o)&&(o=Gt.clone(o)),this._show=g(e.show,!0),this._position=h.clone(g(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._color=B.clone(g(e.color,B.WHITE)),this._outlineColor=B.clone(g(e.outlineColor,B.TRANSPARENT)),this._outlineWidth=g(e.outlineWidth,0),this._pixelSize=g(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=g(e.disableDepthTestDistance,0),this._id=e.id,this._collection=g(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1}var ice=Gr.SHOW_INDEX=0,sce=Gr.POSITION_INDEX=1,VHe=Gr.COLOR_INDEX=2,LHe=Gr.OUTLINE_COLOR_INDEX=3,RHe=Gr.OUTLINE_WIDTH_INDEX=4,ZHe=Gr.PIXEL_SIZE_INDEX=5,GHe=Gr.SCALE_BY_DISTANCE_INDEX=6,EHe=Gr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,XHe=Gr.DISTANCE_DISPLAY_CONDITION_INDEX=8,IHe=Gr.DISABLE_DEPTH_DISTANCE_INDEX=9;Gr.NUMBER_OF_PROPERTIES=10;function Su(e,t){let n=e._pointPrimitiveCollection;d(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Gr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Su(this,ice))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),Su(this,sce))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Pt.equals(t,e)||(this._scaleByDistance=Pt.clone(e,t),Su(this,GHe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Pt.equals(t,e)||(this._translucencyByDistance=Pt.clone(e,t),Su(this,EHe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Su(this,ZHe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;B.equals(t,e)||(B.clone(e,t),Su(this,VHe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;B.equals(t,e)||(B.clone(e,t),Su(this,LHe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Su(this,RHe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Gt.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=Gt.clone(e,this._distanceDisplayCondition),Su(this,XHe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Su(this,IHe))}},id:{get:function(){return this._id},set:function(e){this._id=e,d(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Su(this,ice))}}});Gr.prototype.getPickId=function(e){return d(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Gr.prototype._getActualPosition=function(){return this._actualPosition};Gr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),Su(this,sce)};var oce=new se;Gr._computeActualPosition=function(e,t,n){return t.mode===ie.SCENE3D?e:(w.multiplyByPoint(n,e,oce),Ji.computeActualWgs84Position(t,oce))};var rce=new se;Gr._computeScreenSpacePosition=function(e,t,n,i){let o=w.multiplyByVector(e,se.fromElements(t.x,t.y,t.z,1,rce),rce);return Ji.wgs84ToWindowCoordinates(n,o,i)};Gr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;d(t)||(t=new D);let i=n.modelMatrix,o=Gr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(d(o))return o.y=e.canvas.clientHeight-o.y,o};Gr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return d(n)||(n=new He),n.x=r,n.y=s,n.width=a,n.height=c,n};Gr.prototype.equals=function(e){return this===e||d(e)&&this._id===e._id&&h.equals(this._position,e._position)&&B.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&B.equals(this._outlineColor,e._outlineColor)&&Pt.equals(this._scaleByDistance,e._scaleByDistance)&&Pt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Gt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Gr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Xs=Gr;var o5n=T(S(),1);var ENn=T(S(),1),hy=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; + +void main() +{ + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var INn=T(S(),1),o2=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec3 distanceDisplayConditionAndDisableDepth; // near, far, disableDepthTestDistance + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color; + vec4 outlineColor; + vec4 pickColor; + + // compressedAttribute0.z => pickColor.rgb + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + // compressedAttribute0.x => color.rgb + + temp = compressedAttribute0.x * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + // compressedAttribute0.y => outlineColor.rgb + + temp = compressedAttribute0.y * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a + + temp = compressedAttribute0.w * SHIFT_RIGHT8; + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor = pickColor / 255.0; + + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor /= 255.0; + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepth.x; + float farSq = distanceDisplayConditionAndDisableDepth.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; +} +`;var WHe=Xs.SHOW_INDEX,PK=Xs.POSITION_INDEX,ace=Xs.COLOR_INDEX,PHe=Xs.OUTLINE_COLOR_INDEX,vHe=Xs.OUTLINE_WIDTH_INDEX,FHe=Xs.PIXEL_SIZE_INDEX,cce=Xs.SCALE_BY_DISTANCE_INDEX,lce=Xs.TRANSLUCENCY_BY_DISTANCE_INDEX,dce=Xs.DISTANCE_DISPLAY_CONDITION_INDEX,wHe=Xs.DISABLE_DEPTH_DISTANCE_INDEX,vK=Xs.NUMBER_OF_PROPERTIES,ec={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};function Cu(e){e=g(e,g.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(vK),this._maxPixelSize=1,this._baseVolume=new ce,this._baseVolumeWC=new ce,this._baseVolume2D=new ce,this._boundingVolume=new ce,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=g(e.show,!0),this.modelMatrix=w.clone(g(e.modelMatrix,w.IDENTITY)),this._modelMatrix=w.clone(w.IDENTITY),this.debugShowBoundingVolume=g(e.debugShowBoundingVolume,!1),this.blendOption=g(e.blendOption,So.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ie.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW,Ne.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(Cu.prototype,{length:{get:function(){return FK(this),this._pointPrimitives.length}}});function uce(e){let t=e.length;for(let n=0;n0&&(e._shaderDisableDepthDistance=!0,l===Number.POSITIVE_INFINITY&&(l=-1)),r(o,s,a,l)}function MHe(e,t,n,i){mce(e,t,n,i),hce(e,t,n,i),fce(e,t,n,i),pce(e,t,n,i),bce(e,t,n,i)}function WK(e,t,n,i,o,r){let s;i.mode===ie.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c0){this._vaf=AHe(c,n,this._buffersUsage),a=this._vaf.writers;for(let G=0;G0){let G=kHe;G.length=0,(r[PK]||r[vHe]||r[FHe])&&G.push(mce),(r[ace]||r[PHe])&&G.push(hce),(r[WHe]||r[lce])&&G.push(fce),r[cce]&&G.push(pce),(r[dce]||r[wHe])&&G.push(bce);let X=G.length;if(a=this._vaf.writers,o/n>.1){for(let P=0;Pn*1.5&&(i.length=n),!d(this._vaf)||!d(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ce.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,p=w.IDENTITY;e.mode===ie.SCENE3D?(p=this.modelMatrix,m=ce.clone(this._baseVolumeWC,this._boundingVolume)):m=ce.clone(this._baseVolume2D,this._boundingVolume),UHe(this,e,m);let y=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,y&&(this._blendOption===So.OPAQUE||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=De.fromCache({depthTest:{enabled:!0,func:ne.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===So.TRANSLUCENT||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=De.fromCache({depthTest:{enabled:!0,func:ne.LEQUAL},depthMask:!1,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let f,x;(y||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(f=new Be({sources:[o2]}),this._shaderScaleByDistance&&f.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&f.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&f.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&f.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===So.OPAQUE_AND_TRANSLUCENT&&(x=new Be({defines:["OPAQUE"],sources:[hy]}),this._sp=Qt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:ec}),x=new Be({defines:["TRANSLUCENT"],sources:[hy]}),this._spTranslucent=Qt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:ec})),this._blendOption===So.OPAQUE&&(x=new Be({sources:[hy]}),this._sp=Qt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:ec})),this._blendOption===So.TRANSLUCENT&&(x=new Be({sources:[hy]}),this._spTranslucent=Qt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:ec})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let _,C,V,L,Z=e.commandList;if(l.render||u){let G=this._colorCommands,X=this._blendOption===So.OPAQUE,P=this._blendOption===So.OPAQUE_AND_TRANSLUCENT;_=this._vaf.va,C=_.length,G.length=C;let v=P?C*2:C;for(L=0;L>4;if(o!==wK)throw new Error(`Got v${o} data when expected v${wK}.`);let r=yce[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new e(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=yce.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,s2,t),this.coords=new this.ArrayType(this.data,s2+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(s2+s+a+c),this.ids=new this.IndexArrayType(this.data,s2,t),this.coords=new this.ArrayType(this.data,s2+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(wK<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return MK(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],l=[];for(;c.length;){let u=c.pop()||0,m=c.pop()||0,p=c.pop()||0;if(m-p<=a){for(let _=p;_<=m;_++){let C=s[2*_],V=s[2*_+1];C>=t&&C<=i&&V>=n&&V<=o&&l.push(r[_])}continue}let y=p+m>>1,f=s[2*y],x=s[2*y+1];f>=t&&f<=i&&x>=n&&x<=o&&l.push(r[y]),(u===0?t<=f:n<=x)&&(c.push(p),c.push(y-1),c.push(1-u)),(u===0?i>=f:o>=x)&&(c.push(y+1),c.push(m),c.push(1-u))}return l}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],l=i*i;for(;a.length;){let u=a.pop()||0,m=a.pop()||0,p=a.pop()||0;if(m-p<=s){for(let _=p;_<=m;_++)gce(r[2*_],r[2*_+1],t,n)<=l&&c.push(o[_]);continue}let y=p+m>>1,f=r[2*y],x=r[2*y+1];gce(f,x,t,n)<=l&&c.push(o[y]),(u===0?t-i<=f:n-i<=x)&&(a.push(p),a.push(y-1),a.push(1-u)),(u===0?t+i>=f:n+i>=x)&&(a.push(y+1),a.push(m),a.push(1-u))}return c}};function MK(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;xce(e,t,s,i,o,r),MK(e,t,n,i,s-1,1-r),MK(e,t,n,s+1,o,1-r)}function xce(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let l=o-i+1,u=n-i+1,m=Math.log(l),p=.5*Math.exp(2*m/3),y=.5*Math.sqrt(m*p*(l-p)/l)*(u-l/2<0?-1:1),f=Math.max(i,Math.floor(n-u*p/l+y)),x=Math.min(o,Math.floor(n+(l-u)*p/l+y));xce(e,t,n,f,x,r)}let s=t[2*n+r],a=i,c=o;for(a2(e,t,i,n),t[2*o+r]>s&&a2(e,t,i,o);as;)c--}t[2*i+r]===s?a2(e,t,i,c):(c++,a2(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function a2(e,t,n,i){AK(e,n,i),AK(t,2*n,2*i),AK(t,2*n+1,2*i+1)}function AK(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function gce(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function km(e){e=g(e,g.EMPTY_OBJECT),this._enabled=g(e.enabled,!1),this._pixelRange=g(e.pixelRange,80),this._minimumClusterSize=g(e.minimumClusterSize,2),this._clusterBillboards=g(e.clusterBillboards,!0),this._clusterLabels=g(e.clusterLabels,!0),this._clusterPoints=g(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new ye,this.show=g(e.show,!0)}function _ce(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var DHe=new He;function Tce(e,t,n,i,o){if(d(e._labelCollection)&&i._clusterLabels?o=Qb.getScreenSpaceBoundingBox(e,t,o):d(e._billboardCollection)&&i._clusterBillboards?o=uo.getScreenSpaceBoundingBox(e,t,o):d(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Xs.getScreenSpaceBoundingBox(e,t,o)),_ce(o,n),i._clusterLabels&&!d(e._labelCollection)&&d(e.id)&&Cce(i,e.id.id)&&d(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=Qb.getScreenSpaceBoundingBox(s,t,DHe);_ce(a,n),o=He.union(o,a,o)}return o}function BHe(e,t){if(e.clusterShow=!0,!d(e._labelCollection)&&d(e.id)&&Cce(t,e.id.id)&&d(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function Sce(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function Cce(e,t){return d(e)&&d(e._collectionIndicesByEntity[t])&&d(e._collectionIndicesByEntity[t].labelIndex)}function NK(e,t,n,i,o){if(!d(e))return;let r=e.length;for(let s=0;s0){let F=new c2(V.length,64,Uint32Array);for(let N=0;N=u)for(Sce(N.position,R,b,e),p.push(N),Z=0;Z=u){let U=h.multiplyByScalar(O,1/R,O);for(Sce(U,R,b,e),p.push({position:U,width:k.width,height:k.height,minimumWidth:X.width,minimumHeight:X.height}),Z=0;Z0?(a=l.shift(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let u=this;return Promise.resolve().then(function(){u._clusterDirty=!0}),c}}function DK(e,t){let n=e._collectionIndicesByEntity[t];!d(n.billboardIndex)&&!d(n.labelIndex)&&!d(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}km.prototype.getLabel=kK("_labelCollection",qh,"_unusedLabelIndices","labelIndex");km.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!d(this._labelCollection)||!d(t)||!d(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,DK(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};km.prototype.getBillboard=kK("_billboardCollection",od,"_unusedBillboardIndices","billboardIndex");km.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!d(this._billboardCollection)||!d(t)||!d(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,DK(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};km.prototype.getPoint=kK("_pointCollection",vC,"_unusedPointIndices","pointIndex");km.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!d(this._pointCollection)||!d(t)||!d(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,DK(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function UK(e){if(!d(e))return;let t=e.length;for(let n=0;n0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),d(this._billboardCollection)&&this._billboardCollection.length>0&&!d(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,zHe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),d(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),d(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),d(this._clusterPointCollection)&&this._clusterPointCollection.update(e),d(this._labelCollection)&&this._labelCollection.update(e),d(this._billboardCollection)&&this._billboardCollection.update(e),d(this._pointCollection)&&this._pointCollection.update(e)};km.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),d(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var ad=km;function BK(e){this._name=e,this._clock=void 0,this._changed=new ye,this._error=new ye,this._isLoading=!1,this._loading=new ye,this._entityCollection=new Es(this),this._entityCluster=new ad}Object.defineProperties(BK.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Zr.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});BK.prototype.update=function(e){return!0};var l2=BK;var PUn=T(S(),1);var Q5n=T(S(),1);var P5n=T(S(),1);var Vce={};Vce.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,l=new Float64Array(c*3),u,m=0,p=0,y=o?a*3:0,f=o?(a+i)*3:i*3;for(u=0;u0){let x=Math.min(r,o);l=Math.round(o/x),c+=x}let u=Ue.createTypedArray(s,c*2),m=0,p;for(p=0;p0)for(p=0;p0){for(c=0;c=t;i--)e[i]=e[a--]}for(i=0;i=0||d(m)&&te.compare(u,m)>=0));){for(qK[p++]=u,r=r+1,s=0;s0&&($K.length=y,Ice(n,l,$K),qK.length=p,Ice(t,c,qK))}else{for(s=0;so)return;if(this._backwardExtrapolationType===ld.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let Z=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===ld.NONE||o!==0&&te.secondsDifference(e,Z)>o)return;if(this._forwardExtrapolationType===ld.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,l=this._yTable,u=this._interpolationAlgorithm,m=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let Z=Math.min(u.getRequiredDataPoints(this._interpolationDegree,p),i);Z!==this._numberOfPoints&&(this._numberOfPoints=Z,c.length=Z,l.length=Z*m)}let y=this._numberOfPoints-1;if(y<1)return;let f=0,x=i-1;if(x-f+1>=y+1){let Z=a-(y/2|0)-1;Zx&&(G=x,Z=G-y,Z0){n=new Array(t);for(let i=0;ic&&e!==Object}let f=typeof e.unpack=="function"&&e!==Vu;if(!y&&!p){m?t[n]=new qn(f?e.unpack(l,0):l):t[n]=Mce(e,s,i);return}let x=t[n],_,C=i.epoch;if(d(C)&&(_=te.fromIso8601(C)),y&&!p){x instanceof ud||(t[n]=x=new ud(e)),x.addSamplesPackedArray(l,_),ON(i,x);return}let V;if(!y&&p){a=a.clone(),m?a.data=f?e.unpack(l,0):l:a.data=Mce(e,s,i),d(x)||(t[n]=x=m?new y0:new $a),m&&x instanceof y0?x.intervals.addInterval(a):x instanceof $a?(m&&(a.data=new qn(a.data)),x.intervals.addInterval(a)):(t[n]=x=Yce(x),m&&(a.data=new qn(a.data)),x.intervals.addInterval(a));return}d(x)||(t[n]=x=new $a),x instanceof $a||(t[n]=x=Yce(x));let L=x.intervals;V=L.findInterval(a),(!d(V)||!(V.data instanceof ud))&&(V=a.clone(),V.data=new ud(e),L.addInterval(V)),V.data.addSamplesPackedArray(l,_),ON(i,V.data)}function nle(e,t){if(e instanceof ud){e.removeSamples(t);return}else if(e instanceof y0){e.intervals.removeInterval(t);return}else if(e instanceof $a){let n=e.intervals;for(let i=0;ic),!f&&!p){m?e[t]=new Gc(h.unpack(l),y):e[t]=g2(r,n.reference);return}let x=e[t],_,C=n.epoch;if(d(C)&&(_=te.fromIso8601(C)),f&&!p){(!(x instanceof js)||d(y)&&x.referenceFrame!==y)&&(e[t]=x=new js(y,a)),x.addSamplesPackedArray(l,_),ON(n,x);return}let V;if(!f&&p){s=s.clone(),m?s.data=h.unpack(l):s.data=g2(r,n.reference),d(x)||(m?x=new b0(y):x=new Js(y),e[t]=x),m&&x instanceof b0&&d(y)&&x.referenceFrame===y?x.intervals.addInterval(s):x instanceof Js?(m&&(s.data=new Gc(s.data,y)),x.intervals.addInterval(s)):(e[t]=x=Oce(x),m&&(s.data=new Gc(s.data,y)),x.intervals.addInterval(s));return}d(x)?x instanceof Js||(e[t]=x=Oce(x)):e[t]=x=new Js(y);let L=x.intervals;V=L.findInterval(s),(!d(V)||!(V.data instanceof js)||d(y)&&V.data.referenceFrame!==y)&&(V=s.clone(),V.data=new js(y,a),L.addInterval(V)),V.data.addSamplesPackedArray(l,_),ON(n,V.data)}function ile(e,t){if(e instanceof js){e.removeSamples(t);return}else if(e instanceof b0){e.intervals.removeInterval(t);return}else if(e instanceof Js){let n=e.intervals;for(let i=0;i. version format.");let i=t._documentPacket;d(e.name)&&(i.name=e.name);let o=e.clock;if(d(o)){let r=i.clock;d(r)?(r.interval=g(o.interval,r.interval),r.currentTime=g(o.currentTime,r.currentTime),r.range=g(o.range,r.range),r.step=g(o.step,r.step),r.multiplier=g(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function aJe(e,t,n,i){let o=t.ellipse;if(!d(o))return;let r=or(o.interval),s=e.ellipse;d(s)||(e.ellipse=s=new sx),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),ge(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ke,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Vu,s,"rotation",o.rotation,r,i,n),ge(Vu,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),md(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(B,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ge(xn,s,"shadows",o.shadows,r,i,n),ge(Gt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(kn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function cJe(e,t,n,i){let o=t.ellipsoid;if(!d(o))return;let r=or(o.interval),s=e.ellipsoid;d(s)||(e.ellipsoid=s=new ax),ge(Boolean,s,"show",o.show,r,i,n),ge(h,s,"radii",o.radii,r,i,n),ge(h,s,"innerRadii",o.innerRadii,r,i,n),ge(Number,s,"minimumClock",o.minimumClock,r,i,n),ge(Number,s,"maximumClock",o.maximumClock,r,i,n),ge(Number,s,"minimumCone",o.minimumCone,r,i,n),ge(Number,s,"maximumCone",o.maximumCone,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),md(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(B,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"stackPartitions",o.stackPartitions,r,i,n),ge(Number,s,"slicePartitions",o.slicePartitions,r,i,n),ge(Number,s,"subdivisions",o.subdivisions,r,i,n),ge(xn,s,"shadows",o.shadows,r,i,n),ge(Gt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function lJe(e,t,n,i){let o=t.label;if(!d(o))return;let r=or(o.interval),s=e.label;d(s)||(e.label=s=new um),ge(Boolean,s,"show",o.show,r,i,n),ge(String,s,"text",o.text,r,i,n),ge(String,s,"font",o.font,r,i,n),ge(vo,s,"style",o.style,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Boolean,s,"showBackground",o.showBackground,r,i,n),ge(B,s,"backgroundColor",o.backgroundColor,r,i,n),ge(D,s,"backgroundPadding",o.backgroundPadding,r,i,n),ge(D,s,"pixelOffset",o.pixelOffset,r,i,n),ge(h,s,"eyeOffset",o.eyeOffset,r,i,n),ge(bi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ge(In,s,"verticalOrigin",o.verticalOrigin,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(B,s,"fillColor",o.fillColor,r,i,n),ge(B,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Pt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Pt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ge(Pt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Gt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function dJe(e,t,n,i){let o=t.model;if(!d(o))return;let r=or(o.interval),s=e.model;d(s)||(e.model=s=new mp),ge(Boolean,s,"show",o.show,r,i,n),ge(_2.default,s,"uri",o.gltf,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),ge(Number,s,"maximumScale",o.maximumScale,r,i,n),ge(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),ge(Boolean,s,"runAnimations",o.runAnimations,r,i,n),ge(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),ge(xn,s,"shadows",o.shadows,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(B,s,"silhouetteColor",o.silhouetteColor,r,i,n),ge(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),ge(B,s,"color",o.color,r,i,n),ge(Ha,s,"colorBlendMode",o.colorBlendMode,r,i,n),ge(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),ge(Gt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,l=o.nodeTransformations;if(d(l))if(Array.isArray(l))for(a=0,c=l.length;a-1;c--)n[c](s,e,t,i)}tH=void 0}function _Je(e){let t,n=e._documentPacket.clock;if(!d(n)){if(!d(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(Ye.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=te.secondsDifference(s,r),c=Math.round(a/120);return t=new Bm,t.startTime=te.clone(r),t.stopTime=te.clone(s),t.clockRange=Er.LOOP_STOP,t.multiplier=c,t.currentTime=te.clone(r),t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}d(e._clock)?t=e._clock.clone():(t=new Bm,t.startTime=Ye.MINIMUM_VALUE.clone(),t.stopTime=Ye.MAXIMUM_VALUE.clone(),t.currentTime=Ye.MINIMUM_VALUE.clone(),t.clockRange=Er.LOOP_STOP,t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=or(n.interval);return d(i)&&(t.startTime=i.start,t.stopTime=i.stop),d(n.currentTime)&&(t.currentTime=te.fromIso8601(n.currentTime)),d(n.range)&&(t.clockRange=g(Er[n.range],Er.LOOP_STOP)),d(n.step)&&(t.clockStep=g(mo[n.step],mo.SYSTEM_CLOCK_MULTIPLIER)),d(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function rle(e,t,n,i){n=g(n,g.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new St(s)),e._credit=s,typeof t=="string"||t instanceof Ee){t=Ee.createIfNeeded(t),o=t.fetchJson(),r=g(r,t.clone());let a=e._resourceCredits,c=t.credits;if(d(c)){let l=c.length;for(let u=0;u1;--b){if(C=W.PI_OVER_TWO-(b-1)*_,G=qC(-C,r,f,y,c,u,l,m,p,G),X=qC(C+Math.PI,r,f,y,c,u,l,m,p,X),t){for(L[Z++]=G.x,L[Z++]=G.y,L[Z++]=G.z,E=2*(b-1)+2,R=1;R1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;aW.PI&&(m.north=m.north>0?W.PI_OVER_TWO-W.EPSILON7:m.north,m.south=m.south<0?W.EPSILON7-W.PI_OVER_TWO:m.south,m.east=W.PI,m.west=-W.PI),m}function af(e){e=g(e,g.EMPTY_OBJECT);let t=e.center,n=g(e.ellipsoid,re.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=g(e.granularity,W.RADIANS_PER_DEGREE),s=g(e.vertexFormat,We.DEFAULT),a=g(e.height,0),c=g(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=re.clone(n),this._rotation=g(e.rotation,0),this._stRotation=g(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=We.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=g(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}af.packedLength=h.packedLength+re.packedLength+We.packedLength+9;af.pack=function(e,t,n){return n=g(n,0),h.pack(e._center,t,n),n+=h.packedLength,re.pack(e._ellipsoid,t,n),n+=re.packedLength,We.pack(e._vertexFormat,t,n),n+=We.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=g(e._offsetAttribute,-1),t};var Vle=new h,Lle=new re,Rle=new We,sf={center:Vle,ellipsoid:Lle,vertexFormat:Rle,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};af.unpack=function(e,t,n){t=g(t,0);let i=h.unpack(e,t,Vle);t+=h.packedLength;let o=re.unpack(e,t,Lle);t+=re.packedLength;let r=We.unpack(e,t,Rle);t+=We.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],u=e[t++],m=e[t++],p=e[t++],y=e[t++]===1,f=e[t];return d(n)?(n._center=h.clone(i,n._center),n._ellipsoid=re.clone(o,n._ellipsoid),n._vertexFormat=We.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=l,n._height=u,n._granularity=m,n._extrudedHeight=p,n._shadowVolume=y,n._offsetAttribute=f===-1?void 0:f,n):(sf.height=u,sf.extrudedHeight=p,sf.granularity=m,sf.stRotation=l,sf.rotation=c,sf.semiMajorAxis=s,sf.semiMinorAxis=a,sf.shadowVolume=y,sf.offsetAttribute=f===-1?void 0:f,new af(sf))};af.computeRectangle=function(e,t){e=g(e,g.EMPTY_OBJECT);let n=e.center,i=g(e.ellipsoid,re.WGS84),o=e.semiMajorAxis,r=e.semiMinorAxis,s=g(e.granularity,W.RADIANS_PER_DEGREE),a=g(e.rotation,0);return Cle(n,o,r,a,s,i,t)};af.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!W.equalsEpsilon(t,n,0,W.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=XJe(o);else if(r=ZJe(o),d(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===rn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Ze({componentDatatype:Q.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new dt({attributes:r.attributes,indices:r.indices,primitiveType:we.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};af.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new af({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:We.POSITION_ONLY,shadowVolume:!0})};function IJe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=Gl.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c0){let f=Math.min(l,c);y=Math.round(c/f);let x=Math.min(y*l,c);for(p=0;p0&&(Z=!0,C+=c-1),s0&&u!==x-1&&m!==0&&m!==_-1&&(M[z]=!0),z++;p=0;let ee,K;for(u=1;u=ot&&uMath.PI&&(e-=W.TWO_PI),e}}});var r1=new he,gQe=new h;Xr.prototype.getLatitude=function(e){d(e)||(e=re.WGS84),r1.latitude=this.conformalLatitude,r1.longitude=this.longitude,r1.height=0;let t=this.ellipsoid.cartographicToCartesian(r1,gQe);return e.cartesianToCartographic(t,r1),r1.latitude};var xQe=new Sn,_Qe=new h,TQe=new h;Xr.fromCartesian=function(e,t){let n=W.signNotZero(e.z),i=Xr.NORTH_POLE_TANGENT_PLANE,o=Xr.SOUTH_POLE;n<0&&(i=Xr.SOUTH_POLE_TANGENT_PLANE,o=Xr.NORTH_POLE);let r=xQe;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,_Qe),h.normalize(r.direction,r.direction);let s=Si.rayPlane(r,i.plane,TQe),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),l=n*h.dot(i.yAxis,a);return d(t)?(t.position=new D(c,l),t.tangentPlane=i,t):new Xr(new D(c,l),i)};Xr.fromCartesianArray=function(e,t){let n=e.length;d(t)?t.length=n:t=new Array(n);for(let i=0;i_y.eastOverIDL-_y.westOverIDL&&(o.west=_y.westOverIDL,o.east=_y.eastOverIDL,o.east>W.PI&&(o.east=o.east-W.TWO_PI),o.west>W.PI&&(o.west=o.west-W.TWO_PI)),o}var MQe=new he;function Ole(e,t,n,i){let o=e.surfaceDistance,r=Math.ceil(o*t),s=r>0?o/(r-1):Number.POSITIVE_INFINITY,a=0;for(let c=0;c=0?u:u+W.TWO_PI;i.westOverIDL=Math.min(i.westOverIDL,p),i.eastOverIDL=Math.max(i.eastOverIDL,p)}}var Kle=[];function NQe(e,t,n,i,o,r,s,a,c,l){let u={walls:[]},m;if(s||a){let V=Bn.createGeometryFromPositions(e,t,n,i,r,c,l),L=V.attributes.position.values,Z=V.indices,G,X;if(s&&a){let P=L.concat(L);G=P.length/3,X=Ue.createTypedArray(G,Z.length*2),X.set(Z);let v=Z.length,A=G/2;for(m=0;m=0?s:s+W.TWO_PI;o.westOverIdl=Math.min(o.westOverIdl,a),o.eastOverIdl=Math.max(o.eastOverIdl,a),r.west=Math.min(r.west,s),r.east=Math.max(r.east,s);let c=e.getLatitude(n),l=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==Jt.RHUMB){let p=D.subtract(t.position,e.position,BQe),y=D.dot(t.position,p)/D.dot(p,p);if(y>0&&y<1){let f=D.add(t.position,D.multiplyByScalar(p,-y,p),YQe),x=ic.clone(t,OQe);x.position=f;let _=x.getLatitude(n);r.south=Math.min(r.south,_),r.north=Math.max(r.north,_),Math.abs(c)>Math.abs(_)&&(l=_)}}let u=t.x*e.y-e.x*t.y,m=Math.sign(u);m!==0&&(m*=D.angleBetween(t.position,e.position)),l>=0&&(o.northAngle+=m),l<=0&&(o.southAngle+=m)}var zle=new ic,KQe=new ic,Zu={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};pd.computeRectangleFromPositions=function(e,t,n,i){if(d(i)||(i=new de),e.length<3)return i;i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,Zu.northAngle=0,Zu.southAngle=0,Zu.westOverIdl=Number.POSITIVE_INFINITY,Zu.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=ic.fromCartesian(e[0],KQe);for(let s=1;sZu.eastOverIdl-Zu.westOverIdl&&(i.west=Zu.westOverIdl,i.east=Zu.eastOverIdl,i.east>W.PI&&(i.east=i.east-W.TWO_PI),i.west>W.PI&&(i.west=i.west-W.TWO_PI)),W.equalsEpsilon(Math.abs(Zu.northAngle),W.TWO_PI,W.EPSILON10)&&(i.north=W.PI_OVER_TWO,i.east=W.PI,i.west=-W.PI),W.equalsEpsilon(Math.abs(Zu.southAngle),W.TWO_PI,W.EPSILON10)&&(i.south=-W.PI_OVER_TWO,i.east=W.PI,i.west=-W.PI),i};pd.computeRectangle=function(e,t){zr("PolygonGeometry.computeRectangle","PolygonGeometry.computeRectangle was deprecated in CesiumJS 1.110. It will be removed in CesiumJS 1.112. Use PolygonGeometry.computeRectangleFromPositions instead.");let n=g(e.granularity,W.RADIANS_PER_DEGREE),i=g(e.arcType,Jt.GEODESIC),o=e.polygonHierarchy,r=g(e.ellipsoid,re.WGS84);return AQe(o.positions,r,i,n,t)};var HQe=new ic;function zQe(e,t,n){return e.height>=W.PI||e.width>=W.PI?ic.fromCartesian(t[0],HQe).tangentPlane:Fr.fromPoints(t,n)}var Jle=new he;function JQe(e,t,n){return(i,o)=>{if(e.height>=W.PI||e.width>=W.PI){if(e.south<0&&e.north>0){d(o)||(o=[]);for(let s=0;s=W.PI||e.width>=W.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,Jle);return d(r)||(r=new D),r.x=s.longitude/W.PI,r.y=s.latitude/W.PI_OVER_TWO,r}return ic.fromCartesian(o,r)};let i=Fr.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function jQe(e,t,n,i){return(o,r)=>!i&&(e.height>=W.PI_OVER_TWO||e.width>=2*W.PI_OVER_THREE)?Bn.splitPolygonsOnEquator(o,t,n,r):o}function qQe(e,t,n,i){if(t.height>=W.PI||t.width>=W.PI)return He.fromRectangle(t,void 0,Ble);let o=e,r=Fr.fromPoints(o,n);return Bn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,Ble)}pd.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,l=e._arcType,u=e._textureCoordinates,m=d(u),p=r.positions;if(p.length<3)return;let y=e.rectangle,f=Bn.polygonsFromHierarchy(r,m,JQe(y,p,n),!s,n,jQe(y,n,l,s)),x=f.hierarchy,_=f.polygons,C=function(I){return I},V=m?Bn.polygonsFromHierarchy(u,!0,C,!1,n).polygons:void 0;if(x.length===0)return;let L=x[0].outerRing,Z=qQe(L,y,n,o),G=[],X=e._height,P=e._extrudedHeight,v=e._perPositionHeightExtrude||!W.equalsEpsilon(X,P,0,W.EPSILON2),A={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:zQe(y,L,n).plane.normal,projectTo2d:QQe(y,L,n),boundingRectangle:Z,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:l},M;if(v)for(A.extrude=!0,A.top=a,A.bottom=c,A.shadowVolume=e._shadowVolume,A.offsetAttribute=e._offsetAttribute,M=0;M<_.length;M++){let I=NQe(n,_[M],m?V[M]:void 0,i,x[M],s,a,c,t,l),F;a&&c?(F=I.topAndBottom,A.geometry=Bn.scaleToGeodeticHeightExtruded(F.geometry,X,P,n,s)):a?(F=I.topAndBottom,F.geometry.attributes.position.values=ai.scaleToGeodeticHeight(F.geometry.attributes.position.values,X,n,!s),A.geometry=F.geometry):c&&(F=I.topAndBottom,F.geometry.attributes.position.values=ai.scaleToGeodeticHeight(F.geometry.attributes.position.values,P,n,!0),A.geometry=F.geometry),(a||c)&&(A.wall=!1,F.geometry=fH(A),G.push(F));let N=I.walls;A.wall=!0;for(let Y=0;Y1||G>1))for(let R=0;R0;u-=l)_e=u*3,J=d1(J,q,_e,p,_),q+=6,o.st&&(K=u1(K,be,u*2,G),be+=4),n&&(Te+=3,z[Te++]=X[_e],z[Te++]=X[_e+1],z[Te++]=X[_e+2]),j&&(ee[ae++]=1,ae+=1);if(E){let ot=xe;for(_e=ot*3,u=0;u<2;u++)J=d1(J,q,_e,p,_),q+=6,o.st&&(K=u1(K,be,ot*2,G),be+=4),n&&(Te+=3,z[Te++]=X[_e],z[Te++]=X[_e+1],z[Te++]=X[_e+2]),j&&(ee[ae++]=1,ae+=1)}else for(u=l-1;u>=0;u--)_e=u*3,J=d1(J,q,_e,p,_),q+=6,o.st&&(K=u1(K,be,u*2,G),be+=4),n&&(Te+=3,z[Te++]=X[_e],z[Te++]=X[_e+1],z[Te++]=X[_e+2]),j&&(ee[ae++]=1,ae+=1);let Ve=b4e(J,o,a);o.st&&(Ve.attributes.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:K})),n&&(Ve.attributes.extrudeDirection=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:z})),v&&(Ve.attributes.applyOffset=new Ze({componentDatatype:Q.UNSIGNED_BYTE,componentsPerAttribute:1,values:ee}));let Ie=Ue.createTypedArray(U,Y*6),Me,ve,ke,ct;y=J.length/3;let yt=0;for(u=0;u0){d(i)&&(d(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;d(this.depthFailAppearanceType)&&(d(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Yo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new Zn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{d(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;d(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(d(i)&&i.ready){i.show=!0,d(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),d(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof At)&&(this.depthFailMaterial=Yo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}h1.prototype.remove=function(e){Vde(this._solidItems,e)||Vde(this._translucentItems,e)};function Lde(e,t,n){let i=!1,o=t.length;for(let r=0;r0)for(r=0;r=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let l=0;l0){d(n)&&(d(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Yo.getValue(e,this.materialProperty,this.material);let a;d(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Yo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new Zn({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{d(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;d(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(d(n)&&n.ready){n.show=!0,d(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Yo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,d(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof At)&&(this.depthFailMaterial=Yo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};f1.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c0)d(i)&&(d(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Rc({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{d(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;d(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(d(i)&&i.ready){i.show=!0,d(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};p1.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o0)d(n)&&(d(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Yo.getValue(e,this.materialProperty,this.material),n=new Rc({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{d(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;d(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(d(n)&&n.ready){n.show=!0,d(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Yo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};y1.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c0)d(i)&&(d(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Zn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new sn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{d(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;d(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(d(i)&&i.ready){i.show=!0,d(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r0)for(m=!0,t=0;t0)for(m=!0,t=0;t0)for(s=new Array(o),i=0;i0)for(a=new Array(o),i=0;i0)for(s=new Array(o),i=0;i0)for(a=new Array(o),i=0;i-1;a--)c=s[a],l=c.id,u=this._updaterSets.get(l),u.entity===c?u.forEach(function(x){m._removeUpdater(x),m._insertUpdaterIntoBatch(e,x)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],l=c.id,u=this._updaterSets.get(l),u.forEach(this._removeUpdater.bind(this)),u.destroy(),this._updaterSets.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,u=new J2(c,this._scene),this._updaterSets.set(l,u),u.forEach(function(x){m._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(l,u.geometryChanged.addEventListener(Iu._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,y=this._batches,f=y.length;for(a=0;a-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var Q2=Iu;var R6n=T(S(),1);var mje=1,hje="30px sans-serif",fje=vo.FILL,pje=B.WHITE,bje=B.BLACK,yje=1,gje=!1,xje=new B(.165,.165,.165,.8),_je=new D(7,5),Tje=D.ZERO,Sje=h.ZERO,Cje=Ke.NONE,Vje=bi.CENTER,Lje=In.CENTER,Rje=new h,Zje=new B,Gje=new B,Eje=new B,Xje=new D,Ije=new h,Wje=new D,Pje=new Pt,vje=new Pt,Fje=new Pt,wje=new Gt;function Nde(e){this.entity=e,this.label=void 0,this.index=void 0}function Sy(e,t){t.collectionChanged.addEventListener(Sy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Tt,this._onCollectionChanged(t,t.values,[],[])}Sy.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i-1;o--)r=t[o],d(r._label)&&d(r._position)&&s.set(r.id,new Nde(r));for(o=i.length-1;o>-1;o--)r=i[o],d(r._label)&&d(r._position)?s.contains(r.id)||s.set(r.id,new Nde(r)):(SH(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],SH(s.get(r.id),r,a),s.remove(r.id)};function SH(e,t,n){d(e)&&(e.label=void 0,n.removeLabel(t))}var j2=Sy;var eqn=T(S(),1);var v6n=T(S(),1);var E6n=T(S(),1);async function Aje(e,t,n,i){return d(i)||(i=!1),Uje(e,t,n,i)}function Mje(e,t,n){let i=e[0],o=i.terrainProvider.requestTileGeometry(i.x,i.y,i.level);if(!o)return!1;let r;return n?r=o.then(kde(i)):r=o.then(kde(i)).catch(kje(i)),e.shift(),t.push(r),!0}function Nje(e){return new Promise(function(t){setTimeout(t,e)})}function CH(e,t,n){return e.length?Mje(e,t,n)?CH(e,t):Nje(100).then(()=>CH(e,t)):Promise.resolve()}function Uje(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r0&&await Dde(e,a,n),t}var S0=Dde;var Dje=1,Bje=0,Yje=!0,Oje=!0,Kje=xn.ENABLED,Hje=Ke.NONE,zje=B.RED,Jje=0,Qje=B.WHITE,jje=Ha.HIGHLIGHT,qje=.5,$je=new D(1,1),e8e=new w,t8e=new w,Bde=new B,Yde=new Array(4),n8e=new h;function uf(e,t){t.collectionChanged.addEventListener(uf.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new Tt,this._onCollectionChanged(t,t.values,[],[])}async function i8e(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await Xm.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!d(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{d(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!d(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}uf.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o-1;i--)LH(this,e[i],t,n);return ue(this)};uf._sampleTerrainMostDetailed=S0;var T1=new h,Ode=new he;uf.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!d(n))return lt.FAILED;if(n.loadFailed)return lt.FAILED;let i=n.modelPrimitive;if(!d(i)||!i.show)return lt.PENDING;if(!i.ready||!n.modelUpdated)return lt.PENDING;let r=this._scene.globe,s=d(r)?r.terrainProvider:void 0,a=i.heightReference!==Ke.NONE;if(d(r)&&a){let c=r.ellipsoid,l=i.modelMatrix;T1.x=l[12],T1.y=l[13],T1.z=l[14];let u=c.cartesianToCartographic(T1);if(!d(s.availability)){i.heightReference===Ke.CLAMP_TO_GROUND&&(u.height=0);let y=c.cartographicToCartesian(u);return ce.clone(i.boundingSphere,t),t.center=y,lt.DONE}let m=this._modelHash[e.id].clampedBoundingSphere;return this._modelHash[e.id].sampleTerrainFailed?(this._modelHash[e.id].sampleTerrainFailed=!1,lt.FAILED):d(m)?(ce.clone(m,t),this._modelHash[e.id].clampedBoundingSphere=void 0,lt.DONE):(m=new ce,this._modelHash[e.id].awaitingSampleTerrain||(he.clone(u,Ode),this._modelHash[e.id].awaitingSampleTerrain=!0,uf._sampleTerrainMostDetailed(s,[Ode]).then(f=>{if(this.isDestroyed())return;this._modelHash[e.id].awaitingSampleTerrain=!1;let x=f[0];i.heightReference===Ke.RELATIVE_TO_GROUND&&(x.height+=u.height),c.cartographicToCartesian(x,T1),ce.clone(i.boundingSphere,m),m.center=T1,this._modelHash[e.id].clampedBoundingSphere=ce.clone(m)}).catch(f=>{this.isDestroyed()||(this._modelHash[e.id].sampleTerrainFailed=!0,this._modelHash[e.id].awaitingSampleTerrain=!1)})),lt.PENDING)}return ce.clone(i.boundingSphere,t),lt.DONE};uf.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],d(r._model)&&d(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],d(r._model)&&d(r._position)?(o8e(r,a),s.set(r.id,r)):(LH(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],LH(this,r,a,c),s.remove(r.id)};function LH(e,t,n,i){let o=n[t.id];d(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function o8e(e,t){let n=t[e.id];d(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var $2=uf;var Eqn=T(S(),1);var aqn=T(S(),1);function Cy(e){this._definitionChanged=new ye,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(Cy.prototype,{isConstant:{get:function(){return H.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return d(this._value)?this._value.referenceFrame:io.FIXED}}});Cy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,io.FIXED,t)};Cy.prototype.setValue=function(e){this._value!==e&&(this._value=e,d(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),d(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};Cy.prototype.getValueInReferenceFrame=function(e,t,n){if(d(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),d(n)?re.WGS84.scaleToGeodeticSurface(n,n):void 0};Cy.prototype.equals=function(e){return this===e||e instanceof Cy&&this._value===e._value};Cy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var mf=Cy;var r8e=60,s8e=1,zde=new Tn,RH=new Tn,ZH=new Tn;function Kde(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function a8e(e,t,n,i,o,r,s,a,c){let l=a,u;u=e.getValueInReferenceFrame(t,r,c[l]),d(u)&&(c[l++]=u);let m=!d(o)||te.lessThanOrEquals(o,t)||te.greaterThanOrEquals(o,n),p=0,y=i.length,f=i[p],x=n,_=!1,C,V,L;for(;p0&&!_){let Z=i[p+1],G=te.secondsDifference(Z,f);_=G>s,_&&(C=Math.ceil(G/s),V=0,L=G/Math.max(C,2),C=Math.max(C-1,1))}if(_&&V0){let y=m.pop();c=this._polylineCollection.get(y),t.index=y}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let u=H.getValueOrDefault(i._resolution,e,r8e);c.show=!0,c.positions=Qde(o,r,s,e,this._referenceFrame,u,c.positions.slice()),c.material=Yo.getValue(e,i._material,c.material),c.width=H.getValueOrDefault(i._width,e,s8e),c.distanceDisplayCondition=H.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};eP.prototype.removeObject=function(e){let t=e.polyline;d(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};eP.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function Vy(e,t){t.collectionChanged.addEventListener(Vy.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new Tt,this._onCollectionChanged(t,t.values,[],[])}Vy.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&d(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i-1;o--)r=t[o],d(r._path)&&d(r._position)&&a.set(r.id,new Kde(r));for(o=i.length-1;o>-1;o--)r=i[o],d(r._path)&&d(r._position)?a.contains(r.id)||a.set(r.id,new Kde(r)):(s=a.get(r.id),d(s)&&(d(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),d(s)&&(d(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};Vy._subSample=Qde;var tP=Vy;var Dqn=T(S(),1);var jde=B.WHITE,qde=B.BLACK,$de=0,eue=1,tue=0,nue=new B,m8e=new h,iue=new B,oue=new Pt,rue=new Pt,sue=new Gt;function aue(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function Ly(e,t){t.collectionChanged.addEventListener(Ly.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Tt,this._onCollectionChanged(t,t.values,[],[])}Ly.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i0?(l.scale=1,y=y||C!==r.outlineWidth||V!==r.pixelSize||!B.equals(x,r.color)||!B.equals(_,r.outlineColor)):(l.scale=V/50,V=50,y=y||C!==r.outlineWidth||!B.equals(x,r.color)||!B.equals(_,r.outlineColor)),y){r.color=B.clone(x,r.color),r.outlineColor=B.clone(_,r.outlineColor),r.pixelSize=V,r.outlineWidth=C;let L=x.alpha,Z=x.toCssColorString(),G=_.toCssColorString(),X=JSON.stringify([Z,V,G,C]);l.setImage(X,Ox(L,Z,G,C,V))}f&&l._updateClamping()}}return!0};Ly.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!d(n)||!(d(n.pointPrimitive)||d(n.billboard)))return lt.FAILED;if(d(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!d(i._clampedPosition))return lt.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,lt.DONE};Ly.prototype.isDestroyed=function(){return!1};Ly.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Ly.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t-1;o--)r=t[o],d(r._point)&&d(r._position)&&s.set(r.id,new aue(r));for(o=i.length-1;o>-1;o--)r=i[o],d(r._point)&&d(r._position)?s.contains(r.id)||s.set(r.id,new aue(r)):(nP(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],nP(s.get(r.id),r,a),s.remove(r.id)};function nP(e,t,n){if(d(e)){let i=e.pointPrimitive;if(d(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;d(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var iP=Ly;var _ei=T(S(),1);var N$n=T(S(),1);var c$n=T(S(),1);var mue=[];function h8e(e,t,n,i,o){let r=mue;r.length=o;let s,a=n.red,c=n.green,l=n.blue,u=n.alpha,m=i.red,p=i.green,y=i.blue,f=i.alpha;if(B.equals(n,i)){for(s=0;s0?new Array(o):void 0;for(i=0;i0){let F=0,N=m[0];i=i.filter(function(Y,k){let O=!1;return o?O=k===N||k===0&&N===1:O=k+1===N,O?(F++,N=m[F],!1):!0})}let y=p.length;if(y<2||t<=0)return;if(r===Jt.GEODESIC||r===Jt.RHUMB){let F,N;r===Jt.GEODESIC?(F=W.chordLength(s,a.maximumRadius),N=Xi.numberOfPoints):(F=s,N=Xi.numberOfPointsRhumbLine);let Y=Xi.extractHeights(p,a);if(d(i)){let k=1;for(c=0;c0)return ce.fromPoints(t.positions,e),lt.DONE}return lt.FAILED};rP.prototype.isDestroyed=function(){return!1};rP.prototype.destroy=function(){let t=this._geometryUpdater._scene.id,n=d5[t];d(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete d5[t])),d(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var sP=jm;var nei=T(S(),1);var S8e=new B,C8e=new Gt,V8e=new Gt;function qm(e,t,n,i,o){let r;n instanceof At?r=wr:r=Ds,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new Tt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Tt,this.material=void 0,this.updatersWithAttributes=new Tt,this.attributes=new Tt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(qm.prototype.onMaterialChanged,this),this.subscriptions=new Tt,this.showsUpdated=new Tt,this.zIndex=i,this._asynchronous=o}qm.prototype.onMaterialChanged=function(){this.invalidated=!0};qm.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof At&&t instanceof At?!0:d(t)&&t.equals(n)};qm.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!H.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};qm.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return d(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};qm.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)d(n)&&(d(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new dm({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===Ds&&(this.material=Yo.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{d(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;d(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(d(n)&&n.ready){n.show=!0,d(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===Ds&&(this.material=Yo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};C1.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c-1;a--)c=s[a],l=c.id,u=this._updaters.get(l),u.entity===c?(yue(this,u),gue(this,e,u)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],l=c.id,u=this._updaters.get(l),yue(this,u),u.destroy(),this._updaters.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,u=new sP(c,this._scene),this._updaters.set(l,u),gue(this,e,u),this._subscriptions.set(l,u.geometryChanged.addEventListener(hf._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let m=!0,p=this._batches,y=p.length;for(a=0;a-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var cP=hf;function Wu(e){Rc.initializeTerrainHeights(),dm.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Vr,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=g(e.visualizersCallback,Wu.defaultVisualizersCallback);let i=!1,o=new Zl,r=new Zl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let l=0,u=n.length;lI8e*s.maximumRadius?(m=Sue,h.normalize(c,m),h.negate(m,m),y=h.clone(h.UNIT_Z,EH),p=h.cross(y,m,u5),h.magnitude(p)>W.EPSILON7&&(h.normalize(m,m),h.normalize(p,p),y=h.cross(m,p,EH),h.normalize(y,y),l=!0)):h.equalsEpsilon(c,V,W.EPSILON7)||(y=Sue,h.normalize(X,y),h.normalize(P,P),p=h.cross(y,P,EH),u&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,W.EPSILON7)||(m=h.cross(p,y,u5),$.multiplyByVector(G,m,m),$.multiplyByVector(G,p,p),$.multiplyByVector(G,y,y),h.normalize(m,m),h.normalize(p,p),h.normalize(y,y),l=!0))}}d(e.boundingSphere)&&(c=e.boundingSphere.center);let f,x,_;i&&(f=h.clone(t.position,XH),x=h.clone(t.direction,Cue),_=h.clone(t.up,Vue));let C=X8e;l?(C[0]=m.x,C[1]=m.y,C[2]=m.z,C[3]=0,C[4]=p.x,C[5]=p.y,C[6]=p.z,C[7]=0,C[8]=y.x,C[9]=y.y,C[10]=y.z,C[11]=0,C[12]=c.x,C[13]=c.y,C[14]=c.z,C[15]=0):vt.eastNorthUpToFixedFrame(c,s,C),t._setTransform(C),i&&(h.clone(f,t.position),h.clone(x,t.direction),h.clone(_,t.up),h.cross(x,_,t.right))}if(n){let l=a===ie.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,l)}}function dP(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=g(n,re.WGS84),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._offset3D=new h}Object.defineProperties(dP,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});dP.defaultOffset3D=new h(-14e3,3500,3500);var m5=new Pu,P8e=new h;dP.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===ie.MORPHING)return;let r=this.entity,s=r.position;if(!d(s))return;let a=r!==this._lastEntity,c=o!==this._mode,l=n.camera,u=a||c,m=!0;if(a){let p=r.viewFrom,y=d(p);if(!y&&d(t)){m5.pitch=-W.PI_OVER_FOUR,m5.range=0;let f=s.getValue(e,P8e);if(d(f)){let x=2-1/Math.max(1,h.magnitude(f)/i.maximumRadius);m5.pitch*=x}l.viewBoundingSphere(t,m5),this.boundingSphere=t,u=!1,m=!1}else(!y||!d(p.getValue(e,this._offset3D)))&&h.clone(dP._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ie.SCENE2D&&h.clone(l.position,this._offset3D);this._lastEntity=r,this._mode=o,W8e(this,l,u,m,s,e,i)};var uP=dP;var Ani=T(S(),1);var mti=T(S(),1);function hP(){this._cache={}}hP.prototype.fromColor=function(e,t){return h5(void 0,void 0,e,t,this._cache)};hP.prototype.fromUrl=function(e,t,n){return h5(e,void 0,t,n,this._cache)};hP.prototype.fromMakiIconId=function(e,t,n){return h5($t(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};hP.prototype.fromText=function(e,t,n){return h5(void 0,e,t,n,this._cache)};var v8e=new B;function F8e(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,v8e).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function Lue(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width${i}${Xue(o)}`:n+=`${i}${o}`)}return n.length>0&&(n=`${n}
`),n}function D8e(e,t,n){let i;return function(o,r){return d(i)||(i=e(t,n)),i}}function B8e(e,t){return new fm(D8e(Xue,e,t),!0)}function b5(e,t,n){let i=e.id;if(!d(i)||e.type!=="Feature")i=Yn();else{let s=2,a=i;for(;d(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(d(r)){o.properties=r;let s,a=r.title;if(d(a))o.name=a,s="title";else{let l=Number.MAX_VALUE;for(let u in r)if(r.hasOwnProperty(u)&&r[u]){let m=u.toLowerCase();if(l>1&&m==="title"){l=1,s=u;break}else l>2&&m==="name"?(l=2,s=u):l>3&&/title/i.test(u)?(l=3,s=u):l>4&&/name/i.test(u)&&(l=4,s=u)}d(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=d(c)?new qn(c):n(r,s))}return o}function DH(e,t){let n=new Array(e.length);for(let i=0;i2?l.perPositionHeight=new qn(!0):o.clampToGround||(l.height=0);let p=b5(t,e._entityCollection,o.describe);p.polygon=l}function Due(e,t,n,i,o){kue(e,t,i,n.coordinates,o)}function Bue(e,t,n,i,o){let r=n.coordinates;for(let s=0;st&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}function Ao(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}function Zy(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}function Gy(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}var sii=T(S());var Hni=T(S());var Yni=T(S()),Ey=/[A-Za-z]/,Ws=/[\d]/;var gd=/\s/,y5=/['"]/,Jue=/[\x00-\x1F\x7F]/,Que=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source,H8e=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source,z8e=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source,J8e=Que+H8e+z8e,jue=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source,Dni=new RegExp("[".concat(Que+jue,"]")),BH=J8e+jue,$m=new RegExp("[".concat(BH,"]"));var g5=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(gd):[],o=t.split(gd),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(gd):[],o=t.split(gd),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),""].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();var Jni=T(S());function que(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(V){var L={},Z=V,G=Z.match(/^([a-z]+):\/\//i);return G&&(L.scheme=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^(.*?)(?=(\?|#|\/|$))/i),G&&(L.host=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^\/(.*?)(?=(\?|#|$))/i),G&&(L.path=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^\?(.*?)(?=(#|$))/i),G&&(L.query=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^#(.*?)$/i),G&&(L.fragment=G[1]),L},s=function(V){var L="";return V.scheme&&V.host&&(L+=V.scheme+"://"),V.host&&(L+=V.host),V.path&&(L+="/"+V.path),V.query&&(L+="?"+V.query),V.fragment&&(L+="#"+V.fragment),L},a=function(V,L){var Z=L/2,G=Math.ceil(Z),X=-1*Math.floor(Z),P="";return X<0&&(P=V.substr(X)),V.substr(0,G)+n+P};if(e.length<=t)return e;var c=t-o,l=r(e);if(l.query){var u=l.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);u&&(l.query=l.query.substr(0,u[1].length),e=s(l))}if(e.length<=t||(l.host&&(l.host=l.host.replace(/^www\./,""),e=s(l)),e.length<=t))return e;var m="";if(l.host&&(m+=l.host),m.length>=c)return l.host.length==t?(l.host.substr(0,t-o)+n).substr(0,c+i):a(m,c).substr(0,c+i);var p="";if(l.path&&(p+="/"+l.path),l.query&&(p+="?"+l.query),p)if((m+p).length>=c){if((m+p).length==t)return(m+p).substr(0,t);var y=c-m.length;return(m+a(p,y)).substr(0,c+i)}else m+=p;if(l.fragment){var f="#"+l.fragment;if((m+f).length>=c){if((m+f).length==t)return(m+f).substr(0,t);var x=c-m.length;return(m+a(f,x)).substr(0,c+i)}else m+=f}if(l.scheme&&l.host){var _=l.scheme+"://";if((m+_).length0&&(C=m.substr(-1*Math.floor(c/2))),(m.substr(0,Math.ceil(c/2))+n+C).substr(0,c+i)}var jni=T(S());function $ue(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}var eii=T(S());function eme(e,t,n){return zue(e,t,n)}var tme=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new g5({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length=0;y--){var f=u[y];switch(f.state){case 11:X(f,p);break;case 12:P(f,p);break;case 0:C(f,p);break;case 1:V(f,p);break;case 2:L(f,p);break;case 3:Z(f,p);break;case 4:G(f,p);break;case 5:v(f,p);break;case 6:A(f,p);break;case 7:M(f,p);break;case 13:b(f,p);break;case 14:R(f,p);break;case 8:E(f,p);break;case 9:I(f,p);break;case 10:F(f,p);break;case 15:N(f,p);break;case 16:Y(f,p);break;case 17:k(f,p);break;case 18:O(f,p);break;case 19:U(f,p);break;case 20:J(f,p);break;case 21:z(f,p);break;case 22:ee(f,p);break;case 23:K(f,p);break;case 24:j(f,p);break;case 25:q(f,p);break;case 26:be(f,p);break;case 27:Te(f,p);break;case 28:ae(f,p);break;case 29:xe(f,p);break;case 30:_e(f,p);break;case 31:Ve(f,p);break;case 32:Me(f,p);break;case 33:ve(f,p);break;case 34:ke(f,p);break;case 35:ct(f,p);break;case 36:yt(f,p);break;case 37:Ie(f,p);break;case 38:ot(f,p);break;case 39:ln(f,p);break;case 40:vn(f,p);break;case 41:Dt(f,p);break;default:Gy(f.state)}}}for(var x=u.length-1;x>=0;x--)u.forEach(function(pe){return Nt(pe)});return c;function _(pe){if(pe==="#")u.push(V7e(m,28));else if(pe==="@")u.push(L7e(m,30));else if(pe==="/")u.push($H(m,11));else if(pe==="+")u.push(ez(m,37));else if(pe==="(")u.push(ez(m,32));else{if(Ws.test(pe)&&(u.push(ez(m,38)),u.push(S7e(m,13))),ume(pe)){var Ce=pe.toLowerCase()==="m"?15:22;u.push(C7e(m,Ce))}x5(pe)&&u.push(qH(m,0)),$m.test(pe)&&u.push($H(m,5))}}function C(pe,Ce){Ce===":"?pe.state=2:Ce==="-"?pe.state=1:KH(Ce)||Ao(u,pe)}function V(pe,Ce){Ce==="-"||(Ce==="/"?(Ao(u,pe),u.push($H(m,11))):KH(Ce)?pe.state=0:Ao(u,pe))}function L(pe,Ce){Ce==="/"?pe.state=3:Ce==="."?Ao(u,pe):L0(Ce)?(pe.state=5,x5(Ce)&&u.push(qH(m,0))):Ao(u,pe)}function Z(pe,Ce){Ce==="/"?pe.state=4:HH(Ce)?(pe.state=10,pe.acceptStateReached=!0):Nt(pe)}function G(pe,Ce){Ce==="/"?pe.state=10:L0(Ce)?(pe.state=5,pe.acceptStateReached=!0):Ao(u,pe)}function X(pe,Ce){Ce==="/"?pe.state=12:Ao(u,pe)}function P(pe,Ce){L0(Ce)?pe.state=5:Ao(u,pe)}function v(pe,Ce){Ce==="."?pe.state=7:Ce==="-"?pe.state=6:Ce===":"?pe.state=8:T5(Ce)?pe.state=10:_5(Ce)||Nt(pe)}function A(pe,Ce){Ce==="-"||(Ce==="."?Nt(pe):L0(Ce)?pe.state=5:Nt(pe))}function M(pe,Ce){Ce==="."?Nt(pe):L0(Ce)?(pe.state=5,pe.acceptStateReached=!0):Nt(pe)}function b(pe,Ce){Ce==="."?pe.state=14:Ce===":"?pe.state=8:Ws.test(Ce)||(T5(Ce)?pe.state=10:$m.test(Ce)?Ao(u,pe):Nt(pe))}function R(pe,Ce){Ws.test(Ce)?(pe.octetsEncountered++,pe.octetsEncountered===4&&(pe.acceptStateReached=!0),pe.state=13):Nt(pe)}function E(pe,Ce){Ws.test(Ce)?pe.state=9:Nt(pe)}function I(pe,Ce){Ws.test(Ce)||(T5(Ce)?pe.state=10:Nt(pe))}function F(pe,Ce){HH(Ce)||Nt(pe)}function N(pe,Ce){Ce.toLowerCase()==="a"?pe.state=16:ee(pe,Ce)}function Y(pe,Ce){Ce.toLowerCase()==="i"?pe.state=17:ee(pe,Ce)}function k(pe,Ce){Ce.toLowerCase()==="l"?pe.state=18:ee(pe,Ce)}function O(pe,Ce){Ce.toLowerCase()==="t"?pe.state=19:ee(pe,Ce)}function U(pe,Ce){Ce.toLowerCase()==="o"?pe.state=20:ee(pe,Ce)}function J(pe,Ce){Ce.toLowerCase()===":"?pe.state=21:ee(pe,Ce)}function z(pe,Ce){S5(Ce)?pe.state=22:Ao(u,pe)}function ee(pe,Ce){Ce==="."?pe.state=23:Ce==="@"?pe.state=24:S5(Ce)?pe.state=22:Ao(u,pe)}function K(pe,Ce){Ce==="."?Ao(u,pe):Ce==="@"?Ao(u,pe):S5(Ce)?pe.state=22:Ao(u,pe)}function j(pe,Ce){L0(Ce)?pe.state=25:Ao(u,pe)}function q(pe,Ce){Ce==="."?pe.state=27:Ce==="-"?pe.state=26:_5(Ce)||Nt(pe)}function be(pe,Ce){Ce==="-"||Ce==="."?Nt(pe):_5(Ce)?pe.state=25:Nt(pe)}function Te(pe,Ce){Ce==="."||Ce==="-"?Nt(pe):L0(Ce)?(pe.state=25,pe.acceptStateReached=!0):Nt(pe)}function ae(pe,Ce){JH(Ce)?(pe.state=29,pe.acceptStateReached=!0):Ao(u,pe)}function xe(pe,Ce){JH(Ce)||Nt(pe)}function _e(pe,Ce){QH(Ce)?(pe.state=31,pe.acceptStateReached=!0):Ao(u,pe)}function Ve(pe,Ce){QH(Ce)||($m.test(Ce)?Ao(u,pe):Nt(pe))}function Ie(pe,Ce){Ws.test(Ce)?pe.state=38:(Ao(u,pe),_(Ce))}function Me(pe,Ce){Ws.test(Ce)?pe.state=33:Ao(u,pe),_(Ce)}function ve(pe,Ce){Ws.test(Ce)?pe.state=34:Ao(u,pe)}function ke(pe,Ce){Ws.test(Ce)?pe.state=35:Ao(u,pe)}function ct(pe,Ce){Ce===")"?pe.state=36:Ao(u,pe)}function yt(pe,Ce){Ws.test(Ce)?pe.state=38:jH(Ce)?pe.state=39:Ao(u,pe)}function ot(pe,Ce){pe.acceptStateReached=!0,C5(Ce)?pe.state=40:Ce==="#"?pe.state=41:Ws.test(Ce)||(Ce==="("?pe.state=32:jH(Ce)?pe.state=39:(Nt(pe),x5(Ce)&&u.push(qH(m,0))))}function ln(pe,Ce){Ws.test(Ce)?pe.state=38:Ce==="("?pe.state=32:(Nt(pe),_(Ce))}function vn(pe,Ce){C5(Ce)||(Ce==="#"?pe.state=41:Ws.test(Ce)?pe.state=38:Nt(pe))}function Dt(pe,Ce){C5(Ce)?pe.state=40:Ws.test(Ce)?Ao(u,pe):Nt(pe)}function Nt(pe){if(Ao(u,pe),!!pe.acceptStateReached){var Ce=pe.startIdx,Ht=e.slice(pe.startIdx,m);if(Ht=T7e(Ht),pe.type==="url"){var ut=e.charAt(pe.startIdx-1);if(ut==="@")return;var hi=pe.matchType;if(hi==="scheme"){var ji=OH.exec(Ht);if(ji&&(Ce=Ce+ji.index,Ht=Ht.slice(ji.index)),!sme(Ht))return}else if(hi==="tld"){if(!ame(Ht))return}else if(hi==="ipV4"){if(!cme(Ht))return}else Gy(hi);c.push(new lme({tagBuilder:n,matchedText:Ht,offset:Ce,urlMatchType:hi,url:Ht,protocolRelativeMatch:Ht.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(pe.type==="email")mme(Ht)&&c.push(new hme({tagBuilder:n,matchedText:Ht,offset:Ce,email:Ht.replace(dme,"")}));else if(pe.type==="hashtag")fme(Ht)&&c.push(new bme({tagBuilder:n,matchedText:Ht,offset:Ce,serviceName:s,hashtag:Ht.slice(1)}));else if(pe.type==="mention")yme(Ht,a)&&c.push(new xme({tagBuilder:n,matchedText:Ht,offset:Ce,serviceName:a,mention:Ht.slice(1)}));else if(pe.type==="phone"){if(Ht=Ht.replace(/ +$/g,""),_me(Ht)){var pc=Ht.replace(/[^0-9,;#]/g,"");c.push(new Tme({tagBuilder:n,matchedText:Ht,offset:Ce,number:pc,plusSign:Ht.charAt(0)==="+"}))}}else Gy(pe)}}}var _7e=/[\(\{\[]/,Sme=/[\)\}\]]/,Cme={")":"(","}":"{","]":"["};function T7e(e){for(var t={"(":0,"{":0,"[":0},n=0;n=0;)if(r=e.charAt(o),Sme.test(r)){var s=Cme[r];if(t[s]<0)t[s]++,o--;else break}else if(rme.test(r))o--;else break;return e.slice(0,o+1)}function qH(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function $H(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function S7e(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function C7e(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function V7e(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function L7e(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function ez(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}var foi=T(S());function Lme(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new bf,c=0,l=e.length,u=0,m=0,p=a;c"?(p=new bf(Ps(Ps({},p),{name:ee()})),J()):!Ey.test(j)&&!Ws.test(j)&&j!==":"&&O()}function C(j){j===">"?O():Ey.test(j)?u=3:O()}function V(j){gd.test(j)||(j==="/"?u=12:j===">"?J():j==="<"?U():j==="="||y5.test(j)||Jue.test(j)?O():u=5)}function L(j){gd.test(j)?u=6:j==="/"?u=12:j==="="?u=7:j===">"?J():j==="<"?U():y5.test(j)&&O()}function Z(j){gd.test(j)||(j==="/"?u=12:j==="="?u=7:j===">"?J():j==="<"?U():y5.test(j)?O():u=5)}function G(j){gd.test(j)||(j==='"'?u=8:j==="'"?u=9:/[>=`]/.test(j)?O():j==="<"?U():u=10)}function X(j){j==='"'&&(u=11)}function P(j){j==="'"&&(u=11)}function v(j){gd.test(j)?u=4:j===">"?J():j==="<"&&U()}function A(j){gd.test(j)?u=4:j==="/"?u=12:j===">"?J():j==="<"?U():(u=4,K())}function M(j){j===">"?(p=new bf(Ps(Ps({},p),{isClosing:!0})),J()):u=4}function b(j){e.substr(c,2)==="--"?(c+=2,p=new bf(Ps(Ps({},p),{type:"comment"})),u=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new bf(Ps(Ps({},p),{type:"doctype"})),u=20):O()}function R(j){j==="-"?u=15:j===">"?O():u=16}function E(j){j==="-"?u=18:j===">"?O():u=16}function I(j){j==="-"&&(u=17)}function F(j){j==="-"?u=18:u=16}function N(j){j===">"?J():j==="!"?u=19:j==="-"||(u=16)}function Y(j){j==="-"?u=17:j===">"?J():u=16}function k(j){j===">"?J():j==="<"&&U()}function O(){u=0,p=a}function U(){u=1,p=new bf({idx:c})}function J(){var j=e.slice(m,p.idx);j&&o(j,m),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),O(),m=c+1}function z(){var j=e.slice(m,c);o(j,m),m=c+1}function ee(){var j=p.idx+(p.isClosing?2:1);return e.slice(j,c).toLowerCase()}function K(){c--}}var bf=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}();var R7e=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=Z7e(t.urls),this.email=yd(t.email)?t.email:this.email,this.phone=yd(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=yd(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=G7e(t.stripPrefix),this.stripTrailingSlash=yd(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=yd(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&gme.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&pme.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=E7e(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return Lme(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,l=s.split(c),u=a;l.forEach(function(m,p){if(p%2===0){var y=n.parseText(m,u);r.push.apply(r,y)}u+=m.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,l){return c.getOffset()-l.getOffset()});for(var n=0;nr?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()/g,">"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function tz(e,t){let n=yP(e,"id");return n=d(n)?n:Yn(),t.getOrCreateEntity(n)}function nz(e){let t=Ime(e,"lon"),n=Ime(e,"lat"),i=pP(e,"ele",Co.gpx);return h.fromDegrees(t,n,i)}function Ime(e,t){if(!d(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function yP(e,t){if(!d(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Xy(e,t,n){if(!d(e))return;let i=e.childNodes,o=i.length;for(let r=0;r${m.text}: ${m.value}

`)}if(!d(i)||i==="")return;i=X7e.link(i),bP.innerHTML=i;let s=bP.querySelectorAll("a");for(n=0;n',l+=`${bP.innerHTML}`,bP.innerHTML="",l}function Mme(e,t,n,i){let o=nz(t),r=tz(t,n);r.position=o;let s=d(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",B.RED,L5);r.billboard=wme(s);let a=El(t,"name",Co.gpx);r.name=a,r.label=P7e(),r.label.text=a,r.description=oz(t,r),i.clampToGround&&(r.billboard.heightReference=Ke.CLAMP_TO_GROUND,r.label.heightReference=Ke.CLAMP_TO_GROUND)}function v7e(e,t,n,i){let o=tz(t,n);o.description=oz(t,o);let r=iz(t,"rtept",Co.gpx),s=new Array(r.length);for(let a=0;a0?(a=a.concat(c.times),u.addSamples(a,s),l=l&&!0):l=!1;if(l){let m=d(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",B.RED,L5);o.billboard=wme(m),o.position=u,i.clampToGround&&(o.billboard.heightReference=Ke.CLAMP_TO_GROUND),o.availability=new Rr,o.availability.addInterval(new Tn({start:a[0],stop:a[a.length-1]}))}o.polyline=Ame(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function w7e(e){let t={positions:[],times:[]},n=iz(e,"trkpt",Co.gpx),i;for(let o=0;onew Array(t).fill(n,0,t)))}function P5(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?P5(n):n),[])}var Ume=[0,1,2,3].concat(...W5([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function rr(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,l=e.stat_desc.max_length,u,m,p,y,f,x,_=0;for(y=0;y<=15;y++)o.bl_count[y]=0;for(r[o.heap[o.heap_max]*2+1]=0,u=o.heap_max+1;u<573;u++)m=o.heap[u],y=r[r[m*2+1]*2+1]+1,y>l&&(y=l,_++),r[m*2+1]=y,!(m>e.max_code)&&(o.bl_count[y]++,f=0,m>=c&&(f=a[m-c]),x=r[m*2],o.opt_len+=x*(y+f),s&&(o.static_len+=x*(s[m*2+1]+f)));if(_!==0){do{for(y=l-1;o.bl_count[y]===0;)y--;o.bl_count[y]--,o.bl_count[y+1]+=2,o.bl_count[l]--,_-=2}while(_>0);for(y=l;y!==0;y--)for(m=o.bl_count[y];m!==0;)p=o.heap[--u],!(p>e.max_code)&&(r[p*2+1]!=y&&(o.opt_len+=(y-r[p*2+1])*r[p*2],r[p*2+1]=y),m--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,l,u,m;for(l=1;l<=15;l++)a[l]=c=c+s[l-1]<<1;for(u=0;u<=r;u++)m=o[u*2+1],m!==0&&(o[u*2]=n(a[m]++,m))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,l,u=-1,m;for(o.heap_len=0,o.heap_max=573,c=0;c=1;c--)o.pqdownheap(r,c);m=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),l=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=l,r[m*2]=r[c*2]+r[l*2],o.depth[m]=Math.max(o.depth[c],o.depth[l])+1,r[c*2+1]=r[l*2+1]=m,o.heap[1]=m++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}rr._length_code=[0,1,2,3,4,5,6,7].concat(...W5([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));rr.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];rr.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];rr.d_code=function(e){return e<256?Ume[e]:Ume[256+(e>>>7)]};rr.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];rr.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];rr.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];rr.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function _a(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var K7e=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],H7e=W5([[144,8],[112,9],[24,7],[8,8]]);_a.static_ltree=P5(K7e.map((e,t)=>[e,H7e[t]]));var z7e=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],J7e=W5([[30,5]]);_a.static_dtree=P5(z7e.map((e,t)=>[e,J7e[t]]));_a.static_l_desc=new _a(_a.static_ltree,rr.extra_lbits,256+1,286,15);_a.static_d_desc=new _a(_a.static_dtree,rr.extra_dbits,0,30,15);_a.static_bl_desc=new _a(null,rr.extra_blbits,0,19,7);var Q7e=9,j7e=8;function yf(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var Dme=0,X5=1,w_=2,eh=[new yf(0,0,0,0,Dme),new yf(4,4,8,4,X5),new yf(4,5,16,8,X5),new yf(4,6,32,32,X5),new yf(4,4,16,16,w_),new yf(8,16,32,32,w_),new yf(8,16,128,128,w_),new yf(8,32,128,256,w_),new yf(32,128,258,1024,w_),new yf(32,258,258,4096,w_)],R5=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],vu=0,Z5=1,_P=2,G5=3,q7e=32,rz=42,E5=113,TP=666,sz=8,$7e=0,az=1,e6e=2,fr=3,I5=258,xd=I5+fr+1;function kme(e,t,n,i){let o=e[t*2],r=e[n*2];return o=3&&Y[rr.bl_order[Fe]*2+1]===0;Fe--);return e.opt_len+=3*(Fe+1)+5+5+4,Fe}function Ve(Fe){e.pending_buf[e.pending++]=Fe}function Ie(Fe){Ve(Fe&255),Ve(Fe>>>8&255)}function Me(Fe){Ve(Fe>>8&255),Ve(Fe&255&255)}function ve(Fe,je){let qe,Qe=je;q>16-Qe?(qe=Fe,j|=qe<>>16-q,q+=Qe-16):(j|=Fe<=8&&(Ve(j&255),j>>>=8,q-=8)}function ln(){ve(az<<1,3),ke(256,_a.static_ltree),ot(),1+K+10-q<9&&(ve(az<<1,3),ke(256,_a.static_ltree),ot()),K=7}function vn(Fe,je){let qe,Qe,pt;if(e.dist_buf[z]=Fe,e.lc_buf[z]=je&255,z++,Fe===0?F[je*2]++:(ee++,Fe--,F[(rr._length_code[je]+256+1)*2]++,N[rr.d_code(Fe)*2]++),!(z&8191)&&b>2){for(qe=z*8,Qe=G-C,pt=0;pt<30;pt++)qe+=N[pt*2]*(5+rr.extra_dbits[pt]);if(qe>>>=3,ee8?Ie(j):q>0&&Ve(j&255),j=0,q=0}function pe(Fe,je,qe){Nt(),K=8,qe&&(Ie(je),Ie(~je)),e.pending_buf.set(c.subarray(Fe,Fe+je),e.pending),e.pending+=je}function Ce(Fe,je,qe){ve(($7e<<1)+(qe?1:0),3),pe(Fe,je,!0)}function Ht(Fe,je,qe){let Qe,pt,Bt=0;b>0?(k.build_tree(e),O.build_tree(e),Bt=_e(),Qe=e.opt_len+3+7>>>3,pt=e.static_len+3+7>>>3,pt<=Qe&&(Qe=pt)):Qe=pt=je+5,je+4<=Qe&&Fe!=-1?Ce(Fe,je,qe):pt==Qe?(ve((az<<1)+(qe?1:0),3),Dt(_a.static_ltree,_a.static_dtree)):(ve((e6e<<1)+(qe?1:0),3),yt(k.max_code+1,O.max_code+1,Bt+1),Dt(F,N)),Te(),qe&&Nt()}function ut(Fe){Ht(C>=0?C:-1,G-C,Fe),C=G,t.flush_pending()}function hi(){let Fe,je,qe,Qe;do{if(Qe=l-P-G,Qe===0&&G===0&&P===0)Qe=r;else if(Qe==-1)Qe--;else if(G>=r+r-xd){c.set(c.subarray(r,r+r),0),X-=r,G-=r,C-=r,Fe=y,qe=Fe;do je=m[--qe]&65535,m[qe]=je>=r?je-r:0;while(--Fe!==0);Fe=r,qe=Fe;do je=u[--qe]&65535,u[qe]=je>=r?je-r:0;while(--Fe!==0);Qe+=r}if(t.avail_in===0)return;Fe=t.read_buf(c,G+P,Qe),P+=Fe,P>=fr&&(p=c[G]&255,p=(p<<_^c[G+1]&255)&x)}while(Pi-5&&(je=i-5);;){if(P<=1){if(hi(),P===0&&Fe==0)return vu;if(P===0)break}if(G+=P,P=0,qe=C+je,(G===0||G>=qe)&&(P=G-qe,G=qe,ut(!1),t.avail_out===0)||G-C>=r-xd&&(ut(!1),t.avail_out===0))return vu}return ut(Fe==4),t.avail_out===0?Fe==4?_P:vu:Fe==4?G5:Z5}function pc(Fe){let je=A,qe=G,Qe,pt,Bt=v,Vn=G>r-xd?G-(r-xd):0,di=I,bo=a,es=G+I5,ts=c[qe+Bt-1],Mo=c[qe+Bt];v>=E&&(je>>=2),di>P&&(di=P);do if(Qe=Fe,!(c[Qe+Bt]!=Mo||c[Qe+Bt-1]!=ts||c[Qe]!=c[qe]||c[++Qe]!=c[qe+1])){qe+=2,Qe++;do;while(c[++qe]==c[++Qe]&&c[++qe]==c[++Qe]&&c[++qe]==c[++Qe]&&c[++qe]==c[++Qe]&&c[++qe]==c[++Qe]&&c[++qe]==c[++Qe]&&c[++qe]==c[++Qe]&&c[++qe]==c[++Qe]&&qeBt){if(X=Fe,Bt=pt,pt>=di)break;ts=c[qe+Bt-1],Mo=c[qe+Bt]}}while((Fe=u[Fe&bo]&65535)>Vn&&--je!==0);return Bt<=P?Bt:P}function bs(Fe){let je=0,qe;for(;;){if(P=fr&&(p=(p<<_^c[G+(fr-1)]&255)&x,je=m[p]&65535,u[G&a]=m[p],m[p]=G),je!==0&&(G-je&65535)<=r-xd&&R!=2&&(V=pc(je)),V>=fr)if(qe=vn(G-X,V-fr),P-=V,V<=M&&P>=fr){V--;do G++,p=(p<<_^c[G+(fr-1)]&255)&x,je=m[p]&65535,u[G&a]=m[p],m[p]=G;while(--V!==0);G++}else G+=V,V=0,p=c[G]&255,p=(p<<_^c[G+1]&255)&x;else qe=vn(0,c[G]&255),P--,G++;if(qe&&(ut(!1),t.avail_out===0))return vu}return ut(Fe==4),t.avail_out===0?Fe==4?_P:vu:Fe==4?G5:Z5}function ys(Fe){let je=0,qe,Qe;for(;;){if(P=fr&&(p=(p<<_^c[G+(fr-1)]&255)&x,je=m[p]&65535,u[G&a]=m[p],m[p]=G),v=V,L=X,V=fr-1,je!==0&&v4096)&&(V=fr-1)),v>=fr&&V<=v){Qe=G+P-fr,qe=vn(G-1-L,v-fr),P-=v-1,v-=2;do++G<=Qe&&(p=(p<<_^c[G+(fr-1)]&255)&x,je=m[p]&65535,u[G&a]=m[p],m[p]=G);while(--v!==0);if(Z=0,V=fr-1,G++,qe&&(ut(!1),t.avail_out===0))return vu}else if(Z!==0){if(qe=vn(0,c[G-1]&255),qe&&ut(!1),G++,P--,t.avail_out===0)return vu}else Z=1,G++,P--}return Z!==0&&(qe=vn(0,c[G-1]&255),Z=0),ut(Fe==4),t.avail_out===0?Fe==4?_P:vu:Fe==4?G5:Z5}function $r(Fe){return Fe.total_in=Fe.total_out=0,Fe.msg=null,e.pending=0,e.pending_out=0,n=E5,o=0,ae(),be(),0}e.deflateInit=function(Fe,je,qe,Qe,pt,Bt){return Qe||(Qe=sz),pt||(pt=j7e),Bt||(Bt=0),Fe.msg=null,je==-1&&(je=6),pt<1||pt>Q7e||Qe!=sz||qe<9||qe>15||je<0||je>9||Bt<0||Bt>2?-2:(Fe.dstate=e,s=qe,r=1<9||qe<0||qe>2?-2:(eh[b].func!=eh[je].func&&Fe.total_in!==0&&(Qe=Fe.deflate(1)),b!=je&&(b=je,M=eh[b].max_lazy,E=eh[b].good_length,I=eh[b].nice_length,A=eh[b].max_chain),R=qe,Qe)},e.deflateSetDictionary=function(Fe,je,qe){let Qe=qe,pt,Bt=0;if(!je||n!=rz)return-2;if(Qer-xd&&(Qe=r-xd,Bt=qe-Qe),c.set(je.subarray(Bt,Bt+Qe),0),G=Qe,C=Qe,p=c[0]&255,p=(p<<_^c[1]&255)&x,pt=0;pt<=Qe-fr;pt++)p=(p<<_^c[pt+(fr-1)]&255)&x,u[pt&a]=m[p],m[p]=pt;return 0},e.deflate=function(Fe,je){let qe,Qe,pt,Bt,Vn;if(je>4||je<0)return-2;if(!Fe.next_out||!Fe.next_in&&Fe.avail_in!==0||n==TP&&je!=4)return Fe.msg=R5[2- -2],-2;if(Fe.avail_out===0)return Fe.msg=R5[2- -5],-5;if(t=Fe,Bt=o,o=je,n==rz&&(Qe=sz+(s-8<<4)<<8,pt=(b-1&255)>>1,pt>3&&(pt=3),Qe|=pt<<6,G!==0&&(Qe|=q7e),Qe+=31-Qe%31,n=E5,Me(Qe)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&je<=Bt&&je!=4)return t.msg=R5[2- -5],-5;if(n==TP&&t.avail_in!==0)return Fe.msg=R5[2- -5],-5;if(t.avail_in!==0||P!==0||je!=0&&n!=TP){switch(Vn=-1,eh[b].func){case Dme:Vn=ji(je);break;case X5:Vn=bs(je);break;case w_:Vn=ys(je);break;default:}if((Vn==_P||Vn==G5)&&(n=TP),Vn==vu||Vn==_P)return t.avail_out===0&&(o=-1),0;if(Vn==Z5){if(je==1)ln();else if(Ce(0,0,!1),je==3)for(qe=0;qen&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending:function(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function n6e(e){let t=this,n=new Bme,i=i6e(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let l,u,m=0,p=0,y=0,f=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,l=n.deflate(o),l!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?f.push(new Uint8Array(r)):f.push(r.slice(0,n.next_out_index))),y+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=m&&(c(n.next_in_index),m=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return f.length>1?(u=new Uint8Array(y),f.forEach(function(x){u.set(x,p),p+=x.length})):u=f[0]||new Uint8Array(0),u}},t.flush=function(){let a,c,l=0,u=0,m=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&m.push(r.slice(0,n.next_out_index)),u+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(u),m.forEach(function(p){c.set(p,l),l+=p.length}),c}}function i6e(e){return e+5*(Math.floor(e/16383)+1)}var Yme=n6e;var Wri=T(S(),1);var _d=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],dhe=1440,o6e=0,r6e=4,s6e=9,a6e=5,c6e=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],l6e=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],d6e=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],u6e=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],m6e=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],h6e=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Iy=15;function uz(){let e=this,t,n,i,o,r,s;function a(l,u,m,p,y,f,x,_,C,V,L){let Z,G,X,P,v,A,M,b,R,E,I,F,N,Y,k;E=0,v=m;do i[l[u+E]]++,E++,v--;while(v!==0);if(i[0]==m)return x[0]=-1,_[0]=0,0;for(b=_[0],A=1;A<=Iy&&i[A]===0;A++);for(M=A,bv&&(b=v),_[0]=b,Y=1<F+b;){if(P++,F+=b,k=X-F,k=k>b?b:k,(G=1<<(A=M-F))>Z+1&&(G-=Z+1,N=M,Adhe)return-3;r[P]=I=V[0],V[0]+=k,P!==0?(s[P]=v,o[0]=A,o[1]=b,A=v>>>F-b,o[2]=I-r[P-1]-A,C.set(o,(r[P-1]+A)*3)):x[0]=I}for(o[1]=M-F,E>=m?o[0]=128+64:L[E]>>F;A>>=1)v^=A;for(v^=A,R=(1<257?(V==-3?C.msg="oversubscribed distance tree":V==-5?(C.msg="incomplete distance tree",V=-3):V!=-4&&(C.msg="empty distance tree with lengths",V=-3),V):0)}}uz.inflate_trees_fixed=function(e,t,n,i){return e[0]=s6e,t[0]=a6e,n[0]=c6e,i[0]=l6e,0};var v5=0,Ome=1,Kme=2,Hme=3,zme=4,Jme=5,Qme=6,cz=7,jme=8,F5=9;function f6e(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,l=0,u=0,m,p=0,y,f=0;function x(_,C,V,L,Z,G,X,P){let v,A,M,b,R,E,I,F,N,Y,k,O,U,J,z,ee;I=P.next_in_index,F=P.avail_in,R=X.bitb,E=X.bitk,N=X.write,Y=N>=A[ee+1],E-=A[ee+1],X.win[N++]=A[ee+2],Y--;continue}do{if(R>>=A[ee+1],E-=A[ee+1],b&16){for(b&=15,U=A[ee+2]+(R&_d[b]),R>>=b,E-=b;E<15;)F--,R|=(P.read_byte(I++)&255)<>=A[ee+1],E-=A[ee+1],b&16){for(b&=15;E>=b,E-=b,Y-=U,N>=J)z=N-J,N-z>0&&2>N-z?(X.win[N++]=X.win[z++],X.win[N++]=X.win[z++],U-=2):(X.win.set(X.win.subarray(z,z+2),N),N+=2,z+=2,U-=2);else{z=N-J;do z+=X.end;while(z<0);if(b=X.end-z,U>b){if(U-=b,N-z>0&&b>N-z)do X.win[N++]=X.win[z++];while(--b!==0);else X.win.set(X.win.subarray(z,z+b),N),N+=b,z+=b,b=0;z=0}}if(N-z>0&&U>N-z)do X.win[N++]=X.win[z++];while(--U!==0);else X.win.set(X.win.subarray(z,z+U),N),N+=U,z+=U,U=0;break}else if(!(b&64))v+=A[ee+2],v+=R&_d[b],ee=(M+v)*3,b=A[ee];else return P.msg="invalid distance code",U=P.avail_in-F,U=E>>3>3:U,F+=U,I-=U,E-=U<<3,X.bitb=R,X.bitk=E,P.avail_in=F,P.total_in+=I-P.next_in_index,P.next_in_index=I,X.write=N,-3;while(!0);break}if(b&64)return b&32?(U=P.avail_in-F,U=E>>3>3:U,F+=U,I-=U,E-=U<<3,X.bitb=R,X.bitk=E,P.avail_in=F,P.total_in+=I-P.next_in_index,P.next_in_index=I,X.write=N,1):(P.msg="invalid literal/length code",U=P.avail_in-F,U=E>>3>3:U,F+=U,I-=U,E-=U<<3,X.bitb=R,X.bitk=E,P.avail_in=F,P.total_in+=I-P.next_in_index,P.next_in_index=I,X.write=N,-3);if(v+=A[ee+2],v+=R&_d[b],ee=(M+v)*3,(b=A[ee])===0){R>>=A[ee+1],E-=A[ee+1],X.win[N++]=A[ee+2],Y--;break}}while(!0)}while(Y>=258&&F>=10);return U=P.avail_in-F,U=E>>3>3:U,F+=U,I-=U,E-=U<<3,X.bitb=R,X.bitk=E,P.avail_in=F,P.total_in+=I-P.next_in_index,P.next_in_index=I,X.write=N,0}e.init=function(_,C,V,L,Z,G){t=v5,l=_,u=C,m=V,p=L,y=Z,f=G,i=null},e.proc=function(_,C,V){let L,Z,G,X=0,P=0,v=0,A,M,b,R;for(v=C.next_in_index,A=C.avail_in,X=_.bitb,P=_.bitk,M=_.write,b=M<_.read?_.read-M-1:_.end-M;;)switch(t){case v5:if(b>=258&&A>=10&&(_.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,V=x(l,u,m,p,y,f,_,C),v=C.next_in_index,A=C.avail_in,X=_.bitb,P=_.bitk,M=_.write,b=M<_.read?_.read-M-1:_.end-M,V!=0)){t=V==1?cz:F5;break}r=l,i=m,o=p,t=Ome;case Ome:for(L=r;P>>=i[Z+1],P-=i[Z+1],G=i[Z],G===0){s=i[Z+2],t=Qme;break}if(G&16){a=G&15,n=i[Z+2],t=Kme;break}if(!(G&64)){r=G,o=Z/3+i[Z+2];break}if(G&32){t=cz;break}return t=F5,C.msg="invalid literal/length code",V=-3,_.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V);case Kme:for(L=a;P>=L,P-=L,r=u,i=y,o=f,t=Hme;case Hme:for(L=r;P>=i[Z+1],P-=i[Z+1],G=i[Z],G&16){a=G&15,c=i[Z+2],t=zme;break}if(!(G&64)){r=G,o=Z/3+i[Z+2];break}return t=F5,C.msg="invalid distance code",V=-3,_.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V);case zme:for(L=a;P>=L,P-=L,t=Jme;case Jme:for(R=M-c;R<0;)R+=_.end;for(;n!==0;){if(b===0&&(M==_.end&&_.read!==0&&(M=0,b=M<_.read?_.read-M-1:_.end-M),b===0&&(_.write=M,V=_.inflate_flush(C,V),M=_.write,b=M<_.read?_.read-M-1:_.end-M,M==_.end&&_.read!==0&&(M=0,b=M<_.read?_.read-M-1:_.end-M),b===0)))return _.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V);_.win[M++]=_.win[R++],b--,R==_.end&&(R=0),n--}t=v5;break;case Qme:if(b===0&&(M==_.end&&_.read!==0&&(M=0,b=M<_.read?_.read-M-1:_.end-M),b===0&&(_.write=M,V=_.inflate_flush(C,V),M=_.write,b=M<_.read?_.read-M-1:_.end-M,M==_.end&&_.read!==0&&(M=0,b=M<_.read?_.read-M-1:_.end-M),b===0)))return _.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V);V=0,_.win[M++]=s,b--,t=v5;break;case cz:if(P>7&&(P-=8,A++,v--),_.write=M,V=_.inflate_flush(C,V),M=_.write,b=M<_.read?_.read-M-1:_.end-M,_.read!=_.write)return _.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V);t=jme;case jme:return V=1,_.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V);case F5:return V=-3,_.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V);default:return V=-2,_.bitb=X,_.bitk=P,C.avail_in=A,C.total_in+=v-C.next_in_index,C.next_in_index=v,_.write=M,_.inflate_flush(C,V)}},e.free=function(){}}var qme=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],R1=0,lz=1,$me=2,ehe=3,the=4,nhe=5,w5=6,A5=7,ihe=8,A_=9;function p6e(e,t){let n=this,i=R1,o=0,r=0,s=0,a,c=[0],l=[0],u=new f6e,m=0,p=new Int32Array(dhe*3),y=0,f=new uz;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(x,_){_&&(_[0]=y),i==w5&&u.free(x),i=R1,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(x,_){let C,V,L;return V=x.next_out_index,L=n.read,C=(L<=n.write?n.write:n.end)-L,C>x.avail_out&&(C=x.avail_out),C!==0&&_==-5&&(_=0),x.avail_out-=C,x.total_out+=C,x.next_out.set(n.win.subarray(L,L+C),V),V+=C,L+=C,L==n.end&&(L=0,n.write==n.end&&(n.write=0),C=n.write-L,C>x.avail_out&&(C=x.avail_out),C!==0&&_==-5&&(_=0),x.avail_out-=C,x.total_out+=C,x.next_out.set(n.win.subarray(L,L+C),V),V+=C,L+=C),x.next_out_index=V,n.read=L,_},n.proc=function(x,_){let C,V,L,Z,G,X,P,v;for(Z=x.next_in_index,G=x.avail_in,V=n.bitb,L=n.bitk,X=n.write,P=X>>1){case 0:V>>>=3,L-=3,C=L&7,V>>>=C,L-=C,i=lz;break;case 1:A=[],M=[],b=[[]],R=[[]],uz.inflate_trees_fixed(A,M,b,R),u.init(A[0],M[0],b[0],0,R[0],0),V>>>=3,L-=3,i=w5;break;case 2:V>>>=3,L-=3,i=ehe;break;case 3:return V>>>=3,L-=3,i=A_,x.msg="invalid block type",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_)}break;case lz:for(;L<32;){if(G!==0)_=0;else return n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);G--,V|=(x.read_byte(Z++)&255)<>>16&65535)!=(V&65535))return i=A_,x.msg="invalid stored block lengths",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);o=V&65535,V=L=0,i=o!==0?$me:m!==0?A5:R1;break;case $me:if(G===0||P===0&&(X==n.end&&n.read!==0&&(X=0,P=XG&&(C=G),C>P&&(C=P),n.win.set(x.read_buf(Z,C),X),Z+=C,G-=C,X+=C,P-=C,(o-=C)!==0)break;i=m!==0?A5:R1;break;case ehe:for(;L<14;){if(G!==0)_=0;else return n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);G--,V|=(x.read_byte(Z++)&255)<29||(C>>5&31)>29)return i=A_,x.msg="too many length or distance symbols",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);if(C=258+(C&31)+(C>>5&31),!a||a.length>>=14,L-=14,s=0,i=the;case the:for(;s<4+(r>>>10);){for(;L<3;){if(G!==0)_=0;else return n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);G--,V|=(x.read_byte(Z++)&255)<>>=3,L-=3}for(;s<19;)a[qme[s++]]=0;if(c[0]=7,C=f.inflate_trees_bits(a,c,l,p,x),C!=0)return _=C,_==-3&&(a=null,i=A_),n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);s=0,i=nhe;case nhe:for(;C=r,!(s>=258+(C&31)+(C>>5&31));){let Y,k;for(C=c[0];L>>=C,L-=C,a[s++]=k;else{for(v=k==18?7:k-14,Y=k==18?11:3;L>>=C,L-=C,Y+=V&_d[v],V>>>=v,L-=v,v=s,C=r,v+Y>258+(C&31)+(C>>5&31)||k==16&&v<1)return a=null,i=A_,x.msg="invalid bit length repeat",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);k=k==16?a[v-1]:0;do a[v++]=k;while(--Y!==0);s=v}}if(l[0]=-1,E=[],I=[],F=[],N=[],E[0]=9,I[0]=6,C=r,C=f.inflate_trees_dynamic(257+(C&31),1+(C>>5&31),a,E,I,F,N,p,x),C!=0)return C==-3&&(a=null,i=A_),_=C,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,n.inflate_flush(x,_);u.init(E[0],I[0],p,F[0],p,N[0]),i=w5;case w5:if(n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=X,(_=u.proc(n,x,_))!=1)return n.inflate_flush(x,_);if(_=0,u.free(x),Z=x.next_in_index,G=x.avail_in,V=n.bitb,L=n.bitk,X=n.write,P=X15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new p6e(n,1<>4)+8>s.wbits){s.mode=Wy,n.msg="invalid win size",s.marker=5;break}s.mode=ohe;case ohe:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=Wy,n.msg="incorrect header check",s.marker=5;break}if(!(r&b6e)){s.mode=SP;break}s.mode=rhe;case rhe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=she;case she:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=ahe;case ahe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=che;case che:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=dz,2);case dz:return s.mode=Wy,n.msg="need dictionary",s.marker=0,-2;case SP:if(o=s.blocks.proc(n,o),o==-3){s.mode=Wy,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=lhe;case lhe:return n.avail_in=0,1;case Wy:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=dz)return-2;let a=n.istate;return s>=1<0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return l.length>1?(m=new Uint8Array(f),l.forEach(function(x){m.set(x,y),y+=x.length})):m=l[0]||new Uint8Array(0),m}},t.flush=function(){n.inflateEnd()}}var mhe=T6e;var vri=T(S(),1),S6e={chunkSize:524288,maxWorkers:typeof navigator<"u"&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},Xl=Object.assign({},S6e);function M5(){return Xl}function Z1(e){if(e.baseURL!==void 0&&(Xl.baseURL=e.baseURL),e.chunkSize!==void 0&&(Xl.chunkSize=e.chunkSize),e.maxWorkers!==void 0&&(Xl.maxWorkers=e.maxWorkers),e.terminateWorkerTimeout!==void 0&&(Xl.terminateWorkerTimeout=e.terminateWorkerTimeout),e.useWebWorkers!==void 0&&(Xl.useWebWorkers=e.useWebWorkers),e.Deflate!==void 0&&(Xl.Deflate=e.Deflate),e.Inflate!==void 0&&(Xl.Inflate=e.Inflate),e.workerScripts!==void 0){if(e.workerScripts.deflate){if(!Array.isArray(e.workerScripts.deflate))throw new Error("workerScripts.deflate must be an array");Xl.workerScripts||(Xl.workerScripts={}),Xl.workerScripts.deflate=e.workerScripts.deflate}if(e.workerScripts.inflate){if(!Array.isArray(e.workerScripts.inflate))throw new Error("workerScripts.inflate must be an array");Xl.workerScripts||(Xl.workerScripts={}),Xl.workerScripts.inflate=e.workerScripts.inflate}}}var wri=T(S(),1);var usi=T(S(),1);var osi=T(S(),1);var Mri=T(S(),1),hhe=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;hhe[e]=t}var mz=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i>>8^hhe[(n^t[i])&255];this.crc=n}get(){return~this.crc}},Py=mz;var Jri=T(S(),1);var Uri=T(S(),1),CP=C6e;function C6e(e){if(typeof TextEncoder>"u"){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n0&&t&&(e[n-1]=kc.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=kc.getPartial(o);return i.push(kc.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},VP={bytes:{fromBits(e){let n=kc.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t},finalize:function(){let e=this,t=e._buffer,n=e._h;t=kc.concat(t,[kc.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i},_S:function(e,t){return t<>>32-e},_block:function(e){let t=this,n=t._h,i=Array(80);for(let l=0;l<16;l++)i[l]=e[l];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let l=0;l<=79;l++){l>=16&&(i[l]=t._S(1,i[l-3]^i[l-8]^i[l-14]^i[l-16]));let u=t._S(5,o)+t._f(l,r,s,a)+c+i[l]+t._key[Math.floor(l/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=u}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var fz={};fz.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let l=s[r-1];(r%o===0||o===8&&r%o===4)&&(l=n[l>>>24]<<24^n[l>>16&255]<<16^n[l>>8&255]<<8^n[l&255],r%o===0&&(l=l<<8^l>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^l}for(let l=0;r;l++,r--){let u=s[l&3?r:r-4];r<=4||l<4?a[l]=u:a[l]=i[0][n[u>>>24]]^i[1][n[u>>16&255]]^i[2][n[u>>8&255]]^i[3][n[u&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,l;for(let u=0;u<256;u++)r[(o[u]=u<<1^(u>>7)*283)^u]=u;for(let u=s=0;!n[u];u^=a||1,s=r[s]||1){let m=s^s<<1^s<<2^s<<3^s<<4;m=m>>8^m&255^99,n[u]=m,i[m]=u,l=o[c=o[a=o[u]]];let p=l*16843009^c*65537^a*257^u*16843008,y=o[m]*257^m*16843008;for(let f=0;f<4;f++)e[f][u]=y=y<<24^y>>>8,t[f][m]=p=p<<24^p>>>8}for(let u=0;u<5;u++)e[u]=e[u].slice(0),t[u]=t[u].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],l=r[3],u=r[4],m=e[0]^n[0],p=e[t?3:1]^n[1],y=e[2]^n[2],f=e[t?1:3]^n[3],x=4,_,C,V;for(let L=0;L>>24]^a[p>>16&255]^c[y>>8&255]^l[f&255]^n[x],C=s[p>>>24]^a[y>>16&255]^c[f>>8&255]^l[m&255]^n[x+1],V=s[y>>>24]^a[f>>16&255]^c[m>>8&255]^l[p&255]^n[x+2],f=s[f>>>24]^a[m>>16&255]^c[p>>8&255]^l[y&255]^n[x+3],x+=4,m=_,p=C,y=V;for(let L=0;L<4;L++)o[t?3&-L:L]=u[m>>>24]<<24^u[p>>16&255]<<16^u[y>>8&255]<<8^u[f&255]^n[x++],_=m,m=p,p=y,y=f,f=_;return o}};var fhe={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=kc.bitLength(t);for(let r=0;r>5)+1<<2,r,s,a,c,l,u=new ArrayBuffer(o),m=new DataView(u),p=0,y=kc;for(t=VP.bytes.toBits(t),l=1;p<(o||1);l++){for(r=s=e.encrypt(y.concat(t,[l])),a=1;ao&&(e=n.hash(e));for(let r=0;re.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function Td(e,t,n){return e.subarray(t,n)}var $ri=T(S(),1);var I1=12,D5=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),Zhe(i,t)}append(t){let n=this;if(n.password){let i=Vhe(n,t.subarray(0,I1));if(n.password=null,i[I1-1]!=n.passwordVerification)throw new Error(X1);t=t.subarray(I1)}return Vhe(n,t)}flush(){return{valid:!0,data:new Uint8Array(0)}}},B5=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),Zhe(i,t)}append(t){let n=this,i,o;if(n.password){n.password=null;let r=crypto.getRandomValues(new Uint8Array(I1));r[I1-1]=n.passwordVerification,i=new Uint8Array(t.length+r.length),i.set(Lhe(n,r),0),o=I1}else i=new Uint8Array(t.length),o=0;return i.set(Lhe(n,t),o),i}flush(){return{data:new Uint8Array(0)}}};function Vhe(e,t){let n=new Uint8Array(t.length);for(let i=0;i>>24]),e.keys[2]=~e.crcKey2.get()}function Ghe(e){let t=e.keys[2]|2;return Ehe(Math.imul(t,t^1)>>>8)}function Ehe(e){return e&255}function Rhe(e){return e&4294967295}var O5="deflate",K5="inflate",Y5="Invalid signature",gz=class{constructor(t,{signature:n,password:i,signed:o,compressed:r,zipCrypto:s,passwordVerification:a,encryptionStrength:c},{chunkSize:l}){let u=!!i;Object.assign(this,{signature:n,encrypted:u,signed:o,compressed:r,inflate:r&&new t({chunkSize:l}),crc32:o&&new Py,zipCrypto:s,decrypt:u&&s?new D5(i,a):new N5(i,o,c)})}async append(t){let n=this;return n.encrypted&&t.length&&(t=await n.decrypt.append(t)),n.compressed&&t.length&&(t=await n.inflate.append(t)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),t}async flush(){let t=this,n,i=new Uint8Array(0);if(t.encrypted){let o=t.decrypt.flush();if(!o.valid)throw new Error(Y5);i=o.data}if((!t.encrypted||t.zipCrypto)&&t.signed){let o=new DataView(new Uint8Array(4).buffer);if(n=t.crc32.get(),o.setUint32(0,n),t.signature!=o.getUint32(0,!1))throw new Error(Y5)}return t.compressed&&(i=await t.inflate.append(i)||new Uint8Array(0),await t.inflate.flush()),{data:i,signature:n}}},xz=class{constructor(t,{encrypted:n,signed:i,compressed:o,level:r,zipCrypto:s,password:a,passwordVerification:c,encryptionStrength:l},{chunkSize:u}){Object.assign(this,{encrypted:n,signed:i,compressed:o,deflate:o&&new t({level:r||5,chunkSize:u}),crc32:i&&new Py,zipCrypto:s,encrypt:n&&s?new B5(a,c):new U5(a,l)})}async append(t){let n=this,i=t;return n.compressed&&t.length&&(i=await n.deflate.append(t)),n.encrypted&&i.length&&(i=await n.encrypt.append(i)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),i}async flush(){let t=this,n,i=new Uint8Array(0);if(t.compressed&&(i=await t.deflate.flush()||new Uint8Array(0)),t.encrypted){i=await t.encrypt.append(i);let o=t.encrypt.flush();n=o.signature;let r=new Uint8Array(i.length+o.data.length);r.set(i,0),r.set(o.data,i.length),i=r}return(!t.encrypted||t.zipCrypto)&&t.signed&&(n=t.crc32.get()),{data:i,signature:n}}};function Xhe(e,t,n){if(t.codecType.startsWith(O5))return new xz(e,t,n);if(t.codecType.startsWith(K5))return new gz(e,t,n)}var asi=T(S(),1);var Ihe="init",Whe="append",_z="flush",F6e="message",Phe=!0,H5=(e,t,n,i,o,r,s)=>(Object.assign(e,{busy:!0,codecConstructor:t,options:Object.assign({},n),scripts:s,terminate(){e.worker&&!e.busy&&(e.worker.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,o(e)}}),r?A6e(e,i):w6e(e,i));function w6e(e,t){let n=Xhe(e.codecConstructor,e.options,t);return{async append(i){try{return await n.append(i)}catch(o){throw e.onTaskFinished(),o}},async flush(){try{return await n.flush()}finally{e.onTaskFinished()}},abort(){e.onTaskFinished()}}}function A6e(e,t){let n,i={type:"module"};if(!e.interface){if(!Phe)e.worker=o(i,t.baseURL);else try{e.worker=o({},t.baseURL)}catch{Phe=!1,e.worker=o(i,t.baseURL)}e.worker.addEventListener(F6e,a,!1),e.interface={append(c){return r({type:Whe,data:c})},flush(){return r({type:_z})},abort(){e.onTaskFinished()}}}return e.interface;function o(c,l){let u,m;u=e.scripts[0],typeof u=="function"&&(u=u());try{m=new URL(u,l)}catch{m=u}return new Worker(m,c)}async function r(c){if(!n){let l=e.options,u=e.scripts.slice(1);await s({scripts:u,type:Ihe,options:l,config:{chunkSize:t.chunkSize}})}return s(c)}function s(c){let l=e.worker,u=new Promise((m,p)=>n={resolve:m,reject:p});try{if(c.data)try{c.data=c.data.buffer,l.postMessage(c,[c.data])}catch{l.postMessage(c)}else l.postMessage(c)}catch(m){n.reject(m),n=null,e.onTaskFinished()}return u}function a(c){let l=c.data;if(n){let u=l.error,m=l.type;if(u){let p=new Error(u.message);p.stack=u.stack,n.reject(p),n=null,e.onTaskFinished()}else if(m==Ihe||m==_z||m==Whe){let p=l.data;m==_z?(n.resolve({data:new Uint8Array(p),signature:l.signature}),n=null,e.onTaskFinished()):n.resolve(p&&new Uint8Array(p))}}}}var M_=[],Tz=[];function z5(e,t,n){let o=!(!t.compressed&&!t.signed&&!t.encrypted)&&(t.useWebWorkers||t.useWebWorkers===void 0&&n.useWebWorkers),r=o&&n.workerScripts?n.workerScripts[t.codecType]:[];if(M_.length!c.busy);return a?(vhe(a),H5(a,e,t,n,s,o,r)):new Promise(c=>Tz.push({resolve:c,codecConstructor:e,options:t,webWorker:o,scripts:r}))}function s(a){if(Tz.length){let[{resolve:c,codecConstructor:l,options:u,webWorker:m,scripts:p}]=Tz.splice(0,1);c(H5(a,l,u,n,s,m,p))}else a.worker?(vhe(a),Number.isFinite(n.terminateWorkerTimeout)&&n.terminateWorkerTimeout>=0&&(a.terminateTimeout=setTimeout(()=>{M_=M_.filter(c=>c!=a),a.terminate()},n.terminateWorkerTimeout))):M_=M_.filter(c=>c!=a)}}function vhe(e){e.terminateTimeout&&(clearTimeout(e.terminateTimeout),e.terminateTimeout=null)}var hsi=T(S(),1);var whe="Abort error";async function J5(e,t,n,i,o,r,s){let a=Math.max(r.chunkSize,64);return c();async function c(l=0,u=0){let m=s.signal,p=o();if(l{t.onload=o=>n(o.target.result),t.onerror=()=>i(t.error),t.readAsText(this.blob,this.encoding)})}}};var eU=class extends ZP{constructor(t){super(),this.data="data:"+(t||"")+";base64,",this.pending=[]}writeUint8Array(t){super.writeUint8Array(t);let n=0,i=this.pending,o=this.pending.length;for(this.pending="",n=0;n2?this.data+=btoa(i):this.pending=i}getData(){return this.data+btoa(this.pending)}},N_=class extends j5{constructor(t){super(),this.blob=t,this.size=t.size}async readUint8Array(t,n){if(this.blob.arrayBuffer)return new Uint8Array(await this.blob.slice(t,t+n).arrayBuffer());{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(new Uint8Array(s.target.result)),i.onerror=()=>r(i.error),i.readAsArrayBuffer(this.blob.slice(t,t+n))})}}},W1=class extends ZP{constructor(t){super(),this.contentType=t,this.arrayBuffersMaxlength=8,Ahe(this)}writeUint8Array(t){super.writeUint8Array(t),this.arrayBuffers.length==this.arrayBuffersMaxlength&&Mhe(this),this.arrayBuffers.push(t.buffer)}getData(){return this.blob||(this.arrayBuffers.length&&Mhe(this),this.blob=this.pendingBlob,Ahe(this)),this.blob}};function Ahe(e){e.pendingBlob=new Blob([],{type:e.contentType}),e.arrayBuffers=[]}function Mhe(e){e.pendingBlob=new Blob([e.pendingBlob,...e.arrayBuffers],{type:e.contentType}),e.arrayBuffers=[]}var Psi=T(S(),1);var ysi=T(S(),1);var P1="/",Vz=new Date(2107,11,31),Lz=new Date(1980,0,1);var Ssi=T(S(),1);var xsi=T(S(),1),M6e="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),Nhe=e=>{let t="";for(let n=0;n"u"){let n=new FileReader;return new Promise((i,o)=>{n.onload=r=>i(r.target.result),n.onerror=()=>o(n.error),n.readAsText(new Blob([e]))})}else return new TextDecoder(t).decode(e)}var Vsi=T(S(),1),U6e=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"],R0=class{constructor(t){U6e.forEach(n=>this[n]=t[n])}};var Gz="File format is not recognized",Y6e="End of central directory not found",O6e="End of Zip64 central directory not found",K6e="End of Zip64 central directory locator not found",H6e="Central directory header not found",z6e="Local file header not found",J6e="Zip64 extra field not found",Q6e="File contains encrypted entry",j6e="Encryption method not supported",Uhe="Compression method not supported",khe="utf-8",Dhe="cp437",Bhe=["uncompressedSize","compressedSize","offset"],dU=class{constructor(t,n={}){Object.assign(this,{reader:t,options:n,config:M5()})}async*getEntriesGenerator(t={}){let n=this,i=n.reader;if(i.initialized||await i.init(),i.size<22)throw new Error(Gz);let o=await nqe(i,101010256,i.size,22,65535*16);if(!o)throw new Error(Y6e);let r=oc(o),s=$s(r,12),a=$s(r,16),c=Sd(r,8),l=0;if(a==4294967295||s==4294967295||c==65535){let y=await Fy(i,o.offset-20,20),f=oc(y);if($s(f,0)!=117853008)throw new Error(O6e);a=nU(f,8);let x=await Fy(i,a,56),_=oc(x),C=o.offset-20-56;if($s(_,0)!=101075792&&a!=C){let V=a;a=C,l=a-V,x=await Fy(i,a,56),_=oc(x)}if($s(_,0)!=101075792)throw new Error(K6e);c=nU(_,32),s=nU(_,40),a-=s}if(a<0||a>=i.size)throw new Error(Gz);let u=0,m=await Fy(i,a,s),p=oc(m);if(s){let y=o.offset-s;if($s(p,u)!=33639248&&a!=y){let f=a;a=y,l=a-f,m=await Fy(i,a,s),p=oc(m)}}if(a<0||a>=i.size)throw new Error(Gz);for(let y=0;yf.getData(b,M,R),u=G,t.onprogress)try{t.onprogress(y+1,c,new R0(f))}catch{}yield M}return!0}async getEntries(t={}){let n=[],i=this.getEntriesGenerator(t),o=i.next();for(;!(await o).done;)n.push((await o).value),o=i.next();return n}async close(){}};var Xz=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let o=this,{reader:r,offset:s,extraFieldAES:a,compressionMethod:c,config:l,bitFlag:u,signature:m,rawLastModDate:p,compressedSize:y}=o,f=o.localDirectory={};r.initialized||await r.init();let x=await Fy(r,s,30),_=oc(x),C=v1(o,i,"password");if(C=C&&C.length&&C,a&&a.originalCompressionMethod!=99)throw new Error(Uhe);if(c!=0&&c!=8)throw new Error(Uhe);if($s(_,0)!=67324752)throw new Error(z6e);Ohe(f,_,4),x=await Fy(r,s,30+f.filenameLength+f.extraFieldLength),f.rawExtraField=x.subarray(30+f.filenameLength),await Khe(o,f,_,4),n.lastAccessDate=f.lastAccessDate,n.creationDate=f.creationDate;let V=o.encrypted&&f.encrypted,L=V&&!a;if(V){if(!L&&a.strength===void 0)throw new Error(j6e);if(!C)throw new Error(Q6e)}let Z=await z5(l.Inflate,{codecType:K5,password:C,zipCrypto:L,encryptionStrength:a&&a.strength,signed:v1(o,i,"checkSignature"),passwordVerification:L&&(u.dataDescriptor?p>>>8&255:m>>>24&255),signature:m,compressed:c!=0,encrypted:V,useWebWorkers:v1(o,i,"useWebWorkers")},l);t.initialized||await t.init();let G=v1(o,i,"signal"),X=s+30+f.filenameLength+f.extraFieldLength;return await J5(Z,r,t,X,()=>y,l,{onprogress:i.onprogress,signal:G}),t.getData()}};function Ohe(e,t,n){let i=e.rawBitFlag=Sd(t,n+2),o=(i&1)==1,r=$s(t,n+6);Object.assign(e,{encrypted:o,version:Sd(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:iqe(r),filenameLength:Sd(t,n+22),extraFieldLength:Sd(t,n+24)})}async function Khe(e,t,n,i){let o=t.rawExtraField,r=t.extraField=new Map,s=oc(new Uint8Array(o)),a=0;try{for(;at[o]==4294967295);for(let o=0;o{if(t[o]==4294967295)if(e[o]!==void 0)t[o]=e[o];else throw new Error(J6e)})}async function Yhe(e,t,n,i,o){let r=oc(e.data);e.version=F1(r,0),e.signature=$s(r,1);let s=new Py;s.append(o[n]);let a=oc(new Uint8Array(4));a.setUint32(0,s.get(),!0),e[t]=await tU(e.data.subarray(5)),e.valid=!o.bitFlag.languageEncodingFlag&&e.signature==$s(a,0),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function $6e(e,t,n){let i=oc(e.data);e.vendorVersion=F1(i,0),e.vendorId=F1(i,2);let o=F1(i,4);e.strength=o,e.originalCompressionMethod=n,t.compressionMethod=e.compressionMethod=Sd(i,5)}function eqe(e,t){let n=oc(e.data),i=4,o;try{for(;i{if(e.data.length>=s+4){let l=$s(n,s);t[a]=e[a]=new Date(l*1e3);let u=r[c];e[u]=l}s+=4})}async function nqe(e,t,n,i,o){let r=new Uint8Array(4),s=oc(r);oqe(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(l){let u=n-l,m=await Fy(e,u,l);for(let p=m.length-i;p>=0;p--)if(m[p]==r[0]&&m[p+1]==r[1]&&m[p+2]==r[2]&&m[p+3]==r[3])return{offset:u+p,buffer:m.slice(p,p+i).buffer}}}function v1(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function iqe(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function Ez(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function F1(e,t){return e.getUint8(t)}function Sd(e,t){return e.getUint16(t,!0)}function $s(e,t){return e.getUint32(t,!0)}function nU(e,t){return Number(e.getBigUint64(t,!0))}function oqe(e,t,n){e.setUint32(t,n,!0)}function oc(e){return new DataView(e.buffer)}function Fy(e,t,n){return e.readUint8Array(t,n)}var Dsi=T(S(),1);var lqe="File already exists",dqe="Zip file comment exceeds 64KB",uqe="File entry comment exceeds 64KB",mqe="File entry name exceeds 64KB",Jhe="Version exceeds 65535",hqe="The strength must equal 1, 2, or 3",fqe="Extra field type exceeds 65535",pqe="Extra field data exceeds 64KB",Dz="Zip64 is not supported",Qhe=new Uint8Array([7,0,2,0,65,69,3,0,0]),jhe=24,Uz=0,hU=class{constructor(t,n={}){Object.assign(this,{writer:t,options:n,config:M5(),files:new Map,offset:t.size,pendingCompressedSize:0,pendingEntries:[],pendingAddFileCalls:new Set})}async add(t="",n,i={}){let o=this;if(Uzo.pendingEntries.push({name:t,reader:n,options:i,resolve:r,reject:s}))}async close(t=new Uint8Array(0),n={}){for(;this.pendingAddFileCalls.size;)await Promise.all(Array.from(this.pendingAddFileCalls));return await xqe(this,t,n),this.writer.getData()}};async function bqe(e,t,n,i){if(t=t.trim(),i.directory&&!t.endsWith(P1)?t+=P1:i.directory=t.endsWith(P1),e.files.has(t))throw new Error(lqe);let o=CP(t);if(o.length>65535)throw new Error(mqe);let r=i.comment||"",s=CP(r);if(s.length>65535)throw new Error(uqe);let a=e.options.version||i.version||0;if(a>65535)throw new Error(Jhe);let c=e.options.versionMadeBy||i.versionMadeBy||20;if(c>65535)throw new Error(Jhe);let l=Ta(e,i,"lastModDate")||new Date,u=Ta(e,i,"lastAccessDate"),m=Ta(e,i,"creationDate"),p=Ta(e,i,"password"),y=Ta(e,i,"encryptionStrength")||3,f=Ta(e,i,"zipCrypto");if(p!==void 0&&y!==void 0&&(y<1||y>3))throw new Error(hqe);let x=new Uint8Array(0),_=i.extraField;if(_){let N=0,Y=0;_.forEach(k=>N+=4+k.length),x=new Uint8Array(N),_.forEach((k,O)=>{if(O>65535)throw new Error(fqe);if(k.length>65535)throw new Error(pqe);ta(x,new Uint16Array([O]),Y),ta(x,new Uint16Array([k.length]),Y+2),ta(x,k,Y+4),Y+=4+k.length})}let C=Ta(e,i,"extendedTimestamp");C===void 0&&(C=!0);let V=0,L=Ta(e,i,"keepOrder");L===void 0&&(L=!0);let Z=0,G=Ta(e,i,"msDosCompatible");G===void 0&&(G=!0);let X=Ta(e,i,"internalFileAttribute")||0,P=Ta(e,i,"externalFileAttribute")||0;n&&(n.initialized||await n.init(),Z=n.size,V=Tqe(Z));let v=i.zip64||e.options.zip64||!1;if(e.offset+e.pendingCompressedSize>=4294967295||Z>=4294967295||V>=4294967295){if(i.zip64===!1||e.options.zip64===!1||!L)throw new Error(Dz);v=!0}e.pendingCompressedSize+=V,await Promise.resolve();let A=Ta(e,i,"level"),M=Ta(e,i,"useWebWorkers"),b=Ta(e,i,"bufferedWrite"),R=Ta(e,i,"dataDescriptor"),E=Ta(e,i,"dataDescriptorSignature"),I=Ta(e,i,"signal");R===void 0&&(R=!0),R&&E===void 0&&(E=!1);let F=await yqe(e,t,n,Object.assign({},i,{rawFilename:o,rawComment:s,version:a,versionMadeBy:c,lastModDate:l,lastAccessDate:u,creationDate:m,rawExtraField:x,zip64:v,password:p,level:A,useWebWorkers:M,encryptionStrength:y,extendedTimestamp:C,zipCrypto:f,bufferedWrite:b,keepOrder:L,dataDescriptor:R,dataDescriptorSignature:E,signal:I,msDosCompatible:G,internalFileAttribute:X,externalFileAttribute:P}));return V&&(e.pendingCompressedSize-=V),Object.assign(F,{name:t,comment:r,extraField:_}),new R0(F)}async function yqe(e,t,n,i){let o=e.files,r=e.writer,s=Array.from(o.values()).pop(),a={},c,l,u;o.set(t,a);try{let m,p,y;if(i.keepOrder&&(m=s&&s.lock),a.lock=y=new Promise(f=>u=f),i.bufferedWrite||e.lockWrite||!i.dataDescriptor?(p=new W1,p.init(),c=!0):(e.lockWrite=new Promise(f=>l=f),r.initialized||await r.init(),p=r),a=await gqe(n,p,e.config,i),a.lock=y,o.set(t,a),a.filename=t,c){let f=0,x=p.getData();await Promise.all([e.lockWrite,m]);let _;do _=Array.from(o.values()).find(C=>C.writingBufferedData),_&&await _.lock;while(_&&_.lock);if(a.writingBufferedData=!0,!i.dataDescriptor){let V=await qhe(x,0,26),L=new DataView(V);(!a.encrypted||i.zipCrypto)&&ho(L,14,a.signature),a.zip64?(ho(L,18,4294967295),ho(L,22,4294967295)):(ho(L,18,a.compressedSize),ho(L,22,a.uncompressedSize)),await r.writeUint8Array(new Uint8Array(V)),f=26}await _qe(r,x,f),delete a.writingBufferedData}if(a.offset=e.offset,a.zip64){let f=th(a.rawExtraFieldZip64);Il(f,20,BigInt(a.offset))}else if(a.offset>=4294967295)throw new Error(Dz);return e.offset+=a.length,a}catch(m){throw(c&&a.writingBufferedData||!c&&a.dataWritten)&&(m.corruptedEntry=e.hasCorruptedEntries=!0,a.uncompressedSize&&(e.offset+=a.uncompressedSize)),o.delete(t),m}finally{u(),l&&l()}}async function gqe(e,t,n,i){let{rawFilename:o,lastAccessDate:r,creationDate:s,password:a,level:c,zip64:l,zipCrypto:u,dataDescriptor:m,dataDescriptorSignature:p,directory:y,version:f,versionMadeBy:x,rawComment:_,rawExtraField:C,useWebWorkers:V,onprogress:L,signal:Z,encryptionStrength:G,extendedTimestamp:X,msDosCompatible:P,internalFileAttribute:v,externalFileAttribute:A}=i,M=!!(a&&a.length),b=c!==0&&!y,R;if(M&&!u){R=new Uint8Array(Qhe.length+2);let Me=th(R);Jo(Me,0,39169),ta(R,Qhe,2),fU(Me,8,G)}else R=new Uint8Array(0);let E,I;if(X){I=new Uint8Array(9+(r?4:0)+(s?4:0));let Me=th(I);Jo(Me,0,21589),Jo(Me,2,I.length-4);let ve=1+(r?2:0)+(s?4:0);fU(Me,4,ve),ho(Me,5,Math.floor(i.lastModDate.getTime()/1e3)),r&&ho(Me,9,Math.floor(r.getTime()/1e3)),s&&ho(Me,13,Math.floor(s.getTime()/1e3));try{E=new Uint8Array(36);let ke=th(E),ct=kz(i.lastModDate);Jo(ke,0,10),Jo(ke,2,32),Jo(ke,8,1),Jo(ke,10,24),Il(ke,12,ct),Il(ke,20,kz(r)||ct),Il(ke,28,kz(s)||ct)}catch{E=new Uint8Array(0)}}else E=I=new Uint8Array(0);let F={version:f||20,versionMadeBy:x,zip64:l,directory:!!y,filenameUTF8:!0,rawFilename:o,commentUTF8:!0,rawComment:_,rawExtraFieldZip64:l?new Uint8Array(jhe+4):new Uint8Array(0),rawExtraFieldExtendedTimestamp:I,rawExtraFieldNTFS:E,rawExtraFieldAES:R,rawExtraField:C,extendedTimestamp:X,msDosCompatible:P,internalFileAttribute:v,externalFileAttribute:A},N=F.uncompressedSize=0,Y=2048;m&&(Y=Y|8);let k=0;b&&(k=8),l&&(F.version=F.version>45?F.version:45),M&&(Y=Y|1,u||(F.version=F.version>51?F.version:51,k=99,b&&(F.rawExtraFieldAES[9]=8))),F.compressionMethod=k;let O=F.headerArray=new Uint8Array(26),U=th(O);Jo(U,0,F.version),Jo(U,2,Y),Jo(U,4,k);let J=new Uint32Array(1),z=th(J),ee;i.lastModDateVz?ee=Vz:ee=i.lastModDate,Jo(z,0,(ee.getHours()<<6|ee.getMinutes())<<5|ee.getSeconds()/2),Jo(z,2,(ee.getFullYear()-1980<<4|ee.getMonth()+1)<<5|ee.getDate());let K=J[0];ho(U,6,K),Jo(U,22,o.length);let j=R.length+I.length+E.length+F.rawExtraField.length;Jo(U,24,j);let q=new Uint8Array(30+o.length+j),be=th(q);ho(be,0,67324752),ta(q,O,4),ta(q,o,30),ta(q,R,30+o.length),ta(q,I,30+o.length+R.length),ta(q,E,30+o.length+R.length+I.length),ta(q,F.rawExtraField,30+o.length+R.length+I.length+E.length);let Te,ae=0;if(e){let Me=await z5(n.Deflate,{codecType:O5,level:c,password:a,encryptionStrength:G,zipCrypto:M&&u,passwordVerification:M&&u&&K>>8&255,signed:!0,compressed:b,encrypted:M,useWebWorkers:V},n);await t.writeUint8Array(q),F.dataWritten=!0,Te=await J5(Me,e,t,0,()=>e.size,n,{onprogress:L,signal:Z}),N=F.uncompressedSize=e.size,ae=Te.length}else await t.writeUint8Array(q),F.dataWritten=!0;let xe=new Uint8Array(0),_e,Ve=0;if(m&&(xe=new Uint8Array(l?p?24:20:p?16:12),_e=th(xe),p&&(Ve=4,ho(_e,0,134695760))),e){let Me=Te.signature;if((!M||u)&&Me!==void 0&&(ho(U,10,Me),F.signature=Me,m&&ho(_e,Ve,Me)),l){let ve=th(F.rawExtraFieldZip64);Jo(ve,0,1),Jo(ve,2,jhe),ho(U,14,4294967295),Il(ve,12,BigInt(ae)),ho(U,18,4294967295),Il(ve,4,BigInt(N)),m&&(Il(_e,Ve+4,BigInt(ae)),Il(_e,Ve+12,BigInt(N)))}else ho(U,14,ae),ho(U,18,N),m&&(ho(_e,Ve+4,ae),ho(_e,Ve+8,N))}m&&await t.writeUint8Array(xe);let Ie=q.length+ae+xe.length;return Object.assign(F,{compressedSize:ae,lastModDate:ee,rawLastModDate:K,creationDate:s,lastAccessDate:r,encrypted:M,length:Ie}),F}async function xqe(e,t,n){let i=e.writer,o=e.files,r=0,s=0,a=e.offset,c=o.size;for(let[,p]of o)s+=46+p.rawFilename.length+p.rawComment.length+p.rawExtraFieldZip64.length+p.rawExtraFieldAES.length+p.rawExtraFieldExtendedTimestamp.length+p.rawExtraFieldNTFS.length+p.rawExtraField.length;let l=n.zip64||e.options.zip64||!1;if(a>=4294967295||s>=4294967295||c>=65535){if(n.zip64===!1||e.options.zip64===!1)throw new Error(Dz);l=!0}let u=new Uint8Array(s+(l?98:22)),m=th(u);if(t&&t.length)if(t.length<=65535)Jo(m,r+20,t.length);else throw new Error(dqe);for(let[p,y]of Array.from(o.values()).entries()){let{rawFilename:f,rawExtraFieldZip64:x,rawExtraFieldAES:_,rawExtraField:C,rawComment:V,versionMadeBy:L,headerArray:Z,directory:G,zip64:X,msDosCompatible:P,internalFileAttribute:v,externalFileAttribute:A}=y,M,b;if(y.extendedTimestamp){b=y.rawExtraFieldNTFS,M=new Uint8Array(9);let E=th(M);Jo(E,0,21589),Jo(E,2,M.length-4),fU(E,4,1),ho(E,5,Math.floor(y.lastModDate.getTime()/1e3))}else b=M=new Uint8Array(0);let R=x.length+_.length+M.length+b.length+C.length;if(ho(m,r,33639248),Jo(m,r+4,L),ta(u,Z,r+6),Jo(m,r+30,R),Jo(m,r+32,V.length),ho(m,r+34,v),A?ho(m,r+38,A):G&&P&&fU(m,r+38,16),X?ho(m,r+42,4294967295):ho(m,r+42,y.offset),ta(u,f,r+46),ta(u,x,r+46+f.length),ta(u,_,r+46+f.length+x.length),ta(u,M,r+46+f.length+x.length+_.length),ta(u,b,r+46+f.length+x.length+_.length+M.length),ta(u,C,r+46+f.length+x.length+_.length+M.length+b.length),ta(u,V,r+46+f.length+R),r+=46+f.length+R+V.length,n.onprogress)try{n.onprogress(p+1,o.size,new R0(y))}catch{}}l&&(ho(m,r,101075792),Il(m,r+4,BigInt(44)),Jo(m,r+12,45),Jo(m,r+14,45),Il(m,r+24,BigInt(c)),Il(m,r+32,BigInt(c)),Il(m,r+40,BigInt(s)),Il(m,r+48,BigInt(a)),ho(m,r+56,117853008),Il(m,r+64,BigInt(a)+BigInt(s)),ho(m,r+72,1),c=65535,a=4294967295,s=4294967295,r+=76),ho(m,r,101010256),Jo(m,r+8,c),Jo(m,r+10,c),ho(m,r+12,s),ho(m,r+16,a),await i.writeUint8Array(u),t&&t.length&&await i.writeUint8Array(t)}function qhe(e,t,n){if(e.arrayBuffer)return t||n?e.slice(t,n).arrayBuffer():e.arrayBuffer();{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(s.target.result),i.onerror=()=>r(i.error),i.readAsArrayBuffer(t||n?e.slice(t,n):e)})}}async function _qe(e,t,n=0){await o();async function o(){if(n=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else d(n)&&n(!1)}function Vqe(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,tfe.call(this,e,t,n)}}var EP=pU;var Lai=T(S(),1);var xai=T(S(),1);var bai=T(S(),1),Wi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return this.None(e)},Out:function(e){return this.None(e)},InOut:function(e){return this.None(e)}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var t=1.70158;return e===1?1:e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return e===0?0:--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Wi.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Wi.Bounce.In(e*2)*.5:Wi.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e1e4?1e4:e,{In:function(t){return Math.pow(t,e)},Out:function(t){return 1-Math.pow(1-t,e)},InOut:function(t){return t<.5?Math.pow(t*2,e)/2:(1-Math.pow(2-t*2,e))/2+.5}}}}),XP=function(){return performance.now()},Lqe=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},e.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},e.prototype.update=function(t,n){t===void 0&&(t=XP()),n===void 0&&(n=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=w1.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=w1.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},nfe=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),Bz=new Lqe,ife=function(){function e(t,n){n===void 0&&(n=Bz),this._object=t,this._group=n,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Wi.Linear.None,this._interpolationFunction=w1.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=nfe.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(t,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t,this},e.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},e.prototype.start=function(t,n){if(t===void 0&&(t=XP()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var r in this._valuesEnd)o[r]=this._valuesEnd[r];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},e.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},e.prototype._setupProperties=function(t,n,i,o,r){for(var s in i){var a=t[s],c=Array.isArray(a),l=c?"array":typeof a,u=!c&&Array.isArray(i[s]);if(!(l==="undefined"||l==="function")){if(u){var m=i[s];if(m.length===0)continue;for(var p=[a],y=0,f=m.length;y"u"||r)&&(n[s]=a),c||(n[s]*=1),u?o[s]=i[s].slice().reverse():o[s]=n[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(t){return t===void 0&&(t=XP()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this),this)},e.prototype.resume=function(t){return t===void 0&&(t=XP()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;tr)return!1;n&&this.start(t,!0)}if(this._goToEnd=!1,t1?1:o;var s=this._easingFunction(o);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,o),o===1)if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(i in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[i]=="string"&&(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._repeatDelayTime!==void 0?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,c=this._chainedTweens.length;athis._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function Eqe(e){let t=e.slice(0,Math.min(4,e.size)),n=il(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function Xqe(e){let t=il(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function ffe(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(d(n)||(n=e.substr(0,e.indexOf("",t),i,o,r;for(;t!==-1&&t0?(Wl.maximumRed=r,Wl.red=void 0):(Wl.maximumRed=void 0,Wl.red=0),o>0?(Wl.maximumGreen=o,Wl.green=void 0):(Wl.maximumGreen=void 0,Wl.green=0),i>0?(Wl.maximumBlue=i,Wl.blue=void 0):(Wl.maximumBlue=void 0,Wl.blue=0),Wl.alpha=n,B.fromRandom(Wl)):new B(r,o,i,n)}function U_(e,t,n){let i=Xn(e,t,n);if(d(i))return Jz(i,Xn(e,"colorMode",n)==="random")}function Wqe(e){let t=Pi(e,"TimeStamp",Pe.kmlgx),n=Xn(t,"when",Pe.kmlgx);if(!d(t)||!d(n)||n.length===0)return;let i=te.fromIso8601(n),o=new Rr;return o.addInterval(new Tn({start:i,stop:Ye.MAXIMUM_VALUE})),o}function Pqe(e){let t=Pi(e,"TimeSpan",Pe.kmlgx);if(!d(t))return;let n,i=Pi(t,"begin",Pe.kmlgx),o=d(i)?te.fromIso8601(i.textContent):void 0,r=Pi(t,"end",Pe.kmlgx),s=d(r)?te.fromIso8601(r.textContent):void 0;if(d(o)&&d(s)){if(te.lessThan(s,o)){let a=o;o=s,s=a}n=new Rr,n.addInterval(new Tn({start:o,stop:s}))}else d(o)?(n=new Rr,n.addInterval(new Tn({start:o,stop:Ye.MAXIMUM_VALUE}))):d(s)&&(n=new Rr,n.addInterval(new Tn({start:Ye.MINIMUM_VALUE,stop:s})));return n}function yfe(){let e=new Ua;return e.width=wy,e.height=wy,e.scaleByDistance=new Pt(ofe,rfe,sfe,afe),e.pixelOffsetScaleByDistance=new Pt(ofe,rfe,sfe,afe),e}function eJ(){let e=new mm;return e.outline=!0,e.outlineColor=B.WHITE,e}function gfe(){let e=new um;return e.translucencyByDistance=new Pt(3e6,1,5e6,0),e.pixelOffset=new D(17,0),e.horizontalOrigin=bi.LEFT,e.font="16px sans-serif",e.style=vo.FILL_AND_OUTLINE,e}function tJ(e,t,n,i,o){let r=Xn(e,"href",Pe.kml);if(!d(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=g(ei(e,"x",Pe.gx),0),l=g(ei(e,"y",Pe.gx),0);c=Math.min(c/32,7),l=7-Math.min(l/32,7);let u=8*l+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${u}.png`}let s=$z(r,n,i);if(o){let a=Xn(e,"refreshMode",Pe.kml),c=Xn(e,"viewRefreshMode",Pe.kml);a==="onInterval"||a==="onExpire"?It(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&It(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let l=g(Xn(e,"viewBoundScale",Pe.kml),1),u=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",m=g(Xn(e,"viewFormat",Pe.kml),u),p=Xn(e,"httpQuery",Pe.kml);d(m)&&s.setQueryParameters(Bl(xU(m))),d(p)&&s.setQueryParameters(Bl(xU(p)));let y=t._ellipsoid;return iJ(s,t.camera,t.canvas,l,t._lastCameraView.bbox,y),s}return s}function vqe(e,t,n,i,o){let r=ei(t,"scale",Pe.kml),s=ei(t,"heading",Pe.kml),a=U_(t,"color",Pe.kml),c=Pi(t,"Icon",Pe.kml),l=tJ(c,e,i,o,!1);d(c)&&!d(l)&&(l=!1);let u=ei(c,"x",Pe.gx),m=ei(c,"y",Pe.gx),p=ei(c,"w",Pe.gx),y=ei(c,"h",Pe.gx),f=Pi(t,"hotSpot",Pe.kml),x=Ay(f,"x"),_=Ay(f,"y"),C=us(f,"xunits"),V=us(f,"yunits"),L=n.billboard;d(L)||(L=yfe(),n.billboard=L),L.image=l,L.scale=r,L.color=a,(d(u)||d(m)||d(p)||d(y))&&(L.imageSubRegion=new He(u,m,p,y)),d(s)&&s!==0&&(L.rotation=W.toRadians(-s),L.alignedAxis=h.UNIT_Z),r=g(r,1);let Z,G;d(x)&&(C==="pixels"?Z=-x*r:C==="insetPixels"?Z=(x-wy)*r:C==="fraction"&&(Z=-x*wy*r),Z+=wy*.5*r),d(_)&&(V==="pixels"?G=_*r:V==="insetPixels"?G=(-_+wy)*r:V==="fraction"&&(G=_*wy*r),G-=wy*.5*r),(d(Z)||d(G))&&(L.pixelOffset=new D(Z,G))}function gU(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r:clampToSeaFloor is currently not supported, using :clampToGround."),Ke.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(It("kml-gx:altitudeMode-relativeToSeaFloor","KML - :relativeToSeaFloor is currently not supported, using :relativeToGround."),Ke.RELATIVE_TO_GROUND):(d(e)?It("kml-altitudeMode-unknown",`KML - Unknown :${e}, using :CLAMP_TO_GROUND.`):It("kml-gx:altitudeMode-unknown",`KML - Unknown :${t}, using :CLAMP_TO_GROUND.`),Ke.CLAMP_TO_GROUND)}function Aqe(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((d(t)&&t!=="clampToGround"||d(n)&&n!=="clampToSeaFloor")&&It("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g(t,n)}`),new mf(e))}function Mqe(e,t,n,i){if(!d(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(d(t)&&t!=="clampToGround"||d(n)&&n!=="clampToSeaFloor")&&It("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g(t,n)}`);let o=e.length;for(let r=0;r0&&It("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let y=Math.min(a.length,l.length),f=[],x=[];for(let C=0;C0&&i.availability.addInterval(new Tn({start:x[0],stop:x[x.length-1]})),m&&u&&nJ(t,i,o),!0}function mfe(e,t,n,i,o,r,s,a,c){let l=e[0],u=e[e.length-1],m=new js;m.addSamples(e,t),n.intervals.addInterval(new Tn({start:l,stop:u,isStartIncluded:c,isStopIncluded:c,data:Aqe(m,s,a)})),i.addInterval(new Tn({start:l,stop:u,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Tn({start:l,stop:u,isStartIncluded:c,isStopIncluded:c,data:r}))}function Dqe(e,t,n,i,o){let r=ih(n,"interpolate",Pe.gx),s=nh(n,"Track",Pe.gx),a,c,l,u=!1,m=new y0,p=new Rr,y=new Js,f=e._ellipsoid;for(let x=0,_=s.length;x<_;x++){let C=s[x],V=nh(C,"when",Pe.kml),L=nh(C,"coord",Pe.gx),Z=Xn(C,"altitudeMode",Pe.kml),G=Xn(C,"altitudeMode",Pe.gx),X=vP(Z,G),P=ih(C,"extrude",Pe.kml),v=Math.min(L.length,V.length),A=[];a=[];for(let M=0;M0)){for(f='',r=0;r`;f+="
${g(x.displayName,s)}${g(x.value,"")}
"}if(!d(f))return;f=Zqe.link(f),fo.innerHTML=f;let _=fo.querySelectorAll("a");for(r=0;r<_.length;r++)_[r].setAttribute("target","_blank");d(i)&&i.keys.length>1&&(Cd(fo,"a","href",i),Cd(fo,"link","href",i),Cd(fo,"area","href",i),Cd(fo,"img","src",i),Cd(fo,"iframe","src",i),Cd(fo,"video","src",i),Cd(fo,"audio","src",i),Cd(fo,"source","src",i),Cd(fo,"track","src",i),Cd(fo,"input","src",i),Cd(fo,"embed","src",i),Cd(fo,"script","src",i),Cd(fo,"video","poster",i)),Vd(fo,"a","href",o),Vd(fo,"link","href",o),Vd(fo,"area","href",o),Vd(fo,"img","src",o),Vd(fo,"iframe","src",o),Vd(fo,"video","src",o),Vd(fo,"audio","src",o),Vd(fo,"source","src",o),Vd(fo,"track","src",o),Vd(fo,"input","src",o),Vd(fo,"embed","src",o),Vd(fo,"script","src",o),Vd(fo,"video","poster",o);let C='
',C+=`${fo.innerHTML}
`,fo.innerHTML="",t.description=C}function SU(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=bfe(t,i,n.context),c=a.kml,l=Fqe(e,t,n.styleCollection,r,s),u=Xn(t,"name",Pe.kml);a.name=u,a.parent=o;let m=Pqe(t);d(m)||(m=Wqe(t)),a.availability=m,rJ(a);function p(L){return L?L.show&&p(L.parent):!0}let y=ih(t,"visibility",Pe.kml);a.show=p(o)&&g(y,!0);let f=Pi(t,"author",Pe.atom),x=c.author;x.name=Xn(f,"name",Pe.atom),x.uri=Xn(f,"uri",Pe.atom),x.email=Xn(f,"email",Pe.atom);let _=Pi(t,"link",Pe.atom),C=c.link;C.href=us(_,"href"),C.hreflang=us(_,"hreflang"),C.rel=us(_,"rel"),C.type=us(_,"type"),C.title=us(_,"title"),C.length=us(_,"length"),c.address=Xn(t,"address",Pe.kml),c.phoneNumber=Xn(t,"phoneNumber",Pe.kml),c.snippet=Xn(t,"Snippet",Pe.kml),Oqe(t,a),Kqe(t,a,l,s,r);let V=e._ellipsoid;return Lfe(t,a,V),Vfe(t,a,V),d(Pi(t,"Region",Pe.kml))&&It("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:l}}function Cfe(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function Hqe(e,t,n,i){let o=SU(e,t,n),r=Oe(n);r.parentEntity=o.entity,Cfe(e,t,r,i)}function zqe(e,t,n,i){let o=SU(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let l=0,u=c.length;lW.PI_OVER_TWO?W.PI_OVER_TWO:l}function a(l){return l>W.PI?l-W.TWO_PI:l<-W.PI?l+W.TWO_PI:l}let c=Gg(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),d(t)&&t._mode!==ie.MORPHING){let l,u;if(o=g(o,t$e),d(n)&&(Hz.x=n.clientWidth*.5,Hz.y=n.clientHeight*.5,l=t.pickEllipsoid(Hz,r,n$e)),d(l)?u=r.cartesianToCartographic(l,A1):(u=de.center(o,A1),l=r.cartographicToCartesian(u)),d(i)&&!W.equalsEpsilon(i,1,W.EPSILON9)){let C=o.width*i*.5,V=o.height*i*.5;o=new de(a(u.longitude-C),s(u.latitude-V),a(u.longitude+C),s(u.latitude+V))}c=c.replace("[bboxWest]",W.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",W.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",W.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",W.toDegrees(o.north).toString());let m=W.toDegrees(u.longitude).toString(),p=W.toDegrees(u.latitude).toString();c=c.replace("[lookatLon]",m),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",W.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",W.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,l)),c=c.replace("[lookatTerrainLon]",m),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",u.height.toString()),r.cartesianToCartographic(t.positionWC,A1),c=c.replace("[cameraLon]",W.toDegrees(A1.longitude).toString()),c=c.replace("[cameraLat]",W.toDegrees(A1.latitude).toString()),c=c.replace("[cameraAlt]",W.toDegrees(A1.height).toString());let y=t.frustum,f=y.aspectRatio,x="",_="";if(d(f)){let C=W.toDegrees(y.fov);f>1?(x=C,_=C/f):(_=C,x=C*f)}c=c.replace("[horizFov]",x.toString()),c=c.replace("[vertFov]",_.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");d(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(Bl(c))}function i$e(e,t,n,i){let r=SU(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Pi(t,"Link",Pe.kml);if(d(c)||(c=Pi(t,"Url",Pe.kml)),d(c)){let l=Xn(c,"href",Pe.kml),u,m;if(d(l)){let p=l;if(l=$z(l,s,n.uriResolver),/^data:/.test(l.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=l.clone(),u=Xn(c,"viewRefreshMode",Pe.kml),u==="onRegion"){It("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}m=g(Xn(c,"viewBoundScale",Pe.kml),1);let _=u==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",C=g(Xn(c,"viewFormat",Pe.kml),_),V=Xn(c,"httpQuery",Pe.kml);d(C)&&l.setQueryParameters(Bl(xU(C))),d(V)&&l.setQueryParameters(Bl(xU(V)));let L=e._ellipsoid;iJ(l,e.camera,e.canvas,m,e._lastCameraView.bbox,L)}let y={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},f=new Es,x=oJ(e,f,l,y).then(function(_){let C=e._entityCollection,V=f.values;C.suspendEvents();for(let G=0;G0||L==="onExpire"||u==="onStop"){let G=Pi(_,"NetworkLinkControl",Pe.kml),X=d(G),P=te.now(),v={id:Yn(),href:l,cookie:{},lastUpdated:P,updating:!1,entity:r,viewBoundScale:m,needsUpdate:!1,cameraUpdateTime:P},A=0;if(X&&(v.cookie=Bl(g(Xn(G,"cookie",Pe.kml),"")),A=g(ei(G,"minRefreshPeriod",Pe.kml),0)),L==="onInterval")X&&(Z=Math.max(A,Z)),v.refreshMode=My.INTERVAL,v.time=Z;else if(L==="onExpire"){let M;if(X&&(M=Xn(G,"expires",Pe.kml)),d(M))try{let b=te.fromIso8601(M),R=te.secondsDifference(b,P);R>0&&R0;)this._screenOverlays.pop().remove()};function rJ(e){let t=e.parent;if(d(t)){let n=t.availability;if(d(n)){let i=e.availability;d(i)?i.intersect(n):e.availability=n}}}function s$e(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Pi(r,"NetworkLinkControl",Pe.kml),c=d(a),l=0;if(c){if(d(Pi(a,"Update",Pe.kml))){It("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=Bl(g(Xn(a,"cookie",Pe.kml),"")),l=g(ei(a,"minRefreshPeriod",Pe.kml),0)}let u=te.now(),m=t.refreshMode;if(m===My.INTERVAL)d(a)&&(t.time=Math.max(l,t.time));else if(m===My.EXPIRE){let P;if(d(a)&&(P=Xn(a,"expires",Pe.kml)),d(P))try{let v=te.fromIso8601(P),A=te.secondsDifference(v,u);A>0&&Au.time&&(p=!0):u.refreshMode===My.EXPIRE?te.greaterThan(n,u.time)&&(p=!0):u.refreshMode===My.STOP&&(r&&(u.needsUpdate=!0,u.cameraUpdateTime=n),u.needsUpdate&&te.secondsDifference(n,u.cameraUpdateTime)>=u.time&&(p=!0)),p){o(m),u.updating=!0;let y=new Es,f=u.href.clone();f.setQueryParameters(u.cookie);let x=g(i._ellipsoid,re.WGS84);iJ(f,i.camera,i.canvas,u.viewBoundScale,s.bbox,x),oJ(i,y,f,{context:m.id}).then(s$e(i,u,y,c,f)).catch(function(_){let C=`NetworkLink ${u.href} refresh failed: ${_}`;console.log(C),i._error.raiseEvent(i,C)}),l=!0}}c.set(u.id,u)}}),l&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function a$e(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}Ld._DeferredLoading=_f;Ld._getTimestamp=gi;var FP=Ld;var Oci=T(S(),1);function wP(){fe.throwInstantiationError()}wP.prototype.update=fe.throwInstantiationError;wP.prototype.getBoundingSphere=fe.throwInstantiationError;wP.prototype.isDestroyed=fe.throwInstantiationError;wP.prototype.destroy=fe.throwInstantiationError;var sJ=wP;var Tli=T(S(),1);var aJ=32,c$e="http://www.opengis.net/kml/2.2",rh="http://www.google.com/kml/ext/2.2",l$e="http://www.w3.org/2000/xmlns/";function CU(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var d$e=/^data:image\/([^,;]+)/;CU.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof Ee){if(e=Ee.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(d$e);n=`texture_${++this._count}`,d(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function u$e(e,t){return function(n){e._files[t]=n}}CU.prototype.model=function(e,t){let n=this._modelCallback;if(!d(n))throw new me("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(u$e(this,r))}return o};Object.defineProperties(CU.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function VU(e){this._time=e}VU.prototype.get=function(e,t,n){let i;return d(e)&&(i=d(e.getValue)?e.getValue(this._time,n):e),g(i,t)};VU.prototype.getColor=function(e,t){let n=this.get(e,t);if(d(n))return D_(n)};VU.prototype.getMaterialType=function(e){if(d(e))return e.getType(this._time)};function cJ(){this._ids={},this._styles={},this._count=0}cJ.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(d(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};cJ.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function Efe(){this._ids={}}Efe.prototype.get=function(e){if(!d(e))return this.get(Yn());let t=this._ids;return d(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function lJ(e){e=g(e,g.EMPTY_OBJECT);let t=e.entities,n=g(e.kmz,!1),i=lJ._createState(e),o=t.values.filter(function(l){return!d(l.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(l$e,"xmlns:gx",rh);let a=r.createElement("Document");s.appendChild(a),Ife(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let u=new XMLSerializer().serializeToString(i.kmlDoc);return n?m$e(u,c.files):{kml:u,externalFiles:c.files}})}function m$e(e,t){let n=$t("ThirdParty/Workers/z-worker-pako.js");Z1({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new W1,o=new hU(i);return o.add("doc.kml",new q5(e)).then(function(){let r=Object.keys(t);return Xfe(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function Xfe(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new N_(n[o])).then(function(){return Xfe(e,t,n,i+1)})}lJ._createState=function(e){let t=e.entities,n=new cJ,i=t.computeAvailability(),o=d(e.time)?e.time:i.start,r=g(e.defaultAvailability,i),s=g(e.sampleDuration,60);r.start===Ye.MINIMUM_VALUE?r.stop===Ye.MAXIMUM_VALUE?r=new Tn:te.addSeconds(r.stop,-10*s,r.start):r.stop===Ye.MAXIMUM_VALUE&&te.addSeconds(r.start,10*s,r.stop);let a=new CU(e.modelCallback);return{kmlDoc:document.implementation.createDocument(c$e,"kml"),ellipsoid:g(e.ellipsoid,re.WGS84),idManager:new Efe,styleCache:n,externalFileHandler:a,time:o,valueGetter:new VU(o),sampleDuration:s,defaultAvailability:new Rr([r])}};function Ife(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,l,u;for(let m=0;m0){let C=i.createElement("Placemark");C.setAttribute("id",s.get(p.id));let V=p.name,L=p.label;if(d(L)){let G=i.createElement("LabelStyle"),X=r.get(L.text);V=d(X)&&X.length>0?X:V;let P=r.getColor(L.fillColor);d(P)&&(G.appendChild(fn(i,"color",P)),G.appendChild(fn(i,"colorMode","normal")));let v=r.get(L.scale);d(v)&&G.appendChild(fn(i,"scale",v)),u.push(G)}C.appendChild(fn(i,"name",V)),C.appendChild(fn(i,"visibility",p.show)),C.appendChild(fn(i,"description",p.description)),d(y)&&C.appendChild(y),t.appendChild(C);let Z=u.length;if(Z>0){let G=i.createElement("Style");for(let X=0;X1){let G=i.createElement("MultiGeometry");for(let X=0;X0){let C=i.createElement("Folder");C.setAttribute("id",s.get(p.id)),C.appendChild(fn(i,"name",p.name)),C.appendChild(fn(i,"visibility",p.show)),C.appendChild(fn(i,"description",p.description)),t.appendChild(C),Ife(e,C,_)}}}var Pl=new h,Dc=new he,oh=new te;function h$e(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=g(t.billboard,t.point);if(!d(a)&&!d(t.path))return;let c=t.position;if(!c.isConstant){Wfe(e,t,a,n,i);return}s.get(c,void 0,Pl);let l=fn(o,"coordinates",k_(Pl,r)),u=o.createElement("Point"),m=o.createElement("altitudeMode");m.appendChild(B_(e,a.heightReference)),u.appendChild(m),u.appendChild(l),n.push(u);let p=a instanceof Ua?vfe(e,a):Pfe(e,a);i.push(p)}function Wfe(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,l=t.position,u=!0;l instanceof Js?(c=l.intervals,u=!1):c=g(t.availability,e.defaultAvailability);let m=n instanceof mp,p,y,f,x=[];for(p=0;p1){let C=r.createElementNS(rh,"MultiTrack");for(p=0;p0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],l=[de.northeast,de.southeast,de.southwest,de.northwest];for(let y=0;y<4;++y)l[y](a,Dc),c.push(`${W.toDegrees(Dc.longitude)},${W.toDegrees(Dc.latitude)},${r}`);let u=fn(i,"coordinates",c.join(" ")),m=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(u),m.appendChild(p),[m]}function Zfe(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let u=0;u0&&(r=n);let a=[],c=t.hierarchy,l=o.get(c),u=Array.isArray(l)?l:l.positions,m=i.createElement("outerBoundaryIs");m.appendChild(Zfe(e,u,r,s)),a.push(m);let p=l.holes;if(d(p)){let y=p.length;for(let f=0;f0&&c.appendChild(fn(r,"extrude",!0));let u=a?p$e(e,t,l):b$e(e,t,l),m=u.length;for(let _=0;_=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var uJ=lJ;var Cli=T(S(),1),M1=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var Lli=T(S(),1),Z0=`uniform vec3 u_radiiAndDynamicAtmosphereColor; + +uniform float u_atmosphereLightIntensity; +uniform float u_atmosphereRayleighScaleHeight; +uniform float u_atmosphereMieScaleHeight; +uniform float u_atmosphereMieAnisotropy; +uniform vec3 u_atmosphereRayleighCoefficient; +uniform vec3 u_atmosphereMieCoefficient; + +const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. +const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. +const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + +/** + * Rational approximation to tanh(x) +*/ +float approximateTanh(float x) { + float x2 = x * x; + return max(-1.0, min(+1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); +} + +/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + * @glslFunction + */ +void computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var Zli=T(S(),1),AP=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N) +{ + float a = roughness * roughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +float G1_Smith(float NdotV, float k) +{ + return NdotV / (NdotV * (1.0 - k) + k); +} + +float G_Smith(float roughness, float NdotV, float NdotL) +{ + float k = roughness * roughness / 2.0; + return G1_Smith(NdotV, k) * G1_Smith(NdotL, k); +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = G_Smith(roughness, NdotV, NdotL); + float G_Vis = G * VdotH / (NdotH * NdotV); + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;var Eli=T(S(),1),MP=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var Ili=T(S(),1),NP=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var Pli=T(S(),1),UP=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var Fli=T(S(),1),kP=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var Ali=T(S(),1),DP=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var Nli=T(S(),1),BP=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;var kli=T(S(),1),YP=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var Bli=T(S(),1),OP=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_projection * positionEC; + + czm_vertexLogDepth(); +} +`;var Oli=T(S(),1),N1=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordinates + + vec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var Hli=T(S(),1),U1=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates + gl_Position = czm_modelViewProjection * p; // position in clip coordinates + + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var Jli=T(S(),1);/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */var KP=`/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;var jli=T(S(),1),HP=`uniform vec4 u_initialColor; + +#if TEXTURE_UNITS > 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec3 colorCorrect(vec3 rgb) { +#ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + rgb = czm_HSBToRGB(hsb); +#endif + return rgb; +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordinates +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + rayleighColor = colorCorrect(rayleighColor); + mieColor = colorCorrect(mieColor); + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_acesTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + const float modifier = 0.15; + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a); + + #else + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var $li=T(S(),1),zP=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_terrainExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + return czm_modelViewProjection * morphPosition; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_terrainExaggerationAndRelativeHeight.x; + float relativeHeight = u_terrainExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var tdi=T(S(),1),k1=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var idi=T(S(),1),JP=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var rdi=T(S(),1),QP=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;var adi=T(S(),1),D1=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +vec3 getLightDirection(vec3 positionWC) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = + positionWC * float(lightEnum == 0.0) + + czm_lightDirectionWC * float(lightEnum == 1.0) + + czm_sunDirectionWC * float(lightEnum == 2.0); + return normalize(lightDirection); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var ldi=T(S(),1),jP=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + vec3 lightDirection = getLightDirection(v_outerPositionWC); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_acesTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(color.rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + color.rgb = czm_HSBToRGB(hsb); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var udi=T(S(),1),qP=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + vec3 lightDirection = getLightDirection(positionWC.xyz); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + gl_Position = czm_modelViewProjection * position; +} +`;var hdi=T(S(),1),$P=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var pdi=T(S(),1),ev=`in vec3 position; + +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;var ydi=T(S(),1),tv=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var xdi=T(S(),1),nv=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var Tdi=T(S(),1),iv=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;var Cdi=T(S(),1),ov=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;var avi=T(S(),1);var Rdi=T(S(),1);function x$e(e){let t,n=e.name,i=e.message;d(n)&&d(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return d(o)&&(t+=` +${o}`),t}var Tf=x$e;var pxi=T(S(),1);var Bui=T(S(),1);var vui=T(S(),1);var Gdi=T(S(),1),_$e={NONE:0,LERC:1},wu=Object.freeze(_$e);var rui=T(S(),1);var Ddi=T(S(),1);var Xdi=T(S(),1),T$e={NONE:0,BITS12:1},vs=Object.freeze(T$e);var Y_=new h,S$e=new h,Au=new D,LU=new w,C$e=new w,V$e=Math.pow(2,12);function rc(e,t,n,i,o,r,s,a,c,l){let u=vs.NONE,m,p;if(d(t)&&d(n)&&d(i)&&d(o)){let y=t.minimum,f=t.maximum,x=h.subtract(f,y,S$e),_=i-n;Math.max(h.maximumComponent(x),_)0,y=g(e.isGeographic,!0),f=g(e.ellipsoid,re.WGS84),x=1/f.maximumRadius,_=de.clone(e.nativeRectangle),C=de.clone(e.rectangle),V,L,Z,G;d(C)?(V=C.west,L=C.south,Z=C.east,G=C.north):y?(V=a(_.west),L=a(_.south),Z=a(_.east),G=a(_.north)):(V=_.west*x,L=s-2*o(r(-_.south*x)),Z=_.east*x,G=s-2*o(r(-_.north*x)));let X=e.relativeToCenter,P=d(X);X=P?X:h.ZERO;let v=g(e.includeWebMercatorT,!1),A=g(e.exaggeration,1),M=g(e.exaggerationRelativeHeight,0),R=A!==1,E=g(e.structure,Sf.DEFAULT_STRUCTURE),I=g(E.heightScale,Sf.DEFAULT_STRUCTURE.heightScale),F=g(E.heightOffset,Sf.DEFAULT_STRUCTURE.heightOffset),N=g(E.elementsPerHeight,Sf.DEFAULT_STRUCTURE.elementsPerHeight),Y=g(E.stride,Sf.DEFAULT_STRUCTURE.stride),k=g(E.elementMultiplier,Sf.DEFAULT_STRUCTURE.elementMultiplier),O=g(E.isBigEndian,Sf.DEFAULT_STRUCTURE.isBigEndian),U=de.computeWidth(_),J=de.computeHeight(_),z=U/(l-1),ee=J/(u-1);y||(U*=x,J*=x);let K=f.radiiSquared,j=K.x,q=K.y,be=K.z,Te=65536,ae=-65536,xe=vt.eastNorthUpToFixedFrame(X,f),_e=w.inverseTransformation(xe,R$e),Ve,Ie;v&&(Ve=Ei.geodeticLatitudeToMercatorAngle(L),Ie=1/(Ei.geodeticLatitudeToMercatorAngle(G)-Ve));let Me=Z$e;Me.x=Number.POSITIVE_INFINITY,Me.y=Number.POSITIVE_INFINITY,Me.z=Number.POSITIVE_INFINITY;let ve=G$e;ve.x=Number.NEGATIVE_INFINITY,ve.y=Number.NEGATIVE_INFINITY,ve.z=Number.NEGATIVE_INFINITY;let ke=Number.POSITIVE_INFINITY,ct=l*u,yt=m>0?l*2+u*2:0,ot=ct+yt,ln=new Array(ot),vn=new Array(ot),Dt=new Array(ot),Nt=v?new Array(ot):[],pe=R?new Array(ot):[],Ce=0,Ht=u,ut=0,hi=l;p&&(--Ce,++Ht,--ut,++hi);let ji=1e-5;for(let Qe=Ce;Qe=u&&(pt=u-1);let Bt=_.north-ee*pt;y?Bt=a(Bt):Bt=s-2*o(r(-Bt*x));let Vn=(Bt-L)/(G-L);Vn=W.clamp(Vn,0,1);let di=Qe===Ce,bo=Qe===Ht-1;m>0&&(di?Bt+=ji*J:bo&&(Bt-=ji*J));let es=t(Bt),ts=n(Bt),Mo=be*ts,Ki;v&&(Ki=(Ei.geodeticLatitudeToMercatorAngle(Bt)-Ve)*Ie);for(let ns=ut;ns=l&&(zn=l-1);let Fn=pt*(l*Y)+zn*Y,mn;if(N===1)mn=c[Fn];else{mn=0;let Ga;if(O)for(Ga=0;Ga=0;--Ga)mn=mn*k+c[Fn+Ga]}mn=mn*I+F,ae=Math.max(ae,mn),Te=Math.min(Te,mn);let _i=_.west+z*zn;y?_i=a(_i):_i=_i*x;let ui=(_i-V)/(Z-V);ui=W.clamp(ui,0,1);let As=pt*l+zn;if(m>0){let Ga=ns===ut,Ch=ns===hi-1,DT=di||bo||Ga||Ch;if((di||bo)&&(Ga||Ch))continue;DT&&(mn-=m,Ga?(As=ct+(u-pt-1),_i-=ji*U):bo?As=ct+u+(l-zn-1):Ch?(As=ct+u+l+pt,_i+=ji*U):di&&(As=ct+u+l+u+zn))}let fi=es*t(_i),Pr=es*n(_i),Sh=j*fi,cr=q*Pr,qc=1/i(Sh*fi+cr*Pr+Mo*ts),pg=Sh*qc,Or=cr*qc,bc=Mo*qc,Dd=new h;Dd.x=pg+fi*mn,Dd.y=Or+Pr*mn,Dd.z=bc+ts*mn,w.multiplyByPoint(_e,Dd,mJ),h.minimumByComponent(mJ,Me,Me),h.maximumByComponent(mJ,ve,ve),ke=Math.min(ke,mn),ln[As]=Dd,Dt[As]=new D(ui,Vn),vn[As]=mn,v&&(Nt[As]=Ki),R&&(pe[As]=f.geodeticSurfaceNormal(Dd))}}let pc=ce.fromPoints(ln),bs;d(C)&&(bs=Wn.fromRectangle(C,Te,ae,f));let ys;P&&(ys=new d0(f).computeHorizonCullingPointPossiblyUnderEllipsoid(X,ln,Te));let $r=new ub(Me,ve,X),Fe=new sc(X,$r,ke,ae,xe,!1,v,R,A,M),je=new Float32Array(ot*Fe.stride),qe=0;for(let Qe=0;Qe0?L=Ur.getRegularGridAndSkirtIndicesAndEdgeIndices(V.gridWidth,V.gridHeight):L=Ur.getRegularGridIndicesAndEdgeIndices(V.gridWidth,V.gridHeight);let Z=V.gridWidth*V.gridHeight;return C._mesh=new Mu(m,new Float32Array(V.vertices),L.indices,L.indexCountWithoutSkirts,Z,V.minimumHeight,V.maximumHeight,ce.clone(V.boundingSphere3D),h.clone(V.occludeePointInScaledSpace),V.numberOfAttributes,Wn.clone(V.orientedBoundingBox),sc.clone(V.encoding),L.westIndicesSouthToNorth,L.southIndicesEastToWest,L.eastIndicesNorthToSouth,L.northIndicesWestToEast),C._buffer=void 0,C._mesh})};G0.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=g(e.exaggeration,1),s=g(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),l=t.tileXYToRectangle(n,i,o),u=a.cartographicToCartesian(de.center(l)),m=this._structure,y=Ur.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<0?x=Ur.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=Ur.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let _=f.gridWidth*f.gridHeight;return this._mesh=new Mu(u,f.vertices,x.indices,x.indexCountWithoutSkirts,_,f.minimumHeight,f.maximumHeight,f.boundingSphere3D,f.occludeePointInScaledSpace,f.encoding.stride,f.orientedBoundingBox,f.encoding,x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),this._mesh};G0.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,l=r.isBigEndian,u=r.heightOffset,m=r.heightScale,p=d(this._mesh),y=this._encoding===wu.LERC;if(!p&&y)return;let x;if(p){let _=this._mesh.vertices,C=this._mesh.encoding;x=Bfe(_,C,u,m,e,i,o,t,n)}else x=W$e(this._buffer,a,c,s,l,e,i,o,t,n),x=x*m+u;return x};G0.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!d(a))return;let c=this._width,l=this._height,u=this._structure,m=u.stride,p=new this._bufferType(c*l*m),y=a.vertices,f=a.encoding,x=e.tileXYToRectangle(t,n,i),_=e.tileXYToRectangle(o,r,s),C=u.heightOffset,V=u.heightScale,L=u.elementsPerHeight,Z=u.elementMultiplier,G=u.isBigEndian,X=Math.pow(Z,L-1);for(let P=0;Pu.highestEncodedHeight?u.highestEncodedHeight:b,P$e(p,L,Z,X,m,G,P*c+A,b)}}return Promise.resolve(new G0({buffer:p,width:c,height:l,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};G0.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<=s&&(y=s-1,p=s-2);let f=m|0,x=f+1;x>=a&&(x=a-1,f=a-2);let _=u-p,C=m-f;f=a-1-f,x=a-1-x;let V=EU(e,t,n,i,o,f*s+p),L=EU(e,t,n,i,o,f*s+y),Z=EU(e,t,n,i,o,x*s+p),G=EU(e,t,n,i,o,x*s+y);return Yfe(_,C,V,L,Z,G)}function Bfe(e,t,n,i,o,r,s,a,c){let l=(a-o.west)*(r-1)/(o.east-o.west),u=(c-o.south)*(s-1)/(o.north-o.south),m=l|0,p=m+1;p>=r&&(p=r-1,m=r-2);let y=u|0,f=y+1;f>=s&&(f=s-1,y=s-2);let x=l-m,_=u-y;y=s-1-y,f=s-1-f;let C=(t.decodeHeight(e,y*r+m)-n)/i,V=(t.decodeHeight(e,y*r+p)-n)/i,L=(t.decodeHeight(e,f*r+m)-n)/i,Z=(t.decodeHeight(e,f*r+p)-n)/i;return Yfe(x,_,C,V,L,Z)}function Yfe(e,t,n,i,o,r){return t=0;--a)s=s*n+e[r+a];return s}function P$e(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var Sa=G0;function Y1(e){e=g(e,g.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,d(this._tilingScheme)||(this._tilingScheme=new Di({ellipsoid:g(e.ellipsoid,re.WGS84)})),this._levelZeroMaximumGeometricError=Ur.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ye}Object.defineProperties(Y1.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});Y1.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new Sa({buffer:new Uint8Array(16*16),width:16,height:16}))};Y1.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<0&&(Te=X?P.clippingPlanesState:0);let ae=n.surfaceShader;if(d(ae)&&ae.numberOfDayTextures===i&&ae.flags===be&&ae.material===this.material&&ae.clippingShaderState===Te)return ae.shaderProgram;let xe=this._shadersByTexturesFlags[i];if(d(xe)||(xe=this._shadersByTexturesFlags[i]=[]),ae=xe[be],!d(ae)||ae.material!==this.material||ae.clippingShaderState!==Te){let _e=this.baseVertexShaderSource.clone(),Ve=this.baseFragmentShaderSource.clone();Te!==0&&Ve.sources.unshift(E0(P,t.context)),_e.defines.push(k),Ve.defines.push(`TEXTURE_UNITS ${i}`,ee,j),o&&Ve.defines.push("APPLY_BRIGHTNESS"),r&&Ve.defines.push("APPLY_CONTRAST"),s&&Ve.defines.push("APPLY_HUE"),a&&Ve.defines.push("APPLY_SATURATION"),c&&Ve.defines.push("APPLY_GAMMA"),l&&Ve.defines.push("APPLY_ALPHA"),u&&Ve.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&(Ve.defines.push("SHOW_REFLECTIVE_OCEAN"),_e.defines.push("SHOW_REFLECTIVE_OCEAN")),y&&Ve.defines.push("SHOW_OCEAN_WAVES"),R&&Ve.defines.push("APPLY_COLOR_TO_ALPHA"),F&&(_e.defines.push("UNDERGROUND_COLOR"),Ve.defines.push("UNDERGROUND_COLOR")),N&&(_e.defines.push("TRANSLUCENT"),Ve.defines.push("TRANSLUCENT")),f&&(L?(_e.defines.push("ENABLE_VERTEX_LIGHTING"),Ve.defines.push("ENABLE_VERTEX_LIGHTING")):(_e.defines.push("ENABLE_DAYNIGHT_SHADING"),Ve.defines.push("ENABLE_DAYNIGHT_SHADING"))),x&&(_e.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),Ve.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),_&&(_e.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),Ve.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),C&&(_e.defines.push("GROUND_ATMOSPHERE"),Ve.defines.push("GROUND_ATMOSPHERE"),V&&(_e.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),Ve.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),_e.defines.push("INCLUDE_WEB_MERCATOR_Y"),Ve.defines.push("INCLUDE_WEB_MERCATOR_Y"),G&&(_e.defines.push("FOG"),Ve.defines.push("FOG")),m&&Ve.defines.push("APPLY_SPLIT"),X&&Ve.defines.push("ENABLE_CLIPPING_PLANES"),M&&Ve.defines.push("COLOR_CORRECT"),b&&Ve.defines.push("HIGHLIGHT_FILL_TILE"),E&&_e.defines.push("GEODETIC_SURFACE_NORMALS"),I&&_e.defines.push("EXAGGERATION");let Ie=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;A&&(Ie+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let ve=0;ve0?n.raiseEvent(c):d(t)&&console.log(`An error occurred in "${t.constructor.name}": ${Tf(i)}`),c};XU.reportSuccess=function(e){d(e)&&(e.timesRetried=-1)};var Vo=XU;var dmi=T(S(),1),Y$e={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ci=Object.freeze(Y$e);var mmi=T(S(),1),O$e={START:0,LOADING:1,DONE:2,FAILED:3},Fs=Object.freeze(O$e);var fmi=T(S(),1),K$e={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},ao=Object.freeze(K$e);function Qo(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new se(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=ao.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new ce,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(Qo.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===ao.RECEIVING||e===ao.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o=0&&(u=V)}return u!==Number.MAX_VALUE?Sn.getPoint(e,u,o):void 0};Qo.prototype.freeResources=function(){d(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=ao.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t=ao.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)ret(t.context,s);else{let l=s._findAncestorTileWithTerrainData(e);d(l)&&d(l.data.waterMaskTexture)&&(s.waterMaskTexture=l.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,l,s.waterMaskTranslationAndScale))}}function $$e(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=Fs.FAILED;return}let c=a.data.terrainData,l=a.x,u=a.y,m=a.level;if(!d(c))return;let p=c.upsample(i.tilingScheme,l,u,m,o,r,s);d(p)&&(e.terrainState=ao.RECEIVING,Promise.resolve(p).then(function(y){d(y)&&(e.terrainData=y,e.terrainState=ao.RECEIVED)}).catch(function(){e.terrainState=ao.FAILED}))}function eet(e,t,n,i,o){function r(c){if(!d(c)){e.terrainState=ao.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=ao.RECEIVED,e.request=void 0}function s(c){if(e.request.state===$n.CANCELLED){e.terrainData=void 0,e.terrainState=ao.UNLOADED,e.request=void 0;return}e.terrainState=ao.FAILED,e.request=void 0;let l=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=Vo.reportError(t._requestError,t,t.errorEvent,l,n,i,o),t._requestError.retry&&a()}function a(){let c=new Uo({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN});e.request=c;let l=t.requestTileGeometry(n,i,o,c);d(l)?(e.terrainState=ao.RECEIVING,Promise.resolve(l).then(function(u){r(u)}).catch(function(u){s(u)})):(e.terrainState=ao.UNLOADED,e.request=void 0)}a()}var tet={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function net(e,t,n,i,o,r){let s=n.tilingScheme,a=tet;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.terrainExaggeration,a.exaggerationRelativeHeight=t.terrainExaggerationRelativeHeight,a.throttle=!0;let l=e.terrainData.createMesh(a);d(l)&&(e.terrainState=ao.TRANSFORMING,Promise.resolve(l).then(function(u){e.mesh=u,e.terrainState=ao.TRANSFORMED}).catch(function(){e.terrainState=ao.FAILED}))}Qo._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=mt.createVertexBuffer({context:e,typedArray:n,usage:Ne.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!d(s)||s.isDestroyed()){let a=t.indices;s=mt.createIndexBuffer({context:e,typedArray:a,usage:Ne.STATIC_DRAW,indexDatatype:Ue.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ni({context:e,attributes:o,indexBuffer:s})};Qo._freeVertexArray=function(e){if(d(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),d(t)&&!t.isDestroyed()&&d(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function iet(e,t,n,i,o,r,s){e.vertexArray=Qo._createVertexArrayForMesh(t,e.mesh),e.terrainState=ao.READY,e.fill=e.fill&&e.fill.destroy(s)}function oet(e){let t=e.cache.tile_waterMaskData;if(!d(t)){let n=Wt.create({context:e,pixelFormat:st.LUMINANCE,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:Ti.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function ret(e,t){let n=t.terrainData.waterMask,i=oet(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Wt.create({context:e,pixelFormat:st.LUMINANCE,pixelDatatype:Je.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,se.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}Qo.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;d(t)&&(!d(t.data)||!d(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};Qo.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var Nu=Qo;var gbi=T(S(),1);var C0i=T(S(),1);var b0i=T(S(),1);var khi=T(S(),1);var jmi=T(S(),1);function Uy(e){if(e=g(e,g.EMPTY_OBJECT),this._ellipsoid=g(e.ellipsoid,re.WGS84),this._numberOfLevelZeroTilesX=g(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=g(e.numberOfLevelZeroTilesY,1),this._projection=new Ei(this._ellipsoid),d(e.rectangleSouthwestInMeters)&&d(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new D(-i,-i),this._rectangleNortheastInMeters=new D(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new de(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(Uy.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Uy.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<=o&&(f=o-1);let x=y/l|0;return x>=r&&(x=r-1),d(n)?(n.x=f,n.y=x,n):new D(f,x)};var kr=Uy;var nhi=T(S(),1);var pJ,Kfe="AAPK72121c3f05244af285ad75999db084bfDGkWA0QECX6QWOdaQmarXC21i1ogkvj8XCctaZExrW8Hw1AT58yG7twH3VFzZl13",O1={};O1.defaultAccessToken=Kfe;O1.defaultWorldImageryServer=new Ee({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});O1.defaultWorldHillshadeServer=new Ee({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});O1.defaultWorldOceanServer=new Ee({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});O1.getDefaultTokenCredit=function(e){if(e===Kfe){if(!d(pJ)){let t=' This application is using a default ArcGIS access token. Please assign Cesium.ArcGisMapService.defaultAccessToken with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at https://developers.arcgis.com/.';pJ=new St(t,!0)}return pJ}};var Rd=O1;var chi=T(S(),1);function bJ(e){e=g(e,g.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=Ee.createIfNeeded(e.missingImageUrl),n=this;function i(r){d(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=nm(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,l=e.pixelsToCheck;for(let u=0,m=l.length;a&&u0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}bJ.prototype.isReady=function(){return this._isReady};bJ.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!d(n)||d(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=nm(e),o=e.width;for(let r=0,s=t.length;r1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}d(n)&&(this.name=e[n])};yJ.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];d(r)&&(typeof r=="object"?i+=``:i+=``)}return i+="
${o}${t(r)}
${o}${r}
",i}this.description=t(e)};var ah=yJ;var yhi=T(S(),1);function K1(){fe.throwInstantiationError()}Object.defineProperties(K1.prototype,{rectangle:{get:fe.throwInstantiationError},tileWidth:{get:fe.throwInstantiationError},tileHeight:{get:fe.throwInstantiationError},maximumLevel:{get:fe.throwInstantiationError},minimumLevel:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},tileDiscardPolicy:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError},credit:{get:fe.throwInstantiationError},proxy:{get:fe.throwInstantiationError},hasAlphaChannel:{get:fe.throwInstantiationError}});K1.prototype.getTileCredits=function(e,t,n){fe.throwInstantiationError()};K1.prototype.requestImage=function(e,t,n,i){fe.throwInstantiationError()};K1.prototype.pickFeatures=function(e,t,n,i,o){fe.throwInstantiationError()};var set=/\.ktx2$/i;K1.loadImage=function(e,t){let n=Ee.createIfNeeded(t);return set.test(n.url)?rl(n):d(e)&&d(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var Yc=K1;var xhi=T(S(),1),aet={SATELLITE:1,OCEANS:2,HILLSHADE:3},ch=Object.freeze(aet);function Hfe(e){this.useTiles=g(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=g(e.tilingScheme,new Di({ellipsoid:t})),this.rectangle=g(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new St(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=g(e.tileWidth,256),this.tileHeight=g(e.tileHeight,256),this.maximumLevel=e.maximumLevel}Hfe.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!d(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new sv({missingImageUrl:zfe(e,0,0,this.maximumLevel).url,pixelsToCheck:[new D(0,0),new D(200,20),new D(20,200),new D(80,110),new D(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function cet(e,t){let n=e.tileInfo;if(!d(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new kr({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Di({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new me(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,d(e.fullExtent)){if(d(e.fullExtent.spatialReference)&&d(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Ei,o=e.fullExtent,r=i.unproject(new h(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new de(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=de.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new me(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}d(e.copyrightText)&&e.copyrightText.length>0&&(d(t.credit)?t.tileCredits=[new St(e.copyrightText)]:t.credit=new St(e.copyrightText))}function det(e,t){let n=`An error occurred while accessing ${e.url}`;throw d(t)&&d(t.message)&&(n+=`: ${t.message}`),new me(n)}async function uet(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();cet(i,t)}catch(i){det(e,i)}}function Vf(e){e=g(e,g.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=g(e.tileWidth,256),this._tileHeight=g(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=g(e.tilingScheme,new Di({ellipsoid:e.ellipsoid})),this._useTiles=g(e.usePreCachedTilesIfAvailable,!0),this._rectangle=g(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;typeof t=="string"&&(t=new St(t)),this.enablePickFeatures=g(e.enablePickFeatures,!0),this._errorEvent=new ye}Vf.fromBasemapType=async function(e,t){t=g(t,g.EMPTY_OBJECT);let n,i,o;switch(e){case ch.SATELLITE:{n=g(t.token,Rd.defaultAccessToken),i=Ee.createIfNeeded(Rd.defaultWorldImageryServer),i.appendForwardSlash();let r=Rd.getDefaultTokenCredit(n);d(r)&&(o=St.clone(r))}break;case ch.OCEANS:{n=g(t.token,Rd.defaultAccessToken),i=Ee.createIfNeeded(Rd.defaultWorldOceanServer),i.appendForwardSlash();let r=Rd.getDefaultTokenCredit(n);d(r)&&(o=St.clone(r))}break;case ch.HILLSHADE:{n=g(t.token,Rd.defaultAccessToken),i=Ee.createIfNeeded(Rd.defaultWorldHillshadeServer),i.appendForwardSlash();let r=Rd.getDefaultTokenCredit(n);d(r)&&(o=St.clone(r))}break;default:}return Vf.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function zfe(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof Zi?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(Vf.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}});Vf.fromUrl=async function(e,t){t=g(t,g.EMPTY_OBJECT);let n=Ee.createIfNeeded(e);n.appendForwardSlash(),d(t.token)&&n.setQueryParameters({token:t.token});let i=new Vf(t);i._resource=n;let o=new Hfe(t);return g(t.usePreCachedTilesIfAvailable,!0)&&await uet(n,o),o.build(i),i};Vf.prototype.getTileCredits=function(e,t,n){return this._tileCredits};Vf.prototype.requestImage=function(e,t,n,i){return Yc.loadImage(this,zfe(this,e,t,n,i))};Vf.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof Zi)s=W.toDegrees(i),a=W.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new he(i,o,0));s=p.x,a=p.y,c="3857"}let l="visible";d(this._layers)&&(l+=`:${this._layers}`);let u={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:l};return this._resource.getDerivedResource({url:"identify",queryParameters:u}).fetchJson().then(function(p){let y=[],f=p.results;if(!d(f))return y;for(let x=0;x`),this._tilingScheme=new kr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new ye}Object.defineProperties(ms.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},mapLayer:{get:function(){return this._mapLayer}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return d(this.mapLayer)}}});ms.fromUrl=async function(e,t){t=g(t,g.EMPTY_OBJECT);let n=t.tileProtocol;d(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=g(t.mapStyle,H1.AERIAL),o=Ee.createIfNeeded(e);o.appendForwardSlash();let r={incl:"ImageryProviders",key:t.key,uriScheme:n};d(t.mapLayer)&&(r.mapLayer=t.mapLayer);let s=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:r}),a=new ms(t);a._resource=o;let c=new Jfe(t);return await pet(s,c),c.build(a),a};var bet=new de;ms.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,bet);return xet(this._attributionList,n,i)};ms.prototype.requestImage=function(e,t,n,i){let o=Yc.loadImage(this,yet(this,e,t,n,i));if(d(o))return o.catch(function(r){return d(r.blob)&&r.blob.size===0?z1.EMPTY_IMAGE:Promise.reject(r)})};ms.prototype.pickFeatures=function(e,t,n,i,o){};ms.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<=0;--o){let r=1<=m.zoomMin&&t<=m.zoomMax){let p=de.intersection(n,m.bbox,get);d(p)&&(c=!0)}}c&&i.push(s.credit)}return i}ms._metadataCache={};var cv=ms;var Nfi=T(S(),1);var Vfi=T(S(),1);var Qfe=/{[^}]+}/g,jfe={x:Vet,y:Ret,z:Eet,s:Xet,reverseX:Let,reverseY:Zet,reverseZ:Get,westDegrees:Iet,southDegrees:Wet,eastDegrees:Pet,northDegrees:vet,westProjected:Fet,southProjected:wet,eastProjected:Aet,northProjected:Met,width:Net,height:Uet},_et=xt(jfe,{i:ket,j:Det,reverseI:Bet,reverseJ:Yet,longitudeDegrees:Ket,latitudeDegrees:Het,longitudeProjected:zet,latitudeProjected:Jet,format:jet});function lv(e){e=g(e,g.EMPTY_OBJECT),this._errorEvent=new ye;let t=Ee.createIfNeeded(e.url),n=Ee.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():d(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=g(e.tileWidth,256),this._tileHeight=g(e.tileHeight,256),this._minimumLevel=g(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=g(e.tilingScheme,new kr({ellipsoid:e.ellipsoid})),this._rectangle=g(e.rectangle,this._tilingScheme.rectangle),this._rectangle=de.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new St(o)),this._credit=o,this._hasAlphaChannel=g(e.hasAlphaChannel,!0);let r=e.customTags,s=xt(jfe,r),a=xt(_et,r);this._tags=s,this._pickFeaturesTags=a,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=g(e.enablePickFeatures,!0)}Object.defineProperties(lv.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}});lv.prototype.getTileCredits=function(e,t,n){};lv.prototype.requestImage=function(e,t,n,i){return Yc.loadImage(this,Tet(this,e,t,n,i))};lv.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!d(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(l,u){return l.callback(u)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let l=s._getFeatureInfoFormats[r],u=Cet(s,e,t,n,i,o,l.format);return++r,l.type==="json"?u.fetchJson().then(l.callback).catch(c):l.type==="xml"?u.fetchXML().then(l.callback).catch(c):l.type==="text"||l.type==="html"?u.fetchText().then(l.callback).catch(c):u.fetch({responseType:l.format}).then(a.bind(void 0,l)).catch(c)}return c()};var WU=!1,Zd=new de,PU=!1,dv=new de;function Tet(e,t,n,i,o){WU=!1,PU=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},l=s.match(Qfe);return d(l)&&l.forEach(function(u){let m=u.substring(1,u.length-1);d(a[m])&&(c[m]=a[m](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var gJ=!1,Q1=new D,xJ=!1;function Cet(e,t,n,i,o,r,s){WU=!1,PU=!1,gJ=!1,xJ=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),l=e._pickFeaturesTags,u={},m=c.match(Qfe);return d(m)&&m.forEach(function(p){let y=p.substring(1,p.length-1);d(l[y])&&(u[y]=l[y](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:u})}function j1(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function Vet(e,t,n,i){return j1(e,"{x}",t)}function Let(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return j1(e,"{reverseX}",o)}function Ret(e,t,n,i){return j1(e,"{y}",n)}function Zet(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return j1(e,"{reverseY}",o)}function Get(e,t,n,i){let o=e.maximumLevel,r=d(o)&&it.rectangle.east&&(e.east=t.rectangle.east),e.southt.rectangle.north&&(e.north=t.rectangle.north),e}function $fe(e,t,n){let i=e.positionToTileXY(de.southwest(t),n),o=e.positionToTileXY(de.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}Uu._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,l,u,m,p=[],y=e.childNodes[0].childNodes;for(let v=0;v`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new ye}Object.defineProperties(vl.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});vl.fromUrl=async function(e,t,n){n=g(n,{});let i=g(n.path,"/default_map"),o=Ee.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new epe(n);s.channel=t,await ett(r,s);let a=new vl(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};vl.prototype.getTileCredits=function(e,t,n){};vl.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return Yc.loadImage(this,o)};vl.prototype.pickFeatures=function(e,t,n,i,o){};vl._logoUrl=void 0;Object.defineProperties(vl,{logoUrl:{get:function(){return d(vl._logoUrl)||(vl._logoUrl=$t("Assets/Images/google_earth_credit.png")),vl._logoUrl},set:function(e){vl._logoUrl=e}}});var uv=vl;var spi=T(S(),1);var ttt=/\/$/,tpe=new St('© Mapbox © OpenStreetMap Improve this map');function q1(e){e=g(e,g.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=Ee.createIfNeeded(g(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=g(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();ttt.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;d(e.credit)?(s=e.credit,typeof s=="string"&&(s=new St(s))):s=tpe,this._resource=i,this._imageryProvider=new Ca({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(q1.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});q1.prototype.getTileCredits=function(e,t,n){};q1.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};q1.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};q1._defaultCredit=tpe;var mv=q1;var gpi=T(S(),1);function O_(e){e=g(e,g.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=g(e.rectangle,de.MAX_VALUE),n=new Di({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new ye;let i=e.credit;typeof i=="string"&&(i=new St(i)),this._credit=i;let o=Ee.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(O_.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});function ntt(e,t,n,i){let o=`Failed to load image ${e.url}`;d(t)&&d(t.message)&&(o+=`: ${t.message}`);let r=Vo.reportError(i,n,d(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return TJ(e,n,r);throw d(n)&&(n._hasError=!0),new me(o)}async function TJ(e,t,n){try{return await Yc.loadImage(null,e)}catch(i){return ntt(e,i,t,n)}}O_.fromUrl=async function(e,t){let n=Ee.createIfNeeded(e),i=await TJ(n);t=g(t,g.EMPTY_OBJECT);let o=new O_({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};O_.prototype.getTileCredits=function(e,t,n){};O_.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!d(this._image)){let o=await TJ(this._resource,this);return this._image=o,Vo.reportSuccess(this._errorEvent),o}return this._image};O_.prototype.pickFeatures=function(e,t,n,i,o){};var hv=O_;var Dpi=T(S(),1);var Vpi=T(S(),1);function itt(e,t,n){this.type=e,d(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,d(n)||(e==="json"?n=ott:e==="xml"?n=ctt:(e==="html"||e==="text")&&(n=npe)),this.callback=n}function ott(e){let t=[],n=e.features;for(let i=0;i0)for(let r=0;r\s*<\/body>/im,ptt=//im,btt=/([\s\S]*)<\/title>/im;function npe(e){if(ftt.test(e)||ptt.test(e))return;let t,n=btt.exec(e);n&&n.length>1&&(t=n[1]);let i=new ah;return i.name=t,i.description=e,i.data=e,[i]}var K_=itt;var Ipi=T(S(),1);function fv(e){e=g(e,g.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(fv.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});fv.prototype.getFromCache=function(e,t,n,i){let o=ipe(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(d(s)&&d(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};fv.prototype.checkApproachingInterval=function(e,t,n,i){let o=ipe(e,t,n),r=this._tilesRequestedForInterval,s=ope(this),a={key:o,priorityFunction:i.priorityFunction};(!d(s)||!rpe(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};fv.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=ope(this);if(d(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=rpe(this,c,r),a||s.push(c)}}};function ipe(e,t,n){return`${e}-${t}-${n}`}function ytt(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function ope(e){let t=e._times;if(!d(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=te.secondsDifference(c.stop,i),++a):(s=te.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function rpe(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];d(r)||(r=o[i]={});let s=t.key;if(d(r[s]))return!0;let a=ytt(s),c=new Uo({throttle:!1,throttleByServer:!0,type:Jr.IMAGERY,priorityFunction:t.priorityFunction}),l=e._requestImageFunction(a.x,a.y,a.level,c,n);return d(l)?(r[s]={promise:l,request:c},!0):!1}var H_=fv;var gtt=[3034,3035,3042,3043,3044],xtt=[4471,4559];function lh(e){if(e=g(e,g.EMPTY_OBJECT),d(e.times)&&!d(e.clock))throw new fe("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=g(e.getFeatureInfoUrl,e.url);let t=Ee.createIfNeeded(e.url),n=Ee.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(lh.DefaultParameters,!0),n.setQueryParameters(lh.GetFeatureInfoDefaultParameters,!0),d(e.parameters)&&t.setQueryParameters(spe(e.parameters)),d(e.getFeatureInfoParameters)&&n.setQueryParameters(spe(e.getFeatureInfoParameters));let i=this;this._reload=void 0,d(e.times)&&(this._timeDynamicImagery=new H_({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,l,u){return ape(i,s,a,c,l,u)},reloadFunction:function(){d(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=g(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof Ei?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!xtt.includes(a)||gtt.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=g(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Ei?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new Ca({url:t,pickFeaturesUrl:n,tilingScheme:g(e.tilingScheme,new Di({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:g(e.getFeatureInfoFormats,lh.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function ape(e,t,n,i,o,r){let s=d(r)?r.data:void 0,a=e._tileProvider;return d(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function _tt(e,t,n,i,o,r,s){let a=d(s)?s.data:void 0,c=e._tileProvider;return d(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(lh.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});lh.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};lh.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return d(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),d(o)||(o=ape(this,e,t,n,i,s)),d(o)&&d(r)&&r.checkApproachingInterval(e,t,n,i),o};lh.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=d(r)?r.currentInterval:void 0;return _tt(this,e,t,n,i,o,s)};lh.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});lh.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});lh.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new K_("json","application/json")),Object.freeze(new K_("xml","text/xml")),Object.freeze(new K_("text","text/html"))]);function spe(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var pv=lh;var e0i=T(S(),1);var Ttt=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function bv(e){e=g(e,g.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=Ee.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!d(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(Ttt),this._useKvp=!0;else{let m={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(m),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=g(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=d(e.tilingScheme)?e.tilingScheme:new kr({ellipsoid:e.ellipsoid}),this._tileWidth=g(e.tileWidth,256),this._tileHeight=g(e.tileHeight,256),this._minimumLevel=g(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=g(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,d(e.times)&&(this._timeDynamicImagery=new H_({clock:e.clock,times:e.times,requestImageFunction:function(m,p,y,f,x){return cpe(s,m,p,y,f,x)},reloadFunction:function(){d(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(de.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(de.northeast(this._rectangle),this._minimumLevel),l=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new ye;let u=e.credit;this._credit=typeof u=="string"?new St(u):u,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():d(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function cpe(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=d(s)?s[i]:i.toString(),c=e._subdomains,l=e._dimensions,u=d(r)?r.data:void 0,m,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},m=e._resource.getDerivedResource({request:o}),m.setTemplateValues(p),d(l)&&m.setTemplateValues(l),d(u)&&m.setTemplateValues(u);else{let y={};y.tilematrix=a,y.layer=e._layer,y.style=e._style,y.tilerow=n,y.tilecol=t,y.tilematrixset=e._tileMatrixSetID,y.format=e._format,d(l)&&(y=xt(y,l)),d(u)&&(y=xt(y,u)),p={s:c[(t+n+i)%c.length]},m=e._resource.getDerivedResource({queryParameters:y,request:o}),m.setTemplateValues(p)}return Yc.loadImage(e,m)}Object.defineProperties(bv.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,d(this._reload)&&this._reload())}}});bv.prototype.getTileCredits=function(e,t,n){};bv.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return d(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),d(o)||(o=cpe(this,e,t,n,i,s)),d(o)&&d(r)&&r.checkApproachingInterval(e,t,n,i),o};bv.prototype.pickFeatures=function(e,t,n,i,o){};var yv=bv;var Stt={ARCGIS_MAPSERVER:X0.fromUrl,BING:async(e,t)=>cv.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,uv.fromUrl(e,n,t)},MAPBOX:(e,t)=>new mv({url:e,...t}),SINGLE_TILE:hv.fromUrl,TMS:ky.fromUrl,URL_TEMPLATE:(e,t)=>new Ca({url:e,...t}),WMS:(e,t)=>new pv({url:e,...t}),WMTS:(e,t)=>new yv({url:e,...t})};function Lf(e){e=g(e,g.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileCredits=void 0,this._errorEvent=new ye}Object.defineProperties(Lf.prototype,{rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}}});Lf.fromAssetId=async function(e,t){t=g(t,g.EMPTY_OBJECT);let n=$l._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=Lf._endpointCache[i];d(o)||(o=n.fetchJson(),Lf._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new me(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!d(a))s=await ky.fromUrl(new $l(r,n));else{let l=Stt[a];if(!d(l))throw new me(`Unrecognized Cesium ion imagery type: ${a}`);let u={...r.options},m=u.url;delete u.url,s=await l(m,u)}let c=new Lf(t);return s.errorEvent.addEventListener(function(l){l.provider=c,c._errorEvent.raiseEvent(l)}),c._tileCredits=$l.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};Lf.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return d(i)?this._tileCredits.concat(i):this._tileCredits};Lf.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Lf.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Lf._endpointCache={};var I0=Lf;var g0i=T(S(),1),Ctt={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},W0=Object.freeze(Ctt);function Vtt(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.style,W0.AERIAL);return I0.fromAssetId(t)}var P0=Vtt;var G0i=T(S(),1);function $1(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=ci.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!d(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}$1.createPlaceholder=function(e){let t=new $1(e,0,0,0);return t.addReference(),t.state=ci.PLACEHOLDER,t};$1.prototype.addReference=function(){++this.referenceCount};$1.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),d(this.parent)&&this.parent.releaseReference(),d(this.image)&&d(this.image.destroy)&&this.image.destroy(),d(this.texture)&&this.texture.destroy(),d(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};$1.prototype.processStateMachine=function(e,t,n){this.state===ci.UNLOADED&&!n&&(this.state=ci.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ci.RECEIVED&&(this.state=ci.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ci.READY&&t&&!this.texture;(this.state===ci.TEXTURE_LOADED||i)&&(this.state=ci.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var eV=$1;var W0i=T(S(),1);function VJ(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}VJ.prototype.freeResources=function(){d(this.readyImagery)&&this.readyImagery.releaseReference(),d(this.loadingImagery)&&this.loadingImagery.releaseReference()};VJ.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ci.READY)return d(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;d(r)&&(r.state!==ci.READY||!this.useWebMercatorT&&!d(r.texture));)r.state!==ci.FAILED&&r.state!==ci.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(d(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,d(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ci.FAILED||i.state===ci.INVALID?d(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var tV=VJ;function xi(e,t){this._imageryProvider=e,this._readyEvent=new ye,this._errorEvent=new ye,t=g(t,g.EMPTY_OBJECT),e=g(e,g.EMPTY_OBJECT),this.alpha=g(t.alpha,g(e._defaultAlpha,1)),this.nightAlpha=g(t.nightAlpha,g(e._defaultNightAlpha,1)),this.dayAlpha=g(t.dayAlpha,g(e._defaultDayAlpha,1)),this.brightness=g(t.brightness,g(e._defaultBrightness,xi.DEFAULT_BRIGHTNESS)),this.contrast=g(t.contrast,g(e._defaultContrast,xi.DEFAULT_CONTRAST)),this.hue=g(t.hue,g(e._defaultHue,xi.DEFAULT_HUE)),this.saturation=g(t.saturation,g(e._defaultSaturation,xi.DEFAULT_SATURATION)),this.gamma=g(t.gamma,g(e._defaultGamma,xi.DEFAULT_GAMMA)),this.splitDirection=g(t.splitDirection,xi.DEFAULT_SPLIT),this.minificationFilter=g(t.minificationFilter,g(e._defaultMinificationFilter,xi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=g(t.magnificationFilter,g(e._defaultMagnificationFilter,xi.DEFAULT_MAGNIFICATION_FILTER)),this.show=g(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=g(t.rectangle,de.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new tV(eV.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=g(t.colorToAlphaThreshold,xi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(xi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return d(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});xi.DEFAULT_BRIGHTNESS=1;xi.DEFAULT_CONTRAST=1;xi.DEFAULT_HUE=0;xi.DEFAULT_SATURATION=1;xi.DEFAULT_GAMMA=1;xi.DEFAULT_SPLIT=vc.NONE;xi.DEFAULT_MINIFICATION_FILTER=cn.LINEAR;xi.DEFAULT_MAGNIFICATION_FILTER=Ti.LINEAR;xi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;xi.fromProviderAsync=function(e,t){let n=new xi(void 0,t);return Ett(n,Promise.resolve(e)),n};xi.fromWorldImagery=function(e){return e=g(e,g.EMPTY_OBJECT),xi.fromProviderAsync(P0({style:e.style}),e)};xi.prototype.isBaseLayer=function(){return this._isBaseLayer};xi.prototype.isDestroyed=function(){return!1};xi.prototype.destroy=function(){return ue(this)};var upe=new de,lpe=new de,LJ=new de,mpe=new de;xi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return de.intersection(e.rectangle,t)};xi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!d(t)||d(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||d(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;d(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof Ei&&e.rectangle.north<Ei.MaximumLatitude&&e.rectangle.south>-Ei.MaximumLatitude,s=de.intersection(o.rectangle,this._rectangle,upe),a=de.intersection(e.rectangle,s,lpe);if(!d(a)){if(!this.isBaseLayer())return!1;let E=s,I=e.rectangle;a=lpe,I.south>=E.north?a.north=a.south=E.north:I.north<=E.south?a.north=a.south=E.south:(a.south=Math.max(I.south,E.south),a.north=Math.min(I.north,E.north)),I.west>=E.east?a.west=a.east=E.east:I.east<=E.west?a.west=a.east=E.west:(a.west=Math.max(I.west,E.west),a.east=Math.min(I.east,E.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let u=1*t.getLevelMaximumGeometricError(e.level),m=Ztt(this,u,c);m=Math.max(0,m);let p=o.maximumLevel;if(m>p&&(m=p),d(o.minimumLevel)){let E=o.minimumLevel;m<E&&(m=E)}let y=o.tilingScheme,f=y.positionToTileXY(de.northwest(a),m),x=y.positionToTileXY(de.southeast(a),m),_=e.rectangle.width/512,C=e.rectangle.height/512,V=y.tileXYToRectangle(f.x,f.y,m);Math.abs(V.south-e.rectangle.north)<C&&f.y<x.y&&++f.y,Math.abs(V.east-e.rectangle.west)<_&&f.x<x.x&&++f.x;let L=y.tileXYToRectangle(x.x,x.y,m);Math.abs(L.north-e.rectangle.south)<C&&x.y>f.y&&--x.y,Math.abs(L.west-e.rectangle.east)<_&&x.x>f.x&&--x.x;let Z=de.clone(e.rectangle,mpe),G=y.tileXYToRectangle(f.x,f.y,m),X=de.intersection(G,s,LJ),P;r?(y.rectangleToNativeRectangle(Z,Z),y.rectangleToNativeRectangle(G,G),y.rectangleToNativeRectangle(X,X),y.rectangleToNativeRectangle(s,s),P=y.tileXYToNativeRectangle.bind(y),_=Z.width/512,C=Z.height/512):P=y.tileXYToRectangle.bind(y);let v,A=0,M=1,b;!this.isBaseLayer()&&Math.abs(X.west-Z.west)>=_&&(A=Math.min(1,(X.west-Z.west)/Z.width)),!this.isBaseLayer()&&Math.abs(X.north-Z.north)>=C&&(M=Math.max(0,(X.north-Z.south)/Z.height));let R=M;for(let E=f.x;E<=x.x;E++)if(v=A,G=P(E,f.y,m),X=de.simpleIntersection(G,s,LJ),!!d(X)){A=Math.min(1,(X.east-Z.west)/Z.width),E===x.x&&(this.isBaseLayer()||Math.abs(X.east-Z.east)<_)&&(A=1),M=R;for(let I=f.y;I<=x.y;I++){if(b=M,G=P(E,I,m),X=de.simpleIntersection(G,s,LJ),!d(X))continue;M=Math.max(0,(X.south-Z.south)/Z.height),I===x.y&&(this.isBaseLayer()||Math.abs(X.south-Z.south)<C)&&(M=0);let F=new se(v,M,A,b),N=this.getImageryFromCache(E,I,m);i.imagery.splice(n,0,new tV(N,F,r)),++n}}return!0};xi.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,upe),i=c.rectangleToNativeRectangle(i,mpe)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new se(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};xi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!d(s))return o();e.image=s,e.state=ci.RECEIVED,e.request=void 0,Vo.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===$n.CANCELLED){e.state=ci.UNLOADED,e.request=void 0;return}e.state=ci.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=Vo.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new Uo({throttle:!1,throttleByServer:!0,type:Jr.IMAGERY});e.request=s,e.state=ci.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!d(a)){e.state=ci.UNLOADED,e.request=void 0;return}d(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};xi.prototype._createTextureWebGL=function(e,t){let n=new dn({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return d(i.internalFormat)?new Wt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Wt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?st.RGBA:st.RGB,sampler:n})};xi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(d(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(d(r)){if(!r.isReady()){t.state=ci.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ci.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Ei?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ci.TEXTURE_LOADED};function dpe(e,t,n){return`${e}:${t}:${n}`}xi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===cn.LINEAR&&i===Ti.LINEAR&&!st.isCompressedFormat(t.pixelFormat)&&W.isPowerOfTwo(t.width)&&W.isPowerOfTwo(t.height)){n=cn.LINEAR_MIPMAP_LINEAR;let r=kt.maximumTextureFilterAnisotropy,s=Math.min(r,g(this._maximumAnisotropy,r)),a=dpe(n,i,s),c=e.cache.imageryLayerMipmapSamplers;d(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let l=c[a];d(l)||(l=c[a]=new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(Ph.NICEST),t.sampler=l}else{let r=dpe(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;d(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];d(a)||(a=s[r]=new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};xi.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=g(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof Zi)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Kd({persists:!0,owner:this,preExecute:function(c){Rtt(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ci.READY,t.releaseReference()},canceled:function(){t.state=ci.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ci.READY};xi.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};xi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){d(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};xi.prototype.getImageryFromCache=function(e,t,n,i){let o=hpe(e,t,n),r=this._imageryCache[o];return d(r)||(r=new eV(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};xi.prototype.removeImageryFromCache=function(e){let t=hpe(e.x,e.y,e.level);delete this._imageryCache[t]};function hpe(e,t,n){return JSON.stringify([e,t,n])}var MU={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new D,texture:void 0},Ltt=Mt.supportsTypedArrays()?new Float32Array(2*64):void 0;function Rtt(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!d(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){d(this.framebuffer)&&this.framebuffer.destroy(),d(this.vertexArray)&&this.vertexArray.destroy(),d(this.shaderProgram)&&this.shaderProgram.destroy()}};let _=new Float32Array(2*64*2),C=0;for(let X=0;X<64;++X){let P=X/63;_[C++]=0,_[C++]=P,_[C++]=1,_[C++]=P}let V={position:0,webMercatorT:1},L=Ur.getRegularGridIndices(2,64),Z=mt.createIndexBuffer({context:t,typedArray:L,usage:Ne.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});o.vertexArray=new ni({context:t,attributes:[{index:V.position,vertexBuffer:mt.createVertexBuffer({context:t,typedArray:_,usage:Ne.STATIC_DRAW}),componentsPerAttribute:2},{index:V.webMercatorT,vertexBuffer:mt.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Ne.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:Z});let G=new Be({sources:[QP]});o.shaderProgram=Qt.fromCache({context:t,vertexShaderSource:G,fragmentShaderSource:JP,attributeLocations:V}),o.sampler=new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:Ti.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;MU.textureDimensions.x=r,MU.textureDimensions.y=s,MU.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let u=1/(.5*Math.log((1+a)/(1-a))-c),m=new Wt({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});W.isPowerOfTwo(r)&&W.isPowerOfTwo(s)&&m.generateMipmap(Ph.NICEST);let p=i.south,y=i.north,f=Ltt,x=0;for(let _=0;_<64;++_){let C=_/63,V=W.lerp(p,y,C);a=Math.sin(V);let Z=(.5*Math.log((1+a)/(1-a))-c)*u;f[x++]=Z,f[x++]=Z}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(f),e.shaderProgram=o.shaderProgram,e.outputTexture=m,e.uniformMap=MU,e.vertexArray=o.vertexArray}function Ztt(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof Zi?1:Math.cos(n),a=o.rectangle,l=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,u=Math.log(l)/Math.log(2);return Math.round(u)|0}function Gtt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Ett(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){Gtt(e._errorEvent,i)}}var na=xi;var Ybi=T(S(),1);var _bi=T(S(),1),Xtt={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},yn=Xtt;var Sbi=T(S(),1),fpe={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=fpe.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},jn=fpe;function iV(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new se}iV.prototype.update=function(e,t,n){this.changedThisFrame&&(Tpe(e,t,this.tile,n),this.changedThisFrame=!1)};iV.prototype.destroy=function(e){this._destroyVertexArray(e),d(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};iV.prototype._destroyVertexArray=function(e){d(this.vertexArray)&&(d(e)?e.push(this.vertexArray):Nu._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var Itt=new ny;iV.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=Itt;a.clear();for(let l=0;l<t.length;++l){let u=t[l];d(u.data.vertexArray)&&a.enqueue(t[l])}let c=a.dequeue();for(;c!==void 0;){let l=c.findTileToWest(r),u=c.findTileToSouth(r),m=c.findTileToEast(r),p=c.findTileToNorth(r);hs(e,n,c,l,s,yn.EAST,!1,a,i),hs(e,n,c,u,s,yn.NORTH,!1,a,i),hs(e,n,c,m,s,yn.WEST,!1,a,i),hs(e,n,c,p,s,yn.SOUTH,!1,a,i);let y=l.findTileToNorth(r),f=l.findTileToSouth(r),x=m.findTileToNorth(r),_=m.findTileToSouth(r);hs(e,n,c,y,s,yn.SOUTHEAST,!1,a,i),hs(e,n,c,x,s,yn.SOUTHWEST,!1,a,i),hs(e,n,c,f,s,yn.NORTHEAST,!1,a,i),hs(e,n,c,_,s,yn.NORTHWEST,!1,a,i),c=a.dequeue()}};function hs(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let l=i;for(;l&&(l._lastSelectionResultFrame!==o||jn.wasKicked(l._lastSelectionResult)||jn.originalResult(l._lastSelectionResult)===jn.CULLED);){if(s)return;let u=l.parent;if(r>=yn.NORTHWEST&&u!==void 0)switch(r){case yn.NORTHWEST:l=l===u.northwestChild?u:void 0;break;case yn.NORTHEAST:l=l===u.northeastChild?u:void 0;break;case yn.SOUTHWEST:l=l===u.southwestChild?u:void 0;break;case yn.SOUTHEAST:l=l===u.southeastChild?u:void 0;break}else l=u}if(l!==void 0){if(l._lastSelectionResult===jn.RENDERED){if(d(l.data.vertexArray))return;Wtt(e,t,n,l,r,o,a,c);return}if(jn.originalResult(i._lastSelectionResult)!==jn.CULLED)switch(r){case yn.WEST:hs(e,t,n,i.northwestChild,o,r,!0,a,c),hs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case yn.EAST:hs(e,t,n,i.southeastChild,o,r,!0,a,c),hs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case yn.SOUTH:hs(e,t,n,i.southwestChild,o,r,!0,a,c),hs(e,t,n,i.southeastChild,o,r,!0,a,c);break;case yn.NORTH:hs(e,t,n,i.northeastChild,o,r,!0,a,c),hs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case yn.NORTHWEST:hs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case yn.NORTHEAST:hs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case yn.SOUTHWEST:hs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case yn.SOUTHEAST:hs(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new fe("Invalid edge")}}}function Wtt(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new iV(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),Ptt(e,t,n,i,o,a)}function Ptt(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;d(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(Tpe(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let l,u;switch(o){case yn.WEST:l=s.westMeshes,u=s.westTiles;break;case yn.SOUTH:l=s.southMeshes,u=s.southTiles;break;case yn.EAST:l=s.eastMeshes,u=s.eastTiles;break;case yn.NORTH:l=s.northMeshes,u=s.northTiles;break;case yn.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case yn.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case yn.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case yn.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||l[0]!==a||l.length!==1,l[0]=a,u[0]=n,l.length=1,u.length=1;return}let m,p,y,f,x=n.rectangle,_,C=i.rectangle;switch(o){case yn.WEST:for(_=(C.north-C.south)*W.EPSILON5,m=0;m<u.length&&(y=u[m],f=y.rectangle,!W.greaterThan(x.north,f.south,_));++m);for(p=m;p<u.length&&(y=u[p],f=y.rectangle,!W.greaterThanOrEquals(x.south,f.north,_));++p);break;case yn.SOUTH:for(_=(C.east-C.west)*W.EPSILON5,m=0;m<u.length&&(y=u[m],f=y.rectangle,!W.lessThan(x.west,f.east,_));++m);for(p=m;p<u.length&&(y=u[p],f=y.rectangle,!W.lessThanOrEquals(x.east,f.west,_));++p);break;case yn.EAST:for(_=(C.north-C.south)*W.EPSILON5,m=0;m<u.length&&(y=u[m],f=y.rectangle,!W.lessThan(x.south,f.north,_));++m);for(p=m;p<u.length&&(y=u[p],f=y.rectangle,!W.lessThanOrEquals(x.north,f.south,_));++p);break;case yn.NORTH:for(_=(C.east-C.west)*W.EPSILON5,m=0;m<u.length&&(y=u[m],f=y.rectangle,!W.greaterThan(x.east,f.west,_));++m);for(p=m;p<u.length&&(y=u[p],f=y.rectangle,!W.greaterThanOrEquals(x.west,f.east,_));++p);break}p-m===1?(s.changedThisFrame=s.changedThisFrame||l[m]!==a,l[m]=a,u[m]=n):(s.changedThisFrame=!0,l.splice(m,p-m,a),u.splice(m,p-m,n))}var z_=new he,vtt=new he,nV=new h,EJ=new h,RJ=new D,ZJ=new D,Gd=new D;function OU(){this.height=0,this.encodedNormal=new D}function NU(e,t,n,i,o,r,s,a,c){if(d(o))return o;let l;if(d(r)&&d(s))l=(r.height+s.height)*.5;else if(d(r))l=r.height;else if(d(s))l=s.height;else if(d(a))l=a.height;else{let m=e.tile.data.tileBoundingRegion,p=0,y=0;d(m)&&(p=m.minimumHeight,y=m.maximumHeight),l=(p+y)*.5}return Spe(e,t,n,i,l,c),c}var Ftt={minimumHeight:0,maximumHeight:0},wtt=new h,ppe=new OU,bpe=new OU,ype=new OU,gpe=new OU,Att=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,Mtt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function Tpe(e,t,n,i){Nu.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.terrainExaggeration,c=t.terrainExaggerationRelativeHeight,l=a!==1,u=n.tilingScheme.ellipsoid,m=kU(r,u,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,ype),p=kU(r,u,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,ppe),y=kU(r,u,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,bpe),f=kU(r,u,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,gpe);m=NU(r,u,0,1,m,p,f,y,ype),p=NU(r,u,0,0,p,m,y,f,ppe),y=NU(r,u,1,1,y,p,f,m,bpe),f=NU(r,u,1,1,f,y,m,p,gpe);let x=p.height,_=y.height,C=m.height,V=f.height,L=Math.min(x,_,C,V),Z=Math.max(x,_,C,V),G=(L+Z)*.5,X,P,v=e.getLevelMaximumGeometricError(n.level),A=u.maximumRadius-v,M=Math.acos(A/u.maximumRadius)*4;if(M*=1.5,s.width>M&&Z-L<=v){let E=new Sa({width:9,height:9,buffer:Att,structure:{heightOffset:Z}}),I=Mtt;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=E._createMeshSync(I)}else{let E=l,I=de.center(s,vtt);I.height=G;let F=u.cartographicToCartesian(I,wtt),N=new sc(F,void 0,void 0,void 0,void 0,!0,!0,E,a,c),Y=5,k;for(k=r.westMeshes,X=0,P=k.length;X<P;++X)Y+=k[X].eastIndicesNorthToSouth.length;for(k=r.southMeshes,X=0,P=k.length;X<P;++X)Y+=k[X].northIndicesWestToEast.length;for(k=r.eastMeshes,X=0,P=k.length;X<P;++X)Y+=k[X].westIndicesSouthToNorth.length;for(k=r.northMeshes,X=0,P=k.length;X<P;++X)Y+=k[X].southIndicesEastToWest.length;let O=Ftt;O.minimumHeight=L,O.maximumHeight=Z;let U=N.stride,J=new Float32Array(Y*U),z=0,ee=z;z=UU(u,s,N,J,z,0,1,m.height,m.encodedNormal,1,O),z=BU(r,u,N,J,z,r.westTiles,r.westMeshes,yn.EAST,O);let K=z;z=UU(u,s,N,J,z,0,0,p.height,p.encodedNormal,0,O),z=BU(r,u,N,J,z,r.southTiles,r.southMeshes,yn.NORTH,O);let j=z;z=UU(u,s,N,J,z,1,0,y.height,y.encodedNormal,0,O),z=BU(r,u,N,J,z,r.eastTiles,r.eastMeshes,yn.WEST,O);let q=z;z=UU(u,s,N,J,z,1,1,f.height,f.encodedNormal,1,O),z=BU(r,u,N,J,z,r.northTiles,r.northMeshes,yn.SOUTH,O),L=O.minimumHeight,Z=O.maximumHeight;let be=Wn.fromRectangle(s,L,Z,n.tilingScheme.ellipsoid),Te=Ei.geodeticLatitudeToMercatorAngle(s.south),ae=1/(Ei.geodeticLatitudeToMercatorAngle(s.north)-Te),xe=(Ei.geodeticLatitudeToMercatorAngle(I.latitude)-Te)*ae,_e=u.geodeticSurfaceNormalCartographic(z_,EJ),Ve=Kn.octEncode(_e,RJ),Ie=z;N.encode(J,z*U,be.center,D.fromElements(.5,.5,Gd),G,Ve,xe,_e),++z;let Me=z,ve=Me<256?1:2,ke=(Me-1)*3,ct=ke*ve,yt=(J.length-Me*U)*Float32Array.BYTES_PER_ELEMENT,ot;if(yt>=ct){let Ce=Me*U*Float32Array.BYTES_PER_ELEMENT;ot=Me<256?new Uint8Array(J.buffer,Ce,ke):new Uint16Array(J.buffer,Ce,ke)}else ot=Me<256?new Uint8Array(ke):new Uint16Array(ke);J=new Float32Array(J.buffer,0,Me*U);let ln=0;for(X=0;X<Me-2;++X)ot[ln++]=Ie,ot[ln++]=X,ot[ln++]=X+1;ot[ln++]=Ie,ot[ln++]=X,ot[ln++]=0;let vn=[];for(X=K;X>=ee;--X)vn.push(X);let Dt=[];for(X=j;X>=K;--X)Dt.push(X);let Nt=[];for(X=q;X>=j;--X)Nt.push(X);let pe=[];for(pe.push(0),X=Ie-1;X>=q;--X)pe.push(X);r.mesh=new Mu(N.center,J,ot,ke,Me,L,Z,ce.fromOrientedBoundingBox(be),Ott(e,be.center,s,L,Z),N.stride,be,N,vn,Dt,Nt,pe)}let b=t.context;r._destroyVertexArray(i),r.vertexArray=Nu._createVertexArrayForMesh(b,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let R=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let E=o._findAncestorTileWithTerrainData(n);d(E)&&d(E.data.waterMaskTexture)&&(r.waterMaskTexture=E.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,E,r.waterMaskTranslationAndScale))}d(R)&&(--R.referenceCount,R.referenceCount===0&&R.destroy())}function UU(e,t,n,i,o,r,s,a,c,l,u){let m=z_;m.longitude=W.lerp(t.west,t.east,r),m.latitude=W.lerp(t.south,t.north,s),m.height=a;let p=e.cartographicToCartesian(m,nV),y;n.hasGeodeticSurfaceNormals&&(y=e.geodeticSurfaceNormal(p,EJ));let f=ZJ;return f.x=r,f.y=s,n.encode(i,o*n.stride,p,f,a,c,l,y),u.minimumHeight=Math.min(u.minimumHeight,a),u.maximumHeight=Math.max(u.maximumHeight,a),o+1}var YU=new de;function gv(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=de.clone(e.rectangle,YU),o.west-=W.TWO_PI,o.east-=W.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=de.clone(e.rectangle,YU),o.west+=W.TWO_PI,o.east+=W.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,l=o.north-o.south,u=(r.south-o.south)/l,m=(r.north-o.south)/l,p=(n.x-a)/(c-a),y=(n.y-u)/(m-u);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(y)<Math.EPSILON5?y=0:Math.abs(y-1)<Math.EPSILON5&&(y=1),i.x=p,i.y=y,i}var Ntt=new D;function GJ(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var Utt=new D,ktt=new h;function Dtt(e,t,n,i,o,r,s,a,c,l){let u=i.encoding,m=i.vertices,p=gv(t,n,u.decodeTextureCoordinates(m,o,Gd),Gd),y=gv(t,n,u.decodeTextureCoordinates(m,r,ZJ),ZJ),f;c?f=(s-p.x)/(y.x-p.x):f=(a-p.y)/(y.y-p.y);let x=u.decodeHeight(m,o),_=u.decodeHeight(m,r),C=n.rectangle;z_.longitude=W.lerp(C.west,C.east,s),z_.latitude=W.lerp(C.south,C.north,a),l.height=z_.height=W.lerp(x,_,f);let V;if(u.hasVertexNormals){let L=u.getOctEncodedNormal(m,o,Ntt),Z=u.getOctEncodedNormal(m,r,Utt),G=Kn.octDecode(L.x,L.y,nV),X=Kn.octDecode(Z.x,Z.y,ktt);V=h.lerp(G,X,f,nV),h.normalize(V,V),Kn.octEncode(V,l.encodedNormal)}else V=e.geodeticSurfaceNormalCartographic(z_,nV),Kn.octEncode(V,l.encodedNormal)}function Spe(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(z_,nV);Kn.octEncode(s,r.encodedNormal)}function kU(e,t,n,i,o,r,s,a,c,l,u){if(_pe(e,t,a,s,!1,n,i,u)||_pe(e,t,l,c,!0,n,i,u))return u;let p;if(XJ(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],GJ(r,p,n,i,u),u;let y;if(n===0?i===0?y=DU(e.westMeshes,e.westTiles,yn.EAST,e.southMeshes,e.southTiles,yn.NORTH,n,i):y=DU(e.northMeshes,e.northTiles,yn.SOUTH,e.westMeshes,e.westTiles,yn.EAST,n,i):i===0?y=DU(e.southMeshes,e.southTiles,yn.NORTH,e.eastMeshes,e.eastTiles,yn.WEST,n,i):y=DU(e.eastMeshes,e.eastTiles,yn.WEST,e.northMeshes,e.northTiles,yn.SOUTH,n,i),d(y))return Spe(e,t,n,i,y,u),u}function DU(e,t,n,i,o,r,s,a){let c=xpe(e,t,!1,n,s,a),l=xpe(i,o,!0,r,s,a);return d(c)&&d(l)?(c+l)*.5:d(c)?c:l}function BU(e,t,n,i,o,r,s,a,c){for(let l=0;l<r.length;++l)o=Btt(e,t,n,i,o,r[l],s[l],a,c);return o}function Btt(e,t,n,i,o,r,s,a,c){let l=r.rectangle;a===yn.EAST&&e.tile.x===0?(l=de.clone(r.rectangle,YU),l.west-=W.TWO_PI,l.east-=W.TWO_PI):a===yn.WEST&&r.x===0&&(l=de.clone(r.rectangle,YU),l.west+=W.TWO_PI,l.east+=W.TWO_PI);let u=e.tile.rectangle,m,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Gd),m=Gd.x,p=Gd.y);let y,f;switch(a){case yn.WEST:y=s.westIndicesSouthToNorth,f=!1;break;case yn.NORTH:y=s.northIndicesWestToEast,f=!0;break;case yn.EAST:y=s.eastIndicesNorthToSouth,f=!1;break;case yn.SOUTH:y=s.southIndicesEastToWest,f=!0;break}let x=r,_=e.tile,C=s.encoding,V=s.vertices,L=n.stride,Z,G;C.hasWebMercatorT&&(Z=Ei.geodeticLatitudeToMercatorAngle(u.south),G=1/(Ei.geodeticLatitudeToMercatorAngle(u.north)-Z));for(let X=0;X<y.length;++X){let P=y[X],v=C.decodeTextureCoordinates(V,P,Gd);gv(x,_,v,v);let A=v.x,M=v.y,b=f?A:M;if(b<0||b>1||Math.abs(A-m)<W.EPSILON5&&Math.abs(M-p)<W.EPSILON5)continue;let R=Math.abs(A)<W.EPSILON5||Math.abs(A-1)<W.EPSILON5,E=Math.abs(M)<W.EPSILON5||Math.abs(M-1)<W.EPSILON5;if(R&&E)continue;let I=C.decodePosition(V,P,nV),F=C.decodeHeight(V,P),N;C.hasVertexNormals?N=C.getOctEncodedNormal(V,P,RJ):(N=RJ,N.x=0,N.y=0);let Y=M;if(C.hasWebMercatorT){let O=W.lerp(u.south,u.north,M);Y=(Ei.geodeticLatitudeToMercatorAngle(O)-Z)*G}let k;n.hasGeodeticSurfaceNormals&&(k=t.geodeticSurfaceNormal(I,EJ)),n.encode(i,o*L,I,v,F,N,Y,k),c.minimumHeight=Math.min(c.minimumHeight,F),c.maximumHeight=Math.max(c.maximumHeight,F),++o}return o}function xpe(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let l=s;l!==a;l+=c){let u=e[l],m=t[l];if(!XJ(m,u))continue;let p;switch(i){case yn.WEST:p=u.westIndicesSouthToNorth;break;case yn.SOUTH:p=u.southIndicesEastToWest;break;case yn.EAST:p=u.eastIndicesNorthToSouth;break;case yn.NORTH:p=u.northIndicesWestToEast;break}let y=p[n?0:p.length-1];if(d(y))return u.encoding.decodeHeight(u.vertices,y)}}function XJ(e,t){return d(t)&&(!d(e.data.fill)||!e.data.fill.changedThisFrame)}function _pe(e,t,n,i,o,r,s,a){let c,l,u,m,p,y=i[o?0:n.length-1],f=n[o?0:n.length-1];if(XJ(y,f)&&(r===0?s===0?(c=o?f.northIndicesWestToEast:f.eastIndicesNorthToSouth,l=o,u=o):(c=o?f.eastIndicesNorthToSouth:f.southIndicesEastToWest,l=!o,u=!1):s===0?(c=o?f.westIndicesSouthToNorth:f.northIndicesWestToEast,l=!o,u=!0):(c=o?f.southIndicesEastToWest:f.westIndicesSouthToNorth,l=o,u=!o),c.length>0)){m=o?0:c.length-1,p=c[m],f.encoding.decodeTextureCoordinates(f.vertices,p,Gd);let x=gv(y,e.tile,Gd,Gd);if(x.x===r&&x.y===s)return GJ(f,p,r,s,a),!0;if(m=Lo(c,l?r:s,function(_,C){f.encoding.decodeTextureCoordinates(f.vertices,_,Gd);let V=gv(y,e.tile,Gd,Gd);return u?l?V.x-r:V.y-s:l?r-V.x:s-V.y}),m<0){if(m=~m,m>0&&m<c.length)return Dtt(t,y,e.tile,f,c[m-1],c[m],r,s,l,a),!0}else return GJ(f,c[m],r,s,a),!0}return!1}var Ytt=[new h,new h,new h,new h];function Ott(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Ytt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var oV=iV;function jo(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=xn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new ye,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(jo.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(jo.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(jo.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(jo.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new ye,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new B(0,0,.5,1),this._clippingPlanes=void 0,this.cartographicLimitRectangle=de.clone(de.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldTerrainExaggeration=void 0,this._oldTerrainExaggerationRelativeHeight=void 0}Object.defineProperties(jo.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=se.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},tilingScheme:{get:function(){if(d(this._terrainProvider))return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,d(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ss.setOwner(e,this,"_clippingPlanes")}}});function Ktt(e,t){let n=e.loadingImagery;d(n)||(n=e.readyImagery);let i=t.loadingImagery;return d(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}jo.prototype.update=function(e){this._imageryLayers._update()};function Htt(e,t){let n=t.creditDisplay,i=e._terrainProvider;d(i)&&d(i.credit)&&n.addCreditToNextFrame(i.credit);let o=e._imageryLayers;for(let r=0,s=o.length;r<s;++r){let a=o.get(r);a.ready&&a.show&&d(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}jo.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(Ktt)})),Htt(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)Nu._freeVertexArray(t[i]);t.length=0};jo.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let i=0,o=t.length;i<o;++i){let r=t[i];d(r)&&(r.length=0)}let n=this._clippingPlanes;d(n)&&n.enabled&&n.update(e),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};jo.prototype.endUpdate=function(e){if(!d(this._renderState)){this._renderState=De.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:ka.LESS}}),this._blendRenderState=De.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:ka.LESS_OR_EQUAL},blending:un.ALPHA_BLEND});let s=Oe(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=De.fromCache(s),s=Oe(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=De.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&oV.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.terrainExaggeration,i=e.terrainExaggerationRelativeHeight,o=this._oldTerrainExaggeration!==n||this._oldTerrainExaggerationRelativeHeight!==i;this._oldTerrainExaggeration=n,this._oldTerrainExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(d(c))for(let l=0,u=c.length;l<u;++l){let m=c[l],p=m.data.tileBoundingRegion;ynt(this,m,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function Zpe(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}jo.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)Zpe(t[n],e)};jo.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};jo.prototype.getLevelMaximumGeometricError=function(e){return d(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};jo.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;d(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===jn.CULLED_BUT_NEEDED,o=n.terrainState),Nu.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==sr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,Nu.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var ztt=new ce,Gpe=new de,Jtt=new de,Qtt=new he;function HU(e,t){if(t.west<t.east)return t;let n=de.clone(t,Jtt);return de.center(e,Qtt).longitude>0?n.east=W.PI:n.west=-W.PI,n}function Epe(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;return!!(d(n)&&n.enabled||!de.equals(e.cartographicLimitRectangle,de.MAX_VALUE))}jo.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=Epe(this,t);if(t.fog.enabled&&!o&&W.fog(i,t.fog.density)>=1)return sr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return sr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;d(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let l=HU(e.rectangle,this.cartographicLimitRectangle),u=de.simpleIntersection(l,e.rectangle,Gpe);if(!d(u))return sr.NONE;if(de.equals(u,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==ie.SCENE3D&&(c=ztt,ce.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),h.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===ie.MORPHING&&d(r.renderedMesh)&&(c=ce.union(s.boundingSphere,c,c))),!d(c))return sr.PARTIAL;let m=this._clippingPlanes;if(d(m)&&m.enabled){let x=m.computeIntersectionWithBoundingVolume(c);if(e.isClipped=x!==qt.INSIDE,x===qt.OUTSIDE)return sr.NONE}let p,y=a.computeVisibility(c);if(y===qt.OUTSIDE?p=sr.NONE:y===qt.INTERSECTING?p=sr.PARTIAL:y===qt.INSIDE&&(p=sr.FULL),p===sr.NONE)return p;let f=t.mode===ie.SCENE3D&&t.camera.frustum instanceof en;if(t.mode===ie.SCENE3D&&!f&&d(n)&&!o){let x=r.occludeePointInScaledSpace;return!d(x)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(x,s.minimumHeight)?p:sr.NONE}return p};jo.prototype.canRefine=function(e){return d(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var jtt=[],qtt=[];jo.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=jtt;i.length=this._imageryLayers.length;let o=!1,r=!1,s;d(n)&&(o=n.terrainState===ao.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(d(s))for(a=0,c=s.length;a<c;++a){let m=s[a],p=m.loadingImagery,y=!d(p)||p.state===ci.FAILED||p.state===ci.INVALID,f=(m.loadingImagery||m.readyImagery).imageryLayer._layerIndex;i[f]=y&&i[f]}let l=this.quadtree._lastSelectionFrameNumber,u=qtt;for(u.length=0,u.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);u.length>0;){let m=u.pop(),p=m._lastSelectionResultFrame===l?m._lastSelectionResult:jn.NONE;if(p===jn.RENDERED){let y=m.data;if(!d(y))continue;if(!o&&m.data.terrainState===ao.READY)return!1;let f=m.data.imagery;for(a=0,c=f.length;a<c;++a){let x=f[a],_=x.loadingImagery,C=!d(_)||_.state===ci.FAILED||_.state===ci.INVALID,V=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(C&&!i[V])return!1}}else p===jn.REFINED&&u.push(m.southwestChild,m.southeastChild,m.northwestChild,m.northeastChild)}return!0};var $tt=new h;jo.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=h.subtract(i.center,o,$tt),a=h.magnitude(s);return a<W.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var Cpe=new w,KU=new w,ent=new se,tnt=new se,nnt=new se,int=new h,Vpe=new h,ont=new h,rnt=new h;jo.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let l=i[a];d(l.readyImagery)&&l.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];d(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;d(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var snt=[new h,new h,new h,new h];function Lpe(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=snt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}jo.prototype.computeDistanceToTile=function(e,t){ant(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,l=Math.abs(c-r),u=Math.abs(c-s);l>u?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function ant(e,t,n){let i=e.data;i===void 0&&(i=e.data=new Nu);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new bu({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,l=e,u=i.mesh,m=i.terrainData;if(u!==void 0&&u.minimumHeight!==void 0&&u.maximumHeight!==void 0)r.minimumHeight=u.minimumHeight,r.maximumHeight=u.maximumHeight,c=!0;else if(m!==void 0&&m._minimumHeight!==void 0&&m._maximumHeight!==void 0)r.minimumHeight=m._minimumHeight,r.maximumHeight=m._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let y=p.data;if(y!==void 0){let f=y.mesh,x=y.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0){r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight;break}else if(x!==void 0&&x._minimumHeight!==void 0&&x._maximumHeight!==void 0){r.minimumHeight=x._minimumHeight,r.maximumHeight=x._maximumHeight;break}}p=p.parent}l=p}if(l!==void 0){let p=n.terrainExaggeration,y=n.terrainExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=Vc.getHeight(r.minimumHeight,p,y),r.maximumHeight=Vc.getHeight(r.maximumHeight,p,y)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=Wn.clone(u.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=ce.clone(u.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(u.occludeePointInScaledSpace,i.occludeePointInScaledSpace),d(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=Lpe(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let x=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||x)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=Lpe(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=l,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}jo.prototype.isDestroyed=function(){return!1};jo.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),ue(this)};function cnt(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,l;for(l=0;l<c;++l)if(o=a[l],r=g(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=l;break}if(s!==-1){let u=s+e;if(o=a[u],r=d(o)?g(o.readyImagery,o.loadingImagery):void 0,!d(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,u);for(l=s;l<u;++l)a[l].freeResources();a.splice(s,e)}return!0}}jo.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(d(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,l=c.length,u=-1,m=0;for(a=0;a<l;++a){let y=c[a];if(g(y.readyImagery,y.loadingImagery).imageryLayer===e)u===-1&&(u=a),++m;else if(u!==-1)break}if(u===-1)return;let p=u+m;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=cnt(m,e,n),s.state=Fs.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=Fs.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==jn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};jo.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],l=c.loadingImagery;if(d(l)||(l=c.readyImagery),l.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),d(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};jo.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};jo.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var lnt=new w,dnt=new w;function Rpe(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_terrainExaggerationAndRelativeHeight:function(){return this.properties.terrainExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=w.multiplyByPoint(i,this.properties.rtc,Vpe);return w.setTranslation(i,o,Cpe),Cpe},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=w.multiplyByPoint(i,this.properties.rtc,Vpe);return w.setTranslation(i,r,KU),w.multiply(o,KU,KU),KU},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return d(i)&&d(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=d(i)?w.multiply(e.context.uniformState.view,i.modelMatrix,lnt):w.IDENTITY;return w.inverseTranspose(o,dnt)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new se(0,0,.5,1),fillHighlightColor:new B(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new D(65e5,9e6),nightFadeDistance:new D(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new w,tileRectangle:new se,terrainExaggerationAndRelativeHeight:new D(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new D,southMercatorYAndOneOverHeight:new D,waterMask:void 0,waterMaskTranslationAndScale:new se,minMaxHeight:new D,scaleAndBias:new w,clippingPlanesEdgeColor:B.clone(B.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new se,frontFaceAlphaByDistance:new se,backFaceAlphaByDistance:new se,localizedTranslucencyRectangle:new se,undergroundColor:B.clone(B.TRANSPARENT),undergroundColorAlphaByDistance:new se,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return d(t.materialUniformMap)?xt(n,t.materialUniformMap):n}function unt(e,t,n){let i=n.data,o,r;if(d(i.vertexArray)?(o=i.mesh,r=i.vertexArray):d(i.fill)&&d(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!d(o)||!d(r))){if(d(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=mnt(e,r,o),i.wireframeVertexArray.mesh=o}}function mnt(e,t,n){let o={indices:n.indices,primitiveType:we.TRIANGLES};An.toWireframe(o);let r=o.indices,s=mt.createIndexBuffer({context:e,typedArray:r,usage:Ne.STATIC_DRAW,indexDatatype:Ue.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ni({context:e,attributes:t._attributes,indexBuffer:s})}var Xpe,Ipe,zU;(function(){let e=new _t({geometry:sm.fromDimensions({dimensions:new h(2,2,2)})}),t=new _t({geometry:new e0({radius:1})}),n=new w,i,o;function r(s){return new Zn({geometryInstances:s,appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})}Xpe=function(s,a){return s===i||(zU(),i=s,n=w.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=Ut.fromColor(a),o=r(e)),o},Ipe=function(s,a){return s===i||(zU(),i=s,n=w.fromTranslation(s.center,n),n=w.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=Ut.fromColor(a),o=r(t)),o},zU=function(){d(o)&&(o.destroy(),o=void 0,i=void 0)}})();var hnt=new se(0,0,0,0),fnt={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},pnt=B.TRANSPARENT,bnt=new Pt;function ynt(e,t,n){let i=t.data;d(i.vertexArray)||(i.fill===void 0&&(i.fill=new oV(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(d(r)&&d(r.credits)){let pe=r.credits;for(let Ce=0,Ht=pe.length;Ce<Ht;++Ce)o.addCreditToNextFrame(pe[Ce])}let s=kt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!d(a)&&d(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let l=n.cameraUnderground,u=n.globeTranslucencyState,m=u.translucent,p=u.frontFaceAlphaByDistance,y=u.backFaceAlphaByDistance,f=u.rectangle,x=g(e.undergroundColor,pnt),_=g(e.undergroundColorAlphaByDistance,bnt),C=Epe(e,n)&&n.mode===ie.SCENE3D&&x.alpha>0&&(_.nearValue>0||_.farValue>0),V=e.lambertDiffuseMultiplier,L=e.vertexShadowDarkness,Z=e.hasWaterMask&&d(a),G=e.oceanNormalMap,X=Z&&d(G),P=e.terrainProvider,v=d(P)&&e.terrainProvider.hasVertexNormals,A=n.fog.enabled&&n.fog.renderable&&!l,M=e.showGroundAtmosphere&&n.mode===ie.SCENE3D,b=xn.castShadows(e.shadows)&&!m,R=xn.receiveShadows(e.shadows)&&!m,E=e.hueShift,I=e.saturationShift,F=e.brightnessShift,N=!(W.equalsEpsilon(E,0,W.EPSILON7)&&W.equalsEpsilon(I,0,W.EPSILON7)&&W.equalsEpsilon(F,0,W.EPSILON7)),Y=!1;if(M){let pe=h.magnitude(n.camera.positionWC),Ce=e.nightFadeOutDistance;Y=pe>Ce}Z&&--s,X&&--s,d(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,d(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,s-=u.numberOfTextureUniforms;let k=i.renderedMesh,O=k.center,U=k.encoding,J=i.tileBoundingRegion,z=n.terrainExaggeration,ee=n.terrainExaggerationRelativeHeight,K=z!==1,j=U.hasGeodeticSurfaceNormals,q=ent,be=0,Te=0,ae=0,xe=0,_e=!1;if(n.mode!==ie.SCENE3D){let pe=n.mapProjection,Ce=pe.project(de.southwest(t.rectangle),ont),Ht=pe.project(de.northeast(t.rectangle),rnt);if(q.x=Ce.x,q.y=Ce.y,q.z=Ht.x,q.w=Ht.y,n.mode!==ie.MORPHING&&(O=int,O.x=0,O.y=(q.z+q.x)*.5,O.z=(q.w+q.y)*.5,q.x-=O.y,q.y-=O.z,q.z-=O.y,q.w-=O.z),n.mode===ie.SCENE2D&&U.quantization===vs.BITS12){let ut=1/(Math.pow(2,12)-1)*.5,hi=(q.z-q.x)*ut,ji=(q.w-q.y)*ut;q.x-=hi,q.y-=ji,q.z+=hi,q.w+=ji}pe instanceof Ei&&(be=t.rectangle.south,Te=t.rectangle.north,ae=Ei.geodeticLatitudeToMercatorAngle(be),xe=1/(Ei.geodeticLatitudeToMercatorAngle(Te)-ae),_e=!0)}let Ve=fnt;Ve.frameState=n,Ve.surfaceTile=i,Ve.showReflectiveOcean=Z,Ve.showOceanWaves=X,Ve.enableLighting=e.enableLighting,Ve.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Ve.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Ve.showGroundAtmosphere=M,Ve.atmosphereLightIntensity=e.atmosphereLightIntensity,Ve.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Ve.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Ve.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Ve.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Ve.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Ve.perFragmentGroundAtmosphere=Y,Ve.hasVertexNormals=v,Ve.useWebMercatorProjection=_e,Ve.clippedByBoundaries=i.clippedByBoundaries,Ve.hasGeodeticSurfaceNormals=j,Ve.hasExaggeration=K;let Ie=i.imagery,Me=0,ve=Ie.length,ke=e.showSkirts&&!l&&!m,ct=e.backFaceCulling&&!l&&!m,yt=ct?e._renderState:e._disableCullingRenderState,ot=ct?e._blendRenderState:e._disableCullingBlendRenderState,ln=yt,vn=e._firstPassInitialColor,Dt=n.context;if(d(e._debug.boundingSphereTile)||zU(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let pe=e._drawCommands.length;for(let Ce=0;Ce<pe;++Ce)e._uniformMaps[Ce]=Rpe(n,e)}do{let pe=0,Ce,Ht;if(e._drawCommands.length<=e._usedDrawCommands?(Ce=new nt,Ce.owner=t,Ce.cull=!1,Ce.boundingVolume=new ce,Ce.orientedBoundingBox=void 0,Ht=Rpe(n,e),e._drawCommands.push(Ce),e._uniformMaps.push(Ht)):(Ce=e._drawCommands[e._usedDrawCommands],Ht=e._uniformMaps[e._usedDrawCommands]),Ce.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let fi=J.boundingVolume,Pr=J.boundingSphere;d(fi)?Xpe(fi,B.RED).update(n):d(Pr)&&Ipe(Pr,B.RED).update(n)}let ut=Ht.properties;se.clone(vn,ut.initialColor),ut.oceanNormalMap=G,ut.lightingFadeDistance.x=e.lightingFadeOutDistance,ut.lightingFadeDistance.y=e.lightingFadeInDistance,ut.nightFadeDistance.x=e.nightFadeOutDistance,ut.nightFadeDistance.y=e.nightFadeInDistance,ut.atmosphereLightIntensity=e.atmosphereLightIntensity,ut.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,ut.atmosphereMieCoefficient=e.atmosphereMieCoefficient,ut.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,ut.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,ut.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,ut.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let hi=l?y:p,ji=l?p:y;d(hi)&&(se.fromElements(hi.near,hi.nearValue,hi.far,hi.farValue,ut.frontFaceAlphaByDistance),se.fromElements(ji.near,ji.nearValue,ji.far,ji.farValue,ut.backFaceAlphaByDistance)),se.fromElements(_.near,_.nearValue,_.far,_.farValue,ut.undergroundColorAlphaByDistance),B.clone(x,ut.undergroundColor),ut.lambertDiffuseMultiplier=V,ut.vertexShadowDarkness=L;let pc=!d(i.vertexArray)&&d(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;pc&&B.clone(e.fillHighlightColor,ut.fillHighlightColor),ut.terrainExaggerationAndRelativeHeight.x=z,ut.terrainExaggerationAndRelativeHeight.y=ee,ut.center3D=k.center,h.clone(O,ut.rtc),se.clone(q,ut.tileRectangle),ut.southAndNorthLatitude.x=be,ut.southAndNorthLatitude.y=Te,ut.southMercatorYAndOneOverHeight.x=ae,ut.southMercatorYAndOneOverHeight.y=xe;let bs=tnt,ys=HU(t.rectangle,e.cartographicLimitRectangle),$r=nnt,Fe=HU(t.rectangle,f);h.fromElements(E,I,F,ut.hsbShift);let je=t.rectangle,qe=1/je.width,Qe=1/je.height;bs.x=(ys.west-je.west)*qe,bs.y=(ys.south-je.south)*Qe,bs.z=(ys.east-je.west)*qe,bs.w=(ys.north-je.south)*Qe,se.clone(bs,ut.localizedCartographicLimitRectangle),$r.x=(Fe.west-je.west)*qe,$r.y=(Fe.south-je.south)*Qe,$r.z=(Fe.east-je.west)*qe,$r.w=(Fe.north-je.south)*Qe,se.clone($r,ut.localizedTranslucencyRectangle);let pt=A&&W.fog(t._distance,n.fog.density)>W.EPSILON3;N=N&&(pt||M);let Bt=!1,Vn=!1,di=!1,bo=!1,es=!1,ts=!1,Mo=!1,Ki=!1,ns=!1,zn=!1;for(;pe<s&&Me<ve;){let fi=Ie[Me],Pr=fi.readyImagery;if(++Me,!d(Pr)||Pr.imageryLayer.alpha===0)continue;let Sh=fi.useWebMercatorT?Pr.textureWebMercator:Pr.texture,cr=Pr.imageryLayer;d(fi.textureTranslationAndScale)||(fi.textureTranslationAndScale=cr._calculateTextureTranslationAndScale(t,fi)),ut.dayTextures[pe]=Sh,ut.dayTextureTranslationAndScale[pe]=fi.textureTranslationAndScale,ut.dayTextureTexCoordsRectangle[pe]=fi.textureCoordinateRectangle,ut.dayTextureUseWebMercatorT[pe]=fi.useWebMercatorT,ut.dayTextureAlpha[pe]=cr.alpha,ts=ts||ut.dayTextureAlpha[pe]!==1,ut.dayTextureNightAlpha[pe]=cr.nightAlpha,Mo=Mo||ut.dayTextureNightAlpha[pe]!==1,ut.dayTextureDayAlpha[pe]=cr.dayAlpha,Mo=Mo||ut.dayTextureDayAlpha[pe]!==1,ut.dayTextureBrightness[pe]=cr.brightness,Bt=Bt||ut.dayTextureBrightness[pe]!==na.DEFAULT_BRIGHTNESS,ut.dayTextureContrast[pe]=cr.contrast,Vn=Vn||ut.dayTextureContrast[pe]!==na.DEFAULT_CONTRAST,ut.dayTextureHue[pe]=cr.hue,di=di||ut.dayTextureHue[pe]!==na.DEFAULT_HUE,ut.dayTextureSaturation[pe]=cr.saturation,bo=bo||ut.dayTextureSaturation[pe]!==na.DEFAULT_SATURATION,ut.dayTextureOneOverGamma[pe]=1/cr.gamma,es=es||ut.dayTextureOneOverGamma[pe]!==1/na.DEFAULT_GAMMA,ut.dayTextureSplit[pe]=cr.splitDirection,Ki=Ki||ut.dayTextureSplit[pe]!==0;let kd=ut.dayTextureCutoutRectangles[pe];if(d(kd)||(kd=ut.dayTextureCutoutRectangles[pe]=new se),se.clone(se.ZERO,kd),d(cr.cutoutRectangle)){let Or=HU(je,cr.cutoutRectangle),bc=de.simpleIntersection(Or,je,Gpe);ns=d(bc)||ns,kd.x=(Or.west-je.west)*qe,kd.y=(Or.south-je.south)*Qe,kd.z=(Or.east-je.west)*qe,kd.w=(Or.north-je.south)*Qe}let qc=ut.colorsToAlpha[pe];d(qc)||(qc=ut.colorsToAlpha[pe]=new se);let pg=d(cr.colorToAlpha)&&cr.colorToAlphaThreshold>0;if(zn=zn||pg,pg){let Or=cr.colorToAlpha;qc.x=Or.red,qc.y=Or.green,qc.z=Or.blue,qc.w=cr.colorToAlphaThreshold}else qc.w=-1;if(d(Pr.credits)){let Or=Pr.credits;for(let bc=0,Dd=Or.length;bc<Dd;++bc)o.addCreditToNextFrame(Or[bc])}++pe}ut.dayTextures.length=pe,ut.waterMask=a,se.clone(c,ut.waterMaskTranslationAndScale),ut.minMaxHeight.x=U.minimumHeight,ut.minMaxHeight.y=U.maximumHeight,w.clone(U.matrix,ut.scaleAndBias);let Fn=e._clippingPlanes,mn=d(Fn)&&Fn.enabled&&t.isClipped;mn&&(ut.clippingPlanesEdgeColor=B.clone(Fn.edgeColor,ut.clippingPlanesEdgeColor),ut.clippingPlanesEdgeWidth=Fn.edgeWidth),Ve.numberOfDayTextures=pe,Ve.applyBrightness=Bt,Ve.applyContrast=Vn,Ve.applyHue=di,Ve.applySaturation=bo,Ve.applyGamma=es,Ve.applyAlpha=ts,Ve.applyDayNightAlpha=Mo,Ve.applySplit=Ki,Ve.enableFog=pt,Ve.enableClippingPlanes=mn,Ve.clippingPlanes=Fn,Ve.hasImageryLayerCutout=ns,Ve.colorCorrect=N,Ve.highlightFillTile=pc,Ve.colorToAlpha=zn,Ve.showUndergroundColor=C,Ve.translucent=m;let _i=i.renderedMesh.indices.length;ke||(_i=i.renderedMesh.indexCountWithoutSkirts),Ce.shaderProgram=e._surfaceShaderSet.getShaderProgram(Ve),Ce.castShadows=b,Ce.receiveShadows=R,Ce.renderState=ln,Ce.primitiveType=we.TRIANGLES,Ce.vertexArray=i.vertexArray||i.fill.vertexArray,Ce.count=_i,Ce.uniformMap=Ht,Ce.pass=Re.GLOBE,e._debug.wireframe&&(unt(Dt,e,t),d(i.wireframeVertexArray)&&(Ce.vertexArray=i.wireframeVertexArray,Ce.primitiveType=we.LINES,Ce.count=_i*2));let ui=Ce.boundingVolume,As=Ce.orientedBoundingBox;n.mode!==ie.SCENE3D?(ce.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,J.minimumHeight,J.maximumHeight,ui),h.fromElements(ui.center.z,ui.center.x,ui.center.y,ui.center),n.mode===ie.MORPHING&&(ui=ce.union(J.boundingSphere,ui,ui))):(Ce.boundingVolume=ce.clone(J.boundingSphere,ui),Ce.orientedBoundingBox=Wn.clone(J.boundingVolume,As)),Ce.dirty=!0,m&&u.updateDerivedCommands(Ce,n),Zpe(Ce,n),ln=ot,vn=hnt}while(Me<ve)}var xv=jo;var Jyi=T(S(),1);function Wpe(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=de.clone(de.MAX_VALUE)}Object.defineProperties(Wpe.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Pt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Pt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){d(e)||(e=de.clone(de.MAX_VALUE)),de.clone(e,this._rectangle)}}});var _v=Wpe;var ogi=T(S(),1);function fs(){this._layers=[],this.layerAdded=new ye,this.layerRemoved=new ye,this.layerMoved=new ye,this.layerShownOrHidden=new ye}Object.defineProperties(fs.prototype,{length:{get:function(){return this._layers.length}}});fs.prototype.add=function(e,t){d(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};fs.prototype.addImageryProvider=function(e,t){let n=new na(e);return this.add(n,t),n};fs.prototype.remove=function(e,t){t=g(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};fs.prototype.removeAll=function(e){e=g(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};fs.prototype.contains=function(e){return this.indexOf(e)!==-1};fs.prototype.indexOf=function(e){return this._layers.indexOf(e)};fs.prototype.get=function(e){return this._layers[e]};function JU(e,t){return e.indexOf(t)}function Ppe(e,t,n){let i=e._layers;if(t=W.clamp(t,0,i.length-1),n=W.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}fs.prototype.raise=function(e){let t=JU(this._layers,e);Ppe(this,t,t+1)};fs.prototype.lower=function(e){let t=JU(this._layers,e);Ppe(this,t,t-1)};fs.prototype.raiseToTop=function(e){let t=JU(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};fs.prototype.lowerToBottom=function(e){let t=JU(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var gnt=new de;function vpe(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!d(r)&&a<o.length;++a){let c=o[a];de.contains(c.rectangle,t)&&(r=c)}if(!d(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],l=c.readyImagery;if(!d(l)||!l.imageryLayer.ready)continue;let u=l.imageryLayer.imageryProvider;if(n&&!d(u.pickFeatures)||!de.contains(l.rectangle,t))continue;let m=gnt,p=1/1024;m.west=W.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),m.east=W.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),m.south=W.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),m.north=W.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),de.contains(m,t)&&i(l)}}fs.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!d(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[];if(vpe(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};fs.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!d(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(vpe(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);d(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let l=s[c],u=r[c];if(d(l)&&l.length>0)for(let m=0;m<l.length;++m){let p=l[m];p.imageryLayer=u,d(p.position)||(p.position=i),a.push(p)}}return a})};fs.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};fs.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};fs.prototype.isDestroyed=function(){return!1};fs.prototype.destroy=function(){return this.removeAll(!0),ue(this)};fs.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(d(i._show)&&(d(n)||(n=[]),n.push(i)),i._show=i.show);if(d(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var Tv=fs;var Mgi=T(S(),1);var cgi=T(S(),1);function Fpe(e){this._ellipsoid=new d0(e.ellipsoid,h.ZERO)}Object.defineProperties(Fpe.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var Sv=Fpe;var fgi=T(S(),1);function Oc(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=jn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=Fs.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}Oc.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new Oc({tilingScheme:e,x:s,y:r,level:0});return i};Oc.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(d(t)&&d(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],de.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(d(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],de.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(Oc.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return d(this._southwestChild)||(this._southwestChild=new Oc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return d(this._southeastChild)||(this._southeastChild=new Oc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return d(this._northwestChild)||(this._northwestChild=new Oc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return d(this._northeastChild)||(this._northeastChild=new Oc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<Fs.DONE}},eligibleForUnloading:{get:function(){let e=!0;return d(this.data)&&(e=this.data.eligibleForUnloading,d(e)||(e=!0)),e}}});Oc.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};Oc.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};Oc.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};Oc.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};Oc.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};Oc.prototype.freeResources=function(){this.state=Fs.START,this.renderable=!1,this.upsampledFromParent=!1,d(this.data)&&d(this.data.freeResources)&&this.data.freeResources(),QU(this._southwestChild),this._southwestChild=void 0,QU(this._southeastChild),this._southeastChild=void 0,QU(this._northwestChild),this._northwestChild=void 0,QU(this._northeastChild),this._northeastChild=void 0};function QU(e){d(e)&&e.freeResources()}var Cv=Oc;var ygi=T(S(),1);function jU(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}jU.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};jU.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&d(this._lastBeforeStartOfFrame)&&this.count>e&&d(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),wpe(this,t)),t=i}};function wpe(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}jU.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!d(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(d(e.replacementPrevious)||d(e.replacementNext))&&wpe(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var Vv=jU;function ku(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new Vv,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=g(e.maximumScreenSpaceError,2),this.tileCacheSize=g(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new Sv({ellipsoid:n}),this._tileLoadProgressEvent=new ye,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(ku.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});ku.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function xnt(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,Mpe(e);let n=e._levelZeroTiles;if(d(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}ku.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;d(t);)t.state!==Fs.START&&e(t),t=t.replacementNext};ku.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};ku.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};ku.prototype.update=function(e){d(this._tileProvider.update)&&this._tileProvider.update(e)};function Mpe(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}ku.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(xnt(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),Mpe(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};ku.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),Cnt(this,e),Pnt(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function _nt(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=ye.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}ku.prototype.endFrame=function(e){!e.passes.render||e.mode===ie.MORPHING||(Ent(this,e),Wnt(this,e),_nt(this,e))};ku.prototype.isDestroyed=function(){return!1};ku.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var Rv,Ape=new he;function Tnt(e,t){let n=de.center(e.rectangle,Ape),i=n.longitude-Rv.longitude,o=n.latitude-Rv.latitude;n=de.center(t.rectangle,Ape);let r=n.longitude-Rv.longitude,s=n.latitude-Rv.latitude;return i*i+o*o-(r*r+s*s)}var Snt=new h,Lv=[];function Cnt(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!d(e._levelZeroTiles)){let x=r.tilingScheme;if(d(x)){let _=r.tilingScheme;e._levelZeroTiles=Cv.createLevelZeroTiles(_);let C=e._levelZeroTiles.length;if(Lv.length<C)for(Lv=new Array(C),o=0;o<C;++o)Lv[o]===void 0&&(Lv[o]=new Zv)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;Rv=t.camera.positionCartographic,a.sort(Tnt);let l=e._addHeightCallbacks,u=e._removeHeightCallbacks,m=t.frameNumber,p;if(l.length>0||u.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(m,l,u);l.length=0,u.length=0}let y=t.camera;e._cameraPositionCartographic=y.positionCartographic;let f=w.getTranslation(y.transform,Snt);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(f,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?Va(e,s,r,t,c,!1,Lv[o]):(v0(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=m}function v0(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function Zv(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function Npe(){this.southwest=new Zv,this.southeast=new Zv,this.northwest=new Zv,this.northeast=new Zv}Npe.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var PJ=new Array(31);for(let e=0;e<PJ.length;++e)PJ[e]=new Npe;function Vnt(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=Znt(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,l=n.northwestChild,u=n.northeastChild,m=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===m?n._lastSelectionResult:jn.NONE,y=e.tileProvider;if(s||i){let f=jn.originalResult(p)===jn.RENDERED,x=jn.originalResult(p)===jn.CULLED||p===jn.NONE,_=n.state===Fs.DONE,C=f||x||_;if(C||d(y.canRenderWithoutLosingDetail)&&(C=y.canRenderWithoutLosingDetail(n)),C){s&&v0(e,e._tileLoadQueueMedium,n,t),qU(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===jn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=jn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&v0(e,e._tileLoadQueueHigh,n,t)}if(y.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&l.upsampledFromParent&&u.upsampledFromParent){qU(e,n),v0(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(l),e._tileReplacementQueue.markTileRendered(u),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===jn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=jn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=jn.REFINED;let x=e._tilesToRender.length,_=e._tileLoadQueueLow.length,C=e._tileLoadQueueMedium.length,V=e._tileLoadQueueHigh.length,L=e._tileToUpdateHeights.length;if(Lnt(e,a,c,l,u,t,i,o),x!==e._tilesToRender.length){let Z=o.allAreRenderable,G=o.anyWereRenderedLastFrame,X=o.notYetRenderableCount,P=!1;if(!Z&&!G){let v=e._tilesToRender;for(let M=x;M<v.length;++M){let b=v[M];for(;b!==void 0&&b._lastSelectionResult!==jn.KICKED&&b!==n;)b._lastSelectionResult=jn.kick(b._lastSelectionResult),b=b.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=L,qU(e,n),n._lastSelectionResult=jn.RENDERED;let A=p===jn.RENDERED;!A&&X>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=_,e._tileLoadQueueMedium.length=C,e._tileLoadQueueHigh.length=V,v0(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,P=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=A,A||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!P&&v0(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=jn.RENDERED,qU(e,n),v0(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===jn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Lnt(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,l=e._tileProvider,u=e._occluders,m=PJ[t.level],p=m.southwest,y=m.southeast,f=m.northwest,x=m.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Va(e,t,l,r,u,s,p),Va(e,n,l,r,u,s,y),Va(e,i,l,r,u,s,f),Va(e,o,l,r,u,s,x)):(Va(e,i,l,r,u,s,f),Va(e,t,l,r,u,s,p),Va(e,o,l,r,u,s,x),Va(e,n,l,r,u,s,y)):c.latitude<t.rectangle.north?(Va(e,n,l,r,u,s,y),Va(e,t,l,r,u,s,p),Va(e,o,l,r,u,s,x),Va(e,i,l,r,u,s,f)):(Va(e,o,l,r,u,s,x),Va(e,i,l,r,u,s,f),Va(e,n,l,r,u,s,y),Va(e,t,l,r,u,s,p)),m.combine(a)}function Rnt(e,t){let n=t.rectangle;return d(e._cameraPositionCartographic)&&de.contains(n,e._cameraPositionCartographic)||d(e._cameraReferenceFrameOriginCartographic)&&de.contains(n,e._cameraReferenceFrameOriginCartographic)}function Va(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==sr.NONE)return Vnt(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,Rnt(e,t)){(!d(t.data)||!d(t.data.vertexArray))&&v0(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:jn.NONE;c!==jn.CULLED_BUT_NEEDED&&c!==jn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=jn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(v0(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=jn.CULLED):t._lastSelectionResult=jn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Znt(e,t,n){if(t.mode===ie.SCENE2D||t.camera.frustum instanceof en||t.camera.frustum instanceof yr)return Gnt(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=W.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function Gnt(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;d(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,l=e._tileProvider.getLevelMaximumGeometricError(n.level),u=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),m=l/u;return t.fog.enabled&&t.mode!==ie.SCENE2D&&(m-=W.fog(n._distance,t.fog.density)*t.fog.sse),m/=t.pixelRatio,m}function qU(e,t){e._tilesToRender.push(t)}function Ent(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=gi()+e._loadQueueTimeSlice,s=e._tileProvider,a=IJ(e,t,s,r,n,!1);a=IJ(e,t,s,r,i,a),IJ(e,t,s,r,o,a)}function Xnt(e,t){return e._loadPriority-t._loadPriority}function IJ(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(Xnt);for(let s=0,a=o.length;s<a&&(gi()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var rV=new Sn,WJ=new he,Dy=new h,Int=[];function Wnt(e,t){if(!d(e.tileProvider.tilingScheme))return;let n=Int;n.length=0;let i=e._tileToUpdateHeights,o=gi(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,l=e.tileProvider.tilingScheme.ellipsoid,u;for(;i.length>0;){let m=i[0];if(!d(m.data)||!d(m.data.mesh)){let x=m._lastSelectionResultFrame===e._lastSelectionFrameNumber?m._lastSelectionResult:jn.NONE;(x===jn.RENDERED||x===jn.CULLED_BUT_NEEDED)&&n.push(m),i.shift(),e._lastTileIndex=0;continue}let p=m.customData,y=p.length,f=!1;for(u=e._lastTileIndex;u<y;++u){let x=p[u],_=m.data.terrainData,C=d(_)&&_.wasCreatedByUpsampling();if(m.level>x.level&&!C){if(d(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,l)),a===ie.SCENE3D){let L=l.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,rV.direction),Z=l.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,rV.origin);if(!d(Z)){let G=0;d(m.data.tileBoundingRegion)&&(G=m.data.tileBoundingRegion.minimumHeight);let X=Math.min(G,-11500),P=h.multiplyByScalar(L,Math.abs(X)+1,Dy);h.subtract(x.positionOnEllipsoidSurface,P,rV.origin)}}else he.clone(x.positionCartographic,WJ),WJ.height=-11500,c.project(WJ,Dy),h.fromElements(Dy.z,Dy.x,Dy.y,Dy),h.clone(Dy,rV.origin),h.clone(h.UNIT_X,rV.direction);let V=m.data.pick(rV,a,c,!1,Dy);d(V)&&(d(x.callback)&&x.callback(V),x.level=m.level)}if(gi()>=s){f=!0;break}}if(f){e._lastTileIndex=u;break}else e._lastTileIndex=0,i.shift()}for(u=0;u<n.length;u++)i.push(n[u])}function Pnt(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var Gv=ku;function dh(e){e=g(e,re.WGS84);let t=new Cf({ellipsoid:e}),n=new Tv;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new rv,this._material=void 0,this._surface=new Gv({tileProvider:new xv({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new ye,this._undergroundColor=B.clone(B.BLACK),this._undergroundColorAlphaByDistance=new Pt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new _v,FJ(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new Ee({url:$t("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!0,this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=1e7,this.lightingFadeInDistance=2e7,this.nightFadeOutDistance=1e7,this.nightFadeInDistance=5e7,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=xn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(dh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return d(this._surface)?this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){d(e)||(e=de.clone(de.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),d(this._material)&&FJ(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,FJ(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=B.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Pt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function FJ(e){let t=[],n=d(e._material)&&(e._material.shaderSource.match(/slope/)||e._material.shaderSource.match("normalEC")),i=[Z0,k1];d(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(HP),e._surfaceShaderSet.baseVertexShaderSource=new Be({sources:[Z0,k1,zP],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new Be({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function vnt(e){return function(t,n){let i=ce.distanceSquaredTo(t.pickBoundingSphere,e),o=ce.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var Fnt=[],wnt={start:0,stop:0};dh.prototype.pickWorldCoordinates=function(e,t,n,i){n=g(n,!0);let o=t.mode,r=t.mapProjection,s=Fnt;s.length=0;let a=this._surface._tilesToRender,c=a.length,l,u;for(u=0;u<c;++u){l=a[u];let p=l.data;if(!d(p))continue;let y=p.pickBoundingSphere;if(o!==ie.SCENE3D)p.pickBoundingSphere=y=ce.fromRectangleWithHeights2D(l.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,y),h.fromElements(y.center.z,y.center.x,y.center.y,y.center);else if(d(p.renderedMesh))ce.clone(p.tileBoundingRegion.boundingSphere,y);else continue;let f=Si.raySphere(e,y,wnt);d(f)&&s.push(p)}s.sort(vnt(e.origin));let m;for(c=s.length,u=0;u<c&&(m=s[u].pick(e,t.mode,t.mapProjection,n,i),!d(m));++u);return m};var Ant=new he;dh.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),d(n)&&t.mode!==ie.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,Ant);n=t.globe.ellipsoid.cartographicToCartesian(i,n)}return n};var Mnt=new h,Upe=new h,Nnt=new he,Unt=new Sn;function vJ(e,t){return d(e)&&de.contains(e.rectangle,t)?e:void 0}dh.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!d(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!de.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;d(n);)n=vJ(n._southwestChild,e)||vJ(n._southeastChild,e)||vJ(n._northwestChild,e)||n._northeastChild,d(n)&&d(n.data)&&d(n.data.renderedMesh)&&(r=n);if(n=r,!d(n)||!d(n.data)||!d(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,Mnt),l=Unt,u=a.geodeticSurfaceNormal(c,l.direction),m=a.getSurfaceNormalIntersectionWithZAxis(c,11500,l.origin);if(!d(m)){let y;d(n.data.tileBoundingRegion)&&(y=n.data.tileBoundingRegion.minimumHeight);let f=Math.min(g(y,0),-11500),x=h.multiplyByScalar(u,Math.abs(f)+1,Upe);h.subtract(c,x,l.origin)}let p=n.data.pick(l,void 0,s,!1,Upe);if(d(p))return a.cartesianToCartographic(p,Nnt).height};dh.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};dh.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=this.showWaterEffect&&d(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(d(c)){let l=this;a.fetchImage().then(function(u){c===l._oceanNormalMapResource.url&&(l._oceanNormalMap=l._oceanNormalMap&&l._oceanNormalMap.destroy(),l._oceanNormalMap=new Wt({context:e.context,source:u}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===ie.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};dh.prototype.render=function(e){this.show&&(d(this._material)&&this._material.update(e.context),this._surface.render(e))};dh.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};dh.prototype.isDestroyed=function(){return!1};dh.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),ue(this)};var Ev=dh;var g_i=T(S(),1);var Pxi=T(S(),1);var Vxi=T(S(),1);var yxi=T(S(),1);function knt(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var Xv=knt;var e0e={},Dnt=32.184,Bnt=2451545,kpe=-.0529921,Dpe=-.1059842,Bpe=13.0120009,Ype=13.3407154,Ope=.9856003,Kpe=26.4057084,Hpe=13.064993,zpe=.3287146,Jpe=1.7484877,Qpe=-.1589763,jpe=.0036096,qpe=.1643573,$pe=12.9590088,wJ=new te;e0e.ComputeMoon=function(e,t){d(e)||(e=te.now()),wJ=te.addSeconds(e,Dnt,wJ);let n=te.totalDays(wJ)-Bnt,i=n/Qn.DAYS_PER_JULIAN_CENTURY,o=(125.045+kpe*n)*W.RADIANS_PER_DEGREE,r=(250.089+Dpe*n)*W.RADIANS_PER_DEGREE,s=(260.008+Bpe*n)*W.RADIANS_PER_DEGREE,a=(176.625+Ype*n)*W.RADIANS_PER_DEGREE,c=(357.529+Ope*n)*W.RADIANS_PER_DEGREE,l=(311.589+Kpe*n)*W.RADIANS_PER_DEGREE,u=(134.963+Hpe*n)*W.RADIANS_PER_DEGREE,m=(276.617+zpe*n)*W.RADIANS_PER_DEGREE,p=(34.226+Jpe*n)*W.RADIANS_PER_DEGREE,y=(15.134+Qpe*n)*W.RADIANS_PER_DEGREE,f=(119.743+jpe*n)*W.RADIANS_PER_DEGREE,x=(239.961+qpe*n)*W.RADIANS_PER_DEGREE,_=(25.053+$pe*n)*W.RADIANS_PER_DEGREE,C=Math.sin(o),V=Math.sin(r),L=Math.sin(s),Z=Math.sin(a),G=Math.sin(c),X=Math.sin(l),P=Math.sin(u),v=Math.sin(m),A=Math.sin(p),M=Math.sin(y),b=Math.sin(f),R=Math.sin(x),E=Math.sin(_),I=Math.cos(o),F=Math.cos(r),N=Math.cos(s),Y=Math.cos(a),k=Math.cos(c),O=Math.cos(l),U=Math.cos(u),J=Math.cos(m),z=Math.cos(p),ee=Math.cos(y),K=Math.cos(f),j=Math.cos(x),q=Math.cos(_),be=(269.9949+.0031*i-3.8787*C-.1204*V+.07*L-.0172*Z+.0072*X-.0052*M+.0043*E)*W.RADIANS_PER_DEGREE,Te=(66.5392+.013*i+1.5419*I+.0239*F-.0278*N+.0068*Y-.0029*O+9e-4*U+8e-4*ee-9e-4*q)*W.RADIANS_PER_DEGREE,ae=(38.3213+13.17635815*n-14e-13*n*n+3.561*C+.1208*V-.0642*L+.0158*Z+.0252*G-.0066*X-.0047*P-.0046*v+.0028*A+.0052*M+.004*b+.0019*R-.0044*E)*W.RADIANS_PER_DEGREE,xe=(13.17635815-14e-13*(2*n)+3.561*I*kpe+.1208*F*Dpe-.0642*N*Bpe+.0158*Y*Ype+.0252*k*Ope-.0066*O*Kpe-.0047*U*Hpe-.0046*J*zpe+.0028*z*Jpe+.0052*ee*Qpe+.004*K*jpe+.0019*j*qpe-.0044*q*$pe)/86400*W.RADIANS_PER_DEGREE;return d(t)||(t=new Xv),t.rightAscension=be,t.declination=Te,t.rotation=ae,t.rotationRate=xe,t};var Iv=e0e;function t0e(e){(!d(e)||typeof e!="function")&&(e=Iv.ComputeMoon),this._computeFunction=e}var Ynt=new h,Ont=new h,Knt=new h;function Hnt(e,t,n){let i=Ynt;i.x=Math.cos(e+W.PI_OVER_TWO),i.y=Math.sin(e+W.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=Knt;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,Ont);return d(n)||(n=new $),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var znt=new $,Jnt=new Ae;t0e.prototype.evaluate=function(e,t){d(e)||(e=te.now());let n=this._computeFunction(e),i=Hnt(n.rightAscension,n.declination,t),o=W.zeroToTwoPi(n.rotation),r=Ae.fromAxisAngle(h.UNIT_Z,o,Jnt),s=$.fromQuaternion(Ae.conjugate(r,r),znt);return $.multiply(s,i,i)};var Wv=t0e;var i_i=T(S(),1);var AJ={position:0};function $U(e){e=g(e,g.EMPTY_OBJECT),this.center=h.clone(g(e.center,h.ZERO)),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new ce,this.modelMatrix=w.clone(g(e.modelMatrix,w.IDENTITY)),this._modelMatrix=new w,this._computedModelMatrix=new w,this.show=g(e.show,!0),this.material=g(e.material,ki.fromType(ki.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=g(e.debugShowBoundingVolume,!1),this.onlySunLighting=g(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=g(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new nt({owner:g(e._owner,this)}),this._pickCommand=new nt({owner:g(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function Qnt(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(d(t))return t;let n=cl.createGeometry(cl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:We.POSITION_ONLY}));return t=ni.fromGeometry({context:e,geometry:n,attributeLocations:AJ,bufferUsage:Ne.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}$U.prototype.update=function(e){if(!this.show||e.mode!==ie.SCENE3D||!d(this.center)||!d(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!d(this._rs)||i)&&(this._translucent=n,this._rs=De.fromCache({cull:{enabled:!0,face:yi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?un.ALPHA_BLEND:void 0})),d(this._va)||(this._va=Qnt(t));let o=!1,r=this.radii;if(!h.equals(this._radii,r)){h.clone(r,this._radii);let x=this._oneOverEllipsoidRadiiSquared;x.x=1/(r.x*r.x),x.y=1/(r.y*r.y),x.z=1/(r.z*r.z),o=!0}(!w.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(w.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),w.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(r),ce.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,l=this._useLogDepth!==c;this._useLogDepth=c;let u=this._colorCommand,m,p;(s||a||i||l)&&(m=new Be({sources:[U1]}),p=new Be({sources:[this.material.shaderSource,N1]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(m.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=Qt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:p,attributeLocations:AJ}),u.vertexArray=this._va,u.renderState=this._rs,u.shaderProgram=this._sp,u.uniformMap=xt(this._uniforms,this.material._uniforms),u.executeInClosestFrustum=n);let y=e.commandList,f=e.passes;if(f.render&&(u.boundingVolume=this._boundingSphere,u.debugShowBoundingVolume=this.debugShowBoundingVolume,u.modelMatrix=this._computedModelMatrix,u.pass=n?Re.TRANSLUCENT:Re.OPAQUE,y.push(u)),f.pick){let x=this._pickCommand;(!d(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!d(this._pickSP)||l)&&(m=new Be({sources:[U1]}),p=new Be({sources:[this.material.shaderSource,N1],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(m.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=Qt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:m,fragmentShaderSource:p,attributeLocations:AJ}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=xt(xt(this._uniforms,this._pickUniforms),this.material._uniforms),x.executeInClosestFrustum=n),x.boundingVolume=this._boundingSphere,x.modelMatrix=this._computedModelMatrix,x.pass=n?Re.TRANSLUCENT:Re.OPAQUE,y.push(x)}};$U.prototype.isDestroyed=function(){return!1};$U.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var Pv=$U;function vv(e){e=g(e,g.EMPTY_OBJECT);let t=e.textureUrl;d(t)||(t=$t("Assets/Textures/moonSmall.jpg")),this.show=g(e.show,!0),this.textureUrl=t,this._ellipsoid=g(e.ellipsoid,re.MOON),this.onlySunLighting=g(e.onlySunLighting,!0),this._ellipsoidPrimitive=new Pv({radii:this.ellipsoid.radii,material:ki.fromType(ki.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new Wv}Object.defineProperties(vv.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var ek=new $,jnt=new $,qnt=new h,tk=[];vv.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;d(vt.computeIcrfToFixedMatrix(n,ek))||vt.computeTemeToPseudoFixedMatrix(n,ek);let i=this._axes.evaluate(n,jnt);$.transpose(i,i),$.multiply(ek,i,i);let o=ab.computeMoonPositionInEarthInertialFrame(n,qnt);$.multiplyByVector(ek,o,o),w.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=tk,tk.length=0,t.update(e),e.commandList=r,tk.length===1?tk[0]:void 0};vv.prototype.isDestroyed=function(){return!1};vv.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var Fv=vv;var b2i=T(S(),1);var __i=T(S(),1);var MJ=[],NJ=[];function $nt(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=MJ,l=NJ,u,m;for(u=0;u<s;++u)c[u]=e[i+u];for(m=0;m<a;++m)l[m]=e[o+m+1];u=0,m=0;for(let p=i;p<=r;++p){let y=c[u],f=l[m];u<s&&(m>=a||t(y,f,n)<=0)?(e[p]=y,++u):m<a&&(e[p]=f,++m)}}function UJ(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);UJ(e,t,n,i,r),UJ(e,t,n,r+1,o),$nt(e,t,n,i,r,o)}function eit(e,t,n){let i=e.length,o=Math.ceil(i*.5);MJ.length=o,NJ.length=o,UJ(e,t,n,0,i-1),MJ.length=0,NJ.length=0}var F0=eit;var X_i=T(S(),1);function ac(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var nk=new h;Object.defineProperties(ac.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,nk),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=h.multiplyByScalar(t,n,nk);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,nk),nk)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});ac.fromBoundingSphere=function(e,t,n){return d(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new ac(e,t)};var i0e=new h;ac.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,i0e),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var tit=new h;ac.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,tit),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,i0e),o=this._occluderRadius-n;if(o=h.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),o*o+n*n>h.magnitudeSquared(i)):!1;if(o>0){i=h.subtract(t,this._cameraPosition,i);let r=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var nit=new h;ac.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return sr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,nit),o=this._occluderRadius-n,r=h.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return o*o+n*n<s?sr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?sr.FULL:sr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?sr.PARTIAL:sr.FULL))}}return sr.NONE};var ik=new h;ac.computeOccludeePoint=function(e,t,n){let i=h.clone(t),o=h.clone(e.center),r=e.radius,s=n.length,a=h.normalize(h.subtract(i,o,ik),ik),c=-h.dot(a,o),l=ac._anyRotationVector(o,a,c),u=ac._horizonToPlaneNormalDotProduct(e,a,c,l,n[0]);if(!u)return;let m;for(let y=1;y<s;++y){if(m=ac._horizonToPlaneNormalDotProduct(e,a,c,l,n[y]),!m)return;m<u&&(u=m)}if(u<.0017453283658983088)return;let p=r/u;return h.add(o,h.multiplyByScalar(a,p,ik),ik)};var iit=[];ac.computeOccludeePointFromRectangle=function(e,t){t=g(t,re.WGS84);let n=de.subsample(e,t,0,iit),i=ce.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return ac.computeOccludeePoint(new ce(o,t.minimumRadius),i.center,n)};var oit=new h;ac._anyRotationVector=function(e,t,n){let i=h.abs(t,oit),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new h,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,r),i),e,i),i)};var rit=new h;ac._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,rit);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>W.EPSILON13)return h.normalize(s,new h)}return o};var kJ=new h,sit=new h,ok=new h,n0e=new h;ac._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,kJ),s=h.clone(e.center,sit),a=e.radius,c=h.subtract(s,r,ok),l=h.magnitudeSquared(c),u=a*a;if(l<u)return!1;let m=l-u,p=Math.sqrt(m),f=1/Math.sqrt(l),_=p*f*p;c=h.normalize(c,c);let C=h.add(r,h.multiplyByScalar(c,_,n0e),n0e),V=Math.sqrt(m-_*_),L=this._rotationVector(s,t,n,r,i),Z=h.fromElements(L.x*L.x*c.x+(L.x*L.y-L.z)*c.y+(L.x*L.z+L.y)*c.z,(L.x*L.y+L.z)*c.x+L.y*L.y*c.y+(L.y*L.z-L.x)*c.z,(L.x*L.z-L.y)*c.x+(L.y*L.z+L.x)*c.y+L.z*L.z*c.z,kJ);Z=h.normalize(Z,Z);let G=h.multiplyByScalar(Z,V,kJ);L=h.normalize(h.subtract(h.add(C,G,ok),s,ok),ok);let X=h.dot(t,L);L=h.normalize(h.subtract(h.subtract(C,G,L),s,L),L);let P=h.dot(t,L);return X<P?X:P};var wv=ac;var O_i=T(S(),1);var N_i=T(S(),1);function Rf(e){e=g(e,g.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=g(e.near,1),this._near=this.near,this.far=g(e.far,5e8),this._far=this.far,this._cullingVolume=new Qr,this._perspectiveMatrix=new w,this._infinitePerspective=new w}function DJ(e){let t=e.top,n=e.bottom,i=e.right,o=e.left,r=e.near,s=e.far;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=w.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=w.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(Rf.prototype,{projectionMatrix:{get:function(){return DJ(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return DJ(this),this._infinitePerspective}}});var ait=new h,cit=new h,lit=new h,dit=new h;Rf.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,l=this.far,u=h.cross(t,n,ait),m=cit;h.multiplyByScalar(t,c,m),h.add(e,m,m);let p=lit;h.multiplyByScalar(t,l,p),h.add(e,p,p);let y=dit;h.multiplyByScalar(u,a,y),h.add(m,y,y),h.subtract(y,e,y),h.normalize(y,y),h.cross(y,n,y),h.normalize(y,y);let f=i[0];return d(f)||(f=i[0]=new se),f.x=y.x,f.y=y.y,f.z=y.z,f.w=-h.dot(y,e),h.multiplyByScalar(u,s,y),h.add(m,y,y),h.subtract(y,e,y),h.cross(n,y,y),h.normalize(y,y),f=i[1],d(f)||(f=i[1]=new se),f.x=y.x,f.y=y.y,f.z=y.z,f.w=-h.dot(y,e),h.multiplyByScalar(n,r,y),h.add(m,y,y),h.subtract(y,e,y),h.cross(u,y,y),h.normalize(y,y),f=i[2],d(f)||(f=i[2]=new se),f.x=y.x,f.y=y.y,f.z=y.z,f.w=-h.dot(y,e),h.multiplyByScalar(n,o,y),h.add(m,y,y),h.subtract(y,e,y),h.cross(y,u,y),h.normalize(y,y),f=i[3],d(f)||(f=i[3]=new se),f.x=y.x,f.y=y.y,f.z=y.z,f.w=-h.dot(y,e),f=i[4],d(f)||(f=i[4]=new se),f.x=t.x,f.y=t.y,f.z=t.z,f.w=-h.dot(t,m),h.negate(t,y),f=i[5],d(f)||(f=i[5]=new se),f.x=y.x,f.y=y.y,f.z=y.z,f.w=-h.dot(y,p),this._cullingVolume};Rf.prototype.getPixelDimensions=function(e,t,n,i,o){DJ(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};Rf.prototype.clone=function(e){return d(e)||(e=new Rf),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};Rf.prototype.equals=function(e){return d(e)&&e instanceof Rf&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Rf.prototype.equalsEpsilon=function(e,t,n){return e===this||d(e)&&e instanceof Rf&&W.equalsEpsilon(this.right,e.right,t,n)&&W.equalsEpsilon(this.left,e.left,t,n)&&W.equalsEpsilon(this.top,e.top,t,n)&&W.equalsEpsilon(this.bottom,e.bottom,t,n)&&W.equalsEpsilon(this.near,e.near,t,n)&&W.equalsEpsilon(this.far,e.far,t,n)};var Kc=Rf;function Fl(e){e=g(e,g.EMPTY_OBJECT),this._offCenterFrustum=new Kc,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=g(e.near,1),this._near=this.near,this.far=g(e.far,5e8),this._far=this.far,this.xOffset=g(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=g(e.yOffset,0),this._yOffset=this.yOffset}Fl.packedLength=6;Fl.pack=function(e,t,n){return n=g(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};Fl.unpack=function(e,t,n){return t=g(t,0),d(n)||(n=new Fl),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function uh(e){let t=e._offCenterFrustum;(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset)&&(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}Object.defineProperties(Fl.prototype,{projectionMatrix:{get:function(){return uh(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return uh(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return uh(this),this._fovy}},sseDenominator:{get:function(){return uh(this),this._sseDenominator}},offCenterFrustum:{get:function(){return uh(this),this._offCenterFrustum}}});Fl.prototype.computeCullingVolume=function(e,t,n){return uh(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Fl.prototype.getPixelDimensions=function(e,t,n,i,o){return uh(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Fl.prototype.clone=function(e){return d(e)||(e=new Fl),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Fl.prototype.equals=function(e){return!d(e)||!(e instanceof Fl)?!1:(uh(this),uh(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Fl.prototype.equalsEpsilon=function(e,t,n){return!d(e)||!(e instanceof Fl)?!1:(uh(this),uh(e),W.equalsEpsilon(this.fov,e.fov,t,n)&&W.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var Ri=Fl;var iTi=T(S(),1);function Av(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(Av.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function uit(e,t,n){let i=t.createViewportQuadCommand(AP,{framebuffer:n,renderState:De.fromCache({viewport:new He(0,0,256,256)})});e._drawCommand=i}Av.prototype.update=function(e){if(!d(this._colorTexture)){let t=e.context,n=new Wt({context:t,width:256,height:256,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST});this._colorTexture=n;let i=new Us({context:t,colorTextures:[n],destroyAttachments:!1});uit(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};Av.prototype.isDestroyed=function(){return!1};Av.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var Mv=Av;var HTi=T(S(),1);var pTi=T(S(),1);var a0e={};function mit(e,t,n){let i,o,r;if(e instanceof Ri){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof Kc)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var hit=new h,o0e=new h;function c0e(e,t,n,i){if(d(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(l){let u=n(l);if(l<=.5){let p=(u-o)/a;return W.lerp(e,-W.PI_OVER_TWO,p)}let m=(u-r)/c;return W.lerp(-W.PI_OVER_TWO,t,1-m)}}return function(o){return W.lerp(e,t,o)}}function YJ(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!d(r)){let a=e.position,c=t,l=e.up,u=e.right,m=e.frustum,p=h.subtract(a,c,hit),y=h.magnitude(h.multiplyByScalar(l,h.dot(p,l),o0e)),f=h.magnitude(h.multiplyByScalar(u,h.dot(p,u),o0e));r=Math.min(mit(m,y,f)*.2,1e9)}if(s<r){let l=-Math.pow((r-n)*1e6,.125),u=Math.pow((r-i)*1e6,1/8);return function(m){let p=m*(u-l)+l;return-Math.pow(p,8)/1e6+r}}return function(a){return W.lerp(n,i,a)}}function Nv(e,t){return W.equalsEpsilon(e,W.TWO_PI,W.EPSILON11)&&(e=0),t>e+Math.PI?e+=W.TWO_PI:t<e-Math.PI&&(e-=W.TWO_PI),e}var l0e=new h;function fit(e,t,n,i,o,r,s,a){let c=e.camera,l=h.clone(c.position,l0e),u=c.pitch,m=Nv(c.heading,i),p=Nv(c.roll,r),y=YJ(c,n,l.z,n.z,s),f=c0e(u,o,y,a);function x(_){let C=_.time/t;c.setView({orientation:{heading:W.lerp(m,i,C),pitch:f(C),roll:W.lerp(p,r,C)}}),D.lerp(l,n,C,c.position),c.position.z=y(C)}return x}function pit(e,t){e.longitude<t.longitude?e.longitude+=W.TWO_PI:t.longitude+=W.TWO_PI}function bit(e,t){let n=e.longitude-t.longitude;n<-W.PI?e.longitude+=W.TWO_PI:n>W.PI&&(t.longitude+=W.TWO_PI)}var yit=new he,git=new he;function xit(e,t,n,i,o,r,s,a,c,l){let u=e.camera,p=e.mapProjection.ellipsoid,y=he.clone(u.positionCartographic,yit),f=u.pitch,x=Nv(u.heading,i),_=Nv(u.roll,r),C=p.cartesianToCartographic(n,git);y.longitude=W.zeroToTwoPi(y.longitude),C.longitude=W.zeroToTwoPi(C.longitude);let V=!1;if(d(a)){let X=W.zeroToTwoPi(a),P=Math.min(y.longitude,C.longitude),v=Math.max(y.longitude,C.longitude),A=X>=P&&X<=v;if(d(c)){let M=Math.abs(y.longitude-C.longitude),b=W.TWO_PI-M;(A?M:b)<(A?b:M)*c&&!A&&(V=!0)}else A||(V=!0)}V?pit(y,C):bit(y,C);let L=YJ(u,n,y.height,C.height,s),Z=c0e(f,o,L,l);function G(){let X=y.longitude,P=C.longitude,v=y.latitude,A=C.latitude;return function(b){let R=b.time/t,E=h.fromRadians(W.lerp(X,P,R),W.lerp(v,A,R),L(R),p);u.setView({destination:E,orientation:{heading:W.lerp(x,i,R),pitch:Z(R),roll:W.lerp(_,r,R)}})}}return G()}function _it(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,l0e),l=Nv(a.heading,i),u=a.frustum.right-a.frustum.left,m=YJ(a,n,u,n.z,s);function p(y){let f=y.time/t;a.setView({orientation:{heading:W.lerp(l,i,f)}}),D.lerp(c,n,f,a.position);let x=m(f),_=a.frustum,C=_.top/_.right,V=(x-(_.right-_.left))*.5;_.right+=V,_.left-=V,_.top=C*_.right,_.bottom=-_.top}return p}var r0e=new he,Tit=new h;function BJ(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function s0e(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}a0e.createTween=function(e,t){t=g(t,g.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ie.MORPHING)return BJ();let o=g(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,l=t.flyOverLongitudeWeight,u=t.pitchAdjustHeight,m=t.easingFunction;o&&i!==ie.SCENE3D&&(s.cartesianToCartographic(n,r0e),n=r.project(r0e,Tit));let p=e.camera,y=t.endTransform;d(y)&&p._setTransform(y);let f=t.duration;d(f)||(f=Math.ceil(h.distance(p.position,n)/1e6)+2,f=Math.min(f,3));let x=g(t.heading,0),_=g(t.pitch,-W.PI_OVER_TWO),C=g(t.roll,0),V=e.screenSpaceCameraController;V.enableInputs=!1;let L=s0e(V,t.complete),Z=s0e(V,t.cancel),G=p.frustum,X=e.mode===ie.SCENE2D;if(X=X&&D.equalsEpsilon(p.position,n,W.EPSILON6),X=X&&W.equalsEpsilon(Math.max(G.right-G.left,G.top-G.bottom),n.z,W.EPSILON6),X=X||e.mode!==ie.SCENE2D&&h.equalsEpsilon(n,p.position,W.EPSILON10),X=X&&W.equalsEpsilon(W.negativePiToPi(x),W.negativePiToPi(p.heading),W.EPSILON10)&&W.equalsEpsilon(W.negativePiToPi(_),W.negativePiToPi(p.pitch),W.EPSILON10)&&W.equalsEpsilon(W.negativePiToPi(C),W.negativePiToPi(p.roll),W.EPSILON10),X)return BJ(L,Z);let P=new Array(4);if(P[ie.SCENE2D]=_it,P[ie.SCENE3D]=xit,P[ie.COLUMBUS_VIEW]=fit,f<=0)return BJ(function(){P[i](e,1,n,x,_,C,a,c,l,u)({time:1}),typeof L=="function"&&L()},Z);let v=P[i](e,f,n,x,_,C,a,c,l,u);if(!d(m)){let A=p.positionCartographic.height,M=i===ie.SCENE3D?s.cartesianToCartographic(n).height:n.z;A>M&&A>11500?m=Ir.CUBIC_OUT:m=Ir.QUINTIC_IN_OUT}return{duration:f,easingFunction:m,startObject:{time:0},stopObject:{time:f},update:v,complete:L,cancel:Z}};var Uv=a0e;var yTi=T(S(),1),Sit={ROTATE:0,INFINITE_SCROLL:1},wl=Object.freeze(Sit);function jt(e){this._scene=e,this._transform=w.clone(w.IDENTITY),this._invTransform=w.clone(w.IDENTITY),this._actualTransform=w.clone(w.IDENTITY),this._actualInvTransform=w.clone(w.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new he,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new Ri,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=W.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new ye,this._moveEnd=new ye,this._changed=new ye,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this.percentageChanged=.5,this._viewMatrix=new w,this._invViewMatrix=new w,y0e(this),this._mode=ie.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new he(Math.PI,W.PI_OVER_TWO)),this._max2Dfrustum=void 0,E0e(this,jt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*jt.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}jt.TRANSFORM_2D=new w(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);jt.TRANSFORM_2D_INVERSE=w.inverseTransformation(jt.TRANSFORM_2D,new w);jt.DEFAULT_VIEW_RECTANGLE=de.fromDegrees(-95,-20,-70,90);jt.DEFAULT_VIEW_FACTOR=.5;jt.DEFAULT_OFFSET=new Pu(0,-W.PI_OVER_FOUR,0);function y0e(e){w.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),w.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),w.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function Cit(e){if(!d(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=gi()):e.timeSinceMoved=Math.max(gi()-e._lastMovedTimestamp,0)/1e3}}jt.prototype.canPreloadFlight=function(){return d(this._currentFlight)&&this._mode!==ie.SCENE2D};jt.prototype._updateCameraChanged=function(){let e=this;if(Cit(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;d(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%W.TWO_PI;i=i>W.PI?W.TWO_PI-i:i;let o=i/Math.PI;if(o>t&&(e._changed.raiseEvent(o),e._changedHeading=n),e._mode===ie.SCENE2D){if(!d(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let l=e.position,u=e._changedPosition,m=e.frustum,p=e._changedFrustum,y=l.x+m.left,f=l.x+m.right,x=u.x+p.left,_=u.x+p.right,C=l.y+m.bottom,V=l.y+m.top,L=u.y+p.bottom,Z=u.y+p.top,G=Math.max(y,x),X=Math.min(f,_),P=Math.max(C,L),v=Math.min(V,Z),A;if(G>=X||P>=V)A=1;else{let M=p;y<x&&f>_&&C<L&&V>Z&&(M=m),A=1-(X-G)*(v-P)/((M.right-M.left)*(M.top-M.bottom))}A>t&&(e._changed.raiseEvent(A),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!d(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let r=W.acosClamped(h.dot(e.directionWC,e._changedDirection)),s;d(e.frustum.fovy)?s=r/(e.frustum.fovy*.5):s=r;let c=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(s>t||c>t)&&(e._changed.raiseEvent(Math.max(s,c)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function Vit(e){vt.basisTo2D(e._projection,e._transform,e._actualTransform)}var Lit=new he,Rit=new h,rk=new h,Zit=new se,Git=new se,Eit=new se,Xit=new se,Iit=new se;function Wit(e){let t=e._projection,n=t.ellipsoid,i=w.getColumn(e._transform,3,Zit),o=n.cartesianToCartographic(i,Lit),r=t.project(o,Rit),s=Git;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=se.clone(se.UNIT_X,Iit),c=se.add(w.getColumn(e._transform,0,rk),i,rk);n.cartesianToCartographic(c,o),t.project(o,r);let l=Eit;l.x=r.z,l.y=r.x,l.z=r.y,l.w=0,h.subtract(l,s,l),l.x=0;let u=Xit;if(h.magnitudeSquared(l)>W.EPSILON10)h.cross(a,l,u);else{let m=se.add(w.getColumn(e._transform,1,rk),i,rk);n.cartesianToCartographic(m,o),t.project(o,r),u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,h.subtract(u,s,u),u.x=0,h.magnitudeSquared(u)<W.EPSILON10&&(se.clone(se.UNIT_Y,l),se.clone(se.UNIT_Z,u))}h.cross(u,a,l),h.normalize(l,l),h.cross(a,l,u),h.normalize(u,u),w.setColumn(e._actualTransform,0,l,e._actualTransform),w.setColumn(e._actualTransform,1,u,e._actualTransform),w.setColumn(e._actualTransform,2,a,e._actualTransform),w.setColumn(e._actualTransform,3,s,e._actualTransform)}var OJ=new h;function lc(e){let t=e._mode,n=!1,i=0;t===ie.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!h.equals(o,e.position)||n;r&&(o=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,l=!h.equals(c,e.up);l&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let u=e._right,m=!h.equals(u,e.right);m&&(h.normalize(e.right,e.right),u=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(w.inverseTransformation(e._transform,e._invTransform),e._mode===ie.COLUMBUS_VIEW||e._mode===ie.SCENE2D?w.equals(w.IDENTITY,e._transform)?w.clone(jt.TRANSFORM_2D,e._actualTransform):e._mode===ie.COLUMBUS_VIEW?Vit(e):Wit(e):w.clone(e._transform,e._actualTransform),w.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let y=e._actualTransform;if(r||p)if(e._positionWC=w.multiplyByPoint(y,o,e._positionWC),t===ie.SCENE3D||t===ie.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let f=OJ;f.x=e._positionWC.y,f.y=e._positionWC.z,f.z=e._positionWC.x,t===ie.SCENE2D&&(f.z=i),e._projection.unproject(f,e._positionCartographic)}if(a||l||m){let f=h.dot(s,h.cross(c,u,OJ));if(Math.abs(1-f)>W.EPSILON2){let x=1/h.magnitudeSquared(c),_=h.dot(c,s)*x,C=h.multiplyByScalar(s,_,OJ);c=h.normalize(h.subtract(c,C,e._up),e._up),h.clone(c,e.up),u=h.cross(s,c,e._right),h.clone(u,e.right)}}(a||p)&&(e._directionWC=w.multiplyByPointAsVector(y,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(l||p)&&(e._upWC=w.multiplyByPointAsVector(y,c,e._upWC),h.normalize(e._upWC,e._upWC)),(m||p)&&(e._rightWC=w.multiplyByPointAsVector(y,u,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||l||m||p)&&y0e(e)}function g0e(e,t){let n;return W.equalsEpsilon(Math.abs(e.z),1,W.EPSILON3)?n=Math.atan2(t.y,t.x)-W.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-W.PI_OVER_TWO,W.TWO_PI-W.zeroToTwoPi(n)}function x0e(e){return W.PI_OVER_TWO-W.acosClamped(e.z)}function _0e(e,t,n){let i=0;return W.equalsEpsilon(Math.abs(e.z),1,W.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=W.zeroToTwoPi(i+W.TWO_PI)),i}var ck=new w,lk=new w;Object.defineProperties(jt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return lc(this),this._invTransform}},viewMatrix:{get:function(){return lc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return lc(this),this._invViewMatrix}},positionCartographic:{get:function(){return lc(this),this._positionCartographic}},positionWC:{get:function(){return lc(this),this._positionWC}},directionWC:{get:function(){return lc(this),this._directionWC}},upWC:{get:function(){return lc(this),this._upWC}},rightWC:{get:function(){return lc(this),this._rightWC}},heading:{get:function(){if(this._mode!==ie.MORPHING){let e=this._projection.ellipsoid,t=w.clone(this._transform,ck),n=vt.eastNorthUpToFixedFrame(this.positionWC,e,lk);this._setTransform(n);let i=g0e(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ie.MORPHING){let e=this._projection.ellipsoid,t=w.clone(this._transform,ck),n=vt.eastNorthUpToFixedFrame(this.positionWC,e,lk);this._setTransform(n);let i=x0e(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ie.MORPHING){let e=this._projection.ellipsoid,t=w.clone(this._transform,ck),n=vt.eastNorthUpToFixedFrame(this.positionWC,e,lk);this._setTransform(n);let i=_0e(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});jt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ie.MORPHING,t=this._mode===ie.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===ie.SCENE2D&&V0e(this,this.position)};var Pit=new h,vit=new h,Fit=new h;jt.prototype._setTransform=function(e){let t=h.clone(this.positionWC,Pit),n=h.clone(this.upWC,vit),i=h.clone(this.directionWC,Fit);w.clone(e,this._transform),this._transformChanged=!0,lc(this);let o=this._actualInvTransform;w.multiplyByPoint(o,t,this.position),w.multiplyByPointAsVector(o,i,this.direction),w.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),lc(this)};var wit=new D,Ait=new Sn,Mit=new h,Nit=new h;function T0e(e){if(!w.equals(w.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=wit;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(d(n)){let a=e.getPickRay(i,Ait);o=n.pickWorldCoordinates(a,t,!0,Mit)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,Nit));let s;if(d(o)||d(r)){let a=d(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=d(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}jt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof en&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=T0e(this)))};var dk=new h,QJ=new w,Uit=new w,jJ=new Ae,qJ=new $,S0e=new he;function kit(e,t,n){let i=w.clone(e.transform,QJ),o=vt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,Uit);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-W.PI_OVER_TWO;let r=Ae.fromHeadingPitchRoll(n,jJ),s=$.fromQuaternion(r,qJ);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function Dit(e,t,n,i){let o=w.clone(e.transform,QJ);if(e._setTransform(w.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,S0e);t=a.project(c,dk)}h.clone(t,e.position)}n.heading=n.heading-W.PI_OVER_TWO;let r=Ae.fromHeadingPitchRoll(n,jJ),s=$.fromQuaternion(r,qJ);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function Bit(e,t,n,i){let o=w.clone(e.transform,QJ);if(e._setTransform(w.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,l=c.ellipsoid.cartesianToCartographic(t,S0e);t=c.project(l,dk)}D.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===wl.ROTATE){n.heading=n.heading-W.PI_OVER_TWO,n.pitch=-W.PI_OVER_TWO,n.roll=0;let r=Ae.fromHeadingPitchRoll(n,jJ),s=$.fromQuaternion(r,qJ);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var Yit=new h,Oit=new h,Kit=new h;function C0e(e,t,n,i){let o=h.clone(n.direction,Yit),r=h.clone(n.up,Oit);if(e._scene.mode===ie.SCENE3D){let a=e._projection.ellipsoid,c=vt.eastNorthUpToFixedFrame(t,a,ck),l=w.inverseTransformation(c,lk);w.multiplyByPointAsVector(l,o,o),w.multiplyByPointAsVector(l,r,r)}let s=h.cross(o,r,Kit);return i.heading=g0e(o,r),i.pitch=x0e(o),i.roll=_0e(o,r,s),i}var JJ={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},sV=new Aa;jt.prototype.setView=function(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.orientation,g.EMPTY_OBJECT),n=this._mode;if(n===ie.MORPHING)return;d(e.endTransform)&&this._setTransform(e.endTransform);let i=g(e.convert,!0),o=g(e.destination,h.clone(this.positionWC,dk));d(o)&&d(o.west)&&(o=this.getRectangleCameraCoordinates(o,dk),i=!1),d(t.direction)&&(t=C0e(this,o,t,JJ.orientation)),sV.heading=g(t.heading,0),sV.pitch=g(t.pitch,-W.PI_OVER_TWO),sV.roll=g(t.roll,0),n===ie.SCENE3D?kit(this,o,sV):n===ie.SCENE2D?Bit(this,o,sV,i):Dit(this,o,sV,i)};var Hit=new h;jt.prototype.flyHome=function(e){let t=this._mode;if(t===ie.MORPHING&&this._scene.completeMorph(),t===ie.SCENE2D)this.flyTo({destination:jt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:w.IDENTITY});else if(t===ie.SCENE3D){let n=this.getRectangleCameraCoordinates(jt.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*jt.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:w.IDENTITY})}else if(t===ie.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,Hit).z),roll:0},endTransform:w.IDENTITY,convert:!1})}};jt.prototype.worldToCameraCoordinates=function(e,t){return d(t)||(t=new se),lc(this),w.multiplyByVector(this._actualInvTransform,e,t)};jt.prototype.worldToCameraCoordinatesPoint=function(e,t){return d(t)||(t=new h),lc(this),w.multiplyByPoint(this._actualInvTransform,e,t)};jt.prototype.worldToCameraCoordinatesVector=function(e,t){return d(t)||(t=new h),lc(this),w.multiplyByPointAsVector(this._actualInvTransform,e,t)};jt.prototype.cameraToWorldCoordinates=function(e,t){return d(t)||(t=new se),lc(this),w.multiplyByVector(this._actualTransform,e,t)};jt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return d(t)||(t=new h),lc(this),w.multiplyByPoint(this._actualTransform,e,t)};jt.prototype.cameraToWorldCoordinatesVector=function(e,t){return d(t)||(t=new h),lc(this),w.multiplyByPointAsVector(this._actualTransform,e,t)};function V0e(e,t){let n=e._scene.mapMode2D===wl.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var d0e=new h;jt.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,d0e),h.add(n,d0e,n),this._mode===ie.SCENE2D&&V0e(this,n),this._adjustOrthographicFrustum(!0)};jt.prototype.moveForward=function(e){e=g(e,this.defaultMoveAmount),this._mode===ie.SCENE2D?uk(this,e):this.move(this.direction,e)};jt.prototype.moveBackward=function(e){e=g(e,this.defaultMoveAmount),this._mode===ie.SCENE2D?uk(this,-e):this.move(this.direction,-e)};jt.prototype.moveUp=function(e){e=g(e,this.defaultMoveAmount),this.move(this.up,e)};jt.prototype.moveDown=function(e){e=g(e,this.defaultMoveAmount),this.move(this.up,-e)};jt.prototype.moveRight=function(e){e=g(e,this.defaultMoveAmount),this.move(this.right,e)};jt.prototype.moveLeft=function(e){e=g(e,this.defaultMoveAmount),this.move(this.right,-e)};jt.prototype.lookLeft=function(e){e=g(e,this.defaultLookAmount),this._mode!==ie.SCENE2D&&this.look(this.up,-e)};jt.prototype.lookRight=function(e){e=g(e,this.defaultLookAmount),this._mode!==ie.SCENE2D&&this.look(this.up,e)};jt.prototype.lookUp=function(e){e=g(e,this.defaultLookAmount),this._mode!==ie.SCENE2D&&this.look(this.right,-e)};jt.prototype.lookDown=function(e){e=g(e,this.defaultLookAmount),this._mode!==ie.SCENE2D&&this.look(this.right,e)};var zit=new Ae,Jit=new $;jt.prototype.look=function(e,t){let n=g(t,this.defaultLookAmount),i=Ae.fromAxisAngle(e,-n,zit),o=$.fromQuaternion(i,Jit),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};jt.prototype.twistLeft=function(e){e=g(e,this.defaultLookAmount),this.look(this.direction,e)};jt.prototype.twistRight=function(e){e=g(e,this.defaultLookAmount),this.look(this.direction,-e)};var Qit=new Ae,jit=new $;jt.prototype.rotate=function(e,t){let n=g(t,this.defaultRotateAmount),i=Ae.fromAxisAngle(e,-n,Qit),o=$.fromQuaternion(i,jit);$.multiplyByVector(o,this.position,this.position),$.multiplyByVector(o,this.direction,this.direction),$.multiplyByVector(o,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};jt.prototype.rotateDown=function(e){e=g(e,this.defaultRotateAmount),L0e(this,e)};jt.prototype.rotateUp=function(e){e=g(e,this.defaultRotateAmount),L0e(this,-e)};var qit=new h,$it=new h,eot=new h,u0e=new h;function L0e(e,t){let n=e.position;if(d(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,W.EPSILON2)){let i=h.normalize(n,qit),o=h.equalsEpsilon(i,e.constrainedAxis,W.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,u0e),W.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,$it),a=h.dot(i,s),c=W.acosClamped(a);t>0&&t>c&&(t=c-W.EPSILON4),a=h.dot(i,h.negate(s,u0e)),c=W.acosClamped(a),t<0&&-t>c&&(t=-c+W.EPSILON4);let l=h.cross(s,i,eot);e.rotate(l,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}jt.prototype.rotateRight=function(e){e=g(e,this.defaultRotateAmount),R0e(this,-e)};jt.prototype.rotateLeft=function(e){e=g(e,this.defaultRotateAmount),R0e(this,e)};function R0e(e,t){d(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function uk(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===wl.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===wl.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function Z0e(e,t){e.move(e.direction,t)}jt.prototype.zoomIn=function(e){e=g(e,this.defaultZoomAmount),this._mode===ie.SCENE2D?uk(this,e):Z0e(this,e)};jt.prototype.zoomOut=function(e){e=g(e,this.defaultZoomAmount),this._mode===ie.SCENE2D?uk(this,-e):Z0e(this,-e)};jt.prototype.getMagnitude=function(){if(this._mode===ie.SCENE3D)return h.magnitude(this.position);if(this._mode===ie.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ie.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var tot=new w;jt.prototype.lookAt=function(e,t){let n=vt.eastNorthUpToFixedFrame(e,re.WGS84,tot);this.lookAtTransform(n,t)};var not=new h,iot=new Ae,oot=new Ae,rot=new $;function G0e(e,t,n){t=W.clamp(t,-W.PI_OVER_TWO,W.PI_OVER_TWO),e=W.zeroToTwoPi(e)-W.PI_OVER_TWO;let i=Ae.fromAxisAngle(h.UNIT_Y,-t,iot),o=Ae.fromAxisAngle(h.UNIT_Z,-e,oot),r=Ae.multiply(o,i,o),s=$.fromQuaternion(r,rot),a=h.clone(h.UNIT_X,not);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}jt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!d(t))return;let n;if(d(t.heading)?n=G0e(t.heading,t.pitch,t.range):n=t,this._mode===ie.SCENE2D){D.clone(D.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<W.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(w.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<W.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var kv=new he,sot=new he,aot=new h,cot=new h,lot=new h,dot=new h,uot=new h,mot=new h,hot=new h,KJ=new h,fot={direction:new h,right:new h,up:new h},m0e;function cc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function E0e(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:fot,s=t.north,a=t.south,c=t.east,l=t.west;l>c&&(c+=W.TWO_PI);let u=(l+c)*.5,m;if(a<-W.PI_OVER_TWO+W.RADIANS_PER_DEGREE&&s>W.PI_OVER_TWO-W.RADIANS_PER_DEGREE)m=0;else{let A=kv;A.longitude=u,A.latitude=s,A.height=0;let M=sot;M.longitude=u,M.latitude=a,M.height=0;let b=m0e;(!d(b)||b.ellipsoid!==o)&&(m0e=b=new eu(void 0,void 0,o)),b.setEndPoints(A,M),m=b.interpolateUsingFraction(.5,kv).latitude}let p=kv;p.longitude=u,p.latitude=m,p.height=0;let y=o.cartographicToCartesian(p,hot),f=kv;f.longitude=c,f.latitude=s;let x=o.cartographicToCartesian(f,aot);f.longitude=l;let _=o.cartographicToCartesian(f,lot);f.longitude=u;let C=o.cartographicToCartesian(f,uot);f.latitude=a;let V=o.cartographicToCartesian(f,mot);f.longitude=c;let L=o.cartographicToCartesian(f,dot);f.longitude=l;let Z=o.cartographicToCartesian(f,cot);h.subtract(_,y,_),h.subtract(L,y,L),h.subtract(x,y,x),h.subtract(Z,y,Z),h.subtract(C,y,C),h.subtract(V,y,V);let G=o.geodeticSurfaceNormal(y,r.direction);h.negate(G,G);let X=h.cross(G,h.UNIT_Z,r.right);h.normalize(X,X);let P=h.cross(X,G,r.up),v;if(e.frustum instanceof en){let A=Math.max(h.distance(x,_),h.distance(L,Z)),M=Math.max(h.distance(x,L),h.distance(_,Z)),b,R,E=e.frustum._offCenterFrustum,I=E.right/E.top,F=M*I;A>F?(b=A,R=b/I):(R=M,b=F),v=Math.max(b,R)}else{let A=Math.tan(e.frustum.fovy*.5),M=e.frustum.aspectRatio*A;if(v=Math.max(cc(G,P,_,A),cc(G,P,L,A),cc(G,P,x,A),cc(G,P,Z,A),cc(G,P,C,A),cc(G,P,V,A),cc(G,X,_,M),cc(G,X,L,M),cc(G,X,x,M),cc(G,X,Z,M),cc(G,X,C,M),cc(G,X,V,M)),a<0&&s>0){let b=kv;b.longitude=l,b.latitude=0,b.height=0;let R=o.cartographicToCartesian(b,KJ);h.subtract(R,y,R),v=Math.max(v,cc(G,P,R,A),cc(G,X,R,M)),b.longitude=c,R=o.cartographicToCartesian(b,KJ),h.subtract(R,y,R),v=Math.max(v,cc(G,P,R,A),cc(G,X,R,M))}}return h.add(y,h.multiplyByScalar(G,-v,KJ),n)}var pot=new he,bot=new h,yot=new h;function got(e,t,n){let i=e._projection;t.west>t.east&&(t=de.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=pot;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,bot);w.multiplyByPoint(o,a,a),w.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,yot);if(w.multiplyByPoint(o,c,c),w.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,d(e.frustum.fovy)){let l=Math.tan(e.frustum.fovy*.5),u=e.frustum.aspectRatio*l;n.z=Math.max((a.x-c.x)/u,(a.y-c.y)/l)*.5}else{let l=a.x-c.x,u=a.y-c.y;n.z=Math.max(l,u)}return n}var xot=new he,_ot=new h,Tot=new h;function Sot(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===wl.INFINITE_SCROLL?o+=W.TWO_PI:(t=de.MAX_VALUE,o=t.east));let r=xot;r.longitude=o,r.latitude=t.north;let s=i.project(r,_ot);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,Tot),c=Math.abs(s.x-a.x)*.5,l=Math.abs(s.y-a.y)*.5,u,m,p=e.frustum.right/e.frustum.top,y=l*p;return c>y?(u=c,m=u/p):(m=l,u=y),l=Math.max(2*u,2*m),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=l,n=i.project(r,n),n}jt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(d(t)||(t=new h),n===ie.SCENE3D)return E0e(this,e,t);if(n===ie.COLUMBUS_VIEW)return got(this,e,t);if(n===ie.SCENE2D)return Sot(this,e,t)};var Cot=new Sn;function Vot(e,t,n,i){n=g(n,re.WGS84);let o=e.getPickRay(t,Cot),r=Si.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return Sn.getPoint(o,s,i)}var Lot=new Sn;function Rot(e,t,n,i){let r=e.getPickRay(t,Lot).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-W.PI_OVER_TWO||s.latitude>W.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var Zot=new Sn;function Got(e,t,n,i){let o=e.getPickRay(t,Zot),r=-o.origin.x/o.direction.x;Sn.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-W.PI_OVER_TWO||s.latitude>W.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}jt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(d(n)||(n=new h),t=g(t,re.WGS84),this._mode===ie.SCENE3D)n=Vot(this,e,t,n);else if(this._mode===ie.SCENE2D)n=Rot(this,e,this._projection,n);else if(this._mode===ie.COLUMBUS_VIEW)n=Got(this,e,this._projection,n);else return;return n}};var Eot=new h,Xot=new h,Iot=new h;function Wot(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,l=2/o*t.x-1,u=2/r*(r-t.y)-1,m=e.positionWC;h.clone(m,n.origin);let p=h.multiplyByScalar(e.directionWC,c,Eot);h.add(m,p,p);let y=h.multiplyByScalar(e.rightWC,l*c*a,Xot),f=h.multiplyByScalar(e.upWC,u*c*s,Iot),x=h.add(p,y,n.direction);return h.add(x,f,x),h.subtract(x,m,x),h.normalize(x,x),n}var sk=new h;function Pot(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;d(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let l=2/r*(r-t.y)-1;l*=(s.top-s.bottom)*.5;let u=n.origin;return h.clone(e.position,u),h.multiplyByScalar(e.right,c,sk),h.add(sk,u,u),h.multiplyByScalar(e.up,l,sk),h.add(sk,u,u),h.clone(e.directionWC,n.direction),(e._mode===ie.COLUMBUS_VIEW||e._mode===ie.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}jt.prototype.getPickRay=function(e,t){d(t)||(t=new Sn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return d(i.aspectRatio)&&d(i.fov)&&d(i.near)?Wot(this,e,t):Pot(this,e,t)};var vot=new h,Fot=new h;jt.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,vot),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),Fot);return Math.max(0,h.magnitude(n)-e.radius)};var wot=new D;jt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,wot);return Math.max(o.x,o.y)};function Aot(e,t,n,i,o,r){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let l=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(l,e.position)}return{easingFunction:Ir.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var Mot=new h,h0e=new h,Not=new h,Uot=new h;function kot(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,Mot),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,h0e),h0e);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,Not);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,l=h.magnitude(h.subtract(n,s,Uot)),u=c*l,m=a*l,p=e._maxCoord.x,y=e._maxCoord.y,f=Math.max(u-p,p),x=Math.max(m-y,y);if(n.z<-f||n.z>f||n.y<-x||n.y>x){let _=s.y<-f||s.y>f,C=s.z<-x||s.z>x;if(_||C)return Aot(e,n,s,f,x,t)}}jt.prototype.createCorrectPositionTween=function(e){if(this._mode===ie.COLUMBUS_VIEW)return kot(this,e)};var Dot=new h,ws={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};jt.prototype.cancelFlight=function(){d(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};jt.prototype.completeFlight=function(){if(d(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=ws.destination,e.orientation.heading=ws.heading,e.orientation.pitch=ws.pitch,e.orientation.roll=ws.roll,this.setView(e),d(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};jt.prototype.flyTo=function(e){e=g(e,g.EMPTY_OBJECT);let t=e.destination;if(this._mode===ie.MORPHING)return;this.cancelFlight();let i=t instanceof de;i&&(t=this.getRectangleCameraCoordinates(t,Dot));let o=g(e.orientation,g.EMPTY_OBJECT);if(d(o.direction)&&(o=C0e(this,t,o,JJ.orientation)),d(e.duration)&&e.duration<=0){let u=JJ;u.destination=e.destination,u.orientation.heading=o.heading,u.orientation.pitch=o.pitch,u.orientation.roll=o.roll,u.convert=e.convert,u.endTransform=e.endTransform,this.setView(u),typeof e.complete=="function"&&e.complete();return}let r=this,s;ws.destination=t,ws.heading=o.heading,ws.pitch=o.pitch,ws.roll=o.roll,ws.duration=e.duration,ws.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),d(e.complete)&&e.complete()},ws.cancel=e.cancel,ws.endTransform=e.endTransform,ws.convert=i?!1:e.convert,ws.maximumHeight=e.maximumHeight,ws.pitchAdjustHeight=e.pitchAdjustHeight,ws.flyOverLongitude=e.flyOverLongitude,ws.flyOverLongitudeWeight=e.flyOverLongitudeWeight,ws.easingFunction=e.easingFunction;let a=this._scene,c=Uv.createTween(a,ws);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let l=this._scene.preloadFlightCamera;this._mode!==ie.SCENE2D&&(d(l)||(l=jt.clone(this)),l.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=l.frustum.computeCullingVolume(l.positionWC,l.directionWC,l.upWC))};function Bot(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function Yot(e,t){let n=e.frustum,i=n.offCenterFrustum;d(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var Oot=100;function X0e(e,t,n){n=Pu.clone(d(n)?n:jt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!d(r)||r===0){let s=t.radius;s===0?n.range=Oot:e.frustum instanceof en||e._mode===ie.SCENE2D?n.range=Yot(e,s):n.range=Bot(e,s),n.range=W.clamp(n.range,i,o)}return n}jt.prototype.viewBoundingSphere=function(e,t){t=X0e(this,e,t),this.lookAt(e.center,t)};var Kot=new w,Hot=new h,zot=new h,Jot=new h,Qot=new h,jot=new se,qot=new Ae,$ot=new $;jt.prototype.flyToBoundingSphere=function(e,t){t=g(t,g.EMPTY_OBJECT);let n=this._mode===ie.SCENE2D||this._mode===ie.COLUMBUS_VIEW;this._setTransform(w.IDENTITY);let i=X0e(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,Hot):o=G0e(i.heading,i.pitch,i.range);let r=vt.eastNorthUpToFixedFrame(e.center,re.WGS84,Kot);w.multiplyByPoint(r,o,o);let s,a;if(!n){if(s=h.subtract(e.center,o,zot),h.normalize(s,s),a=w.multiplyByPointAsVector(r,h.UNIT_Z,Jot),1-Math.abs(h.dot(s,a))<W.EPSILON6){let l=Ae.fromAxisAngle(s,i.heading,qot),u=$.fromQuaternion(l,$ot);h.fromCartesian4(w.getColumn(r,1,jot),a),$.multiplyByVector(u,a,a)}let c=h.cross(s,a,Qot);h.cross(c,s,a),h.normalize(a,a)}this.flyTo({destination:o,orientation:{direction:s,up:a},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var f0e=new h,p0e=new h,HJ=new h,b0e=new h,Dv=[new h,new h,new h,new h];function ert(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,f0e),r=h.magnitude(o),s=h.normalize(o,p0e),a,c;h.equalsEpsilon(s,h.UNIT_Z,W.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,HJ),HJ),c=h.normalize(h.cross(s,a,b0e),b0e));let l=Math.sqrt(h.magnitudeSquared(o)-1),u=h.multiplyByScalar(s,1/r,f0e),m=l/r,p=h.multiplyByScalar(a,m,p0e),y=h.multiplyByScalar(c,m,HJ),f=h.add(u,y,Dv[0]);h.subtract(f,p,f),h.multiplyComponents(n,f,f);let x=h.subtract(u,y,Dv[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let _=h.subtract(u,y,Dv[2]);h.add(_,p,_),h.multiplyComponents(n,_,_);let C=h.add(u,y,Dv[3]);return h.add(C,p,C),h.multiplyComponents(n,C,C),Dv}var zJ=new D,trt=new h,By=[new he,new he,new he,new he];function ak(e,t,n,i,o,r){zJ.x=e,zJ.y=t;let s=i.pickEllipsoid(zJ,o,trt);return d(s)?(By[n]=o.cartesianToCartographic(s,By[n]),1):(By[n]=o.cartesianToCartographic(r[n],By[n]),0)}jt.prototype.computeViewRectangle=function(e,t){e=g(e,re.WGS84);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new ce(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===qt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,l=ert(this,e);if(c+=ak(0,0,0,this,e,l),c+=ak(0,a,1,this,e,l),c+=ak(s,a,2,this,e,l),c+=ak(s,0,3,this,e,l),c<2)return de.MAX_VALUE;t=de.fromCartographicArray(By,t);let u=0,m=By[3].longitude;for(let p=0;p<4;++p){let y=By[p].longitude,f=Math.abs(y-m);f>W.PI?u+=W.TWO_PI-f:u+=f,m=y}return W.equalsEpsilon(Math.abs(u),W.TWO_PI,W.EPSILON9)&&(t.west=-W.PI,t.east=W.PI,By[0].latitude>=0?t.north=W.PI_OVER_TWO:t.south=-W.PI_OVER_TWO),t};jt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ie.SCENE2D||this.frustum instanceof Ri)return;let e=this._scene;this.frustum=new Ri,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=W.toRadians(60)};jt.prototype.switchToOrthographicFrustum=function(){if(this._mode===ie.SCENE2D||this.frustum instanceof en)return;let e=T0e(this),t=this._scene;this.frustum=new en,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};jt.clone=function(e,t){return d(t)||(t=new jt(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),w.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var co=jt;var JTi=T(S(),1);function nrt(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var Du=nrt;var iSi=T(S(),1);var F0e=T(Dl(),1),I0e=576,irt=100,Bv="#ffffff",$J="#48b";function w0e(e,t){this.credit=e,this.count=g(t,1)}function ort(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(St.equals(o,t))return!0}return!1}function rrt(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;St.equals(n,t)||(d(t)&&e._cesiumCreditContainer.removeChild(t.element),d(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var A0e="cesium-credit-delimiter";function W0e(e){let t=document.createElement("span");return t.textContent=e,t.className=A0e,t}function P0e(e,t){if(d(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function v0e(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(d(a)){if(r=s,d(n)&&(r*=2,s>0)){let l=r-1;if(o.length<=l)e.appendChild(W0e(n));else{let u=o[l];u.className!==A0e&&e.replaceChild(W0e(n),u)}}let c=a.element;if(o.length<=r)e.appendChild(P0e(c,i));else{let l=o[r];l._creditId!==a._id&&e.replaceChild(P0e(c,i),l)}}}for(++r;r<o.length;)e.removeChild(o[r])}function srt(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<I0e?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=I0e&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function dc(e,t){let n=`${e} {`;for(let i in t)t.hasOwnProperty(i)&&(n+=`${i}: ${t[i]}; `);return n+=` } +`,n}function art(e){let t="";t+=dc(".cesium-credit-lightbox-overlay",{display:"none","z-index":"1",position:"absolute",top:"0",left:"0",width:"100%",height:"100%","background-color":"rgba(80, 80, 80, 0.8)"}),t+=dc(".cesium-credit-lightbox",{"background-color":"#303336",color:Bv,position:"relative","min-height":`${irt}px`,margin:"auto"}),t+=dc(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:Bv}),t+=dc(".cesium-credit-lightbox > ul > li a:hover",{color:$J}),t+=dc(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),t+=dc(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),t+=dc(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),t+=dc(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:Bv}),t+=dc(".cesium-credit-lightbox-close:hover",{color:$J}),t+=dc(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),t+=dc(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),t+=dc(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),t+=dc(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:Bv}),t+=dc(".cesium-credit-expand-link:hover",{color:$J}),t+=dc(".cesium-credit-text",{color:Bv}),t+=dc(".cesium-credit-textContainer *, .cesium-credit-logoContainer *",{display:"inline"});function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=g(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function ar(e,t,n){let i=this;n=g(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(f){r.contains(f.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let l=document.createElement("ul");r.appendChild(l);let u=document.createElement("div");u.className="cesium-credit-logoContainer",u.style.display="inline",e.appendChild(u);let m=document.createElement("div");m.className="cesium-credit-textContainer",m.style.display="inline",e.appendChild(m);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),art(e);let y=St.clone(ar.cesiumCredit);this._delimiter=g(t," \u2022 "),this._screenContainer=m,this._cesiumCreditContainer=u,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=l,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=y,this._previousCesiumCredit=void 0,this._currentCesiumCredit=y,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new Tt,lightboxCredits:new Tt},this._defaultCredit=void 0,this.viewport=n,this.container=e}function M0e(e,t,n,i){i=g(i,1);let o=t.get(n.id);if(d(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new w0e(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}ar.prototype.addCreditToNextFrame=function(e){if(e.isIon()){d(this._defaultCredit)||(this._defaultCredit=St.clone(N0e())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,M0e(this,t,e)};ar.prototype.addStaticCredit=function(e){let t=this._staticCredits;ort(t,e)||t.push(e)};ar.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};ar.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};ar.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};ar.prototype.update=function(){this._expanded&&srt(this)};ar.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r.isIon()&&St.equals(ar.cesiumCredit,this._cesiumCredit)||M0e(this,s,r,Number.MAX_VALUE)}St.equals(ar.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=St.clone(ar.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};ar.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;v0e(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",v0e(this._creditList,t,void 0,"li"),rrt(this)};ar.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),ue(this)};ar.prototype.isDestroyed=function(){return!1};ar._cesiumCredit=void 0;ar._cesiumCreditInitialized=!1;var mk;function N0e(){if(!d(mk)){let e=$t("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new F0e.default(e).path()),mk=new St(`<a href="https://cesium.com/" target="_blank"><img src="${e}" title="Cesium ion"/></a>`,!0)}return ar._cesiumCreditInitialized||(ar._cesiumCredit=mk,ar._cesiumCreditInitialized=!0),mk}Object.defineProperties(ar,{cesiumCredit:{get:function(){return N0e(),ar._cesiumCredit},set:function(e){ar._cesiumCredit=e,ar._cesiumCreditInitialized=!0}}});ar.CreditDisplayElement=w0e;var Yv=ar;var tCi=T(S(),1);var TSi=T(S(),1);var hk=0,crt=1;function J_(e){let t=e.frustum,n=e.orientation,i=e.origin,o=g(e.vertexFormat,We.DEFAULT),r=g(e._drawNearPlane,!0),s,a;t instanceof Ri?(s=hk,a=Ri.packedLength):t instanceof en&&(s=crt,a=en.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Ae.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Ae.packedLength+We.packedLength}J_.pack=function(e,t,n){n=g(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===hk?(Ri.pack(o,t,n),n+=Ri.packedLength):(en.pack(o,t,n),n+=en.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Ae.pack(e._orientation,t,n),n+=Ae.packedLength,We.pack(e._vertexFormat,t,n),n+=We.packedLength,t[n]=e._drawNearPlane?1:0,t};var lrt=new Ri,drt=new en,urt=new Ae,mrt=new h,hrt=new We;J_.unpack=function(e,t,n){t=g(t,0);let i=e[t++],o;i===hk?(o=Ri.unpack(e,t,lrt),t+=Ri.packedLength):(o=en.unpack(e,t,drt),t+=en.packedLength);let r=h.unpack(e,t,mrt);t+=h.packedLength;let s=Ae.unpack(e,t,urt);t+=Ae.packedLength;let a=We.unpack(e,t,hrt);t+=We.packedLength;let c=e[t]===1;if(!d(n))return new J_({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let l=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(l),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Ae.clone(s,n._orientation),n._vertexFormat=We.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function aV(e,t,n,i,o,r,s,a){let c=e/3*2;for(let l=0;l<4;++l)d(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),d(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),d(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var frt=new $,prt=new w,eQ=new w,U0e=new h,k0e=new h,D0e=new h,brt=new h,yrt=new h,grt=new h,Yy=new Array(3),Ov=new Array(4);Ov[0]=new se(-1,-1,1,1);Ov[1]=new se(1,-1,1,1);Ov[2]=new se(1,1,1,1);Ov[3]=new se(-1,1,1,1);var B0e=new Array(4);for(let e=0;e<4;++e)B0e[e]=new se;J_._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,frt),l=g(r,U0e),u=g(s,k0e),m=g(a,D0e);l=$.getColumn(c,0,l),u=$.getColumn(c,1,u),m=$.getColumn(c,2,m),h.normalize(l,l),h.normalize(u,u),h.normalize(m,m),h.negate(l,l);let p=w.computeView(e,m,u,l,prt),y,f,x=i.projectionMatrix;if(n===hk){let _=w.multiply(x,p,eQ);f=w.inverse(_,eQ)}else y=w.inverseTransformation(p,eQ);d(f)?(Yy[0]=i.near,Yy[1]=i.far):(Yy[0]=0,Yy[1]=i.near,Yy[2]=i.far);for(let _=0;_<2;++_)for(let C=0;C<4;++C){let V=se.clone(Ov[C],B0e[C]);if(d(f)){V=w.multiplyByVector(f,V,V);let L=1/V.w;h.multiplyByScalar(V,L,V),h.subtract(V,e,V),h.normalize(V,V);let Z=h.dot(m,V);h.multiplyByScalar(V,Yy[_]/Z,V),h.add(V,e,V)}else{let L=i.offCenterFrustum;d(L)&&(i=L);let Z=Yy[_],G=Yy[_+1];V.x=(V.x*(i.right-i.left)+i.left+i.right)*.5,V.y=(V.y*(i.top-i.bottom)+i.bottom+i.top)*.5,V.z=(V.z*(Z-G)-Z-G)*.5,V.w=1,w.multiplyByVector(y,V,V)}o[12*_+C*3]=V.x,o[12*_+C*3+1]=V.y,o[12*_+C*3+2]=V.z}};J_.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);J_._computeNearFarPlanes(i,o,t,n,c);let l=3*4*2;c[l]=c[3*4],c[l+1]=c[3*4+1],c[l+2]=c[3*4+2],c[l+3]=c[0],c[l+4]=c[1],c[l+5]=c[2],c[l+6]=c[3*3],c[l+7]=c[3*3+1],c[l+8]=c[3*3+2],c[l+9]=c[3*7],c[l+10]=c[3*7+1],c[l+11]=c[3*7+2],l+=3*4,c[l]=c[3*5],c[l+1]=c[3*5+1],c[l+2]=c[3*5+2],c[l+3]=c[3],c[l+4]=c[3+1],c[l+5]=c[3+2],c[l+6]=c[0],c[l+7]=c[1],c[l+8]=c[2],c[l+9]=c[3*4],c[l+10]=c[3*4+1],c[l+11]=c[3*4+2],l+=3*4,c[l]=c[3],c[l+1]=c[3+1],c[l+2]=c[3+2],c[l+3]=c[3*5],c[l+4]=c[3*5+1],c[l+5]=c[3*5+2],c[l+6]=c[3*6],c[l+7]=c[3*6+1],c[l+8]=c[3*6+2],c[l+9]=c[3*2],c[l+10]=c[3*2+1],c[l+11]=c[3*2+2],l+=3*4,c[l]=c[3*2],c[l+1]=c[3*2+1],c[l+2]=c[3*2+2],c[l+3]=c[3*6],c[l+4]=c[3*6+1],c[l+5]=c[3*6+2],c[l+6]=c[3*7],c[l+7]=c[3*7+1],c[l+8]=c[3*7+2],c[l+9]=c[3*3],c[l+10]=c[3*3+1],c[l+11]=c[3*3+2],r||(c=c.subarray(3*4));let u=new hn({position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:c})});if(d(s.normal)||d(s.tangent)||d(s.bitangent)||d(s.st)){let p=d(s.normal)?new Float32Array(12*a):void 0,y=d(s.tangent)?new Float32Array(3*4*a):void 0,f=d(s.bitangent)?new Float32Array(3*4*a):void 0,x=d(s.st)?new Float32Array(2*4*a):void 0,_=U0e,C=k0e,V=D0e,L=h.negate(_,brt),Z=h.negate(C,yrt),G=h.negate(V,grt);l=0,r&&(aV(l,p,y,f,x,G,_,C),l+=3*4),aV(l,p,y,f,x,V,L,C),l+=3*4,aV(l,p,y,f,x,L,G,C),l+=3*4,aV(l,p,y,f,x,Z,G,L),l+=3*4,aV(l,p,y,f,x,_,V,C),l+=3*4,aV(l,p,y,f,x,C,V,L),d(p)&&(u.normal=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:p})),d(y)&&(u.tangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:y})),d(f)&&(u.bitangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:f})),d(x)&&(u.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:x}))}let m=new Uint16Array(6*a);for(let p=0;p<a;++p){let y=p*6,f=p*4;m[y]=f,m[y+1]=f+1,m[y+2]=f+2,m[y+3]=f,m[y+4]=f+2,m[y+5]=f+3}return new dt({attributes:u,indices:m,primitiveType:we.TRIANGLES,boundingSphere:ce.fromVertices(c)})};var Q_=J_;var wSi=T(S(),1);var tQ=0,xrt=1;function Kv(e){let t=e.frustum,n=e.orientation,i=e.origin,o=g(e._drawNearPlane,!0),r,s;t instanceof Ri?(r=tQ,s=Ri.packedLength):t instanceof en&&(r=xrt,s=en.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Ae.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Ae.packedLength}Kv.pack=function(e,t,n){n=g(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===tQ?(Ri.pack(o,t,n),n+=Ri.packedLength):(en.pack(o,t,n),n+=en.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Ae.pack(e._orientation,t,n),n+=Ae.packedLength,t[n]=e._drawNearPlane?1:0,t};var _rt=new Ri,Trt=new en,Srt=new Ae,Crt=new h;Kv.unpack=function(e,t,n){t=g(t,0);let i=e[t++],o;i===tQ?(o=Ri.unpack(e,t,_rt),t+=Ri.packedLength):(o=en.unpack(e,t,Trt),t+=en.packedLength);let r=h.unpack(e,t,Crt);t+=h.packedLength;let s=Ae.unpack(e,t,Srt);t+=Ae.packedLength;let a=e[t]===1;if(!d(n))return new Kv({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Ae.clone(s,n._orientation),n._drawNearPlane=a,n};Kv.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);Q_._computeNearFarPlanes(i,o,t,n,s);let a=new hn({position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:s})}),c,l,u=r?2:1,m=new Uint16Array(8*(u+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,l=p*4,m[c]=l,m[c+1]=l+1,m[c+2]=l+1,m[c+3]=l+2,m[c+4]=l+2,m[c+5]=l+3,m[c+6]=l+3,m[c+7]=l;for(p=0;p<2;++p)c=(u+p)*8,l=p*4,m[c]=l,m[c+1]=l+4,m[c+2]=l+1,m[c+3]=l+5,m[c+4]=l+2,m[c+5]=l+6,m[c+6]=l+3,m[c+7]=l+7;return new dt({attributes:a,indices:m,primitiveType:we.LINES,boundingSphere:ce.fromVertices(s)})};var Hv=Kv;function fk(e){e=g(e,g.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=g(e.color,B.CYAN),this._updateOnChange=g(e.updateOnChange,!0),this.show=g(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var Vrt=new h,Lrt=new $,Rrt=new Ae,Zrt=new Ri,Grt=new Kc,Ert=new en,Xrt=new yr,Irt=new B,Wrt=[1,1e5];fk.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof Ri?a=Zrt:s instanceof Kc?a=Grt:s instanceof en?a=Ert:a=Xrt,a=s.clone(a);let c,l=this._frustumSplits;!d(l)||l.length<=1?(l=Wrt,l[0]=this._camera.frustum.near,l[1]=this._camera.frustum.far,c=1):c=l.length-1;let u=r.positionWC,m=r.directionWC,p=r.upWC,y=r.rightWC;y=h.negate(y,Vrt);let f=Lrt;$.setColumn(f,0,y,f),$.setColumn(f,1,p,f),$.setColumn(f,2,m,f);let x=Ae.fromRotationMatrix(f,Rrt);for(t.length=n.length=c,i=0;i<c;++i)a.near=l[i],a.far=l[i+1],t[i]=new Zn({geometryInstances:new _t({geometry:new Q_({origin:u,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Ut.fromColor(B.fromAlpha(this._color,.1,Irt))},id:this.id,pickPrimitive:this}),appearance:new sn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new Zn({geometryInstances:new _t({geometry:new Hv({origin:u,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Ut.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};fk.prototype.isDestroyed=function(){return!1};fk.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return ue(this)};var Zf=fk;var VCi=T(S(),1);function Jv(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=g(e,0)}var zv=Mt.supportsTypedArrays()?new Float32Array(12):[],Y0e=new h,O0e=new h,nQ=new h,K0e=new h,pk=new h;function Prt(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof en)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let m=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,m,Y0e),y=h.normalize(p,O0e),f=h.normalize(h.cross(h.UNIT_Z,p,nQ),nQ),x=h.normalize(h.cross(y,f,K0e),K0e),_=h.magnitude(p),C=Math.sqrt(_*_-1);o=h.multiplyByScalar(y,1/_,Y0e);let V=C/_;r=h.multiplyByScalar(f,V,O0e),s=h.multiplyByScalar(x,V,nQ)}let a=h.add(o,s,pk);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,zv,0);let c=h.subtract(o,s,pk);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,zv,3);let l=h.add(o,s,pk);h.add(l,r,l),h.multiplyComponents(n,l,l),h.pack(l,zv,6);let u=h.subtract(o,s,pk);return h.add(u,r,u),h.multiplyComponents(n,u,u),h.pack(u,zv,9),zv}Jv.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ie.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new re(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(d(this._command)||(this._rs=De.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new nt({renderState:this._rs,boundingVolume:new ce(h.ZERO,i.maximumRadius),pass:Re.OPAQUE,owner:this})),!d(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new Be({sources:[OP]}),a=new Be({sources:[YP]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Qt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=Prt(i,e);if(d(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new dt({attributes:{position:new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:we.TRIANGLES});this._va=ni.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Ne.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};Jv.prototype.execute=function(e,t){this._mode===ie.SCENE3D&&this._command.execute(e,t)};Jv.prototype.isDestroyed=function(){return!1};Jv.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var Qv=Jv;var XCi=T(S(),1);function jv(){}var vrt=/\bgl_FragDepth\b/,Frt=/\bdiscard\b/;function wrt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(!d(n)){let i=t._attributeLocations,o=t.fragmentShaderSource,r,s=!1,a=o.sources,c=a.length;for(r=0;r<c;++r)if(vrt.test(a[r])||Frt.test(a[r])){s=!0;break}let l=!1,u=o.defines;for(c=u.length,r=0;r<c;++r)if(u[r]==="LOG_DEPTH"){l=!0;break}let m;!s&&!l?(m=`void main() +{ + out_FragColor = vec4(1.0); +} +`,o=new Be({sources:[m]})):!s&&l&&(m=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`,o=new Be({defines:["LOG_DEPTH"],sources:[m]})),n=e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}function Art(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(!d(i)){let o=De.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i=De.fromCache(o),n[t.id]=i}return i}jv.createDepthOnlyDerivedCommand=function(e,t,n,i){d(i)||(i={});let o,r;return d(i.depthOnlyCommand)&&(o=i.depthOnlyCommand.shaderProgram,r=i.depthOnlyCommand.renderState),i.depthOnlyCommand=nt.shallowClone(t,i.depthOnlyCommand),!d(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=wrt(n,t.shaderProgram),i.depthOnlyCommand.renderState=Art(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var Mrt=/\s+czm_writeLogDepth\(/,Nrt=/\s+czm_vertexLogDepth\(/;function Urt(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(!d(i)){let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=d(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=d(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a,c,l=!1,u=r.sources,m=u.length;for(a=0;a<m;++a)if(Nrt.test(u[a])){l=!0;break}if(!l){for(a=0;a<m;++a)u[a]=Be.replaceMain(u[a],"czm_log_depth_main");c=` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`,u.push(c)}for(u=s.sources,m=u.length,l=!1,a=0;a<m;++a)Mrt.test(u[a])&&(l=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(l=!0);let p="";if(!l){for(a=0;a<m;a++)u[a]=Be.replaceMain(u[a],"czm_log_depth_main");p+=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}u.push(p),i=e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}return i}jv.createLogDepthCommand=function(e,t,n){d(n)||(n={});let i;return d(n.command)&&(i=n.command.shaderProgram),n.command=nt.shallowClone(e,n.command),!d(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Urt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function krt(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(!d(i)){let o=t._attributeLocations,r=t.fragmentShaderSource,s=r.sources,a=s.length,l=s.some(p=>p.includes("out_FragData"))?"out_FragData_0":"out_FragColor",u=`void main () +{ + czm_non_pick_main(); + if (${l}.a == 0.0) { + discard; + } + ${l} = ${n}; +} `,m=new Array(a+1);for(let p=0;p<a;++p)m[p]=Be.replaceMain(s[p],"czm_non_pick_main");m[a]=u,r=new Be({sources:m,defines:r.defines}),i=e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:o})}return i}function Drt(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(!d(i)){let o=De.getState(t);o.blending.enabled=!1,o.depthMask=!0,i=De.fromCache(o),n[t.id]=i}return i}jv.createPickDerivedCommand=function(e,t,n,i){d(i)||(i={});let o,r;return d(i.pickCommand)&&(o=i.pickCommand.shaderProgram,r=i.pickCommand.renderState),i.pickCommand=nt.shallowClone(t,i.pickCommand),!d(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=krt(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=Drt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function Brt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(!d(n)){let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();o.defines=d(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=d(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),n=e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}return n}jv.createHdrCommand=function(e,t,n){d(n)||(n={});let i;return d(n.command)&&(i=n.command.shaderProgram),n.command=nt.shallowClone(e,n.command),!d(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Brt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var w0=jv;var ACi=T(S(),1);function bk(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!d(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=W.toRadians(o),t._beta=W.toRadians(i.beta),t._gamma=W.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var Yrt=new Ae,H0e=new Ae,Ort=new $;function Krt(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Ae.fromAxisAngle(o,n,H0e),c=Ae.fromAxisAngle(r,i,Yrt),l=Ae.multiply(c,a,c),u=Ae.fromAxisAngle(s,t,H0e);Ae.multiply(u,l,l);let m=$.fromQuaternion(l,Ort);$.multiplyByVector(m,r,r),$.multiplyByVector(m,s,s),$.multiplyByVector(m,o,o)}bk.prototype.update=function(){if(!d(this._alpha))return;d(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;Krt(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};bk.prototype.isDestroyed=function(){return!1};bk.prototype.destroy=function(){return this._removeListener(),ue(this)};var qv=bk;var BCi=T(S(),1);function z0e(){this.enabled=!0,this.renderable=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}var yk=[359.393,800.749,1275.6501,2151.1192,3141.7763,4777.5198,6281.2493,12364.307,15900.765,49889.0549,78026.8259,99260.7344,120036.3873,151011.0158,156091.1953,203849.3112,274866.9803,319916.3149,493552.0528,628733.5874],Gf=[2e-5,2e-4,1e-4,7e-5,5e-5,4e-5,3e-5,19e-6,1e-5,85e-7,62e-7,58e-7,53e-7,52e-7,51e-7,42e-7,4e-6,34e-7,26e-7,22e-7];for(let e=0;e<Gf.length;++e)Gf[e]*=1e6;var J0e=Gf[1],iQ=Gf[Gf.length-1];for(let e=0;e<Gf.length;++e)Gf[e]=(Gf[e]-iQ)/(J0e-iQ);var ia=0;function Hrt(e){let t=yk,n=t.length;if(e<t[0])return ia=0,ia;if(e>t[n-1])return ia=n-2,ia;if(e>=t[ia]){if(ia+1<n&&e<t[ia+1])return ia;if(ia+2<n&&e<t[ia+2])return++ia,ia}else if(ia-1>=0&&e>=t[ia-1])return--ia,ia;let i;for(i=0;i<n-2&&!(e>=t[i]&&e<t[i+1]);++i);return ia=i,ia}var zrt=new h;z0e.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!d(i)||i.height>8e5||e.mode!==ie.SCENE3D){e.fog.enabled=!1;return}let o=i.height,r=Hrt(o),s=W.clamp((o-yk[r])/(yk[r+1]-yk[r]),0,1),a=W.lerp(Gf[r],Gf[r+1],s),c=this.density*1e6,l=c/J0e*iQ;a=a*(c-l)*1e-6;let u=h.normalize(n.positionWC,zrt),m=Math.abs(h.dot(n.directionWC,u));a*=1-m,e.fog.density=a,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var $v=z0e;var KCi=T(S(),1);function Jrt(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=ie.SCENE3D,this.morphTime=ie.getMorphTime(ie.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0}var eF=Jrt;var s1i=T(S(),1);var oa={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},j_=oa.DERIVED_COMMANDS_MAXIMUM_LENGTH,rbe=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function q_(){this._frontFaceAlphaByDistance=new Pt(0,1,0,1),this._backFaceAlphaByDistance=new Pt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=de.clone(de.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(j_),this._derivedBlendCommandTypes=new Array(j_),this._derivedPickCommandTypes=new Array(j_),this._derivedCommandTypesToUpdate=new Array(j_),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(q_.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});q_.prototype.update=function(e){let t=e.globe;if(!d(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=Q0e(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=Q0e(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=j0e(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=j0e(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=$rt(this,e,t),this._sunVisibleThroughGlobe=Qrt(this,e),this._environmentVisible=jrt(this,e),this._useDepthPlane=qrt(this,e),this._numberOfTextureUniforms=est(this),this._rectangle=de.clone(t.translucency.rectangle,this._rectangle),tst(this,e)};function Q0e(e,t,n,i){return e?d(n)?(Pt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function j0e(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function Qrt(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function jrt(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function qrt(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function $rt(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ie.SCENE2D&&t.context.depthTexture}function est(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function tst(e,t){e._derivedCommandsLength=oQ(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=oQ(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=oQ(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<j_;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!d(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=bst())}function oQ(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,l=e._requiresManualDepthTest,u=i?oa.PICK_FRONT_FACE:l?oa.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:oa.TRANSLUCENT_FRONT_FACE,m=i?oa.PICK_BACK_FACE:l?oa.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:oa.TRANSLUCENT_BACK_FACE;return t.mode===ie.SCENE2D?(o[r++]=oa.DEPTH_ONLY_FRONT_FACE,o[r++]=u,r):(a?(n||(o[r++]=oa.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=u,o[r++]=m):(o[r++]=m,o[r++]=u)):c?(n||(o[r++]=oa.DEPTH_ONLY_BACK_FACE),o[r++]=oa.OPAQUE_FRONT_FACE,o[r++]=m):(n||(o[r++]=oa.DEPTH_ONLY_FRONT_FACE),o[r++]=oa.OPAQUE_BACK_FACE,o[r++]=u),r)}function Bu(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function q0e(e,t){return e.indexOf(t)>-1}function nst(e,t){Bu(e.defines,"TRANSLUCENT"),Bu(t.defines,"TRANSLUCENT")}function ist(e,t){Bu(e.defines,"GROUND_ATMOSPHERE"),Bu(t.defines,"GROUND_ATMOSPHERE"),Bu(e.defines,"FOG"),Bu(t.defines,"FOG"),Bu(e.defines,"TRANSLUCENT"),Bu(t.defines,"TRANSLUCENT")}function rQ(e,t){if(q0e(t.defines,"TILE_LIMIT_RECTANGLE")||q0e(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function sQ(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=Be.replaceMain(n[r],"czm_globe_translucency_main");let o=` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`;n.push(o)}function sbe(e,t){sQ(e,t),Bu(e.defines,"GROUND_ATMOSPHERE"),Bu(t.defines,"GROUND_ATMOSPHERE"),Bu(e.defines,"FOG"),Bu(t.defines,"FOG")}function ost(e,t){sQ(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function rst(e,t){sbe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function $0e(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function sst(e,t,n,i,o,r){if(!d(o))return t;if(!i&&d(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!d(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),l=t.fragmentShaderSource.clone();c.defines=d(c.defines)?c.defines.slice(0):[],l.defines=d(l.defines)?l.defines.slice(0):[],o(c,l),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:a})}return s}function ast(e){e.cull.face=yi.BACK,e.cull.enabled=!0}function cst(e){e.cull.face=yi.FRONT,e.cull.enabled=!0}function lst(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function dst(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function ust(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function ebe(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function tbe(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function mst(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function hst(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function fst(e,t,n,i,o){if(!d(i))return e;if(!n&&d(t))return t;let r=o[e.id];if(!d(r)){let s=De.getState(e);i(s),r=De.fromCache(s),o[e.id]=r}return r}function cV(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function pst(e,t,n,i,o){return d(o)?!i&&d(n)?n:xt(t,o(e),!1):t}function mh(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function bst(){return[new mh({pass:Re.GLOBE,pickOnly:!1,getShaderProgramFunction:nst,getRenderStateFunction:ast,getUniformMapFunction:void 0}),new mh({pass:Re.GLOBE,pickOnly:!1,getShaderProgramFunction:ist,getRenderStateFunction:cst,getUniformMapFunction:void 0}),new mh({pass:Re.GLOBE,pickOnly:!1,getShaderProgramFunction:rQ,getRenderStateFunction:lst,getUniformMapFunction:void 0}),new mh({pass:Re.GLOBE,pickOnly:!1,getShaderProgramFunction:rQ,getRenderStateFunction:dst,getUniformMapFunction:void 0}),new mh({pass:Re.GLOBE,pickOnly:!1,getShaderProgramFunction:rQ,getRenderStateFunction:ust,getUniformMapFunction:void 0}),new mh({pass:Re.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:sQ,getRenderStateFunction:ebe,getUniformMapFunction:cV}),new mh({pass:Re.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:sbe,getRenderStateFunction:tbe,getUniformMapFunction:cV}),new mh({pass:Re.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:ost,getRenderStateFunction:ebe,getUniformMapFunction:cV}),new mh({pass:Re.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:rst,getRenderStateFunction:tbe,getUniformMapFunction:cV}),new mh({pass:Re.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:$0e,getRenderStateFunction:mst,getUniformMapFunction:cV}),new mh({pass:Re.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:$0e,getRenderStateFunction:hst,getUniformMapFunction:cV})]}var nbe=new Array(j_),ibe=new Array(j_);q_.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)ibe[o]=this._derivedCommandPacks[n[o]],nbe[o]=rbe[n[o]];yst(this,e,i,n,nbe,ibe,t)}};function yst(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!d(a)||c){t.dirty=!1,d(a)||(a={},t.derivedCommands.globeTranslucency=a);let l=s.frameNumber,u=g(a.uniformMapDirtyFrame,0),m=g(a.shaderProgramDirtyFrame,0),p=g(a.renderStateDirtyFrame,0),y=a.uniformMap!==t.uniformMap,f=a.shaderProgramId!==t.shaderProgram.id,x=a.renderStateId!==t.renderState.id;y&&(a.uniformMapDirtyFrame=l),f&&(a.shaderProgramDirtyFrame=l),x&&(a.renderStateDirtyFrame=l),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let _=0;_<n;++_){let C=r[_],V=i[_],L=o[_],Z=a[L],G,X,P;d(Z)?(G=Z.uniformMap,X=Z.shaderProgram,P=Z.renderState):(G=void 0,X=void 0,P=void 0),Z=nt.shallowClone(t,Z),a[L]=Z;let v=g(Z.derivedCommands.uniformMapDirtyFrame,0),A=g(Z.derivedCommands.shaderProgramDirtyFrame,0),M=g(Z.derivedCommands.renderStateDirtyFrame,0),b=y||v<u,R=f||A<m,E=x||M<p;b&&(Z.derivedCommands.uniformMapDirtyFrame=l),R&&(Z.derivedCommands.shaderProgramDirtyFrame=l),E&&(Z.derivedCommands.renderStateDirtyFrame=l),Z.derivedCommands.type=V,Z.pass=C.pass,Z.pickOnly=C.pickOnly,Z.uniformMap=pst(e,t.uniformMap,G,b,C.getUniformMapFunction),Z.shaderProgram=sst(s.context,t.shaderProgram,X,R,C.getShaderProgramFunction,L),Z.renderState=fst(t.renderState,P,E,C.getRenderStateFunction,C.renderStateCache)}}}q_.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=rbe[o[a]];n.commandList.push(s[c])}};function abe(e,t,n,i,o,r,s){for(let a=0;a<t;++a){let c=e[a],l=c.derivedCommands.type;(!d(s)||s.indexOf(l)>-1)&&n(c,i,o,r)}}function obe(e,t,n,i,o,r){for(let s=0;s<t;++s)n(e[s],i,o,r)}var gst=[oa.OPAQUE_FRONT_FACE,oa.OPAQUE_BACK_FACE],xst=[oa.DEPTH_ONLY_FRONT_FACE,oa.DEPTH_ONLY_BACK_FACE,oa.DEPTH_ONLY_FRONT_AND_BACK_FACE];q_.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Re.GLOBE],a=e.indices[Re.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),abe(s,a,t,i,r,o,gst))};q_.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Re.GLOBE],a=e.indices[Re.GLOBE],c=e.commands[Re.TERRAIN_CLASSIFICATION],l=e.indices[Re.TERRAIN_CLASSIFICATION];if(a===0||l===0)return;let u=this._frontFaceTranslucent,m=this._backFaceTranslucent;if((!u||!m)&&obe(c,l,t,i,r,o),!u&&!m)return;this._globeTranslucencyFramebuffer=n;let p=r.uniformState.globeDepthTexture,y=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,abe(s,a,t,i,r,o,xst),r.depthTexture){let f=n.packDepth(r,o);r.uniformState.globeDepthTexture=f}obe(c,l,t,i,r,o),r.uniformState.globeDepthTexture=p,o.framebuffer=y};var tF=q_;var Z1i=T(S(),1);var c1i=T(S(),1),Al=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function Ef(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new mi({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new mi({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ti({color:new B(0,0,0,0),owner:this}),this._clearCommand=new ti({color:new B(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(Ef.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});Ef.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var _st={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Dn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Dn.NEVER,reference:0,mask:wt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},Tst={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Dn.NOT_EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Dn.NEVER,reference:0,mask:wt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},Sst={depthMask:!0,depthTest:{enabled:!0},stencilTest:wt.setCesium3DTileBit(),stencilMask:wt.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},Cst=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,Vst=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;Ef.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!d(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),d(this._previousFramebuffer)||(this._depthStencilTexture=new Wt({context:e,width:s,height:a,pixelFormat:st.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new Kl({context:e,width:s,height:a,format:xc.DEPTH24_STENCIL8,numSamples:t})))),!d(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let l,u;d(this._previousFramebuffer)?(l=n.getDepthStencilTexture(),u=n.getDepthStencilRenderbuffer()):(l=this._depthStencilTexture,u=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(l),d(u)&&this._fbo.setDepthStencilRenderbuffer(u),this._fbo.update(e,s,a,t),d(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(l),this._fboClassified.update(e,s,a))}if(d(this._rsUnclassified)||(this._rsUnclassified=De.fromCache(_st),this._rsClassified=De.fromCache(Tst),this._rsDefault=De.fromCache(Sst)),!d(this._unclassifiedCommand)||o||r){d(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let l=d(this._previousFramebuffer)?Vst:Cst,u=new Be({defines:["UNCLASSIFIED"],sources:[l]}),m=new Be({sources:[l]});this._unclassifiedCommand=e.createViewportQuadCommand(u,{renderState:d(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(m,{renderState:d(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),d(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),d(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(Al,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};Ef.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};Ef.prototype.clear=function(e,t){d(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};Ef.prototype.executeClassified=function(e,t){if(!d(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};Ef.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};Ef.prototype.isDestroyed=function(){return!1};Ef.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),d(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var lV=Ef;var W1i=T(S(),1);function gk(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(gk.prototype,{total:{get:function(){return this._total}}});function Oy(e){let t=new Array(ba.NUMBER_OF_JOB_TYPES);t[ba.TEXTURE]=new gk(d(e)?e[ba.TEXTURE]:10),t[ba.PROGRAM]=new gk(d(e)?e[ba.PROGRAM]:10),t[ba.BUFFER]=new gk(d(e)?e[ba.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}Oy.getTimestamp=gi;Object.defineProperties(Oy.prototype,{totalBudget:{get:function(){return this._totalBudget}}});Oy.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};Oy.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};Oy.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,l;for(l=0;l<c&&(r=n[l],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++l);if(l===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=Oy.getTimestamp();e.execute();let a=Oy.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var nF=Oy;var M1i=T(S(),1);function xk(e){e=g(e,g.EMPTY_OBJECT);let t=En(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=gi(),this._lastMsSampleTime=gi(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(xk.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});xk.prototype.update=function(e){let t=gi(),n=g(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};xk.prototype.destroy=function(){return ue(this)};var A0=xk;var ZZi=T(S(),1);var O1i=T(S(),1);function $_(){this._framebuffer=new mi,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties($_.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Lst(e,t,n){let i=n.width,o=n.height;e._framebuffer.update(t,i,o)}function Rst(e,t,n){if(!d(e._copyDepthCommand)){let i=`uniform highp sampler2D u_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = czm_packDepth(texture(u_texture, v_textureCoordinates).r); +} +`;e._copyDepthCommand=t.createViewportQuadCommand(i,{renderState:De.fromCache(),uniformMap:{u_texture:function(){return e._textureToCopy}},owner:e})}e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}$_.prototype.update=function(e,t){Lst(this,e,t),Rst(this,e,t)};var Zst=new se,Gst=new se(1,1/255,1/65025,1/16581375);$_.prototype.getDepth=function(e,t,n){if(!d(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=se.unpack(i,0,Zst);return se.divideByScalar(o,255,o),se.dot(o,Gst)};$_.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};$_.prototype.isDestroyed=function(){return!1};$_.prototype.destroy=function(){return this._framebuffer.destroy(),d(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=d(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var iF=$_;var tZi=T(S(),1);var J1i=T(S(),1);function Est(e,t){this.near=g(e,0),this.far=g(t,0);let n=Re.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var oF=Est;var hVi=T(S(),1);var j1i=T(S(),1),Ky=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function Xf(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new mi,this._tempCopyDepthFramebuffer=new mi,this._updateDepthFramebuffer=new mi({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new He,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(Xf.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function Xst(e){e._pickColorFramebuffer.destroy(),e._outputFramebuffer.destroy(),e._copyDepthFramebuffer.destroy(),e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer.destroy()}function cbe(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!He.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,He.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=He.clone(o.viewport,e._scissorRectangle),s=!0),(!d(e._rs)||!He.equals(e._viewport,e._rs.viewport)||s)&&(e._rs=De.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=De.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=De.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Dn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Dn.NEVER,reference:wt.CESIUM_3D_TILE_MASK,mask:wt.CESIUM_3D_TILE_MASK}})),d(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(Ky,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,d(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(Al,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,d(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(Ky,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,d(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(Al,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,d(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ti({color:new B(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}Xf.prototype.update=function(e,t,n,i,o,r){let s=n.width,a=n.height,c=o?e.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),cbe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=o,this._clearGlobeDepth=r};Xf.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};Xf.prototype.executeCopyDepth=function(e,t){d(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};Xf.prototype.executeUpdateDepth=function(e,t,n,i){let o=d(i)?i:t.framebuffer.depthStencilTexture;if(n||o!==this.colorFramebufferManager.getDepthStencilTexture()){if(d(this._updateDepthCommand)){if(!d(this._updateDepthFramebuffer.framebuffer)||this._updateDepthFramebuffer.getDepthStencilTexture()!==o||this._updateDepthFramebuffer.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture().width,s=this._copyDepthFramebuffer.getColorTexture().height;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,r,s);let a=this._copyDepthFramebuffer.getColorTexture();this._updateDepthFramebuffer.setColorTexture(a,0),this._updateDepthFramebuffer.setDepthStencilTexture(o),this._updateDepthFramebuffer.update(e,r,s),cbe(this,e,r,s,t)}this._tempCopyDepthTexture=o,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}return}d(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)};Xf.prototype.executeCopyColor=function(e,t){d(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};Xf.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;d(i)&&(B.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};Xf.prototype.isDestroyed=function(){return!1};Xf.prototype.destroy=function(){return Xst(this),d(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),d(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),d(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),d(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var rF=Xf;var VVi=T(S(),1);function eT(){this._framebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new mi,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new He,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(eT.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function Ist(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function Wst(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function Pst(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!He.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,He.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=He.clone(o.viewport,e._scissorRectangle),s=!0),(!d(e._renderState)||!He.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=De.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),d(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(Ky,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),d(e._clearCommand)||(e._clearCommand=new ti({color:new B(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}eT.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;Wst(this,n,o,r,e),Pst(this,n,o,r,i),this._useHdr=e};eT.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};eT.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};eT.prototype.isDestroyed=function(){return!1};eT.prototype.destroy=function(){return Ist(this),ue(this)};var sF=eT;var BVi=T(S(),1);function M0(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new mi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new mi({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new mi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new mi({createColorAttachments:!1}),this._opaqueClearCommand=new ti({color:new B(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ti({color:new B(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ti({color:new B(0,0,0,0),owner:this}),this._alphaClearCommand=new ti({color:new B(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new He,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function lbe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function aQ(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function dbe(e){lbe(e),aQ(e)}function vst(e,t,n,i){lbe(e),e._accumulationTexture=new Wt({context:t,width:n,height:i,pixelFormat:st.RGBA,pixelDatatype:Je.FLOAT});let o=new Float32Array(n*i*4);e._revealageTexture=new Wt({context:t,pixelFormat:st.RGBA,pixelDatatype:Je.FLOAT,source:{arrayBufferView:o,width:n,height:i},flipY:!1})}function Fst(e,t){aQ(e);let n=ne.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(aQ(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,l=e._adjustAlphaFBO.status===n;(!s||!a||!c||!l)&&(dbe(e),e._translucentMultipassSupport=!1,i=!1)}return i}M0.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!d(a)||a.width!==r||a.height!==s||i!==this._useHDR,l=this._numSamples!==o;if((c||l)&&(this._numSamples=o,vst(this,e,r,s)),(!d(this._translucentFBO.framebuffer)||c||l)&&!Fst(this,e))return;this._useHDR=i;let u=this,m,p;d(this._compositeCommand)||(m=new Be({sources:[BP]}),this._translucentMRTSupport&&m.defines.push("MRT"),p={u_opaque:function(){return u._opaqueTexture},u_accumulation:function(){return u._accumulationTexture},u_revealage:function(){return u._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this})),d(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(m=new Be({defines:["MRT"],sources:[M1]}),p={u_bgColor:function(){return u._translucentMRTClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(m=new Be({sources:[M1]}),p={u_bgColor:function(){return u._translucentMultipassClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this}),p={u_bgColor:function(){return u._alphaClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let y=!He.equals(this._viewport,t.viewport),f=y!==this._useScissorTest;this._useScissorTest=y,He.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=He.clone(t.viewport,this._scissorRectangle),f=!0),(!d(this._rs)||!He.equals(this._viewport,this._rs.viewport)||f)&&(this._rs=De.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),d(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),d(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var wst={enabled:!0,color:new B(0,0,0,0),equationRgb:ma.ADD,equationAlpha:ma.ADD,functionSourceRgb:_o.ONE,functionDestinationRgb:_o.ONE,functionSourceAlpha:_o.ZERO,functionDestinationAlpha:_o.ONE_MINUS_SOURCE_ALPHA},Ast={enabled:!0,color:new B(0,0,0,0),equationRgb:ma.ADD,equationAlpha:ma.ADD,functionSourceRgb:_o.ONE,functionDestinationRgb:_o.ONE,functionSourceAlpha:_o.ONE,functionDestinationAlpha:_o.ONE},Mst={enabled:!0,color:new B(0,0,0,0),equationRgb:ma.ADD,equationAlpha:ma.ADD,functionSourceRgb:_o.ZERO,functionDestinationRgb:_o.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:_o.ZERO,functionDestinationAlpha:_o.ONE_MINUS_SOURCE_ALPHA};function cQ(e,t,n,i){let o=n[i.id];if(!d(o)){let r=De.getState(i);r.depthMask=!1,r.blending=t,o=De.fromCache(r),n[i.id]=o}return o}function Nst(e,t,n){return cQ(t,wst,e._translucentRenderStateCache,n)}function Ust(e,t,n){return cQ(t,Ast,e._translucentRenderStateCache,n)}function kst(e,t,n){return cQ(t,Mst,e._alphaRenderStateCache,n)}var Dst=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,Bst=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,Yst=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function lQ(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(d(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(u){return Be.replaceMain(u,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],l="";for(let u=0;u<c.length;u++){let m=c[u];l=`layout (location = ${m[1]}) out vec4 ${m[0]}; +${l}`}return a.sources.push(l),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function Ost(e,t){return lQ(e,t,"translucentMRT",Dst)}function Kst(e,t){return lQ(e,t,"translucentMultipass",Bst)}function Hst(e,t){return lQ(e,t,"alphaMultipass",Yst)}M0.prototype.createDerivedCommands=function(e,t,n){if(d(n)||(n={}),this._translucentMRTSupport){let a,c;return d(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=nt.shallowClone(e,n.translucentCommand),!d(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=Ost(t,e.shaderProgram),n.translucentCommand.renderState=Nst(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return d(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=nt.shallowClone(e,n.translucentCommand),n.alphaCommand=nt.shallowClone(e,n.alphaCommand),!d(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=Kst(t,e.shaderProgram),n.translucentCommand.renderState=Ust(this,t,e.renderState),n.alphaCommand.shaderProgram=Hst(t,e.shaderProgram),n.alphaCommand.renderState=kst(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function zst(e,t,n,i,o,r){let s,a,c,{context:l,frameState:u}=t,{useLogDepth:m,shadowState:p}=u,y=t._hdr,f=i.framebuffer,x=p.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(l,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(l,i);let _=e._opaqueFBO.framebuffer;for(i.framebuffer=e._translucentFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=m?s.derivedCommands.logDepth.command:s,s=y?s.derivedCommands.hdr.command:s,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,l,i,_);for(d(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,l,i,_)),i.framebuffer=e._alphaFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=m?s.derivedCommands.logDepth.command:s,s=y?s.derivedCommands.hdr.command:s,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,l,i,_);d(r)&&(s=r.unclassifiedCommand,a=x&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,l,i,_)),i.framebuffer=f}function Jst(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:l}=a,u=t._hdr,m=i.framebuffer,p=l.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let y=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;let f,x;for(let _=0;_<o.length;++_)f=o[_],f=c?f.derivedCommands.logDepth.command:f,f=u?f.derivedCommands.hdr.command:f,x=p&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand,n(x,t,s,i,y);d(r)&&(f=r.unclassifiedCommand,x=p&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand,n(x,t,s,i,y)),i.framebuffer=m}M0.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){Jst(this,e,t,n,i,o);return}zst(this,e,t,n,i,o)};M0.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};M0.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,B.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};M0.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};M0.prototype.isDestroyed=function(){return!1};M0.prototype.destroy=function(){return dbe(this),d(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),d(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),d(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var aF=M0;var JVi=T(S(),1);function cF(){this._framebuffer=new mi({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(cF.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Qst(e){e._framebuffer.destroy()}function jst(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new Na(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new He},o.viewport=new He,e._passState=o}cF.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&jst(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};cF.prototype.isDestroyed=function(){return!1};cF.prototype.destroy=function(){return Qst(this),ue(this)};var lF=cF;var oLi=T(S(),1);function uF(e){let t=new Na(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new He},t.viewport=new He,this._context=e,this._fb=new mi({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}uF.prototype.begin=function(e,t){let n=this._context,i=t.width,o=t.height;return He.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var dF=new B;uF.prototype.end=function(e){let t=g(e.width,1),n=g(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),l=0,u=0,m=0,p=-1;for(let y=0;y<s;++y){if(-a<=l&&l<=a&&-c<=u&&u<=c){let f=4*((c-u)*t+l+a);dF.red=B.byteToFloat(o[f]),dF.green=B.byteToFloat(o[f+1]),dF.blue=B.byteToFloat(o[f+2]),dF.alpha=B.byteToFloat(o[f+3]);let x=i.getObjectByPickColor(dF);if(d(x))return x}if(l===u||l<0&&-l===u||l>0&&l===1-u){let f=m;m=-p,p=f}l+=m,u+=p}};uF.prototype.isDestroyed=function(){return!1};uF.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var mF=uF;var uLi=T(S(),1);function N0(){this._numSamples=1,this._colorFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new B(0,0,0,0),this._clearCommand=new ti({color:new B(0,0,0,0),depth:1,owner:this})}function qst(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(N0.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});N0.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};N0.prototype.clear=function(e,t,n){B.clone(n,this._clearCommand.color),B.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};N0.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};N0.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};N0.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};N0.prototype.isDestroyed=function(){return!1};N0.prototype.destroy=function(){return qst(this),ue(this)};var tT=N0;var cRi=T(S(),1);var pLi=T(S(),1);function nT(){}nT.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};nT.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=Be.findPositionVarying(e),s=d(r);if(t&&!s){let a=o.length;for(let l=0;l<a;++l)o[l]=Be.replaceMain(o[l],"czm_shadow_cast_main");let c=`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`;o.push(c)}return new Be({defines:i,sources:o})};nT.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=Be.findPositionVarying(e),a=d(s);a||(s="v_positionEC");let c=r.length;for(let u=0;u<c;++u)r[u]=Be.replaceMain(r[u],"czm_shadow_cast_main");let l="";return t&&(a||(l+=`in vec3 v_positionEC; +`),l+=`uniform vec4 shadowMap_lightPositionEC; +`),i?l+=`void main() +{ +`:l+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?l+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?l+=` out_FragColor = vec4(1.0); +`:l+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,l+=`} +`,r.push(l),new Be({defines:o,sources:r})};nT.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,l=e.debugCascadeColors,u=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${l}${u}${t}${n}${i}`};nT.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new Be({defines:i,sources:o})};nT.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=Be.findNormalVarying(e),s=!i&&d(r)||i&&o,a=Be.findPositionVarying(e),c=d(a),l=t._usesDepthTexture,u=t._polygonOffsetSupported,m=t._isPointLight,p=t._isSpotLight,y=t._numberOfCascades>1,f=t.debugCascadeColors,x=t.softShadows,_=m?t._pointBias:i?t._terrainBias:t._primitiveBias,C=e.defines.slice(0),V=e.sources.slice(0),L=V.length;for(let X=0;X<L;++X)V[X]=Be.replaceMain(V[X],"czm_shadow_receive_main");m?C.push("USE_CUBE_MAP_SHADOW"):l&&C.push("USE_SHADOW_DEPTH_TEXTURE"),x&&!m&&C.push("USE_SOFT_SHADOWS"),y&&n&&i&&(s?C.push("ENABLE_VERTEX_LIGHTING"):C.push("ENABLE_DAYNIGHT_SHADING")),n&&_.normalShading&&s&&(C.push("USE_NORMAL_SHADING"),_.normalShadingSmooth>0&&C.push("USE_NORMAL_SHADING_SMOOTH"));let Z="";m?Z+=`uniform samplerCube shadowMap_textureCube; +`:Z+=`uniform sampler2D shadowMap_texture; +`;let G;return c?G=` return vec4(${a}, 1.0); +`:G=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,Z+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${G}} +vec3 getNormalEC() +{ +${s?` return normalize(${r}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${_.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,Z+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,Z+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?Z+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:u||(Z+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),m?Z+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?Z+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:y?Z+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${f?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:Z+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,Z+=` out_FragColor.rgb *= visibility; +} +`,V.push(Z),new Be({defines:C,sources:V})};var If=nT;function Wf(e){e=g(e,g.EMPTY_OBJECT);let t=e.context;this._enabled=g(e.enabled,!0),this._softShadows=g(e.softShadows,!1),this._normalOffset=g(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=g(e.fromLightSource,!0),this.darkness=g(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=g(e.fadingEnabled,!0),this.maximumDistance=g(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(Mt.isInternetExplorer()||Mt.isEdge()||(Mt.isChrome()||Mt.isFirefox())&&Mt.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new w,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new se,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new _k,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new ce,this._isPointLight=g(e.isPointLight,!1),this._pointLightRadius=g(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:g(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?g(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new D,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new yr:d(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new se,new se],this._cascadeMatrices=[new w,new w,new w,new w],this._cascadeDistances=new se;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new $st(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,uQ(this),this._clearCommand=new ti({depth:1,color:new B}),this._clearPassState=new Na(t),this._size=g(e.size,2048),this.size=this._size}Wf.MAXIMUM_DISTANCE=2e4;function $st(e){this.camera=new _k,this.passState=new Na(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function dQ(e,t){return De.fromCache({cull:{enabled:!0,face:yi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function uQ(e){let t=!e._usesDepthTexture;e._primitiveRenderState=dQ(t,e._primitiveBias),e._terrainRenderState=dQ(t,e._terrainBias),e._pointRenderState=dQ(t,e._pointBias)}Wf.prototype.debugCreateRenderStates=function(){uQ(this)};Object.defineProperties(Wf.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){rat(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function mQ(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;d(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function eat(e,t){let n=new Kl({context:t,width:e._textureSize.x,height:e._textureSize.y,format:xc.DEPTH_COMPONENT16}),i=new Wt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST}),o=new Us({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function tat(e,t){let n=new Wt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:st.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST}),i=new Us({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function nat(e,t){let n=new Kl({context:t,width:e._textureSize.x,height:e._textureSize.y,format:xc.DEPTH_COMPONENT16}),i=new Ma({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new Us({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function hbe(e,t){e._isPointLight?nat(e,t):e._usesDepthTexture?tat(e,t):eat(e,t)}function iat(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==ne.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,uQ(e),mQ(e),hbe(e,t))}function oat(e,t){(!d(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(mQ(e),hbe(e,t),iat(e,t),fbe(e,t))}function fbe(e,t,n){n=g(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function rat(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=kt.maximumCubeMapSize>=t?t:kt.maximumCubeMapSize,o.x=t,o.y=t;let r=new He(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=kt.maximumTextureSize>=t?t:kt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new He(0,0,t,t)):i===4&&(t=kt.maximumTextureSize>=t*2?t:kt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new He(0,0,t,t),n[1].passState.viewport=new He(t,0,t,t),n[2].passState.viewport=new He(0,t,t,t),n[3].passState.viewport=new He(t,t,t,t));e._clearPassState.viewport=new He(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,l=a.y/o.y,u=a.width/o.x,m=a.height/o.y;s.textureOffsets=new w(u,0,0,c,0,m,0,l,0,0,1,0,0,0,0,1)}}var sat=new He;function aat(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=Re.OVERLAY,i}function cat(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=sat;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;d(a)||(a=aat(e,n),e._debugShadowViewCommand=a),(!d(a.renderState)||!He.equals(a.renderState.viewport,s))&&(a.renderState=De.fromCache({viewport:He.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var Pf=new Array(8);Pf[0]=new se(-1,-1,-1,1);Pf[1]=new se(1,-1,-1,1);Pf[2]=new se(1,1,-1,1);Pf[3]=new se(-1,1,-1,1);Pf[4]=new se(-1,-1,1,1);Pf[5]=new se(1,-1,1,1);Pf[6]=new se(1,1,1,1);Pf[7]=new se(-1,1,1,1);var Hy=new w,hQ=new Array(8);for(let e=0;e<8;++e)hQ[e]=new se;function lat(e,t){let n=new _t({geometry:new sm({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:Ut.fromColor(t)}}),i=new _t({geometry:new e0({radius:.5}),attributes:{color:Ut.fromColor(t)}});return new Zn({geometryInstances:[n,i],appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var dat=[B.RED,B.GREEN,B.BLUE,B.MAGENTA],uat=new h;function mat(e,t){cat(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Zf({camera:e._sceneCamera,color:B.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Zf({camera:e._shadowMapCamera,color:B.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new Zf({camera:e._passes[i].camera,color:dat[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!d(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Ae.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,uat),a=w.fromTranslationQuaternionRotationScale(i,o,s,Hy);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=lat(a,B.YELLOW)}e._debugLightFrustum.update(t)}else(!d(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Zf({camera:e._shadowMapCamera,color:B.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function _k(){this.viewMatrix=new w,this.inverseViewMatrix=new w,this.frustum=void 0,this.positionCartographic=new he,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new w}_k.prototype.clone=function(e){w.clone(e.viewMatrix,this.viewMatrix),w.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),he.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var hat=new w(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);_k.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return w.multiply(t,e,this.viewProjectionMatrix),w.multiply(hat,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var fat=new Array(5),pat=new Ri,bat=new Array(4),pbe=new h,bbe=new h;function yat(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,l=r/o,u=.9,m=!1;t.shadowState.closestObjectSize<200&&(m=!0,u=.9);let p=bat,y=fat;for(y[0]=o,y[s]=r,a=0;a<s;++a){let M=(a+1)/s,b=o*Math.pow(l,M),R=o+c*M,E=W.lerp(R,b,u);y[a+1]=E,p[a]=E-y[a]}if(m){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let M=y[0];for(a=0;a<s-1;++a)M+=p[a],y[a+1]=M}se.unpack(y,0,e._cascadeSplits[0]),se.unpack(y,1,e._cascadeSplits[1]),se.unpack(p,0,e._cascadeDistances);let f=n.frustum,x=f.left,_=f.right,C=f.bottom,V=f.top,L=f.near,Z=f.far,G=n.positionWC,X=n.directionWC,P=n.upWC,v=i.frustum.clone(pat),A=n.getViewProjection();for(a=0;a<s;++a){v.near=y[a],v.far=y[a+1];let M=w.multiply(v.projectionMatrix,i.viewMatrix,Hy),b=w.inverse(M,Hy),R=w.multiply(A,b,Hy),E=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,pbe),I=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,bbe);for(let O=0;O<8;++O){let U=se.clone(Pf[O],hQ[O]);w.multiplyByVector(R,U,U),h.divideByScalar(U,U.w,U),h.minimumByComponent(U,E,E),h.maximumByComponent(U,I,I)}E.x=Math.max(E.x,0),E.y=Math.max(E.y,0),E.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let F=e._passes[a],N=F.camera;N.clone(n);let Y=N.frustum;Y.left=x+E.x*(_-x),Y.right=x+I.x*(_-x),Y.bottom=C+E.y*(V-C),Y.top=C+I.y*(V-C),Y.near=L+E.z*(Z-L),Y.far=L+I.z*(Z-L),F.cullingVolume=N.frustum.computeCullingVolume(G,X,P);let k=e._cascadeMatrices[a];w.multiply(N.getViewProjection(),i.inverseViewMatrix,k),w.multiply(F.textureOffsets,k,k)}}var gat=new w,xat=new h,_at=new h,ube=new h;function Tat(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=w.multiply(i.frustum.projectionMatrix,i.viewMatrix,Hy),r=w.inverse(o,Hy),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,W.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,xat);a=h.cross(c,s,_at),h.normalize(a,a),h.normalize(c,c);let l=h.fromElements(0,0,0,ube),u=w.computeView(l,s,a,c,gat),m=w.multiply(u,r,Hy),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,pbe),y=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,bbe);for(let Z=0;Z<8;++Z){let G=se.clone(Pf[Z],hQ[Z]);w.multiplyByVector(m,G,G),h.divideByScalar(G,G.w,G),h.minimumByComponent(G,p,p),h.maximumByComponent(G,y,y)}y.z+=1e3,p.z-=10;let f=ube;f.x=-(.5*(p.x+y.x)),f.y=-(.5*(p.y+y.y)),f.z=-y.z;let x=w.fromTranslation(f,Hy);u=w.multiply(x,u,u);let _=.5*(y.x-p.x),C=.5*(y.y-p.y),V=y.z-p.z,L=n.frustum;L.left=-_,L.right=_,L.bottom=-C,L.top=C,L.near=.01,L.far=V,w.clone(u,n.viewMatrix),w.inverse(u,n.inverseViewMatrix),w.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var Sat=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],Cat=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],Vat=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function Lat(e,t){let n=new Ri;n.fov=W.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=Sat[i],o.upWC=Cat[i],o.rightWC=Vat[i],w.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),w.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Rat=new h,Zat=new h,ybe=new ce,mbe=ybe.center;function Gat(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=ybe;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Rat),s=h.negate(i.directionWC,Zat),a=h.dot(r,s);if(e.fadingEnabled){let c=W.clamp(a/.1,0,1);e._darkness=W.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===qt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ce.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,mbe),mbe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===qt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ce.clone(o,e._boundingSphere)}}function Eat(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,r.directionWC):e._isPointLight?h.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;w.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),w.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=co.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Gat(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}Wf.prototype.update=function(e){if(Eat(this,e),this._needsUpdate)if(oat(this,e.context),this._isPointLight&&Lat(this,e),this._cascadesEnabled&&(Tat(this,e),this._numberOfCascades>1&&yat(this,e)),this._isPointLight)this._shadowMapCullingVolume=Qr.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;w.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&mat(this,e)};Wf.prototype.updatePass=function(e,t){fbe(this,e,t)};var Xat=new D;function gbe(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=Xat;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,se.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return se.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new se,combinedUniforms2:new se};return xt(t,o,!1)}function Iat(e,t,n,i,o,r){let s,a,c;if(d(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=nt.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!d(s)||o!==n.shaderProgram.id||t){let l=n.shaderProgram,u=n.pass===Re.GLOBE,m=n.pass!==Re.TRANSLUCENT,p=e._isPointLight,y=e._usesDepthTexture,f=If.getShadowCastShaderKeyword(p,u,y,m);if(s=i.shaderCache.getDerivedShaderProgram(l,f),!d(s)){let _=l.vertexShaderSource,C=l.fragmentShaderSource,V=If.createShadowCastVertexShader(_,p,u),L=If.createShadowCastFragmentShader(C,p,y,m);s=i.shaderCache.createDerivedShaderProgram(l,f,{vertexShaderSource:V,fragmentShaderSource:L,attributeLocations:l._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:u&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Oe(a,!1),a.cull=Oe(a.cull,!1),a.cull.enabled=!1,a=De.fromCache(a)),c=gbe(e,n.uniformMap,u)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}Wf.createReceiveDerivedCommand=function(e,t,n,i,o){d(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,l=t.pass===Re.GLOBE,u=!1;if(l&&(u=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let m,p;d(o.receiveCommand)&&(m=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=nt.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let y=o.receiveShaderCastShadows!==t.castShadows,f=o.receiveShaderProgramId!==t.shaderProgram.id;if(!d(m)||f||n||y){let x=If.getShadowReceiveShaderKeyword(e[0],t.castShadows,l,u);if(m=i.shaderCache.getDerivedShaderProgram(s,x),!d(m)){let _=If.createShadowReceiveVertexShader(a,l,u),C=If.createShadowReceiveFragmentShader(c,e[0],t.castShadows,l,u);m=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:_,fragmentShaderSource:C,attributeLocations:s._attributeLocations})}p=gbe(e[0],t.uniformMap,l)}o.receiveCommand.shaderProgram=m,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};Wf.createCastDerivedCommand=function(e,t,n,i,o){if(d(o)||(o={}),t.castShadows){let r=o.castCommands;d(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=Iat(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};Wf.prototype.isDestroyed=function(){return!1};Wf.prototype.destroy=function(){mQ(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return ue(this)};var U0=Wf;var IRi=T(S(),1);var dRi=T(S(),1),iT=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var Wat=!1;function zy(e){this._drawClassificationFBO=new mi({createDepthAttachments:!1}),this._accumulationFBO=new mi({createDepthAttachments:!1}),this._packFBO=new mi,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ti({color:new B(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ti({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new He,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(zy.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function xbe(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function _be(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function Pat(e,t,n,i){xbe(e),e._translucentDepthStencilTexture=new Wt({context:t,width:n,height:i,pixelFormat:st.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST})}function vat(e,t,n,i){_be(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function Fat(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&(Pat(e,t,o,r),vat(e,t,o,r));let s,a;if(d(e._packDepthCommand)||(s=new Be({sources:[DP]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!d(e._compositeCommand)){s=new Be({sources:[iT]}),a={colorTexture:function(){return e._textureToComposite}},Wat&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let u=e._compositeCommand,m=u.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(m,"pick",{vertexShaderSource:m.vertexShaderSource,fragmentShaderSource:new Be({sources:s.sources,defines:["PICK"]}),attributeLocations:m._attributeLocations}),y=nt.shallowClone(u);y.shaderProgram=p,u.derivedCommands.pick=y}d(e._copyCommand)||(s=new Be({sources:[iT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),d(e._accumulateCommand)||(s=new Be({sources:[iT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!He.equals(e._viewport,n.viewport),l=c!==e._useScissorTest;e._useScissorTest=c,He.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=He.clone(n.viewport,e._scissorRectangle),l=!0),(!d(e._rsDepth)||!He.equals(e._viewport,e._rsDepth.viewport)||l)&&(e._rsDepth=De.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),d(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!d(e._rsAccumulate)||!He.equals(e._viewport,e._rsAccumulate.viewport)||l)&&(e._rsAccumulate=De.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Dn.EQUAL,reference:wt.CESIUM_3D_TILE_MASK}})),d(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!d(e._rsComp)||!He.equals(e._viewport,e._rsComp.viewport)||l)&&(e._rsComp=De.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),d(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}zy.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=i.length,s,a,c=e.frameState.useLogDepth,l=e.context,u=n.framebuffer;for(a=0;a<r;++a)if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,s.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}if(this._hasTranslucentDepth){for(Fat(this,l,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(l,n),a=0;a<r;++a){if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,!s.depthForTranslucentClassification)continue;let m=s.derivedCommands.depth.depthOnlyCommand;t(m,e,l,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(l,n)),n.framebuffer=u}};zy.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;this._frustumsDrawn===2&&(n.framebuffer=this._accumulationFBO.framebuffer,this._copyCommand.execute(o,n)),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(Re.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[Re.CESIUM_3D_TILE_CLASSIFICATION],l=i.indices[Re.CESIUM_3D_TILE_CLASSIFICATION];for(let u=0;u<l;++u)t(c[u],e,o,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};zy.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),wat(this,e,t)};function wat(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}zy.prototype.isSupported=function(){return this._supported};zy.prototype.isDestroyed=function(){return!1};zy.prototype.destroy=function(){return xbe(this),_be(this),d(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),d(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var hF=zy;function Aat(){this.command=void 0,this.near=void 0,this.far=void 0}function Tk(e,t,n){let i=e.context,o;i.depthTexture&&(o=new rF);let r;e._useOIT&&i.depthTexture&&(r=new aF(i));let s=new Na(i);s.viewport=He.clone(n),this.camera=t,this._cameraClone=co.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new mF(i),this.pickDepthFramebuffer=new lF,this.sceneFramebuffer=new tT,this.globeDepth=o,this.globeTranslucencyFramebuffer=new sF,this.oit=r,this.translucentTileClassification=new hF(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var Tbe=new h,Sbe=new h;function Mat(e,t){let n=Math.max(Math.abs(e.x),Math.abs(t.x)),i=Math.max(Math.abs(e.y),Math.abs(t.y)),o=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.max(Math.max(n,i),o)}function Nat(e,t,n){let i=1/Math.max(1,Mat(e.position,t.position));return h.multiplyByScalar(e.position,i,Tbe),h.multiplyByScalar(t.position,i,Sbe),h.equalsEpsilon(Tbe,Sbe,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&w.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}Tk.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return Nat(t,n,W.EPSILON15)?(this._cameraStartFired&&gi()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=gi(),co.clone(t,n),!0)};function Uat(e,t,n,i){let o=t.frameState,r=o.camera,s=o.useLogDepth?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,a=t.mode===ie.SCENE2D,c=t.nearToFarDistance2D;i*=1+W.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let l;a?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),l=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):l=Math.ceil(Math.log(i/n)/Math.log(s));let u=e.frustumCommandsList;u.length=l;for(let m=0;m<l;++m){let p,y;a?(p=Math.min(i-c,n+m*c),y=Math.min(i,p+c)):(p=Math.max(n,Math.pow(s,m)*n),y=Math.min(i,s*p));let f=u[m];d(f)?(f.near=p,f.far=y):f=u[m]=new oF(p,y)}}function kat(e,t,n,i,o){t.debugShowFrustums&&(n.debugOverlappingFrustums=0);let r=e.frustumCommandsList,s=r.length;for(let a=0;a<s;++a){let c=r[a],l=c.near,u=c.far;if(i>u)continue;if(o<l)break;let m=n.pass,p=c.indices[m]++;if(c.commands[m][p]=n,t.debugShowFrustums&&(n.debugOverlappingFrustums|=1<<a),n.executeInClosestFrustum)break}if(t.debugShowFrustums){let a=e.debugFrustumStatistics.commandsInFrustums;a[n.debugOverlappingFrustums]=d(a[n.debugOverlappingFrustums])?a[n.debugOverlappingFrustums]+1:1,++e.debugFrustumStatistics.totalCommands}t.updateDerivedCommands(n)}var Cbe=new Qr,Dat=new Tc;Tk.prototype.createPotentiallyVisibleSet=function(e){let t=e.frameState,n=t.camera,i=n.directionWC,o=n.positionWC,r=e._computeCommandList,s=e._overlayCommandList,a=t.commandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let c=this.frustumCommandsList,l=c.length,u=Re.NUMBER_OF_PASSES;for(let R=0;R<l;++R)for(let E=0;E<u;++E)c[R].indices[E]=0;r.length=0,s.length=0;let m=this._commandExtents,p=m.length,y=0,f=+Number.MAX_VALUE,x=-Number.MAX_VALUE,_=t.shadowState.shadowsEnabled,C=+Number.MAX_VALUE,V=-Number.MAX_VALUE,L=Number.MAX_VALUE,Z=t.mode===ie.SCENE3D?t.occluder:void 0,G=t.cullingVolume,X=Cbe.planes;for(let R=0;R<5;++R)X[R]=G.planes[R];G=Cbe;let P=a.length;for(let R=0;R<P;++R){let E=a[R],I=E.pass;if(I===Re.COMPUTE)r.push(E);else if(I===Re.OVERLAY)s.push(E);else{let F,N,Y=E.boundingVolume;if(d(Y)){if(!e.isVisible(E,G,Z))continue;let O=Y.computePlaneDistances(o,i,Dat);if(F=O.start,N=O.stop,f=Math.min(f,F),x=Math.max(x,N),_&&E.receiveShadows&&F<U0.MAXIMUM_DISTANCE&&!(I===Re.GLOBE&&F<-100&&N>100)){let U=N-F;I!==Re.GLOBE&&F<100&&(L=Math.min(L,U)),C=Math.min(C,F),V=Math.max(V,N)}}else E instanceof ti?(F=n.frustum.near,N=n.frustum.far):(F=n.frustum.near,N=n.frustum.far,f=Math.min(f,F),x=Math.max(x,N));let k=m[y];d(k)||(k=m[y]=new Aat),k.command=E,k.near=F,k.far=N,y++}}_&&(C=Math.min(Math.max(C,n.frustum.near),n.frustum.far),V=Math.max(Math.min(V,n.frustum.far),C)),_&&(t.shadowState.nearPlane=C,t.shadowState.farPlane=V,t.shadowState.closestObjectSize=L),Uat(this,e,f,x);let v,A;for(v=0;v<y;v++)A=m[v],kat(this,e,A.command,A.near,A.far);if(y<p)for(v=y;v<p&&(A=m[v],!!d(A.command));v++)A.command=void 0;let M=c.length,b=t.frustumSplits;b.length=M+1;for(let R=0;R<M;++R)b[R]=c[R].near,R===M-1&&(b[R+1]=c[R].far)};Tk.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e,t=this.pickDepths,n=t.length;for(e=0;e<n;++e)t[e].destroy()};var oT=Tk;var Lbe=.1,Bat=new Du({pass:Xo.MOST_DETAILED_PRELOAD}),Yat=new Du({pass:Xo.MOST_DETAILED_PICK}),fQ=new Du({pass:Xo.PICK});function La(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new He(0,0,1,1),n=new co(e);n.frustum=new en({width:Lbe,aspectRatio:1,near:.1}),this._pickOffscreenView=new oT(e,n,t)}La.prototype.update=function(){this._pickPositionCacheDirty=!0};La.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return d(i)||(i=new iF,n[t]=i),i};var Oat=new yr,Kat=new h,Sk=new h,Hat=new D,zat=new w;function Jat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;d(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let l=2*(o.height-t.y-o.y)/o.height-1;l*=(s.top-s.bottom)*.5;let u=w.clone(r.transform,zat);r._setTransform(w.IDENTITY);let m=h.clone(r.position,Kat);h.multiplyByScalar(r.right,c,Sk),h.add(Sk,m,m),h.multiplyByScalar(r.up,l,Sk),h.add(Sk,m,m),r._setTransform(u),e.mode===ie.SCENE2D&&h.fromElements(m.z,m.x,m.y,m);let p=s.getPixelDimensions(o.width,o.height,1,1,Hat),y=Oat;return y.right=p.x*.5,y.left=-y.right,y.top=p.y*.5,y.bottom=-y.top,y.near=s.near,y.far=s.far,y.computeCullingVolume(m,r.directionWC,r.upWC)}var Qat=new Kc,jat=new D;function qat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),l=s.aspectRatio*c,u=2*(t.x-o.x)/o.width-1,m=2*(o.height-t.y-o.y)/o.height-1,p=u*a*l,y=m*a*c,f=s.getPixelDimensions(o.width,o.height,1,1,jat),x=f.x*n*.5,_=f.y*i*.5,C=Qat;return C.top=y+_,C.bottom=y-_,C.right=p+x,C.left=p-x,C.near=a,C.far=s.far,C.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function Rbe(e,t,n,i,o){let r=e.camera.frustum;return r instanceof en||r instanceof yr?Jat(e,t,n,i,o):qat(e,t,n,i,o)}var dV=3,fF=3,vf=new He(0,0,dV,fF),Zbe=new D,pQ=new B(0,0,0,0);La.prototype.pick=function(e,t,n,i){dV=g(n,3),fF=g(i,dV);let o=e.context,r=o.uniformState,s=e.frameState,a=e.defaultView;e.view=a;let c=a.viewport;c.x=0,c.y=0,c.width=o.drawingBufferWidth,c.height=o.drawingBufferHeight;let l=a.passState;l.viewport=He.clone(c,l.viewport);let u=Ji.transformWindowToDrawingBuffer(e,t,Zbe);e.jobScheduler.disableThisFrame(),e.updateFrameState(),s.cullingVolume=Rbe(e,u,dV,fF,c),s.invertClassification=!1,s.passes.pick=!0,s.tilesetPassState=fQ,r.update(s),e.updateEnvironment(),vf.x=u.x-(dV-1)*.5,vf.y=e.drawingBufferHeight-u.y-(fF-1)*.5,vf.width=dV,vf.height=fF,l=a.pickFramebuffer.begin(vf,a.viewport),e.updateAndExecuteCommands(l,pQ),e.resolveFramebuffers(l);let m=a.pickFramebuffer.end(vf);return o.endFrame(),m};function $at(e,t){let n=e.context,i=e.frameState,o=e.environmentState,r=e.defaultView;e.view=r;let s=r.viewport;s.x=0,s.y=0,s.width=n.drawingBufferWidth,s.height=n.drawingBufferHeight;let a=r.passState;a.viewport=He.clone(s,a.viewport),e.clearPasses(i.passes),i.passes.pick=!0,i.passes.depth=!0,i.cullingVolume=Rbe(e,t,1,1,s),i.tilesetPassState=fQ,e.updateEnvironment(),o.renderTranslucentDepthForPick=!0,a=r.pickDepthFramebuffer.update(n,t,s),e.updateAndExecuteCommands(a,pQ),e.resolveFramebuffers(a),n.endFrame()}var ect=new Ri,tct=new Kc,nct=new en,ict=new yr;La.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let o=e.frameState,r=e.context,s=r.uniformState,a=e.defaultView;e.view=a;let c=Ji.transformWindowToDrawingBuffer(e,t,Zbe);e.pickTranslucentDepth?$at(e,c):(e.updateFrameState(),s.update(o),e.updateEnvironment()),c.y=e.drawingBufferHeight-c.y;let l=e.camera,u;d(l.frustum.fov)?u=l.frustum.clone(ect):d(l.frustum.infiniteProjectionMatrix)?u=l.frustum.clone(tct):d(l.frustum.width)?u=l.frustum.clone(nct):u=l.frustum.clone(ict);let m=a.frustumCommandsList,p=m.length;for(let y=0;y<p;++y){let x=this.getPickDepth(e,y).getDepth(r,c.x,c.y);if(d(x)&&x>0&&x<1){let _=m[y],C;return e.mode===ie.SCENE2D?(C=l.position.z,l.position.z=C-_.near+1,u.far=Math.max(1,_.far-_.near),u.near=1,s.update(o),s.updateFrustum(u)):(u.near=_.near*(y!==0?e.opaqueFrustumNearOffset:1),u.far=_.far,s.updateFrustum(u)),n=Ji.drawingBufferToWgs84Coordinates(e,c,x,n),e.mode===ie.SCENE2D&&(l.position.z=C,s.update(o)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var oct=new he;La.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),d(n)&&e.mode!==ie.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,oct);o.cartographicToCartesian(r,n)}return n};function Gbe(e,t){let n,i,o=[],r=[],s=[],a=[];d(e)||(e=Number.MAX_VALUE);let c=t();for(;d(c);){let l=c.object,u=c.position,m=c.exclude;if(d(u)&&!d(l)){o.push(c);break}if(!d(l)||!d(l.primitive)||!m&&(o.push(c),0>=--e))break;let p=l.primitive,y=!1;typeof p.getGeometryInstanceAttributes=="function"&&d(l.id)&&(i=p.getGeometryInstanceAttributes(l.id),d(i)&&d(i.show)&&(y=!0,i.show=gn.toValue(!1,i.show),s.push(i))),l instanceof Ss&&(y=!0,l.show=!1,a.push(l)),y||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=gn.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}La.prototype.drillPick=function(e,t,n,i,o){let r=this;return Gbe(n,function(){let c=r.pick(e,t,i,o);if(d(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var Vbe=new h,rct=new h;function sct(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function Ebe(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,Vbe),s=h.cross(o,r,Vbe),a=h.cross(o,s,rct);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=g(n,Lbe),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function act(e,t,n){let i=t.frameState,o=n.ray,r=n.width,s=n.tilesets,a=e._pickOffscreenView.camera,c=Ebe(e,o,r,a),l=Bat;l.camera=a,l.cullingVolume=c;let u=!0,m=s.length;for(let p=0;p<m;++p){let y=s[p];y.show&&t.primitives.contains(y)&&(y.updateForPass(i,l),u=u&&l.ready)}return u&&n._completePick(),u}La.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)act(this,e,t[n])&&t.splice(n--,1)};function Xbe(e,t,n){let i=e.length;for(let o=0;o<i;++o){let r=e.get(o);r.show&&(d(r.isCesium3DTileset)?(!d(t)||t.indexOf(r)===-1)&&n.push(r):r instanceof Zl&&Xbe(r,t,n))}}function Ck(e,t,n,i,o,r){let s=[];if(Xbe(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new sct(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function cct(e,t){return!d(e)||!d(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function lct(e,t,n,i,o,r,s){let a=t.context,c=a.uniformState,l=t.frameState,u=e._pickOffscreenView;t.view=u,Ebe(e,n,o,u.camera),vf=He.clone(u.viewport,vf);let m=u.pickFramebuffer.begin(vf,u.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),l.invertClassification=!1,l.passes.pick=!0,l.passes.offscreen=!0,s?l.tilesetPassState=Yat:l.tilesetPassState=fQ,c.update(l),t.updateEnvironment(),t.updateAndExecuteCommands(m,pQ),t.resolveFramebuffers(m);let p,y=u.pickFramebuffer.end(vf);if(t.context.depthTexture){let f=u.frustumCommandsList.length;for(let x=0;x<f;++x){let C=e.getPickDepth(t,x).getDepth(a,0,0);if(d(C)&&C>0&&C<1){let V=u.frustumCommandsList[x],L=V.near*(x!==0?t.opaqueFrustumNearOffset:1),Z=V.far,G=L+C*(Z-L);p=Sn.getPoint(n,G);break}}}if(t.view=t.defaultView,a.endFrame(),d(y)||d(p))return{object:y,position:p,exclude:!d(p)&&r||cct(y,i)}}function Ibe(e,t,n,i,o,r,s,a){return Gbe(i,function(){return lct(e,t,n,o,r,s,a)})}function uV(e,t,n,i,o,r,s){let a=Ibe(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function Wbe(e,t,n,i,o,r,s,a){return Ibe(e,t,n,i,o,r,s,a)}function Vk(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}La.prototype.pickFromRay=function(e,t,n,i){return uV(this,e,t,n,i,!1,!1)};La.prototype.drillPickFromRay=function(e,t,n,i,o){return Wbe(this,e,t,n,i,o,!1,!1)};La.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=Sn.clone(t),n=d(n)?n.slice():n,Vk(e,Ck(o,e,t,n,i,function(){return uV(o,e,t,n,i,!1,!0)}))};La.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=Sn.clone(t),i=d(i)?i.slice():i,Vk(e,Ck(r,e,t,i,o,function(){return Wbe(r,e,t,n,i,o,!1,!0)}))};var dct=new h,uct=new h,mct=new Sn,Pbe=new he;function bQ(e,t){let n=e.globe,i=d(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=li._defaultMaxTerrainHeight,r=i.geodeticSurfaceNormalCartographic(t,uct),s=he.toCartesian(t,i,dct),a=mct;a.origin=s,a.direction=r;let c=new Sn;return Sn.getPoint(a,o,c.origin),h.negate(r,c.direction),c}function vbe(e,t){let n=e.globe,i=d(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=he.fromCartesian(t,i,Pbe);return bQ(e,o)}function Fbe(e,t){let n=e.globe,i=d(n)?n.ellipsoid:e.mapProjection.ellipsoid;return he.fromCartesian(t,i,Pbe).height}function hct(e,t,n,i,o){let r=bQ(t,n);return Ck(e,t,r,i,o,function(){let s=uV(e,t,r,i,o,!0,!0);if(d(s))return Fbe(t,s.position)})}function fct(e,t,n,i,o,r){let s=vbe(t,n);return Ck(e,t,s,i,o,function(){let a=uV(e,t,s,i,o,!0,!0);if(d(a))return h.clone(a.position,r)})}La.prototype.sampleHeight=function(e,t,n,i){let o=bQ(e,t),r=uV(this,e,o,n,i,!0,!1);if(d(r))return Fbe(e,r.position)};La.prototype.clampToHeight=function(e,t,n,i,o){let r=vbe(e,t),s=uV(this,e,r,n,i,!0,!1);if(d(s))return h.clone(s.position,o)};La.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=d(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=hct(this,e,t[s],n,i);return Vk(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};La.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=d(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=fct(this,e,t[s],n,i,t[s]);return Vk(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};La.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var pF=La;var zEi=T(S(),1);var CEi=T(S(),1);var EZi=T(S(),1),bF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var IZi=T(S(),1),yF=`uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform float stepSize; +uniform float frustumLength; + +in vec2 v_textureCoordinates; + +vec4 clipToEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + posEC = posEC / posEC.w; + return posEC; +} + +//Reconstruct Normal Without Edge Removation +vec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize) +{ + vec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU); + vec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD); + vec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL); + vec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR); + + vec3 up = posInCamera.xyz - posInCameraUp.xyz; + vec3 down = posInCameraDown.xyz - posInCamera.xyz; + vec3 left = posInCamera.xyz - posInCameraLeft.xyz; + vec3 right = posInCameraRight.xyz - posInCamera.xyz; + + vec3 DX = length(left) < length(right) ? left : right; + vec3 DY = length(up) < length(down) ? up : down; + + return normalize(cross(DY, DX)); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = clipToEye(v_textureCoordinates, depth); + + if (posInCamera.z > frustumLength) + { + out_FragColor = vec4(1.0); + return; + } + + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + float depthU = czm_readDepth(depthTexture, v_textureCoordinates - vec2(0.0, pixelSize.y)); + float depthD = czm_readDepth(depthTexture, v_textureCoordinates + vec2(0.0, pixelSize.y)); + float depthL = czm_readDepth(depthTexture, v_textureCoordinates - vec2(pixelSize.x, 0.0)); + float depthR = czm_readDepth(depthTexture, v_textureCoordinates + vec2(pixelSize.x, 0.0)); + vec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize); + + float ao = 0.0; + vec2 sampleDirection = vec2(1.0, 0.0); + float gapAngle = 90.0 * czm_radiansPerDegree; + + // RandomNoise + float randomVal = texture(randomTexture, v_textureCoordinates / pixelSize / 255.0).x; + + //Loop for each direction + for (int i = 0; i < 4; i++) + { + float newGapAngle = gapAngle * (float(i) + randomVal); + float cosVal = cos(newGapAngle); + float sinVal = sin(newGapAngle); + + //Rotate Sampling Direction + vec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y); + float localAO = 0.0; + float localStepSize = stepSize; + + //Loop for each step + for (int j = 0; j < 6; j++) + { + vec2 newCoords = v_textureCoordinates + rotatedSampleDirection * localStepSize * pixelSize; + + //Exception Handling + if(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0) + { + break; + } + + float stepDepthInfo = czm_readDepth(depthTexture, newCoords); + vec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo); + vec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz; + float len = length(diffVec); + + if (len > lengthCap) + { + break; + } + + float dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 ); + float weight = len / lengthCap; + weight = 1.0 - weight * weight; + + if (dotVal < bias) + { + dotVal = 0.0; + } + + localAO = max(localAO, dotVal * weight); + localStepSize += stepSize; + } + ao += localAO; + } + + ao /= 4.0; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var PZi=T(S(),1),gF=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var FZi=T(S(),1),xF=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var AZi=T(S(),1),_F=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var NZi=T(S(),1),TF=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var kZi=T(S(),1),SF=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var BZi=T(S(),1),CF=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var OZi=T(S(),1),VF=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var HZi=T(S(),1),LF=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var JZi=T(S(),1),RF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var jZi=T(S(),1),ZF=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var $Zi=T(S(),1),Jy=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var tGi=T(S(),1),GF=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var iGi=T(S(),1),EF=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var rGi=T(S(),1),XF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var aGi=T(S(),1),IF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var lGi=T(S(),1),WF=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;var gGi=T(S(),1);function rT(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new mi,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new D,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(rT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(d(e))return e[e.length-1].getColorTexture(0)}}});function wbe(e){let t=e._framebuffers;if(!d(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function pct(e,t){wbe(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new mi,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function Abe(e){let t=e._commands;if(!d(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function bct(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function yct(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function gct(e,t){Abe(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(yct(r,i),{framebuffer:n[r].framebuffer,uniformMap:bct(e,r)});e._commands=o}rT.prototype.clear=function(e){let t=this._framebuffers;if(!d(t))return;let n=this._clearCommand;d(n)||(n=this._clearCommand=new ti({color:new B(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};rT.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,pct(this,e),gct(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};rT.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!d(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};rT.prototype.isDestroyed=function(){return!1};rT.prototype.destroy=function(){return wbe(this),Abe(this),ue(this)};var PF=rT;var kGi=T(S(),1);var _Gi=T(S(),1),xct={NEAREST:0,LINEAR:1},Ed=xct;function sT(e){e=g(e,g.EMPTY_OBJECT);let t=e.fragmentShader,n=g(e.textureScale,1),i=g(e.pixelFormat,st.RGBA);this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=g(e.forcePowerOfTwo,!1),this._sampleMode=g(e.sampleMode,Ed.NEAREST),this._pixelFormat=i,this._pixelDatatype=g(e.pixelDatatype,Je.UNSIGNED_BYTE),this._clearColor=g(e.clearColor,B.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new Na;o.scissorTest={enabled:!0,rectangle:d(e.scissorRectangle)?He.clone(e.scissorRectangle):new He},this._passState=o,this._ready=!1;let r=e.name;d(r)||(r=Yn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(sT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(d(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(d(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var _ct=/uniform\s+sampler2D\s+depthTexture/g;sT.prototype._isSupported=function(e){return!_ct.test(this._fragmentShader)||e.depthTexture};function Tct(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];d(a)&&a!==r&&a instanceof Wt&&!d(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Wt&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function Sct(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function Cct(e,t){return function(){let n=e[t]();if(d(n))return n.dimensions}}function Vct(e){if(d(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i)if(i.hasOwnProperty(r)){typeof i[r]!="function"?(t[r]=Sct(e,r),n[r]=Tct(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Wt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=Cct(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=xt(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function Lct(e,t){if(d(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(d(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=n.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),n=`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${o}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} + +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${n}`}let i=new Be({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Rct(e){let t=e._sampleMode,n,i;t===Ed.LINEAR?(n=cn.LINEAR,i=Ti.LINEAR):(n=cn.NEAREST,i=Ti.NEAREST);let o=e._sampler;(!d(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function Zct(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function Gct(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function Ect(e,t){let n,i,o,r=e._texturesToRelease,s=r.length;for(n=0;n<s;++n)i=r[n],i=i&&i.destroy();r.length=0;let a=e._texturesToCreate;for(s=a.length,n=0;n<s;++n){let m=a[n];o=m.name;let p=m.source;e._actualUniforms[o]=new Wt({context:t,source:p})}a.length=0;let c=e._dirtyUniforms;if(c.length===0&&!d(e._texturePromise)){e._ready=!0;return}if(c.length===0||d(e._texturePromise))return;s=c.length;let l=e._uniforms,u=[];for(n=0;n<s;++n){o=c[n];let m=l[o],p=e._textureCache.getStageByName(m);if(d(p))e._actualUniforms[o]=Gct(e,m);else if(typeof m=="string"){let y=new Ee({url:m});u.push(y.fetchImage().then(Zct(e,o)))}else e._texturesToCreate.push({name:o,source:m})}c.length=0,u.length>0?(e._ready=!1,e._texturePromise=Promise.all(u).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function Mbe(e){d(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!d(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i)i.hasOwnProperty(o)&&i[o]instanceof Wt&&(d(t.getStageByName(n[o]))||i[o].destroy(),e._dirtyUniforms.push(o))}function Xct(e){let t=d(e._selected)?e._selected.length:0,n=d(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,d(e._selected)&&d(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):d(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&d(e._combinedSelected)){if(!d(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function Ict(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!d(n))return;let i,o,r=0,s=n.length;for(i=0;i<s;++i)o=n[i],d(o.pickIds)?r+=o.pickIds.length:d(o.pickId)&&++r;if(s===0||r===0){let u=new Uint8Array(4);u[0]=255,u[1]=255,u[2]=255,u[3]=255,e._selectedIdTexture=new Wt({context:t,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:u,width:1,height:1},sampler:dn.NEAREST});return}let a,c=0,l=new Uint8Array(r*4);for(i=0;i<s;++i)if(o=n[i],d(o.pickIds)){let u=o.pickIds,m=u.length;for(let p=0;p<m;++p)a=u[p].color,l[c]=B.floatToByte(a.red),l[c+1]=B.floatToByte(a.green),l[c+2]=B.floatToByte(a.blue),l[c+3]=B.floatToByte(a.alpha),c+=4}else d(o.pickId)&&(a=o.pickId.color,l[c]=B.floatToByte(a.red),l[c+1]=B.floatToByte(a.green),l[c+2]=B.floatToByte(a.blue),l[c+3]=B.floatToByte(a.alpha),c+=4);e._selectedIdTexture=new Wt({context:t,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:l,width:r,height:1},sampler:dn.NEAREST})}sT.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&Mbe(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=Xct(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=d(this._selected)?this._selected.length:0,this._parentSelectedLength=d(this._parentSelected)?this._parentSelected.length:0,Ict(this,e),Vct(this),Ect(this,e),Lct(this,e),Rct(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!d(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!d(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=De.fromCache({viewport:new He(0,0,i.width,i.height)}))),this._command.renderState=o};sT.prototype.execute=function(e,t,n,i){if(!d(this._command)||!d(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,dn.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;d(o)&&(o.context=e),this._command.execute(e,o)};sT.prototype.isDestroyed=function(){return!1};sT.prototype.destroy=function(){return Mbe(this),ue(this)};var po=sT;var HGi=T(S(),1);function aT(e){e=g(e,g.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=g(e.inputPreviousStageTexture,!0);let t=e.name;d(t)||(t=Yn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(aT.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});aT.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};aT.prototype.get=function(e){return this._stages[e]};function Wct(e){let t=d(e._selected)?e._selected.length:0,n=d(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,d(e._selected)&&d(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):d(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&d(e._combinedSelected)){if(!d(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}aT.prototype.update=function(e,t){this._selectedDirty=Wct(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=d(this._selected)?this._selected.length:0,this._parentSelectedLength=d(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};aT.prototype.isDestroyed=function(){return!1};aT.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var Hc=aT;var Wr={};function Lk(e){let o=`#define USE_STEP_SIZE +${Jy}`,r=new po({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:Ed.LINEAR}),s=new po({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:Ed.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let l=r.uniforms,u=s.uniforms;l.delta=u.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let l=r.uniforms,u=s.uniforms;l.sigma=u.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let l=r.uniforms,u=s.uniforms;l.stepSize=u.stepSize=c}}}),new Hc({name:e,stages:[r,s],uniforms:a})}Wr.createBlurStage=function(){return Lk("czm_blur")};Wr.createDepthOfFieldStage=function(){let e=Lk("czm_depth_of_field_blur"),t=new po({name:"czm_depth_of_field_composite",fragmentShader:CF,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new Hc({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Wr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Wr.createEdgeDetectionStage=function(){let e=Yn();return new po({name:`czm_edge_detection_${e}`,fragmentShader:LF,uniforms:{length:.25,color:B.clone(B.BLACK)}})};Wr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function Pct(e){if(!d(e))return Wr.createEdgeDetectionStage();let t=new Hc({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${o} } + out_FragColor = color; +} +`,s=new po({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new Hc({name:"czm_edge_detection_composite",stages:[t,s]})}Wr.createSilhouetteStage=function(e){let t=Pct(e),n=new po({name:"czm_silhouette_color_edges",fragmentShader:WF,uniforms:{silhouetteTexture:t.name}});return new Hc({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Wr.isSilhouetteSupported=function(e){return e.context.depthTexture};Wr.createBloomStage=function(){let e=new po({name:"czm_bloom_contrast_bias",fragmentShader:SF,uniforms:{contrast:128,brightness:-.3}}),t=Lk("czm_bloom_blur"),n=new Hc({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new po({name:"czm_bloom_generate_composite",fragmentShader:_F,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new Hc({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Wr.createAmbientOcclusionStage=function(){let e=new po({name:"czm_ambient_occlusion_generate",fragmentShader:yF,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=Lk("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new Hc({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new po({name:"czm_ambient_occlusion_composite",fragmentShader:gF,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new Hc({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Wr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var vct=`#define FXAA_QUALITY_PRESET 39 +${KP} +${ZF}`;Wr.createFXAAStage=function(){return new po({name:"czm_FXAA",fragmentShader:vct,sampleMode:Ed.LINEAR})};Wr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=bF,new po({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})};Wr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=RF,new po({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})};Wr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=IF,new po({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})};Wr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=EF,new po({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:B.WHITE,autoExposure:void 0}})};Wr.createAutoExposureStage=function(){return new PF};Wr.createBlackAndWhiteStage=function(){return new po({name:"czm_black_and_white",fragmentShader:xF,uniforms:{gradations:5}})};Wr.createBrightnessStage=function(){return new po({name:"czm_brightness",fragmentShader:TF,uniforms:{brightness:.5}})};Wr.createNightVisionStage=function(){return new po({name:"czm_night_vision",fragmentShader:XF})};Wr.createDepthViewStage=function(){return new po({name:"czm_depth_view",fragmentShader:VF})};Wr.createLensFlareStage=function(){return new po({name:"czm_lens_flare",fragmentShader:GF,uniforms:{dirtTexture:$t("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:$t("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:re.WGS84.maximumRadius}})};var Yu=Wr;var IEi=T(S(),1);function k0(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function FF(e){for(;d(e.length);)e=e.get(e.length-1);return e.name}function yQ(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(d(o)){let a=e.getStageByName(o);r[FF(a)]=!0}let s=i.uniforms;if(d(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let l=0;l<c;++l){let u=s[a[l]];if(typeof u=="string"){let m=e.getStageByName(u);d(m)&&(r[FF(m)]=!0)}}}return i.name}function vF(e,t,n,i,o){if(d(i.enabled)&&!i.enabled||d(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!d(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let m=0;m<c;++m){let p=i.get(m);d(p.length)?a=vF(e,t,n,p,o):a=yQ(e,t,n,p,o),s&&(o=a)}let l,u;if(s)for(l=1;l<c;++l)u=FF(i.get(l)),d(n[u])||(n[u]={}),n[u][r]=!0;else for(l=1;l<c;++l){u=FF(i.get(l));let m=n[u];for(let p=0;p<l;++p)m[FF(i.get(p))]=!0}return a}function Fct(e,t){let n={};if(d(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=vF(e,t,n,i,void 0);a=vF(e,t,n,o,a),a=yQ(e,t,n,r,a),a=vF(e,t,n,e,a),yQ(e,t,n,s,a)}else vF(e,t,n,e,void 0);return n}function wct(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,l=o._clearColor,u,m,p=e._framebuffers,y=p.length;for(u=0;u<y;++u){if(m=p[u],r!==m.textureScale||s!==m.forcePowerOfTwo||a!==m.pixelFormat||c!==m.pixelDatatype||!B.equals(l,m.clearColor))continue;let f=m.stages,x=f.length,_=!1;for(let C=0;C<x;++C)if(n[f[C]]){_=!0;break}if(!_)break}return d(m)&&u<y?(m.stages.push(t),m):(m={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:l,stages:[t],buffer:new mi({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(m),m)}function Act(e,t){let n=Fct(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=wct(e,i,n[i]))}function gQ(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function Mct(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,l=Math.ceil(n*c),u=Math.ceil(i*c),m=Math.min(l,u);a.forcePowerOfTwo&&(W.isPowerOfTwo(m)||(m=W.nextPowerOfTwo(m)),l=m,u=m),a.buffer.update(t,l,u),a.clear=new ti({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}k0.prototype.updateDependencies=function(){this._updateDependencies=!0};k0.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=d(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=d(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=d(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=d(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!d(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(gQ(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&Act(this,e);let c=e.drawingBufferWidth,l=e.drawingBufferHeight,u=this._width!==c||this._height!==l;!n&&!u||(this._width=c,this._height=l,this._updateDependencies=!1,gQ(this),Mct(this,e))};k0.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};k0.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};k0.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};k0.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(d(t))return t.buffer.framebuffer};k0.prototype.isDestroyed=function(){return!1};k0.prototype.destroy=function(){return gQ(this),ue(this)};var cT=k0;var PEi=T(S(),1),wF={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===wF.REINHARD||e===wF.MODIFIED_REINHARD||e===wF.FILMIC||e===wF.ACES}},Qy=Object.freeze(wF);var xQ=[];function zc(){let e=Yu.createFXAAStage(),t=Yu.createAmbientOcclusionStage(),n=Yu.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=Yu.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=Qy.ACES;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new cT(this),r={},s=xQ;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let l=c.length;if(d(l))for(let u=0;u<l;++u)s.push(c.get(u))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(zc.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return _Q(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(d(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!d(t))continue;if(d(t.selected))return!0;let n=t.length;if(d(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;d(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case Qy.REINHARD:n=Yu.createReinhardTonemappingStage(t);break;case Qy.MODIFIED_REINHARD:n=Yu.createModifiedReinhardTonemappingStage(t);break;case Qy.FILMIC:n=Yu.createFilmicTonemappingStage(t);break;default:n=Yu.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}this._tonemapper=e,this._tonemapping=n,d(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}}});function _Q(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._stages=t}zc.prototype.add=function(e){let t=this._stageNames,n=xQ;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(d(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};zc.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=xQ;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(d(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};zc.prototype.contains=function(e){return d(e)&&d(e._index)&&e._textureCache===this._textureCache};zc.prototype.get=function(e){return _Q(this),this._stages[e]};zc.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};zc.prototype.getStageByName=function(e){return this._stageNames[e]};zc.prototype.update=function(e,t,n){_Q(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages,s=o.length=r.length,a,c,l=0;for(a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&(o[l++]=c);o.length=l;let u=l!==i.length;if(!u){for(a=0;a<l;++a)if(o[a]!==i[a]){u=!0;break}}let m=this._ao,p=this._bloom,y=this._autoExposure,f=this._tonemapping,x=this._fxaa;f.enabled=n;let _=m.enabled&&m._isSupported(e),C=p.enabled&&p._isSupported(e),V=f.enabled&&f._isSupported(e),L=x.enabled&&x._isSupported(e);if((u||this._textureCacheDirty||_!==this._aoEnabled||C!==this._bloomEnabled||V!==this._tonemappingEnabled||L!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=_,this._bloomEnabled=C,this._tonemappingEnabled=V,this._fxaaEnabled=L,this._textureCacheDirty=!1),d(this._randomTexture)&&!_&&(this._randomTexture.destroy(),this._randomTexture=void 0),!d(this._randomTexture)&&_){s=256*256*3;let Z=new Uint8Array(s);for(a=0;a<s;a+=3)Z[a]=Math.floor(Math.random()*255);this._randomTexture=new Wt({context:e,pixelFormat:st.RGB,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:Z,width:256,height:256},sampler:new dn({wrapS:Gn.REPEAT,wrapT:Gn.REPEAT,minificationFilter:cn.NEAREST,magnificationFilter:Ti.NEAREST})})}for(this._textureCache.update(e),x.update(e,t),m.update(e,t),p.update(e,t),f.update(e,t),this._autoExposureEnabled&&y.update(e,t),s=r.length,a=0;a<s;++a)r[a].update(e,t);for(l=0,a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&l++;u=l!==o.length,u&&this.update(e,t,n)};zc.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function lT(e){for(;d(e.length);)e=e.get(e.length-1);return e.outputTexture}zc.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(d(t))return lT(t)};function Ff(e,t,n,i,o){if(d(e.execute)){e.execute(t,n,i,o);return}let r=e.length,s;if(e.inputPreviousStageTexture)for(Ff(e.get(0),t,n,i,o),s=1;s<r;++s)Ff(e.get(s),t,lT(e.get(s-1)),i,o);else for(s=0;s<r;++s)Ff(e.get(s),t,n,i,o)}zc.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,l=this._autoExposure,u=this._tonemapping,m=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),y=this._autoExposureEnabled,f=u.enabled&&u._isSupported(e),x=s.enabled&&s._isSupported(e);if(!x&&!m&&!p&&!f&&r===0)return;let _=t;m&&a.ready&&(Ff(a,e,_,n,i),_=lT(a)),p&&c.ready&&(Ff(c,e,_,n,i),_=lT(c)),y&&l.ready&&Ff(l,e,_,n,i),f&&u.ready&&(Ff(u,e,_,n,i),_=lT(u));let C=_;if(r>0){Ff(o[0],e,_,n,i);for(let V=1;V<r;++V)Ff(o[V],e,lT(o[V-1]),n,i);C=lT(o[r-1])}x&&s.ready&&Ff(s,e,C,n,i)};zc.prototype.copy=function(e,t){if(!d(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Al,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};zc.prototype.isDestroyed=function(){return!1};zc.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),ue(this)};var AF=zc;var ZXi=T(S(),1);var lXi=T(S(),1);var QEi=T(S(),1),Nct={SHIFT:0,CTRL:1,ALT:2},ra=Object.freeze(Nct);var qEi=T(S(),1),Uct={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},_n=Object.freeze(Uct);function jy(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function RQ(e,t){let n=e;return d(t)&&(n+=`+${t}`),n}function dT(e){if(e.shiftKey)return ra.SHIFT;if(e.ctrlKey)return ra.CTRL;if(e.altKey)return ra.ALT}var ps={LEFT:0,MIDDLE:1,RIGHT:2};function Xd(e,t,n,i){function o(r){i(e,r)}Mt.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function kct(e){let t=e._element,n=d(t.disableRootEvents)?t:document;Mt.supportsPointerEvents()?(Xd(e,"pointerdown",t,Hct),Xd(e,"pointerup",t,zbe),Xd(e,"pointermove",t,zct),Xd(e,"pointercancel",t,zbe)):(Xd(e,"mousedown",t,Jbe),Xd(e,"mouseup",n,Qbe),Xd(e,"mousemove",n,jbe),Xd(e,"touchstart",t,Oct),Xd(e,"touchend",n,Bbe),Xd(e,"touchmove",n,Kct),Xd(e,"touchcancel",n,Bbe)),Xd(e,"dblclick",t,Bct);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",Xd(e,i,t,Yct)}function Dct(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var Nbe={position:new D};function ZQ(e){e._lastSeenTouchEvent=gi()}function GQ(e){return gi()-e._lastSeenTouchEvent>hh.mouseEmulationIgnoreMilliseconds}function LQ(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function Jbe(e,t){if(!GQ(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===ps.LEFT)i=_n.LEFT_DOWN;else if(n===ps.MIDDLE)i=_n.MIDDLE_DOWN;else if(n===ps.RIGHT)i=_n.RIGHT_DOWN;else return;let o=jy(e,t,e._primaryPosition);D.clone(o,e._primaryStartPosition),D.clone(o,e._primaryPreviousPosition);let r=dT(t),s=e.getInputAction(i,r);d(s)&&(D.clone(o,Nbe.position),s(Nbe),t.preventDefault())}var Ube={position:new D},kbe={position:new D};function TQ(e,t,n,i){let o=dT(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(d(r)||d(s)){let a=jy(e,i,e._primaryPosition);if(d(r)&&(D.clone(a,Ube.position),r(Ube)),d(s)){let c=e._primaryStartPosition;LQ(c,a,e._clickPixelTolerance)&&(D.clone(a,kbe.position),s(kbe))}}}function Qbe(e,t){if(!GQ(e))return;let n=t.button;n!==ps.LEFT&&n!==ps.MIDDLE&&n!==ps.RIGHT||(e._buttonDown[ps.LEFT]&&(TQ(e,_n.LEFT_UP,_n.LEFT_CLICK,t),e._buttonDown[ps.LEFT]=!1),e._buttonDown[ps.MIDDLE]&&(TQ(e,_n.MIDDLE_UP,_n.MIDDLE_CLICK,t),e._buttonDown[ps.MIDDLE]=!1),e._buttonDown[ps.RIGHT]&&(TQ(e,_n.RIGHT_UP,_n.RIGHT_CLICK,t),e._buttonDown[ps.RIGHT]=!1))}var SQ={startPosition:new D,endPosition:new D};function jbe(e,t){if(!GQ(e))return;let n=dT(t),i=jy(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(_n.MOUSE_MOVE,n);d(r)&&(D.clone(o,SQ.startPosition),D.clone(i,SQ.endPosition),r(SQ)),D.clone(i,o),(e._buttonDown[ps.LEFT]||e._buttonDown[ps.MIDDLE]||e._buttonDown[ps.RIGHT])&&t.preventDefault()}var Dbe={position:new D};function Bct(e,t){let n=t.button,i;if(n===ps.LEFT)i=_n.LEFT_DOUBLE_CLICK;else return;let o=dT(t),r=e.getInputAction(i,o);d(r)&&(jy(e,t,Dbe.position),r(Dbe))}function Yct(e,t){let n;if(d(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!d(n))return;let i=dT(t),o=e.getInputAction(_n.WHEEL,i);d(o)&&(o(n),t.preventDefault())}function Oct(e,t){ZQ(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,jy(e,r,new D));Rk(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,D.clone(a.get(s)))}function Bbe(e,t){ZQ(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);Rk(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var Ybe={position:new D},CQ={position1:new D,position2:new D},Obe={position:new D},Kbe={position:new D},Hbe={position:new D};function Rk(e,t){let n=dT(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[ps.LEFT]){if(e._buttonDown[ps.LEFT]=!1,d(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(_n.LEFT_UP,n),d(r)&&(D.clone(e._primaryPosition,Obe.position),r(Obe)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(_n.LEFT_CLICK,n),d(s))){let c=e._primaryStartPosition,l=e._previousPositions.values[0];LQ(c,l,e._clickPixelTolerance)&&(D.clone(e._primaryPosition,Kbe.position),s(Kbe))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(_n.PINCH_END,n),d(r)&&r()),o===1&&!a){let c=i.values[0];D.clone(c,e._primaryPosition),D.clone(c,e._primaryStartPosition),D.clone(c,e._primaryPreviousPosition),e._buttonDown[ps.LEFT]=!0,r=e.getInputAction(_n.LEFT_DOWN,n),d(r)&&(D.clone(c,Ybe.position),r(Ybe)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(_n.RIGHT_CLICK,n),d(s))){let l=e._primaryStartPosition,u=e._previousPositions.values[0];LQ(l,u,e._holdPixelTolerance)&&(D.clone(e._primaryPosition,Hbe.position),s(Hbe))}},hh.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(_n.PINCH_START,n),d(r)&&(D.clone(i.values[0],CQ.position1),D.clone(i.values[1],CQ.position2),r(CQ),t.preventDefault()))}function Kct(e,t){ZQ(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let l=a.get(s);d(l)&&jy(e,r,l)}qbe(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,D.clone(a.get(s),c.get(s))}var VQ={startPosition:new D,endPosition:new D},MF={distance:{startPosition:new D,endPosition:new D},angleAndHeight:{startPosition:new D,endPosition:new D}};function qbe(e,t){let n=dT(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[ps.LEFT]){let a=i.values[0];D.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(_n.MOUSE_MOVE,n),d(s)&&(D.clone(c,VQ.startPosition),D.clone(a,VQ.endPosition),s(VQ)),D.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(_n.PINCH_MOVE,n),d(s))){let a=i.values[0],c=i.values[1],l=o.values[0],u=o.values[1],m=c.x-a.x,p=c.y-a.y,y=Math.sqrt(m*m+p*p)*.25,f=u.x-l.x,x=u.y-l.y,_=Math.sqrt(f*f+x*x)*.25,C=(c.y+a.y)*.125,V=(u.y+l.y)*.125,L=Math.atan2(p,m),Z=Math.atan2(x,f);D.fromElements(0,_,MF.distance.startPosition),D.fromElements(0,y,MF.distance.endPosition),D.fromElements(Z,V,MF.angleAndHeight.startPosition),D.fromElements(L,C,MF.angleAndHeight.endPosition),s(MF)}}function Hct(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,jy(e,t,new D)),Rk(e,t),e._previousPositions.set(i,D.clone(n.get(i)))}else Jbe(e,t)}function zbe(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),Rk(e,t),e._previousPositions.remove(i)}else Qbe(e,t)}function zct(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!d(o))return;jy(e,t,o),qbe(e,t);let r=e._previousPositions;D.clone(n.get(i),r.get(i))}else jbe(e,t)}function hh(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-hh.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new D,this._primaryPosition=new D,this._primaryPreviousPosition=new D,this._positions=new Tt,this._previousPositions=new Tt,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=g(e,document),kct(this)}hh.prototype.setInputAction=function(e,t,n){let i=RQ(t,n);this._inputEvents[i]=e};hh.prototype.getInputAction=function(e,t){let n=RQ(e,t);return this._inputEvents[n]};hh.prototype.removeInputAction=function(e,t){let n=RQ(e,t);delete this._inputEvents[n]};hh.prototype.isDestroyed=function(){return!1};hh.prototype.destroy=function(){return Dct(this),ue(this)};hh.mouseEmulationIgnoreMilliseconds=800;hh.touchHoldDelayMilliseconds=1500;var Id=hh;function uT(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}uT.prototype.completeMorph=function(){d(this._completeMorph)&&this._completeMorph()};uT.prototype.morphTo2D=function(e,t){d(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof en,!(this._previousMode===ie.SCENE2D||this._previousMode===ie.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ie.SCENE2D,!0),n._mode=ie.MORPHING,n.camera._setTransform(w.IDENTITY),this._previousMode===ie.COLUMBUS_VIEW?Zlt(this,e):vlt(this,e,t),e===0&&d(this._completeMorph)&&this._completeMorph())};var Jct=new h,Qct=new h,jct=new h,qct=new h,$ct=new h,elt=new h,tlt=new h,nlt=new he,ilt=new w,olt=new Ri,rlt=new en,slt={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};uT.prototype.morphToColumbusView=function(e,t){d(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ie.COLUMBUS_VIEW||this._previousMode===ie.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ie.COLUMBUS_VIEW,!0),n.camera._setTransform(w.IDENTITY);let i=Jct,o=Qct,r=jct;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,o),o),h.cross(h.UNIT_X,o,r);else{let l=n.camera;if(this._previousMode===ie.SCENE2D)h.clone(l.position,i),i.z=l.frustum.right-l.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(l.positionWC,i),h.clone(l.directionWC,o),h.clone(l.upWC,r);let u=t.scaleToGeodeticSurface(i,tlt),m=vt.eastNorthUpToFixedFrame(u,t,ilt);w.inverseTransformation(m,m),n.mapProjection.project(t.cartesianToCartographic(i,nlt),i),w.multiplyByPointAsVector(m,o,o),w.multiplyByPointAsVector(m,r,r)}}let s;this._morphToOrthographic?(s=rlt,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=olt,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=W.toRadians(60));let a=slt;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=wlt(a);NF(this,c),this._previousMode===ie.SCENE2D?Flt(this,e,a,c):(a.position2D=w.multiplyByPoint(co.TRANSFORM_2D,i,qct),a.direction2D=w.multiplyByPointAsVector(co.TRANSFORM_2D,o,$ct),a.up2D=w.multiplyByPointAsVector(co.TRANSFORM_2D,r,elt),n._mode=ie.MORPHING,lye(this,e,a,c)),e===0&&d(this._completeMorph)&&this._completeMorph()};var IQ={position:new h,direction:new h,up:new h,frustum:void 0},eye=new Ri;uT.prototype.morphTo3D=function(e,t){d(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ie.SCENE3D||this._previousMode===ie.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ie.SCENE3D,!0),n._mode=ie.MORPHING,n.camera._setTransform(w.IDENTITY),this._previousMode===ie.SCENE2D)ylt(this,e,t);else{let i;e>0?(i=IQ,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=tye(this,t);let o,r=n.camera;r.frustum instanceof en?o=r.frustum.clone():(o=eye,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=W.toRadians(60)),i.frustum=o;let s=uye(i);NF(this,s),XQ(this,e,i,s)}e===0&&d(this._completeMorph)&&this._completeMorph()}};uT.prototype.isDestroyed=function(){return!1};uT.prototype.destroy=function(){return Zk(this),ue(this)};function NF(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Id(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,_n.LEFT_DOWN),e._morphHandler.setInputAction(n,_n.MIDDLE_DOWN),e._morphHandler.setInputAction(n,_n.RIGHT_DOWN),e._morphHandler.setInputAction(n,_n.WHEEL)}}function Zk(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var alt=new he,clt=new h,llt=new w;function tye(e,t){let n=e._scene,i=n.camera,o=IQ,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,alt);t.cartographicToCartesian(c,r);let l=t.scaleToGeodeticSurface(r,clt),u=vt.eastNorthUpToFixedFrame(l,t,llt);return w.multiplyByPointAsVector(u,i.direction,s),w.multiplyByPointAsVector(u,i.up,a),o}var dlt=new h,ult=new h,mlt=new h,hlt=new h,flt=new h,plt=new h;function XQ(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,dlt),a=h.clone(r.direction,ult),c=h.clone(r.up,mlt),l=w.multiplyByPoint(co.TRANSFORM_2D_INVERSE,n.position,hlt),u=w.multiplyByPointAsVector(co.TRANSFORM_2D_INVERSE,n.direction,flt),m=w.multiplyByPointAsVector(co.TRANSFORM_2D_INVERSE,n.up,plt);function p(f){Ou(s,l,f.time,r.position),Ou(a,u,f.time,r.direction),Ou(c,m,f.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let y=o.tweens.add({duration:t,easingFunction:Ir.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){dye(e,o,0,1,t,i)}});e._currentTweens.push(y)}var blt=new en,nye=new h,iye=new h,oye=new h,WQ=new h,rye=new h,sye=new h;function ylt(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=IQ,h.fromDegrees(0,0,5*n.maximumRadius,n,r.position),h.negate(r.position,r.direction),h.normalize(r.direction,r.direction),h.clone(h.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=tye(e,n));let s;e._morphToOrthographic?(s=blt,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=eye,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=W.toRadians(60)),r.frustum=s;let a=uye(r);NF(e,a);let c;e._morphToOrthographic?c=function(){XQ(e,t,r,a)}:c=function(){cye(e,t,r,function(){XQ(e,t,r,a)})},t>0?(i._mode=ie.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,WQ),complete:function(){i._mode=ie.MORPHING,c()}})):c()}function Ou(e,t,n,i){return h.lerp(e,t,n,i)}function aye(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof en)return;let a=s.frustum.fov,c=W.RADIANS_PER_DEGREE*.5,l=n.position.z*Math.tan(a*.5);s.frustum.far=l/Math.tan(c*.5)+1e7;function u(p){s.frustum.fov=W.lerp(a,c,p.time);let y=l/Math.tan(s.frustum.fov*.5);i(s,y)}let m=r.tweens.add({duration:t,easingFunction:Ir.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:u,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(m)}var glt=new h,xlt=new h,_lt=new h,EQ=new h,Tlt=new h,Slt=new h,Clt=new yr,Vlt=new Sn,Llt=new h,Rlt={position:void 0,direction:void 0,up:void 0,frustum:void 0};function Zlt(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,glt),r=h.clone(i.direction,xlt),s=h.clone(i.up,_lt),a=h.negate(h.UNIT_Z,Tlt),c=h.clone(h.UNIT_Y,Slt),l=EQ;if(t>0)h.clone(h.ZERO,EQ),l.z=5*n.mapProjection.ellipsoid.maximumRadius;else{h.clone(o,EQ);let _=Vlt;w.multiplyByPoint(co.TRANSFORM_2D,o,_.origin),w.multiplyByPointAsVector(co.TRANSFORM_2D,r,_.direction);let C=n.globe;if(d(C)){let V=C.pickWorldCoordinates(_,n,!0,Llt);d(V)&&(w.multiplyByPoint(co.TRANSFORM_2D_INVERSE,V,l),l.z+=h.distance(o,l))}}let u=Clt;u.right=l.z*.5,u.left=-u.right,u.top=u.right*(n.drawingBufferHeight/n.drawingBufferWidth),u.bottom=-u.top;let m=Rlt;m.position=l,m.direction=a,m.up=c,m.frustum=u;let p=mye(m);NF(e,p);function y(_){Ou(o,l,_.time,i.position),Ou(r,a,_.time,i.direction),Ou(s,c,_.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function f(_,C){_.position.z=C}let x=n.tweens.add({duration:t,easingFunction:Ir.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:y,complete:function(){aye(e,t,m,f,p)}});e._currentTweens.push(x)}var $be=new he,Glt={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new yr},Elt={position:new h,direction:new h,up:new h,frustum:void 0},Xlt=new h,Ilt=new Sn,Wlt=new w,Plt=new h;function vlt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=Glt;if(t>0)h.clone(h.ZERO,r.position),r.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,$be),i.mapProjection.project($be,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let m=Ilt;h.clone(r.position2D,m.origin);let p=h.clone(o.directionWC,m.direction),y=n.scaleToGeodeticSurface(o.positionWC,Plt),f=vt.eastNorthUpToFixedFrame(y,n,Wlt);w.inverseTransformation(f,f),w.multiplyByPointAsVector(f,p,p),w.multiplyByPointAsVector(co.TRANSFORM_2D,p,p);let x=i.globe;if(d(x)){let _=x.pickWorldCoordinates(m,i,!0,Xlt);if(d(_)){let C=h.distance(r.position2D,_);_.x+=C,h.clone(_,r.position2D)}}}function s(m,p){m.position.x=p}w.multiplyByPoint(co.TRANSFORM_2D,r.position,r.position2D),w.multiplyByPointAsVector(co.TRANSFORM_2D,r.direction,r.direction2D),w.multiplyByPointAsVector(co.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=Elt;w.multiplyByPoint(co.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let l=mye(c);NF(e,l);function u(){aye(e,t,r,s,l)}lye(e,t,r,u)}function cye(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=W.RADIANS_PER_DEGREE*.5,l=s*Math.tan(a*.5);r.frustum.far=l/Math.tan(c*.5)+1e7,r.frustum.fov=c;function u(p){r.frustum.fov=W.lerp(c,a,p.time),r.position.z=l/Math.tan(r.frustum.fov*.5)}let m=o.tweens.add({duration:t,easingFunction:Ir.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:u,complete:function(){i(e)}});e._currentTweens.push(m)}function Flt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,WQ),a=h.clone(n.direction,rye),c=h.clone(n.up,sye);o._mode=ie.MORPHING;function l(){r.frustum=n.frustum.clone();let u=h.clone(r.position,nye),m=h.clone(r.direction,iye),p=h.clone(r.up,oye);u.z=s.z;function y(x){Ou(u,s,x.time,r.position),Ou(m,a,x.time,r.direction),Ou(p,c,x.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let f=o.tweens.add({duration:t,easingFunction:Ir.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:y,complete:function(){i(e)}});e._currentTweens.push(f)}e._morphToOrthographic?l():cye(e,0,n,l)}function lye(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,nye),a=h.clone(r.direction,iye),c=h.clone(r.up,oye),l=h.clone(n.position2D,WQ),u=h.clone(n.direction2D,rye),m=h.clone(n.up2D,sye);function p(f){Ou(s,l,f.time,r.position),Ou(a,u,f.time,r.direction),Ou(c,m,f.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let y=o.tweens.add({duration:t,easingFunction:Ir.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){dye(e,o,1,0,t,i)}});e._currentTweens.push(y)}function dye(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:Ir.QUARTIC_OUT};d(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function uye(e){return function(t){let n=t._scene;n._mode=ie.SCENE3D,n.morphTime=ie.getMorphTime(ie.SCENE3D),Zk(t);let i=n.camera;(t._previousMode!==ie.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=d(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ie.SCENE3D,r)}}function mye(e){return function(t){let n=t._scene;n._mode=ie.SCENE2D,n.morphTime=ie.getMorphTime(ie.SCENE2D),Zk(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.mapProjection.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=d(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ie.SCENE2D,o)}}function wlt(e){return function(t){let n=t._scene;n._mode=ie.COLUMBUS_VIEW,n.morphTime=ie.getMorphTime(ie.COLUMBUS_VIEW),Zk(t);let i=n.camera;(t._previousModeMode!==ie.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=d(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ie.COLUMBUS_VIEW,r)}}var UF=uT;var SIi=T(S(),1);var NXi=T(S(),1);var EXi=T(S(),1),Alt={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},vi=Object.freeze(Alt);function uc(e,t){let n=e;return d(t)&&(n+=`+${t}`),n}function Mlt(e,t){D.clone(e.distance.startPosition,t.distance.startPosition),D.clone(e.distance.endPosition,t.distance.endPosition),D.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),D.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function hye(e,t,n){let i=uc(vi.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new D;let l=e._movement[i];d(l)||(l=e._movement[i]={}),l.distance={startPosition:new D,endPosition:new D},l.angleAndHeight={startPosition:new D,endPosition:new D},l.prevAngle=0,e._eventHandler.setInputAction(function(u){e._buttonsDown++,r[i]=!0,a[i]=new Date,D.lerp(u.position1,u.position2,.5,s[i])},_n.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},_n.PINCH_END,t),e._eventHandler.setInputAction(function(u){if(r[i]){o[i]?(Mlt(u,l),o[i]=!1,l.prevAngle=l.angleAndHeight.startPosition.x):(D.clone(u.distance.endPosition,l.distance.endPosition),D.clone(u.angleAndHeight.endPosition,l.angleAndHeight.endPosition));let m=l.angleAndHeight.endPosition.x,p=l.prevAngle,y=Math.PI*2;for(;m>=p+Math.PI;)m-=y;for(;m<p-Math.PI;)m+=y;l.angleAndHeight.endPosition.x=-m*n.clientWidth/12,l.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},_n.PINCH_MOVE,t)}function fye(e,t){let n=uc(vi.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];d(s)||(s=e._movement[n]={});let a=e._lastMovement[n];d(a)||(a=e._lastMovement[n]={startPosition:new D,endPosition:new D,valid:!1}),s.startPosition=new D,D.clone(D.ZERO,s.startPosition),s.endPosition=new D,e._eventHandler.setInputAction(function(c){let l=7.5*W.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=l,D.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},_n.WHEEL,t)}function mV(e,t,n){let i=uc(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime,a=e._releaseTime;o[i]=!1,r[i]=new D;let c=e._lastMovement[i];d(c)||(c=e._lastMovement[i]={startPosition:new D,endPosition:new D,valid:!1});let l,u;n===vi.LEFT_DRAG?(l=_n.LEFT_DOWN,u=_n.LEFT_UP):n===vi.RIGHT_DRAG?(l=_n.RIGHT_DOWN,u=_n.RIGHT_UP):n===vi.MIDDLE_DRAG&&(l=_n.MIDDLE_DOWN,u=_n.MIDDLE_UP),e._eventHandler.setInputAction(function(m){e._buttonsDown++,c.valid=!1,o[i]=!0,s[i]=new Date,D.clone(m.position,r[i])},l,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),o[i]=!1,a[i]=new Date},u,t)}function pye(e,t){D.clone(e.startPosition,t.startPosition),D.clone(e.endPosition,t.endPosition)}function bye(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in vi)if(vi.hasOwnProperty(s)){let a=vi[s];if(d(a)){let c=uc(a,t);n[c]=!0,d(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new D,endPosition:new D,valid:!1}),d(e._movement[c])||(e._movement[c]={startPosition:new D,endPosition:new D})}}e._eventHandler.setInputAction(function(s){for(let a in vi)if(vi.hasOwnProperty(a)){let c=vi[a];if(d(c)){let l=uc(c,t);r[l]&&(n[l]?(pye(i[l],o[l]),o[l].valid=!0,pye(s,i[l]),n[l]=!1):D.clone(s.endPosition,i[l].endPosition))}}D.clone(s.endPosition,e._currentMousePosition)},_n.MOUSE_MOVE,t)}function Ku(e){this._eventHandler=new Id(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new D,fye(this,void 0),hye(this,void 0,e),mV(this,void 0,vi.LEFT_DRAG),mV(this,void 0,vi.RIGHT_DRAG),mV(this,void 0,vi.MIDDLE_DRAG),bye(this,void 0);for(let t in ra)if(ra.hasOwnProperty(t)){let n=ra[t];d(n)&&(fye(this,n),hye(this,n,e),mV(this,n,vi.LEFT_DRAG),mV(this,n,vi.RIGHT_DRAG),mV(this,n,vi.MIDDLE_DRAG),bye(this,n))}}Object.defineProperties(Ku.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[uc(vi.WHEEL)]||!this._update[uc(vi.WHEEL,ra.SHIFT)]||!this._update[uc(vi.WHEEL,ra.CTRL)]||!this._update[uc(vi.WHEEL,ra.ALT)];return this._buttonsDown>0||e}}});Ku.prototype.isMoving=function(e,t){let n=uc(e,t);return!this._update[n]};Ku.prototype.getMovement=function(e,t){let n=uc(e,t);return this._movement[n]};Ku.prototype.getLastMovement=function(e,t){let n=uc(e,t),i=this._lastMovement[n];if(i.valid)return i};Ku.prototype.isButtonDown=function(e,t){let n=uc(e,t);return this._isDown[n]};Ku.prototype.getStartMousePosition=function(e,t){if(e===vi.WHEEL)return this._currentMousePosition;let n=uc(e,t);return this._eventStartPosition[n]};Ku.prototype.getButtonPressTime=function(e,t){let n=uc(e,t);return this._pressTime[n]};Ku.prototype.getButtonReleaseTime=function(e,t){let n=uc(e,t);return this._releaseTime[n]};Ku.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};Ku.prototype.isDestroyed=function(){return!1};Ku.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var kF=Ku;var zXi=T(S(),1);function Gk(e,t,n,i,o,r,s,a,c,l){this._tweens=e,this._tweenjs=t,this._startObject=Oe(n),this._stopObject=Oe(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=l,this.needsStart=!0}Object.defineProperties(Gk.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});Gk.prototype.cancelTween=function(){this._tweens.remove(this)};function fh(){this._tweens=[]}Object.defineProperties(fh.prototype,{length:{get:function(){return this._tweens.length}}});fh.prototype.add=function(e){if(e=g(e,g.EMPTY_OBJECT),e.duration===0)return d(e.complete)&&e.complete(),new Gk(this);let t=e.duration/Qn.SECONDS_PER_MILLISECOND,n=g(e.delay,0),i=n/Qn.SECONDS_PER_MILLISECOND,o=g(e.easingFunction,Ir.LINEAR_NONE),r=e.startObject,s=new ife(r);s.to(Oe(e.stopObject),t),s.delay(i),s.easing(o),d(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(g(e.complete,null)),s.repeat(g(e._repeat,0));let a=new Gk(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};fh.prototype.addProperty=function(e){e=g(e,g.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:g(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};fh.prototype.addAlpha=function(e){e=g(e,g.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&d(t.uniforms[o])&&d(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:g(e.startValue,0)},stopObject:{alpha:g(e.stopValue,1)},duration:g(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};fh.prototype.addOffsetIncrement=function(e){e=g(e,g.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};fh.prototype.remove=function(e){if(!d(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),d(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};fh.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),d(n.cancel)&&n.cancel()}e.length=0};fh.prototype.contains=function(e){return d(e)&&this._tweens.indexOf(e)!==-1};fh.prototype.get=function(e){return this._tweens[e]};fh.prototype.update=function(e){let t=this._tweens,n=0;for(e=d(e)?e/Qn.SECONDS_PER_MILLISECOND:gi();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var mT=fh;function BF(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.translateEventTypes=vi.LEFT_DRAG,this.zoomEventTypes=[vi.RIGHT_DRAG,vi.WHEEL,vi.PINCH],this.rotateEventTypes=vi.LEFT_DRAG,this.tiltEventTypes=[vi.MIDDLE_DRAG,vi.PINCH,{eventType:vi.LEFT_DRAG,modifier:ra.CTRL},{eventType:vi.RIGHT_DRAG,modifier:ra.CTRL}],this.lookEventTypes={eventType:vi.LEFT_DRAG,modifier:ra.SHIFT},this.minimumPickingTerrainHeight=15e4,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=4e3,this.minimumCollisionTerrainHeight=15e3,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=75e5,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this._scene=e,this._globe=void 0,this._ellipsoid=void 0,this._aggregator=new kF(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new mT,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new D(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new D(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new D,this._strafeEndMousePosition=new D,this._zoomMouseStart=new D(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new D,this._panLastWorldPosition=new h,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let t=e.mapProjection;this._maxCoord=t.project(new he(Math.PI,W.PI_OVER_TWO)),this._zoomFactor=5,this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function Nlt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function Ult(e){return D.equalsEpsilon(e.startPosition,e.endPosition,W.EPSILON14)}var klt=.4;function Dlt(e,t,n,i,o,r,s){let a=r[s];d(a)||(a=r[s]={startPosition:new D,endPosition:new D,motion:new D,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),l=e.getButtonReleaseTime(t,n),u=c&&l&&(l.getTime()-c.getTime())/1e3,p=l&&(new Date().getTime()-l.getTime())/1e3;if(c&&l&&u<klt){let y=Nlt(p,i),f=e.getLastMovement(t,n);if(!d(f)||Ult(f)||!a.inertiaEnabled||(a.motion.x=(f.endPosition.x-f.startPosition.x)*.5,a.motion.y=(f.endPosition.y-f.startPosition.y)*.5,a.startPosition=D.clone(f.startPosition,a.startPosition),a.endPosition=D.multiplyByScalar(a.motion,y,a.endPosition),a.endPosition=D.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||D.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let x=e.getStartMousePosition(t,n);o(r,x,a)}}}function Blt(e,t){if(d(t)){let n=e[t];d(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(d(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],d(n)&&(n.inertiaEnabled=!1)}}}var yye=[];function Jc(e,t,n,i,o,r){if(!d(n))return;let s=e._aggregator;Array.isArray(n)||(yye[0]=n,n=yye);let a=n.length;for(let c=0;c<a;++c){let l=n[c],u=d(l.eventType)?l.eventType:l,m=l.modifier,p=s.isMoving(u,m)&&s.getMovement(u,m),y=s.getStartMousePosition(u,m);e.enableInputs&&t&&(p?(i(e,y,p),Blt(e,r)):o<1&&Dlt(s,u,m,o,i,e,r))}}var Ek=new Sn,Ylt=new h,Olt=new D,Klt=new h,Hlt=new D,zlt=new h,Jlt=new h,Qlt=new h,jlt=new h,Eye=new h,qlt=new h,$lt=new h,edt=new h,tdt=new h,ndt=new h,idt=new h,odt=new h,rdt=new h,sdt=new h,adt=new h,hT=new h,gye=new h,xye=new h,PQ={orientation:new Aa};function kQ(e,t,n,i,o,r){let s=1;d(r)&&(s=W.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,l=a>0?e.minimumZoomDistance*s:0,u=e.maximumZoomDistance,m=o-l,p=i*m;p=W.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let y=a/e._scene.canvas.clientHeight;y=Math.min(y,e.maximumMovementRatio);let f=p*y;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!d(e._globe)){if(f>0&&Math.abs(o-l)<1||f<0&&Math.abs(o-u)<1)return;o-f<l?f=o-l-1:o-f>u&&(f=o-u)}let x=e._scene,_=x.camera,C=x.mode,V=PQ.orientation;if(V.heading=_.heading,V.pitch=_.pitch,V.roll=_.roll,_.frustum instanceof en){Math.abs(f)>0&&(_.zoomIn(f),_._adjustOrthographicFrustum(!0));return}let L=g(n.inertiaEnabled,D.equals(t,e._zoomMouseStart)),Z=e._zoomingOnVector,G=e._rotatingZoom,X;if(L||(e._zoomMouseStart=D.clone(t,e._zoomMouseStart),d(e._globe)&&C===ie.SCENE2D?(X=_.getPickRay(t,Ek).origin,X=h.fromElements(X.y,X.z,X.x)):d(e._globe)&&(X=D0(e,t,Ylt)),d(X)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(X,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,Z=e._zoomingOnVector=!1,G=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){_.zoomIn(f);return}let P=C===ie.COLUMBUS_VIEW;if(_.positionCartographic.height<2e6&&(G=!0),!L||G){if(C===ie.SCENE2D){let v=e._zoomWorldPosition,A=_.position;if(!h.equals(v,A)&&_.positionCartographic.height<e._maxCoord.x*2){let M=_.position.x,b=h.subtract(v,A,Klt);h.normalize(b,b);let R=h.distance(v,A)*f/(_.getMagnitude()*.5);_.move(b,R*.5),(_.position.x<0&&M>0||_.position.x>0&&M<0)&&(X=_.getPickRay(t,Ek).origin,X=h.fromElements(X.y,X.z,X.x),e._zoomWorldPosition=h.clone(X,e._zoomWorldPosition))}}else if(C===ie.SCENE3D){let v=h.normalize(_.position,Eye);if(e._cameraUnderground||e._zoomingUnderground||_.positionCartographic.height<3e3&&Math.abs(h.dot(_.direction,v))<.6)P=!0;else{let A=x.canvas,M=Hlt;M.x=A.clientWidth/2,M.y=A.clientHeight/2;let b=D0(e,M,zlt);if(!d(b))P=!0;else if(_.positionCartographic.height<1e6)if(h.dot(_.direction,v)>=-.5)P=!0;else{let R=$lt;h.clone(_.position,R);let E=e._zoomWorldPosition,I=qlt;if(I=h.normalize(E,I),h.dot(I,v)<0)return;let F=adt,N=ndt;h.clone(_.direction,N),h.add(R,h.multiplyByScalar(N,1e3,hT),F);let Y=idt,k=odt;h.subtract(E,R,Y),h.normalize(Y,k);let O=h.dot(v,k);if(O>=0){e._zoomMouseStart.x=-1;return}let U=Math.acos(-O),J=h.magnitude(R),z=h.magnitude(E),ee=J-f,K=h.magnitude(Y),j=Math.asin(W.clamp(K/z*Math.sin(U),-1,1)),q=Math.asin(W.clamp(ee/z*Math.sin(U),-1,1)),be=j-q+U,Te=edt;h.normalize(R,Te);let ae=tdt;ae=h.cross(k,Te,ae),ae=h.normalize(ae,ae),h.normalize(h.cross(Te,ae,hT),N),h.multiplyByScalar(h.normalize(F,hT),h.magnitude(F)-f,F),h.normalize(R,R),h.multiplyByScalar(R,ee,R);let xe=rdt;h.multiplyByScalar(h.add(h.multiplyByScalar(Te,Math.cos(be)-1,gye),h.multiplyByScalar(N,Math.sin(be),xye),hT),ee,xe),h.add(R,xe,R),h.normalize(F,Te),h.normalize(h.cross(Te,ae,hT),N);let _e=sdt;h.multiplyByScalar(h.add(h.multiplyByScalar(Te,Math.cos(be)-1,gye),h.multiplyByScalar(N,Math.sin(be),xye),hT),h.magnitude(F),_e),h.add(F,_e,F),h.clone(R,_.position),h.normalize(h.subtract(F,R,hT),_.direction),h.clone(_.direction,_.direction),h.cross(_.direction,_.up,_.right),h.cross(_.right,_.direction,_.up),_.setView(PQ);return}else{let R=h.normalize(b,Jlt),E=h.normalize(e._zoomWorldPosition,Qlt),I=h.dot(E,R);if(I>0&&I<1){let F=W.acosClamped(I),N=h.cross(E,R,jlt),Y=Math.abs(F)>W.toRadians(20)?_.positionCartographic.height*.75:_.positionCartographic.height-f,k=f/Y;_.rotate(N,F*k)}}}}e._rotatingZoom=!P}if(!L&&P||Z){let v,A=Ji.wgs84ToWindowCoordinates(x,e._zoomWorldPosition,Olt);C!==ie.COLUMBUS_VIEW&&D.equals(t,e._zoomMouseStart)&&d(A)?v=_.getPickRay(A,Ek):v=_.getPickRay(t,Ek);let M=v.direction;(C===ie.COLUMBUS_VIEW||C===ie.SCENE2D)&&h.fromElements(M.y,M.z,M.x,M),_.move(M,f),e._zoomingOnVector=!0}else _.zoomIn(f);e._cameraUnderground||_.setView(PQ)}var cdt=new Sn,ldt=new Sn,ddt=new h;function udt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,cdt).origin,s=o.getPickRay(n.endPosition,ldt).origin;r=h.fromElements(r.y,r.z,r.x,r),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(r,s,ddt),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function _ye(e,t,n){d(n.distance)&&(n=n.distance);let o=e._scene.camera;kQ(e,t,n,e._zoomFactor,o.getMagnitude())}var mdt=new D,hdt=new D;function Tye(e,t,n){if(d(n.angleAndHeight)){fdt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=mdt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=D.normalize(c,c);let l=hdt;l.x=2/s*n.endPosition.x-1,l.y=2/a*(a-n.endPosition.y)-1,l=D.normalize(l,l);let u=W.acosClamped(c.x);c.y<0&&(u=W.TWO_PI-u);let m=W.acosClamped(l.x);l.y<0&&(m=W.TWO_PI-m);let p=m-u;o.twistRight(p)}function fdt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function pdt(e){let t=e._scene.mapMode2D===wl.ROTATE;w.equals(w.IDENTITY,e._scene.camera.transform)?(Jc(e,e.enableTranslate,e.translateEventTypes,udt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Jc(e,e.enableZoom,e.zoomEventTypes,_ye,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Jc(e,e.enableRotate,e.tiltEventTypes,Tye,e.inertiaSpin,"_lastInertiaTiltMovement")):(Jc(e,e.enableZoom,e.zoomEventTypes,_ye,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Jc(e,e.enableRotate,e.translateEventTypes,Tye,e.inertiaSpin,"_lastInertiaSpinMovement"))}var Xye=new Sn,bdt=new h,ydt=new h;function D0(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,bdt)),!d(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,Xye),l=o.pickWorldCoordinates(c,i,a,ydt),u=d(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,m=d(l)?h.distance(l,r.positionWC):Number.POSITIVE_INFINITY;return u<m?h.clone(s,n):h.clone(l,n)}var gdt=new he;function wk(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===ie.SCENE3D){let c=t.cartesianToCartographic(i.position,gdt);d(c)&&(r=c.height)}else r=i.position.z;let s=g(e._scene.globeHeight,0);return Math.abs(s-r)}var xdt=new h;function Iye(e,t){let n=t.origin,i=t.direction,o=wk(e),r=h.normalize(n,xdt),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function Wye(e,t,n,i){let o=h.distance(t.origin,n),r=wk(e),s=W.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),Sn.getPoint(t,o,i)}function Pye(e,t,n,i){let o;return d(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=wk(e))):o=wk(e),Sn.getPoint(t,o,i)}var _dt=new D;function vye(e,t){let n=t.endPosition,i=D.subtract(t.endPosition,t.startPosition,_dt),o=e._strafeEndMousePosition;D.add(o,i,o),t.endPosition=o,DQ(e,t,e._strafeStartPosition),t.endPosition=n}var Sye=new Sn,Tdt=new Sn,vQ=new h,Sdt=new h,Cdt=new h,Vdt=new h,Ldt=new on(h.UNIT_X,0),Rdt=new D,Zdt=new D;function Gdt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){Pd(e,t,n);return}if(e._strafing){vye(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=D.clone(n.startPosition,Rdt),a=D.clone(n.endPosition,Zdt),c=o.getPickRay(s,Sye),l=h.clone(h.ZERO,Vdt),u=h.UNIT_X,m;if(o.position.z<e._minimumPickingTerrainHeight&&(m=D0(e,s,vQ),d(m)&&(l.x=m.x)),r||l.x>o.position.z&&d(m)){let L=m;r&&(L=Pye(e,c,m,vQ)),D.clone(t,e._strafeMousePosition),D.clone(t,e._strafeEndMousePosition),h.clone(L,e._strafeStartPosition),e._strafing=!0,DQ(e,n,e._strafeStartPosition);return}let p=on.fromPointNormal(l,u,Ldt);c=o.getPickRay(s,Sye);let y=Si.rayPlane(c,p,vQ),f=o.getPickRay(a,Tdt),x=Si.rayPlane(f,p,Sdt);if(!d(y)||!d(x)){e._looking=!0,Pd(e,t,n),D.clone(t,e._translateMousePosition);return}let _=h.subtract(y,x,Cdt),C=_.x;_.x=_.y,_.y=_.z,_.z=C;let V=h.magnitude(_);V>W.EPSILON6&&(h.normalize(_,_),o.move(_,V))}var Fye=new D,Wk=new Sn,Pk=new h,Edt=new h,wye=new w,Xdt=new w,Idt=new h,Wdt=new on(h.UNIT_X,0),FQ=new h,MQ=new he,Aye=new w,Pdt=new Ae,vdt=new $,vk=new h;function Fdt(e,t,n){if(d(n.angleAndHeight)&&(n=n.angleAndHeight),D.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){Pd(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,wdt(e,t,n)):Adt(e,t,n)}function wdt(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=Fye;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,Wk),c=h.UNIT_X,l=a.origin,u=a.direction,m,p=h.dot(c,u);if(Math.abs(p)>W.EPSILON6&&(m=-h.dot(c,l)/p),!d(m)||m<=0){e._looking=!0,Pd(e,t,n),D.clone(t,e._tiltCenterMousePosition);return}let y=h.multiplyByScalar(u,m,Pk);h.add(l,y,y);let f=i.mapProjection,x=f.ellipsoid;h.fromElements(y.y,y.z,y.x,y);let _=f.unproject(y,MQ);x.cartographicToCartesian(_,y);let C=vt.eastNorthUpToFixedFrame(y,x,wye),V=e._globe,L=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let Z=w.clone(o.transform,Aye);o._setTransform(C),Wd(e,t,n,h.UNIT_Z),o._setTransform(Z),e._globe=V,e._ellipsoid=L;let G=L.maximumRadius;e._rotateFactor=1/G,e._rotateRateRangeAdjustment=G}function Adt(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(D.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,Pk);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=D0(e,t,Pk)),!d(s)){a=o.getPickRay(t,Wk);let b=a.origin,R=a.direction,E,I=h.dot(c,R);if(Math.abs(I)>W.EPSILON6&&(E=-h.dot(c,b)/I),!d(E)||E<=0){e._looking=!0,Pd(e,t,n),D.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(R,E,Pk),h.add(b,s,s)}r&&(d(a)||(a=o.getPickRay(t,Wk)),Wye(e,a,s,s)),D.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let l=i.canvas,u=Fye;u.x=l.clientWidth/2,u.y=e._tiltCenterMousePosition.y,a=o.getPickRay(u,Wk);let m=h.clone(h.ZERO,Idt);m.x=s.x;let p=on.fromPointNormal(m,c,Wdt),y=Si.rayPlane(a,p,Edt),f=o._projection,x=f.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let _=f.unproject(s,MQ);x.cartographicToCartesian(_,s);let C=vt.eastNorthUpToFixedFrame(s,x,wye),V;d(y)?(h.fromElements(y.y,y.z,y.x,y),_=f.unproject(y,MQ),x.cartographicToCartesian(_,y),V=vt.eastNorthUpToFixedFrame(y,x,Xdt)):V=C;let L=e._globe,Z=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let G=h.UNIT_Z,X=w.clone(o.transform,Aye);o._setTransform(C);let P=h.cross(h.UNIT_Z,h.normalize(o.position,FQ),FQ),v=h.dot(o.right,P);if(Wd(e,t,n,G,!1,!0),o._setTransform(V),v<0){let b=n.startPosition.y-n.endPosition.y;(r&&b<0||!r&&b>0)&&(G=void 0);let R=o.constrainedAxis;o.constrainedAxis=void 0,Wd(e,t,n,G,!0,!1),o.constrainedAxis=R}else Wd(e,t,n,G,!0,!1);if(d(o.constrainedAxis)){let b=h.cross(o.direction,o.constrainedAxis,vk);h.equalsEpsilon(b,h.ZERO,W.EPSILON6)||(h.dot(b,o.right)<0&&h.negate(b,b),h.cross(b,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(X),e._globe=L,e._ellipsoid=Z;let A=Z.maximumRadius;e._rotateFactor=1/A,e._rotateRateRangeAdjustment=A;let M=h.clone(o.positionWC,FQ);if(e.enableCollisionDetection&&OQ(e),!h.equals(o.positionWC,M)){o._setTransform(V),o.worldToCameraCoordinatesPoint(M,M);let b=h.magnitudeSquared(M);h.magnitudeSquared(o.position)>b&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(b),o.position));let R=h.angleBetween(M,o.position),E=h.cross(M,o.position,M);h.normalize(E,E);let I=Ae.fromAxisAngle(E,R,Pdt),F=$.fromQuaternion(I,vdt);$.multiplyByVector(F,o.direction,o.direction),$.multiplyByVector(F,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(X)}}var Mye=new D,Nye=new Sn,Uye=new h;function Mdt(e,t,n){d(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=Mye,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,Nye),l=c.origin,u=c.direction,m=o.position.z,p;m<e._minimumPickingTerrainHeight&&(p=D0(e,a,Uye));let y;if(d(p)&&(y=h.distance(l,p)),s){let f=Iye(e,c,m);d(y)?y=Math.min(y,f):y=f}if(!d(y)){let f=h.UNIT_X;y=-h.dot(f,l)/h.dot(f,u)}kQ(e,t,n,e._zoomFactor,y)}function Ndt(e){let n=e._scene.camera;if(!w.equals(w.IDENTITY,n.transform))Jc(e,e.enableRotate,e.rotateEventTypes,Wd,e.inertiaSpin,"_lastInertiaSpinMovement"),Jc(e,e.enableZoom,e.zoomEventTypes,Dye,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),Jc(e,e.enableTilt,e.tiltEventTypes,Fdt,e.inertiaSpin,"_lastInertiaTiltMovement"),Jc(e,e.enableTranslate,e.translateEventTypes,Gdt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Jc(e,e.enableZoom,e.zoomEventTypes,Mdt,e.inertiaZoom,"_lastInertiaZoomMovement"),Jc(e,e.enableLook,e.lookEventTypes,Pd),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);d(o)&&(e._tween=i.add(o))}i.update()}}var Udt=new Sn,kdt=new on(h.UNIT_X,0),Ddt=new h,Bdt=new h;function DQ(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,Udt),s=h.clone(o.direction,Bdt);i.mode===ie.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=on.fromPointNormal(n,s,kdt),c=Si.rayPlane(r,a,Ddt);d(c)&&(s=h.subtract(n,c,s),i.mode===ie.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var Cye=new h,kye=new he,NQ=new h,UQ=new re,Ydt=new h,Odt=new h,Kdt=new h;function Hdt(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!w.equals(o.transform,w.IDENTITY)){Wd(e,t,n);return}let a,c,l=s.geodeticSurfaceNormal(o.position,Ydt);if(D.equals(t,e._rotateMousePosition)){if(e._looking)Pd(e,t,n,l);else if(e._rotating)Wd(e,t,n);else if(e._strafing)vye(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=NQ,c.x=c.y=c.z=a,s=re.fromCartesian3(c,UQ),AQ(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let u=s.cartesianToCartographic(o.positionWC,kye).height,m=e._globe;if(d(m)&&u<e._minimumPickingTerrainHeight){let p=D0(e,n.startPosition,Kdt);if(d(p)){let y=!1,f=o.getPickRay(n.startPosition,Xye);if(r)y=!0,Pye(e,f,p,p);else{let x=s.geodeticSurfaceNormal(p,Odt);Math.abs(h.dot(f.direction,x))<.05?y=!0:y=h.magnitude(o.position)<h.magnitude(p)}y?(D.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,DQ(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=NQ,c.x=c.y=c.z=a,s=re.fromCartesian3(c,UQ),AQ(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,Pd(e,t,n,l)}else d(o.pickEllipsoid(n.startPosition,e._ellipsoid,Cye))?(AQ(e,t,n,e._ellipsoid),h.clone(Cye,e._rotateStartPosition)):u>e._minimumTrackBallHeight?(e._rotating=!0,Wd(e,t,n)):(e._looking=!0,Pd(e,t,n,l));D.clone(t,e._rotateMousePosition)}function Wd(e,t,n,i,o,r){o=g(o,!1),r=g(r,!1);let s=e._scene,a=s.camera,c=s.canvas,l=a.constrainedAxis;d(i)&&(a.constrainedAxis=i);let u=h.magnitude(a.position),m=e._rotateFactor*(u-e._rotateRateRangeAdjustment);m>e._maximumRotateRate&&(m=e._maximumRotateRate),m<e._minimumRotateRate&&(m=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,y=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),y=Math.min(y,e.maximumMovementRatio);let f=m*p*Math.PI*2,x=m*y*Math.PI;o||a.rotateRight(f),r||a.rotateUp(x),a.constrainedAxis=l}var wQ=se.clone(se.UNIT_W),Vye=se.clone(se.UNIT_W),Xk=new h,hV=new h,Ik=new h,Lye=new h,zdt=new D,Jdt=new D,Qdt=new D,jdt=new D,qdt=new Sn;function AQ(e,t,n,i){let o=e._scene,r=o.camera,s=D.clone(n.startPosition,zdt),a=D.clone(n.endPosition,Jdt),c=i.cartesianToCartographic(r.positionWC,kye).height,l,u;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(l=h.clone(e._panLastWorldPosition,wQ),!d(e._globe)&&!D.equalsEpsilon(s,e._panLastMousePosition)&&(l=D0(e,s,wQ)),!d(e._globe)&&d(l))){let m=h.subtract(l,r.positionWC,hV),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,m),hV),y=h.magnitude(p),f=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,y,o.pixelRatio,jdt),x=D.subtract(a,s,Qdt),_=h.multiplyByScalar(r.rightWC,x.x*f.x,hV),C=h.normalize(r.positionWC,Eye),V=r.getPickRay(a,qdt).direction,L=h.subtract(V,h.projectVector(V,r.rightWC,Ik),Ik),Z=h.angleBetween(L,r.directionWC),G=1;d(r.frustum.fov)&&(G=Math.max(Math.tan(Z),.1));let X=Math.abs(h.dot(r.directionWC,C)),P=-x.y*f.y*2/Math.sqrt(G)*(1-X),v=h.multiplyByScalar(V,P,Ik);X=Math.abs(h.dot(r.upWC,C));let A=h.multiplyByScalar(r.upWC,-x.y*(1-X)*f.y,Lye);u=h.add(l,_,Vye),u=h.add(u,v,u),u=h.add(u,A,u),h.clone(u,e._panLastWorldPosition),D.clone(a,e._panLastMousePosition)}if((!d(l)||!d(u))&&(l=r.pickEllipsoid(s,i,wQ),u=r.pickEllipsoid(a,i,Vye)),!d(l)||!d(u)){e._rotating=!0,Wd(e,t,n);return}if(l=r.worldToCameraCoordinates(l,l),u=r.worldToCameraCoordinates(u,u),d(r.constrainedAxis)){let m=r.constrainedAxis,p=h.mostOrthogonalAxis(m,Xk);h.cross(p,m,p),h.normalize(p,p);let y=h.cross(m,p,hV),f=h.magnitude(l),x=h.dot(m,l),_=Math.acos(x/f),C=h.multiplyByScalar(m,x,Ik);h.subtract(l,C,C),h.normalize(C,C);let V=h.magnitude(u),L=h.dot(m,u),Z=Math.acos(L/V),G=h.multiplyByScalar(m,L,Lye);h.subtract(u,G,G),h.normalize(G,G);let X=Math.acos(h.dot(C,p));h.dot(C,y)<0&&(X=W.TWO_PI-X);let P=Math.acos(h.dot(G,p));h.dot(G,y)<0&&(P=W.TWO_PI-P);let v=X-P,A;h.equalsEpsilon(m,r.position,W.EPSILON2)?A=r.right:A=h.cross(m,r.position,Xk);let M=h.cross(m,A,Xk),b=h.dot(M,h.subtract(l,m,hV)),R=h.dot(M,h.subtract(u,m,hV)),E;b>0&&R>0?E=Z-_:b>0&&R<=0?h.dot(r.position,m)>0?E=-_-Z:E=_+Z:E=_-Z,r.rotateRight(v),r.rotateUp(E)}else{h.normalize(l,l),h.normalize(u,u);let m=h.dot(l,u),p=h.cross(l,u,Xk);if(m<1&&!h.equalsEpsilon(p,h.ZERO,W.EPSILON14)){let y=Math.acos(m);r.rotate(p,y)}}}var $dt=new h,eut=new he,Rye=0;function Dye(e,t,n){d(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,l;c?l=t:(l=Mye,l.x=a.clientWidth/2,l.y=a.clientHeight/2);let u=s.getPickRay(l,Nye),m,p=o.cartesianToCartographic(s.position,eut).height,y=Math.abs(Rye)<e.minimumPickingTerrainDistanceWithInertia;(i?y:p<e._minimumPickingTerrainHeight)&&(m=D0(e,l,Uye));let x;if(d(m)&&(x=h.distance(u.origin,m),Rye=x),c){let C=Iye(e,u,p);d(x)?x=Math.min(x,C):x=C}d(x)||(x=p);let _=h.normalize(s.position,$dt);kQ(e,t,n,e._zoomFactor,x,h.dot(_,s.direction))}var Bye=new D,Fk=new Sn,DF=new h,tut=new h,Yye=new w,nut=new w,Oye=new w,iut=new Ae,out=new $,BQ=new he,YQ=new h;function rut(e,t,n){let o=e._scene.camera;if(!w.equals(o.transform,w.IDENTITY))return;if(d(n.angleAndHeight)&&(n=n.angleAndHeight),D.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,YQ);Pd(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,BQ);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,aut(e,t,n)):cut(e,t,n)}var sut=new he;function aut(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,sut).height;if(a-s-1<W.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,l=Bye;l.x=c.clientWidth/2,l.y=c.clientHeight/2;let u=r.getPickRay(l,Fk),m,p=Si.rayEllipsoid(u,i);if(d(p))m=Sn.getPoint(u,p.start,DF);else if(a>e._minimumTrackBallHeight){let V=Si.grazingAltitudeLocation(u,i);if(!d(V))return;let L=i.cartesianToCartographic(V,BQ);L.height=0,m=i.cartographicToCartesian(L,DF)}else{e._looking=!0;let V=e._ellipsoid.geodeticSurfaceNormal(r.position,YQ);Pd(e,t,n,V),D.clone(t,e._tiltCenterMousePosition);return}let y=vt.eastNorthUpToFixedFrame(m,i,Yye),f=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let _=w.clone(r.transform,Oye);r._setTransform(y),Wd(e,t,n,h.UNIT_Z),r._setTransform(_),e._globe=f,e._ellipsoid=x;let C=x.maximumRadius;e._rotateFactor=1/C,e._rotateRateRangeAdjustment=C}function cut(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,l;if(D.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,DF);else{if(a=D0(e,t,DF),!d(a)){if(c=r.getPickRay(t,Fk),l=Si.rayEllipsoid(c,i),!d(l)){if(i.cartesianToCartographic(r.position,BQ).height<=e._minimumTrackBallHeight){e._looking=!0;let R=e._ellipsoid.geodeticSurfaceNormal(r.position,YQ);Pd(e,t,n,R),D.clone(t,e._tiltCenterMousePosition)}return}a=Sn.getPoint(c,l.start,DF)}s&&(d(c)||(c=r.getPickRay(t,Fk)),Wye(e,c,a,a)),D.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let u=o.canvas,m=Bye;m.x=u.clientWidth/2,m.y=e._tiltCenterMousePosition.y,c=r.getPickRay(m,Fk);let p=h.magnitude(a),y=h.fromElements(p,p,p,NQ),f=re.fromCartesian3(y,UQ);if(l=Si.rayEllipsoid(c,f),!d(l))return;let x=h.magnitude(c.origin)>p?l.start:l.stop,_=Sn.getPoint(c,x,tut),C=vt.eastNorthUpToFixedFrame(a,i,Yye),V=vt.eastNorthUpToFixedFrame(_,f,nut),L=e._globe,Z=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let G=h.UNIT_Z,X=w.clone(r.transform,Oye);r._setTransform(V);let P=h.cross(_,r.positionWC,vk);if(h.dot(r.rightWC,P)<0){let b=n.startPosition.y-n.endPosition.y;(s&&b<0||!s&&b>0)&&(G=void 0);let R=r.constrainedAxis;r.constrainedAxis=void 0,Wd(e,t,n,G,!0,!1),r.constrainedAxis=R}else Wd(e,t,n,G,!0,!1);if(r._setTransform(C),Wd(e,t,n,G,!1,!0),d(r.constrainedAxis)){let b=h.cross(r.direction,r.constrainedAxis,vk);h.equalsEpsilon(b,h.ZERO,W.EPSILON6)||(h.dot(b,r.right)<0&&h.negate(b,b),h.cross(b,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(X),e._globe=L,e._ellipsoid=Z;let A=Z.maximumRadius;e._rotateFactor=1/A,e._rotateRateRangeAdjustment=A;let M=h.clone(r.positionWC,vk);if(e.enableCollisionDetection&&OQ(e),!h.equals(r.positionWC,M)){r._setTransform(V),r.worldToCameraCoordinatesPoint(M,M);let b=h.magnitudeSquared(M);h.magnitudeSquared(r.position)>b&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(b),r.position));let R=h.angleBetween(M,r.position),E=h.cross(M,r.position,M);h.normalize(E,E);let I=Ae.fromAxisAngle(E,R,iut),F=$.fromQuaternion(I,out);$.multiplyByVector(F,r.direction,r.direction),$.multiplyByVector(F,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(X)}}var lut=new D,dut=new D,Zye=new Sn,Gye=new Sn,uut=new h,mut=new h;function Pd(e,t,n,i){let r=e._scene.camera,s=lut;s.x=n.startPosition.x,s.y=0;let a=dut;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,Zye),l=r.getPickRay(a,Gye),u=0,m,p;r.frustum instanceof en?(m=c.origin,p=l.origin,h.add(r.direction,m,m),h.add(r.direction,p,p),h.subtract(m,r.position,m),h.subtract(p,r.position,p),h.normalize(m,m),h.normalize(p,p)):(m=c.direction,p=l.direction);let y=h.dot(m,p);y<1&&(u=Math.acos(y)),u=n.startPosition.x>n.endPosition.x?-u:u;let f=e._horizontalRotationAxis;if(d(i)?r.look(i,-u):d(f)?r.look(f,-u):r.lookLeft(u),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,Zye),l=r.getPickRay(a,Gye),u=0,r.frustum instanceof en?(m=c.origin,p=l.origin,h.add(r.direction,m,m),h.add(r.direction,p,p),h.subtract(m,r.position,m),h.subtract(p,r.position,p),h.normalize(m,m),h.normalize(p,p)):(m=c.direction,p=l.direction),y=h.dot(m,p),y<1&&(u=Math.acos(y)),u=n.startPosition.y>n.endPosition.y?-u:u,i=g(i,f),d(i)){let x=r.direction,_=h.negate(i,uut),C=h.equalsEpsilon(x,i,W.EPSILON2),V=h.equalsEpsilon(x,_,W.EPSILON2);if(!C&&!V){y=h.dot(x,i);let L=W.acosClamped(y);u>0&&u>L&&(u=L-W.EPSILON4),y=h.dot(x,_),L=W.acosClamped(y),u<0&&-u>L&&(u=-L+W.EPSILON4);let Z=h.cross(i,x,mut);r.look(Z,u)}else(C&&u<0||V&&u>0)&&r.look(r.right,-u)}else r.lookUp(u)}function hut(e){Jc(e,e.enableRotate,e.rotateEventTypes,Hdt,e.inertiaSpin,"_lastInertiaSpinMovement"),Jc(e,e.enableZoom,e.zoomEventTypes,Dye,e.inertiaZoom,"_lastInertiaZoomMovement"),Jc(e,e.enableTilt,e.tiltEventTypes,rut,e.inertiaSpin,"_lastInertiaTiltMovement"),Jc(e,e.enableLook,e.lookEventTypes,Pd)}var fut=new w,put=new he;function OQ(e){e._adjustedHeightForTerrain=!0;let t=e._scene,n=t.mode,i=t.globe;if(!d(i)||n===ie.SCENE2D||n===ie.MORPHING)return;let o=t.camera,r=i.ellipsoid,s=t.mapProjection,a,c;w.equals(o.transform,w.IDENTITY)||(a=w.clone(o.transform,fut),c=h.magnitude(o.position),o._setTransform(w.IDENTITY));let l=put;n===ie.SCENE3D?r.cartesianToCartographic(o.position,l):s.unproject(o.position,l);let u=!1;if(l.height<e._minimumCollisionTerrainHeight){let m=e._scene.globeHeight;if(d(m)){let p=m+e.minimumZoomDistance;l.height<p&&(l.height=p,n===ie.SCENE3D?r.cartographicToCartesian(l,o.position):s.project(l,o.position),u=!0)}}d(a)&&(o._setTransform(a),u&&(h.normalize(o.position,o.position),h.negate(o.position,o.direction),h.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),h.normalize(o.direction,o.direction),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up)))}BF.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ie.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var but=new h,yut=new h;BF.prototype.update=function(){let e=this._scene,t=e.camera,n=e.globe,i=e.mode;w.equals(t.transform,w.IDENTITY)?(this._globe=n,this._ellipsoid=d(this._globe)?this._globe.ellipsoid:e.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=re.UNIT_SPHERE);let o=d(this._globe)?this._globe.terrainExaggeration:1,r=d(this._globe)?this._globe.terrainExaggerationRelativeHeight:0;this._minimumCollisionTerrainHeight=Vc.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=Vc.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=Vc.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&d(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,but),c=h.clone(t.directionWC,yut);i===ie.SCENE2D?pdt(this):i===ie.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,Ndt(this)):i===ie.SCENE3D&&(this._horizontalRotationAxis=void 0,hut(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain&&(!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC))&&OQ(this),this._aggregator.reset()};BF.prototype.isDestroyed=function(){return!1};BF.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var YF=BF;var OIi=T(S(),1);var VIi=T(S(),1),OF=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var RIi=T(S(),1),KF=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function B0(){this._sceneFramebuffer=new tT;let e=.125,t=new Array(6);t[0]=new po({fragmentShader:Al,textureScale:e,forcePowerOfTwo:!0,sampleMode:Ed.LINEAR});let n=t[1]=new po({fragmentShader:KF,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new D,t[2]=new po({fragmentShader:Jy,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new po({fragmentShader:Jy,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new po({fragmentShader:Al,sampleMode:Ed.LINEAR}),this._uCenter=new D,this._uRadius=void 0,t[5]=new po({fragmentShader:OF,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new Hc({stages:t});let o=new cT(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}B0.prototype.get=function(e){return this._stages.get(e)};B0.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var gut=new se,Kye=new D,xut=new D,Hye=new w;function _ut(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=w.computeViewportTransformation(n,0,1,Hye),l=w.multiplyByPoint(r,o,gut),u=vt.pointToGLWindowCoordinates(s,c,o,Kye);l.x+=W.SOLAR_RADIUS;let m=vt.pointToGLWindowCoordinates(a,c,l,l),p=D.magnitude(D.subtract(m,u,m))*30*2,y=xut;y.x=p,y.y=p,e._uCenter=D.clone(u,e._uCenter),e._uRadius=Math.max(y.x,y.y)*.15;let f=t.drawingBufferWidth,x=t.drawingBufferHeight,_=e._stages,C=_.get(0),V=C.outputTexture.width,L=C.outputTexture.height,Z=new He;Z.width=V,Z.height=L,c=w.computeViewportTransformation(Z,0,1,Hye),u=vt.pointToGLWindowCoordinates(s,c,o,Kye),y.x*=V/f,y.y*=L/x;let G=C.scissorRectangle;G.x=Math.max(u.x-y.x*.5,0),G.y=Math.max(u.y-y.y*.5,0),G.width=Math.min(y.x,f),G.height=Math.min(y.y,x);for(let X=1;X<4;++X)He.clone(G,_.get(X).scissorRectangle)}B0.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};B0.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),_ut(this,t,n),o};B0.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};B0.prototype.copy=function(e,t){if(!d(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Al,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};B0.prototype.isDestroyed=function(){return!1};B0.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var HF=B0;var qIi=T(S(),1);function zye(){this._cachedShowFrustumsShaders={}}function Tut(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function Sut(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(u){u=Be.replaceMain(u,"czm_Debug_main");let m=/out_FragData_(\d+)/g,p;for(;(p=m.exec(u))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return u});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",o.sources.push(a);let l=Tut(i);return Qt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:l})}var zF=new B;function Cut(e,t){let n;return d(t.uniformMap)?n=t.uniformMap:n={},d(n.debugShowCommandsColor)||d(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(d(t._debugColor)||(t._debugColor=B.fromRandom()),t._debugColor):B.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(zF.red=t.debugOverlappingFrustums&1?1:0,zF.green=t.debugOverlappingFrustums&2?1:0,zF.blue=t.debugOverlappingFrustums&4?1:0,zF.alpha=1,zF):B.WHITE}),n}var Vut=new nt;zye.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];d(o)||(o=Sut(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=nt.shallowClone(t,Vut);r.shaderProgram=o,r.uniformMap=Cut(e,t),r.execute(e.context,n)};var JF=zye;var Mk=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function Yi(e){e=g(e,g.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Oe(e.contextOptions),r=d(n),s=new QZ(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),d(i)||(i=t.parentNode),this._id=Yn(),this._jobScheduler=new nF,this._frameState=new eF(s,new Yv(n," \u2022 ",i),this._jobScheduler),this._frameState.scene3DOnly=g(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new nL(s),this._globe=void 0,this._globeTranslucencyState=new tF,this._primitives=new Zl,this._groundPrimitives=new Zl,this._globeHeight=void 0,this._cameraUnderground=!1,this._logDepthBuffer=s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new mT,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=g(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new Qv(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ti({color:new B,stencil:0,owner:this}),this._depthClearCommand=new ti({depth:1,owner:this}),this._stencilClearCommand=new ti({stencil:0}),this._classificationStencilClearCommand=new ti({stencil:0,renderState:De.fromCache({stencilMask:wt.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new UF(this),this._preUpdate=new ye,this._postUpdate=new ye,this._renderError=new ye,this._preRender=new ye,this._postRender=new ye,this._minimumDisableDepthTestDistance=0,this._debugInspector=new JF,this._msaaSamples=g(e.msaaSamples,1),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new ye,this.morphComplete=new ye,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=B.clone(B.BLACK),this._mode=ie.SCENE3D,this._mapProjection=d(e.mapProjection)?e.mapProjection:new Zi,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.fog=new $v,this._shadowMapCamera=new co(this),this.shadowMap=new U0({context:s,lightCamera:this._shadowMapCamera,enabled:g(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=B.clone(B.WHITE),this._actualInvertClassificationColor=B.clone(this._invertClassificationColor),this._invertClassification=new lV,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new AF,this._brdfLutGenerator=new Mv,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new YF(this),this._cameraUnderground=!1,this._mapMode2D=g(e.mapMode2D,wl.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=g(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=g(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=Fa.requestCompletedEvent.addEventListener(Mk(this)),this._removeTaskProcessorListenerCallback=pi.taskCompletedEvent.addEventListener(Mk(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new He(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new co(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new co(this),this.preloadFlightCullingVolume=void 0,this._picking=new pF(this),this._defaultView=new oT(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentMapAtlas=void 0,this.light=new tp,qye(this,0,te.now()),this.updateFrameState(),this.initializeFrame()}function Lut(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];d(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(Mk(e))),n.push(t.terrainProviderChanged.addEventListener(Mk(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(Yi.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return kt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return kt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return pm.isSupported(this._context)}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Lut(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(d(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(d(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),d(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(d(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===ie.SCENE2D?this.morphTo2D(0):e===ie.SCENE3D?this.morphTo3D(0):e===ie.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new co(this),d(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new qv(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,kt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});Yi.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function Jye(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,s=i.shadowState.lightShadowMaps,a=i.shadowState.lightShadowsEnabled,c=t.derivedCommands;d(t.pickId)&&(c.picking=w0.createPickDerivedCommand(e,t,o,c.picking)),t.pickOnly||(c.depth=w0.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=w0.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=U0.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===Re.TRANSLUCENT&&d(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=d(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}Yi.prototype.updateDerivedCommands=function(e){if(!d(e.derivedCommands))return;let t=this._frameState,n=this._context,i=!1,o=t.shadowState.lastDirtyTime;e.lastDirtyTime!==o&&(e.lastDirtyTime=o,e.dirty=!0,i=!0);let r=t.useLogDepth,s=this._hdr,a=e.derivedCommands,c=d(a.logDepth),l=d(a.hdr),u=d(a.originalCommand),m=r&&!c,p=s&&!l,y=(!r||!s)&&!u;if(e.dirty=e.dirty||m||p||y,e.dirty){e.dirty=!1;let f=t.shadowState.shadowMaps;t.shadowState.shadowsEnabled&&e.castShadows&&(a.shadows=U0.createCastDerivedCommand(f,e,i,n,a.shadows)),(c||m)&&(a.logDepth=w0.createLogDepthCommand(e,n,a.logDepth),Jye(this,a.logDepth.command,i)),(u||y)&&Jye(this,e,i)}};var Rut=new Du({pass:Xo.RENDER}),KQ=new Du({pass:Xo.PRELOAD}),HQ=new Du({pass:Xo.PRELOAD_FLIGHT}),Zut=new Du({pass:Xo.REQUEST_RENDER_MODE_DEFER_CHECK}),Qye=new ce,zQ;function Gut(e){let t=e.globe;if(e._mode===ie.SCENE3D&&d(t)&&t.show&&!e._cameraUnderground&&!e._globeTranslucencyState.translucent){let n=t.ellipsoid,i=e.frameState.minimumTerrainHeight;return Qye.radius=n.minimumRadius+i,zQ=wv.fromBoundingSphere(Qye,e.camera.positionWC,zQ),zQ}}Yi.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function qye(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=te.clone(n,i.time)}Yi.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=Gut(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof en||this.camera.frustum instanceof yr),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState,d(this.globe)&&(t.terrainExaggeration=this.globe.terrainExaggeration,t.terrainExaggerationRelativeHeight=this.globe.terrainExaggerationRelativeHeight),d(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready?(t.specularEnvironmentMaps=this._specularEnvironmentMapAtlas.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentMapAtlas.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=B.clone(this.invertClassificationColor,this._actualInvertClassificationColor),lV.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,d(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};Yi.prototype.isVisible=function(e,t,n){return d(e)&&(!d(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==qt.OUTSIDE&&(!d(n)||!e.occlude||!e.boundingVolume.isOccluded(n)))};var Ak=new w(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Ak=w.inverseTransformation(Ak,Ak);function Eut(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;d(t._debugVolume)&&t._debugVolume.destroy();let a,c=h.clone(s.center);if(o.mode!==ie.SCENE3D){c=w.multiplyByPoint(Ak,c,c);let p=o.mapProjection,y=p.unproject(c);c=p.ellipsoid.cartographicToCartesian(y)}if(d(s.radius)){let p=s.radius;a=An.toWireframe(Is.createGeometry(new Is({radii:new h(p,p,p),vertexFormat:sn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new Zn({geometryInstances:new _t({geometry:a,modelMatrix:w.fromTranslation(c),attributes:{color:new Ut(1,0,0,1)}}),appearance:new sn({flat:!0,translucent:!1}),asynchronous:!1})}else{let p=s.halfAxes;a=An.toWireframe(cl.createGeometry(cl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:sn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new Zn({geometryInstances:new _t({geometry:a,modelMatrix:w.fromRotationTranslation(p,c,new w),attributes:{color:new Ut(1,0,0,1)}}),appearance:new sn({flat:!0,translucent:!1}),asynchronous:!1})}let l=o.commandList,u=o.commandList=[];t._debugVolume.update(o),e=u[0],o.useLogDepth&&(e=w0.createLogDepthCommand(e,r).command);let m;d(i)&&(m=n.framebuffer,n.framebuffer=i),e.execute(r,n),d(m)&&(n.framebuffer=m),o.commandList=l}function Ra(e,t,n,i,o){let r=t._frameState;if(d(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ti){e.execute(n,i);return}e.debugShowBoundingVolume&&d(e.boundingVolume)&&Eut(e,t,i,o),r.useLogDepth&&d(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=r.passes;if(!s.pick&&!s.depth&&t._hdr&&d(e.derivedCommands)&&d(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth&&d(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(n,i);return}else if(d(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(n,i);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,i);return}r.shadowState.lightShadowsEnabled&&e.receiveShadows&&d(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(n,i):e.execute(n,i)}function QF(e,t,n,i){let o=t._frameState,r=e.derivedCommands;d(r)&&(o.useLogDepth&&d(r.logDepth)&&(e=r.logDepth.command),r=e.derivedCommands,d(r.picking)?(e=r.picking.pickCommand,e.execute(n,i)):d(r.depth)&&(e=r.depth.depthOnlyCommand,e.execute(n,i)))}function $ye(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function Xut(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+W.EPSILON12}function Iut(e,t,n,i,o){let r=e.context;F0(i,$ye,e.camera.positionWC),d(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function Wut(e,t,n,i,o){let r=e.context;F0(i,Xut,e.camera.positionWC),d(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function Put(e,t,n,i){let o=e.context;F0(i,$ye,e.camera.positionWC);let r=i.length;for(let s=0;s<r;++s)t(i[s],e,o,n)}var vut=new Ri,Fut=new Kc,wut=new en,Aut=new yr;function JQ(e,t){let n=e.camera,i=e.context,o=e.frameState,r=i.uniformState;r.updateCamera(n);let s;d(n.frustum.fov)?s=n.frustum.clone(vut):d(n.frustum.infiniteProjectionMatrix)?s=n.frustum.clone(Fut):d(n.frustum.width)?s=n.frustum.clone(wut):s=n.frustum.clone(Aut),s.near=n.frustum.near,s.far=n.frustum.far,r.updateFrustum(s),r.updatePass(Re.ENVIRONMENT);let a=o.passes,c=a.pick,l=e._environmentState,u=e._view,m=l.renderTranslucentDepthForPick,p=l.useWebVR;if(!c){let R=l.skyBoxCommand;if(d(R)&&Ra(R,e,i,t),l.isSkyAtmosphereVisible&&Ra(l.skyAtmosphereCommand,e,i,t),l.isSunVisible&&(l.sunDrawCommand.execute(i,t),e.sunBloom&&!p)){let E;l.useGlobeDepthFramebuffer?E=u.globeDepth.framebuffer:l.usePostProcess?E=u.sceneFramebuffer.framebuffer:E=l.originalFramebuffer,e._sunPostProcess.execute(i),e._sunPostProcess.copy(i,E),t.framebuffer=E}l.isMoonVisible&&l.moonCommand.execute(i,t)}let y;l.useOIT?(d(e._executeOITFunction)||(e._executeOITFunction=function(R,E,I,F,N){u.globeDepth.prepareColorTextures(i),u.oit.executeCommands(R,E,I,F,N)}),y=e._executeOITFunction):a.render?y=Iut:y=Wut;let f=u.frustumCommandsList,x=f.length,_=l.clearGlobeDepth,C=l.useDepthPlane,V=e._globeTranslucencyState,L=V.translucent,Z=e._view.globeTranslucencyFramebuffer,G=e._depthClearCommand,X=e._stencilClearCommand,P=e._classificationStencilClearCommand,v=e._depthPlane,A=l.usePostProcessSelected,M=n.position.z,b;for(let R=0;R<x;++R){let E=x-R-1,I=f[E];e.mode===ie.SCENE2D?(n.position.z=M-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=E!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),G.execute(i,t),i.stencilBuffer&&X.execute(i,t),r.updatePass(Re.GLOBE);let F=I.commands[Re.GLOBE],N=I.indices[Re.GLOBE];if(L)V.executeGlobeCommands(I,Ra,Z,e,t);else for(b=0;b<N;++b)Ra(F[b],e,i,t);let Y=u.globeDepth;if(d(Y)&&l.useGlobeDepthFramebuffer&&Y.executeCopyDepth(i,t),!l.renderTranslucentDepthForPick)if(r.updatePass(Re.TERRAIN_CLASSIFICATION),F=I.commands[Re.TERRAIN_CLASSIFICATION],N=I.indices[Re.TERRAIN_CLASSIFICATION],L)V.executeGlobeClassificationCommands(I,Ra,Z,e,t);else for(b=0;b<N;++b)Ra(F[b],e,i,t);if(_&&(G.execute(i,t),C&&v.execute(i,t)),!l.useInvertClassification||c||l.renderTranslucentDepthForPick){for(r.updatePass(Re.CESIUM_3D_TILE),F=I.commands[Re.CESIUM_3D_TILE],N=I.indices[Re.CESIUM_3D_TILE],b=0;b<N;++b)Ra(F[b],e,i,t);if(N>0&&(d(Y)&&l.useGlobeDepthFramebuffer&&(Y.prepareColorTextures(i,_),Y.executeUpdateDepth(i,t,_,Y.depthStencilTexture)),!l.renderTranslucentDepthForPick))for(r.updatePass(Re.CESIUM_3D_TILE_CLASSIFICATION),F=I.commands[Re.CESIUM_3D_TILE_CLASSIFICATION],N=I.indices[Re.CESIUM_3D_TILE_CLASSIFICATION],b=0;b<N;++b)Ra(F[b],e,i,t)}else{e._invertClassification.clear(i,t);let J=t.framebuffer;for(t.framebuffer=e._invertClassification._fbo.framebuffer,r.updatePass(Re.CESIUM_3D_TILE),F=I.commands[Re.CESIUM_3D_TILE],N=I.indices[Re.CESIUM_3D_TILE],b=0;b<N;++b)Ra(F[b],e,i,t);for(d(Y)&&l.useGlobeDepthFramebuffer&&(e._invertClassification.prepareTextures(i),Y.executeUpdateDepth(i,t,_,e._invertClassification._fbo.getDepthStencilTexture())),r.updatePass(Re.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),F=I.commands[Re.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],N=I.indices[Re.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],b=0;b<N;++b)Ra(F[b],e,i,t);for(t.framebuffer=J,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),N>0&&i.stencilBuffer&&P.execute(i,t),r.updatePass(Re.CESIUM_3D_TILE_CLASSIFICATION),F=I.commands[Re.CESIUM_3D_TILE_CLASSIFICATION],N=I.indices[Re.CESIUM_3D_TILE_CLASSIFICATION],b=0;b<N;++b)Ra(F[b],e,i,t)}for(N>0&&i.stencilBuffer&&X.execute(i,t),r.updatePass(Re.VOXELS),F=I.commands[Re.VOXELS],N=I.indices[Re.VOXELS],F.length=N,Put(e,Ra,t,F),r.updatePass(Re.OPAQUE),F=I.commands[Re.OPAQUE],N=I.indices[Re.OPAQUE],b=0;b<N;++b)Ra(F[b],e,i,t);E!==0&&e.mode!==ie.SCENE2D&&(s.near=I.near,r.updateFrustum(s));let k;if(!c&&l.useInvertClassification&&o.invertClassificationColor.alpha<1&&(k=e._invertClassification),r.updatePass(Re.TRANSLUCENT),F=I.commands[Re.TRANSLUCENT],F.length=I.indices[Re.TRANSLUCENT],y(e,Ra,t,F,k),I.indices[Re.CESIUM_3D_TILE_CLASSIFICATION]>0&&u.translucentTileClassification.isSupported()&&(u.translucentTileClassification.executeTranslucentCommands(e,Ra,t,F,Y.depthStencilTexture),u.translucentTileClassification.executeClassificationCommands(e,Ra,t,I)),i.depthTexture&&e.useDepthPicking&&(l.useGlobeDepthFramebuffer||m)){let J=Y.depthStencilTexture,z=e._picking.getPickDepth(e,E);z.update(i,J),z.executeCopyDepth(i,t)}if(c||!A)continue;let U=t.framebuffer;if(t.framebuffer=u.sceneFramebuffer.getIdFramebuffer(),s.near=E!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),r.updatePass(Re.GLOBE),F=I.commands[Re.GLOBE],N=I.indices[Re.GLOBE],L)V.executeGlobeCommands(I,QF,Z,e,t);else for(b=0;b<N;++b)QF(F[b],e,i,t);for(_&&(G.framebuffer=t.framebuffer,G.execute(i,t),G.framebuffer=void 0),_&&C&&v.execute(i,t),r.updatePass(Re.CESIUM_3D_TILE),F=I.commands[Re.CESIUM_3D_TILE],N=I.indices[Re.CESIUM_3D_TILE],b=0;b<N;++b)QF(F[b],e,i,t);for(r.updatePass(Re.OPAQUE),F=I.commands[Re.OPAQUE],N=I.indices[Re.OPAQUE],b=0;b<N;++b)QF(F[b],e,i,t);for(r.updatePass(Re.TRANSLUCENT),F=I.commands[Re.TRANSLUCENT],N=I.indices[Re.TRANSLUCENT],b=0;b<N;++b)QF(F[b],e,i,t);t.framebuffer=U}}function ege(e){e.context.uniformState.updatePass(Re.COMPUTE);let n=e._environmentState.sunComputeCommand;d(n)&&n.execute(e._computeEngine);let i=e._computeCommandList,o=i.length;for(let r=0;r<o;++r)i[r].execute(e._computeEngine)}function Mut(e,t){e.context.uniformState.updatePass(Re.OVERLAY);let i=e.context,o=e._overlayCommandList,r=o.length;for(let s=0;s<r;++s)o[s].execute(i,t)}function Nut(e,t,n){let i=n.shadowMapCullingVolume,o=n.isPointLight,r=n.passes,s=r.length,a=t.length;for(let c=0;c<a;++c){let l=t[c];if(e.updateDerivedCommands(l),l.castShadows&&(l.pass===Re.GLOBE||l.pass===Re.CESIUM_3D_TILE||l.pass===Re.OPAQUE||l.pass===Re.TRANSLUCENT)&&e.isVisible(l,i))if(o)for(let u=0;u<s;++u)r[u].commandList.push(l);else if(s===1)r[0].commandList.push(l);else{let u=!1;for(let m=s-1;m>=0;--m){let p=r[m].cullingVolume;if(e.isVisible(l,p))r[m].commandList.push(l),u=!0;else if(u)break}}}}function tge(e){let t=e.frameState,n=t.shadowState.shadowMaps,i=n.length;if(!t.shadowState.shadowsEnabled)return;let o=e.context,r=o.uniformState;for(let s=0;s<i;++s){let a=n[s];if(a.outOfView)continue;let c=a.passes,l=c.length;for(let m=0;m<l;++m)c[m].commandList.length=0;let u=e.frameState.commandList;Nut(e,u,a);for(let m=0;m<l;++m){let p=a.passes[m];r.updateCamera(p.camera),a.updatePass(o,m);let y=p.commandList.length;for(let f=0;f<y;++f){let x=p.commandList[f];r.updatePass(x.pass),Ra(x.derivedCommands.shadows.castCommands[s],e,o,p.passState)}}}}var Uut=new h;Yi.prototype.updateAndExecuteCommands=function(e,t){let i=this._frameState.mode;this._environmentState.useWebVR?kut(this,e,t):i!==ie.SCENE2D||this._mapMode2D===wl.ROTATE?qy(!0,this,e,t):(QQ(this,e,t),Qut(this,e))};function kut(e,t,n){let i=e._view,o=i.camera,s=e._environmentState.renderTranslucentDepthForPick;QQ(e,t,n),nge(e),i.createPotentiallyVisibleSet(e),ege(e),s||tge(e);let a=t.viewport;a.x=0,a.y=0,a.width=a.width*.5;let c=co.clone(o,e._cameraVR);c.frustum=o.frustum;let l=o.frustum.near,u=l*g(e.focalLength,5),m=g(e.eyeSeparation,u/30),p=h.multiplyByScalar(c.right,m*.5,Uut);o.frustum.aspectRatio=a.width/a.height;let y=.5*m*l/u;h.add(c.position,p,o.position),o.frustum.xOffset=y,JQ(e,t),a.x=a.width,h.subtract(c.position,p,o.position),o.frustum.xOffset=-y,JQ(e,t),co.clone(c,o)}var Dut=new he(Math.PI,W.PI_OVER_TWO),But=new h,Yut=new h,Out=new w,Kut=new w,Hut=new h,zut=new h,Jut=new He;function Qut(e,t){let n=e.context,i=e.frameState,o=e.camera,r=t.viewport,s=He.clone(r,Jut);t.viewport=s;let a=Dut,c=But;e.mapProjection.project(a,c);let u=h.clone(o.position,Yut),m=w.clone(o.transform,Kut),p=o.frustum.clone();o._setTransform(w.IDENTITY);let y=w.computeViewportTransformation(s,0,1,Out),f=o.frustum.projectionMatrix,x=o.positionWC.y,_=h.fromElements(W.sign(x)*c.x-x,0,-o.positionWC.x,Hut),C=vt.pointToGLWindowCoordinates(f,y,_,zut);C.x=Math.floor(C.x);let V=s.x,L=s.width;if(x===0||C.x<=V||C.x>=V+L)qy(!0,e,t);else if(Math.abs(V+L*.5-C.x)<1)s.width=C.x-s.x,o.position.x*=W.sign(o.position.x),o.frustum.right=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),qy(!0,e,t),s.x=C.x,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),qy(!1,e,t);else if(C.x>V+L*.5){s.width=C.x-V;let Z=o.frustum.right;o.frustum.right=c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),qy(!0,e,t),s.x=C.x,s.width=V+L-C.x,o.position.x=-o.position.x,o.frustum.left=-o.frustum.right,o.frustum.right=Z-o.frustum.right*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),qy(!1,e,t)}else{s.x=C.x,s.width=V+L-C.x;let Z=o.frustum.left;o.frustum.left=-c.x-x,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),qy(!0,e,t),s.x=V,s.width=C.x-V,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=Z-o.frustum.left*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),qy(!1,e,t)}o._setTransform(m),h.clone(u,o.position),o.frustum=p.clone(),t.viewport=r}function qy(e,t,n,i){let o=t._environmentState,r=t._view,s=o.renderTranslucentDepthForPick;e||(t.frameState.commandList.length=0),nge(t),r.createPotentiallyVisibleSet(t),e&&(d(i)&&QQ(t,n,i),ege(t),s||tge(t)),JQ(t,n)}var jye=new Qr;Yi.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.skyAtmosphere,s=this.globe,a=this._globeTranslucencyState;if(!i||this._mode!==ie.SCENE2D&&t.camera.frustum instanceof en||!a.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{d(r)?(d(s)?(r.setDynamicAtmosphereColor(s.enableLighting&&s.dynamicAtmosphereLighting,s.dynamicAtmosphereLightingFromSun),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!s.show||s._surface._tilesToRender.length>0):n.isReadyForAtmosphere=!0,n.skyAtmosphereCommand=r.update(e,s),d(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)):n.skyAtmosphereCommand=void 0,n.skyBoxCommand=d(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let x=d(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=d(x)?x.drawCommand:void 0,n.sunComputeCommand=d(x)?x.computeCommand:void 0,n.moonCommand=d(this.moon)?this.moon.update(e):void 0}let c=n.clearGlobeDepth=d(s)&&s.show&&(!s.depthTestAgainstTerrain||this.mode===ie.SCENE2D);(n.useDepthPlane=c&&this.mode===ie.SCENE3D&&a.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ie.SCENE2D&&!o;let u=e.mode===ie.SCENE3D&&!a.sunVisibleThroughGlobe?e.occluder:void 0,m=e.cullingVolume,p=jye.planes;for(let x=0;x<5;++x)p[x]=m.planes[x];m=jye,n.isSkyAtmosphereVisible=d(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(n.sunDrawCommand,m,u),n.isMoonVisible=this.isVisible(n.moonCommand,m,u);let y=this.specularEnvironmentMaps,f=this._specularEnvironmentMapAtlas;d(y)&&(!d(f)||f.url!==y)?(f=f&&f.destroy(),this._specularEnvironmentMapAtlas=new pm(y)):!d(y)&&d(f)&&(f.destroy(),this._specularEnvironmentMapAtlas=void 0),d(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e)};function jut(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Zf({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),d(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function qut(e){let t=e._frameState,n=t.shadowMaps,i=n.length,o=i>0&&!t.passes.pick&&e.mode===ie.SCENE3D;if(o!==t.shadowState.shadowsEnabled&&(++t.shadowState.lastDirtyTime,t.shadowState.shadowsEnabled=o),t.shadowState.lightShadowsEnabled=!1,!!o){for(let r=0;r<i;++r)if(n[r]!==t.shadowState.shadowMaps[r]){++t.shadowState.lastDirtyTime;break}t.shadowState.shadowMaps.length=0,t.shadowState.lightShadowMaps.length=0;for(let r=0;r<i;++r){let s=n[r];s.update(t),t.shadowState.shadowMaps.push(s),s.fromLightSource&&(t.shadowState.lightShadowMaps.push(s),t.shadowState.lightShadowsEnabled=!0),s.dirty&&(++t.shadowState.lastDirtyTime,s.dirty=!1)}}}function nge(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),jut(e),qut(e),e._globe&&e._globe.render(t)}function QQ(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,c=e._frameState.passes.pick;d(s.globeDepth)&&(s.globeDepth.picking=c);let l=r.useWebVR;r.originalFramebuffer=t.framebuffer,d(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!l?e._sunPostProcess=new HF:d(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!d(e.sun)&&d(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let u=e._clearColorCommand;B.clone(n,u.color),u.execute(i,t);let m=r.useGlobeDepthFramebuffer=d(s.globeDepth);m&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,y=r.useOIT=!c&&d(p)&&p.isSupported();y&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let f=e.postProcessStages,x=r.usePostProcess=!c&&(e._hdr||f.length>0||f.ambientOcclusion.enabled||f.fxaa.enabled||f.bloom.enabled);if(r.usePostProcessSelected=!1,x&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),f.update(i,o.useLogDepth,e._hdr),f.clear(i),x=r.usePostProcess=f.ready,r.usePostProcessSelected=x&&f.hasSelected),r.isSunVisible&&e.sunBloom&&!l?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):m?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),d(t.framebuffer)&&u.execute(i,t),r.useInvertClassification=!c&&d(t.framebuffer)&&e.invertClassification){let C;if(e.frameState.invertClassificationColor.alpha===1&&r.useGlobeDepthFramebuffer&&(C=s.globeDepth.framebuffer),d(C)||i.depthTexture){if(e._invertClassification.previousFramebuffer=C,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),e.frameState.invertClassificationColor.alpha<1&&y){let V=e._invertClassification.unclassifiedCommand,L=V.derivedCommands;L.oit=p.createDerivedCommands(V,i,L.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}Yi.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,o=i.globeDepth;d(o)&&o.prepareColorTextures(t);let r=n.useOIT,s=n.useGlobeDepthFramebuffer,a=n.usePostProcess,c=n.originalFramebuffer,l=s?o.colorFramebufferManager:void 0,u=i.sceneFramebuffer._colorFramebuffer,m=i.sceneFramebuffer.idFramebuffer;r&&(e.framebuffer=a?u.framebuffer:c,i.oit.execute(t,e));let p=i.translucentTileClassification;if(p.hasTranslucentDepth&&p.isSupported()&&p.execute(this,e),a){i.sceneFramebuffer.prepareColorTextures(t);let y=u;s&&!r&&(y=l);let f=this.postProcessStages,x=y.getColorTexture(0),_=m.getColorTexture(0),C=g(l,u).getDepthStencilTexture();f.execute(t,x,C,_),f.copy(t,c)}!r&&!a&&s&&(e.framebuffer=c,o.executeCopyColor(t,e))};function $ut(e){let t=e._frameState.afterRender;for(let n=0,i=t.length;n<i;++n)t[n]()&&e.requestRender();t.length=0}function emt(e){let t=e._globe,i=e.camera.positionCartographic;if(d(t)&&t.show&&d(i))return t.getHeight(i)}function tmt(e){let t=e.camera,n=e._mode,i=e.globe,o=e._screenSpaceCameraController,r=t.positionCartographic;if(!d(r))return!1;if(!o.onMap()&&r.height<0)return!0;if(!d(i)||!i.show||n===ie.SCENE2D||n===ie.MORPHING)return!1;let s=e._globeHeight;return d(s)&&r.height<s}Yi.prototype.initializeFrame=function(){this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeight=emt(this),this._cameraUnderground=tmt(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),d(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function nmt(e,t){if(e.debugShowFramesPerSecond){if(!d(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new A0({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else d(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function imt(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),d(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function omt(e){let t=e._frameState;e.primitives.postPassesUpdate(t),Fa.update()}var rmt=new B;function smt(e){let t=e._frameState,n=e.context,i=n.uniformState,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=Rut;let r=g(e.backgroundColor,B.BLACK);e._hdr&&(r=B.clone(r,rmt),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,e.fog.update(t),i.update(t);let s=e.shadowMap;d(s)&&s.enabled&&(!d(e.light)||e.light instanceof tp?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=He.clone(a,c.viewport),d(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,Mut(e,c),d(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function fT(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function amt(e){return e._picking.updateMostDetailedRayPicks(e)}Yi.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,d(e)||(e=te.now());let n=this._view.checkForCameraUpdates(this),i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ie.MORPHING;if(!i&&d(this.maximumRenderTimeChange)&&d(this._lastRenderTime)){let o=Math.abs(te.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=te.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=W.incrementWrap(t.frameNumber,15e6,1);qye(this,o,e),t.newFrame=!0}fT(this,imt),this.primitives.show&&(fT(this,amt),fT(this,cmt),fT(this,lmt),i||fT(this,dmt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),fT(this,smt)),nmt(this,i),fT(this,omt),$ut(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};Yi.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};Yi.prototype.requestRender=function(){this._renderRequested=!0};Yi.prototype.clampLineWidth=function(e){return Math.max(kt.minimumAliasedLineWidth,Math.min(e,kt.maximumAliasedLineWidth))};Yi.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};Yi.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};Yi.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};Yi.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function cmt(e){let t=e._frameState;KQ.camera=t.camera,KQ.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,KQ)}function lmt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;HQ.camera=e.preloadFlightCamera,HQ.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,HQ)}function dmt(e){e.primitives.updateForPass(e._frameState,Zut)}Yi.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};Yi.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};Yi.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};Yi.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};Yi.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};Yi.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};Yi.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};Yi.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};Yi.prototype.cartesianToCanvasCoordinates=function(e,t){return Ji.wgs84ToWindowCoordinates(this,e,t)};Yi.prototype.completeMorph=function(){this._transitioner.completeMorph()};Yi.prototype.morphTo2D=function(e){let t,n=this.globe;d(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=g(e,2),this._transitioner.morphTo2D(e,t)};Yi.prototype.morphToColumbusView=function(e){let t,n=this.globe;d(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=g(e,2),this._transitioner.morphToColumbusView(e,t)};Yi.prototype.morphTo3D=function(e){let t,n=this.globe;d(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=g(e,2),this._transitioner.morphTo3D(e,t)};function umt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){d(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{d(e)&&d(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}Yi.prototype.setTerrain=function(e){return umt(this,e),e};Yi.prototype.isDestroyed=function(){return!1};Yi.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),d(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,ue(this)};var jF=Yi;var D2i=T(S(),1);function fV(e){e=g(e,re.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=w.fromScale(n),this._modelMatrix=new w,this._command=new nt({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(fV.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});fV.prototype.setDynamicAtmosphereColor=function(e,t){let n=e?t?2:1:0;this._radiiAndDynamicAtmosphereColor.z=n};var jQ=new w;fV.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ie.SCENE3D&&n!==ie.MORPHING||!e.passes.render)return;let i=w.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,jQ),o=w.multiplyTransformation(i,Zo.Y_UP_TO_Z_UP,jQ),r=w.multiply(this._scaleMatrix,o,jQ);w.clone(r,this._modelMatrix);let s=e.context,a=mmt(this),c=e.globeTranslucencyState.translucent,l=this.perFragmentAtmosphere||c||!d(t)||!t.show,u=this._command;if(!d(u.vertexArray)){let p=Is.createGeometry(new Is({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:We.POSITION_ONLY}));u.vertexArray=ni.fromGeometry({context:s,geometry:p,attributeLocations:An.createAttributeLocations(p),bufferUsage:Ne.STATIC_DRAW}),u.renderState=De.fromCache({cull:{enabled:!0,face:yi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let m=a|l<<2|c<<3;if(m!==this._flags){this._flags=m;let p=[];a&&p.push("COLOR_CORRECT"),l&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let y=new Be({defines:p,sources:[Z0,D1,qP]}),f=new Be({defines:p,sources:[Z0,D1,jP]});this._spSkyAtmosphere=Qt.fromCache({context:s,vertexShaderSource:y,fragmentShaderSource:f}),u.shaderProgram=this._spSkyAtmosphere}return u};function mmt(e){return!(W.equalsEpsilon(e.hueShift,0,W.EPSILON7)&&W.equalsEpsilon(e.saturationShift,0,W.EPSILON7)&&W.equalsEpsilon(e.brightnessShift,0,W.EPSILON7))}fV.prototype.isDestroyed=function(){return!1};fV.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var qF=fV;var dPi=T(S(),1);function Nk(e){this.sources=e.sources,this._sources=void 0,this.show=g(e.show,!0),this._command=new nt({modelMatrix:w.clone(w.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}Nk.prototype.update=function(e,t){let n=this;if(!this.show||e.mode!==ie.SCENE3D&&e.mode!==ie.MORPHING||!e.passes.render)return;let i=e.context;if(this._sources!==this.sources){this._sources=this.sources;let r=this.sources;typeof r.positiveX=="string"?tG(i,this._sources).then(function(s){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=s}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new Ma({context:i,source:r}))}let o=this._command;if(!d(o.vertexArray)){o.uniformMap={u_cubeMap:function(){return n._cubeMap}};let r=cl.createGeometry(cl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:We.POSITION_ONLY})),s=this._attributeLocations=An.createAttributeLocations(r);o.vertexArray=ni.fromGeometry({context:i,geometry:r,attributeLocations:s,bufferUsage:Ne.STATIC_DRAW}),o.renderState=De.fromCache({blending:un.ALPHA_BLEND})}if(!d(o.shaderProgram)||this._useHdr!==t){let r=new Be({defines:[t?"HDR":""],sources:[$P]});o.shaderProgram=Qt.fromCache({context:i,vertexShaderSource:ev,fragmentShaderSource:r,attributeLocations:this._attributeLocations}),this._useHdr=t}if(d(this._cubeMap))return o};Nk.prototype.isDestroyed=function(){return!1};Nk.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),ue(this)};var $F=Nk;var NPi=T(S(),1);function tw(){this.show=!0,this._drawCommand=new nt({primitiveType:we.TRIANGLES,boundingVolume:new ce,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new ce,this._boundingVolume2D=new ce,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(tw.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var hmt=new D,fmt=new D,pmt=new se,ew=new se;tw.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ie.SCENE2D||i===ie.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!d(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let Z=Math.max(r,s);Z=Math.pow(2,Math.ceil(Math.log(Z)/Math.log(2))-2),Z=Math.max(1,Z);let G=n?o.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._texture=new Wt({context:o,width:Z,height:Z,pixelFormat:st.RGBA,pixelDatatype:G}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let X=this,P={u_radiusTS:function(){return X._radiusTS}};this._commands.computeCommand=new Kd({fragmentShaderSource:nv,outputTexture:this._texture,uniformMap:P,persists:!1,owner:this,postExecute:function(){X._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!d(a.vertexArray)){let Z={direction:0},G=new Uint8Array(4*2);G[0]=0,G[1]=0,G[2]=255,G[3]=0,G[4]=255,G[5]=255,G[6]=0,G[7]=255;let X=mt.createVertexBuffer({context:o,typedArray:G,usage:Ne.STATIC_DRAW}),P=[{index:Z.direction,vertexBuffer:X,componentsPerAttribute:2,normalize:!0,componentDatatype:Q.UNSIGNED_BYTE}],v=mt.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Ne.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});a.vertexArray=new ni({context:o,attributes:P,indexBuffer:v}),a.shaderProgram=Qt.fromCache({context:o,vertexShaderSource:iv,fragmentShaderSource:tv,attributeLocations:Z}),a.renderState=De.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,l=o.uniformState.sunPositionColumbusView,u=this._boundingVolume,m=this._boundingVolume2D;h.clone(c,u.center),m.center.x=l.z,m.center.y=l.x,m.center.z=l.y,u.radius=W.SOLAR_RADIUS+W.SOLAR_RADIUS*this._glowLengthTS,m.radius=u.radius,i===ie.SCENE3D?ce.clone(u,a.boundingVolume):i===ie.COLUMBUS_VIEW&&ce.clone(m,a.boundingVolume);let p=Ji.computeActualWgs84Position(e,c,ew),y=h.magnitude(h.subtract(p,e.camera.position,ew)),f=o.uniformState.projection,x=pmt;x.x=0,x.y=0,x.z=-y,x.w=1;let _=w.multiplyByVector(f,x,ew),C=Ji.clipToGLWindowCoordinates(t.viewport,_,hmt);x.x=W.SOLAR_RADIUS;let V=w.multiplyByVector(f,x,ew),L=Ji.clipToGLWindowCoordinates(t.viewport,V,fmt);return this._size=D.magnitude(D.subtract(L,C,ew)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};tw.prototype.isDestroyed=function(){return!1};tw.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),ue(this)};var nw=tw;function pV(e){return $t(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function bmt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!d(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){let r="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(r,void 0,o)}}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function ige(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,d(e._scene)&&(e._scene.pixelRatio=t),t}function oge(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=ige(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function rge(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;d(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function pT(e,t){e=En(e),t=g(t,g.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=Mt.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Mt.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}g(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=d(t.creditContainer)?En(t.creditContainer):n;c.appendChild(a);let l=d(t.creditViewport)?En(t.creditViewport):n,u=g(t.showRenderLoopErrors,!0),m=g(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=l,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=u,this._resolutionScale=1,this._useBrowserRecommendedResolution=m,this._forceResize=!1,this._clock=d(t.clock)?t.clock:new Dm,oge(this);try{let p=new jF({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:l,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:g(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=p,p.camera.constrainedAxis=h.UNIT_Z,ige(this),rge(this);let y=g(p.mapProjection.ellipsoid,re.WGS84),f=t.globe;d(f)||(f=new Ev(y)),f!==!1&&(p.globe=f,p.globe.shadows=g(t.terrainShadows,xn.RECEIVE_ONLY));let x=t.skyBox;d(x)||(x=new $F({sources:{positiveX:pV("px"),negativeX:pV("mx"),positiveY:pV("py"),negativeY:pV("my"),positiveZ:pV("pz"),negativeZ:pV("mz")}})),x!==!1&&(p.skyBox=x,p.sun=new nw,p.moon=new Fv);let _=t.skyAtmosphere;d(_)||(_=new qF(y),_.show=t.globe!==!1&&f.show),_!==!1&&(p.skyAtmosphere=_);let C=t.baseLayer;t.globe!==!1&&C!==!1&&(d(C)||(C=na.fromWorldImagery()),p.imageryLayers.add(C)),d(t.terrainProvider)&&t.globe!==!1&&(p.terrainProvider=t.terrainProvider),d(t.terrain)&&t.globe!==!1&&p.setTerrain(t.terrain),this._screenSpaceEventHandler=new Id(i),d(t.sceneMode)&&(t.sceneMode===ie.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ie.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=g(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let V=this;this._onRenderError=function(L,Z){if(V._useDefaultRenderLoop=!1,V._renderLoopRunning=!1,V._showRenderLoopErrors){let G="An error occurred while rendering. Rendering has stopped.";V.showErrorPanel(G,void 0,Z)}},p.renderError.addEventListener(this._onRenderError)}catch(p){if(u){let y="Error constructing CesiumWidget.",f='Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:';this.showErrorPanel(y,f,p)}throw p}}Object.defineProperties(pT.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&bmt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}});pT.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),d(window.addEventListener)&&window.addEventListener("resize",c,!1);let l=d(t),u=d(n);if(l||u){let y=document.createElement("div");if(y.className="cesium-widget-errorPanel-message",a.appendChild(y),u){let f=Tf(n);l||(typeof n=="string"&&(n=new Error(n)),t=Tf({name:n.name,message:n.message}),f=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${f}`);let x=document.createElement("div");x.className="cesium-widget-errorPanel-message-details collapsed";let _=document.createElement("span");_.className="cesium-widget-errorPanel-more-details",_.appendChild(document.createTextNode("See more...")),x.appendChild(_),x.onclick=function(C){x.removeChild(_),x.appendChild(document.createTextNode(f)),x.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",x.onclick=void 0},a.appendChild(x)}y.innerHTML=`<p>${t}</p>`}let m=document.createElement("div");m.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(m);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){d(c)&&d(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},m.appendChild(p),i.appendChild(o)};pT.prototype.isDestroyed=function(){return!1};pT.prototype.destroy=function(){d(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),ue(this)};pT.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,oge(this),rge(this),this._scene.requestRender())};pT.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};var iw=pT;var mvi=T(S(),1);var ymt=new h(1,1,1);function qQ(e){e=g(e,ymt),this._dimensions=h.clone(e)}Object.defineProperties(qQ.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var gmt=new h;qQ.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,gmt),i=W.randomBetween(-n.x,n.x),o=W.randomBetween(-n.y,n.y),r=W.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var $Q=qQ;var pvi=T(S(),1);function Y0(){this.featurePropertiesDirty=!1}Object.defineProperties(Y0.prototype,{featuresLength:{get:function(){fe.throwInstantiationError()}},pointsLength:{get:function(){fe.throwInstantiationError()}},trianglesLength:{get:function(){fe.throwInstantiationError()}},geometryByteLength:{get:function(){fe.throwInstantiationError()}},texturesByteLength:{get:function(){fe.throwInstantiationError()}},batchTableByteLength:{get:function(){fe.throwInstantiationError()}},innerContents:{get:function(){fe.throwInstantiationError()}},ready:{get:function(){fe.throwInstantiationError()}},tileset:{get:function(){fe.throwInstantiationError()}},tile:{get:function(){fe.throwInstantiationError()}},url:{get:function(){fe.throwInstantiationError()}},batchTable:{get:function(){fe.throwInstantiationError()}},metadata:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}},group:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}}});Y0.prototype.hasProperty=function(e,t){fe.throwInstantiationError()};Y0.prototype.getFeature=function(e){fe.throwInstantiationError()};Y0.prototype.applyDebugSettings=function(e,t){fe.throwInstantiationError()};Y0.prototype.applyStyle=function(e){fe.throwInstantiationError()};Y0.prototype.update=function(e,t){fe.throwInstantiationError()};Y0.prototype.isDestroyed=function(){fe.throwInstantiationError()};Y0.prototype.destroy=function(){fe.throwInstantiationError()};var e4=Y0;var Gvi=T(S(),1);var _vi=T(S(),1);function bV(e,t){this._conditionsExpression=Oe(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,_mt(this,t)}Object.defineProperties(bV.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function xmt(e,t){this.condition=e,this.expression=t}function _mt(e,t){let n=[],i=e._conditions;if(!d(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new xmt(new nu(a,t),new nu(c,t)))}e._runtimeConditions=n}bV.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!d(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};bV.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!d(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};bV.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!d(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],l=c.condition.getShaderExpression(t,n),u=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${l}) + { + return ${u}; + } +`}return r=`${i} ${e} +{ +${r} return ${i}(1.0); +} +`,r};bV.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!d(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var ow=bV;function $y(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,Tmt(this,e)}function Tmt(e,t){t=g(Oe(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(d(t.meta)){let i=t.defines,o=g(t.meta,g.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new nu(o[r],i))}e._meta=n,e._ready=!0}function qo(e,t){let n=g(e._style,g.EMPTY_OBJECT).defines;if(d(t)){if(typeof t=="boolean"||typeof t=="number")return new nu(String(t));if(typeof t=="string")return new nu(t,n);if(d(t.conditions))return new ow(t,n)}else return;return t}function $o(e){if(d(e)){if(d(e.expression))return e.expression;if(d(e.conditionsExpression))return Oe(e.conditionsExpression,!0)}else return;return e}Object.defineProperties($y.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=qo(this,e),this._style.show=$o(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=qo(this,e),this._style.color=$o(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=qo(this,e),this._style.pointSize=$o(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=qo(this,e),this._style.pointOutlineColor=$o(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=qo(this,e),this._style.pointOutlineWidth=$o(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=qo(this,e),this._style.labelColor=$o(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=qo(this,e),this._style.labelOutlineColor=$o(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=qo(this,e),this._style.labelOutlineWidth=$o(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=qo(this,e),this._style.font=$o(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=qo(this,e),this._style.labelStyle=$o(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=qo(this,e),this._style.labelText=$o(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=qo(this,e),this._style.backgroundColor=$o(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=qo(this,e),this._style.backgroundPadding=$o(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=qo(this,e),this._style.backgroundEnabled=$o(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=qo(this,e),this._style.scaleByDistance=$o(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=qo(this,e),this._style.translucencyByDistance=$o(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=qo(this,e),this._style.distanceDisplayCondition=$o(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=qo(this,e),this._style.heightOffset=$o(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=qo(this,e),this._style.anchorLineEnabled=$o(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=qo(this,e),this._style.anchorLineColor=$o(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=qo(this,e),this._style.image=$o(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=qo(this,e),this._style.disableDepthTestDistance=$o(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=qo(this,e),this._style.horizontalOrigin=$o(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=qo(this,e),this._style.verticalOrigin=$o(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=qo(this,e),this._style.labelHorizontalOrigin=$o(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=qo(this,e),this._style.labelVerticalOrigin=$o(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});$y.fromUrl=function(e){return Ee.createIfNeeded(e).fetchJson(e).then(function(n){return new $y(n)})};$y.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,d(this.color)&&d(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};$y.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,d(this.show)&&d(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};$y.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,d(this.pointSize)&&d(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};$y.prototype.getVariables=function(){let e=[];return d(this.color)&&d(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),d(this.show)&&d(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),d(this.pointSize)&&d(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var bT=$y;var zFi=T(S(),1);var wvi=T(S(),1);var Wvi=T(S(),1);function ph(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=d(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(ph.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(d(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});ph.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new ph({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};ph.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(d(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};ph.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)sge(this,t)};ph.prototype.insert=function(e){let t,n=this._maximumLength;if(d(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,sge(this,i),t};ph.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],age(this,0)),this._array[e-1]=void 0,t};ph.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=t4(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&age(this,n)}return this._array[e-1]=void 0,t};ph.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};ph.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[t4(this,1,2)?1:2]};function Uk(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function rw(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function t4(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function sge(e,t){if(t===0)return;let n=Math.floor(W.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=rw(e,t,i);for(o!==n&&(Uk(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(rw(e,t,r)!==o)break;Uk(e,t,r),t=r}}function age(e,t){let n=e._length,i=Math.floor(W.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){rw(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let l=0;l<c;l++){let u=a+l;rw(e,u,r)===i&&(r=u)}}if(rw(e,r,t)===i&&(Uk(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);t4(e,r,a)===i&&Uk(e,r,a)}t=r}}var yT=ph;function sw(e){e=g(e,g.EMPTY_OBJECT),this._maximumSubtreeCount=g(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new yT({comparator:sw.comparator})}sw.prototype.addSubtree=function(e){let t=new Smt(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};sw.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};sw.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function Smt(e,t){this.subtree=e,this.stamp=t}var aw=sw;var Ovi=T(S(),1);function Ml(){this.orientedBoundingBox=new Wn,this.boundingSphere=new ce,this.boundTransform=new w,this.shapeTransform=new w,this._minBounds=h.clone(Ml.DefaultMinBounds,new h),this._maxBounds=h.clone(Ml.DefaultMaxBounds,new h),this.shaderUniforms={renderMinBounds:new h,renderMaxBounds:new h,boxUvToShapeUvScale:new h,boxUvToShapeUvTranslate:new h},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var Cmt=new h,n4=new h,Vmt=new $,Lmt=new h,Rmt=new h,Zmt=new h,Gmt=new h,cge=w.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new w);Ml.prototype.update=function(e,t,n,i,o){i=g(i,Ml.DefaultMinBounds),o=g(o,Ml.DefaultMaxBounds);let r=Ml.DefaultMinBounds,s=Ml.DefaultMaxBounds;t=this._minBounds=h.clamp(t,r,s,this._minBounds),n=this._maxBounds=h.clamp(n,r,s,this._maxBounds),i=h.clamp(i,r,s,Lmt),o=h.clamp(o,r,s,Rmt);let a=h.clamp(t,i,o,Zmt),c=h.clamp(n,i,o,Gmt),l=w.getScale(e,n4);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||l.x===0||l.y===0||l.z===0)return!1;this.shapeTransform=w.clone(e,this.shapeTransform),this.orientedBoundingBox=lge(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=w.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ce.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:u,shaderDefines:m}=this;for(let f in m)m.hasOwnProperty(f)&&(m[f]=void 0);let p=!h.equals(t,r)||!h.equals(n,s),y=0;if(m.BOX_INTERSECTION_INDEX=y,y+=1,u.renderMinBounds=w.multiplyByPoint(cge,a,u.renderMinBounds),u.renderMaxBounds=w.multiplyByPoint(cge,c,u.renderMaxBounds),p){m.BOX_HAS_SHAPE_BOUNDS=!0;let f=t,x=n;u.boxUvToShapeUvScale=h.fromElements(2/(f.x===x.x?1:x.x-f.x),2/(f.y===x.y?1:x.y-f.y),2/(f.z===x.z?1:x.z-f.z),u.boxUvToShapeUvScale),u.boxUvToShapeUvTranslate=h.fromElements(-u.boxUvToShapeUvScale.x*(f.x*.5+.5),-u.boxUvToShapeUvScale.y*(f.y*.5+.5),-u.boxUvToShapeUvScale.z*(f.z*.5+.5),u.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=y,!0};var Emt=new h,Xmt=new h;Ml.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(W.lerp(r.x,s.x,a*t),W.lerp(r.y,s.y,a*n),W.lerp(r.z,s.z,a*i),Emt),l=h.fromElements(W.lerp(r.x,s.x,a*(t+1)),W.lerp(r.y,s.y,a*(n+1)),W.lerp(r.z,s.z,a*(i+1)),Xmt);return lge(c,l,this.shapeTransform,o)};Ml.prototype.computeApproximateStepSize=function(e){return 1/h.maximumComponent(e)};Ml.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));Ml.DefaultMaxBounds=Object.freeze(new h(1,1,1));function lge(e,t,n,i){let o=Ml.DefaultMinBounds,r=Ml.DefaultMaxBounds;if(h.equals(e,o)&&h.equals(t,r))i.center=w.getTranslation(n,i.center),i.halfAxes=w.getMatrix3(n,i.halfAxes);else{let a=w.getScale(n,n4),c=h.midpoint(e,t,Cmt);i.center=w.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),n4);let l=w.getRotation(n,Vmt);i.halfAxes=$.setScale(l,a,i.halfAxes)}return i}var wf=Ml;var Qvi=T(S(),1);function kk(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(kk.prototype,{metadataTable:{get:function(){return this._metadataTable}}});kk.fromJson=async function(e,t,n,i){let o;d(t)?o={json:t,binary:void 0}:o=Wmt(n);let r=await Imt(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let m=0;m<a;++m){let p=o.json.bufferViews[m],y=p.byteOffset,f=y+p.byteLength,_=r[p.buffer].subarray(y,f);s[m]=_}let c=o.json.voxelTable,l=o.json.propertyTables[c],u=new kk(e);return u._metadataTable=new bl({count:l.count,properties:l.properties,class:i.classes[l.class],bufferViews:s}),u};function Imt(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(d(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(l){return new Uint8Array(l)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function Wmt(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Go(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var cw=kk;var aFi=T(S(),1);function Dr(){this.orientedBoundingBox=new Wn,this.boundingSphere=new ce,this.boundTransform=new w,this.shapeTransform=new w,this._minimumRadius=Dr.DefaultMinBounds.x,this._maximumRadius=Dr.DefaultMaxBounds.x,this._minimumHeight=Dr.DefaultMinBounds.y,this._maximumHeight=Dr.DefaultMaxBounds.y,this._minimumAngle=Dr.DefaultMinBounds.z,this._maximumAngle=Dr.DefaultMaxBounds.z,this.shaderUniforms={cylinderUvToRenderBoundsScale:new h,cylinderUvToRenderBoundsTranslate:new h,cylinderUvToRenderRadiusMin:0,cylinderRenderAngleMinMax:new D,cylinderUvToShapeUvRadius:new D,cylinderUvToShapeUvHeight:new D,cylinderUvToShapeUvAngle:new D,cylinderShapeUvAngleMinMax:new D,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var uge=new h,Pmt=new h,vmt=new h,Fmt=new $,wmt=new w,Amt=new w,Mmt=w.fromRotationTranslation($.fromUniformScale(2,new $),new h(-1,-1,-1),new w);Dr.prototype.update=function(e,t,n,i,o){i=g(i,Dr.DefaultMinBounds),o=g(o,Dr.DefaultMaxBounds);let r=Dr.DefaultMinBounds.x,s=Dr.DefaultMaxBounds.x,a=Dr.DefaultMinBounds.y,c=Dr.DefaultMaxBounds.y,l=Dr.DefaultMinBounds.z,u=Dr.DefaultMaxBounds.z,m=u-l,p=.5*m,y=W.EPSILON10,f=W.EPSILON3,x=W.EPSILON10,_=W.clamp(t.x,r,s),C=W.clamp(n.x,r,s),V=W.clamp(i.x,r,s),L=W.clamp(o.x,r,s),Z=Math.max(_,V),G=Math.min(C,L),X=W.clamp(t.y,a,c),P=W.clamp(n.y,a,c),v=W.clamp(i.y,a,c),A=W.clamp(o.y,a,c),M=Math.max(X,v),b=Math.min(P,A),R=W.negativePiToPi(t.z),E=W.negativePiToPi(n.z),I=W.negativePiToPi(i.z),F=W.negativePiToPi(o.z),N=Math.max(R,I),Y=Math.min(E,F),k=w.getScale(e,uge);if(G===0||Z>G||M>b||W.equalsEpsilon(k.x,0,void 0,y)||W.equalsEpsilon(k.y,0,void 0,y)||W.equalsEpsilon(k.z,0,void 0,y))return!1;this._minimumRadius=_,this._maximumRadius=C,this._minimumHeight=X,this._maximumHeight=P,this._minimumAngle=R,this._maximumAngle=E,this.shapeTransform=w.clone(e,this.shapeTransform),this.orientedBoundingBox=o4(Z,G,M,b,N,Y,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=w.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ce.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let J=_===r&&C===s,z=X===a&&P===c,ee=E<R,K=E-R+ee*m,j=K>p+x&&K<m-x,q=K>x&&K<p-x,be=K>=p-x&&K<=p+x,Te=K<=x,ae=j||q||be||Te,xe=W.equalsEpsilon(R,l,void 0,f),_e=W.equalsEpsilon(E,u,void 0,f),Ve=G===s,Ie=Z===r,Me=M===a&&b===c,ve=Y<N,ke=Y-N+ve*m,ct=ke>p+x&&ke<m-x,yt=ke>x&&ke<p-x,ot=ke>=p-x&&ke<=p+x,ln=ke<=x,vn=ct||yt||ot||ln,Dt=this.shaderUniforms,Nt=this.shaderDefines;for(let Ce in Nt)Nt.hasOwnProperty(Ce)&&(Nt[Ce]=void 0);let pe=0;if(Nt.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=pe,pe+=1,Ie||(Nt.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Nt.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=pe,pe+=1,Dt.cylinderUvToRenderRadiusMin=G/Z),Ve||(Nt.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX=!0),Z===G&&(Nt.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),Me||(Nt.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT=!0),M===b&&(Nt.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),X===P&&(Nt.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0),_===C&&(Nt.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT=!0),!J){Nt.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let Ce=1/(C-_),Ht=_/(_-C);Dt.cylinderUvToShapeUvRadius=D.fromElements(Ce,Ht,Dt.cylinderUvToShapeUvRadius)}if(!z){Nt.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let Ce=2/(P-X),Ht=(X+1)/(X-P);Dt.cylinderUvToShapeUvHeight=D.fromElements(Ce,Ht,Dt.cylinderUvToShapeUvHeight)}if(!Ve||!Me){let Ce=.5*(b-M),Ht=h.fromElements(1/G,1/G,1/(Ce===0?1:Ce),vmt),ut=h.fromElements(0,0,-Ht.z*.5*(M+b),Pmt),hi=w.fromRotationTranslation($.fromScale(Ht,Fmt),ut,wmt),ji=w.multiplyTransformation(hi,Mmt,Amt);Dt.cylinderUvToRenderBoundsScale=w.getScale(ji,Dt.cylinderUvToRenderBoundsScale),Dt.cylinderUvToRenderBoundsTranslate=w.getTranslation(ji,Dt.cylinderUvToRenderBoundsTranslate)}if(ee&&(Nt.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),vn&&(Nt.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Nt.CYLINDER_INTERSECTION_INDEX_ANGLE=pe,ct?(Nt.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,pe+=1):yt?(Nt.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,pe+=2):ot?(Nt.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF=!0,pe+=1):ln&&(Nt.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,pe+=2),Dt.cylinderRenderAngleMinMax=D.fromElements(N,Y,Dt.cylinderAngleMinMax)),ae){Nt.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,Te&&(Nt.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0),xe&&(Nt.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),_e&&(Nt.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let Ce=(R-l)/m,Ht=(E-l)/m,ut=1-K/m;Dt.cylinderShapeUvAngleMinMax=D.fromElements(Ce,Ht,Dt.cylinderShapeUvAngleMinMax),Dt.cylinderShapeUvAngleRangeZeroMid=(Ht+.5*ut)%1;let hi=m/K,ji=-(R-l)/K;Dt.cylinderUvToShapeUvAngle=D.fromElements(hi,ji,Dt.cylinderUvToShapeUvAngle)}return this.shaderMaximumIntersectionsLength=pe,!0};Dr.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,l=this._minimumAngle,u=this._maximumAngle,m=1/Math.pow(2,e),p=W.lerp(r,s,t*m),y=W.lerp(r,s,(t+1)*m),f=W.lerp(a,c,n*m),x=W.lerp(a,c,(n+1)*m),_=W.lerp(l,u,i*m),C=W.lerp(l,u,(i+1)*m);return o4(p,y,f,x,_,C,this.shapeTransform,o)};var Nmt=new Wn,Umt=new h,kmt=new h,Dmt=new h;Dr.prototype.computeApproximateStepSize=function(e){let t=this.shapeTransform,n=this._minimumRadius,i=this._maximumRadius,o=this._minimumHeight,r=this._maximumHeight,s=this._minimumAngle,a=this._maximumAngle,c=1-1/e.x,l=1-1/e.y,u=1-1/e.z,m=W.lerp(n,i,c),p=W.lerp(o,r,l),y=W.lerp(s,a,u),C=o4(m,i,p,r,y,a,t,Nmt),V=$.getScale(C.halfAxes,Umt),L=w.getScale(t,kmt),Z=h.divideComponents(V,L,Dmt);return h.minimumComponent(Z)};Dr.DefaultMinBounds=Object.freeze(new h(0,-1,-W.PI));Dr.DefaultMaxBounds=Object.freeze(new h(1,1,+W.PI));var Bmt=5,Ymt=new Array(Bmt),Omt=new h,Kmt=new $,Hmt=new w,zmt=new w,Jmt=new w,i4=new w,Qmt=new h,jmt=new h,qmt=new h,mge=new Array(8);for(let e=0;e<8;e++)mge[e]=new h;function dge(e,t,n){return Math.abs(se.dot(e,t))<n}function $mt(e){let t=w.getColumn(e,0,Qmt),n=w.getColumn(e,1,jmt),i=w.getColumn(e,2,qmt),o=W.EPSILON4;return dge(t,n,o)&&dge(n,i,o)}function eht(e,t){let n=mge;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)w.multiplyByPoint(e,n[i],n[i]);return Wn.fromPoints(n,t)}function o4(e,t,n,i,o,r,s,a){let c=Dr.DefaultMinBounds,l=Dr.DefaultMaxBounds,u=c.x,m=l.x,p=c.y,y=l.y,f=c.z,x=l.z;if(e===u&&t===m&&n===p&&i===y&&o===f&&r===x)return a.center=w.getTranslation(s,a.center),a.halfAxes=w.getMatrix3(s,a.halfAxes),a;r<o&&(r+=W.TWO_PI);let C=r-o,V=o+C*.5,L=Ymt,Z=0;L[Z++]=o,L[Z++]=r,L[Z++]=V,C>W.PI&&(L[Z++]=V-W.PI_OVER_TWO,L[Z++]=V+W.PI_OVER_TWO);let G=1,X=1,P=-1,v=-1;for(let ee=0;ee<Z;++ee){let K=L[ee]-V,j=Math.cos(K),q=Math.sin(K),be=j*e,Te=q*e,ae=j*t,xe=q*t;G=Math.min(G,be),X=Math.min(X,Te),G=Math.min(G,ae),X=Math.min(X,xe),P=Math.max(P,be),v=Math.max(v,Te),P=Math.max(P,ae),v=Math.max(v,xe)}let A=P-G,M=v-X,b=i-n,R=(G+P)*.5,E=(X+v)*.5,I=(n+i)*.5,F=h.fromElements(R,E,I,Omt),N=$.fromRotationZ(V,Kmt),Y=h.fromElements(A,M,b,uge),k=w.fromScale(Y,Jmt),O=w.fromRotation(N,zmt),U=w.fromTranslation(F,Hmt),J=w.multiplyTransformation(O,w.multiplyTransformation(U,k,i4),i4),z=w.multiplyTransformation(s,J,i4);return $mt(z)?Wn.fromTransformation(z,a):eht(z,a)}var Af=Dr;var VFi=T(S(),1);var xFi=T(S(),1);function Nl(){this.orientedBoundingBox=new Wn,this.boundingSphere=new ce,this.boundTransform=new w,this.shapeTransform=new w,this._rectangle=new de,this._minimumHeight=Nl.DefaultMinBounds.z,this._maximumHeight=Nl.DefaultMaxBounds.z,this._ellipsoid=new re,this._translation=new h,this._rotation=new $,this.shaderUniforms={ellipsoidRadiiUv:new h,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new D,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new D,ellipsoidUvToShapeUvLatitude:new D,ellipsoidRenderLatitudeCosSqrHalfMinMax:new D,ellipsoidInverseHeightDifferenceUv:0,ellipseInnerRadiiUv:new D,ellipsoidInverseInnerScaleUv:0,ellipsoidInverseOuterScaleUv:0},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_IS_SPHERE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var tht=new h,nht=new $,hge=new h,fge=new h,pge=new h,bge=new h,iht=new de;Nl.prototype.update=function(e,t,n,i,o){i=g(i,Nl.DefaultMinBounds),o=g(o,Nl.DefaultMaxBounds);let r=Nl.DefaultMinBounds.x,s=Nl.DefaultMaxBounds.x,a=s-r,c=.5*a,l=Nl.DefaultMinBounds.y,u=Nl.DefaultMaxBounds.y,m=u-l,p=W.EPSILON10,y=W.EPSILON3,f=W.EPSILON10,x=W.EPSILON10,_=W.EPSILON3,C=W.clamp(t.x,r,s),V=W.clamp(n.x,r,s),L=W.clamp(i.x,r,s),Z=W.clamp(o.x,r,s),G=Math.max(C,L),X=Math.min(V,Z),P=W.clamp(t.y,l,u),v=W.clamp(n.y,l,u),A=W.clamp(i.y,l,u),M=W.clamp(o.y,l,u),b=Math.max(P,A),R=Math.min(v,M),E=w.getScale(e,tht),I=E.x===E.y&&E.y===E.z,F=h.minimumComponent(E),N=Math.max(t.z,-F),Y=Math.max(n.z,-F),k=Math.max(i.z,-F),O=Math.max(o.z,-F),U=Math.max(N,k),J=Math.min(Y,O),z=h.add(E,h.fromElements(N,N,N,fge),fge),ee=h.add(E,h.fromElements(Y,Y,Y,hge),hge),K=h.maximumComponent(ee),j=h.add(E,h.fromElements(U,U,U,bge),bge),q=h.add(E,h.fromElements(J,J,J,pge),pge);if(b>R||b===u||R===l||U>J||W.equalsEpsilon(q,h.ZERO,void 0,p))return!1;this._rectangle=de.fromRadians(C,P,V,v),this._translation=w.getTranslation(e,this._translation),this._rotation=w.getRotation(e,this._rotation),this._ellipsoid=re.fromCartesian3(E,this._ellipsoid),this._minimumHeight=N,this._maximumHeight=Y;let be=de.fromRadians(G,b,X,R,iht);this.orientedBoundingBox=yge(be,U,J,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=w.fromRotationTranslation($.setScale(this._rotation,ee,nht),this._translation,this.shapeTransform),this.boundTransform=w.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ce.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let Te=X<G,ae=X-G+Te*a,xe=ae<=f,_e=ae>c+f&&ae<a-f,Ve=ae>=c-f&&ae<=c+f,Ie=ae>f&&ae<c-f,Me=xe||_e||Ve||Ie,ve=V<C,ke=V-C+ve*a,ct=ke<=f,yt=ke>c+f&&ke<a-f,ot=ke>=c-f&&ke<=c+f,ln=ke>f&&ke<c-f,vn=ct||yt||ot||ln,Dt=R<-_,Nt=R>=-_&&R<=+_,pe=R>+_&&R<u-x,Ce=Dt||Nt||pe,Ht=b>l+x&&b<-_,ut=b>=-_&&b<=+_,hi=b>+_,ji=Ht||ut||hi,pc=Ce||ji,bs=v-P,ys=v<-_,$r=v>=-_&&v<=+_,Fe=v>+_&&v<u-x,je=ys||$r||Fe,qe=P>l+x&&P<-_,Qe=P>=-_&&P<=+_,pt=P>+_,Vn=je||(qe||Qe||pt),di=!h.equals(j,h.ZERO),bo=!h.equals(q,h.ZERO),es=di||bo,ts=J-U,Mo=!h.equals(z,h.ZERO),Ki=!h.equals(ee,h.ZERO),ns=Mo||Ki,zn=this.shaderUniforms,Fn=this.shaderDefines;for(let _i in Fn)Fn.hasOwnProperty(_i)&&(Fn[_i]=void 0);zn.ellipsoidRadiiUv=h.divideByScalar(ee,K,zn.ellipsoidRadiiUv),zn.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(zn.ellipsoidRadiiUv,zn.ellipsoidRadiiUv,zn.ellipsoidInverseRadiiSquaredUv),zn.ellipsoidInverseRadiiSquaredUv);let mn=0;if(Fn.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=mn,mn+=1,es&&(ts===0&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),di&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN=!0,Fn.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=mn,mn+=1,zn.ellipsoidInverseInnerScaleUv=K/(K-(Y-U))),bo&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX=!0,zn.ellipsoidInverseOuterScaleUv=K/(K-(Y-J)))),ns){if(Mo){Fn.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN=!0;let _i=(Y-N)/K;zn.ellipsoidInverseHeightDifferenceUv=1/_i,zn.ellipseInnerRadiiUv=D.fromElements(zn.ellipsoidRadiiUv.x*(1-_i),zn.ellipsoidRadiiUv.z*(1-_i),zn.ellipseInnerRadiiUv)}N===Y&&(Fn.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0)}if(Me&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,Fn.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=mn,_e?(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,mn+=1):Ie?(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,mn+=2):Ve?(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF=!0,mn+=1):xe&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,mn+=2),zn.ellipsoidRenderLongitudeMinMax=D.fromElements(G,X,zn.ellipsoidRenderLongitudeMinMax)),vn){Fn.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,V<C&&(Fn.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0);let ui=a/ke,As=-(C-r)/ke;zn.ellipsoidUvToShapeUvLongitude=D.fromElements(ui,As,zn.ellipsoidUvToShapeUvLongitude)}if(Me){let _i=W.equalsEpsilon(G,r,void 0,y),ui=W.equalsEpsilon(X,s,void 0,y);_i&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),ui&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let As=(C-r)/a,fi=(V-r)/a,Pr=(X-r)/a,Sh=1-ae/a,cr=(Pr+.5*Sh)%1;zn.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(As,fi,cr,zn.ellipsoidShapeUvLongitudeMinMaxMid)}if(pc){Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE=!0,ji&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,Fn.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=mn,Ht?(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,mn+=1):ut?(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,mn+=1):hi&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,mn+=2)),Ce&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,Fn.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=mn,Dt?(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,mn+=2):Nt?(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,mn+=1):pe&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,mn+=1)),b===R&&(Fn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let _i=Math.pow(Math.cos(W.PI_OVER_TWO-Math.abs(b)),2),ui=Math.pow(Math.cos(W.PI_OVER_TWO-Math.abs(R)),2);zn.ellipsoidRenderLatitudeCosSqrHalfMinMax=D.fromElements(_i,ui,zn.ellipsoidRenderLatitudeCosSqrHalfMinMax)}if(Vn){Fn.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,P===v&&(Fn.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let _i=m/bs,ui=(l-P)/bs;zn.ellipsoidUvToShapeUvLatitude=D.fromElements(_i,ui,zn.ellipsoidUvToShapeUvLatitude)}return I&&(Fn.ELLIPSOID_IS_SPHERE=!0),this.shaderMaximumIntersectionsLength=mn,!0};var oht=new de;Nl.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,l=(n+1)*r,u=i*r,m=(i+1)*r,p=de.subsection(this._rectangle,s,c,a,l,oht),y=W.lerp(this._minimumHeight,this._maximumHeight,u),f=W.lerp(this._minimumHeight,this._maximumHeight,m);return yge(p,y,f,this._ellipsoid,this._translation,this._rotation,o)};Nl.prototype.computeApproximateStepSize=function(e){let n=this._ellipsoid.maximumRadius,i=this._minimumHeight,o=this._maximumHeight;return .5*((o-i)/(n+o))/e.z};function yge(e,t,n,i,o,r,s){return s=Wn.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=$.multiply(s.halfAxes,r,s.halfAxes),s}Nl.DefaultMinBounds=Object.freeze(new h(-W.PI,-W.PI_OVER_TWO,-Number.MAX_VALUE));Nl.DefaultMaxBounds=Object.freeze(new h(+W.PI,+W.PI_OVER_TWO,+Number.MAX_VALUE));var gT=Nl;var vd={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};vd.getMinBounds=function(e){switch(e){case vd.BOX:return wf.DefaultMinBounds;case vd.ELLIPSOID:return gT.DefaultMinBounds;case vd.CYLINDER:return Af.DefaultMinBounds}};vd.getMaxBounds=function(e){switch(e){case vd.BOX:return wf.DefaultMaxBounds;case vd.ELLIPSOID:return gT.DefaultMaxBounds;case vd.CYLINDER:return Af.DefaultMaxBounds}};vd.getShapeConstructor=function(e){switch(e){case vd.BOX:return wf;case vd.ELLIPSOID:return gT;case vd.CYLINDER:return Af}};var Oi=Object.freeze(vd);function Dk(e){e=g(e,g.EMPTY_OBJECT),this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new aw}Dk.fromUrl=async function(e){let t=Ee.createIfNeeded(e),n=await t.fetchJson();sht(n);let i=uht(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=ri(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,l=new c_({metadataJson:a,schema:c}),u=new Dk;mht(u,l,s);let m=new d_(t,o,c),{shape:p,minBounds:y,maxBounds:f,shapeTransform:x,globalTransform:_}=aht(o);u.shape=p,u.minBounds=y,u.maxBounds=f,u.dimensions=h.unpack(r.dimensions),u.shapeTransform=x,u.globalTransform=_,u.maximumTileCount=rht(l);let C,V;return d(r.padding)&&(C=h.unpack(r.padding.before),V=h.unpack(r.padding.after)),u.paddingBefore=C,u.paddingAfter=V,u._implicitTileset=m,Bi.unload(i),u};function rht(e){if(d(e.tileset))return e.tileset.getPropertyBySemantic(Wx.TILESET_TILE_COUNT)}function sht(e){let t=e.root;if(!d(t.content))throw new me("Root must have content");if(!ri(t.content,"3DTILES_content_voxels"))throw new me("Root tile content must have 3DTILES_content_voxels extension");if(!ri(t,"3DTILES_implicit_tiling")&&!d(t.implicitTiling))throw new me("Root tile must have implicit tiling");if(!d(e.schema)&&!d(e.schemaUri)&&!ri(e,"3DTILES_metadata"))throw new me("Tileset must have a metadata schema")}function aht(e){let t=e.boundingVolume,n;if(d(e.transform)?n=w.unpack(e.transform):n=w.clone(w.IDENTITY),d(t.box))return lht(t.box,n);if(d(t.region))return cht(t.region);if(ri(t,"3DTILES_bounding_volume_cylinder"))return dht(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new me("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function cht(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=w.fromScale(re.WGS84.radii),c=t,l=i,u=n,m=o,p=r,y=s,f=new h(c,u,p),x=new h(l,m,y);return{shape:Oi.ELLIPSOID,minBounds:f,maxBounds:x,shapeTransform:a,globalTransform:w.clone(w.IDENTITY)}}function lht(e,t){let n=Wn.unpack(e),i=w.fromRotationTranslation(n.halfAxes,n.center);return{shape:Oi.BOX,minBounds:h.clone(wf.DefaultMinBounds),maxBounds:h.clone(wf.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function dht(e,t){let n=Wn.unpack(e),i=w.fromRotationTranslation(n.halfAxes,n.center);return{shape:Oi.CYLINDER,minBounds:h.clone(Af.DefaultMinBounds),maxBounds:h.clone(Af.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function uht(e,t){let{schemaUri:n,schema:i}=e;return d(n)?Bi.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Bi.getSchemaLoader({schema:i})}function mht(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([m,p])=>{let{type:y,componentType:f}=p,x=r?.properties[m].min,_=r?.properties[m].max,C=Ot.getComponentCount(y),V=gge(x,C),L=gge(_,C);return{id:m,type:y,componentType:f,minValue:V,maxValue:L}});e.names=a.map(m=>m.id),e.types=a.map(m=>m.type),e.componentTypes=a.map(m=>m.componentType);let c=a.map(m=>m.minValue),l=a.map(m=>m.maxValue),u=c.some(d);e.minimumValues=u?c:void 0,e.maximumValues=u?l:void 0}function gge(e,t){if(!d(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function hht(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=tf(o);return await cw.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function fht(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(d(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),d(o))return o;let c=tf(a);return o=await Ix.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}Dk.prototype.requestData=function(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.tileLevel,0),n=g(e.tileX,0),i=g(e.tileY,0),o=g(e.tileZ,0);if(g(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new u_({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),l=c.isSubtreeRoot()&&c.level>0,u=l?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return fht(this,u).then(function(p){return(l?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?hht(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(y){return p.metadataTable.getPropertyTypedArray(y)})})};var r4=Dk;var $Fi=T(S(),1);function s4(e){e=g(e,1),this._radius=g(e,1)}Object.defineProperties(s4.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});s4.prototype.emit=function(e){let t=W.randomBetween(0,W.TWO_PI),n=W.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=h.fromElements(i,o,r,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var lw=s4;var Bwi=T(S(),1);var twi=T(S(),1),a4={CUMULUS:0};a4.validate=function(e){return e===a4.CUMULUS};var yV=Object.freeze(a4);var cwi=T(S(),1);function bh(e,t){if(e=g(e,g.EMPTY_OBJECT),this._show=g(e.show,!0),this._position=h.clone(g(e.position,h.ZERO)),!d(e.scale)&&d(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new D(this._maximumSize.x,this._maximumSize.y);else{this._scale=D.clone(g(e.scale,new D(20,12)));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(g(e.maximumSize,n))}this._slice=g(e.slice,-1),this._color=B.clone(g(e.color,B.WHITE)),this._brightness=g(e.brightness,1),this._cloudCollection=t,this._index=-1}var pht=bh.SHOW_INDEX=0,bht=bh.POSITION_INDEX=1,yht=bh.SCALE_INDEX=2,ght=bh.MAXIMUM_SIZE_INDEX=3,xht=bh.SLICE_INDEX=4,_ht=bh.BRIGHTNESS_INDEX=5,Tht=bh.COLOR_INDEX=6;bh.NUMBER_OF_PROPERTIES=7;function xT(e,t){let n=e._cloudCollection;d(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(bh.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,xT(this,pht))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),xT(this,bht))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;D.equals(t,e)||(D.clone(e,t),xT(this,yht))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),xT(this,ght))}},color:{get:function(){return this._color},set:function(e){let t=this._color;B.equals(t,e)||(B.clone(e,t),xT(this,Tht))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,xT(this,xht))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,xT(this,_ht))}}});bh.prototype._destroy=function(){this._cloudCollection=void 0};var Fd=bh;var wd,Bk=new h,Sht={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},Cht={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},Vht=Fd.SHOW_INDEX,Lht=Fd.POSITION_INDEX,Rht=Fd.SCALE_INDEX,Zht=Fd.MAXIMUM_SIZE_INDEX,Ght=Fd.SLICE_INDEX,Eht=Fd.BRIGHTNESS_INDEX,Xht=Fd.NUMBER_OF_PROPERTIES,Iht=Fd.COLOR_INDEX;function yh(e){e=g(e,g.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Xht),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=g(e.noiseDetail,16),this.noiseOffset=h.clone(g(e.noiseOffset,h.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:xge(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=g(e.show,!0),this._colorCommands=[],this.debugBillboards=g(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=g(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function xge(e){return function(){return Bk.x=e._textureSliceWidth,Bk.y=e._noiseTextureRows,Bk.z=1/e._noiseTextureRows,Bk}}Object.defineProperties(yh.prototype,{length:{get:function(){return l4(this),this._clouds.length}}});function _ge(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}yh.prototype.add=function(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.cloudType,yV.CUMULUS),n;return t===yV.CUMULUS&&(n=new Fd(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};yh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};yh.prototype.removeAll=function(){_ge(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function l4(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];d(s)&&(n._index=r++,t.push(s))}e._clouds=t}}yh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};yh.prototype.contains=function(e){return d(e)&&e._cloudCollection===this};yh.prototype.get=function(e){return l4(this),this._clouds[e]};var Wht=new Float32Array([-1,-1,1,-1,1,1,-1,1]),Pht=new Uint16Array([0,1,2,0,2,3]);function vht(e){let t=mt.createVertexBuffer({context:e,typedArray:Wht,usage:Ne.STATIC_DRAW}),n=mt.createIndexBuffer({context:e,typedArray:Pht,usage:Ne.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:Q.FLOAT}];return new ni({context:e,attributes:i,indexBuffer:n})}var d4;function Fht(e){let n=e.cache.cloudCollection_indexBufferBatched;if(d(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=mt.createIndexBuffer({context:e,typedArray:o,usage:Ne.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function wht(e){let t=e.cache.cloudCollection_indexBufferInstanced;return d(t)||(t=mt.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Ne.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function Aht(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return d(t)||(t=mt.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Ne.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function Mht(e,t,n){let i=[{index:wd.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Ne.STATIC_DRAW},{index:wd.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Ne.STATIC_DRAW},{index:wd.packedAttribute0,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Ne.STATIC_DRAW},{index:wd.packedAttribute1,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Ne.STATIC_DRAW},{index:wd.color,componentsPerAttribute:4,componentDatatype:Q.UNSIGNED_BYTE,normalize:!0,usage:Ne.STATIC_DRAW}];n&&i.push({index:wd.direction,componentsPerAttribute:2,componentDatatype:Q.FLOAT,vertexBuffer:Aht(e)});let o=n?t:4*t;return new ip(e,i,o,n)}var c4=new On;function Tge(e,t,n,i){let o,r=n[wd.positionHighAndScaleX],s=n[wd.positionLowAndScaleY],a=i.position;On.fromCartesian(a,c4);let c=i.scale,l=c4.high,u=c4.low;e._instanced?(o=i._index,r(o,l.x,l.y,l.z,c.x),s(o,u.x,u.y,u.z,c.y)):(o=i._index*4,r(o+0,l.x,l.y,l.z,c.x),r(o+1,l.x,l.y,l.z,c.x),r(o+2,l.x,l.y,l.z,c.x),r(o+3,l.x,l.y,l.z,c.x),s(o+0,u.x,u.y,u.z,c.y),s(o+1,u.x,u.y,u.z,c.y),s(o+2,u.x,u.y,u.z,c.y),s(o+3,u.x,u.y,u.z,c.y))}function Sge(e,t,n,i){let o,r=n[wd.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function Cge(e,t,n,i){let o,r=n[wd.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function Vge(e,t,n,i){let o,r=n[wd.color],s=i.color,a=B.floatToByte(s.red),c=B.floatToByte(s.green),l=B.floatToByte(s.blue),u=B.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,l,u)):(o=i._index*4,r(o+0,a,c,l,u),r(o+1,a,c,l,u),r(o+2,a,c,l,u),r(o+3,a,c,l,u))}function Nht(e,t,n,i){Tge(e,t,n,i),Sge(e,t,n,i),Cge(e,t,n,i),Vge(e,t,n,i)}function Uht(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=vht(a),o._spNoise=Qt.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,l=o.noiseOffset;o._noiseTexture=new Wt({context:a,width:r*r/s,height:r*s,pixelDatatype:Je.UNSIGNED_BYTE,pixelFormat:st.RGBA,sampler:new dn({wrapS:Gn.REPEAT,wrapT:Gn.REPEAT,minificationFilter:cn.NEAREST,magnificationFilter:Ti.NEAREST})});let u=new Kd({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:xge(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return l}},persists:!1,owner:e,postExecute:function(m){o._ready=!0,o._loading=!1}});t.commandList.push(u),o._loading=!0}function kht(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=Mht(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];Nht(e,t,s,c)}n._vaf.commit(d4(i))}}var Dht=[];function Bht(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,l=Dht;l.length=0,(c[Lht]||c[Rht])&&l.push(Tge),(c[Vht]||c[Eht])&&l.push(Sge),(c[Zht]||c[Ght])&&l.push(Cge),c[Iht]&&l.push(Vge);let u=l.length,m=i._vaf.writers,p,y,f;if(a/r>.1){for(p=0;p<a;++p)for(y=s[p],y._dirty=!1,f=0;f<u;++f)l[f](e,t,m,y);i._vaf.commit(d4(n))}else{for(p=0;p<a;++p){for(y=s[p],y._dirty=!1,f=0;f<u;++f)l[f](e,t,m,y);i._instanced?i._vaf.subCommit(y._index,1):i._vaf.subCommit(y._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function Yht(e,t,n,i){let o=t.context,r=e,s=new Be({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new Be({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=Qt.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:wd}),r._rs=De.fromCache({depthTest:{enabled:!0,func:ne.LESS},depthMask:!1,blending:un.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function Oht(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let l=0;l<c;l++){let u=s[l];d(u)||(u=s[l]=new nt),u.pass=Re.TRANSLUCENT,u.owner=e,u.uniformMap=o,u.count=a[l].indicesCount,u.vertexArray=a[l].va,u.shaderProgram=n._sp,u.renderState=n._rs,n._instanced&&(u.count=6,u.instanceCount=n._clouds.length),r.push(u)}}}yh.prototype.update=function(e){if(l4(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:d(this._noiseTexture),!this._ready&&!this._loading&&!t&&Uht(this,e,kP,UP),this._instanced=e.context.instancedArrays,wd=this._instanced?Cht:Sht,d4=this._instanced?wht:Fht;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?kht(this,e):r>0&&Bht(this,e),r>i*1.5&&(o.length=i),!(!d(this._vaf)||!d(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&Yht(this,e,NP,MP),Oht(this,e))};yh.prototype.isDestroyed=function(){return!1};yh.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),_ge(this._clouds),ue(this)};var u4=yh;var zwi=T(S(),1);var Kht=W.toRadians(30);function m4(e){this._angle=g(e,Kht)}Object.defineProperties(m4.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});m4.prototype.emit=function(e){let t=Math.tan(this._angle),n=W.randomBetween(0,W.TWO_PI),i=W.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=h.fromElements(o,r,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var h4=m4;var $wi=T(S(),1);function dw(e){e=g(e,g.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;d(n)||(n=!1);let i=g(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } +`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } +`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } +`;break;case"vec4":r=`vec4 getColor() { return ${o}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${o}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${o} = czm_batchTable_${t}(batchId); +`:`${o} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${o}; +${r} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=g(e.translucent,!1),this._vertexShaderSource=g(e.vertexShaderSource,s),this._fragmentShaderSource=g(e.fragmentShaderSource,a),this._renderState=to.getDefaultRenderState(!1,!1,e.renderState),this._closed=g(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(dw.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});dw.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;dw.prototype.isTranslucent=to.prototype.isTranslucent;dw.prototype.getRenderState=to.prototype.getRenderState;var f4=dw;var m9i=T(S(),1);function Yk(e){e=g(e,g.EMPTY_OBJECT),this.length=g(e.length,1e7),this._length=void 0,this.width=g(e.width,2),this._width=void 0,this.show=g(e.show,!0),this.modelMatrix=w.clone(g(e.modelMatrix,w.IDENTITY)),this._modelMatrix=new w,this.id=e.id,this._id=void 0,this._primitive=void 0}Yk.prototype.update=function(e){if(this.show){if(!d(this._primitive)||!w.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=w.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,d(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new _t({geometry:new C0({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:wr.VERTEX_FORMAT,colors:[B.RED,B.RED],arcType:Jt.NONE}),modelMatrix:w.multiplyByUniformScale(this.modelMatrix,this.length,new w),id:this.id,pickPrimitive:this}),n=new _t({geometry:new C0({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:wr.VERTEX_FORMAT,colors:[B.GREEN,B.GREEN],arcType:Jt.NONE}),modelMatrix:w.multiplyByUniformScale(this.modelMatrix,this.length,new w),id:this.id,pickPrimitive:this}),i=new _t({geometry:new C0({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:wr.VERTEX_FORMAT,colors:[B.BLUE,B.BLUE],arcType:Jt.NONE}),modelMatrix:w.multiplyByUniformScale(this.modelMatrix,this.length,new w),id:this.id,pickPrimitive:this});this._primitive=new Zn({geometryInstances:[t,n,i],appearance:new wr,asynchronous:!1})}this._primitive.update(e)}};Yk.prototype.isDestroyed=function(){return!1};Yk.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var uw=Yk;var y9i=T(S(),1);function Hht(e){this.direction=h.clone(e.direction),this.color=B.clone(g(e.color,B.WHITE)),this.intensity=g(e.intensity,1)}var p4=Hht;var X9i=T(S(),1);var x9i=T(S(),1),mw=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var T9i=T(S(),1),hw=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function _T(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.translucent,!0),n=g(e.aboveGround,!1);this.material=d(e.material)?e.material:ki.fromType(ki.ColorType),this.translucent=g(e.translucent,!0),this._vertexShaderSource=g(e.vertexShaderSource,hw),this._fragmentShaderSource=g(e.fragmentShaderSource,mw),this._renderState=to.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=g(e.flat,!1),this._faceForward=g(e.faceForward,n),this._aboveGround=n}Object.defineProperties(_T.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return _T.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});_T.VERTEX_FORMAT=We.POSITION_AND_ST;_T.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;_T.prototype.isTranslucent=to.prototype.isTranslucent;_T.prototype.getRenderState=to.prototype.getRenderState;var b4=_T;var M9i=T(S(),1);function Ul(e){this._scene=e.scene,this.samplingWindow=g(e.samplingWindow,Ul.defaultSettings.samplingWindow),this.quietPeriod=g(e.quietPeriod,Ul.defaultSettings.quietPeriod),this.warmupPeriod=g(e.warmupPeriod,Ul.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=g(e.minimumFrameRateDuringWarmup,Ul.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=g(e.minimumFrameRateAfterWarmup,Ul.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new ye,this._nominalFrameRate=new ye,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){zht(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){Jht(t)}this._visibilityChangeRemoveListener=void 0,d(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}Ul.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};Ul.fromScene=function(e){return(!d(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new Ul({scene:e})),e._frameRateMonitor};Object.defineProperties(Ul.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});Ul.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};Ul.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};Ul.prototype.isDestroyed=function(){return!1};Ul.prototype.destroy=function(){return this._preUpdateRemoveListener(),d(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function zht(e,t){if(e._pauseCount>0)return;let n=gi();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Qn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Qn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Qn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function Jht(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var fw=Ul;var SAi=T(S(),1);var k9i=T(S(),1);var Qht=1953029805,jht=2917034100;function y4(e,t){if(y4.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new me("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===Qht||o===jht)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,l=n,u,m=8;for(;s<c;)for(m=(m+8)%24,u=m;s<c&&u<l;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(u,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(u+4,!0),!0),s+=8,u+=24;if(s<a)for(u>=l&&(m=(m+8)%24,u=m);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(u)),s++,u++}y4.passThroughDataForTesting=!1;var pw=y4;var cAi=T(S(),1),ift=T(g4(),1);var z9i=T(S(),1);var Y9i=T(S(),1);function qht(e,t){return(e&t)!==0}var mc=qht;var $ht=[1,2,4,8],Lge=15,eft=16,tft=64,nft=128;function Mf(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}Mf.clone=function(e,t){return d(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new Mf(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};Mf.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};Mf.prototype.hasSubtree=function(){return mc(this._bits,eft)};Mf.prototype.hasImagery=function(){return mc(this._bits,tft)};Mf.prototype.hasTerrain=function(){return mc(this._bits,nft)};Mf.prototype.hasChildren=function(){return mc(this._bits,Lge)};Mf.prototype.hasChild=function(e){return mc(this._bits,$ht[e])};Mf.prototype.getChildBitmask=function(){return this._bits&Lge};var bw=Mf;function oft(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var rft=oft(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function Ad(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=W.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(Ad.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});Ad.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof Ee)&&(t=e.url);let n=Ee.createIfNeeded(t);n.appendForwardSlash();let i=new Ad;i._resource=n;try{await sft(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${Zge(i,"",1).url}: ${o}`;throw new me(r)}return i};Ad.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;mc(t,r)?mc(e,r)&&(s|=1):(s|=2,mc(e,r)||(s|=1)),i+=s}return i};Ad.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];mc(s,2)?mc(s,1)||(t|=r):(n|=r,mc(s,1)&&(t|=r))}return{x:t,y:n,level:i}};Ad.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(d(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),d(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var Rge=new pi("decodeGoogleEarthEnterprisePacket");Ad.prototype.getQuadTreePacket=function(e,t,n){t=g(t,1),e=g(e,"");let o=Zge(this,e,t,n).fetchArrayBuffer();if(!d(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return Rge.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(l){let u,m=-1;if(e!==""){m=e.length+1;let f=l[e];u=r[e],u._bits|=f._bits,delete l[e]}let p=Object.keys(l);p.sort(function(f,x){return f.length-x.length});let y=p.length;for(let f=0;f<y;++f){let x=p[f];if(l[x]!==null){let C=bw.clone(l[x]),V=x.length;if(V===m)C.setParent(u);else if(V>1){let L=r[x.substring(0,x.length-1)];C.setParent(L)}r[x]=C}else r[x]=null}})})};Ad.prototype.populateSubtree=function(e,t,n,i){let o=Ad.tileXYToQuadKey(e,t,n);return T4(this,o,i)};function T4(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(d(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(d(c))return c.then(function(){return s=new Uo({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),T4(e,t,s)});if(!d(r)||!r.hasSubtree())return Promise.reject(new me(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!d(c))return a[o]=c,c.then(function(){return s=new Uo({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),T4(e,t,s)}).finally(function(){delete a[o]})}Ad.prototype.getTileInformation=function(e,t,n){let i=Ad.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};Ad.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function Zge(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var x4,_4;function sft(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!d(_4)){let n=$t("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;_4=Zg(n).then(function(){x4=window.cesiumGoogleEarthDbRootParser(ift),d(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return _4.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=x4.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return Rge.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=x4.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=g(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=g(i.terrainPresent,e.terrainPresent),d(i.endSnippet)&&d(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=g(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=g(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}d(i.databaseVersion)&&(e._quadPacketVersion=g(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=g(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],l=c.copyrightString;d(l)&&(o[c.providerId]=new St(l.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=rft})}var O0=Ad;var Gge=T(g4(),1);function S4(){this._image=new Image}S4.prototype.isReady=function(){return!0};S4.prototype.shouldDiscardImage=function(e){return e===this._image};function TT(e){e=g(e,g.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new Di({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new de(-W.PI,-W.PI,W.PI,W.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new St(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,d(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new S4),this._errorEvent=new ye}Object.defineProperties(TT.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});TT.fromMetadata=function(e,t){if(!e.imageryPresent)throw new me(`The server ${e.url} doesn't have imagery`);let n=new TT(t);return n._metadata=e,n};TT.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(d(o)){let r=i.providers[o.imageryProvider];if(d(r))return[r]}};TT.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=O0.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!d(a)){if(r.isValid(s)){let l=new Uo({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,l);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=aft(this,a,e,t,n,i).fetchArrayBuffer();if(d(c))return c.then(function(l){pw(r.key,l);let u=new Uint8Array(l),m,p=r.protoImagery;if((!d(p)||!p)&&(m=cft(u)),!d(m)&&(!d(p)||p)){let y=lft(u);m=y.imageType,u=y.imageData}return!d(m)||!d(u)?o:Vx({uint8Array:u,format:m,flipY:!0})})};TT.prototype.pickFeatures=function(e,t,n,i,o){};function aft(e,t,n,i,o,r){let s=O0.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=d(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function cft(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function lft(e){let t=Gge.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,d(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(d(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new me("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return d(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var C4=TT;var EAi=T(S(),1);var dft=new B(1,1,1,.4),uft=new B(0,1,0,.05),mft=new B(0,.5,0,.2);function ST(e){e=g(e,g.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=d(e.tilingScheme)?e.tilingScheme:new Di({ellipsoid:e.ellipsoid}),this._cells=g(e.cells,8),this._color=g(e.color,dft),this._glowColor=g(e.glowColor,uft),this._glowWidth=g(e.glowWidth,6),this._backgroundColor=g(e.backgroundColor,mft),this._errorEvent=new ye,this._tileWidth=g(e.tileWidth,256),this._tileHeight=g(e.tileHeight,256),this._canvasSize=g(e.canvasSize,256),this._canvas=this._createGridCanvas()}Object.defineProperties(ST.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});ST.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};ST.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};ST.prototype.getTileCredits=function(e,t,n){};ST.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};ST.prototype.pickFeatures=function(e,t,n,i,o){};var V4=ST;var MMi=T(S(),1);var CMi=T(S(),1);var pMi=T(S(),1);var NAi=T(S(),1);function gh(){}gh._maxDecodingConcurrency=Math.max(Mt.hardwareConcurrency-1,1);gh._decodeTaskProcessor=new pi("decodeI3S",gh._maxDecodingConcurrency);gh._promise=void 0;async function hft(){if(await gh._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return gh._decodeTaskProcessor;throw new me("I3S decoder could not be initialized.")}gh.decode=async function(e,t,n,i){return d(gh._promise)||(gh._promise=hft()),gh._promise.then(function(o){let r=n._parent._data,s=n._parent._inverseRotationMatrix,a=0,c=0,l=0;d(r.obb)?(a=r.obb.center[0],c=r.obb.center[1],l=r.obb.center[2]):d(r.mbs)&&(a=r.mbs[0],c=r.mbs[1],l=r.mbs[2]);let u=$.fromRotationX(-W.PI_OVER_TWO),m=new $;$.multiply(u,s,m);let p=he.fromDegrees(a,c,l),y=re.WGS84.cartographicToCartesian(p),f={binaryData:n._data,featureData:d(i)&&d(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:re.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:p,cartesianCenter:y,parentRotation:m};return o.scheduleTask(f)})};var yw=gh;var BAi=T(S(),1);function L4(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,d(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(L4.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});L4.prototype.load=async function(){return this._data=await CT.loadJson(this._resource,this._dataProvider._traceFetches),this._data};var gw=L4;var KAi=T(S(),1);function gV(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider;let n=`attributes/${t.key}/0`;d(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(gV.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){return d(this._values)&&d(this._values.attributeValues)?this._values.attributeValues:[]}},name:{get:function(){return this._storageInfo.name}}});function fft(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}gV.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){let n=new DataView(t),i=!0;if(n.getUint8(0)==="{".charCodeAt(0)&&new TextDecoder().decode(t).includes("404")&&(i=!1,console.error(`Failed to load: ${e.resource.url}`)),i){e._data=t;let o=e._parseHeader(n),r=fft(e._storageInfo.attributeValues.valueType);r>0&&(o=Math.ceil(o/r)*r),e._parseBody(n,o)}})};gV.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};gV.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};gV.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=this._storageInfo[i];if(d(o)){this._values[i]=[];for(let r=0;r<this._header.count;++r)if(o.valueType!=="String"){let s=this._parseValue(e,o.valueType,t);this._values[i].push(s.value),t=s.offset}else{let s=this._values.attributeByteCounts[r],a="";for(let c=0;c<s;++c){let l=this._parseValue(e,o.valueType,t);l.value.charCodeAt(0)!==0&&(a+=l.value),t=l.offset}this._values[i].push(a)}}}};var xw=gV;var jAi=T(S(),1);function _w(e,t){let n=e._dataProvider,i=e._layer,o;d(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(_w.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});_w.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var pft=new h,bft=new h,yft=new h,gft=new h,xft=new h;function R4(e,t,n,i){let o=h.subtract(i,n,pft),r=h.cross(o,h.subtract(e,n,bft),gft),s=h.cross(o,h.subtract(t,n,yft),xft);return h.dot(r,s)>=0}var _ft=new h,Tft=new h,Sft=new h,Cft=new h,Vft=new h,Lft=new h,Rft=new h,Zft=new h,Gft=new h,Eft=new h;_w.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(d(this._customAttributes)&&d(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,$.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,l=this._customAttributes.positions,u=this._customAttributes.indices,m;d(u)?m=u.length:m=l.length/3;for(let p=0;p<m;p++){let y,f,x;d(u)?(y=u[p],f=u[p+1],x=u[p+2]):(y=p*3,f=p*3+1,x=p*3+2);let _=h.fromElements(l[y*3],l[y*3+1],l[y*3+2],_ft),C=h.fromElements(l[f*3],l[f*3+1],l[f*3+2],Tft),V=new h(l[x*3],l[x*3+1],l[x*3+2],Sft);if(!R4(i,_,C,V)||!R4(i,C,_,V)||!R4(i,V,_,C))continue;let L=h.subtract(C,_,Cft),Z=h.subtract(V,_,Vft),G=h.cross(L,Z,Lft);if(h.magnitude(G)===0)continue;let X=h.normalize(G,Rft),P=h.subtract(i,_,Zft),v=Math.abs(h.dot(P,X));if(v<o){o=v,r=p;let A=h.magnitudeSquared(h.subtract(i,_,P)),M=h.magnitudeSquared(h.subtract(i,C,Gft)),b=h.magnitudeSquared(h.subtract(i,V,Eft));A<M&&A<b?(a=y,c=_,s=A):M<b?(a=f,c=C,s=M):(a=x,c=V,s=b)}}if(d(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};_w.prototype._generateGltf=function(e,t,n,i,o,r){let s={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},a=!1,c,l="";if(d(this._parent._data.mesh)&&d(this._layer._data.materialDefinitions)){let x=this._parent._data.mesh.material.definition;if(x>=0&&x<this._layer._data.materialDefinitions.length&&(c=this._layer._data.materialDefinitions[x],s=c,d(s.pbrMetallicRoughness)&&d(s.pbrMetallicRoughness.baseColorTexture))){a=!0,s.pbrMetallicRoughness.baseColorTexture.index=0;let _="0";if(d(this._layer._data.textureSetDefinitions))for(let C=0;C<this._layer._data.textureSetDefinitions.length;C++){let V=this._layer._data.textureSetDefinitions[C];for(let L=0;L<V.formats.length;L++){let Z=V.formats[L];if(Z.format==="jpg"){_=Z.name;break}}}d(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(l=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${_}`}).url)}}else d(this._parent._data.textureData)&&(a=!0,l=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,s.pbrMetallicRoughness.baseColorTexture={index:0});let u=[],m=[],p=[];return a&&(u=[{sampler:0,source:0}],m=[{uri:l}],p=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]),{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:[s],textures:u,images:m,samplers:p,asset:{version:"2.0"}}};var xV=_w;function Md(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0}Object.defineProperties(Md.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Md.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new xu(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!d(this._nodeIndex)){let o=await CT.loadJson(this._resource,this._dataProvider._traceFetches);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":d(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),d(i)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};Md.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=this;function n(o,r){let s=new xw(t,o[r]);return t._fields[s._storageInfo.name]=s,s.load()}let i=[];if(d(e))for(let o=0;o<e.length;o++)i.push(n(e,o));return Promise.all(i)};Md.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!d(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Md.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Md.prototype._loadChildren=function(){let e=this;if(d(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(d(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Md(e,g(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Md.prototype._loadGeometryData=function(){let e=[];if(d(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new xV(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(d(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new xV(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Md.prototype._loadFeatureData=function(){let e=[];if(d(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new gw(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Md.prototype._clearGeometryData=function(){this._geometryData=[]};Md.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!d(e)&&!d(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(d(e)?n=he.fromDegrees(e.center[0],e.center[1],e.center[2]):n=he.fromDegrees(t[0],t[1],t[2]),d(this._dataProvider._geoidDataList)&&d(n))for(let C=0;C<this._dataProvider._geoidDataList.length;C++){let V=this._dataProvider._geoidDataList[C],L=V.projection.project(n);if(L.x>V.nativeExtent.west&&L.x<V.nativeExtent.east&&L.y>V.nativeExtent.south&&L.y<V.nativeExtent.north){n.height+=Ift(L.x,L.y,V);break}}let i={},o,r=0;d(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=re.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=re.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(d(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let C=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/C}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let C=this._data.lodThreshold;s=r/C}else console.error("Invalid lodSelectionMetricType in Layer");else if(d(this._data.lodSelection))for(let C=0;C<this._data.lodSelection.length;C++)this._data.lodSelection[C].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[C].maxError);s===1/0&&(s=1e5);let a=s*16,c=new Aa(0,0,0),l=vt.headingPitchRollQuaternion(o,c);d(this._data.obb)&&(l=new Ae(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let u=$.fromQuaternion(l),m=$.inverse(u,new $),p=new w(u[0],u[1],u[2],0,u[3],u[4],u[5],0,u[6],u[7],u[8],0,o.x,o.y,o.z,1),y=w.inverse(p,new w),f=w.clone(p);d(this._parent._globalTransform)&&w.multiply(p,this._parent._inverseGlobalTransform,f),this._globalTransform=p,this._inverseGlobalTransform=y,this._inverseRotationMatrix=m;let x=[];for(let C=0;C<this._children.length;C++)x.push(this._children[C]._create3DTileDefinition());return{children:x,refine:"REPLACE",boundingVolume:i,transform:[f[0],f[4],f[8],f[12],f[1],f[5],f[9],f[13],f[2],f[6],f[10],f[14],f[3],f[7],f[11],f[15]],content:{uri:d(this._resource)?this._resource.url:void 0},geometricError:a}};Md.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=[this._loadGeometryData()];if(this._dataProvider.legacyVersion16&&t.push(this._loadFeatureData()),await Promise.all(t),d(this._geometryData)&&this._geometryData.length>0){let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await yw.decode(o,r,s,this._featureData[0]);if(!d(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};xu.prototype._hookedRequestContent=xu.prototype.requestContent;xu.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading)return this._isLoading=!0,this._i3sNode._createContentURL().then(e=>{if(!d(e)){this._isLoading=!1;return}return this._contentResource=new Ee({url:e}),this._hookedRequestContent()}).then(e=>(this._isLoading=!1,e))};function Xft(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function Ok(e,t,n,i){let o=e+t*n;return i[o]}function Ift(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,l=a<n.height?a+1:a;a=n.height-1-a,l=n.height-1-l;let u=Ok(s,a,n.width,n.buffer),m=Ok(c,a,n.width,n.buffer),p=Ok(s,l,n.width,n.buffer),y=Ok(c,l,n.width,n.buffer),f=Xft(o,r,u,m,p,y);return f=f*n.scale+n.offset,f}Object.defineProperties(xu.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var _V=Md;function Hu(e,t,n){this._dataProvider=e,!d(t.href)&&d(n)&&(t.href=`layers/${n}`);let i=this._dataProvider.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new Ee({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(Hu.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(d(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});Hu.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new me(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(await this._dataProvider.loadGeoidData(),await this._loadRootNode(e),await this._create3DTileset(e),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};Hu.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],d(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(d(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let l=0;l<c.length;l++)s.push(c[l])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};Hu.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(d(n))for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}return 0};Hu.prototype._loadRootNode=function(e){if(d(this._data.nodePages)){let t=0;d(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new _V(this,t,!0)}else this._rootNode=new _V(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};Hu.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage;return this._loadNodePage(t).then(function(i){return i.nodes[n]})};Hu._fetchJson=function(e){return e.fetchJson()};Hu.prototype._loadNodePage=function(e){let t=this;if(!d(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=Hu._fetchJson(n).then(function(o){return d(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};Hu.prototype._computeExtent=function(){d(this._data.fullExtent)?this._extent=de.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):d(this._data.store.extent)&&(this._extent=de.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};Hu.prototype._create3DTileset=async function(e){let t={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n);this._tileset=await zs.fromUrl(i,e),this._tileset.show=this._dataProvider.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(o){o._i3sNode._clearGeometryData(),URL.revokeObjectURL(o._contentResource._url),o._contentResource=o._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(o){d(o._i3sNode)&&o._i3sNode._loadChildren()})};var TV=Hu;var Xge=T(Ege(),1);function sa(e){e=g(e,g.EMPTY_OBJECT),this._name=e.name,this._show=g(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._traceFetches=g(e.traceFetches,!1),this._cesium3dTilesetOptions=g(e.cesium3dTilesetOptions,g.EMPTY_OBJECT),this._layers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0}Object.defineProperties(sa.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){this._show=e;for(let t=0;t<this._layers.length;t++)d(this._layers[t]._tileset)&&(this._layers[t]._tileset.show=this._show)}},traceFetches:{get:function(){return this._traceFetches},set:function(e){this._traceFetches=e}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}}});sa.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)d(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};sa.prototype.isDestroyed=function(){return!1};sa.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)d(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};sa.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)d(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};sa.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)d(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};sa.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)d(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};sa.fromUrl=async function(e,t){t=g(t,g.EMPTY_OBJECT);let n=Ee.createIfNeeded(e),i=await sa.loadJson(n),o=new sa(t);if(o._resource=n,o._data=i,d(i.layers))for(let s=0;s<i.layers.length;s++){let a=new TV(o,i.layers[s],s);o._layers.push(a)}else{let s=new TV(o,i,i.id);o._layers.push(s)}o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load(t.cesium3dTilesetOptions));return await Promise.all(r),o};sa._fetchJson=function(e){return e.fetchJson()};sa.loadJson=async function(e,t){t&&console.log("I3S FETCH:",e.url);let n=await sa._fetchJson(e);if(d(n.error)){if(console.error("Failed to fetch I3S ",e.url),d(n.error.message)&&console.error(n.error.message),d(n.error.details))for(let i=0;i<n.error.details.length;i++)console.log(n.error.details[i]);throw new me(n.error)}return n};sa.prototype._loadBinary=function(e){return this._traceFetches&&console.log("I3S FETCH:",e.url),e.fetchArrayBuffer()};sa.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]="g".charCodeAt(),o.magic[1]="l".charCodeAt(),o.magic[2]="T".charCodeAt(),o.magic[3]="F".charCodeAt(),o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var Wft=new D;function Pft(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=he.fromRadians(t.west,t.north),a=he.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),l=n.positionToTileXY(a,r);for(let m=c.x;m<=l.x;m++)for(let p=c.y;p<=l.y;p++){let y=D.fromElements(m,p,Wft),f=y.toString();if(!o.hasOwnProperty(f)){let x={x:y.x,y:y.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[f]=x,i.push(x)}}let u=[];for(let m=0;m<i.length;++m){let p=i[m],y=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);u.push(y)}return Promise.all(u).then(function(m){let p=[];for(let y=0;y<m.length;y++){let f={tilingScheme:n,x:i[y].x,y:i[y].y,level:i[y].level},x=m[y],_="Geographic";n._projection instanceof Ei&&(_="WebMercator");let C={projectionType:_,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(f.x,f.y,f.level),height:x._height,width:x._width,scale:x._structure.heightScale,offset:x._structure.heightOffset};if(x._encoding===wu.LERC){let V=Xge.default.decode(x._buffer);C.buffer=V.pixels[0]}else C.buffer=x._buffer;p.push(C)}return p})}async function vft(e){let t=e._geoidTiledTerrainProvider;if(!d(t)){console.log("No Geoid Terrain service provided - no geoid conversion will be performed.");return}try{let n=await Pft(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}sa.prototype.loadGeoidData=async function(){return d(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=vft(this),this._geoidDataPromise)};sa.prototype._computeExtent=function(){let e;for(let t=0;t<this._layers.length;t++)if(d(this._layers[t]._extent)){let n=this._layers[t]._extent;d(e)?de.union(e,n,e):e=de.clone(n)}this._extent=e};var CT=sa;var UMi=T(S(),1),Ige=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function Hk(e,t){this.spatialNode=e,this.keyframe=t,this.state=Ige.UNLOADED,this.metadatas=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}Hk.priorityComparator=function(e,t){return e.priority-t.priority};Hk.searchComparator=function(e,t){return e.keyframe-t.keyframe};Hk.LoadState=Ige;var Qi=Hk;var BMi=T(S(),1);function Wge(){}Object.defineProperties(Wge.prototype,{color:{get:fe.throwInstantiationError},intensity:{get:fe.throwInstantiationError}});var Z4=Wge;var QMi=T(S(),1);var Fft=/\/$/,Pge=new St('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function SV(e){e=g(e,g.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=Ee.createIfNeeded(g(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=g(e.tilesize,512);this._tilesize=o;let r=g(e.username,"mapbox");this._username=r;let s=d(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();Fft.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;d(e.credit)?(c=e.credit,typeof c=="string"&&(c=new St(c))):c=Pge,this._resource=i,this._imageryProvider=new Ca({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(SV.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});SV.prototype.getTileCredits=function(e,t,n){};SV.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};SV.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};SV._defaultCredit=Pge;var G4=SV;var bNi=T(S(),1);function eg(e,t,n,i,o){i===tn.UNSIGNED_SHORT&&(i=tn.FLOAT32);let r=e.floatingPointTexture;if(i===tn.FLOAT32&&!r)throw new me("Floating point texture not supported");let s;i===tn.FLOAT32||i===tn.FLOAT64?s=Je.FLOAT:i===tn.UINT8&&(s=Je.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?st.RED:st.LUMINANCE:n===2?a=e.webgl2?st.RG:st.LUMINANCE_ALPHA:n===3?a=st.RGB:n===4&&(a=st.RGBA);let c=512*1024*1024,l=128*1024*1024;o=Math.min(g(o,l),c);let u=kt.maximumTextureSize,m=tn.getSizeInBytes(i),p=Math.floor(o/(n*m)),y=Math.min(u,W.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),f=Math.ceil(Math.sqrt(t.x)),x=Math.ceil(t.z/f),_=f*t.x,C=x*t.y,V=Math.floor(y/_),L=Math.floor(y/C);if(V===0||L===0)throw new me("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=V*L,this.regionCountPerMegatexture=new D(V,L),this.voxelCountPerRegion=new D(_,C),this.sliceCountPerRegion=new D(f,x),this.voxelSizeUv=new D(1/y,1/y),this.sliceSizeUv=new D(t.x/y,t.y/y),this.regionSizeUv=new D(_/y,C/y),this.texture=new Wt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:y,height:y,sampler:new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:Ti.LINEAR})});let Z=tn.toComponentDatatype(i);this.tileVoxelDataTemp=Q.createTypedArray(Z,_*C*n),this.nodes=new Array(this.maximumTileCount);for(let G=0;G<this.maximumTileCount;G++)this.nodes[G]=new wft(G);for(let G=0;G<this.maximumTileCount;G++){let X=this.nodes[G];X.previousNode=G>0?this.nodes[G-1]:void 0,X.nextNode=G<this.maximumTileCount-1?this.nodes[G+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function wft(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}eg.prototype.add=function(e){if(this.isFull())throw new fe("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,d(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,d(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};eg.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new fe("Megatexture index out of bounds");let t=this.nodes[e];d(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),d(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,d(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};eg.prototype.isFull=function(){return this.emptyList===void 0};eg.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===tn.UNSIGNED_SHORT&&(i=tn.FLOAT32);let o=tn.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.z)),a=Math.ceil(t.z/s),c=s*t.x,l=a*t.y,u=W.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(u/c),y=Math.floor(u/l);if(p*y>=e)break;u*=2}return u*u*n*o};eg.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let x=0;x<i.z;x++){let _=x%o.x*i.x,C=Math.floor(x/o.x)*i.y;for(let V=0;V<i.y;V++)for(let L=0;L<i.x;L++){let Z=x*i.y*i.x+V*i.x+L,G=(C+V)*r.x+(_+L);for(let X=0;X<s;X++)a[G*s+X]=n[Z*s+X]}}let c=this.regionCountPerMegatexture,l=r.x,u=r.y,m=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,f={source:{arrayBufferView:a,width:l,height:u},xOffset:m,yOffset:p};this.texture.copyFrom(f)};eg.prototype.isDestroyed=function(){return!1};eg.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var CV=eg;var gNi=T(S(),1);function E4(e){}E4.prototype.isReady=function(){return!0};E4.prototype.shouldDiscardImage=function(e){return!1};var X4=E4;var ZNi=T(S(),1);var Aft=new St("MapQuest, Open Street Map and contributors, CC-BY-SA");function zk(e){e=g(e,g.EMPTY_OBJECT);let t=Ee.createIfNeeded(g(e.url,"https://tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}${e.retinaTiles?"@2x":""}.${g(e.fileExtension,"png")}`;let n=new kr({ellipsoid:e.ellipsoid}),i=256,o=256,r=g(e.minimumLevel,0),s=e.maximumLevel,a=g(e.rectangle,n.rectangle),c=n.positionToTileXY(de.southwest(a),r),l=n.positionToTileXY(de.northeast(a),r),u=(Math.abs(l.x-c.x)+1)*(Math.abs(l.y-c.y)+1),m=g(e.credit,Aft);typeof m=="string"&&(m=new St(m)),Ca.call(this,{url:t,credit:m,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}d(Object.create)&&(zk.prototype=Object.create(Ca.prototype),zk.prototype.constructor=zk);var K0=zk;var vNi=T(S(),1);var Mft=new D(1,1);function I4(e){e=g(e,g.EMPTY_OBJECT),this.mass=g(e.mass,1),this.position=h.clone(g(e.position,h.ZERO)),this.velocity=h.clone(g(e.velocity,h.ZERO)),this.life=g(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=B.clone(g(e.startColor,B.WHITE)),this.endColor=B.clone(g(e.endColor,B.WHITE)),this.startScale=g(e.startScale,1),this.endScale=g(e.endScale,1),this.imageSize=D.clone(g(e.imageSize,Mft)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(I4.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var vge=new h;I4.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,vge),h.add(this.position,vge,this.position),d(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var VV=I4;var ANi=T(S(),1);function Fge(e){e=g(e,g.EMPTY_OBJECT),this.time=g(e.time,0),this.minimum=g(e.minimum,0),this.maximum=g(e.maximum,50),this._complete=!1}Object.defineProperties(Fge.prototype,{complete:{get:function(){return this._complete}}});var W4=Fge;var UNi=T(S(),1);function wge(e){}wge.prototype.emit=function(e){fe.throwInstantiationError()};var P4=wge;var t5i=T(S(),1);var Age=new D(1,1);function Tw(e){e=g(e,g.EMPTY_OBJECT),this.show=g(e.show,!0),this.updateCallback=e.updateCallback,this.loop=g(e.loop,!0),this.image=g(e.image,void 0);let t=e.emitter;d(t)||(t=new lw(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=w.clone(g(e.modelMatrix,w.IDENTITY)),this._emitterModelMatrix=w.clone(g(e.emitterModelMatrix,w.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new w,this._startColor=B.clone(g(e.color,g(e.startColor,B.WHITE))),this._endColor=B.clone(g(e.color,g(e.endColor,B.WHITE))),this._startScale=g(e.scale,g(e.startScale,1)),this._endScale=g(e.scale,g(e.endScale,1)),this._emissionRate=g(e.emissionRate,5),this._minimumSpeed=g(e.speed,g(e.minimumSpeed,1)),this._maximumSpeed=g(e.speed,g(e.maximumSpeed,1)),this._minimumParticleLife=g(e.particleLife,g(e.minimumParticleLife,5)),this._maximumParticleLife=g(e.particleLife,g(e.maximumParticleLife,5)),this._minimumMass=g(e.mass,g(e.minimumMass,1)),this._maximumMass=g(e.mass,g(e.maximumMass,1)),this._minimumImageSize=D.clone(g(e.imageSize,g(e.minimumImageSize,Age))),this._maximumImageSize=D.clone(g(e.imageSize,g(e.maximumImageSize,Age))),this._sizeInMeters=g(e.sizeInMeters,!1),this._lifetime=g(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new ye,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(Tw.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!w.equals(this._modelMatrix,e),w.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!w.equals(this._emitterModelMatrix,e),w.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){B.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){B.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function Nft(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(d(o)){let m=o.length;for(let p=0;p<m;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,l=e._particlePool,u=Math.max(a-c.length-l.length,0);for(let m=0;m<u;++m){let p=new VV;p._billboard=r.add({image:s,show:!1}),l.push(p)}e._particleEstimate=a}function Uft(e){let t=e._particlePool.pop();return d(t)||(t=new VV),t}function kft(e,t){e._particlePool.push(t)}function Dft(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let l=n[c];i.remove(l._billboard)}n.length=a}function Bft(e){d(e._billboard)&&(e._billboard.show=!1)}function Mge(e,t){let n=t._billboard;d(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=W.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=W.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=W.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=W.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new B(i,o,r,s),n.scale=W.lerp(t.startScale,t.endScale,t.normalizedAge)}function Yft(e,t){t.startColor=B.clone(e._startColor,t.startColor),t.endColor=B.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=W.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=W.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=W.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=W.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=W.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function Oft(e,t){if(e._isComplete)return 0;t=W.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),d(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;d(s)&&!s._complete&&a>s.time&&(i+=W.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var Jk=new h;Tw.prototype.update=function(e){if(!this.show)return;d(this._billboardCollection)||(this._billboardCollection=new od),this._updateParticlePool&&(Nft(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=te.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?Mge(this,s):(Bft(s),kft(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=Oft(this,t);if(c>0&&d(i)){this._matrixDirty&&(this._combinedMatrix=w.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let l=this._combinedMatrix;for(r=0;r<c;r++)s=Uft(this),this._emitter.emit(s),h.add(s.position,s.velocity,Jk),w.multiplyByPoint(l,Jk,Jk),s.position=w.multiplyByPoint(l,s.position,s.position),h.subtract(Jk,s.position,s.velocity),h.normalize(s.velocity,s.velocity),Yft(this,s),Mge(this,s)}if(this._billboardCollection.update(e),this._previousTime=te.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=W.mod(this._currentTime,this._lifetime),this.bursts){let l=this.bursts.length;for(r=0;r<l;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&Dft(this)};Tw.prototype.isDestroyed=function(){return!1};Tw.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var v4=Tw;var B5i=T(S(),1);var kge=T(oA(),1);var i5i=T(S(),1);function Kft(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var Sw=Kft;var s5i=T(S(),1);var Hft={modifyFragmentShader:function(t){return t=Be.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},LV=Hft;var VT={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function Cw(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=B.clone(B.DARKGRAY),this._highlightColor=B.clone(B.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=VT.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=g(e.opaquePass,Re.OPAQUE),this._cull=g(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=w.clone(w.IDENTITY),this._modelMatrix=w.clone(w.IDENTITY),this.time=0,this.shadows=xn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=g(e.splitDirection,vc.NONE),this._splittingEnabled=!1,this._error=void 0,zft(this,e)}Object.defineProperties(Cw.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return B.clone(this._highlightColor)},set:function(e){this._highlightColor=B.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(d(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=ce.clone(e,this._boundingSphere)}}});function zft(e,t){let n=Yx.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&d(n.batchTableBinary)&&(n.styleableProperties=gp.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),d(n.draco)){let a=n.draco;e._decodingState=VT.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;d(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;d(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;d(r)&&(d(r.constantColor)&&(e._constantColor=B.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;d(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var Jft=new h,Qft=new h,jft=new h,Nge,Qk;function qft(e){if(!d(Qk)){Nge=new kge.default(0),Qk=new Array(e);for(let t=0;t<e;++t)Qk[t]=Nge.random()}return Qk}function $ft(e){let n=e.length/3,i=Math.min(n,20),o=qft(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,Jft),c=h.fromElements(s,s,s,Qft);for(let u=0;u<i;++u){let m=Math.floor(o[u]*n),p=h.unpack(e,m*3,jft);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let l=ce.fromCornerPoints(a,c);return l.radius+=W.EPSILON2,l}function Uge(e,t){let n=Q.fromTypedArray(e);return n===Q.INT||n===Q.UNSIGNED_INT||n===Q.DOUBLE?(It("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var ept=new se,tpt=new se,npt=new B,Dge=0,jk=1,N4=2,Bge=3,ipt=4,F4=new w,opt=new w;function rpt(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,l=i.styleableProperties,u=d(l),m=e._isQuantized,p=e._isQuantizedDraco,y=e._isOctEncoded16P,f=e._isOctEncodedDraco,x=e._quantizedRange,_=e._octEncodedRange,C=e._isRGB565,V=e._isTranslucent,L=e._hasColors,Z=e._hasNormals,G=e._hasBatchIds,X,P,v=[],A={};if(e._styleableShaderAttributes=A,u){let k=ipt;for(let O in l)if(l.hasOwnProperty(O)){let U=l[O],J=Uge(U.typedArray,O);X=U.componentCount,P=Q.fromTypedArray(J);let z=mt.createVertexBuffer({context:n,typedArray:J,usage:Ne.STATIC_DRAW});e._geometryByteLength+=z.sizeInBytes;let ee={index:k,vertexBuffer:z,componentsPerAttribute:X,componentDatatype:P,normalize:!1,offsetInBytes:0,strideInBytes:0};v.push(ee),A[O]={location:k,componentCount:X},++k}}let M=mt.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Ne.STATIC_DRAW});e._geometryByteLength+=M.sizeInBytes;let b;L&&(b=mt.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Ne.STATIC_DRAW}),e._geometryByteLength+=b.sizeInBytes);let R;Z&&(R=mt.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Ne.STATIC_DRAW}),e._geometryByteLength+=R.sizeInBytes);let E;G&&(c.typedArray=Uge(c.typedArray,"batchIds"),E=mt.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Ne.STATIC_DRAW}),e._geometryByteLength+=E.sizeInBytes);let I=[];if(m?P=Q.UNSIGNED_SHORT:p?P=x<=255?Q.UNSIGNED_BYTE:Q.UNSIGNED_SHORT:P=Q.FLOAT,I.push({index:Dge,vertexBuffer:M,componentsPerAttribute:3,componentDatatype:P,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(m||p?e._boundingSphere=ce.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=$ft(r.typedArray)),L)if(C)I.push({index:jk,vertexBuffer:b,componentsPerAttribute:1,componentDatatype:Q.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let k=V?4:3;I.push({index:jk,vertexBuffer:b,componentsPerAttribute:k,componentDatatype:Q.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}Z&&(y?(X=2,P=Q.UNSIGNED_BYTE):f?(X=2,P=_<=255?Q.UNSIGNED_BYTE:Q.UNSIGNED_SHORT):(X=3,P=Q.FLOAT),I.push({index:N4,vertexBuffer:R,componentsPerAttribute:X,componentDatatype:P,normalize:!1,offsetInBytes:0,strideInBytes:0})),G&&I.push({index:Bge,vertexBuffer:E,componentsPerAttribute:1,componentDatatype:Q.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),u&&(I=I.concat(v));let F=new ni({context:n,attributes:I}),N={depthTest:{enabled:!0}},Y={depthTest:{enabled:!0},depthMask:!1,blending:un.ALPHA_BLEND};e._opaquePass===Re.CESIUM_3D_TILE&&(N.stencilTest=wt.setCesium3DTileBit(),N.stencilMask=wt.CESIUM_3D_TILE_MASK,Y.stencilTest=wt.setCesium3DTileBit(),Y.stencilMask=wt.CESIUM_3D_TILE_MASK),e._opaqueRenderState=De.fromCache(N),e._translucentRenderState=De.fromCache(Y),e._drawCommand=new nt({boundingVolume:new ce,cull:e._cull,modelMatrix:new w,primitiveType:we.POINTS,vertexArray:F,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:V?e._translucentRenderState:e._opaqueRenderState,pass:V?Re.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function spt(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=ept;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,l;t.mode===ie.SCENE2D||c instanceof en?l=Number.POSITIVE_INFINITY:l=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=l}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!d(a))return B.TRANSPARENT;let c=B.clone(a.edgeColor,npt);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!d(a))return w.IDENTITY;let c=g(e.clippingPlanesOriginMatrix,e._modelMatrix);w.multiply(n.uniformState.view3D,c,F4);let l=w.multiply(F4,a.modelMatrix,F4);return w.inverseTranspose(l,opt)}};LV.addUniforms(e,s),(i||o||r)&&(s=xt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=tpt;if(d(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),d(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function w4(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function A4(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function M4(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var apt={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function cpt(e,t,n){let i,o,r,s=t.context,a=d(n),c=e._isQuantized,l=e._isQuantizedDraco,u=e._isOctEncoded16P,m=e._isOctEncodedDraco,p=e._isRGB565,y=e._isTranslucent,f=e._hasColors,x=e._hasNormals,_=e._hasBatchIds,C=e._backFaceCulling,V=e._normalShading,L=e._drawCommand.vertexArray,Z=e.clippingPlanes,G=e._attenuation,X,P,v,A=y,M=Oe(apt),b={},R=e._styleableShaderAttributes;for(o in R)R.hasOwnProperty(o)&&(r=R[o],M[o]=`czm_3dtiles_property_${r.location}`,b[r.location]=r);if(a){let ae={translucent:!1},xe="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";X=n.getColorShaderFunction(`getColorFromStyle${xe}`,M,ae),P=n.getShowShaderFunction(`getShowFromStyle${xe}`,M,ae),v=n.getPointSizeShaderFunction(`getPointSizeFromStyle${xe}`,M,ae),d(X)&&ae.translucent&&(A=!0)}e._styleTranslucent=A;let E=d(X),I=d(P),F=d(v),N=e.isClipped,Y=[],k=[];E&&(w4(X,Y),A4(X,k)),I&&(w4(P,Y),A4(P,k)),F&&(w4(v,Y),A4(v,k));let O=k.indexOf("COLOR")>=0,U=k.indexOf("NORMAL")>=0;if(U&&!x)throw new me("Style references the NORMAL semantic but the point cloud does not have normals");for(o in R)if(R.hasOwnProperty(o)){r=R[o];let ae=Y.indexOf(r.location)>=0,xe=M4(L,r.location);xe.enabled=ae}let J=f&&(!E||O);if(f){let ae=M4(L,jk);ae.enabled=J}let z=x&&(V||C||U);if(x){let ae=M4(L,N4);ae.enabled=z}let ee={a_position:Dge};J&&(ee.a_color=jk),z&&(ee.a_normal=N4),_&&(ee.a_batchId=Bge);let K="",j=Y.length;for(i=0;i<j;++i){let ae=Y[i];r=b[ae];let xe=r.componentCount,_e=`czm_3dtiles_property_${ae}`,Ve;xe===1?Ve="float":Ve=`vec${xe}`,K+=`in ${Ve} ${_e}; +`,ee[_e]=r.location}spt(e,t);let q=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;q+=`float u_pointSize; +float tiles3d_tileset_time; +`,G&&(q+=`float u_geometricError; +float u_depthMultiplier; +`),q+=K,J&&(y?q+=`in vec4 a_color; +`:p?q+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:q+=`in vec3 a_color; +`),z&&(u||m?q+=`in vec2 a_normal; +`:q+=`in vec3 a_normal; +`),_&&(q+=`in float a_batchId; +`),(c||l||m)&&(q+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),E&&(q+=X),I&&(q+=P),F&&(q+=v),q+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,G&&(q+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),J?y?q+=` vec4 color = a_color; +`:p?q+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:q+=` vec4 color = vec4(a_color, 1.0); +`:q+=` vec4 color = u_constantColor; +`,c||l?q+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:q+=` vec3 position = a_position; +`,q+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,z?(u?q+=` vec3 normal = czm_octDecode(a_normal); +`:m?q+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:q+=` vec3 normal = a_normal; +`,q+=` vec3 normalEC = czm_normal * normal; +`):q+=` vec3 normal = vec3(1.0); +`,E&&(q+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),I&&(q+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),F?q+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:G?q+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:q+=` gl_PointSize = u_pointSize; +`,q+=` color = color * u_highlightColor; +`,z&&V&&(q+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),q+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,z&&C&&(q+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),I&&(q+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),q+=`} +`;let be=`in vec4 v_color; +`;N&&(be+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,be+=` +`,be+=E0(Z,s),be+=` +`),be+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,N&&(be+=Sw("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),be+=`} +`,e.splitDirection!==vc.NONE&&(be=LV.modifyFragmentShader(be)),d(e._vertexShaderLoaded)&&(q=e._vertexShaderLoaded(q)),d(e._fragmentShaderLoaded)&&(be=e._fragmentShaderLoaded(be));let Te=e._drawCommand;d(Te.shaderProgram)&&Te.shaderProgram.destroy(),Te.shaderProgram=Qt.fromCache({context:s,vertexShaderSource:q,fragmentShaderSource:be,attributeLocations:ee});try{Te.shaderProgram._bind()}catch{throw new me("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function lpt(e,t){if(e._decodingState===VT.READY)return!1;if(e._decodingState===VT.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=Rp.decodePointCloud(i,t);d(o)&&(e._decodingState=VT.DECODING,o.then(function(r){e._decodingState=VT.READY;let s=d(r.POSITION)?r.POSITION.array:void 0,a=d(r.RGB)?r.RGB.array:void 0,c=d(r.RGBA)?r.RGBA.array:void 0,l=d(r.NORMAL)?r.NORMAL.array:void 0,u=d(r.BATCH_ID)?r.BATCH_ID.array:void 0,m=d(s)&&d(r.POSITION.data.quantization),p=d(l)&&d(r.NORMAL.data.quantization);if(m){let _=r.POSITION.data.quantization,C=_.range;e._quantizedVolumeScale=h.fromElements(C,C,C),e._quantizedVolumeOffset=h.unpack(_.minValues),e._quantizedRange=(1<<_.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let y=n.styleableProperties,f=i.batchTableProperties;for(let _ in f)if(f.hasOwnProperty(_)){let C=r[_];d(y)||(y={}),y[_]={typedArray:C.array,componentCount:C.data.componentsPerAttribute}}d(s)&&(n.positions={typedArray:s});let x=g(c,a);d(x)&&(n.colors={typedArray:x}),d(l)&&(n.normals={typedArray:l}),d(u)&&(n.batchIds={typedArray:u}),n.styleableProperties=y}).catch(function(r){e._decodingState=VT.FAILED,e._error=r}))}return!0}var dpt=new se,upt=new h;Cw.prototype.update=function(e){let t=e.context;if(d(this._error)){let l=this._error;throw this._error=void 0,l}if(lpt(this,t))return;let i=!1,o=!w.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),d(this._drawCommand)||(rpt(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){w.clone(this.modelMatrix,this._modelMatrix);let l=this._drawCommand.modelMatrix;if(w.clone(this._modelMatrix,l),d(this._rtcCenter)&&w.multiplyByTranslation(l,this._rtcCenter,l),d(this._quantizedVolumeOffset)&&w.multiplyByTranslation(l,this._quantizedVolumeOffset,l),e.mode!==ie.SCENE3D){let m=e.mapProjection,p=w.getColumn(l,3,dpt);se.equals(p,se.UNIT_W)||vt.basisTo2D(m,l,l)}let u=this._drawCommand.boundingVolume;if(ce.clone(this._boundingSphere,u),this._cull){let m=u.center;w.multiplyByPoint(l,m,m);let p=w.getScale(l,upt);u.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==vc.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&cpt(this,e,this._style),this._drawCommand.castShadows=xn.castShadows(this.shadows),this._drawCommand.receiveShadows=xn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?Re.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};Cw.prototype.isDestroyed=function(){return!1};Cw.prototype.destroy=function(){let e=this._drawCommand;return d(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var Vw=Cw;var K5i=T(S(),1);function Nd(){fe.throwInstantiationError()}Nd.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(Nd.prototype,{quadtree:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError}});Nd.prototype.update=fe.throwInstantiationError;Nd.prototype.beginUpdate=fe.throwInstantiationError;Nd.prototype.endUpdate=fe.throwInstantiationError;Nd.prototype.getLevelMaximumGeometricError=fe.throwInstantiationError;Nd.prototype.loadTile=fe.throwInstantiationError;Nd.prototype.computeTileVisibility=fe.throwInstantiationError;Nd.prototype.showTileThisFrame=fe.throwInstantiationError;Nd.prototype.computeDistanceToTile=fe.throwInstantiationError;Nd.prototype.isDestroyed=fe.throwInstantiationError;Nd.prototype.destroy=fe.throwInstantiationError;var U4=Nd;var nUi=T(S(),1);function zu(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new Wn,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r,s)}var mpt=new h;zu.prototype.computeBoundingVolumes=function(e,t){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let n=$.getScale(this.orientedBoundingBox.halfAxes,mpt),i=2*h.maximumComponent(n);this.approximateVoxelSize=i/h.minimumComponent(t)};zu.prototype.constructChildNodes=function(e,t){let{level:n,x:i,y:o,z:r}=this,s=i*2,a=o*2,c=r*2,l=a+1,u=s+1,m=c+1,p=n+1,y=[[p,s,a,c],[p,u,a,c],[p,s,l,c],[p,u,l,c],[p,s,a,m],[p,u,a,m],[p,s,l,m],[p,u,l,m]];this.children=y.map(([f,x,_,C])=>new zu(f,x,_,C,this,e,t))};zu.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};zu.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,W.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var Yge={keyframe:0};function Lw(e,t){return Yge.keyframe=e,Lo(t,Yge,Qi.searchComparator)}zu.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;d(t);){let{renderableKeyframeNodes:m}=t;if(m.length>=1){let p=hpt(i,m),y=m[p],f=o===i||i<y.keyframe?p:Math.min(p+1,m.length-1),x=m[f],_=i-y.keyframe,C=Oge(n-t.level,_);C<a&&(a=C,r=y);let V=x.keyframe-o,L=Oge(n-t.level,V);if(L<c&&(c=L,s=x),_===0&&V===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!d(r)||!d(s))return;let l=r.keyframe,u=s.keyframe;this.renderableKeyframeNodeLerp=l===u?0:W.clamp((e-l)/(u-l),0,1)};function hpt(e,t){let n=Lw(e,t);return n<0?W.clamp(~n-1,0,t.length-1):n}function Oge(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}zu.prototype.isVisited=function(e){return this.visitedFrameNumber===e};zu.prototype.createKeyframeNode=function(e){let t=Lw(e,this.keyframeNodes);if(t<0){t=~t;let n=new Qi(this,e);this.keyframeNodes.splice(t,0,n)}};zu.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=Lw(n,this.keyframeNodes);if(i<0)throw new fe("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=Lw(n,this.renderableKeyframeNodes);if(o<0)throw new fe("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=Qi.LoadState.UNLOADED,e.metadatas={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};zu.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Qi.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadatas.length!==t.length)throw new fe("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadatas[o]),e.metadatas[o]=void 0}e.state=Qi.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=Lw(e.keyframe,n);if(i>=0)throw new fe("Keyframe already renderable");i=~i,n.splice(i,0,e)};zu.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return d(t)&&d(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var Rw=zu;var aUi=T(S(),1);function k4(e){e=g(e,1),this._radius=g(e,1)}Object.defineProperties(k4.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});k4.prototype.emit=function(e){let t=W.randomBetween(0,W.TWO_PI),n=W.randomBetween(0,W.PI),i=W.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(o,r,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var D4=k4;var dUi=T(S(),1);function Zw(){}Zw.prototype.evaluate=function(e,t){fe.throwInstantiationError()};Zw.prototype.evaluateColor=function(e,t){fe.throwInstantiationError()};Zw.prototype.getShaderFunction=function(e,t,n,i){fe.throwInstantiationError()};Zw.prototype.getVariables=function(){fe.throwInstantiationError()};var B4=Zw;var fki=T(S(),1);var dki=T(S(),1);var ski=T(S(),1);var XUi=T(S(),1);var pUi=T(S(),1);var qk={};qk.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){d(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let l=s+a+c,u,m,p,y,f,x;return l===1?s?(u=(e-n)/(i-n),m=(e-n)/(o-n),r.push(1),r.push(2),m!==1&&(r.push(-1),r.push(0),r.push(2),r.push(m)),u!==1&&(r.push(-1),r.push(0),r.push(1),r.push(u))):a?(p=(e-i)/(o-i),y=(e-i)/(n-i),r.push(2),r.push(0),y!==1&&(r.push(-1),r.push(1),r.push(0),r.push(y)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(f=(e-o)/(n-o),x=(e-o)/(i-o),r.push(0),r.push(1),x!==1&&(r.push(-1),r.push(2),r.push(1),r.push(x)),f!==1&&(r.push(-1),r.push(2),r.push(0),r.push(f))):l===2?!s&&n!==e?(y=(e-i)/(n-i),f=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(y),r.push(-1),r.push(2),r.push(0),r.push(f)):!a&&i!==e?(x=(e-o)/(i-o),u=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(x),r.push(-1),r.push(0),r.push(1),r.push(u)):!c&&o!==e&&(m=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(m),r.push(-1),r.push(1),r.push(2),r.push(p)):l!==3&&(r.push(0),r.push(1),r.push(2)),r};qk.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let l=n-s,u=s-o,m=r-a,p=i-a,y=1/(m*l+u*p),f=t-a,x=e-s,_=(m*x+u*f)*y,C=(-p*x+l*f)*y,V=1-_-C;return d(c)?(c.x=_,c.y=C,c.z=V,c):new h(_,C,V)};qk.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let l=(s-o)*(t-r)-(a-r)*(e-o),u=(n-e)*(t-r)-(i-t)*(e-o),m=(a-r)*(n-e)-(s-o)*(i-t);if(m===0)return;let p=l/m,y=u/m;if(p>=0&&p<=1&&y>=0&&y<=1)return d(c)||(c=new D),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var H0=qk;function tg(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=eD(e.westIndices,o,t),this._southIndices=eD(e.southIndices,r,t),this._eastIndices=eD(e.eastIndices,o,t),this._northIndices=eD(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=g(e.childTileMask,15),this._createdByUpsampling=g(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(tg.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return d(this._mesh)}}});var $k=[];function eD(e,t,n){$k.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)$k[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?($k.sort(t),Ue.createTypedArray(n,$k)):e}var Kge="createVerticesFromQuantizedTerrainMesh",fpt=new pi(Kge),ppt=new pi(Kge,sh.maximumAsynchronousTasks);tg.prototype.createMesh=function(e){e=g(e,g.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=g(e.exaggeration,1),s=g(e.exaggerationRelativeHeight,0),a=g(e.throttle,!0),c=t.ellipsoid,l=t.tileXYToRectangle(n,i,o),m=(a?ppt:fpt).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:l,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!d(m))return;let p=this;return Promise.resolve(m).then(function(y){let f=p._quantizedVertices.length/3,x=f+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,_=Ue.createTypedArray(x,y.indices),C=new Float32Array(y.vertices),V=y.center,L=y.minimumHeight,Z=y.maximumHeight,G=p._boundingSphere,X=p._orientedBoundingBox,P=g(h.clone(y.occludeePointInScaledSpace),p._horizonOcclusionPoint),v=y.vertexStride,A=sc.clone(y.encoding);return p._mesh=new Mu(V,C,_,y.indexCountWithoutSkirts,f,L,Z,G,P,v,X,A,y.westIndicesSouthToNorth,y.southIndicesEastToWest,y.eastIndicesNorthToSouth,y.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var bpt=new pi("upsampleQuantizedTerrainMesh",sh.maximumAsynchronousTasks);tg.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!d(this._mesh))return;let c=t*2!==o,l=n*2===r,u=e.ellipsoid,m=e.tileXYToRectangle(o,r,s),p=bpt.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:l,childRectangle:m,ellipsoid:u});if(!d(p))return;let y=Math.min(this._westSkirtHeight,this._eastSkirtHeight);y=Math.min(y,this._southSkirtHeight),y=Math.min(y,this._northSkirtHeight);let f=c?y*.5:this._westSkirtHeight,x=l?y*.5:this._southSkirtHeight,_=c?this._eastSkirtHeight:y*.5,C=l?this._northSkirtHeight:y*.5,V=this._credits;return Promise.resolve(p).then(function(L){let Z=new Uint16Array(L.vertices),G=Ue.createTypedArray(Z.length/3,L.indices),X;return d(L.encodedNormals)&&(X=new Uint8Array(L.encodedNormals)),new tg({quantizedVertices:Z,indices:G,encodedNormals:X,minimumHeight:L.minimumHeight,maximumHeight:L.maximumHeight,boundingSphere:ce.clone(L.boundingSphere),orientedBoundingBox:Wn.clone(L.orientedBoundingBox),horizonOcclusionPoint:h.clone(L.horizonOcclusionPoint),westIndices:L.westIndices,southIndices:L.southIndices,eastIndices:L.eastIndices,northIndices:L.northIndices,westSkirtHeight:f,southSkirtHeight:x,eastSkirtHeight:_,northSkirtHeight:C,childTileMask:0,credits:V,createdByUpsampling:!0})})};var Y4=32767,Hge=new h;tg.prototype.interpolateHeight=function(e,t,n){let i=W.clamp((t-e.west)/e.width,0,1);i*=Y4;let o=W.clamp((n-e.south)/e.height,0,1);return o*=Y4,d(this._mesh)?_pt(this,i,o):Tpt(this,i,o)};function zge(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),l=Math.max(n,o,s),u=Math.min(i,r,a),m=Math.max(i,r,a);return e>=c&&e<=l&&t>=u&&t<=m}var ypt=new D,gpt=new D,xpt=new D;function _pt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],u=s[a+1],m=s[a+2],p=r.decodeTextureCoordinates(o,l,ypt),y=r.decodeTextureCoordinates(o,u,gpt),f=r.decodeTextureCoordinates(o,m,xpt);if(zge(t,n,p.x,p.y,y.x,y.y,f.x,f.y)){let x=H0.computeBarycentricCoordinates(t,n,p.x,p.y,y.x,y.y,f.x,f.y,Hge);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let _=r.decodeHeight(o,l),C=r.decodeHeight(o,u),V=r.decodeHeight(o,m);return x.x*_+x.y*C+x.z*V}}}}function Tpt(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],u=s[a+1],m=s[a+2],p=i[l],y=i[u],f=i[m],x=o[l],_=o[u],C=o[m];if(zge(t,n,p,x,y,_,f,C)){let V=H0.computeBarycentricCoordinates(t,n,p,x,y,_,f,C,Hge);if(V.x>=-1e-15&&V.y>=-1e-15&&V.z>=-1e-15){let L=V.x*r[l]+V.y*r[u]+V.z*r[m];return W.lerp(e._minimumHeight,e._maximumHeight,L/Y4)}}}}tg.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};tg.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var LT=tg;var wUi=T(S(),1);function GV(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var RT=new de;function Spt(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}GV.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let y=t;y<=i;++y)Spt(e,y,p,s)||s.push(new RV(r,void 0,0,y,p));r.tileXYToRectangle(t,n,e,RT);let a=RT.west,c=RT.north;r.tileXYToRectangle(i,o,e,RT);let l=RT.east,u=RT.south,m=new Zpt(e,a,u,l,c);for(let p=0;p<s.length;++p){let y=s[p];O4(y.extent,m)&&Gpt(this._maximumLevel,y,m)}};GV.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(ZV(i.extent,e)){t=i;break}}return d(t)?Gw(void 0,t,e):-1};var Cpt=[],Vpt=[],Lpt=new de,Rpt=new de;GV.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=Cpt;t.length=0,e.east<e.west?(t.push(de.fromRadians(-Math.PI,e.south,e.east,e.north,Lpt)),t.push(de.fromRadians(e.west,e.south,Math.PI,e.north,Rpt))):t.push(e);let n=Vpt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)Ew(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(d(n[i])&&n[i].length===0)return i;return 0};var Jge=new he;GV.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,RT);return de.center(i,Jge),this.computeMaximumLevelAtPosition(Jge)>=e};GV.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function RV(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(RV.prototype,{nw:{get:function(){return this._nw||(this._nw=new RV(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new RV(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new RV(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new RV(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function Zpt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function O4(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function Gpt(e,t,n){for(;t.level<e;)if(tD(t.nw.extent,n))t=t.nw;else if(tD(t.ne.extent,n))t=t.ne;else if(tD(t.sw.extent,n))t=t.sw;else if(tD(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Lo(t.rectangles,n.level,Ept);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Ept(e,t){return e.level-t}function tD(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function ZV(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function Gw(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&ZV(t._nw.extent,n),s=t._ne&&ZV(t._ne.extent,n),a=t._sw&&ZV(t._sw.extent,n),c=t._se&&ZV(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,Gw(t,t._nw,n))),s&&(i=Math.max(i,Gw(t,t._ne,n))),a&&(i=Math.max(i,Gw(t,t._sw,n))),c&&(i=Math.max(i,Gw(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];ZV(a,n)&&(i=a.level)}t=t.parent}return i}function Ew(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||O4(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=Xpt(e[s.level],s)}Ew(e,t._nw,n),Ew(e,t._ne,n),Ew(e,t._sw,n),Ew(e,t._se,n)}function Xpt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];O4(o,t)?(o.west<t.west&&n.push(new de(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new de(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new de(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new de(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var xh=GV;function Ipt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function jge(e){this.requestVertexNormals=g(e.requestVertexNormals,!1),this.requestWaterMask=g(e.requestWaterMask,!1),this.requestMetadata=g(e.requestMetadata,!0),this.ellipsoid=e.ellipsoid,this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}jge.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=d(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata};async function qge(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=Vo.reportError(e.previousError,n,d(n)?n._errorEvent:void 0,x),new me(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=Vo.reportError(e.previousError,n,d(n)?n._errorEvent:void 0,x),new me(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,d(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let x=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=Vo.reportError(e.previousError,n,d(n)?n._errorEvent:void 0,x),new me(x)}let c=t.tiles,l=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,l),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Di({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new kr({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=Vo.reportError(e.previousError,n,d(n)?n._errorEvent:void 0,x),new me(x)}if(e.levelZeroMaximumGeometricError=Ur.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let x=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=Vo.reportError(e.previousError,n,d(n)?n._errorEvent:void 0,x),new me(x)}let u;d(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:d(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),d(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),d(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let m=t.metadataAvailability,p=t.available,y;if(d(p)&&!d(m)){y=new xh(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let _=p[x],C=e.tilingScheme.getNumberOfYTilesAtLevel(x);d(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let V=0;V<_.length;++V){let L=_[V],Z=C-L.endY-1,G=C-L.startY-1;e.overallAvailability[x].push([L.startX,Z,L.endX,G]),y.addAvailableTileRange(x,L.startX,Z,L.endX,G)}}}else d(m)&&(u=new xh(e.tilingScheme,l),y=new xh(e.tilingScheme,l),e.overallAvailability[0]=[[0,0,1,0]],y.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,d(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new Ipt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:y,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:m,availabilityTilesLoaded:u,littleEndianExtensionSize:s}));let f=t.parentUrl;return d(f)?d(y)?(e.lastResource=e.lastResource.getDerivedResource({url:f}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await z4(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function Wpt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(d(t)&&(i+=` +${t.message}`),e.previousError=Vo.reportError(e.previousError,n,d(n)?n._errorEvent:void 0,i),e.previousError.retry)return z4(e,n);throw new me(i)}async function Ppt(e,t,n){await qge(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new xh(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new St(e.attribution);e.tileCredits.push(o)}return!0}async function z4(e,t){try{let n=await e.layerJsonResource.fetchJson();return Ppt(e,n,t)}catch(n){return d(n)&&n.statusCode===404?(await qge(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):Wpt(e,n,t)}}function _h(e){e=g(e,g.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=g(e.requestVertexNormals,!1),this._requestWaterMask=g(e.requestWaterMask,!1),this._requestMetadata=g(e.requestMetadata,!0),this._errorEvent=new ye;let t=e.credit;typeof t=="string"&&(t=new St(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._tileCredits=void 0}var K4={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function Qge(e){return!d(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function vpt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new Sa({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function Fpt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,l=c+1,u=Float64Array.BYTES_PER_ELEMENT*c,m=Float64Array.BYTES_PER_ELEMENT*l,p=3,y=Uint16Array.BYTES_PER_ELEMENT*p,f=3,x=Uint16Array.BYTES_PER_ELEMENT,_=x*f,C=new DataView(t),V=new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=u;let L=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let Z=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let G=new ce(new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0)),C.getFloat64(a+u,!0));a+=m;let X=new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=u;let P=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let v=new Uint16Array(t,a,P*3);a+=P*y,P>64*1024&&(x=Uint32Array.BYTES_PER_ELEMENT,_=x*f);let A=v.subarray(0,P),M=v.subarray(P,2*P),b=v.subarray(P*2,3*P);Kn.zigZagDeltaDecode(A,M,b),a%x!==0&&(a+=x-a%x);let R=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let E=Ue.createTypedArrayFromArrayBuffer(P,t,a,R*f);a+=R*_;let I=0,F=E.length;for(let ae=0;ae<F;++ae){let xe=E[ae];E[ae]=I-xe,xe===0&&++I}let N=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Y=Ue.createTypedArrayFromArrayBuffer(P,t,a,N);a+=N*x;let k=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let O=Ue.createTypedArrayFromArrayBuffer(P,t,a,k);a+=k*x;let U=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let J=Ue.createTypedArrayFromArrayBuffer(P,t,a,U);a+=U*x;let z=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let ee=Ue.createTypedArrayFromArrayBuffer(P,t,a,z);a+=z*x;let K,j;for(;a<C.byteLength;){let ae=C.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let xe=C.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,ae===K4.OCT_VERTEX_NORMALS&&e._requestVertexNormals)K=new Uint8Array(t,a,P*2);else if(ae===K4.WATER_MASK&&e._requestWaterMask)j=new Uint8Array(t,a,xe);else if(ae===K4.METADATA&&e._requestMetadata){let _e=C.getUint32(a,!0);if(_e>0){let Ie=Go(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,_e).available;if(d(Ie))for(let Me=0;Me<Ie.length;++Me){let ve=n+Me+1,ke=Ie[Me],ct=e._tilingScheme.getNumberOfYTilesAtLevel(ve);for(let yt=0;yt<ke.length;++yt){let ot=ke[yt],ln=ct-ot.endY-1,vn=ct-ot.startY-1;e.availability.addAvailableTileRange(ve,ot.startX,ln,ot.endX,vn),r.availability.addAvailableTileRange(ve,ot.startX,ln,ot.endX,vn)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=xe}let q=e.getLevelMaximumGeometricError(n)*5,be=e._tilingScheme.tileXYToRectangle(i,o,n),Te=Wn.fromRectangle(be,L,Z,e._tilingScheme.ellipsoid);return new LT({center:V,minimumHeight:L,maximumHeight:Z,boundingSphere:G,orientedBoundingBox:Te,horizonOcclusionPoint:X,quantizedVertices:v,encodedNormals:K,indices:E,westIndices:Y,southIndices:O,eastIndices:J,northIndices:ee,westSkirtHeight:q,southSkirtHeight:q,eastSkirtHeight:q,northSkirtHeight:q,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:j,credits:e._tileCredits})}_h.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length,a=!1,c=Promise.resolve();if(s===1)r=o[0];else for(let l=0;l<s;++l){let u=o[l];if(!d(u.availability)||u.availability.isTileAvailable(n,e,t)){r=u;break}let m=J4(this,e,t,n,u,l===0);m.result&&(a=!0,c=c.then(()=>m.promise))}return!d(r)&&a?c.then(()=>this.requestTileGeometry(e,t,n,i)):$ge(this,e,t,n,r,i)};function $ge(e,t,n,i,o,r){if(!d(o))return Promise.reject(new me("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let l,u,m=s[(t+a+i)%s.length],p=o.resource;d(p._ionEndpoint)&&!d(p._ionEndpoint.externalType)?(c.length!==0&&(u={extensions:c.join("-")}),l=Qge(void 0)):l=Qge(c);let y=p.getDerivedResource({url:m,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:u,headers:l,request:r}).fetchArrayBuffer();if(d(y))return y.then(function(f){return d(f)?d(e._heightmapStructure)?vpt(e,f,i,t,n):Fpt(e,f,i,t,n,o):Promise.reject(new me("Mesh buffer doesn't exist."))})}Object.defineProperties(_h.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});_h.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};_h.fromIonAssetId=async function(e,t){let n=await $l.fromAssetId(e);return _h.fromUrl(n,t)};_h.fromUrl=async function(e,t){t=g(t,g.EMPTY_OBJECT),e=await Promise.resolve(e);let n=Ee.createIfNeeded(e);n.appendForwardSlash();let i=new jge(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await z4(i);let o=new _h(t);return i.build(o),o};_h.prototype.getTileDataAvailable=function(e,t,n){if(!d(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(J4(this,e,t,n,i[r],r===0).result)return;return!1};_h.prototype.loadTileDataAvailability=function(e,t,n){if(!d(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=J4(this,e,t,n,i[r],r===0);if(d(s.promise))return s.promise}};function H4(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function J4(e,t,n,i,o,r){if(!d(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,l=o.availability,u=H4(o,t,n,i);for(;d(u);){if(l.isTileAvailable(u.level,u.x,u.y)&&!c.isTileAvailable(u.level,u.x,u.y)){let m;if(!r&&(s=`${u.level}-${u.x}-${u.y}`,m=o.availabilityPromiseCache[s],!d(m))){let p=new Uo({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN});m=$ge(e,u.x,u.y,u.level,o,p),d(m)&&(o.availabilityPromiseCache[s]=m,m.then(a))}return{result:!0,promise:m}}u=H4(o,u.x,u.y,u.level)}return{result:!1}}_h._getAvailabilityTile=H4;var Xw=_h;function wpt(e){return e=g(e,g.EMPTY_OBJECT),Xw.fromIonAssetId(1,{requestVertexNormals:g(e.requestVertexNormals,!1),requestWaterMask:g(e.requestWaterMask,!1)})}var ZT=wpt;function nD(e){this._ready=!1,this._provider=void 0,this._errorEvent=new ye,this._readyEvent=new ye,Mpt(this,e)}Object.defineProperties(nD.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});nD.fromWorldTerrain=function(e){return new nD(ZT(e))};function Apt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Mpt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){Apt(e._errorEvent,i)}}var Iw=nD;var yki=T(S(),1);function EV(){}EV.prototype.boundingVolume=void 0;EV.prototype.boundingSphere=void 0;EV.prototype.distanceToCamera=function(e){fe.throwInstantiationError()};EV.prototype.intersectPlane=function(e){fe.throwInstantiationError()};EV.prototype.createDebugVolume=function(e){fe.throwInstantiationError()};var Q4=EV;var Vki=T(S(),1);function Ww(e){e=g(e,g.EMPTY_OBJECT),this._tilingScheme=d(e.tilingScheme)?e.tilingScheme:new Di({ellipsoid:e.ellipsoid}),this._color=g(e.color,B.YELLOW),this._errorEvent=new ye,this._tileWidth=g(e.tileWidth,256),this._tileHeight=g(e.tileHeight,256),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(Ww.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});Ww.prototype.getTileCredits=function(e,t,n){};Ww.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};Ww.prototype.pickFeatures=function(e,t,n,i,o){};var Pw=Ww;var Zki=T(S(),1);function j4(e){fe.throwInstantiationError()}j4.prototype.isReady=fe.throwInstantiationError;j4.prototype.shouldDiscardImage=fe.throwInstantiationError;var q4=j4;var Eki=T(S(),1),Npt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},$4=Object.freeze(Npt);var Hki=T(S(),1);function ET(e){e=g(e,g.EMPTY_OBJECT),this.show=g(e.show,!0),this.modelMatrix=w.clone(g(e.modelMatrix,w.IDENTITY)),this.shadows=g(e.shadows,xn.ENABLED),this.maximumMemoryUsage=g(e.maximumMemoryUsage,256),this.shading=new Kh(e.shading),this.style=e.style,this.frameFailed=new ye,this.frameChanged=new ye,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new Wp,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(ET.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ss.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(d(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function Upt(e){return`uniform vec4 czm_pickColor; +${e}`}function kpt(e){return function(t){return xt(t,{czm_pickColor:function(){return e._pickId.color}})}}function Dpt(){return"czm_pickColor"}ET.prototype.makeStyleDirty=function(){this._styleDirty=!0};ET.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var Bpt=new te;function tj(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function GT(e,t){return e._intervals.indexOf(t.start)}function Ypt(e,t){let n=e._intervals,i=e._clock,o=tj(e);if(o===0)return;let r=e._getAverageLoadTime(),s=te.addSeconds(i.currentTime,r*o,Bpt),a=n.indexOf(s),c=GT(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function Opt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function Kpt(e,t,n){let i=tj(e),o=GT(e,t),r=GT(e,n);return i>=0?o>=r:o<=r}function txe(e,t){return function(n){let i=d(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function Hpt(e,t,n){let i=GT(e,t),o=e._frames,r=o[i];if(!d(r)){let s=t.data.transform,a=d(s)?w.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:gi(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,Ee.fetchArrayBuffer({url:c}).then(function(l){r.pointCloud=new Vw({arrayBuffer:l,cull:!0,fragmentShaderLoaded:Upt,uniformMapLoaded:kpt(e),pickIdLoaded:Dpt})}).catch(txe(e,c))}return r}function zpt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function Jpt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(d(o)&&!t.ready){let r=i.commandList,s=r.length;if(nxe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(gi()-t.timestamp)/1e3;zpt(e,a)}}t.touchedFrameNumber=i.frameNumber}var Qpt=new w;function jpt(e,t){let n=e.shading;return d(n)&&d(n.baseResolution)?n.baseResolution:d(t.boundingSphere)?W.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function qpt(e){let t=e.shading;return d(t)&&d(t.maximumAttenuation)?t.maximumAttenuation:10}var $pt=new Kh;function nxe(e,t,n,i){let o=g(e.shading,$pt),r=t.pointCloud,s=g(t.transform,w.IDENTITY);r.modelMatrix=w.multiplyTransformation(e.modelMatrix,s,Qpt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=jpt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=qpt(e);try{r.update(i)}catch(a){txe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function ej(e,t,n,i){let o=Hpt(e,t,i);Jpt(e,o,n,i)}function e0t(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function ixe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(d(r)&&(!d(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),d(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function t0t(e,t){let n=GT(e,t),i=e._frames[n];if(d(i)&&i.ready)return i}function exe(e,t,n,i,o){return d(n)?n.ready?!0:(ej(e,t,i,o),n.ready):!1}function n0t(e,t,n,i,o){let r,s,a,c=e._intervals,l=e._frames,u=GT(e,n),m=GT(e,t);if(u>=m){for(r=u;r>=m;--r)if(s=c.get(r),a=l[r],exe(e,s,a,i,o))return s}else for(r=u;r<=m;++r)if(s=c.get(r),a=l[r],exe(e,s,a,i,o))return s;return t}function i0t(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];d(s)&&d(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var XV={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};ET.prototype.update=function(e){if(e.mode===ie.MORPHING||!this.show)return;d(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),d(this._loadTimestamp)||(this._loadTimestamp=te.clone(e.time));let t=Math.max(te.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=d(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&i0t(this,o,s),XV.timeSinceLoad=t,XV.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,l=e.commandList,u=l.length,m=this._previousInterval,p=this._nextInterval,y=Opt(this);if(!d(y))return;let f=!1,x=tj(this),_=x===0;x!==this._clockMultiplier&&(f=!0,this._clockMultiplier=x),(!d(m)||_)&&(m=y),(!d(p)||f||Kpt(this,y,p))&&(p=Ypt(this,y)),m=n0t(this,m,y,XV,e);let C=t0t(this,m);d(C)||(ej(this,m,XV,e),C=this._lastRenderedFrame),d(C)&&nxe(this,C,XV,e),d(p)&&ej(this,p,XV,e);let V=this;d(C)&&!d(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),d(C)&&C!==this._lastRenderedFrame&&V.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return V.frameChanged.raiseEvent(V),!0}),this._previousInterval=m,this._nextInterval=p,this._lastRenderedFrame=C;let L=this._totalMemoryUsageInBytes,Z=this.maximumMemoryUsage*1024*1024;L>Z&&ixe(this,e0t(e));let X=l.length-u;d(a)&&a.attenuation&&a.eyeDomeLighting&&X>0&&c.update(e,u,a,this.boundingSphere)};ET.prototype.isDestroyed=function(){return!1};ET.prototype.destroy=function(){return ixe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var IV=ET;var rDi=T(S(),1);function iD(e,t){this.show=!0,d(e)||(e=new He),this.rectangle=He.clone(e),d(t)||(t=ki.fromType(ki.ColorType,{color:new B(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}iD.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!d(t)||!He.equals(t.viewport,this.rectangle))&&(this._rs=De.fromCache({blending:un.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!d(this._overlayCommand)){this._material=this.material,d(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new Be({sources:[this._material.shaderSource,ov]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=Re.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};iD.prototype.isDestroyed=function(){return!1};iD.prototype.destroy=function(){return d(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var nj=iD;var W3i=T(S(),1);var gBi=T(S(),1);var eBi=T(S(),1);var aDi=T(S(),1),vw=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl +// for the definition of convertUvToShapeUvSpace. The appropriate function is +// selected based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 + +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionUv; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +#if defined(JITTER) +float hash(vec2 p) +{ + vec3 p3 = fract(vec3(p.xyx) * 50.0); // magic number = hashscale + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); +} +#endif + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) { +#if defined(SHAPE_BOX) + Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv); + RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox); + vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry; + float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w); + float dt = (exit - entry.w) * RAY_SCALE; + return vec4(normalize(entry.xyz), dt); +#else + float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w)); + return vec4(viewRay.dir, u_stepSize / dimAtLevel); +#endif +} + +void main() +{ + vec4 fragCoord = gl_FragCoord; + vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); + vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case + vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case + vec3 viewPosUv = u_cameraPositionUv; + #if defined(SHAPE_BOX) + vec3 dInv = 1.0 / viewDirUv; + Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv); + #else + Ray viewRayUv = Ray(viewPosUv, viewDirUv); + #endif + + Intersections ix; + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); + + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currT = shapeIntersection.entry.w * RAY_SCALE; + float endT = shapeIntersection.exit.w; + vec3 positionUv = viewPosUv + currT * viewDirUv; + vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + + #if defined(JITTER) + float noise = hash(screenCoord); // [0,1] + currT += noise * step.w; + positionUv += noise * step.w * viewDirUv; + #endif + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadata.statistics); + #endif + + vec4 colorAccum =vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + fragmentInput.voxel.positionUv = positionUv; + fragmentInput.voxel.positionShapeUv = positionUvShapeSpace; + fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; + fragmentInput.voxel.viewDirUv = viewDirUv; + fragmentInput.voxel.viewDirWorld = viewDirWorld; + fragmentInput.voxel.surfaceNormal = step.xyz; + fragmentInput.voxel.travelDistance = step.w; + + // Run the custom shader + czm_modelMaterial materialOutput; + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w == 0.00001; + } + + // Keep raymarching + currT += step.w; + positionUv += step.w * viewDirUv; + + // Check if there's more intersections. + if (currT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currT = shapeIntersection.entry.w * RAY_SCALE; + endT = shapeIntersection.exit.w; + positionUv = viewPosUv + currT * viewDirUv; + } + #endif + } + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #else + out_FragColor = colorAccum; + #endif +} +`;var lDi=T(S(),1),Fw=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var uDi=T(S(),1),ww=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) +#define RAY_SHIFT (0.000003163) +#define RAY_SCALE (1.003163) + +struct Ray { + vec3 pos; + vec3 dir; +#if defined(SHAPE_BOX) + vec3 dInv; +#endif +}; + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection; +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intMod(intersectionType, 2) == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var hDi=T(S(),1),Aw=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +uniform mat4 u_transformPositionViewToUv; + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); + float t = dot(depthPositionUv - ray.pos, ray.dir); + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); + } else { + // There's no depth at this location. + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); + } +} +`;var pDi=T(S(),1),Mw=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setIntersectionPair + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +`;var yDi=T(S(),1),Nw=`// See IntersectionUtils.glsl for the definitions of Ray and NO_HIT +// See convertUvToBox.glsl for the definition of convertShapeUvToUvSpace + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform vec3 u_renderMinBounds; +uniform vec3 u_renderMaxBounds; + +struct Box { + vec3 p0; + vec3 p1; +}; + +Box constructVoxelBox(in ivec4 octreeCoords, in vec3 tileUv) +{ + // Find the min/max cornerpoints of the voxel in tile coordinates + vec3 tileOrigin = vec3(octreeCoords.xyz); + vec3 numSamples = vec3(u_dimensions); + vec3 voxelSize = 1.0 / numSamples; + vec3 coordP0 = floor(tileUv * numSamples) * voxelSize + tileOrigin; + vec3 coordP1 = coordP0 + voxelSize; + + // Transform to the UV coordinates of the scaled tileset + float tileSize = 1.0 / pow(2.0, float(octreeCoords.w)); + vec3 p0 = convertShapeUvToUvSpace(coordP0 * tileSize); + vec3 p1 = convertShapeUvToUvSpace(coordP1 * tileSize); + + return Box(p0, p1); +} + +vec3 getBoxNormal(in Box box, in Ray ray, in float t) +{ + vec3 hitPoint = ray.pos + t * ray.dir; + vec3 lower = step(hitPoint, box.p0); + vec3 upper = step(box.p1, hitPoint); + return normalize(upper - lower); +} + +// Find the distances along a ray at which the ray intersects an axis-aligned box +// See https://tavianator.com/2011/ray_box.html +RayShapeIntersection intersectBox(in Ray ray, in Box box) +{ + // Consider the box as the intersection of the space between 3 pairs of parallel planes + // Compute the distance along the ray to each plane + vec3 t0 = (box.p0 - ray.pos) * ray.dInv; + vec3 t1 = (box.p1 - ray.pos) * ray.dInv; + + // Identify candidate entries/exits based on distance from ray.pos + vec3 entries = min(t0, t1); + vec3 exits = max(t0, t1); + + // The actual box intersection points are the furthest entry and the closest exit + float entryT = max(max(entries.x, entries.y), entries.z); + float exitT = min(min(exits.x, exits.y), exits.z); + + vec3 entryNormal = getBoxNormal(box, ray, entryT - RAY_SHIFT); + vec3 exitNormal = getBoxNormal(box, ray, exitT + RAY_SHIFT); + + if (entryT > exitT) { + entryT = NO_HIT; + exitT = NO_HIT; + } + + return RayShapeIntersection(vec4(entryNormal, entryT), vec4(exitNormal, exitT)); +} + +void intersectShape(in Ray ray, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBox(ray, Box(u_renderMinBounds, u_renderMaxBounds)); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var xDi=T(S(),1),Uw=`// See IntersectionUtils.glsl for the definitions of Ray, setIntersection, +// setIntersectionPair + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + uniform vec3 u_cylinderUvToRenderBoundsScale; + uniform vec3 u_cylinderUvToRenderBoundsTranslate; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) && !defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + uniform float u_cylinderUvToRenderRadiusMin; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +#define POSITIVE_HIT vec2(t, +INF_HIT); +#define NEGATIVE_HIT vec2(-INF_HIT, t); + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + // Half space cuts right through the camera, pick the side to intersect + if (a == 0.0) { + if (b >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } + } + + if (t >= 0.0 != s >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float ta = (-b - det) / a; + float tb = (-b + det) / a; + float t1 = min(ta, tb); + float t2 = max(ta, tb); + + float z1 = o.z + t1 * d.z; + float z2 = o.z + t2 * d.z; + + if (abs(z1) >= 1.0) + { + float tCap = (sign(z1) - o.z) / d.z; + t1 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + if (abs(z2) >= 1.0) + { + float tCap = (sign(z2) - o.z) / d.z; + t2 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + return vec2(t1, t2); +} + +vec2 intersectUnitCircle(Ray ray) { + vec3 o = ray.pos; + vec3 d = ray.dir; + + float t = -o.z / d.z; + vec2 zPlanePos = o.xy + d.xy * t; + float distSqr = dot(zPlanePos, zPlanePos); + + if (distSqr > 1.0) { + return vec2(NO_HIT); + } + + return vec2(t, t); +} + +vec2 intersectInfiniteUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +void intersectShape(Ray ray, inout Intersections ix) +{ + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + ray.pos = ray.pos * u_cylinderUvToRenderBoundsScale + u_cylinderUvToRenderBoundsTranslate; + ray.dir *= u_cylinderUvToRenderBoundsScale; + #else + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + vec2 outerIntersect = intersectUnitCircle(ray); + #else + vec2 outerIntersect = intersectUnitCylinder(ray); + #endif + + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.x == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + vec2 innerIntersect = intersectInfiniteUnitCylinder(ray); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + Ray innerRay = Ray(ray.pos * u_cylinderUvToRenderRadiusMin, ray.dir * u_cylinderUvToRenderRadiusMin); + vec2 innerIntersect = intersectInfiniteUnitCylinder(innerRay); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #endif +} +`;var TDi=T(S(),1),kw=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersection, setIntersectionPair, INF_HIT, NO_HIT + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + uniform vec2 u_ellipsoidRenderLatitudeCosSqrHalfMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + uniform float u_ellipsoidInverseOuterScaleUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + uniform float u_ellipsoidInverseInnerScaleUv; +#endif + +vec2 intersectZPlane(Ray ray) +{ + float o = ray.pos.z; + float d = ray.dir.z; + float t = -o / d; + float s = sign(o); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitSphere(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = -b - det; + float t2 = -b + det; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectUnitSphereUnnormalizedDirection(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d, d); + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectDoubleEndedCone(Ray ray, float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float a = d.z * d.z - dot(d, d) * cosSqrHalfAngle; + float b = d.z * o.z - dot(o, d) * cosSqrHalfAngle; + float c = o.z * o.z - dot(o, o) * cosSqrHalfAngle; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +vec4 intersectFlippedCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + // One interval + if (zmin < 0.0 && zmax < 0.0) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + else if (zmin < 0.0) return vec4(-INF_HIT, tmax, NO_HIT, NO_HIT); + else if (zmax < 0.0) return vec4(tmin, +INF_HIT, NO_HIT, NO_HIT); + // Two intervals + else return vec4(-INF_HIT, tmin, tmax, +INF_HIT); +} + +vec2 intersectRegularCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec2(NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + if (zmin < 0.0 && zmax < 0.0) return vec2(NO_HIT); + else if (zmin < 0.0) return vec2(tmax, +INF_HIT); + else if (zmax < 0.0) return vec2(-INF_HIT, tmin); + else return vec2(tmin, tmax); +} + +void intersectShape(in Ray ray, inout Intersections ix) { + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + Ray outerRay = Ray(ray.pos * u_ellipsoidInverseOuterScaleUv, ray.dir * u_ellipsoidInverseOuterScaleUv); + #else + Ray outerRay = ray; + #endif + + // Outer ellipsoid + vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(outerRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.x == NO_HIT) { + return; + } + + // Inner ellipsoid + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + // When the ellipsoid is perfectly thin it's necessary to sandwich the + // inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, outerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, outerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + Ray innerRay = Ray(ray.pos * u_ellipsoidInverseInnerScaleUv, ray.dir * u_ellipsoidInverseInnerScaleUv); + vec2 innerIntersect = intersectUnitSphereUnnormalizedDirection(innerRay); + + if (innerIntersect == vec2(NO_HIT)) { + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is very large and thin it's possible for floating + // point math to cause the ray to intersect the inner ellipsoid before + // the outer ellipsoid. To prevent this from happening, clamp innerIntersect + // to outerIntersect and sandwhich the intersections like described above. + // + // In theory a similar fix is needed for cylinders, however it's more + // complicated to implement because the inner shape is allowed to be + // intersected first. + innerIntersect.x = max(innerIntersect.x, outerIntersect.x); + innerIntersect.y = min(innerIntersect.y, outerIntersect.y); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + } + #endif + + // Flip the ray because the intersection function expects a cone growing towards +Z. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + Ray flippedRay = outerRay; + flippedRay.dir.z *= -1.0; + flippedRay.pos.z *= -1.0; + #endif + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + vec2 bottomConeIntersection = intersectRegularCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + vec2 bottomConeIntersection = intersectZPlane(flippedRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + vec4 bottomConeIntersection = intersectFlippedCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersection.zw); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + vec4 topConeIntersection = intersectFlippedCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersection.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + vec2 topConeIntersection = intersectZPlane(ray); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + vec2 topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #endif +} +`;var CDi=T(S(),1),XT=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + #if defined(DEPTH_TEST) + intersectDepth(screenCoord, ray, ix); + #endif + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var LDi=T(S(),1),Dw=`/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_HAS_SHAPE_BOUNDS +*/ + +#if defined(BOX_HAS_SHAPE_BOUNDS) + uniform vec3 u_boxUvToShapeUvScale; + uniform vec3 u_boxUvToShapeUvTranslate; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; +#else + return positionUv; +#endif +} + +vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +} +`;var ZDi=T(S(),1),Bw=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED +*/ + +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + uniform vec2 u_cylinderShapeUvAngleMinMax; +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + uniform float u_cylinderShapeUvAngleRangeZeroMid; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + vec3 positionLocal = positionUv * 2.0 - 1.0; // [-1,+1] + + // Compute radius + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT) + float radius = 1.0; + #else + float radius = length(positionLocal.xy); // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; // x = scale, y = offset + #endif + #endif + + // Compute height + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + float height = 1.0; + #else + float height = positionUv.z; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; // x = scale, y = offset + #endif + #endif + + // Compute angle + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + float angle = 1.0; + #else + float angle = (atan(positionLocal.y, positionLocal.x) + czm_pi) / czm_twoPi; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. + angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) + angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; + #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; + #endif + + angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; // x = scale, y = offset + #endif + #endif + + return vec3(radius, height, angle); +} +`;var EDi=T(S(),1),Yw=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_IS_SPHERE +*/ + +uniform vec3 u_ellipsoidRadiiUv; // [0,1] +#if !defined(ELLIPSOID_IS_SPHERE) + uniform vec3 u_ellipsoidInverseRadiiSquaredUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) && !defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + uniform float u_ellipsoidInverseHeightDifferenceUv; + uniform vec2 u_ellipseInnerRadiiUv; // [0,1] +#endif + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Pro: Good when radii.x ~= radii.y +// Con: Breaks at pos.x ~= 0.0, especially inside the ellipse +// Con: Inaccurate with exterior points and thin ellipses +float ellipseDistanceIterative (vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 invRadii = 1.0 / radii; + vec2 a = vec2(1.0, -1.0) * (radii.x * radii.x - radii.y * radii.y) * invRadii; + vec2 t = vec2(0.70710678118); // sqrt(2) / 2 + vec2 v = radii * t; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + vec2 e = a * pow(t, vec2(3.0)); + vec2 q = normalize(p - e) * length(v - e); + t = normalize((q + e) * invRadii); + v = radii * t; + } + return length(v * sign(pos) - pos) * sign(p.y - v.y); +} + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + // Compute position and normal. + // Convert positionUv [0,1] to local space [-1,+1] to "normalized" cartesian space [-a,+a] where a = (radii + height) / (max(radii) + height). + // A point on the largest ellipsoid axis would be [-1,+1] and everything else would be smaller. + vec3 positionLocal = positionUv * 2.0 - 1.0; + #if defined(ELLIPSOID_IS_SPHERE) + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv.x; + vec3 normal = normalize(posEllipsoid); + #else + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv; + vec3 normal = normalize(posEllipsoid * u_ellipsoidInverseRadiiSquaredUv); // geodetic surface normal + #endif + + // Compute longitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + float longitude = 1.0; + #else + float longitude = (atan(normal.y, normal.x) + czm_pi) / czm_twoPi; + + // Correct the angle when max < min + // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) + longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; + #endif + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) + longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; + #endif + + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; + #endif + #endif + + // Compute latitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO) + float latitude = 1.0; + #else + float latitude = (asin(normal.z) + czm_piOverTwo) / czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; + #endif + #endif + + // Compute height + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + // TODO: This breaks down when minBounds == maxBounds. To fix it, this + // function would have to know if ray is intersecting the front or back of the shape + // and set the shape space position to 1 (front) or 0 (back) accordingly. + float height = 1.0; + #else + #if defined(ELLIPSOID_IS_SPHERE) + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + float height = (length(posEllipsoid) - u_ellipseInnerRadiiUv.x) * u_ellipsoidInverseHeightDifferenceUv; + #else + float height = length(posEllipsoid); + #endif + #else + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) (assuming radii.x == radii.y which is true for WGS84). + // This is an optimization so that math can be done with ellipses instead of ellipsoids. + vec2 posEllipse = vec2(length(posEllipsoid.xy), posEllipsoid.z); + float height = ellipseDistanceIterative(posEllipse, u_ellipseInnerRadiiUv) * u_ellipsoidInverseHeightDifferenceUv; + #else + // TODO: this is probably not correct + float height = length(posEllipsoid); + #endif + #endif + #endif + + return vec3(longitude, latitude, height); +} +`;var IDi=T(S(),1),Ow=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +// Integer mod: For WebGL1 only +int intMod(in int a, in int b) { + return a - (b * (a / b)); +} +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +/** +* Convert a position in the uv-space of the tileset bounding shape +* into the uv-space of a tile within the tileset +*/ +vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) + float dimAtLevel = pow(2.0, float(octreeCoords.w)); + return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { + float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w)); + vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; + vec3 end = start + vec3(sizeAtLevel); + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // Find out which octree child contains the position + // 0 if before center, 1 if after + vec3 center = 0.5 * (start + end); + vec3 childCoord = step(center, shapePosition); + + // Get octree coords for the next level down + ivec4 octreeCoords = traversalData.octreeCoords; + traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); + + childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + // interior tile - keep going deeper + start = mix(start, center, childCoord); + end = mix(center, end, childCoord); + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(shapePosition, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} + +bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { + return clamp(v, minVal, maxVal) == v; +} + +bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); + // Assume (!) the position is always inside the root tile. + return inside || octreeCoords.w == 0; +} + +void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + if (insideTile(shapePosition, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + } + return; + } + + // Go up tree until we find a parent tile containing shapePosition + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(shapePosition, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} +`;var PDi=T(S(),1),Kw=`// See Octree.glsl for the definitions of SampleData and intMod + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define NEAREST_SAMPLING +#define PADDING +*/ + +uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions +uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions +uniform vec2 u_megatextureVoxelSizeUv; +uniform vec2 u_megatextureSliceSizeUv; +uniform vec2 u_megatextureTileSizeUv; + +uniform ivec3 u_dimensions; // does not include padding +#if defined(PADDING) + uniform ivec3 u_paddingBefore; + uniform ivec3 u_paddingAfter; +#endif + +// Integer min, max, clamp: For WebGL1 only +int intMin(int a, int b) { + return a <= b ? a : b; +} +int intMax(int a, int b) { + return a >= b ? a : b; +} +int intClamp(int v, int minVal, int maxVal) { + return intMin(intMax(v, minVal), maxVal); +} + +vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) +{ + int indexX = intMod(index, dimensions.x); + int indexY = index / dimensions.x; + return vec2(indexX, indexY) * uvScale; +} + +/* + How is 3D data stored in a 2D megatexture? + + In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). + The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and + the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). + Note that there could be empty space in the megatexture because it's a power of two. + + 0 1 2 3 + +---+---+---+---+ + | | | | | 3 + +---+---+---+---+ + | | | | | 2 + +-------+-------+ + |010|110|011|111| 1 + |--- ---|--- ---| + |000|100|001|101| 0 + +-------+-------+ + + When doing linear interpolation the megatexture needs to be sampled twice: once for + the Z slice above the voxel coordinate and once for the slice below. The two slices + are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is + halfway between two Z slices so the interpolation factor is 0.5. Below is a side view + of the 3D voxel grid with voxel coordinates on the left side. + + 2 +---+ + |001| + 1 +-z-+ + |000| + 0 +---+ + + When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. +*/ + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + vec3 tileUv = clamp(sampleData.tileUv, vec3(0.0), vec3(1.0)); // TODO is the clamp necessary? + int tileIndex = sampleData.megatextureIndex; + vec3 voxelCoord = tileUv * vec3(u_dimensions); + ivec3 voxelDimensions = u_dimensions; + + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + voxelCoord += vec3(u_paddingBefore); + #endif + + #if defined(NEAREST_SAMPLING) + // Round to the center of the nearest voxel + voxelCoord = floor(voxelCoord) + vec3(0.5); + #endif + + // Tile location + vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); + + // Slice location + float slice = voxelCoord.z - 0.5; + int sliceIndex = int(floor(slice)); + int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); + vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + + // Voxel location + vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; + + // Final location in the megatexture + vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; + + #if defined(NEAREST_SAMPLING) + return getPropertiesFromMegatextureAtUv(uv0); + #else + float sliceLerp = fract(slice); + int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); + vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; + Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); + Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); + return mixProperties(properties0, properties1, sliceLerp); + #endif +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;function o0t(e){let t=new Ag;this.shaderBuilder=t;let n=e._customShader,i=xt(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let y=o[p];t.addUniform(y.type,p,Le.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",Le.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=d(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([Fw]),t.addFragmentLines([n.fragmentShaderText,"#line 0",Ow,ww,Kw]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,Le.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,Le.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,Le.FRAGMENT),t.addFragmentLines([Mw])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,Le.FRAGMENT),t.addFragmentLines([Aw]));let a=e._provider.shape;a==="BOX"?(t.addDefine("SHAPE_BOX",void 0,Le.FRAGMENT),t.addFragmentLines([Dw,Nw,XT])):a==="CYLINDER"?t.addFragmentLines([Uw,XT,Bw]):a==="ELLIPSOID"&&t.addFragmentLines([kw,XT,Yw]),t.addFragmentLines([vw]);let c=e._shape,l=c.shaderDefines;for(let p in l)if(l.hasOwnProperty(p)){let y=l[p];d(y)&&(y=y===!0?void 0:y,t.addDefine(p,y,Le.FRAGMENT))}let u=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",u,Le.FRAGMENT),s===1?u+=1:r.unionClippingRegions?u+=2:u+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",u,Le.FRAGMENT),u+=1),t.addDefine("INTERSECTION_COUNT",u,Le.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,Le.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,Le.FRAGMENT),e._jitter&&t.addDefine("JITTER",void 0,Le.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,Le.FRAGMENT);let m=e._traversal;t.addDefine("SAMPLE_COUNT",`${m._sampleCount}`,Le.FRAGMENT)}var Hw=o0t;var rBi=T(S(),1);function r0t(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,l=d(s)&&d(a);n.addDefine("METADATA_COUNT",c,Le.FRAGMENT),l&&n.addDefine("STATISTICS",void 0,Le.FRAGMENT);for(let v=0;v<c;v++){let A=i[v],M=o[v],b=`PropertyStatistics_${A}`,R=`PropertyStatistics_${A}`;n.addStruct(b,R,Le.FRAGMENT);let E=oD(M);n.addStructField(b,E,"min"),n.addStructField(b,E,"max")}let u="Statistics",m="Statistics",p="statistics";n.addStruct(u,m,Le.FRAGMENT);for(let v=0;v<c;v++){let A=i[v],M=`PropertyStatistics_${A}`,b=A;n.addStructField(u,M,b)}let y="Metadata",f="Metadata",x="metadata";n.addStruct(y,f,Le.FRAGMENT),n.addStructField(y,m,p);for(let v=0;v<c;v++){let A=i[v],M=o[v],b=oD(M);n.addStructField(y,b,A)}for(let v=0;v<c;v++){let A=i[v],M=o[v],b=a0t(M),R=`VoxelProperty_${A}`,E=`VoxelProperty_${A}`;n.addStruct(R,E,Le.FRAGMENT),n.addStructField(R,b,"partialDerivativeLocal"),n.addStructField(R,b,"partialDerivativeWorld"),n.addStructField(R,b,"partialDerivativeView"),n.addStructField(R,b,"partialDerivativeValid")}let _="Voxel",C="Voxel",V="voxel";n.addStruct(_,C,Le.FRAGMENT);for(let v=0;v<c;v++){let A=i[v],M=`VoxelProperty_${A}`;n.addStructField(_,M,A)}n.addStructField(_,"vec3","positionEC"),n.addStructField(_,"vec3","positionUv"),n.addStructField(_,"vec3","positionShapeUv"),n.addStructField(_,"vec3","positionUvLocal"),n.addStructField(_,"vec3","viewDirUv"),n.addStructField(_,"vec3","viewDirWorld"),n.addStructField(_,"vec3","surfaceNormal"),n.addStructField(_,"float","travelDistance");let L="FragmentInput",Z="FragmentInput";n.addStruct(L,Z,Le.FRAGMENT),n.addStructField(L,f,x),n.addStructField(L,C,V);let G="Properties",X="Properties",P="properties";n.addStruct(G,X,Le.FRAGMENT);for(let v=0;v<c;v++){let A=i[v],M=o[v],b=oD(M);n.addStructField(G,b,A)}{let v="clearProperties";n.addFunction(v,`${X} clearProperties()`,Le.FRAGMENT),n.addFunctionLines(v,[`${X} ${P};`]);for(let A=0;A<c;A++){let M=i[A],b=o[A],R=r[A],E=oD(b,R);n.addFunctionLines(v,[`${P}.${M} = ${E}(0.0);`])}n.addFunctionLines(v,[`return ${P};`])}{let v="sumProperties";n.addFunction(v,`${X} sumProperties(${X} propertiesA, ${X} propertiesB)`,Le.FRAGMENT),n.addFunctionLines(v,[`${X} ${P};`]);for(let A=0;A<c;A++){let M=i[A];n.addFunctionLines(v,[`${P}.${M} = propertiesA.${M} + propertiesB.${M};`])}n.addFunctionLines(v,[`return ${P};`])}{let v="scaleProperties";n.addFunction(v,`${X} scaleProperties(${X} ${P}, float scale)`,Le.FRAGMENT),n.addFunctionLines(v,[`${X} scaledProperties = ${P};`]);for(let A=0;A<c;A++){let M=i[A];n.addFunctionLines(v,[`scaledProperties.${M} *= scale;`])}n.addFunctionLines(v,["return scaledProperties;"])}{let v="mixProperties";n.addFunction(v,`${X} mixProperties(${X} propertiesA, ${X} propertiesB, float mixFactor)`,Le.FRAGMENT),n.addFunctionLines(v,[`${X} ${P};`]);for(let A=0;A<c;A++){let M=i[A];n.addFunctionLines(v,[`${P}.${M} = mix(propertiesA.${M}, propertiesB.${M}, mixFactor);`])}n.addFunctionLines(v,[`return ${P};`])}{let v="copyPropertiesToMetadata";n.addFunction(v,`void copyPropertiesToMetadata(in ${X} ${P}, inout ${f} ${x})`,Le.FRAGMENT);for(let A=0;A<c;A++){let M=i[A];n.addFunctionLines(v,[`${x}.${M} = ${P}.${M};`])}}if(l){let v="setStatistics";n.addFunction(v,`void setStatistics(inout ${m} ${p})`,Le.FRAGMENT);for(let A=0;A<c;A++){let M=i[A],b=o[A],R=Ot.getComponentCount(b);for(let E=0;E<R;E++){let I=c0t(b,E),F=s[A][E],N=a[A][E];n.addFunctionLines(v,[`${p}.${M}.min${I} = ${oxe(F)};`,`${p}.${M}.max${I} = ${oxe(N)};`])}}}{let v="getPropertiesFromMegatextureAtUv";n.addFunction(v,`${X} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,Le.FRAGMENT),n.addFunctionLines(v,[`${X} ${P};`]);for(let A=0;A<c;A++){let M=i[A],b=o[A],R=r[A],E=s0t(b,R);n.addFunctionLines(v,[`properties.${M} = texture(u_megatextureTextures[${A}], texcoord)${E};`])}n.addFunctionLines(v,[`return ${P};`])}}function oD(e){if(e===Ot.SCALAR)return"float";if(e===Ot.VEC2)return"vec2";if(e===Ot.VEC3)return"vec3";if(e===Ot.VEC4)return"vec4"}function s0t(e){if(e===Ot.SCALAR)return".r";if(e===Ot.VEC2)return".ra";if(e===Ot.VEC3)return".rgb";if(e===Ot.VEC4)return""}function a0t(e){if(e===Ot.SCALAR)return"vec3";if(e===Ot.VEC2)return"mat2";if(e===Ot.VEC3)return"mat3";if(e===Ot.VEC4)return"mat4"}function oxe(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function c0t(e,t){return e===Ot.SCALAR?"":`[${t}]`}var zw=r0t;function l0t(e,t){let n=new Hw(e);zw(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let f="getClippingPlane",x=E0(o,t),_=0,C=x.indexOf(")")+1,V=x.indexOf("{",C)+1,L=x.indexOf("}",V),Z=x.slice(_,C),G=x.slice(V,L);i.addFunction(f,Z,Le.FRAGMENT),i.addFunctionLines(f,[G])}let s=i.clone();s.addDefine("PICKING",void 0,Le.FRAGMENT);let a=i.buildShaderProgram(t),c=s.buildShaderProgram(t),l=De.fromCache({cull:{enabled:!0,face:yi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}),u=t.getViewportQuadVertexArray(),m=e._depthTest,p=new nt({vertexArray:u,primitiveType:we.TRIANGLES,renderState:l,shaderProgram:a,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:Re.VOXELS,executeInClosestFrustum:!0,owner:this,cull:m,occlude:m}),y=nt.shallowClone(p,new nt);if(y.shaderProgram=c,y.pickOnly=!0,d(e._drawCommand)){let f=e._drawCommand;f.shaderProgram=f.shaderProgram&&f.shaderProgram.destroy()}if(d(e._drawCommandPick)){let f=e._drawCommandPick;f.shaderProgram=f.shaderProgram&&f.shaderProgram.destroy()}e._drawCommand=p,e._drawCommandPick=y}var Jw=l0t;var ABi=T(S(),1);function ng(e,t,n,i,o,r,s){this._primitive=e;let a=i.length;this.megatextures=new Array(a);for(let x=0;x<a;x++){let _=i[x],C=Ot.getComponentCount(_),V=o[x];this.megatextures[x]=new CV(t,n,C,V,s)}let c=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let l=e._shape;this.rootNode=new Rw(0,0,0,0,void 0,l,n),this._priorityQueue=new yT({maximumLength:c,comparator:Qi.priorityComparator}),this._highPriorityKeyframeNodes=new Array(c),this._keyframeNodesInMegatexture=new Array(c),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let u=this._binaryTreeKeyframeWeighting;u[0]=0,u[r-1]=0,ij(u,1,r-2,0);let m=9,p=2048,y=Math.floor(p/m),f=Math.ceil(c/y);this.internalNodeTexture=new Wt({context:t,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,flipY:!1,width:p,height:f,sampler:new dn({minificationFilter:cn.NEAREST,magnificationFilter:Ti.NEAREST})}),this.internalNodeTilesPerRow=y,this.internalNodeTexelSizeUv=new D(1/p,1/f),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new D}function ij(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,ij(e,t,o-1,i+1),ij(e,o+1,n,i+1)}ng.simultaneousRequestCountMaximum=50;ng.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,l=c>0,u=a>1,m=(l?2:1)*(u?2:1);this._sampleCount=m;let p=m>=2;if(p&&!d(this.leafNodeTexture)){let V=Math.floor(512),L=Math.ceil(s/V);this.leafNodeTexture=new Wt({context:r,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,flipY:!1,width:1024,height:L,sampler:new dn({minificationFilter:cn.NEAREST,magnificationFilter:Ti.NEAREST})}),this.leafNodeTexelSizeUv=D.fromElements(1/1024,1/L,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=V}else!p&&d(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=W.clamp(t,0,a-1),n&&rxe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let y=gi();m0t(this,e);let f=gi();f0t(this,m,c);let x=gi();if(this._debugPrint){let _=f-y,C=x-f,V=x-y;h0t(this,_,C,V)}};ng.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};ng.prototype.isDestroyed=function(){return!1};ng.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function rxe(e,t){let n=e._primitive,i=n._shape,o=n._provider.dimensions;if(t.computeBoundingVolumes(i,o),d(t.children))for(let r=0;r<8;r++){let s=t.children[r];rxe(e,s)}}function d0t(e,t){if(e._simultaneousRequestCount>=ng.simultaneousRequestCountMaximum)return;let n=e._primitive,i=n._provider;function o(l){e._simultaneousRequestCount--;let u=n._provider.types.length;if(!d(l))t.state=Qi.LoadState.UNAVAILABLE;else if(l===Qi.LoadState.FAILED)t.state=Qi.LoadState.FAILED;else if(!Array.isArray(l)||l.length!==u)t.state=Qi.LoadState.FAILED;else{let m=e.megatextures;for(let p=0;p<u;p++){let{voxelCountPerTile:y,channelCount:f}=m[p],{x,y:_,z:C}=y,V=x*_*C,L=l[p],Z=V*f;if(L.length===Z)t.metadatas[p]=L,t.state=Qi.LoadState.RECEIVED;else{t.state=Qi.LoadState.FAILED;break}}}}function r(){e._simultaneousRequestCount--,t.state=Qi.LoadState.FAILED}let{keyframe:s,spatialNode:a}=t,c=i.requestData({tileLevel:a.level,tileX:a.x,tileY:a.y,tileZ:a.z,keyframe:s});d(c)?(e._simultaneousRequestCount++,t.state=Qi.LoadState.RECEIVING,c.then(o).catch(r)):t.state=Qi.LoadState.FAILED}function u0t(e){return e/(1+e)}function m0t(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,{dimensions:r}=i,s=i.screenSpaceError,a=e._priorityQueue,c=e._keyframeLocation,l=e._keyframeCount,u=e.rootNode,{camera:m,context:p,pixelRatio:y}=t,{positionWC:f,frustum:x}=m,C=p.drawingBufferHeight/y/x.sseDenominator;function V(R,E,I){let F=Math.min(Math.abs(E-R),Math.abs(E-I)),N=Math.max(R,l-I-1,1),Y=Math.pow(1-F/N,4),k=Math.exp(-e._binaryTreeKeyframeWeighting[E]);return W.lerp(k,Y,.15+.85*Y)}function L(R,E){if(R.computeScreenSpaceError(f,C),E=R.visibility(t,E),E===Qr.MASK_OUTSIDE)return;R.visitedFrameNumber=n;let I=W.clamp(Math.floor(c),0,l-2),F=I+1;if(l===1)R.createKeyframeNode(0);else if(R.keyframeNodes.length!==l)for(let U=0;U<l;U++)R.createKeyframeNode(U);let N=u0t(R.screenSpaceError),Y=!1,k=R.keyframeNodes;for(let U=0;U<k.length;U++){let J=k[U];J.priority=10*N+V(I,J.keyframe,F),J.state!==Qi.LoadState.UNAVAILABLE&&J.state!==Qi.LoadState.FAILED&&J.priority!==-Number.MAX_VALUE&&a.insert(J),J.state===Qi.LoadState.LOADED&&(Y=!0)}if(R.screenSpaceError<s||!Y){R.children=void 0;return}d(R.children)||R.constructChildNodes(o,r);for(let U=0;U<8;U++){let J=R.children[U];L(J,E)}}a.reset(),L(u,Qr.MASK_INDETERMINATE);let Z=e._highPriorityKeyframeNodes,G=0,X;for(;a.length>0;)X=a.removeMaximum(),X.highPriorityFrameNumber=n,Z[G]=X,G++;let P=e._keyframeNodesInMegatexture,v=e.megatextures[0],A=v.occupiedCount;P.length=A,P.sort(function(R,E){return R.highPriorityFrameNumber===E.highPriorityFrameNumber?E.priority-R.priority:E.highPriorityFrameNumber-R.highPriorityFrameNumber});let M=0,b=0;for(let R=0;R<G;R++)if(X=Z[R],!(X.state===Qi.LoadState.LOADED||X.spatialNode===void 0)&&(X.state===Qi.LoadState.UNLOADED&&d0t(e,X),X.state===Qi.LoadState.RECEIVED)){let E=0;if(v.isFull()){E=A-1-M,M++;let I=P[E];I.spatialNode.destroyKeyframeNode(I,e.megatextures)}else E=A+b,b++;X.spatialNode.addKeyframeNodeToMegatextures(X,e.megatextures),P[E]=X}}function h0t(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys(Qi.LoadState).length,a=new Array(s),c=new Array(s),l=0;for(let C=0;C<s;C++){let V=new Array(o);a[C]=V;for(let L=0;L<o;L++)V[L]=0;c[C]=0}function u(C){let V=C.keyframeNodes;for(let L=0;L<V.length;L++){let Z=V[L],G=Z.keyframe,X=Z.state;a[X][G]+=1,c[X]+=1,l++}if(d(C.children))for(let L=0;L<8;L++){let Z=C.children[L];u(Z)}}u(r);let m=`KEYFRAMES: ${a[Qi.LoadState.LOADED]}`,p=`UNLOADED: ${c[Qi.LoadState.UNLOADED]} | RECEIVING: ${c[Qi.LoadState.RECEIVING]} | RECEIVED: ${c[Qi.LoadState.RECEIVED]} | LOADED: ${c[Qi.LoadState.LOADED]} | FAILED: ${c[Qi.LoadState.FAILED]} | UNAVAILABLE: ${c[Qi.LoadState.UNAVAILABLE]} | TOTAL: ${l}`,y=Math.round(t*100)/100,f=Math.round(n*100)/100,x=Math.round(i*100)/100,_=`LOAD: ${y} | OCT: ${f} | ALL: ${x}`;console.log(`${m} || ${p} || ${_}`)}var rD={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function f0t(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,l=[],u=[];function m(y,f,x,_,C){let V=!1;if(d(y.children))for(let L=0;L<8;L++){let Z=y.children[L];Z.computeSurroundingRenderableKeyframeNodes(o),Z.isRenderable(r)&&(V=!0)}if(V){l[C]=rD.INTERNAL<<16|f,l[x]=_,a++,_=f,C=_*9+1;for(let L=0;L<8;L++){let Z=y.children[L];f=a,x=f*9+0,m(Z,f,x,_,C+L)}}else{if(s){let L=c*5,Z=y.renderableKeyframeNodePrevious,G=y.level-Z.spatialNode.level,X=Z.spatialNode.parent,P=d(X)?X.renderableKeyframeNodePrevious:Z,v=p0t(y,i,n),A=G,M=1,b=Z.megatextureIndex,R=P.megatextureIndex;u[L+0]=v,u[L+1]=A,u[L+2]=M,u[L+3]=b,u[L+4]=R,l[C]=rD.LEAF<<16|c}else{let L=y.renderableKeyframeNodePrevious,G=y.level-L.spatialNode.level===0?rD.LEAF:rD.PACKED_LEAF_FROM_PARENT;l[C]=G<<16|L.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&m(p,0,0,0,0),b0t(l,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&y0t(u,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function p0t(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return W.clamp(s,0,1)}function b0t(e,t,n,i){let o=st.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let m=0;m<e.length;m++){let p=e[m],y=m*o;for(let f=0;f<o;f++)c[y+f]=p>>>f*8&255}let u={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(u)}function y0t(e,t,n,i){let o=st.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),l=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let y=e[p*r+0],f=e[p*r+1],x=e[p*r+2],_=e[p*r+3],C=e[p*r+4],V=W.clamp(Math.floor(65536*y),0,65535);l[p*8+0]=V>>>0&255,l[p*8+1]=V>>>8&255,l[p*8+2]=f&255,l[p*8+3]=x&255,l[p*8+4]=_>>>0&255,l[p*8+5]=_>>>8&255,l[p*8+6]=C>>>0&255,l[p*8+7]=C>>>8&255}let m={source:{arrayBufferView:l,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(m)}ng.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],l=Ot.getComponentCount(a);o+=CV.getApproximateTextureMemoryByteLength(e,t,l,c)}return o};var WV=ng;var c3i=T(S(),1);var NBi=T(S(),1),g0t={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},PV=Object.freeze(g0t);var qBi=T(S(),1);var kBi=T(S(),1);function x0t(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var Qw=x0t;function vV(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}vV.prototype.getTexture=function(e){return this._textures[e]};function _0t(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];d(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}vV.prototype.loadTexture2D=function(e,t){d(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):_0t(this,e,t)};function T0t(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?sD(o,r,n):S0t(o,r,n),a=e._textures[i];d(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function sD(e,t,n){let{typedArray:i,sampler:o}=e,r=d(i)?axe(e,n):new Wt({context:n,source:t,sampler:o});return sxe(o)&&r.generateMipmap(),r}function S0t(e,t,n){let{typedArray:i,sampler:o}=e,r=sxe(o),s=o.wrapS===Gn.REPEAT||o.wrapS===Gn.MIRRORED_REPEAT||o.wrapT===Gn.REPEAT||o.wrapT===Gn.MIRRORED_REPEAT,{width:a,height:c}=d(i)?e:t,l=[a,c].every(W.isPowerOfTwo);if((r||s)&&!l)if(d(i)){if(e.pixelDatatype===Je.UNSIGNED_BYTE){let m=Qw(i,a,c),p=Wb(m);return sD({sampler:o},p,n)}}else{let m=Wb(t);return sD(e,m,n)}else return sD(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),axe(e,n)}function sxe(e){return[cn.NEAREST_MIPMAP_NEAREST,cn.NEAREST_MIPMAP_LINEAR,cn.LINEAR_MIPMAP_NEAREST,cn.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function axe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Wt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}vV.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];T0t(this,o,t)}n.length=0};vV.prototype.isDestroyed=function(){return!1};vV.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var jw=vV;function qw(e){e=g(e,g.EMPTY_OBJECT),this.mode=g(e.mode,Up.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=g(e.uniforms,g.EMPTY_OBJECT),this.varyings=g(e.varyings,g.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=g(e.translucencyMode,Yb.INHERIT),this._textureManager=new jw,this._defaultTexture=void 0,this.uniformMap=C0t(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},R0t(this),Z0t(this)}function C0t(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===PV.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=V0t(e,i)):n[i]=L0t(e,i)}return n}function V0t(e,t){return function(){return g(e._textureManager.getTexture(t),e._defaultTexture)}}function L0t(e,t){return function(){return e.uniforms[t].value}}function IT(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function R0t(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;d(r)&&(o=e.usedVariablesVertex.attributeSet,IT(r,t,o),o=e.usedVariablesVertex.featureIdSet,IT(r,n,o),o=e.usedVariablesVertex.metadataSet,IT(r,i,o));let s=e.fragmentShaderText;if(d(s)){o=e.usedVariablesFragment.attributeSet,IT(s,t,o),o=e.usedVariablesFragment.featureIdSet,IT(s,n,o),o=e.usedVariablesFragment.metadataSet,IT(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;IT(s,a,c)}}function cxe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function hc(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${cxe(t)} is not available in the ${i} shader. Did you mean ${cxe(n)} instead?`;throw new fe(o)}}function Z0t(e){let t=e.usedVariablesVertex.attributeSet;hc(t,"position","positionMC","vertex"),hc(t,"normal","normalMC","vertex"),hc(t,"tangent","tangentMC","vertex"),hc(t,"bitangent","bitangentMC","vertex"),hc(t,"positionWC","positionMC","vertex"),hc(t,"positionEC","positionMC","vertex"),hc(t,"normalEC","normalMC","vertex"),hc(t,"tangentEC","tangentMC","vertex"),hc(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;hc(n,"position","positionEC","fragment"),hc(n,"normal","normalEC","fragment"),hc(n,"tangent","tangentEC","fragment"),hc(n,"bitangent","bitangentEC","fragment"),hc(n,"normalMC","normalEC","fragment"),hc(n,"tangentMC","tangentEC","fragment"),hc(n,"bitangentMC","bitangentEC","fragment")}qw.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===PV.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):d(t.clone)?n.value=t.clone(n.value):n.value=t};qw.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};qw.prototype.isDestroyed=function(){return!1};qw.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var WT=qw;function Nf(e){e=g(e,g.EMPTY_OBJECT),this._ready=!1,this._provider=g(e.provider,Nf.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new h,this._paddingAfter=new h,this._minBounds=new h,this._minBoundsOld=new h,this._maxBounds=new h,this._maxBoundsOld=new h,this._minClippingBounds=new h,this._minClippingBoundsOld=new h,this._maxClippingBounds=new h,this._maxClippingBoundsOld=new h,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=w.clone(g(e.modelMatrix,w.IDENTITY)),this._compoundModelMatrix=new w,this._compoundModelMatrixOld=new w,this._customShader=g(e.customShader,Nf.DefaultCustomShader),this._customShaderCompilationEvent=new ye,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new w,this._transformPositionUvToWorld=new w,this._transformDirectionWorldToLocal=new $,this._transformNormalLocalToWorld=new $,this._stepSizeUv=1,this._jitter=!0,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Pm,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new D,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new D,megatextureTextures:[],megatextureSliceDimensions:new D,megatextureTileDimensions:new D,megatextureVoxelSizeUv:new D,megatextureSliceSizeUv:new D,megatextureTileSizeUv:new D,dimensions:new h,paddingBefore:new h,paddingAfter:new h,transformPositionViewToUv:new w,transformPositionUvToView:new w,transformDirectionViewToLocal:new $,transformNormalLocalToWorld:new $,cameraPositionUv:new h,ndcSpaceAxisAlignedBoundingBox:new se,clippingPlanesTexture:void 0,clippingPlanesMatrix:new w,stepSize:0,pickColor:new B},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;G0t(this,i)}function G0t(e,t){let{shape:n,minBounds:i=Oi.getMinBounds(n),maxBounds:o=Oi.getMaxBounds(n)}=t;e.minBounds=i,e.maxBounds=o,e.minClippingBounds=Oi.getMinBounds(n),e.maxClippingBounds=Oi.getMaxBounds(n),dxe(e,t);let r=Oi.getShapeConstructor(n);e._shape=new r,e._shapeVisible=uxe(e,e._shape,t)}Object.defineProperties(Nf.prototype,{ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this.shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=w.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},jitter:{get:function(){return this._jitter},set:function(e){this._jitter!==e&&(this._jitter=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=W.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ss.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];d(e)?this._customShader=e:this._customShader=Nf.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var E0t=new h,X0t=new se,I0t=new se,W0t=new h,P0t=new h,v0t=new $,F0t=new $,w0t=new w,A0t=new w,M0t=new w,N0t=w.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new w),U0t=w.fromRotationTranslation($.fromUniformScale(2,new $),new h(-1,-1,-1),new w);Nf.prototype.update=function(e){let t=this._provider;this._customShader.update(e);let n=e.context;if(!this._ready){k0t(this,t,n),e.afterRender.push(()=>(this._ready=!0,!0));return}let i=dxe(this,t),o=this._shape;if(i&&(this._shapeVisible=uxe(this,o,t),Y0t(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=O0t(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&$0t(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),K0t(this,e)&&(this._shaderDirty=!0);let l=s.leafNodeTexture,u=this._uniforms;d(l)&&(u.octreeLeafNodeTexture=s.leafNodeTexture,u.octreeLeafNodeTexelSizeUv=D.clone(s.leafNodeTexelSizeUv,u.octreeLeafNodeTexelSizeUv),u.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(Jw(this,n),this._shaderDirty=!1);let m=n.uniformState.viewProjection,p=o.orientedBoundingBox,y=J0t(p,m,I0t);if(y.x===1||y.y===1||y.z===-1||y.w===-1)return;u.ndcSpaceAxisAlignedBoundingBox=se.clone(y,u.ndcSpaceAxisAlignedBoundingBox);let x=n.uniformState.inverseView;u.transformPositionViewToUv=w.multiplyTransformation(this._transformPositionWorldToUv,x,u.transformPositionViewToUv);let _=n.uniformState.view;u.transformPositionUvToView=w.multiplyTransformation(_,this._transformPositionUvToWorld,u.transformPositionUvToView);let C=n.uniformState.inverseViewRotation;u.transformDirectionViewToLocal=$.multiply(this._transformDirectionWorldToLocal,C,u.transformDirectionViewToLocal),u.transformNormalLocalToWorld=$.clone(this._transformNormalLocalToWorld,u.transformNormalLocalToWorld);let V=e.camera.positionWC;u.cameraPositionUv=w.multiplyByPoint(this._transformPositionWorldToUv,V,u.cameraPositionUv),u.stepSize=this._stepSizeUv*this._stepSizeMultiplier;let L=e.passes.pick?this._drawCommandPick:this._drawCommand;L.boundingVolume=o.boundingSphere,e.commandList.push(L)};function k0t(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=B.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=Oe(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=h.clone(t.dimensions,i.dimensions),e._paddingBefore=h.clone(g(t.paddingBefore,h.ZERO),e._paddingBefore),i.paddingBefore=h.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=h.clone(g(t.paddingAfter,h.ZERO),e._paddingBefore),i.paddingAfter=h.clone(e._paddingAfter,i.paddingAfter),e._traversal=D0t(e,t,n),B0t(e._traversal,i)}function dxe(e,t){let n=g(t.shapeTransform,w.IDENTITY),i=g(t.globalTransform,w.IDENTITY);return w.multiplyTransformation(i,e._modelMatrix,e._compoundModelMatrix),w.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),$w(e,"_compoundModelMatrix","_compoundModelMatrixOld")+$w(e,"_minBounds","_minBoundsOld")+$w(e,"_maxBounds","_maxBoundsOld")+$w(e,"_minClippingBounds","_minClippingBoundsOld")+$w(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function $w(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function uxe(e,t,n){if(!t.update(e._compoundModelMatrix,e.minBounds,e.maxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=w.inverse(o,w0t),s=w.getRotation(o,v0t),a=w.getScale(o,W0t),c=h.maximumComponent(a),l=h.divideByScalar(a,c,P0t),u=$.multiplyByScale(s,l,F0t),m=n.dimensions;return e._stepSizeUv=t.computeApproximateStepSize(m),e._transformPositionWorldToUv=w.multiplyTransformation(N0t,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=w.multiplyTransformation(o,U0t,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=w.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=$.inverseTranspose(u,e._transformNormalLocalToWorld),!0}function D0t(e,t,n){let i=h.clone(t.dimensions,E0t);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=d(o)?WV.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=g(t.keyframeCount,1);return new WV(e,n,i,t.types,t.componentTypes,s,r)}function B0t(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=D.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=D.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=D.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=D.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=D.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=D.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function Y0t(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=Oe(n,!0)),i}function O0t(e,t){if(!d(e)||!d(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=te.secondsDifference(i.stop,i.start),a=te.secondsDifference(n,i.start)/r;return o+a}function K0t(e,t){let n=e.clippingPlanes;if(!d(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=w.transpose(w.multiplyTransformation(w.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}Nf.prototype.isDestroyed=function(){return!1};Nf.prototype.destroy=function(){let e=this._drawCommand;d(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return d(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var lxe=new Array(new se(-1,-1,-1,1),new se(1,-1,-1,1),new se(-1,1,-1,1),new se(1,1,-1,1),new se(-1,-1,1,1),new se(1,-1,1,1),new se(-1,1,1,1),new se(1,1,1,1)),H0t=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),z0t=new Array(new se,new se,new se,new se,new se,new se,new se,new se);function J0t(e,t,n){let i=w.fromRotationTranslation(e.halfAxes,e.center,A0t),o=w.multiply(t,i,M0t),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,l,u=z0t,m=lxe.length;for(l=0;l<m;l++)w.multiplyByVector(o,lxe[l],u[l]);for(l=0;l<m;l++){let p=u[l];if(p.z>=-p.w){let y=p.x/p.w,f=p.y/p.w;r=Math.min(r,y),s=Math.max(s,y),a=Math.min(a,f),c=Math.max(c,f)}else for(let y=0;y<3;y++){let f=H0t[l*3+y],x=u[f];if(x.z>=-x.w){let _=p.z+p.w,C=x.z+x.w,V=_/(_-C),L=se.lerp(p,x,V,X0t),Z=L.x/L.w,G=L.y/L.w;r=Math.min(r,Z),s=Math.max(s,Z),a=Math.min(a,G),c=Math.max(c,G)}}}return r=W.clamp(r,-1,1),a=W.clamp(a,-1,1),s=W.clamp(s,-1,1),c=W.clamp(c,-1,1),n=se.fromElements(r,a,s,c,n),n}var oj=3e7,Q0t=new h(oj,0,0),j0t=new h(0,oj,0),q0t=new h(0,0,oj);function $0t(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,l,u,m){i.add({positions:[c,l],width:m,material:ki.fromType("Color",{color:u})})}function r(c,l,u){let m=c.computeCorners();o(m[0],m[1],l,u),o(m[2],m[3],l,u),o(m[4],m[5],l,u),o(m[6],m[7],l,u),o(m[0],m[2],l,u),o(m[4],m[6],l,u),o(m[1],m[3],l,u),o(m[5],m[7],l,u),o(m[0],m[4],l,u),o(m[2],m[6],l,u),o(m[1],m[5],l,u),o(m[3],m[7],l,u)}function s(c){if(!n.isRenderable(c))return;let l=c.level,m=Math.max(1,5/Math.pow(2,l)),y=[B.RED,B.LIME,B.BLUE][l%3];if(r(c.orientedBoundingBox,y,m),d(c.children))for(let f=0;f<8;f++)s(c.children[f])}r(e._shape.orientedBoundingBox,B.WHITE,5),s(n.rootNode);let a=10;o(h.ZERO,Q0t,B.RED,a),o(h.ZERO,j0t,B.LIME,a),o(h.ZERO,q0t,B.BLUE,a),i.update(t)}Nf.DefaultCustomShader=new WT({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = vec3(1.0); + material.alpha = 1.0; +}`});function mxe(){this.ready=!0,this.shape=Oi.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[Ot.SCALAR],this.componentTypes=[tn.FLOAT32],this.maximumTileCount=1}mxe.prototype.requestData=function(e){if(!((d(e)?g(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};Nf.DefaultProvider=new mxe;var FV=Nf;var F3i=T(S(),1);function rj(){fe.throwInstantiationError()}Object.defineProperties(rj.prototype,{globalTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shape:{get:fe.throwInstantiationError},minBounds:{get:fe.throwInstantiationError},maxBounds:{get:fe.throwInstantiationError},dimensions:{get:fe.throwInstantiationError},paddingBefore:{get:fe.throwInstantiationError},paddingAfter:{get:fe.throwInstantiationError},names:{get:fe.throwInstantiationError},types:{get:fe.throwInstantiationError},componentTypes:{get:fe.throwInstantiationError},minimumValues:{get:fe.throwInstantiationError},maximumValues:{get:fe.throwInstantiationError},maximumTileCount:{get:fe.throwInstantiationError},keyframeCount:{get:fe.throwInstantiationError},timeIntervalCollection:{get:fe.throwInstantiationError}});rj.prototype.requestData=fe.throwInstantiationError;var sj=rj;var M3i=T(S(),1);function PT(){fe.throwInstantiationError()}Object.defineProperties(PT.prototype,{orientedBoundingBox:{get:fe.throwInstantiationError},boundingSphere:{get:fe.throwInstantiationError},boundTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shaderUniforms:{get:fe.throwInstantiationError},shaderDefines:{get:fe.throwInstantiationError},shaderMaximumIntersectionsLength:{get:fe.throwInstantiationError}});PT.prototype.update=fe.throwInstantiationError;PT.prototype.computeOrientedBoundingBoxForTile=fe.throwInstantiationError;PT.prototype.computeApproximateStepSize=fe.throwInstantiationError;PT.DefaultMinBounds=fe.throwInstantiationError;PT.DefaultMaxBounds=fe.throwInstantiationError;var aj=PT;var Y3i=T(S(),1);async function cj(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ie.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!d(n))return r;let a=n.availability;if(!d(a)||t.mode===ie.SCENE2D)return r;let c=[de.center(e),de.southeast(e),de.southwest(e),de.northeast(e),de.northwest(e)],l=await cj._sampleTerrainMostDetailed(n,c),u=!1,m=l.reduce(function(y,f){return d(f.height)?(u=!0,Math.max(f.height,y)):y},-Number.MAX_VALUE),p=r;return u&&(p.height+=m),p}cj._sampleTerrainMostDetailed=S0;var vT=cj;var sYi=T(S(),1);var ebt=new B,tbt=new B,nbt=new B,ibt=new B,hxe=new se,e9=new Uint8Array(4);function fxe(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return B.lerp(t.color,n.color,o,i)}function aD(e,t){return{height:e,color:B.clone(t)}}function pxe(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?B.equals(t.color,i[n-1].color):!1,a=r?B.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?B.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function obt(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let y=s[n],f=W.clamp(y.height,kl._minimumHeight,kl._maximumHeight),x=B.clone(y.color,ebt);x.red*=x.alpha,x.green*=x.alpha,x.blue*=x.alpha,c.push(aD(f,x))}let l=!0,u=!0;for(n=0;n<a-1;n++){let y=c[n+0],f=c[n+1];l=l&&y.height<=f.height,u=u&&y.height>=f.height}u?c=c.reverse():l||F0(c,function(y,f){return W.sign(y.height-f.height)});let m=g(r.extendDownwards,!1),p=g(r.extendUpwards,!1);c.length===1&&!m&&!p&&(m=!0,p=!0),m&&c.splice(0,0,aD(kl._minimumHeight,c[0].color)),p&&c.splice(c.length,0,aD(kl._maximumHeight,c[c.length-1].color)),c=pxe(c),i.push(c)}return i}function rbt(e){let t=obt(e),n=[],i=[],o;function r(l,u){n.push(aD(l,u))}function s(l,u,m){let p=B.multiplyByScalar(m,1-u.alpha,ibt);p=B.add(p,u,p),r(l,p)}let a=t.length;for(o=0;o<a;o++){let l=t[o],u=0,m=0;i=n,n=[];let p=l.length,y=i.length;for(;u<p||m<y;){let f=u<p?l[u]:void 0,x=u>0?l[u-1]:void 0,_=u<p-1?l[u+1]:void 0,C=m<y?i[m]:void 0,V=m>0?i[m-1]:void 0,L=m<y-1?i[m+1]:void 0;if(d(f)&&d(C)&&f.height===C.height){let Z=d(L)&&C.height===L.height,G=!d(V),X=!d(L),P=d(_)&&f.height===_.height,v=!d(x),A=!d(_);Z?P?(s(f.height,f.color,C.color),s(f.height,_.color,L.color)):v?(r(f.height,C.color),s(f.height,f.color,L.color)):A?(s(f.height,f.color,C.color),r(f.height,L.color)):(s(f.height,f.color,C.color),s(f.height,f.color,L.color)):G?P?(r(f.height,f.color),s(f.height,_.color,C.color)):A?(r(f.height,f.color),r(f.height,C.color)):(v||r(f.height,f.color),s(f.height,f.color,C.color)):X?P?(s(f.height,f.color,C.color),r(f.height,_.color)):v?(r(f.height,C.color),r(f.height,f.color)):A?s(f.height,f.color,C.color):(s(f.height,f.color,C.color),r(f.height,f.color)):P?(s(f.height,f.color,C.color),s(f.height,_.color,C.color)):v?(r(f.height,C.color),s(f.height,f.color,C.color)):A?(s(f.height,f.color,C.color),r(f.height,C.color)):s(f.height,f.color,C.color),u+=P?2:1,m+=Z?2:1}else if(d(f)&&d(C)&&d(V)&&f.height<C.height){let Z=fxe(f.height,V,C,nbt);d(x)?d(_)?s(f.height,f.color,Z):(s(f.height,f.color,Z),r(f.height,Z)):(r(f.height,Z),s(f.height,f.color,Z)),u++}else if(d(C)&&d(f)&&d(x)&&C.height<f.height){let Z=fxe(C.height,x,f,tbt);d(V)?d(L)?s(C.height,Z,C.color):(s(C.height,Z,C.color),r(C.height,Z)):(r(C.height,Z),s(C.height,Z,C.color)),m++}else d(f)&&(!d(C)||f.height<C.height)?(d(C)&&!d(V)&&!d(_)?(r(f.height,f.color),r(f.height,kl._emptyColor),r(C.height,kl._emptyColor)):(!d(C)&&d(V)&&!d(x)&&(r(V.height,kl._emptyColor),r(f.height,kl._emptyColor)),r(f.height,f.color)),u++):d(C)&&(!d(f)||C.height<f.height)&&(r(C.height,C.color),m++)}}return pxe(n)}function kl(e){let{scene:t,layers:n}=g(e,g.EMPTY_OBJECT),{context:i}=t,o=rbt(n),r=o.length,s,a,c;if(!kl._useFloatTexture(i)){a=Je.UNSIGNED_BYTE,c=st.RGBA,s=new Uint8Array(r*4);for(let y=0;y<r;y++)se.packFloat(o[y].height,hxe),se.pack(hxe,s,y*4)}else{a=Je.FLOAT,c=i.webgl2?st.RED:st.LUMINANCE,s=new Float32Array(r);for(let y=0;y<r;y++)s[y]=o[y].height}let u=Wt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:cn.NEAREST,magnificationFilter:Ti.NEAREST})}),m=new Uint8Array(r*4);for(let y=0;y<r;y++)o[y].color.toBytes(e9),m[y*4+0]=e9[0],m[y*4+1]=e9[1],m[y*4+2]=e9[2],m[y*4+3]=e9[3];let p=Wt.create({context:i,pixelFormat:st.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:m,width:r,height:1},sampler:new dn({wrapS:Gn.CLAMP_TO_EDGE,wrapT:Gn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:Ti.LINEAR})});return ki.fromType("ElevationBand",{heights:u,colors:p})}kl._useFloatTexture=function(e){return e.floatingPointTexture};kl._maximumHeight=5906376425472;kl._minimumHeight=-5906376425472;kl._emptyColor=new B(0,0,0,0);var lj=kl;var gYi=T(S(),1);var dYi=T(S(),1);var cD={};cD.defaultApiKey=void 0;cD.mapTilesApiEndpoint=new Ee({url:"https://tile.googleapis.com/v1/"});cD.getDefaultCredit=function(){return new St('<img src="https://assets.ion-development.cesium.com/google-credit.png" alt="Google">',!0)};var FT=cD;async function sbt(e,t){if(t=g(t,{}),t.cacheBytes=g(t.cacheBytes,1536*1024*1024),t.maximumCacheOverflowBytes=g(t.maximumCacheOverflowBytes,1024*1024*1024),e=g(e,FT.defaultApiKey),!d(e))return abt(t);let n,i=FT.getDefaultCredit();d(i)&&(n=[i]);let o=new Ee({url:`${FT.mapTilesApiEndpoint}3dtiles/root.json`,queryParameters:{key:e},credits:n});return zs.fromUrl(o,t)}var bxe={};async function abt(e){let i=bxe[2275207];d(i)||(i=$l.fromAssetId(2275207),bxe[2275207]=i);let o=await i;return zs.fromUrl(o,e)}var dj=sbt;var LYi=T(S(),1);async function cbt(e){let t=await zs.fromIonAssetId(96188,e);e=g(e,g.EMPTY_OBJECT);let n=e.style;if(!d(n)){let i=g(e.defaultColor,B.WHITE).toCssColorString();n=new bT({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var uj=cbt;var FYi=T(S(),1);function lbt(e){e=g(e,g.EMPTY_OBJECT);let t=[],n=e.geometry;(!d(n.attributes)||!d(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=w.clone(g(e.modelMatrix,w.IDENTITY)),r=g(e.length,1e4);if(d(i.normal)&&t.push(new _t({geometry:An.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new Ut(1,0,0,1)},modelMatrix:o})),d(i.tangent)&&t.push(new _t({geometry:An.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new Ut(0,1,0,1)},modelMatrix:o})),d(i.bitangent)&&t.push(new _t({geometry:An.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new Ut(0,0,1,1)},modelMatrix:o})),t.length>0)return new Zn({asynchronous:!1,geometryInstances:t,appearance:new sn({flat:!0,translucent:!1})})}var mj=lbt;var nOi=T(S(),1);var dbt=15;function yxe(e){this.ellipsoid=g(e.ellipsoid,re.WGS84),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}yxe.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure};function ubt(e,t){let n=t.copyrightText;d(n)&&(e.credit=new St(n));let i=t.spatialReference,o=g(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=de.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Di(s);else if(o===3857){let l=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>l&&(t.extent.xmax=l),t.extent.ymax>l&&(t.extent.ymax=l),t.extent.xmin<-l&&(t.extent.xmin=-l),t.extent.ymin<-l&&(t.extent.ymin=-l),s.rectangleSouthwestInMeters=new D(r.xmin,r.ymin),s.rectangleNortheastInMeters=new D(r.xmax,r.ymax),e.tilingScheme=new kr(s)}else throw new me("Invalid spatial reference");let a=t.tileInfo;if(!d(a))throw new me("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?wu.LERC:wu.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new xh(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new xh(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=Ur.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),d(t.minValues)&&d(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function mbt(e,t,n){try{let i=await t.fetchJson();ubt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw Vo.reportError(void 0,n,d(n)?n._errorEvent:void 0,o),i}}function ig(e){e=g(e,g.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0,this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._errorEvent=new ye}Object.defineProperties(ig.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});ig.fromUrl=async function(e,t){t=g(t,g.EMPTY_OBJECT),e=await Promise.resolve(e);let n=Ee.createIfNeeded(e);n.appendForwardSlash(),d(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new yxe(t);await mbt(o,i);let r=new ig(t);return o.build(r),r._resource=n,r};ig.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!d(hj(this,n+1,e*2,t*2))){let m=gxe(this,n+1,e*2,t*2);s=m.promise,a=m.request}let c=o.fetchArrayBuffer();if(!d(c)||!d(s))return;let l=this,u=this._tilesAvailable;return Promise.all([c,s]).then(function(m){return new Sa({buffer:m[0],width:l._width,height:l._height,childTileMask:r?u.computeChildMaskForTile(n,e,t):dbt,structure:l._terrainDataStructure,encoding:l._encoding})}).catch(function(m){return d(a)&&a.state===$n.CANCELLED?(i.cancel(),i.deferred.promise.finally(function(){return i.state=$n.CANCELLED,Promise.reject(m)})):Promise.reject(m)})};function hj(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}ig.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};ig.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=hj(this,n,e,t);if(d(i))return i;gxe(this,n,e,t)};ig.prototype.loadTileDataAvailability=function(e,t,n){};function hbt(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},l=new D(e.x+1,e.y+1),u=!1,m=!1;for(;!(u&&m);){let p=l.x,y=m?l.y+1:l.y;if(!u){for(let f=e.y;f<y;++f)if(i[f*t+l.x]!==s){u=!0;break}u?(a.push(new D(l.x,e.y)),--l.x,--p,c.endX=l.x):l.x===o?(c.endX=l.x,u=!0):++l.x}if(!m){let f=l.y*t;for(let x=e.x;x<=p;++x)if(i[f+x]!==s){m=!0;break}m?(a.push(new D(e.x,l.y)),--l.y,c.endY=l.y):l.y===r?(c.endY=l.y,m=!0):++l.y}}return{endingIndices:a,range:c,value:s}}function fbt(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new D(0,0)];for(;a.length>0;){let c=a.pop(),l=hbt(c,n,i,o);if(l.value===1){let m=l.range;m.startX+=e,m.endX+=e,m.startY+=t,m.endY+=t,r.push(m)}let u=l.endingIndices;u.length>0&&(a=a.concat(u))}return r}function gxe(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(d(c[a]))return c[a];let l=new Uo({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN}),m=e._resource.getDerivedResource({url:a,request:l}).fetchJson();return d(m)?(m=m.then(function(p){let y=fbt(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let f=e._tilesAvailable;for(let x=0;x<y.length;++x){let _=y[x];f.addAvailableTileRange(t,_.startX,_.startY,_.endX,_.endY)}return hj(e,t,n,i)}),c[a]={promise:m,request:l},m=m.finally(function(p){return delete c[a],p}),{promise:m,request:l}):{}}var fj=ig;var lOi=T(S(),1);var xxe="https://dev.virtualearth.net/REST/v1/Locations";function pj(e){e=g(e,g.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};d(e.culture)&&(n.culture=e.culture),this._resource=new Ee({url:xxe,queryParameters:n}),this._credit=new St('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(pj.prototype,{url:{get:function(){return xxe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});pj.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],l=r[3];return{displayName:o.name,destination:de.fromDegrees(a,s,l,c)}})})};var bj=pj;var mOi=T(S(),1);function yj(){}Object.defineProperties(yj.prototype,{credit:{get:function(){}}});yj.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:h.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var gj=yj;var TOi=T(S(),1);var pbt=new se,_xe=new h,wV=new h;function bbt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){d(c)||(c=new h);let l=(a-i)*o;return h.lerp(r,s,l,c)}}return function(i,o){d(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=pbt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,l,u,m,p;return r===0?(c=t[0],l=t[1],u=e.firstTangent,m=h.subtract(t[2],c,_xe),h.multiplyByScalar(m,.5,m),p=w.multiplyByVector(Ub.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],l=t[r+1],m=e.lastTangent,u=h.subtract(l,t[r-1],_xe),h.multiplyByScalar(u,.5,u),p=w.multiplyByVector(Ub.hermiteCoefficientMatrix,a,a)):(c=t[r-1],l=t[r],u=t[r+1],m=t[r+2],p=w.multiplyByVector(og.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(l,p.y,wV),h.add(o,wV,o),h.multiplyByScalar(u,p.z,wV),h.add(o,wV,o),h.multiplyByScalar(m,p.w,wV),h.add(o,wV,o)}}var ybt=new h,gbt=new h;function og(e){e=g(e,g.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(d(i)||(i=ybt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!d(o))){let r=t.length-1;o=gbt,h.multiplyByScalar(t[r-1],2,o),h.subtract(t[r],o,o),h.add(o,t[r-2],o),h.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(o),this._evaluateFunction=bbt(this),this._lastTimeIndex=0}Object.defineProperties(og.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});og.catmullRomCoefficientMatrix=new w(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);og.prototype.findTimeInterval=ro.prototype.findTimeInterval;og.prototype.wrapTime=ro.prototype.wrapTime;og.prototype.clampTime=ro.prototype.clampTime;og.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var xj=og;var EOi=T(S(),1);function z0(e){e=g(e,g.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new Uc(n),this._workerName="createCircleGeometry"}z0.packedLength=Uc.packedLength;z0.pack=function(e,t,n){return Uc.pack(e._ellipseGeometry,t,n)};var xbt=new Uc({center:new h,semiMajorAxis:1,semiMinorAxis:1}),fc={center:new h,radius:void 0,ellipsoid:re.clone(re.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new We,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};z0.unpack=function(e,t,n){let i=Uc.unpack(e,t,xbt);return fc.center=h.clone(i._center,fc.center),fc.ellipsoid=re.clone(i._ellipsoid,fc.ellipsoid),fc.height=i._height,fc.extrudedHeight=i._extrudedHeight,fc.granularity=i._granularity,fc.vertexFormat=We.clone(i._vertexFormat,fc.vertexFormat),fc.stRotation=i._stRotation,fc.shadowVolume=i._shadowVolume,d(n)?(fc.semiMajorAxis=i._semiMajorAxis,fc.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Uc(fc),n):(fc.radius=i._semiMajorAxis,new z0(fc))};z0.createGeometry=function(e){return Uc.createGeometry(e._ellipseGeometry)};z0.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new z0({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:We.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(z0.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var _j=z0;var wOi=T(S(),1);function AV(e){e=g(e,g.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new hd(n),this._workerName="createCircleOutlineGeometry"}AV.packedLength=hd.packedLength;AV.pack=function(e,t,n){return hd.pack(e._ellipseGeometry,t,n)};var _bt=new hd({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Ud={center:new h,radius:void 0,ellipsoid:re.clone(re.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};AV.unpack=function(e,t,n){let i=hd.unpack(e,t,_bt);return Ud.center=h.clone(i._center,Ud.center),Ud.ellipsoid=re.clone(i._ellipsoid,Ud.ellipsoid),Ud.height=i._height,Ud.extrudedHeight=i._extrudedHeight,Ud.granularity=i._granularity,Ud.numberOfVerticalLines=i._numberOfVerticalLines,d(n)?(Ud.semiMajorAxis=i._semiMajorAxis,Ud.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new hd(Ud),n):(Ud.radius=i._semiMajorAxis,new AV(Ud))};AV.createGeometry=function(e){return hd.createGeometry(e._ellipseGeometry)};var Tj=AV;var KOi=T(S(),1);function MV(e){e=g(e,g.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,d(this._tilingScheme)||(this._tilingScheme=new Di({ellipsoid:g(e.ellipsoid,re.WGS84)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=Ur.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ye;let n=e.credit;typeof n=="string"&&(n=new St(n)),this._credit=n}Object.defineProperties(MV.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});MV.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!d(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new Sa({buffer:c,width:r,height:s})})};MV.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};MV.prototype.getTileDataAvailable=function(e,t,n){};MV.prototype.loadTileDataAvailability=function(e,t,n){};var Sj=MV;var zOi=T(S(),1);function Txe(e){this.proxy=e}Txe.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var Cj=Txe;var QOi=T(S(),1),Tbt={SEARCH:0,AUTOCOMPLETE:1},rg=Object.freeze(Tbt);var tKi=T(S(),1);function lD(){fe.throwInstantiationError()}Object.defineProperties(lD.prototype,{credit:{get:fe.throwInstantiationError}});lD.getCreditsFromResult=function(e){if(d(e.attributions))return e.attributions.map(St.getIonCredit)};lD.prototype.geocode=fe.throwInstantiationError;var NV=lD;var oKi=T(S(),1);function Sxe(){fe.throwInstantiationError()}Sxe.createGeometry=function(e){fe.throwInstantiationError()};var Vj=Sxe;var TKi=T(S(),1);function wT(e){e=g(e,g.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=g(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=g(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(wT.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var Lxe="createVerticesFromGoogleEarthEnterpriseBuffer",Sbt=new pi(Lxe),Cbt=new pi(Lxe,sh.maximumAsynchronousTasks),Cxe=new de,Lj=new de;wT.prototype.createMesh=function(e){e=g(e,g.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=g(e.exaggeration,1),s=g(e.exaggerationRelativeHeight,0),a=g(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,Cxe),t.tileXYToRectangle(n,i,o,Lj);let l=c.cartographicToCartesian(de.center(Lj)),m=40075.16/(1<<o);this._skirtHeight=Math.min(m*8,1e3);let y=(a?Cbt:Sbt).scheduleTask({buffer:this._buffer,nativeRectangle:Cxe,rectangle:Lj,relativeToCenter:l,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!d(y))return;let f=this;return y.then(function(x){return f._mesh=new Mu(l,new Float32Array(x.vertices),new Uint16Array(x.indices),x.indexCountWithoutSkirts,x.vertexCountWithoutSkirts,x.minimumHeight,x.maximumHeight,ce.clone(x.boundingSphere3D),h.clone(x.occludeePointInScaledSpace),x.numberOfAttributes,Wn.clone(x.orientedBoundingBox),sc.clone(x.encoding),x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),f._minimumHeight=x.minimumHeight,f._maximumHeight=x.maximumHeight,f._buffer=void 0,f._mesh})};wT.prototype.interpolateHeight=function(e,t,n){let i=W.clamp((t-e.west)/e.width,0,1),o=W.clamp((n-e.south)/e.height,0,1);return d(this._mesh)?Gbt(this,i,o):Ibt(this,i,o,e)};var Vbt=new pi("upsampleQuantizedTerrainMesh",sh.maximumAsynchronousTasks);wT.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!d(this._mesh))return;let c=t*2!==o,l=n*2===r,u=e.ellipsoid,m=e.tileXYToRectangle(o,r,s),p=Vbt.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:l,childRectangle:m,ellipsoid:u});if(!d(p))return;let y=this;return p.then(function(f){let x=new Uint16Array(f.vertices),_=Ue.createTypedArray(x.length/3,f.indices),C=y._skirtHeight;return new LT({quantizedVertices:x,indices:_,minimumHeight:f.minimumHeight,maximumHeight:f.maximumHeight,boundingSphere:ce.clone(f.boundingSphere),orientedBoundingBox:Wn.clone(f.orientedBoundingBox),horizonOcclusionPoint:h.clone(f.horizonOcclusionPoint),westIndices:f.westIndices,southIndices:f.southIndices,eastIndices:f.eastIndices,northIndices:f.northIndices,westSkirtHeight:C,southSkirtHeight:C,eastSkirtHeight:C,northSkirtHeight:C,childTileMask:0,createdByUpsampling:!0,credits:y._credits})})};wT.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};wT.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var Lbt=new D,Rbt=new D,Zbt=new D,Rxe=new h;function Gbt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],u=s[a+1],m=s[a+2],p=r.decodeTextureCoordinates(o,l,Lbt),y=r.decodeTextureCoordinates(o,u,Rbt),f=r.decodeTextureCoordinates(o,m,Zbt),x=H0.computeBarycentricCoordinates(t,n,p.x,p.y,y.x,y.y,f.x,f.y,Rxe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let _=r.decodeHeight(o,l),C=r.decodeHeight(o,u),V=r.decodeHeight(o,m);return x.x*_+x.y*C+x.z*V}}}var Ebt=Uint16Array.BYTES_PER_ELEMENT,Vxe=Uint32Array.BYTES_PER_ELEMENT,Rj=Int32Array.BYTES_PER_ELEMENT,Xbt=Float32Array.BYTES_PER_ELEMENT,Zj=Float64Array.BYTES_PER_ELEMENT;function Ibt(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),l=0;for(let G=0;G<r;++G)l+=c.getUint32(l,!0),l+=Vxe;l+=Vxe,l+=2*Zj;let u=W.toRadians(c.getFloat64(l,!0)*180);l+=Zj;let m=W.toRadians(c.getFloat64(l,!0)*180);l+=Zj;let p=i.width/u/2,y=i.height/m/2,f=c.getInt32(l,!0);l+=Rj;let x=c.getInt32(l,!0)*3;l+=Rj,l+=Rj;let _=new Array(f),C=new Array(f),V=new Array(f),L;for(L=0;L<f;++L)_[L]=s+c.getUint8(l++)*p,C[L]=a+c.getUint8(l++)*y,V[L]=c.getFloat32(l,!0)*6371010,l+=Xbt;let Z=new Array(x);for(L=0;L<x;++L)Z[L]=c.getUint16(l,!0),l+=Ebt;for(L=0;L<x;L+=3){let G=Z[L],X=Z[L+1],P=Z[L+2],v=_[G],A=_[X],M=_[P],b=C[G],R=C[X],E=C[P],I=H0.computeBarycentricCoordinates(t,n,v,b,A,R,M,E,Rxe);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*V[G]+I.y*V[X]+I.z*V[P]}}var UV=wT;var NKi=T(S(),1);var Ju={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},dD=new te;function uD(){this._terrainCache={},this._lastTidy=te.now()}uD.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:te.now()}};uD.prototype.get=function(e){let n=this._terrainCache[e];if(d(n))return delete this._terrainCache[e],n.buffer};uD.prototype.tidy=function(){if(te.now(dD),te.secondsDifference(dD,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];te.secondsDifference(dD,r.timestamp)>10&&delete e[o]}te.clone(dD,this._lastTidy)}};function sg(e){e=g(e,g.EMPTY_OBJECT),this._tilingScheme=new Di({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new de(-W.PI,-W.PI,W.PI,W.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new St(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new uD,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new ye}Object.defineProperties(sg.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});sg.fromMetadata=function(e,t){if(!e.terrainPresent)throw new me(`The server ${e.url} doesn't have terrain`);let n=new sg(t);return n._metadata=e,n};var Wbt=new pi("decodeGoogleEarthEnterprisePacket");function Zxe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===Ju.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());d(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}sg.prototype.requestTileGeometry=function(e,t,n,i){let o=O0.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!d(a))return Promise.reject(new me("Terrain tile doesn't exist"));let c=a.terrainState;d(c)||(c=a.terrainState=Ju.UNKNOWN);let l=r.get(o);if(d(l)){let C=s.providers[a.terrainProvider];return Promise.resolve(new UV({buffer:l,childTileMask:Zxe(o,a,s),credits:d(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===Ju.NONE)return Promise.reject(new me("Terrain tile doesn't exist"))}else return Promise.resolve(new Sa({buffer:new Uint8Array(16*16),width:16,height:16}));let u,m=o,p=-1;switch(c){case Ju.SELF:p=a.terrainVersion;break;case Ju.PARENT:m=m.substring(0,m.length-1),u=s.getTileInformationFromQuadKey(m),p=u.terrainVersion;break;case Ju.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(m=m.substring(0,m.length-1),u=s.getTileInformationFromQuadKey(m),d(u)&&u.hasTerrain()&&(p=u.terrainVersion));break}if(p<0)return Promise.reject(new me("Terrain tile doesn't exist"));let y=this._terrainPromises,f=this._terrainRequests,x,_;if(d(y[m]))x=y[m],_=f[m];else{_=i;let C=Pbt(this,m,p,_).fetchArrayBuffer();if(!d(C))return;x=C.then(function(V){return d(V)?Wbt.scheduleTask({buffer:V,type:"Terrain",key:s.key},[V]).then(function(L){let Z=s.getTileInformationFromQuadKey(m);Z.terrainState=Ju.SELF,r.add(m,L[0]);let G=Z.terrainProvider,X=L.length-1;for(let P=0;P<X;++P){let v=m+P.toString(),A=s.getTileInformationFromQuadKey(v);d(A)&&(r.add(v,L[P+1]),A.terrainState=Ju.PARENT,A.terrainProvider===0&&(A.terrainProvider=G))}}):Promise.reject(new me("Failed to load terrain."))}),y[m]=x,f[m]=_,x=x.finally(function(){delete y[m],delete f[m]})}return x.then(function(){let C=r.get(o);if(d(C)){let V=s.providers[a.terrainProvider];return new UV({buffer:C,childTileMask:Zxe(o,a,s),credits:d(V)?[V]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new me("Failed to load terrain."))}).catch(function(C){return _.state===$n.CANCELLED?(i.state=_.state,Promise.reject(C)):(a.terrainState=Ju.NONE,Promise.reject(C))})};sg.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};sg.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=O0.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(d(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===Ju.NONE)return!1;if((!d(s)||s===Ju.UNKNOWN)&&(r.terrainState=Ju.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!d(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new Uo({throttle:!1,throttleByServer:!0,type:Jr.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};sg.prototype.loadTileDataAvailability=function(e,t,n){};function Pbt(e,t,n,i){return n=d(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var Gj=sg;var DKi=T(S(),1);var t9={};t9.type=void 0;t9.getRequiredDataPoints=fe.throwInstantiationError;t9.interpolateOrderZero=fe.throwInstantiationError;t9.interpolate=fe.throwInstantiationError;var Ej=t9;var iHi=T(S(),1);var JKi=T(S(),1);function Xj(e){this._url=Ee.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(Xj.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});Xj.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===rg.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(d(s))r=de.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=h.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var n9=Xj;function Ij(e){e=g(e,g.EMPTY_OBJECT);let t=g(e.accessToken,bm.defaultAccessToken),n=Ee.createIfNeeded(g(e.server,bm.defaultServer));n.appendForwardSlash();let i=bm.getDefaultTokenCredit(t);d(i)&&e.scene.frameState.creditDisplay.addStaticCredit(St.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});d(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new n9(o)}Object.defineProperties(Ij.prototype,{credit:{get:function(){}}});Ij.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var i9=Ij;var sHi=T(S(),1);function mD(){fe.throwInstantiationError()}Object.defineProperties(mD.prototype,{ellipsoid:{get:fe.throwInstantiationError}});mD.prototype.project=fe.throwInstantiationError;mD.prototype.unproject=fe.throwInstantiationError;var Wj=mD;var uHi=T(S(),1);function kV(e){e=g(e,g.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(kV.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});kV.prototype.findTimeInterval=ro.prototype.findTimeInterval;kV.prototype.wrapTime=ro.prototype.wrapTime;kV.prototype.clampTime=ro.prototype.clampTime;kV.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);d(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var Pj=kV;var _Hi=T(S(),1);function vj(e,t,n){e=Ee.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=g(n,{}),this._credit=new St('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(vj.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});vj.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:xt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(d(r))o=de.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var Fj=vj;var CHi=T(S(),1);var vbt={packedLength:void 0,pack:fe.throwInstantiationError,unpack:fe.throwInstantiationError},wj=vbt;var RHi=T(S(),1);var Fbt={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:fe.throwInstantiationError,unpackInterpolationResult:fe.throwInstantiationError},Aj=Fbt;var EHi=T(S(),1);function Gxe(){fe.throwInstantiationError()}Gxe.prototype.getURL=fe.throwInstantiationError;var Mj=Gxe;var KHi=T(S(),1);function wbt(e,t,n,i,o,r,s){let a=Xi.numberOfPoints(e,t,o),c,l=n.red,u=n.green,m=n.blue,p=n.alpha,y=i.red,f=i.green,x=i.blue,_=i.alpha;if(B.equals(n,i)){for(c=0;c<a;c++)r[s++]=B.floatToByte(l),r[s++]=B.floatToByte(u),r[s++]=B.floatToByte(m),r[s++]=B.floatToByte(p);return s}let C=(y-l)/a,V=(f-u)/a,L=(x-m)/a,Z=(_-p)/a,G=s;for(c=0;c<a;c++)r[G++]=B.floatToByte(l+c*C),r[G++]=B.floatToByte(u+c*V),r[G++]=B.floatToByte(m+c*L),r[G++]=B.floatToByte(p+c*Z);return G}function o9(e){e=g(e,g.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=g(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=g(e.arcType,Jt.GEODESIC),this._granularity=g(e.granularity,W.RADIANS_PER_DEGREE),this._ellipsoid=g(e.ellipsoid,re.WGS84),this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=d(n)?1+n.length*B.packedLength:1,this.packedLength=o+re.packedLength+3}o9.pack=function(e,t,n){n=g(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=d(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=B.packedLength)B.pack(s[i],t,n);return re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};o9.unpack=function(e,t,n){t=g(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=B.packedLength)s[i]=B.unpack(e,t);let a=re.unpack(e,t);t+=re.packedLength;let c=e[t++]===1,l=e[t++],u=e[t];return d(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=l,n._granularity=u,n):new o9({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:l,granularity:u})};var hD=new Array(2),fD=new Array(2),Abt={positions:hD,height:fD,ellipsoid:void 0,minDistance:void 0,granularity:void 0};o9.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=W.chordLength(r,s.maximumRadius),c=d(n)&&!i,l,u=t.length,m,p,y,f,x=0;if(o===Jt.GEODESIC||o===Jt.RHUMB){let Z,G,X;o===Jt.GEODESIC?(Z=W.chordLength(r,s.maximumRadius),G=Xi.numberOfPoints,X=Xi.generateArc):(Z=r,G=Xi.numberOfPointsRhumbLine,X=Xi.generateRhumbArc);let P=Xi.extractHeights(t,s),v=Abt;if(o===Jt.GEODESIC?v.minDistance=a:v.granularity=r,v.ellipsoid=s,c){let A=0;for(l=0;l<u-1;l++)A+=G(t[l],t[l+1],Z)+1;m=new Float64Array(A*3),y=new Uint8Array(A*4),v.positions=hD,v.height=fD;let M=0;for(l=0;l<u-1;++l){hD[0]=t[l],hD[1]=t[l+1],fD[0]=P[l],fD[1]=P[l+1];let b=X(v);if(d(n)){let R=b.length/3;f=n[l];for(let E=0;E<R;++E)y[M++]=B.floatToByte(f.red),y[M++]=B.floatToByte(f.green),y[M++]=B.floatToByte(f.blue),y[M++]=B.floatToByte(f.alpha)}m.set(b,x),x+=b.length}}else if(v.positions=t,v.height=P,m=new Float64Array(X(v)),d(n)){for(y=new Uint8Array(m.length/3*4),l=0;l<u-1;++l){let M=t[l],b=t[l+1],R=n[l],E=n[l+1];x=wbt(M,b,R,E,a,y,x)}let A=n[u-1];y[x++]=B.floatToByte(A.red),y[x++]=B.floatToByte(A.green),y[x++]=B.floatToByte(A.blue),y[x++]=B.floatToByte(A.alpha)}}else{p=c?u*2-2:u,m=new Float64Array(p*3),y=d(n)?new Uint8Array(p*4):void 0;let Z=0,G=0;for(l=0;l<u;++l){let X=t[l];if(c&&l>0&&(h.pack(X,m,Z),Z+=3,f=n[l-1],y[G++]=B.floatToByte(f.red),y[G++]=B.floatToByte(f.green),y[G++]=B.floatToByte(f.blue),y[G++]=B.floatToByte(f.alpha)),c&&l===u-1)break;h.pack(X,m,Z),Z+=3,d(n)&&(f=n[l],y[G++]=B.floatToByte(f.red),y[G++]=B.floatToByte(f.green),y[G++]=B.floatToByte(f.blue),y[G++]=B.floatToByte(f.alpha))}}let _=new hn;_.position=new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:m}),d(n)&&(_.color=new Ze({componentDatatype:Q.UNSIGNED_BYTE,componentsPerAttribute:4,values:y,normalize:!0})),p=m.length/3;let C=(p-1)*2,V=Ue.createTypedArray(p,C),L=0;for(l=0;l<p-1;++l)V[L++]=l,V[L++]=l+1;return new dt({attributes:_,indices:V,primitiveType:we.LINES,boundingSphere:ce.fromPoints(t)})};var Nj=o9;var $Hi=T(S(),1);function DV(e){let t=g(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new Is(i),this._workerName="createSphereGeometry"}DV.packedLength=Is.packedLength;DV.pack=function(e,t,n){return Is.pack(e._ellipsoidGeometry,t,n)};var Mbt=new Is,ag={radius:void 0,radii:new h,vertexFormat:new We,stackPartitions:void 0,slicePartitions:void 0};DV.unpack=function(e,t,n){let i=Is.unpack(e,t,Mbt);return ag.vertexFormat=We.clone(i._vertexFormat,ag.vertexFormat),ag.stackPartitions=i._stackPartitions,ag.slicePartitions=i._slicePartitions,d(n)?(h.clone(i._radii,ag.radii),n._ellipsoidGeometry=new Is(ag),n):(ag.radius=i._radii.x,new DV(ag))};DV.createGeometry=function(e){return Is.createGeometry(e._ellipsoidGeometry)};var Uj=DV;var nzi=T(S(),1);function cg(e){}Object.defineProperties(cg.prototype,{ellipsoid:{get:fe.throwInstantiationError},rectangle:{get:fe.throwInstantiationError},projection:{get:fe.throwInstantiationError}});cg.prototype.getNumberOfXTilesAtLevel=fe.throwInstantiationError;cg.prototype.getNumberOfYTilesAtLevel=fe.throwInstantiationError;cg.prototype.rectangleToNativeRectangle=fe.throwInstantiationError;cg.prototype.tileXYToNativeRectangle=fe.throwInstantiationError;cg.prototype.tileXYToRectangle=fe.throwInstantiationError;cg.prototype.positionToTileXY=fe.throwInstantiationError;var kj=cg;var gzi=T(S(),1);function Nbt(e,t){this.rectangle=e,this.maxLevel=t}function Exe(e){this.ellipsoid=g(e.ellipsoid,re.WGS84),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}Exe.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles};function Ubt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Di({ellipsoid:e.ellipsoid});else throw new me(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=Ur.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=W.toRadians(parseFloat(s.getAttribute("minx"))),c=W.toRadians(parseFloat(s.getAttribute("miny"))),l=W.toRadians(parseFloat(s.getAttribute("maxx"))),u=W.toRadians(parseFloat(s.getAttribute("maxy"))),m=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new Nbt(new de(a,c,l,u),m))}}function kbt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw d(t)&&d(t.message)&&(i=`${i}: ${t.message}`),Vo.reportError(void 0,n,d(n)?n._errorEvent:void 0,i),new me(i)}async function Dbt(e,t,n){try{let i=await t.fetchXML();Ubt(e,i)}catch(i){kbt(t,i,n)}}function lg(e){e=g(e,g.EMPTY_OBJECT),this._errorEvent=new ye,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;typeof t=="string"&&(t=new St(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(lg.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});lg.fromUrl=async function(e,t){t=g(t,g.EMPTY_OBJECT);let n=new Exe(t),i=Ee.createIfNeeded(e);await Dbt(n,i);let o=new lg(t);return n.build(o),o._resource=i,o};lg.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!d(s))return;let a=this;return Promise.resolve(s).then(function(c){return new Sa({buffer:nm(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:Bbt(a,e,t,n),structure:a._terrainDataStructure})})};lg.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var Xxe=new de;function Bbt(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let l=r[c];if(l.maxLevel<=i)continue;let u=l.rectangle,m=de.intersection(u,s,Xxe);d(m)&&(pD(o,u,t*2,n*2,i+1)&&(a|=4),pD(o,u,t*2+1,n*2,i+1)&&(a|=8),pD(o,u,t*2,n*2+1,i+1)&&(a|=1),pD(o,u,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function pD(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return d(de.intersection(r,t,Xxe))}lg.prototype.getTileDataAvailable=function(e,t,n){};lg.prototype.loadTileDataAvailability=function(e,t,n){};var Dj=lg;var Lzi=T(S(),1);function AT(e){e=g(e,g.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=g(e.epoch,Ye.MINIMUM_VALUE),this.tolerance=g(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(AT.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(d(t)&&(this._clockSubscription(),this._clockSubscription=void 0),d(e)&&(this._clockSubscription=e.onTick.addEventListener(AT.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(d(t)&&t.removeEventListener("seeked",this._seekFunction,!1),d(e)&&(this._seeking=!1,this._seekFunction=Ybt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});AT.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};AT.prototype.isDestroyed=function(){return!1};AT.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};AT.prototype._onTick=function(e){let t=this._element;if(!d(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=g(this.epoch,Ye.MINIMUM_VALUE),s=te.secondsDifference(o,r),a=t.duration,c,l=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let u=i?g(this.tolerance,1):.001;Math.abs(c-l)>u&&(this._seeking=!0,t.currentTime=c)};function Ybt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var Bj=AT;var Zzi=T(S(),1),Obt={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},Yj=Object.freeze(Obt);var Wzi=T(S(),1);var Kbt=new h;function Hbt(e,t,n,i){let o=Yg(e,t,n,i,Kbt);return d(o)?o.x>0&&o.y>0&&o.z>0:!1}var Oj=Hbt;var Fzi=T(S(),1);function zbt(e){switch(e){case ne.FLOAT:return"float";case ne.FLOAT_VEC2:return"vec2";case ne.FLOAT_VEC3:return"vec3";case ne.FLOAT_VEC4:return"vec4";case ne.FLOAT_MAT2:return"mat2";case ne.FLOAT_MAT3:return"mat3";case ne.FLOAT_MAT4:return"mat4";case ne.SAMPLER_2D:return"sampler2D";case ne.BOOL:return"bool"}}var Kj=zbt;var Azi=T(S(),1);function Jbt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var r9=Jbt;var Nzi=T(S(),1),Hj=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;var Hzi=T(S(),1);function Qbt(e){e=g(e,g.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=g(e.pixelFormat,st.RGBA),this.pixelDatatype=g(e.pixelDatatype,Je.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=Ee.createIfNeeded(t)),this.resource=t;let i=g(e.repeat,!0)?Gn.REPEAT:Gn.CLAMP_TO_EDGE;this.sampler=new dn({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var zj=Qbt;var Jzi=T(S(),1),jbt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},Jj=Object.freeze(jbt);var qzi=T(S(),1);function qbt(e){async function t({data:i}){let o=[],r={id:i.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=i.baseUrl;try{let s=await e(i.parameters,o);r.result=s}catch(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}i.canTransferArrayBuffer||(o.length=0);try{postMessage(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${Tf(s)} + with responseMessage: ${JSON.stringify(r)}`,postMessage(r)}}function n(i){postMessage({id:i.data?.id,error:`postMessage failed with error: ${JSON.stringify(i)}`})}return self.onmessage=t,self.onmessageerror=n,self}var Qj=qbt;globalThis.CESIUM_VERSION="1.111";var _bo=T(S(),1);var smo=T(S(),1);var nmo=T(S(),1);var Huo=T(S(),1),s9;typeof ko<"u"&&(s9=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(b,R){return b===null||typeof b in x?b===R:!1}function l(b,R){var E;return function(){E||(E=f.a.setTimeout(function(){E=e,b()},R))}}function u(b,R){var E;return function(){clearTimeout(E),E=f.a.setTimeout(b,R)}}function m(b,R){R&&R!=="change"?R==="beforeChange"?this.pc(b):this.gb(b,R):this.qc(b)}function p(b,R){R!==null&&R.s&&R.s()}function y(b,R){var E=this.qd,I=E[Z];I.ra||(this.Qb&&this.mb[R]?(E.uc(R,b,this.mb[R]),this.mb[R]=null,--this.Qb):I.I[R]||E.uc(R,b,I.J?{da:b}:E.$c(b)),b.Ja&&b.gd())}var f=typeof s<"u"?s:{};f.b=function(b,R){for(var E=b.split("."),I=f,F=0;F<E.length-1;F++)I=I[E[F]];I[E[E.length-1]]=R},f.L=function(b,R,E){b[R]=E},f.version="3.5.1",f.b("version",f.version),f.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},f.a=function(){function b(K,j){for(var q in K)F.call(K,q)&&j(q,K[q])}function R(K,j){if(j)for(var q in j)F.call(j,q)&&(K[q]=j[q]);return K}function E(K,j){return K.__proto__=j,K}function I(K,j,q,be){var Te=K[j].match(z)||[];f.a.D(q.match(z),function(ae){f.a.Na(Te,ae,be)}),K[j]=Te.join(" ")}var F=Object.prototype.hasOwnProperty,N={__proto__:[]}instanceof Array,Y=typeof Symbol=="function",k={},O={};k[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],k.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),b(k,function(K,j){if(j.length)for(var q=0,be=j.length;q<be;q++)O[j[q]]=K});var U={propertychange:!0},J=n&&function(){for(var K=3,j=n.createElement("div"),q=j.getElementsByTagName("i");j.innerHTML="<!--[if gt IE "+ ++K+"]><i></i><![endif]-->",q[0];);return 4<K?K:e}(),z=/\S+/g,ee;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(K,j,q){for(var be=0,Te=K.length;be<Te;be++)j.call(q,K[be],be,K)},A:typeof Array.prototype.indexOf=="function"?function(K,j){return Array.prototype.indexOf.call(K,j)}:function(K,j){for(var q=0,be=K.length;q<be;q++)if(K[q]===j)return q;return-1},Lb:function(K,j,q){for(var be=0,Te=K.length;be<Te;be++)if(j.call(q,K[be],be,K))return K[be];return e},Pa:function(K,j){var q=f.a.A(K,j);0<q?K.splice(q,1):q===0&&K.shift()},wc:function(K){var j=[];return K&&f.a.D(K,function(q){0>f.a.A(j,q)&&j.push(q)}),j},Mb:function(K,j,q){var be=[];if(K)for(var Te=0,ae=K.length;Te<ae;Te++)be.push(j.call(q,K[Te],Te));return be},jb:function(K,j,q){var be=[];if(K)for(var Te=0,ae=K.length;Te<ae;Te++)j.call(q,K[Te],Te)&&be.push(K[Te]);return be},Nb:function(K,j){if(j instanceof Array)K.push.apply(K,j);else for(var q=0,be=j.length;q<be;q++)K.push(j[q]);return K},Na:function(K,j,q){var be=f.a.A(f.a.bc(K),j);0>be?q&&K.push(j):q||K.splice(be,1)},Ba:N,extend:R,setPrototypeOf:E,Ab:N?E:R,P:b,Ga:function(K,j,q){if(!K)return K;var be={},Te;for(Te in K)F.call(K,Te)&&(be[Te]=j.call(q,K[Te],Te,K));return be},Tb:function(K){for(;K.firstChild;)f.removeNode(K.firstChild)},Yb:function(K){K=f.a.la(K);for(var j=(K[0]&&K[0].ownerDocument||n).createElement("div"),q=0,be=K.length;q<be;q++)j.appendChild(f.oa(K[q]));return j},Ca:function(K,j){for(var q=0,be=K.length,Te=[];q<be;q++){var ae=K[q].cloneNode(!0);Te.push(j?f.oa(ae):ae)}return Te},va:function(K,j){if(f.a.Tb(K),j)for(var q=0,be=j.length;q<be;q++)K.appendChild(j[q])},Xc:function(K,j){var q=K.nodeType?[K]:K;if(0<q.length){for(var be=q[0],Te=be.parentNode,ae=0,xe=j.length;ae<xe;ae++)Te.insertBefore(j[ae],be);for(ae=0,xe=q.length;ae<xe;ae++)f.removeNode(q[ae])}},Ua:function(K,j){if(K.length){for(j=j.nodeType===8&&j.parentNode||j;K.length&&K[0].parentNode!==j;)K.splice(0,1);for(;1<K.length&&K[K.length-1].parentNode!==j;)K.length--;if(1<K.length){var q=K[0],be=K[K.length-1];for(K.length=0;q!==be;)K.push(q),q=q.nextSibling;K.push(be)}}return K},Zc:function(K,j){7>J?K.setAttribute("selected",j):K.selected=j},Db:function(K){return K===null||K===e?"":K.trim?K.trim():K.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(K,j){return K=K||"",j.length>K.length?!1:K.substring(0,j.length)===j},vd:function(K,j){if(K===j)return!0;if(K.nodeType===11)return!1;if(j.contains)return j.contains(K.nodeType!==1?K.parentNode:K);if(j.compareDocumentPosition)return(j.compareDocumentPosition(K)&16)==16;for(;K&&K!=j;)K=K.parentNode;return!!K},Sb:function(K){return f.a.vd(K,K.ownerDocument.documentElement)},kd:function(K){return!!f.a.Lb(K,f.a.Sb)},R:function(K){return K&&K.tagName&&K.tagName.toLowerCase()},Ac:function(K){return f.onError?function(){try{return K.apply(this,arguments)}catch(j){throw f.onError&&f.onError(j),j}}:K},setTimeout:function(K,j){return setTimeout(f.a.Ac(K),j)},Gc:function(K){setTimeout(function(){throw f.onError&&f.onError(K),K},0)},B:function(K,j,q){var be=f.a.Ac(q);if(q=U[j],f.options.useOnlyNativeEvents||q||!o)if(q||typeof K.addEventListener!="function")if(typeof K.attachEvent<"u"){var Te=function(xe){be.call(K,xe)},ae="on"+j;K.attachEvent(ae,Te),f.a.K.za(K,function(){K.detachEvent(ae,Te)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else K.addEventListener(j,be,!1);else ee||(ee=typeof o(K).on=="function"?"on":"bind"),o(K)[ee](j,be)},Fb:function(K,j){if(!K||!K.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var q;if(f.a.R(K)==="input"&&K.type&&j.toLowerCase()=="click"?(q=K.type,q=q=="checkbox"||q=="radio"):q=!1,f.options.useOnlyNativeEvents||!o||q)if(typeof n.createEvent=="function")if(typeof K.dispatchEvent=="function")q=n.createEvent(O[j]||"HTMLEvents"),q.initEvent(j,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,K),K.dispatchEvent(q);else throw Error("The supplied element doesn't support dispatchEvent");else if(q&&K.click)K.click();else if(typeof K.fireEvent<"u")K.fireEvent("on"+j);else throw Error("Browser doesn't support triggering events");else o(K).trigger(j)},f:function(K){return f.O(K)?K():K},bc:function(K){return f.O(K)?K.v():K},Eb:function(K,j,q){var be;j&&(typeof K.classList=="object"?(be=K.classList[q?"add":"remove"],f.a.D(j.match(z),function(Te){be.call(K.classList,Te)})):typeof K.className.baseVal=="string"?I(K.className,"baseVal",j,q):I(K,"className",j,q))},Bb:function(K,j){var q=f.a.f(j);(q===null||q===e)&&(q="");var be=f.h.firstChild(K);!be||be.nodeType!=3||f.h.nextSibling(be)?f.h.va(K,[K.ownerDocument.createTextNode(q)]):be.data=q,f.a.Ad(K)},Yc:function(K,j){if(K.name=j,7>=J)try{var q=K.name.replace(/[&<>'"]/g,function(be){return"&#"+be.charCodeAt(0)+";"});K.mergeAttributes(n.createElement("<input name='"+q+"'/>"),!1)}catch{}},Ad:function(K){9<=J&&(K=K.nodeType==1?K:K.parentNode,K.style&&(K.style.zoom=K.style.zoom))},wd:function(K){if(J){var j=K.style.width;K.style.width=0,K.style.width=j}},Pd:function(K,j){K=f.a.f(K),j=f.a.f(j);for(var q=[],be=K;be<=j;be++)q.push(be);return q},la:function(K){for(var j=[],q=0,be=K.length;q<be;q++)j.push(K[q]);return j},Da:function(K){return Y?Symbol(K):K},Zd:J===6,$d:J===7,W:J,Lc:function(K,j){for(var q=f.a.la(K.getElementsByTagName("input")).concat(f.a.la(K.getElementsByTagName("textarea"))),be=typeof j=="string"?function(xe){return xe.name===j}:function(xe){return j.test(xe.name)},Te=[],ae=q.length-1;0<=ae;ae--)be(q[ae])&&Te.push(q[ae]);return Te},Nd:function(K){return typeof K=="string"&&(K=f.a.Db(K))?r&&r.parse?r.parse(K):new Function("return "+K)():null},hc:function(K,j,q){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(f.a.f(K),j,q)},Od:function(K,j,q){q=q||{};var be=q.params||{},Te=q.includeFields||this.Jc,ae=K;if(typeof K=="object"&&f.a.R(K)==="form")for(var ae=K.action,xe=Te.length-1;0<=xe;xe--)for(var _e=f.a.Lc(K,Te[xe]),Ve=_e.length-1;0<=Ve;Ve--)be[_e[Ve].name]=_e[Ve].value;j=f.a.f(j);var Ie=n.createElement("form");Ie.style.display="none",Ie.action=ae,Ie.method="post";for(var Me in j)K=n.createElement("input"),K.type="hidden",K.name=Me,K.value=f.a.hc(f.a.f(j[Me])),Ie.appendChild(K);b(be,function(ve,ke){var ct=n.createElement("input");ct.type="hidden",ct.name=ve,ct.value=ke,Ie.appendChild(ct)}),n.body.appendChild(Ie),q.submitter?q.submitter(Ie):Ie.submit(),setTimeout(function(){Ie.parentNode.removeChild(Ie)},0)}}}(),f.b("utils",f.a),f.b("utils.arrayForEach",f.a.D),f.b("utils.arrayFirst",f.a.Lb),f.b("utils.arrayFilter",f.a.jb),f.b("utils.arrayGetDistinctValues",f.a.wc),f.b("utils.arrayIndexOf",f.a.A),f.b("utils.arrayMap",f.a.Mb),f.b("utils.arrayPushAll",f.a.Nb),f.b("utils.arrayRemoveItem",f.a.Pa),f.b("utils.cloneNodes",f.a.Ca),f.b("utils.createSymbolOrString",f.a.Da),f.b("utils.extend",f.a.extend),f.b("utils.fieldsIncludedWithJsonPost",f.a.Jc),f.b("utils.getFormFields",f.a.Lc),f.b("utils.objectMap",f.a.Ga),f.b("utils.peekObservable",f.a.bc),f.b("utils.postJson",f.a.Od),f.b("utils.parseJson",f.a.Nd),f.b("utils.registerEventHandler",f.a.B),f.b("utils.stringifyJson",f.a.hc),f.b("utils.range",f.a.Pd),f.b("utils.toggleDomNodeCssClass",f.a.Eb),f.b("utils.triggerEvent",f.a.Fb),f.b("utils.unwrapObservable",f.a.f),f.b("utils.objectForEach",f.a.P),f.b("utils.addOrRemoveItem",f.a.Na),f.b("utils.setTextContent",f.a.Bb),f.b("unwrap",f.a.f),Function.prototype.bind||(Function.prototype.bind=function(b){var R=this;if(arguments.length===1)return function(){return R.apply(b,arguments)};var E=Array.prototype.slice.call(arguments,1);return function(){var I=E.slice(0);return I.push.apply(I,arguments),R.apply(b,I)}}),f.a.g=new function(){var b=0,R="__ko__"+new Date().getTime(),E={},I,F;return f.a.W?(I=function(N,Y){var k=N[R];if(!k||k==="null"||!E[k]){if(!Y)return e;k=N[R]="ko"+b++,E[k]={}}return E[k]},F=function(N){var Y=N[R];return Y?(delete E[Y],N[R]=null,!0):!1}):(I=function(N,Y){var k=N[R];return!k&&Y&&(k=N[R]={}),k},F=function(N){return N[R]?(delete N[R],!0):!1}),{get:function(N,Y){var k=I(N,!1);return k&&k[Y]},set:function(N,Y,k){(N=I(N,k!==e))&&(N[Y]=k)},Ub:function(N,Y,k){return N=I(N,!0),N[Y]||(N[Y]=k)},clear:F,Z:function(){return b+++R}}},f.b("utils.domData",f.a.g),f.b("utils.domData.clear",f.a.g.clear),f.a.K=new function(){function b(Y,k){var O=f.a.g.get(Y,I);return O===e&&k&&(O=[],f.a.g.set(Y,I,O)),O}function R(Y){var k=b(Y,!1);if(k)for(var k=k.slice(0),O=0;O<k.length;O++)k[O](Y);f.a.g.clear(Y),f.a.K.cleanExternalData(Y),N[Y.nodeType]&&E(Y.childNodes,!0)}function E(Y,k){for(var O=[],U,J=0;J<Y.length;J++)if((!k||Y[J].nodeType===8)&&(R(O[O.length]=U=Y[J]),Y[J]!==U))for(;J--&&f.a.A(O,Y[J])==-1;);}var I=f.a.g.Z(),F={1:!0,8:!0,9:!0},N={1:!0,9:!0};return{za:function(Y,k){if(typeof k!="function")throw Error("Callback must be a function");b(Y,!0).push(k)},yb:function(Y,k){var O=b(Y,!1);O&&(f.a.Pa(O,k),O.length==0&&f.a.g.set(Y,I,e))},oa:function(Y){return f.u.G(function(){F[Y.nodeType]&&(R(Y),N[Y.nodeType]&&E(Y.getElementsByTagName("*")))}),Y},removeNode:function(Y){f.oa(Y),Y.parentNode&&Y.parentNode.removeChild(Y)},cleanExternalData:function(Y){o&&typeof o.cleanData=="function"&&o.cleanData([Y])}}},f.oa=f.a.K.oa,f.removeNode=f.a.K.removeNode,f.b("cleanNode",f.oa),f.b("removeNode",f.removeNode),f.b("utils.domNodeDisposal",f.a.K),f.b("utils.domNodeDisposal.addDisposeCallback",f.a.K.za),f.b("utils.domNodeDisposal.removeDisposeCallback",f.a.K.yb),function(){var b=[0,"",""],R=[1,"<table>","</table>"],E=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],F={thead:R,tbody:R,tfoot:R,tr:[2,"<table><tbody>","</tbody></table>"],td:E,th:E,option:I,optgroup:I},N=8>=f.a.W;f.a.ua=function(Y,k){var O;if(o){if(o.parseHTML)O=o.parseHTML(Y,k)||[];else if((O=o.clean([Y],k))&&O[0]){for(var U=O[0];U.parentNode&&U.parentNode.nodeType!==11;)U=U.parentNode;U.parentNode&&U.parentNode.removeChild(U)}}else{(O=k)||(O=n);var U=O.parentWindow||O.defaultView||t,J=f.a.Db(Y).toLowerCase(),z=O.createElement("div"),ee;for(ee=(J=J.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&F[J[1]]||b,J=ee[0],ee="ignored<div>"+ee[1]+Y+ee[2]+"</div>",typeof U.innerShiv=="function"?z.appendChild(U.innerShiv(ee)):(N&&O.body.appendChild(z),z.innerHTML=ee,N&&z.parentNode.removeChild(z));J--;)z=z.lastChild;O=f.a.la(z.lastChild.childNodes)}return O},f.a.Md=function(Y,k){var O=f.a.ua(Y,k);return O.length&&O[0].parentElement||f.a.Yb(O)},f.a.fc=function(Y,k){if(f.a.Tb(Y),k=f.a.f(k),k!==null&&k!==e)if(typeof k!="string"&&(k=k.toString()),o)o(Y).html(k);else for(var O=f.a.ua(k,Y.ownerDocument),U=0;U<O.length;U++)Y.appendChild(O[U])}}(),f.b("utils.parseHtmlFragment",f.a.ua),f.b("utils.setHtml",f.a.fc),f.aa=function(){function b(E,I){if(E){if(E.nodeType==8){var F=f.aa.Uc(E.nodeValue);F!=null&&I.push({ud:E,Kd:F})}else if(E.nodeType==1)for(var F=0,N=E.childNodes,Y=N.length;F<Y;F++)b(N[F],I)}}var R={};return{Xb:function(E){if(typeof E!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return R[I]=E,"<!--[ko_memo:"+I+"]-->"},bd:function(E,I){var F=R[E];if(F===e)throw Error("Couldn't find any memo with ID "+E+". Perhaps it's already been unmemoized.");try{return F.apply(null,I||[]),!0}finally{delete R[E]}},cd:function(E,I){var F=[];b(E,F);for(var N=0,Y=F.length;N<Y;N++){var k=F[N].ud,O=[k];I&&f.a.Nb(O,I),f.aa.bd(F[N].Kd,O),k.nodeValue="",k.parentNode&&k.parentNode.removeChild(k)}},Uc:function(E){return(E=E.match(/^\[ko_memo\:(.*?)\]$/))?E[1]:null}}}(),f.b("memoization",f.aa),f.b("memoization.memoize",f.aa.Xb),f.b("memoization.unmemoize",f.aa.bd),f.b("memoization.parseMemoText",f.aa.Uc),f.b("memoization.unmemoizeDomNodeAndDescendants",f.aa.cd),f.na=function(){function b(){if(F){for(var k=F,O=0,U;Y<F;)if(U=I[Y++]){if(Y>k){if(5e3<=++O){Y=F,f.a.Gc(Error("'Too much recursion' after processing "+O+" task groups."));break}k=F}try{U()}catch(J){f.a.Gc(J)}}}}function R(){b(),Y=F=I.length=0}var E,I=[],F=0,N=1,Y=0;return t.MutationObserver?E=function(k){var O=n.createElement("div");return new MutationObserver(k).observe(O,{attributes:!0}),function(){O.classList.toggle("foo")}}(R):E=n&&"onreadystatechange"in n.createElement("script")?function(k){var O=n.createElement("script");O.onreadystatechange=function(){O.onreadystatechange=null,n.documentElement.removeChild(O),O=null,k()},n.documentElement.appendChild(O)}:function(k){setTimeout(k,0)},{scheduler:E,zb:function(k){return F||f.na.scheduler(R),I[F++]=k,N++},cancel:function(k){k=k-(N-F),k>=Y&&k<F&&(I[k]=null)},resetForTesting:function(){var k=F-Y;return Y=F=I.length=0,k},Sd:b}}(),f.b("tasks",f.na),f.b("tasks.schedule",f.na.zb),f.b("tasks.runEarly",f.na.Sd),f.Ta={throttle:function(b,R){b.throttleEvaluation=R;var E=null;return f.$({read:b,write:function(I){clearTimeout(E),E=f.a.setTimeout(function(){b(I)},R)}})},rateLimit:function(b,R){var E,I,F;typeof R=="number"?E=R:(E=R.timeout,I=R.method),b.Hb=!1,F=typeof I=="function"?I:I=="notifyWhenChangesStop"?u:l,b.ub(function(N){return F(N,E,R)})},deferred:function(b,R){if(R!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");b.Hb||(b.Hb=!0,b.ub(function(E){var I,F=!1;return function(){if(!F){f.na.cancel(I),I=f.na.zb(E);try{F=!0,b.notifySubscribers(e,"dirty")}finally{F=!1}}}}))},notify:function(b,R){b.equalityComparer=R=="always"?null:c}};var x={undefined:1,boolean:1,number:1,string:1};f.b("extenders",f.Ta),f.ic=function(b,R,E){this.da=b,this.lc=R,this.mc=E,this.Ib=!1,this.fb=this.Jb=null,f.L(this,"dispose",this.s),f.L(this,"disposeWhenNodeIsRemoved",this.l)},f.ic.prototype.s=function(){this.Ib||(this.fb&&f.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},f.ic.prototype.l=function(b){this.Jb=b,f.a.K.za(b,this.fb=this.s.bind(this))},f.T=function(){f.a.Ab(this,_),_.qb(this)};var _={qb:function(b){b.U={change:[]},b.sc=1},subscribe:function(b,R,E){var I=this;E=E||"change";var F=new f.ic(I,R?b.bind(R):b,function(){f.a.Pa(I.U[E],F),I.hb&&I.hb(E)});return I.Qa&&I.Qa(E),I.U[E]||(I.U[E]=[]),I.U[E].push(F),F},notifySubscribers:function(b,R){if(R=R||"change",R==="change"&&this.Gb(),this.Wa(R)){var E=R==="change"&&this.ed||this.U[R].slice(0);try{f.u.xc();for(var I=0,F;F=E[I];++I)F.Ib||F.lc(b)}finally{f.u.end()}}},ob:function(){return this.sc},Dd:function(b){return this.ob()!==b},Gb:function(){++this.sc},ub:function(b){var R=this,E=f.O(R),I,F,N,Y,k;R.gb||(R.gb=R.notifySubscribers,R.notifySubscribers=m);var O=b(function(){R.Ja=!1,E&&Y===R&&(Y=R.nc?R.nc():R());var U=F||k&&R.sb(N,Y);k=F=I=!1,U&&R.gb(N=Y)});R.qc=function(U,J){J&&R.Ja||(k=!J),R.ed=R.U.change.slice(0),R.Ja=I=!0,Y=U,O()},R.pc=function(U){I||(N=U,R.gb(U,"beforeChange"))},R.rc=function(){k=!0},R.gd=function(){R.sb(N,R.v(!0))&&(F=!0)}},Wa:function(b){return this.U[b]&&this.U[b].length},Bd:function(b){if(b)return this.U[b]&&this.U[b].length||0;var R=0;return f.a.P(this.U,function(E,I){E!=="dirty"&&(R+=I.length)}),R},sb:function(b,R){return!this.equalityComparer||!this.equalityComparer(b,R)},toString:function(){return"[object Object]"},extend:function(b){var R=this;return b&&f.a.P(b,function(E,I){var F=f.Ta[E];typeof F=="function"&&(R=F(R,I)||R)}),R}};f.L(_,"init",_.qb),f.L(_,"subscribe",_.subscribe),f.L(_,"extend",_.extend),f.L(_,"getSubscriptionsCount",_.Bd),f.a.Ba&&f.a.setPrototypeOf(_,Function.prototype),f.T.fn=_,f.Qc=function(b){return b!=null&&typeof b.subscribe=="function"&&typeof b.notifySubscribers=="function"},f.b("subscribable",f.T),f.b("isSubscribable",f.Qc),f.S=f.u=function(){function b(N){E.push(I),I=N}function R(){I=E.pop()}var E=[],I,F=0;return{xc:b,end:R,cc:function(N){if(I){if(!f.Qc(N))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,N,N.fd||(N.fd=++F))}},G:function(N,Y,k){try{return b(),N.apply(Y,k||[])}finally{R()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.o}}}(),f.b("computedContext",f.S),f.b("computedContext.getDependenciesCount",f.S.qa),f.b("computedContext.getDependencies",f.S.Va),f.b("computedContext.isInitial",f.S.Ya),f.b("computedContext.registerDependency",f.S.cc),f.b("ignoreDependencies",f.Yd=f.u.G);var C=f.a.Da("_latestValue");f.ta=function(b){function R(){return 0<arguments.length?(R.sb(R[C],arguments[0])&&(R.ya(),R[C]=arguments[0],R.xa()),this):(f.u.cc(R),R[C])}return R[C]=b,f.a.Ba||f.a.extend(R,f.T.fn),f.T.fn.qb(R),f.a.Ab(R,V),f.options.deferUpdates&&f.Ta.deferred(R,!0),R};var V={equalityComparer:c,v:function(){return this[C]},xa:function(){this.notifySubscribers(this[C],"spectate"),this.notifySubscribers(this[C])},ya:function(){this.notifySubscribers(this[C],"beforeChange")}};f.a.Ba&&f.a.setPrototypeOf(V,f.T.fn);var L=f.ta.Ma="__ko_proto__";V[L]=f.ta,f.O=function(b){if((b=typeof b=="function"&&b[L])&&b!==V[L]&&b!==f.o.fn[L])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!b},f.Za=function(b){return typeof b=="function"&&(b[L]===V[L]||b[L]===f.o.fn[L]&&b.Nc)},f.b("observable",f.ta),f.b("isObservable",f.O),f.b("isWriteableObservable",f.Za),f.b("isWritableObservable",f.Za),f.b("observable.fn",V),f.L(V,"peek",V.v),f.L(V,"valueHasMutated",V.xa),f.L(V,"valueWillMutate",V.ya),f.Ha=function(b){if(b=b||[],typeof b!="object"||!("length"in b))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return b=f.ta(b),f.a.Ab(b,f.Ha.fn),b.extend({trackArrayChanges:!0})},f.Ha.fn={remove:function(b){for(var R=this.v(),E=[],I=typeof b!="function"||f.O(b)?function(Y){return Y===b}:b,F=0;F<R.length;F++){var N=R[F];if(I(N)){if(E.length===0&&this.ya(),R[F]!==N)throw Error("Array modified during remove; cannot remove item");E.push(N),R.splice(F,1),F--}}return E.length&&this.xa(),E},removeAll:function(b){if(b===e){var R=this.v(),E=R.slice(0);return this.ya(),R.splice(0,R.length),this.xa(),E}return b?this.remove(function(I){return 0<=f.a.A(b,I)}):[]},destroy:function(b){var R=this.v(),E=typeof b!="function"||f.O(b)?function(N){return N===b}:b;this.ya();for(var I=R.length-1;0<=I;I--){var F=R[I];E(F)&&(F._destroy=!0)}this.xa()},destroyAll:function(b){return b===e?this.destroy(function(){return!0}):b?this.destroy(function(R){return 0<=f.a.A(b,R)}):[]},indexOf:function(b){var R=this();return f.a.A(R,b)},replace:function(b,R){var E=this.indexOf(b);0<=E&&(this.ya(),this.v()[E]=R,this.xa())},sorted:function(b){var R=this().slice(0);return b?R.sort(b):R.sort()},reversed:function(){return this().slice(0).reverse()}},f.a.Ba&&f.a.setPrototypeOf(f.Ha.fn,f.ta.fn),f.a.D("pop push reverse shift sort splice unshift".split(" "),function(b){f.Ha.fn[b]=function(){var R=this.v();this.ya(),this.zc(R,b,arguments);var E=R[b].apply(R,arguments);return this.xa(),E===R?this:E}}),f.a.D(["slice"],function(b){f.Ha.fn[b]=function(){var R=this();return R[b].apply(R,arguments)}}),f.Pc=function(b){return f.O(b)&&typeof b.remove=="function"&&typeof b.push=="function"},f.b("observableArray",f.Ha),f.b("isObservableArray",f.Pc),f.Ta.trackArrayChanges=function(b,R){function E(){function z(){if(k){var ee=[].concat(b.v()||[]),K;b.Wa("arrayChange")&&((!F||1<k)&&(F=f.a.Pb(O,ee,b.Ob)),K=F),O=ee,F=null,k=0,K&&K.length&&b.notifySubscribers(K,"arrayChange")}}I?z():(I=!0,Y=b.subscribe(function(){++k},null,"spectate"),O=[].concat(b.v()||[]),F=null,N=b.subscribe(z))}if(b.Ob={},R&&typeof R=="object"&&f.a.extend(b.Ob,R),b.Ob.sparse=!0,!b.zc){var I=!1,F=null,N,Y,k=0,O,U=b.Qa,J=b.hb;b.Qa=function(z){U&&U.call(b,z),z==="arrayChange"&&E()},b.hb=function(z){J&&J.call(b,z),z!=="arrayChange"||b.Wa("arrayChange")||(N&&N.s(),Y&&Y.s(),Y=N=null,I=!1,O=e)},b.zc=function(z,ee,K){function j(Ie,Me,ve){return q[q.length]={status:Ie,value:Me,index:ve}}if(I&&!k){var q=[],be=z.length,Te=K.length,ae=0;switch(ee){case"push":ae=be;case"unshift":for(ee=0;ee<Te;ee++)j("added",K[ee],ae+ee);break;case"pop":ae=be-1;case"shift":be&&j("deleted",z[ae],ae);break;case"splice":ee=Math.min(Math.max(0,0>K[0]?be+K[0]:K[0]),be);for(var be=Te===1?be:Math.min(ee+(K[1]||0),be),Te=ee+Te-2,ae=Math.max(be,Te),xe=[],_e=[],Ve=2;ee<ae;++ee,++Ve)ee<be&&_e.push(j("deleted",z[ee],ee)),ee<Te&&xe.push(j("added",K[Ve],ee));f.a.Kc(_e,xe);break;default:return}F=q}}}};var Z=f.a.Da("_state");f.o=f.$=function(b,R,E){function I(){if(0<arguments.length){if(typeof F=="function")F.apply(N.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return N.ra||f.u.cc(I),(N.ka||N.J&&I.Xa())&&I.ha(),N.X}if(typeof b=="object"?E=b:(E=E||{},b&&(E.read=b)),typeof E.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var F=E.write,N={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:E.read,nb:R||E.owner,l:E.disposeWhenNodeIsRemoved||E.l||null,Sa:E.disposeWhen||E.Sa,Rb:null,I:{},V:0,Ic:null};return I[Z]=N,I.Nc=typeof F=="function",f.a.Ba||f.a.extend(I,f.T.fn),f.T.fn.qb(I),f.a.Ab(I,G),E.pure?(N.wb=!0,N.J=!0,f.a.extend(I,X)):E.deferEvaluation&&f.a.extend(I,P),f.options.deferUpdates&&f.Ta.deferred(I,!0),N.l&&(N.jc=!0,N.l.nodeType||(N.l=null)),N.J||E.deferEvaluation||I.ha(),N.l&&I.ja()&&f.a.K.za(N.l,N.Rb=function(){I.s()}),I};var G={equalityComparer:c,qa:function(){return this[Z].V},Va:function(){var b=[];return f.a.P(this[Z].I,function(R,E){b[E.Ka]=E.da}),b},Vb:function(b){if(!this[Z].V)return!1;var R=this.Va();return f.a.A(R,b)!==-1?!0:!!f.a.Lb(R,function(E){return E.Vb&&E.Vb(b)})},uc:function(b,R,E){if(this[Z].wb&&R===this)throw Error("A 'pure' computed must not be called recursively");this[Z].I[b]=E,E.Ka=this[Z].V++,E.La=R.ob()},Xa:function(){var b,R,E=this[Z].I;for(b in E)if(Object.prototype.hasOwnProperty.call(E,b)&&(R=E[b],this.Ia&&R.da.Ja||R.da.Dd(R.La)))return!0},Jd:function(){this.Ia&&!this[Z].rb&&this.Ia(!1)},ja:function(){var b=this[Z];return b.ka||0<b.V},Rd:function(){this.Ja?this[Z].ka&&(this[Z].sa=!0):this.Hc()},$c:function(b){if(b.Hb){var R=b.subscribe(this.Jd,this,"dirty"),E=b.subscribe(this.Rd,this);return{da:b,s:function(){R.s(),E.s()}}}return b.subscribe(this.Hc,this)},Hc:function(){var b=this,R=b.throttleEvaluation;R&&0<=R?(clearTimeout(this[Z].Ic),this[Z].Ic=f.a.setTimeout(function(){b.ha(!0)},R)):b.Ia?b.Ia(!0):b.ha(!0)},ha:function(b){var R=this[Z],E=R.Sa,I=!1;if(!R.rb&&!R.ra){if(R.l&&!f.a.Sb(R.l)||E&&E()){if(!R.jc){this.s();return}}else R.jc=!1;R.rb=!0;try{I=this.zd(b)}finally{R.rb=!1}return I}},zd:function(b){var R=this[Z],I=!1,E=R.wb?e:!R.V,I={qd:this,mb:R.I,Qb:R.V};f.u.xc({pd:I,od:y,o:this,Ya:E}),R.I={},R.V=0;var F=this.yd(R,I);return R.V?I=this.sb(R.X,F):(this.s(),I=!0),I&&(R.J?this.Gb():this.notifySubscribers(R.X,"beforeChange"),R.X=F,this.notifySubscribers(R.X,"spectate"),!R.J&&b&&this.notifySubscribers(R.X),this.rc&&this.rc()),E&&this.notifySubscribers(R.X,"awake"),I},yd:function(b,R){try{var E=b.Wc;return b.nb?E.call(b.nb):E()}finally{f.u.end(),R.Qb&&!b.J&&f.a.P(R.mb,p),b.sa=b.ka=!1}},v:function(b){var R=this[Z];return(R.ka&&(b||!R.V)||R.J&&this.Xa())&&this.ha(),R.X},ub:function(b){f.T.fn.ub.call(this,b),this.nc=function(){return this[Z].J||(this[Z].sa?this.ha():this[Z].ka=!1),this[Z].X},this.Ia=function(R){this.pc(this[Z].X),this[Z].ka=!0,R&&(this[Z].sa=!0),this.qc(this,!R)}},s:function(){var b=this[Z];!b.J&&b.I&&f.a.P(b.I,function(R,E){E.s&&E.s()}),b.l&&b.Rb&&f.a.K.yb(b.l,b.Rb),b.I=e,b.V=0,b.ra=!0,b.sa=!1,b.ka=!1,b.J=!1,b.l=e,b.Sa=e,b.Wc=e,this.Nc||(b.nb=e)}},X={Qa:function(b){var R=this,E=R[Z];if(!E.ra&&E.J&&b=="change"){if(E.J=!1,E.sa||R.Xa())E.I=null,E.V=0,R.ha()&&R.Gb();else{var I=[];f.a.P(E.I,function(F,N){I[N.Ka]=F}),f.a.D(I,function(F,N){var Y=E.I[F],k=R.$c(Y.da);k.Ka=N,k.La=Y.La,E.I[F]=k}),R.Xa()&&R.ha()&&R.Gb()}E.ra||R.notifySubscribers(E.X,"awake")}},hb:function(b){var R=this[Z];R.ra||b!="change"||this.Wa("change")||(f.a.P(R.I,function(E,I){I.s&&(R.I[E]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),R.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var b=this[Z];return b.J&&(b.sa||this.Xa())&&this.ha(),f.T.fn.ob.call(this)}},P={Qa:function(b){b!="change"&&b!="beforeChange"||this.v()}};f.a.Ba&&f.a.setPrototypeOf(G,f.T.fn);var v=f.ta.Ma;G[v]=f.o,f.Oc=function(b){return typeof b=="function"&&b[v]===G[v]},f.Fd=function(b){return f.Oc(b)&&b[Z]&&b[Z].wb},f.b("computed",f.o),f.b("dependentObservable",f.o),f.b("isComputed",f.Oc),f.b("isPureComputed",f.Fd),f.b("computed.fn",G),f.L(G,"peek",G.v),f.L(G,"dispose",G.s),f.L(G,"isActive",G.ja),f.L(G,"getDependenciesCount",G.qa),f.L(G,"getDependencies",G.Va),f.xb=function(b,R){return typeof b=="function"?f.o(b,R,{pure:!0}):(b=f.a.extend({},b),b.pure=!0,f.o(b,R))},f.b("pureComputed",f.xb),function(){function b(I,F,N){if(N=N||new E,I=F(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var Y=I instanceof Array?[]:{};return N.save(I,Y),R(I,function(k){var O=F(I[k]);switch(typeof O){case"boolean":case"number":case"string":case"function":Y[k]=O;break;case"object":case"undefined":var U=N.get(O);Y[k]=U!==e?U:b(O,F,N)}}),Y}function R(I,F){if(I instanceof Array){for(var N=0;N<I.length;N++)F(N);typeof I.toJSON=="function"&&F("toJSON")}else for(N in I)F(N)}function E(){this.keys=[],this.values=[]}f.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return b(I,function(F){for(var N=0;f.O(F)&&10>N;N++)F=F();return F})},f.toJSON=function(I,F,N){return I=f.ad(I),f.a.hc(I,F,N)},E.prototype={constructor:E,save:function(I,F){var N=f.a.A(this.keys,I);0<=N?this.values[N]=F:(this.keys.push(I),this.values.push(F))},get:function(I){return I=f.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),f.b("toJS",f.ad),f.b("toJSON",f.toJSON),f.Wd=function(b,R,E){function I(F){var N=f.xb(b,E).extend({ma:"always"}),Y=N.subscribe(function(k){k&&(Y.s(),F(k))});return N.notifySubscribers(N.v()),Y}return typeof Promise!="function"||R?I(R.bind(E)):new Promise(I)},f.b("when",f.Wd),function(){f.w={M:function(b){switch(f.a.R(b)){case"option":return b.__ko__hasDomDataOptionValue__===!0?f.a.g.get(b,f.c.options.$b):7>=f.a.W?b.getAttributeNode("value")&&b.getAttributeNode("value").specified?b.value:b.text:b.value;case"select":return 0<=b.selectedIndex?f.w.M(b.options[b.selectedIndex]):e;default:return b.value}},cb:function(b,R,E){switch(f.a.R(b)){case"option":typeof R=="string"?(f.a.g.set(b,f.c.options.$b,e),"__ko__hasDomDataOptionValue__"in b&&delete b.__ko__hasDomDataOptionValue__,b.value=R):(f.a.g.set(b,f.c.options.$b,R),b.__ko__hasDomDataOptionValue__=!0,b.value=typeof R=="number"?R:"");break;case"select":(R===""||R===null)&&(R=e);for(var I=-1,F=0,N=b.options.length,Y;F<N;++F)if(Y=f.w.M(b.options[F]),Y==R||Y===""&&R===e){I=F;break}(E||0<=I||R===e&&1<b.size)&&(b.selectedIndex=I,f.a.W===6&&f.a.setTimeout(function(){b.selectedIndex=I},0));break;default:(R===null||R===e)&&(R=""),b.value=R}}}}(),f.b("selectExtensions",f.w),f.b("selectExtensions.readValue",f.w.M),f.b("selectExtensions.writeValue",f.w.cb),f.m=function(){function b(k){k=f.a.Db(k),k.charCodeAt(0)===123&&(k=k.slice(1,-1)),k+=` +,`;var O=[],U=k.match(I),J,z=[],ee=0;if(1<U.length){for(var K=0,j;j=U[K];++K){var q=j.charCodeAt(0);if(q===44){if(0>=ee){O.push(J&&z.length?{key:J,value:z.join("")}:{unknown:J||z.join("")}),J=ee=0,z=[];continue}}else if(q===58){if(!ee&&!J&&z.length===1){J=z.pop();continue}}else{if(q===47&&1<j.length&&(j.charCodeAt(1)===47||j.charCodeAt(1)===42))continue;q===47&&K&&1<j.length?(q=U[K-1].match(F))&&!N[q[0]]&&(k=k.substr(k.indexOf(j)+1),U=k.match(I),K=-1,j="/"):q===40||q===123||q===91?++ee:q===41||q===125||q===93?--ee:J||z.length||q!==34&&q!==39||(j=j.slice(1,-1))}z.push(j)}if(0<ee)throw Error("Unbalanced parentheses, braces, or brackets")}return O}var R=["true","false","null","undefined"],E=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),F=/[\])"'A-Za-z0-9_$]+$/,N={in:1,return:1,typeof:1},Y={};return{Ra:[],wa:Y,ac:b,vb:function(k,O){function U(q,be){var Te;if(!K){var ae=f.getBindingHandler(q);if(ae&&ae.preprocess&&!(be=ae.preprocess(be,q,U)))return;(ae=Y[q])&&(Te=be,0<=f.a.A(R,Te)?Te=!1:(ae=Te.match(E),Te=ae===null?!1:ae[1]?"Object("+ae[1]+")"+ae[2]:Te),ae=Te),ae&&z.push("'"+(typeof Y[q]=="string"?Y[q]:q)+"':function(_z){"+Te+"=_z}")}ee&&(be="function(){return "+be+" }"),J.push("'"+q+"':"+be)}O=O||{};var J=[],z=[],ee=O.valueAccessors,K=O.bindingParams,j=typeof k=="string"?b(k):k;return f.a.D(j,function(q){U(q.key||q.unknown,q.value)}),z.length&&U("_ko_property_writers","{"+z.join(",")+" }"),J.join(",")},Id:function(k,O){for(var U=0;U<k.length;U++)if(k[U].key==O)return!0;return!1},eb:function(k,O,U,J,z){k&&f.O(k)?!f.Za(k)||z&&k.v()===J||k(J):(k=O.get("_ko_property_writers"))&&k[U]&&k[U](J)}}}(),f.b("expressionRewriting",f.m),f.b("expressionRewriting.bindingRewriteValidators",f.m.Ra),f.b("expressionRewriting.parseObjectLiteral",f.m.ac),f.b("expressionRewriting.preProcessBindings",f.m.vb),f.b("expressionRewriting._twoWayBindings",f.m.wa),f.b("jsonExpressionRewriting",f.m),f.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",f.m.vb),function(){function b(U){return U.nodeType==8&&N.test(F?U.text:U.nodeValue)}function R(U){return U.nodeType==8&&Y.test(F?U.text:U.nodeValue)}function E(U,J){for(var z=U,ee=1,K=[];z=z.nextSibling;){if(R(z)&&(f.a.g.set(z,O,!0),ee--,ee===0))return K;K.push(z),b(z)&&ee++}if(!J)throw Error("Cannot find closing comment tag to match: "+U.nodeValue);return null}function I(U,J){var z=E(U,J);return z?0<z.length?z[z.length-1].nextSibling:U.nextSibling:null}var F=n&&n.createComment("test").text==="<!--test-->",N=F?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,Y=F?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,k={ul:!0,ol:!0},O="__ko_matchedEndComment__";f.h={ea:{},childNodes:function(U){return b(U)?E(U):U.childNodes},Ea:function(U){if(b(U)){U=f.h.childNodes(U);for(var J=0,z=U.length;J<z;J++)f.removeNode(U[J])}else f.a.Tb(U)},va:function(U,J){if(b(U)){f.h.Ea(U);for(var z=U.nextSibling,ee=0,K=J.length;ee<K;ee++)z.parentNode.insertBefore(J[ee],z)}else f.a.va(U,J)},Vc:function(U,J){var z;b(U)?(z=U.nextSibling,U=U.parentNode):z=U.firstChild,z?J!==z&&U.insertBefore(J,z):U.appendChild(J)},Wb:function(U,J,z){z?(z=z.nextSibling,b(U)&&(U=U.parentNode),z?J!==z&&U.insertBefore(J,z):U.appendChild(J)):f.h.Vc(U,J)},firstChild:function(U){if(b(U))return!U.nextSibling||R(U.nextSibling)?null:U.nextSibling;if(U.firstChild&&R(U.firstChild))throw Error("Found invalid end comment, as the first child of "+U);return U.firstChild},nextSibling:function(U){if(b(U)&&(U=I(U)),U.nextSibling&&R(U.nextSibling)){var J=U.nextSibling;if(R(J)&&!f.a.g.get(J,O))throw Error("Found end comment without a matching opening comment, as child of "+U);return null}return U.nextSibling},Cd:b,Vd:function(U){return(U=(F?U.text:U.nodeValue).match(N))?U[1]:null},Sc:function(U){if(k[f.a.R(U)]){var J=U.firstChild;if(J)do if(J.nodeType===1){var z;z=J.firstChild;var ee=null;if(z)do if(ee)ee.push(z);else if(b(z)){var K=I(z,!0);K?z=K:ee=[z]}else R(z)&&(ee=[z]);while(z=z.nextSibling);if(z=ee)for(ee=J.nextSibling,K=0;K<z.length;K++)ee?U.insertBefore(z[K],ee):U.appendChild(z[K])}while(J=J.nextSibling)}}}}(),f.b("virtualElements",f.h),f.b("virtualElements.allowedBindings",f.h.ea),f.b("virtualElements.emptyNode",f.h.Ea),f.b("virtualElements.insertAfter",f.h.Wb),f.b("virtualElements.prepend",f.h.Vc),f.b("virtualElements.setDomNodeChildren",f.h.va),function(){f.ga=function(){this.nd={}},f.a.extend(f.ga.prototype,{nodeHasBindings:function(b){switch(b.nodeType){case 1:return b.getAttribute("data-bind")!=null||f.j.getComponentNameForNode(b);case 8:return f.h.Cd(b);default:return!1}},getBindings:function(b,R){var E=this.getBindingsString(b,R),E=E?this.parseBindingsString(E,R,b):null;return f.j.tc(E,b,R,!1)},getBindingAccessors:function(b,R){var E=this.getBindingsString(b,R),E=E?this.parseBindingsString(E,R,b,{valueAccessors:!0}):null;return f.j.tc(E,b,R,!0)},getBindingsString:function(b){switch(b.nodeType){case 1:return b.getAttribute("data-bind");case 8:return f.h.Vd(b);default:return null}},parseBindingsString:function(b,R,E,I){try{var F=this.nd,N=b+(I&&I.valueAccessors||""),Y;if(!(Y=F[N])){var k,O="with($context){with($data||{}){return{"+f.m.vb(b,I)+"}}}";k=new Function("$context","$element",O),Y=F[N]=k}return Y(R,E)}catch(U){throw U.message=`Unable to parse bindings. +Bindings value: `+b+` +Message: `+U.message,U}}}),f.ga.instance=new f.ga}(),f.b("bindingProvider",f.ga),function(){function b(ae){var xe=(ae=f.a.g.get(ae,Te))&&ae.N;xe&&(ae.N=null,xe.Tc())}function R(ae,xe,_e){this.node=ae,this.yc=xe,this.kb=[],this.H=!1,xe.N||f.a.K.za(ae,b),_e&&_e.N&&(_e.N.kb.push(ae),this.Kb=_e)}function E(ae){return function(){return ae}}function I(ae){return ae()}function F(ae){return f.a.Ga(f.u.G(ae),function(xe,_e){return function(){return ae()[_e]}})}function N(ae,xe,_e){return typeof ae=="function"?F(ae.bind(null,xe,_e)):f.a.Ga(ae,E)}function Y(ae,xe){return F(this.getBindings.bind(this,ae,xe))}function k(ae,xe){var _e=f.h.firstChild(xe);if(_e){var Ve,Ie=f.ga.instance,Me=Ie.preprocessNode;if(Me){for(;Ve=_e;)_e=f.h.nextSibling(Ve),Me.call(Ie,Ve);_e=f.h.firstChild(xe)}for(;Ve=_e;)_e=f.h.nextSibling(Ve),O(ae,Ve)}f.i.ma(xe,f.i.H)}function O(ae,xe){var _e=ae,Ve=xe.nodeType===1;Ve&&f.h.Sc(xe),(Ve||f.ga.instance.nodeHasBindings(xe))&&(_e=J(xe,null,ae).bindingContextForDescendants),_e&&!q[f.a.R(xe)]&&k(_e,xe)}function U(ae){var xe=[],_e={},Ve=[];return f.a.P(ae,function Ie(Me){if(!_e[Me]){var ve=f.getBindingHandler(Me);ve&&(ve.after&&(Ve.push(Me),f.a.D(ve.after,function(ke){if(ae[ke]){if(f.a.A(Ve,ke)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Ve.join(", "));Ie(ke)}}),Ve.length--),xe.push({key:Me,Mc:ve})),_e[Me]=!0}}),xe}function J(ae,xe,_e){var Ve=f.a.g.Ub(ae,Te,{}),Ie=Ve.hd;if(!xe){if(Ie)throw Error("You cannot apply bindings multiple times to the same element.");Ve.hd=!0}Ie||(Ve.context=_e),Ve.Zb||(Ve.Zb={});var Me;if(xe&&typeof xe!="function")Me=xe;else{var ve=f.ga.instance,ke=ve.getBindingAccessors||Y,ct=f.$(function(){return(Me=xe?xe(_e,ae):ke.call(ve,ae,_e))&&(_e[ee]&&_e[ee](),_e[j]&&_e[j]()),Me},null,{l:ae});Me&&ct.ja()||(ct=null)}var yt=_e,ot;if(Me){var ln=function(){return f.a.Ga(ct?ct():Me,I)},vn=ct?function(Dt){return function(){return I(ct()[Dt])}}:function(Dt){return Me[Dt]};ln.get=function(Dt){return Me[Dt]&&I(vn(Dt))},ln.has=function(Dt){return Dt in Me},f.i.H in Me&&f.i.subscribe(ae,f.i.H,function(){var Dt=(0,Me[f.i.H])();if(Dt){var Nt=f.h.childNodes(ae);Nt.length&&Dt(Nt,f.Ec(Nt[0]))}}),f.i.pa in Me&&(yt=f.i.Cb(ae,_e),f.i.subscribe(ae,f.i.pa,function(){var Dt=(0,Me[f.i.pa])();Dt&&f.h.firstChild(ae)&&Dt(ae)})),Ve=U(Me),f.a.D(Ve,function(Dt){var Nt=Dt.Mc.init,pe=Dt.Mc.update,Ce=Dt.key;if(ae.nodeType===8&&!f.h.ea[Ce])throw Error("The binding '"+Ce+"' cannot be used with virtual elements");try{typeof Nt=="function"&&f.u.G(function(){var Ht=Nt(ae,vn(Ce),ln,yt.$data,yt);if(Ht&&Ht.controlsDescendantBindings){if(ot!==e)throw Error("Multiple bindings ("+ot+" and "+Ce+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");ot=Ce}}),typeof pe=="function"&&f.$(function(){pe(ae,vn(Ce),ln,yt.$data,yt)},null,{l:ae})}catch(Ht){throw Ht.message='Unable to process binding "'+Ce+": "+Me[Ce]+`" +Message: `+Ht.message,Ht}})}return Ve=ot===e,{shouldBindDescendants:Ve,bindingContextForDescendants:Ve&&yt}}function z(ae,xe){return ae&&ae instanceof f.fa?ae:new f.fa(ae,e,e,xe)}var ee=f.a.Da("_subscribable"),K=f.a.Da("_ancestorBindingInfo"),j=f.a.Da("_dataDependency");f.c={};var q={script:!0,textarea:!0,template:!0};f.getBindingHandler=function(ae){return f.c[ae]};var be={};f.fa=function(ae,xe,_e,Ve,Ie){function Me(){var vn=yt?ct():ct,Dt=f.a.f(vn);return xe?(f.a.extend(ve,xe),K in xe&&(ve[K]=xe[K])):(ve.$parents=[],ve.$root=Dt,ve.ko=f),ve[ee]=ot,ke?Dt=ve.$data:(ve.$rawData=vn,ve.$data=Dt),_e&&(ve[_e]=Dt),Ve&&Ve(ve,xe,Dt),xe&&xe[ee]&&!f.S.o().Vb(xe[ee])&&xe[ee](),ln&&(ve[j]=ln),ve.$data}var ve=this,ke=ae===be,ct=ke?e:ae,yt=typeof ct=="function"&&!f.O(ct),ot,ln=Ie&&Ie.dataDependency;Ie&&Ie.exportDependencies?Me():(ot=f.xb(Me),ot.v(),ot.ja()?ot.equalityComparer=null:ve[ee]=e)},f.fa.prototype.createChildContext=function(ae,xe,_e,Ve){if(!Ve&&xe&&typeof xe=="object"&&(Ve=xe,xe=Ve.as,_e=Ve.extend),xe&&Ve&&Ve.noChildContext){var Ie=typeof ae=="function"&&!f.O(ae);return new f.fa(be,this,null,function(Me){_e&&_e(Me),Me[xe]=Ie?ae():ae},Ve)}return new f.fa(ae,this,xe,function(Me,ve){Me.$parentContext=ve,Me.$parent=ve.$data,Me.$parents=(ve.$parents||[]).slice(0),Me.$parents.unshift(Me.$parent),_e&&_e(Me)},Ve)},f.fa.prototype.extend=function(ae,xe){return new f.fa(be,this,null,function(_e){f.a.extend(_e,typeof ae=="function"?ae(_e):ae)},xe)};var Te=f.a.g.Z();R.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},R.prototype.sd=function(ae){f.a.Pa(this.kb,ae),!this.kb.length&&this.H&&this.Cc()},R.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,f.a.K.yb(this.node,b),f.i.ma(this.node,f.i.pa),this.Tc())},f.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(ae,xe,_e,Ve,Ie){var Me=f.a.g.Ub(ae,Te,{});return Me.Fa||(Me.Fa=new f.T),Ie&&Ie.notifyImmediately&&Me.Zb[xe]&&f.u.G(_e,Ve,[ae]),Me.Fa.subscribe(_e,Ve,xe)},ma:function(ae,xe){var _e=f.a.g.get(ae,Te);if(_e&&(_e.Zb[xe]=!0,_e.Fa&&_e.Fa.notifySubscribers(ae,xe),xe==f.i.H)){if(_e.N)_e.N.Cc();else if(_e.N===e&&_e.Fa&&_e.Fa.Wa(f.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(ae,xe){var _e=f.a.g.Ub(ae,Te,{});return _e.N||(_e.N=new R(ae,_e,xe[K])),xe[K]==_e?xe:xe.extend(function(Ve){Ve[K]=_e})}},f.Td=function(ae){return(ae=f.a.g.get(ae,Te))&&ae.context},f.ib=function(ae,xe,_e){return ae.nodeType===1&&f.h.Sc(ae),J(ae,xe,z(_e))},f.ld=function(ae,xe,_e){return _e=z(_e),f.ib(ae,N(xe,_e,ae),_e)},f.Oa=function(ae,xe){xe.nodeType!==1&&xe.nodeType!==8||k(z(ae),xe)},f.vc=function(ae,xe,_e){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(xe=n.body,!xe)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!xe||xe.nodeType!==1&&xe.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");O(z(ae,_e),xe)},f.Dc=function(ae){return!ae||ae.nodeType!==1&&ae.nodeType!==8?e:f.Td(ae)},f.Ec=function(ae){return(ae=f.Dc(ae))?ae.$data:e},f.b("bindingHandlers",f.c),f.b("bindingEvent",f.i),f.b("bindingEvent.subscribe",f.i.subscribe),f.b("bindingEvent.startPossiblyAsyncContentBinding",f.i.Cb),f.b("applyBindings",f.vc),f.b("applyBindingsToDescendants",f.Oa),f.b("applyBindingAccessorsToNode",f.ib),f.b("applyBindingsToNode",f.ld),f.b("contextFor",f.Dc),f.b("dataFor",f.Ec)}(),function(b){function R(Y,k){var O=Object.prototype.hasOwnProperty.call(F,Y)?F[Y]:b,U;O?O.subscribe(k):(O=F[Y]=new f.T,O.subscribe(k),E(Y,function(J,z){var ee=!(!z||!z.synchronous);N[Y]={definition:J,Gd:ee},delete F[Y],U||ee?O.notifySubscribers(J):f.na.zb(function(){O.notifySubscribers(J)})}),U=!0)}function E(Y,k){I("getConfig",[Y],function(O){O?I("loadComponent",[Y,O],function(U){k(U,O)}):k(null,null)})}function I(Y,k,O,U){U||(U=f.j.loaders.slice(0));var J=U.shift();if(J){var z=J[Y];if(z){var ee=!1;if(z.apply(J,k.concat(function(K){ee?O(null):K!==null?O(K):I(Y,k,O,U)}))!==b&&(ee=!0,!J.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(Y,k,O,U)}else O(null)}var F={},N={};f.j={get:function(Y,k){var O=Object.prototype.hasOwnProperty.call(N,Y)?N[Y]:b;O?O.Gd?f.u.G(function(){k(O.definition)}):f.na.zb(function(){k(O.definition)}):R(Y,k)},Bc:function(Y){delete N[Y]},oc:I},f.j.loaders=[],f.b("components",f.j),f.b("components.get",f.j.get),f.b("components.clearCachedDefinition",f.j.Bc)}(),function(){function b(O,U,J,z){function ee(){--j===0&&z(K)}var K={},j=2,q=J.template;J=J.viewModel,q?F(U,q,function(be){f.j.oc("loadTemplate",[O,be],function(Te){K.template=Te,ee()})}):ee(),J?F(U,J,function(be){f.j.oc("loadViewModel",[O,be],function(Te){K[k]=Te,ee()})}):ee()}function R(O,U,J){if(typeof U=="function")J(function(ee){return new U(ee)});else if(typeof U[k]=="function")J(U[k]);else if("instance"in U){var z=U.instance;J(function(){return z})}else"viewModel"in U?R(O,U.viewModel,J):O("Unknown viewModel value: "+U)}function E(O){switch(f.a.R(O)){case"script":return f.a.ua(O.text);case"textarea":return f.a.ua(O.value);case"template":if(I(O.content))return f.a.Ca(O.content.childNodes)}return f.a.Ca(O.childNodes)}function I(O){return t.DocumentFragment?O instanceof DocumentFragment:O&&O.nodeType===11}function F(O,U,J){typeof U.require=="string"?a||t.require?(a||t.require)([U.require],function(z){z&&typeof z=="object"&&z.Xd&&z.default&&(z=z.default),J(z)}):O("Uses require, but no AMD loader is present"):J(U)}function N(O){return function(U){throw Error("Component '"+O+"': "+U)}}var Y={};f.j.register=function(O,U){if(!U)throw Error("Invalid configuration for "+O);if(f.j.tb(O))throw Error("Component "+O+" is already registered");Y[O]=U},f.j.tb=function(O){return Object.prototype.hasOwnProperty.call(Y,O)},f.j.unregister=function(O){delete Y[O],f.j.Bc(O)},f.j.Fc={getConfig:function(O,U){U(f.j.tb(O)?Y[O]:null)},loadComponent:function(O,U,J){var z=N(O);F(z,U,function(ee){b(O,z,ee,J)})},loadTemplate:function(O,U,J){if(O=N(O),typeof U=="string")J(f.a.ua(U));else if(U instanceof Array)J(U);else if(I(U))J(f.a.la(U.childNodes));else if(U.element)if(U=U.element,t.HTMLElement?U instanceof HTMLElement:U&&U.tagName&&U.nodeType===1)J(E(U));else if(typeof U=="string"){var z=n.getElementById(U);z?J(E(z)):O("Cannot find element with ID "+U)}else O("Unknown element type: "+U);else O("Unknown template value: "+U)},loadViewModel:function(O,U,J){R(N(O),U,J)}};var k="createViewModel";f.b("components.register",f.j.register),f.b("components.isRegistered",f.j.tb),f.b("components.unregister",f.j.unregister),f.b("components.defaultLoader",f.j.Fc),f.j.loaders.push(f.j.Fc),f.j.dd=Y}(),function(){function b(E,I){var F=E.getAttribute("params");if(F){var F=R.parseBindingsString(F,I,E,{valueAccessors:!0,bindingParams:!0}),F=f.a.Ga(F,function(k){return f.o(k,null,{l:E})}),N=f.a.Ga(F,function(k){var O=k.v();return k.ja()?f.o({read:function(){return f.a.f(k())},write:f.Za(O)&&function(U){k()(U)},l:E}):O});return Object.prototype.hasOwnProperty.call(N,"$raw")||(N.$raw=F),N}return{$raw:{}}}f.j.getComponentNameForNode=function(E){var I=f.a.R(E);if(f.j.tb(I)&&(I.indexOf("-")!=-1||""+E=="[object HTMLUnknownElement]"||8>=f.a.W&&E.tagName===I))return I},f.j.tc=function(E,I,F,N){if(I.nodeType===1){var Y=f.j.getComponentNameForNode(I);if(Y){if(E=E||{},E.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var k={name:Y,params:b(I,F)};E.component=N?function(){return k}:k}}return E};var R=new f.ga;9>f.a.W&&(f.j.register=function(E){return function(I){return E.apply(this,arguments)}}(f.j.register),n.createDocumentFragment=function(E){return function(){var I=E(),F=f.j.dd,N;for(N in F);return I}}(n.createDocumentFragment))}(),function(){function b(I,F,N){if(F=F.template,!F)throw Error("Component '"+I+"' has no template");I=f.a.Ca(F),f.h.va(N,I)}function R(I,F,N){var Y=I.createViewModel;return Y?Y.call(I,F,N):F}var E=0;f.c.component={init:function(I,F,N,Y,k){function O(){var K=U&&U.dispose;typeof K=="function"&&K.call(U),z&&z.s(),J=U=z=null}var U,J,z,ee=f.a.la(f.h.childNodes(I));return f.h.Ea(I),f.a.K.za(I,O),f.o(function(){var K=f.a.f(F()),j,q;if(typeof K=="string"?j=K:(j=f.a.f(K.name),q=f.a.f(K.params)),!j)throw Error("No component name specified");var be=f.i.Cb(I,k),Te=J=++E;f.j.get(j,function(ae){if(J===Te){if(O(),!ae)throw Error("Unknown component '"+j+"'");b(j,ae,I);var xe=R(ae,q,{element:I,templateNodes:ee});ae=be.createChildContext(xe,{extend:function(_e){_e.$component=xe,_e.$componentTemplateNodes=ee}}),xe&&xe.koDescendantsComplete&&(z=f.i.subscribe(I,f.i.pa,xe.koDescendantsComplete,xe)),U=xe,f.Oa(ae,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},f.h.ea.component=!0}();var A={class:"className",for:"htmlFor"};f.c.attr={update:function(b,R){var E=f.a.f(R())||{};f.a.P(E,function(I,F){F=f.a.f(F);var N=I.indexOf(":"),N="lookupNamespaceURI"in b&&0<N&&b.lookupNamespaceURI(I.substr(0,N)),Y=F===!1||F===null||F===e;Y?N?b.removeAttributeNS(N,I):b.removeAttribute(I):F=F.toString(),8>=f.a.W&&I in A?(I=A[I],Y?b.removeAttribute(I):b[I]=F):Y||(N?b.setAttributeNS(N,I,F):b.setAttribute(I,F)),I==="name"&&f.a.Yc(b,Y?"":F)})}},function(){f.c.checked={after:["value","attr"],init:function(b,R,E){function I(){var K=b.checked,j=N();if(!f.S.Ya()&&(K||!k&&!f.S.qa())){var q=f.u.G(R);if(U){var be=J?q.v():q,Te=ee;ee=j,Te!==j?K&&(f.a.Na(be,j,!0),f.a.Na(be,Te,!1)):f.a.Na(be,j,K),J&&f.Za(q)&&q(be)}else Y&&(j===e?j=K:K||(j=e)),f.m.eb(q,E,"checked",j,!0)}}function F(){var K=f.a.f(R()),j=N();U?(b.checked=0<=f.a.A(K,j),ee=j):b.checked=Y&&j===e?!!K:N()===K}var N=f.xb(function(){if(E.has("checkedValue"))return f.a.f(E.get("checkedValue"));if(z)return E.has("value")?f.a.f(E.get("value")):b.value}),Y=b.type=="checkbox",k=b.type=="radio";if(Y||k){var O=R(),U=Y&&f.a.f(O)instanceof Array,J=!(U&&O.push&&O.splice),z=k||U,ee=U?N():e;k&&!b.name&&f.c.uniqueName.init(b,function(){return!0}),f.o(I,null,{l:b}),f.a.B(b,"click",I),f.o(F,null,{l:b}),O=e}}},f.m.wa.checked=!0,f.c.checkedValue={update:function(b,R){b.value=f.a.f(R())}}}(),f.c.class={update:function(b,R){var E=f.a.Db(f.a.f(R()));f.a.Eb(b,b.__ko__cssValue,!1),b.__ko__cssValue=E,f.a.Eb(b,E,!0)}},f.c.css={update:function(b,R){var E=f.a.f(R());E!==null&&typeof E=="object"?f.a.P(E,function(I,F){F=f.a.f(F),f.a.Eb(b,I,F)}):f.c.class.update(b,R)}},f.c.enable={update:function(b,R){var E=f.a.f(R());E&&b.disabled?b.removeAttribute("disabled"):E||b.disabled||(b.disabled=!0)}},f.c.disable={update:function(b,R){f.c.enable.update(b,function(){return!f.a.f(R())})}},f.c.event={init:function(b,R,E,I,F){var N=R()||{};f.a.P(N,function(Y){typeof Y=="string"&&f.a.B(b,Y,function(k){var O,U=R()[Y];if(U){try{var J=f.a.la(arguments);I=F.$data,J.unshift(I),O=U.apply(I,J)}finally{O!==!0&&(k.preventDefault?k.preventDefault():k.returnValue=!1)}E.get(Y+"Bubble")===!1&&(k.cancelBubble=!0,k.stopPropagation&&k.stopPropagation())}})})}},f.c.foreach={Rc:function(b){return function(){var R=b(),E=f.a.bc(R);return!E||typeof E.length=="number"?{foreach:R,templateEngine:f.ba.Ma}:(f.a.f(R),{foreach:E.data,as:E.as,noChildContext:E.noChildContext,includeDestroyed:E.includeDestroyed,afterAdd:E.afterAdd,beforeRemove:E.beforeRemove,afterRender:E.afterRender,beforeMove:E.beforeMove,afterMove:E.afterMove,templateEngine:f.ba.Ma})}},init:function(b,R){return f.c.template.init(b,f.c.foreach.Rc(R))},update:function(b,R,E,I,F){return f.c.template.update(b,f.c.foreach.Rc(R),E,I,F)}},f.m.Ra.foreach=!1,f.h.ea.foreach=!0,f.c.hasfocus={init:function(b,R,E){function I(Y){b.__ko_hasfocusUpdating=!0;var k=b.ownerDocument;if("activeElement"in k){var O;try{O=k.activeElement}catch{O=k.body}Y=O===b}k=R(),f.m.eb(k,E,"hasfocus",Y,!0),b.__ko_hasfocusLastValue=Y,b.__ko_hasfocusUpdating=!1}var F=I.bind(null,!0),N=I.bind(null,!1);f.a.B(b,"focus",F),f.a.B(b,"focusin",F),f.a.B(b,"blur",N),f.a.B(b,"focusout",N),b.__ko_hasfocusLastValue=!1},update:function(b,R){var E=!!f.a.f(R());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===E||(E?b.focus():b.blur(),!E&&b.__ko_hasfocusLastValue&&b.ownerDocument.body.focus(),f.u.G(f.a.Fb,null,[b,E?"focusin":"focusout"]))}},f.m.wa.hasfocus=!0,f.c.hasFocus=f.c.hasfocus,f.m.wa.hasFocus="hasfocus",f.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,R){f.a.fc(b,R())}},function(){function b(R,E,I){f.c[R]={init:function(F,N,Y,k,O){var U,J,z={},ee,K,j;if(E){k=Y.get("as");var q=Y.get("noChildContext");j=!(k&&q),z={as:k,noChildContext:q,exportDependencies:j}}return K=(ee=Y.get("completeOn")=="render")||Y.has(f.i.pa),f.o(function(){var be=f.a.f(N()),Te=!I!=!be,ae=!J,xe;(j||Te!==U)&&(K&&(O=f.i.Cb(F,O)),Te&&((!E||j)&&(z.dataDependency=f.S.o()),xe=E?O.createChildContext(typeof be=="function"?be:N,z):f.S.qa()?O.extend(null,z):O),ae&&f.S.qa()&&(J=f.a.Ca(f.h.childNodes(F),!0)),Te?(ae||f.h.va(F,f.a.Ca(J)),f.Oa(xe,F)):(f.h.Ea(F),ee||f.i.ma(F,f.i.H)),U=Te)},null,{l:F}),{controlsDescendantBindings:!0}}},f.m.Ra[R]=!1,f.h.ea[R]=!0}b("if"),b("ifnot",!1,!0),b("with",!0)}(),f.c.let={init:function(b,R,E,I,F){return R=F.extend(R),f.Oa(R,b),{controlsDescendantBindings:!0}}},f.h.ea.let=!0;var M={};f.c.options={init:function(b){if(f.a.R(b)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<b.length;)b.remove(0);return{controlsDescendantBindings:!0}},update:function(b,R,E){function I(){return f.a.jb(b.options,function(q){return q.selected})}function F(q,be,Te){var ae=typeof be;return ae=="function"?be(q):ae=="string"?q[be]:Te}function N(q,be){if(K&&U)f.i.ma(b,f.i.H);else if(ee.length){var Te=0<=f.a.A(ee,f.w.M(be[0]));f.a.Zc(be[0],Te),K&&!Te&&f.u.G(f.a.Fb,null,[b,"change"])}}var Y=b.multiple,k=b.length!=0&&Y?b.scrollTop:null,O=f.a.f(R()),U=E.get("valueAllowUnset")&&E.has("value"),J=E.get("optionsIncludeDestroyed");R={};var z,ee=[];U||(Y?ee=f.a.Mb(I(),f.w.M):0<=b.selectedIndex&&ee.push(f.w.M(b.options[b.selectedIndex]))),O&&(typeof O.length>"u"&&(O=[O]),z=f.a.jb(O,function(q){return J||q===e||q===null||!f.a.f(q._destroy)}),E.has("optionsCaption")&&(O=f.a.f(E.get("optionsCaption")),O!==null&&O!==e&&z.unshift(M)));var K=!1;if(R.beforeRemove=function(q){b.removeChild(q)},O=N,E.has("optionsAfterRender")&&typeof E.get("optionsAfterRender")=="function"&&(O=function(q,be){N(0,be),f.u.G(E.get("optionsAfterRender"),null,[be[0],q!==M?q:e])}),f.a.ec(b,z,function(q,be,Te){return Te.length&&(ee=!U&&Te[0].selected?[f.w.M(Te[0])]:[],K=!0),be=b.ownerDocument.createElement("option"),q===M?(f.a.Bb(be,E.get("optionsCaption")),f.w.cb(be,e)):(Te=F(q,E.get("optionsValue"),q),f.w.cb(be,f.a.f(Te)),q=F(q,E.get("optionsText"),Te),f.a.Bb(be,q)),[be]},R,O),!U){var j;Y?j=ee.length&&I().length<ee.length:j=ee.length&&0<=b.selectedIndex?f.w.M(b.options[b.selectedIndex])!==ee[0]:ee.length||0<=b.selectedIndex,j&&f.u.G(f.a.Fb,null,[b,"change"])}(U||f.S.Ya())&&f.i.ma(b,f.i.H),f.a.wd(b),k&&20<Math.abs(k-b.scrollTop)&&(b.scrollTop=k)}},f.c.options.$b=f.a.g.Z(),f.c.selectedOptions={init:function(b,R,E){function I(){var Y=R(),k=[];f.a.D(b.getElementsByTagName("option"),function(O){O.selected&&k.push(f.w.M(O))}),f.m.eb(Y,E,"selectedOptions",k)}function F(){var Y=f.a.f(R()),k=b.scrollTop;Y&&typeof Y.length=="number"&&f.a.D(b.getElementsByTagName("option"),function(O){var U=0<=f.a.A(Y,f.w.M(O));O.selected!=U&&f.a.Zc(O,U)}),b.scrollTop=k}if(f.a.R(b)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var N;f.i.subscribe(b,f.i.H,function(){N?I():(f.a.B(b,"change",I),N=f.o(F,null,{l:b}))},null,{notifyImmediately:!0})},update:function(){}},f.m.wa.selectedOptions=!0,f.c.style={update:function(b,R){var E=f.a.f(R()||{});f.a.P(E,function(I,F){if(F=f.a.f(F),(F===null||F===e||F===!1)&&(F=""),o)o(b).css(I,F);else if(/^--/.test(I))b.style.setProperty(I,F);else{I=I.replace(/-(\w)/g,function(Y,k){return k.toUpperCase()});var N=b.style[I];b.style[I]=F,F===N||b.style[I]!=N||isNaN(F)||(b.style[I]=F+"px")}})}},f.c.submit={init:function(b,R,E,I,F){if(typeof R()!="function")throw Error("The value for a submit binding must be a function");f.a.B(b,"submit",function(N){var Y,k=R();try{Y=k.call(F.$data,b)}finally{Y!==!0&&(N.preventDefault?N.preventDefault():N.returnValue=!1)}})}},f.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(b,R){f.a.Bb(b,R())}},f.h.ea.text=!0,function(){if(t&&t.navigator){var b=function(z){if(z)return parseFloat(z[1])},R=t.navigator.userAgent,E,I,F,N,Y;(E=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(Y=b(R.match(/Edge\/([^ ]+)$/)))||b(R.match(/Chrome\/([^ ]+)/))||(I=b(R.match(/Version\/([^ ]+) Safari/)))||(F=b(R.match(/Firefox\/([^ ]+)/)))||(N=f.a.W||b(R.match(/MSIE ([^ ]+)/)))||(N=b(R.match(/rv:([^ )]+)/)))}if(8<=N&&10>N)var k=f.a.g.Z(),O=f.a.g.Z(),U=function(z){var ee=this.activeElement;(ee=ee&&f.a.g.get(ee,O))&&ee(z)},J=function(z,ee){var K=z.ownerDocument;f.a.g.get(K,k)||(f.a.g.set(K,k,!0),f.a.B(K,"selectionchange",U)),f.a.g.set(z,O,ee)};f.c.textInput={init:function(z,ee,K){function j(Me,ve){f.a.B(z,Me,ve)}function q(){var Me=f.a.f(ee());(Me===null||Me===e)&&(Me=""),_e!==e&&Me===_e?f.a.setTimeout(q,4):z.value!==Me&&(Ie=!0,z.value=Me,Ie=!1,ae=z.value)}function be(){xe||(_e=z.value,xe=f.a.setTimeout(Te,4))}function Te(){clearTimeout(xe),_e=xe=e;var Me=z.value;ae!==Me&&(ae=Me,f.m.eb(ee(),K,"textInput",Me))}var ae=z.value,xe,_e,Ve=f.a.W==9?be:Te,Ie=!1;N&&j("keypress",Te),11>N&&j("propertychange",function(Me){Ie||Me.propertyName!=="value"||Ve(Me)}),N==8&&(j("keyup",Te),j("keydown",Te)),J&&(J(z,Ve),j("dragend",be)),(!N||9<=N)&&j("input",Ve),5>I&&f.a.R(z)==="textarea"?(j("keydown",be),j("paste",be),j("cut",be)):11>E?j("keydown",be):4>F?(j("DOMAutoComplete",Te),j("dragdrop",Te),j("drop",Te)):Y&&z.type==="number"&&j("keydown",be),j("change",Te),j("blur",Te),f.o(q,null,{l:z})}},f.m.wa.textInput=!0,f.c.textinput={preprocess:function(z,ee,K){K("textInput",z)}}}(),f.c.uniqueName={init:function(b,R){if(R()){var E="ko_unique_"+ ++f.c.uniqueName.rd;f.a.Yc(b,E)}}},f.c.uniqueName.rd=0,f.c.using={init:function(b,R,E,I,F){var N;return E.has("as")&&(N={as:E.get("as"),noChildContext:E.get("noChildContext")}),R=F.createChildContext(R,N),f.Oa(R,b),{controlsDescendantBindings:!0}}},f.h.ea.using=!0,f.c.value={init:function(b,R,E){var I=f.a.R(b),F=I=="input";if(!F||b.type!="checkbox"&&b.type!="radio"){var N=[],Y=E.get("valueUpdate"),k=!1,O=null;Y&&(typeof Y=="string"?N=[Y]:N=f.a.wc(Y),f.a.Pa(N,"change"));var U=function(){O=null,k=!1;var ee=R(),K=f.w.M(b);f.m.eb(ee,E,"value",K)};!f.a.W||!F||b.type!="text"||b.autocomplete=="off"||b.form&&b.form.autocomplete=="off"||f.a.A(N,"propertychange")!=-1||(f.a.B(b,"propertychange",function(){k=!0}),f.a.B(b,"focus",function(){k=!1}),f.a.B(b,"blur",function(){k&&U()})),f.a.D(N,function(ee){var K=U;f.a.Ud(ee,"after")&&(K=function(){O=f.w.M(b),f.a.setTimeout(U,0)},ee=ee.substring(5)),f.a.B(b,ee,K)});var J;if(J=F&&b.type=="file"?function(){var ee=f.a.f(R());ee===null||ee===e||ee===""?b.value="":f.u.G(U)}:function(){var ee=f.a.f(R()),K=f.w.M(b);O!==null&&ee===O?f.a.setTimeout(J,0):(ee!==K||K===e)&&(I==="select"?(K=E.get("valueAllowUnset"),f.w.cb(b,ee,K),K||ee===f.w.M(b)||f.u.G(U)):f.w.cb(b,ee))},I==="select"){var z;f.i.subscribe(b,f.i.H,function(){z?E.get("valueAllowUnset")?J():U():(f.a.B(b,"change",U),z=f.o(J,null,{l:b}))},null,{notifyImmediately:!0})}else f.a.B(b,"change",U),f.o(J,null,{l:b})}else f.ib(b,{checkedValue:R})},update:function(){}},f.m.wa.value=!0,f.c.visible={update:function(b,R){var E=f.a.f(R()),I=b.style.display!="none";E&&!I?b.style.display="":!E&&I&&(b.style.display="none")}},f.c.hidden={update:function(b,R){f.c.visible.update(b,function(){return!f.a.f(R())})}},function(b){f.c[b]={init:function(R,E,I,F,N){return f.c.event.init.call(this,R,function(){var Y={};return Y[b]=E(),Y},I,F,N)}}}("click"),f.ca=function(){},f.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},f.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},f.ca.prototype.makeTemplateSource=function(b,R){if(typeof b=="string"){R=R||n;var E=R.getElementById(b);if(!E)throw Error("Cannot find template with ID "+b);return new f.C.F(E)}if(b.nodeType==1||b.nodeType==8)return new f.C.ia(b);throw Error("Unknown template type: "+b)},f.ca.prototype.renderTemplate=function(b,R,E,I){return b=this.makeTemplateSource(b,I),this.renderTemplateSource(b,R,E,I)},f.ca.prototype.isTemplateRewritten=function(b,R){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(b,R).data("isRewritten")},f.ca.prototype.rewriteTemplate=function(b,R,E){b=this.makeTemplateSource(b,E),R=R(b.text()),b.text(R),b.data("isRewritten",!0)},f.b("templateEngine",f.ca),f.kc=function(){function b(I,F,N,Y){I=f.m.ac(I);for(var k=f.m.Ra,O=0;O<I.length;O++){var U=I[O].key;if(Object.prototype.hasOwnProperty.call(k,U)){var J=k[U];if(typeof J=="function"){if(U=J(I[O].value))throw Error(U)}else if(!J)throw Error("This template engine does not support the '"+U+"' binding within its templates")}}return N="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+f.m.vb(I,{valueAccessors:!0})+" } })()},'"+N.toLowerCase()+"')",Y.createJavaScriptEvaluatorBlock(N)+F}var R=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,E=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,F,N){F.isTemplateRewritten(I,N)||F.rewriteTemplate(I,function(Y){return f.kc.Ld(Y,F)},N)},Ld:function(I,F){return I.replace(R,function(N,Y,k,O,U){return b(U,Y,k,F)}).replace(E,function(N,Y){return b(Y,"<!-- ko -->","#comment",F)})},md:function(I,F){return f.aa.Xb(function(N,Y){var k=N.nextSibling;k&&k.nodeName.toLowerCase()===F&&f.ib(k,I,Y)})}}}(),f.b("__tr_ambtns",f.kc.md),function(){f.C={},f.C.F=function(E){if(this.F=E){var I=f.a.R(E);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&E.content&&E.content.nodeType===11?3:4}},f.C.F.prototype.text=function(){var E=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[E];var I=arguments[0];E==="innerHTML"?f.a.fc(this.F,I):this.F[E]=I};var b=f.a.g.Z()+"_";f.C.F.prototype.data=function(E){if(arguments.length===1)return f.a.g.get(this.F,b+E);f.a.g.set(this.F,b+E,arguments[1])};var R=f.a.g.Z();f.C.F.prototype.nodes=function(){var E=this.F;if(arguments.length==0){var I=f.a.g.get(E,R)||{},F=I.lb||(this.ab===3?E.content:this.ab===4?E:e);if(!F||I.jd){var N=this.text();N&&N!==I.bb&&(F=f.a.Md(N,E.ownerDocument),f.a.g.set(E,R,{lb:F,bb:N,jd:!0}))}return F}I=arguments[0],this.ab!==e&&this.text(""),f.a.g.set(E,R,{lb:I})},f.C.ia=function(E){this.F=E},f.C.ia.prototype=new f.C.F,f.C.ia.prototype.constructor=f.C.ia,f.C.ia.prototype.text=function(){if(arguments.length==0){var E=f.a.g.get(this.F,R)||{};return E.bb===e&&E.lb&&(E.bb=E.lb.innerHTML),E.bb}f.a.g.set(this.F,R,{bb:arguments[0]})},f.b("templateSources",f.C),f.b("templateSources.domElement",f.C.F),f.b("templateSources.anonymousTemplate",f.C.ia)}(),function(){function b(O,U,J){var z;for(U=f.h.nextSibling(U);O&&(z=O)!==U;)O=f.h.nextSibling(z),J(z,O)}function R(O,U){if(O.length){var J=O[0],z=O[O.length-1],ee=J.parentNode,K=f.ga.instance,j=K.preprocessNode;if(j){if(b(J,z,function(q,be){var Te=q.previousSibling,ae=j.call(K,q);ae&&(q===J&&(J=ae[0]||be),q===z&&(z=ae[ae.length-1]||Te))}),O.length=0,!J)return;J===z?O.push(J):(O.push(J,z),f.a.Ua(O,ee))}b(J,z,function(q){q.nodeType!==1&&q.nodeType!==8||f.vc(U,q)}),b(J,z,function(q){q.nodeType!==1&&q.nodeType!==8||f.aa.cd(q,[U])}),f.a.Ua(O,ee)}}function E(O){return O.nodeType?O:0<O.length?O[0]:null}function I(O,U,J,z,ee){ee=ee||{};var K=(O&&E(O)||J||{}).ownerDocument,j=ee.templateEngine||N;if(f.kc.xd(J,j,K),J=j.renderTemplate(J,z,ee,K),typeof J.length!="number"||0<J.length&&typeof J[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(K=!1,U){case"replaceChildren":f.h.va(O,J),K=!0;break;case"replaceNode":f.a.Xc(O,J),K=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+U)}return K&&(R(J,z),ee.afterRender&&f.u.G(ee.afterRender,null,[J,z[ee.as||"$data"]]),U=="replaceChildren"&&f.i.ma(O,f.i.H)),J}function F(O,U,J){return f.O(O)?O():typeof O=="function"?O(U,J):O}var N;f.gc=function(O){if(O!=e&&!(O instanceof f.ca))throw Error("templateEngine must inherit from ko.templateEngine");N=O},f.dc=function(O,U,J,z,ee){if(J=J||{},(J.templateEngine||N)==e)throw Error("Set a template engine before calling renderTemplate");if(ee=ee||"replaceChildren",z){var K=E(z);return f.$(function(){var q=U&&U instanceof f.fa?U:new f.fa(U,null,null,null,{exportDependencies:!0}),j=F(O,q.$data,q),q=I(z,ee,j,q,J);ee=="replaceNode"&&(z=q,K=E(z))},null,{Sa:function(){return!K||!f.a.Sb(K)},l:K&&ee=="replaceNode"?K.parentNode:K})}return f.aa.Xb(function(j){f.dc(O,U,J,j,"replaceNode")})},f.Qd=function(O,U,J,z,ee){function K(_e,Ve){f.u.G(f.a.ec,null,[z,_e,q,J,j,Ve]),f.i.ma(z,f.i.H)}function j(_e,Ve){R(Ve,be),J.afterRender&&J.afterRender(Ve,_e),be=null}function q(_e,Ve){be=ee.createChildContext(_e,{as:Te,noChildContext:J.noChildContext,extend:function(Me){Me.$index=Ve,Te&&(Me[Te+"Index"]=Ve)}});var Ie=F(O,_e,be);return I(z,"ignoreTargetNode",Ie,be,J)}var be,Te=J.as,ae=J.includeDestroyed===!1||f.options.foreachHidesDestroyed&&!J.includeDestroyed;if(ae||J.beforeRemove||!f.Pc(U))return f.$(function(){var _e=f.a.f(U)||[];typeof _e.length>"u"&&(_e=[_e]),ae&&(_e=f.a.jb(_e,function(Ve){return Ve===e||Ve===null||!f.a.f(Ve._destroy)})),K(_e)},null,{l:z});K(U.v());var xe=U.subscribe(function(_e){K(U(),_e)},null,"arrayChange");return xe.l(z),xe};var Y=f.a.g.Z(),k=f.a.g.Z();f.c.template={init:function(O,U){var J=f.a.f(U());if(typeof J=="string"||"name"in J)f.h.Ea(O);else if("nodes"in J){if(J=J.nodes||[],f.O(J))throw Error('The "nodes" option must be a plain, non-observable array.');var z=J[0]&&J[0].parentNode;z&&f.a.g.get(z,k)||(z=f.a.Yb(J),f.a.g.set(z,k,!0)),new f.C.ia(O).nodes(z)}else if(J=f.h.childNodes(O),0<J.length)z=f.a.Yb(J),new f.C.ia(O).nodes(z);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(O,U,J,z,ee){var K=U();U=f.a.f(K),J=!0,z=null,typeof U=="string"?U={}:(K="name"in U?U.name:O,"if"in U&&(J=f.a.f(U.if)),J&&"ifnot"in U&&(J=!f.a.f(U.ifnot)),J&&!K&&(J=!1)),"foreach"in U?z=f.Qd(K,J&&U.foreach||[],U,O,ee):J?(J=ee,"data"in U&&(J=ee.createChildContext(U.data,{as:U.as,noChildContext:U.noChildContext,exportDependencies:!0})),z=f.dc(K,J,U,O)):f.h.Ea(O),ee=z,(U=f.a.g.get(O,Y))&&typeof U.s=="function"&&U.s(),f.a.g.set(O,Y,!ee||ee.ja&&!ee.ja()?e:ee)}},f.m.Ra.template=function(O){return O=f.m.ac(O),O.length==1&&O[0].unknown||f.m.Id(O,"name")?null:"This template engine does not support anonymous templates nested within its templates"},f.h.ea.template=!0}(),f.b("setTemplateEngine",f.gc),f.b("renderTemplate",f.dc),f.a.Kc=function(b,R,E){if(b.length&&R.length){var I,F,N,Y,k;for(I=F=0;(!E||I<E)&&(Y=b[F]);++F){for(N=0;k=R[N];++N)if(Y.value===k.value){Y.moved=k.index,k.moved=Y.index,R.splice(N,1),I=N=0;break}I+=N}}},f.a.Pb=function(){function b(R,E,I,F,N){var Y=Math.min,k=Math.max,O=[],U,J=R.length,z,ee=E.length,K=ee-J||1,j=J+ee+1,q,be,Te;for(U=0;U<=J;U++)for(be=q,O.push(q=[]),Te=Y(ee,U+K),z=k(0,U-1);z<=Te;z++)q[z]=z?U?R[U-1]===E[z-1]?be[z-1]:Y(be[z]||j,q[z-1]||j)+1:z+1:U+1;for(Y=[],k=[],K=[],U=J,z=ee;U||z;)ee=O[U][z]-1,z&&ee===O[U][z-1]?k.push(Y[Y.length]={status:I,value:E[--z],index:z}):U&&ee===O[U-1][z]?K.push(Y[Y.length]={status:F,value:R[--U],index:U}):(--z,--U,N.sparse||Y.push({status:"retained",value:E[z]}));return f.a.Kc(K,k,!N.dontLimitMoves&&10*J),Y.reverse()}return function(R,E,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},R=R||[],E=E||[],R.length<E.length?b(R,E,"added","deleted",I):b(E,R,"deleted","added",I)}}(),f.b("utils.compareArrays",f.a.Pb),function(){function b(I,F,N,Y,k){var O=[],U=f.$(function(){var J=F(N,k,f.a.Ua(O,I))||[];0<O.length&&(f.a.Xc(O,J),Y&&f.u.G(Y,null,[N,J,k])),O.length=0,f.a.Nb(O,J)},null,{l:I,Sa:function(){return!f.a.kd(O)}});return{Y:O,$:U.ja()?U:e}}var R=f.a.g.Z(),E=f.a.g.Z();f.a.ec=function(I,F,N,Y,k,O){function U(Dt){Ie={Aa:Dt,pb:f.ta(be++)},j.push(Ie),K||Ve.push(Ie)}function J(Dt){Ie=ee[Dt],be!==Ie.pb.v()&&_e.push(Ie),Ie.pb(be++),f.a.Ua(Ie.Y,I),j.push(Ie)}function z(Dt,Nt){if(Dt)for(var pe=0,Ce=Nt.length;pe<Ce;pe++)f.a.D(Nt[pe].Y,function(Ht){Dt(Ht,pe,Nt[pe].Aa)})}F=F||[],typeof F.length>"u"&&(F=[F]),Y=Y||{};var ee=f.a.g.get(I,R),K=!ee,j=[],q=0,be=0,Te=[],ae=[],xe=[],_e=[],Ve=[],Ie,Me=0;if(K)f.a.D(F,U);else{if(!O||ee&&ee._countWaitingForRemove){var ve=f.a.Mb(ee,function(Dt){return Dt.Aa});O=f.a.Pb(ve,F,{dontLimitMoves:Y.dontLimitMoves,sparse:!0})}for(var ve=0,ke,ct,yt;ke=O[ve];ve++)switch(ct=ke.moved,yt=ke.index,ke.status){case"deleted":for(;q<yt;)J(q++);ct===e&&(Ie=ee[q],Ie.$&&(Ie.$.s(),Ie.$=e),f.a.Ua(Ie.Y,I).length&&(Y.beforeRemove&&(j.push(Ie),Me++,Ie.Aa===E?Ie=null:xe.push(Ie)),Ie&&Te.push.apply(Te,Ie.Y))),q++;break;case"added":for(;be<yt;)J(q++);ct!==e?(ae.push(j.length),J(ct)):U(ke.value)}for(;be<F.length;)J(q++);j._countWaitingForRemove=Me}f.a.g.set(I,R,j),z(Y.beforeMove,_e),f.a.D(Te,Y.beforeRemove?f.oa:f.removeNode);var ot,ln,vn;try{vn=I.ownerDocument.activeElement}catch{}if(ae.length)for(;(ve=ae.shift())!=e;){for(Ie=j[ve],ot=e;ve;)if((ln=j[--ve].Y)&&ln.length){ot=ln[ln.length-1];break}for(F=0;q=Ie.Y[F];ot=q,F++)f.h.Wb(I,q,ot)}for(ve=0;Ie=j[ve];ve++){for(Ie.Y||f.a.extend(Ie,b(I,N,Ie.Aa,k,Ie.pb)),F=0;q=Ie.Y[F];ot=q,F++)f.h.Wb(I,q,ot);!Ie.Ed&&k&&(k(Ie.Aa,Ie.Y,Ie.pb),Ie.Ed=!0,ot=Ie.Y[Ie.Y.length-1])}for(vn&&I.ownerDocument.activeElement!=vn&&vn.focus(),z(Y.beforeRemove,xe),ve=0;ve<xe.length;++ve)xe[ve].Aa=E;z(Y.afterMove,_e),z(Y.afterAdd,Ve)}}(),f.b("utils.setDomNodeChildrenFromArrayMapping",f.a.ec),f.ba=function(){this.allowTemplateRewriting=!1},f.ba.prototype=new f.ca,f.ba.prototype.constructor=f.ba,f.ba.prototype.renderTemplateSource=function(b,R,E,I){return(R=!(9>f.a.W)&&b.nodes?b.nodes():null)?f.a.la(R.cloneNode(!0).childNodes):(b=b.text(),f.a.ua(b,I))},f.ba.Ma=new f.ba,f.gc(f.ba.Ma),f.b("nativeTemplateEngine",f.ba),function(){f.$a=function(){var R=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(E,I,F,N){if(N=N||n,F=F||{},2>R)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var Y=E.data("precompiled");return Y||(Y=E.text()||"",Y=o.template(null,"{{ko_with $item.koBindingContext}}"+Y+"{{/ko_with}}"),E.data("precompiled",Y)),E=[I.$data],I=o.extend({koBindingContext:I},F.templateOptions),I=o.tmpl(Y,E,I),I.appendTo(N.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(E){return"{{ko_code ((function() { return "+E+" })()) }}"},this.addTemplate=function(E,I){n.write("<script type='text/html' id='"+E+"'>"+I+"<\/script>")},0<R&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},f.$a.prototype=new f.ca,f.$a.prototype.constructor=f.$a;var b=new f.$a;0<b.Hd&&f.gc(b),f.b("jqueryTmplTemplateEngine",f.$a)}()})})()})()})();var $bt=ko;typeof window<"u"?(ko=window.ko,typeof s9<"u"?window.ko=s9:delete window.ko):(ko=global.ko,typeof s9<"u"?global.ko=s9:delete global.ko);var MT=$bt;var Juo=T(S(),1);/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var jj="__knockoutObservables",qj="__knockoutSubscribable";function Ixe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=Wxe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===jj||o===qj)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&tyt(n,a)}}),e}function Wxe(e,t){var n=e[jj];return!n&&t&&(n={},Object.defineProperty(e,jj,{value:n})),n}function eyt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),Ixe.call(i,e,[t]),e}function tyt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=nyt(e,t,i))})}function nyt(e,t,n){var i=iyt(e,n);return i.subscribe(t)}function iyt(e,t){var n=t[qj];if(!n){n=new e.subscribable,Object.defineProperty(t,qj,{value:n});var i={};oyt(t,n,i),ryt(e,t,n,i)}return n}function oyt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function ryt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function Pxe(e,t){if(!e)return null;var n=Wxe(e,!1);return n&&n[t]||null}function syt(e,t){var n=Pxe(e,t);n&&n.valueHasMutated()}function ayt(e){e.track=Ixe,e.getObservable=Pxe,e.valueHasMutated=syt,e.defineProperty=eyt}var a9={attachToKo:ayt};var juo=T(S(),1),vxe="http://www.w3.org/2000/svg",Fxe="cesium-svgPath-svg",cyt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(vxe,"svg:svg");i.setAttribute("class",Fxe);let o=document.createElementNS(vxe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${Fxe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},c9=cyt;a9.attachToKo(MT);c9.register(MT);var Se=MT;function l9(e){d(e)||(e=new Dm),this._clock=e,this._eventHelper=new Vr,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Se.observable(te.now()),this.systemTime.equalityComparer=te.equals,this.startTime=Se.observable(e.startTime),this.startTime.equalityComparer=te.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Se.observable(e.stopTime),this.stopTime.equalityComparer=te.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Se.observable(e.currentTime),this.currentTime.equalityComparer=te.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Se.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Se.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Se.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Se.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Se.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Se.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(l9.prototype,{clock:{get:function(){return this._clock}}});l9.prototype.synchronize=function(){let e=this._clock;this.systemTime=te.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};l9.prototype.isDestroyed=function(){return!1};l9.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var d9=l9;var lmo=T(S(),1);function lyt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,fe.throwInstantiationError()}var $j=lyt;var hmo=T(S(),1);var u9={};u9.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return d(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};u9.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};u9.createRangeInput=function(e,t,n,i,o,r){r=g(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=g(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let l=document.createElement("div");return l.className="cesium-cesiumInspector-slider",l.appendChild(document.createTextNode(e)),l.appendChild(s),l.appendChild(c),l};u9.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return d(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var Za=u9;var xmo=T(S(),1);function wxe(e,t){this._command=e,t=g(t,g.EMPTY_OBJECT),this.toggled=g(t.toggled,!1),this.tooltip=g(t.tooltip,""),Se.track(this,["toggled","tooltip"])}Object.defineProperties(wxe.prototype,{command:{get:function(){return this._command}}});var dg=wxe;var Lmo=T(S(),1);function dyt(e,t){t=g(t,!0);let n=new ye,i=new ye;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,Se.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var Cn=dyt;var Gmo=T(S(),1);function uyt(e,t,n,i,o){return n.call(i,e[t]),Se.getObservable(e,t).subscribe(n,i,o)}var aa=uyt;var Pmo=T(S(),1);var NT="http://www.w3.org/2000/svg",Nxe="http://www.w3.org/1999/xlink",bD,m9=B.fromCssColorString("rgba(247,250,255,0.384)"),yD=B.fromCssColorString("rgba(143,191,255,0.216)"),e8=B.fromCssColorString("rgba(153,197,255,0.098)"),gD=B.fromCssColorString("rgba(255,255,255,0.086)"),myt=B.fromCssColorString("rgba(255,255,255,0.267)"),hyt=B.fromCssColorString("rgba(255,255,255,0)"),Axe=B.fromCssColorString("rgba(66,67,68,0.3)"),Mxe=B.fromCssColorString("rgba(0,0,0,0.5)");function ug(e){return B.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var h9={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function Th(e){let t=document.createElementNS(NT,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(Th(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(Nxe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function t8(e,t,n){let i=document.createElementNS(NT,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(NT,"tspan");return o.textContent=n,i.appendChild(o),i}function fyt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var xD=new B;function Br(e,t){let n=t.alpha,i=1-n;return xD.red=e.red*i+t.red*n,xD.green=e.green*i+t.green*n,xD.blue=e.blue*i+t.blue*n,xD.toCssColorString()}function n8(e,t,n){let i=h9[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Th(o)}function pyt(e,t,n){let i=h9[n],o=h9.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Th(r)}function byt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&bD!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,l;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,l=t.touches[0].clientY):(c=t.clientX,l=t.clientY),!i&&(c>a.right||c<a.left||l<a.top||l>a.bottom))return;let u=e._shuttleRingPointer.getBoundingClientRect(),m=c-o-a.left,p=l-r-a.top,y=Math.atan2(p,m)*180/Math.PI+90;y>180&&(y-=360);let f=n.shuttleRingAngle;i||c<u.right&&c>u.left&&l>u.top&&l<u.bottom?(bD=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=y):y<f?n.slower():y>f&&n.faster(),t.preventDefault()}else e===bD&&(bD=void 0),n.shuttleRingDragging=!1}function J0(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[aa(t,"toggled",this.setToggled,this),aa(t,"tooltip",this.setTooltip,this),aa(t.command,"canExecute",this.setEnabled,this)]}J0.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();ue(this)};J0.prototype.isDestroyed=function(){return!1};J0.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};J0.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};J0.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function BV(e,t){e=En(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(NT,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",Nxe);let s=document.createElementNS(NT,"g");this._topG=s,this._realtimeSVG=new J0(pyt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new J0(n8(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new J0(n8(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new J0(n8(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(NT,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=Th({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let l=h9.animation_pathSwooshFX,u=h9.animation_pathPointer,m=Th({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:l.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:l.d},{tagName:l.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:l.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=m,this._shuttleRingPointer=Th({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:u.tagName,d:u.d});let p=Th({tagName:"g",transform:"translate(100,100)"});this._knobOuter=Th({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let y=61,f=Th({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:y});this._knobDate=t8(0,-24,""),this._knobTime=t8(0,-7,""),this._knobStatus=t8(0,-41,"");let x=Th({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:y}),_=document.createElementNS(NT,"g");_.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(_),s.appendChild(p),s.appendChild(a),_.appendChild(c),_.appendChild(m),_.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(f),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(x),r.appendChild(s),e.appendChild(r);let C=this;function V(P){byt(C,P)}this._mouseCallback=V,c.addEventListener("mousedown",V,!0),c.addEventListener("touchstart",V,!0),m.addEventListener("mousedown",V,!0),m.addEventListener("touchstart",V,!0),n.addEventListener("mousemove",V,!0),n.addEventListener("touchmove",V,!0),n.addEventListener("mouseup",V,!0),n.addEventListener("touchend",V,!0),n.addEventListener("touchcancel",V,!0),this._shuttleRingPointer.addEventListener("mousedown",V,!0),this._shuttleRingPointer.addEventListener("touchstart",V,!0),this._knobOuter.addEventListener("mousedown",V,!0),this._knobOuter.addEventListener("touchstart",V,!0);let L=this._knobTime.childNodes[0],Z=this._knobDate.childNodes[0],G=this._knobStatus.childNodes[0],X;this._subscriptions=[aa(t.pauseViewModel,"toggled",function(P){X!==P&&(X=P,X?C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),aa(t,"shuttleRingAngle",function(P){fyt(C._shuttleRingPointer,C._knobOuter,P)}),aa(t,"dateLabel",function(P){Z.textContent!==P&&(Z.textContent=P)}),aa(t,"timeLabel",function(P){L.textContent!==P&&(L.textContent=P)}),aa(t,"multiplierLabel",function(P){G.textContent!==P&&(G.textContent=P)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(BV.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});BV.prototype.isDestroyed=function(){return!1};BV.prototype.destroy=function(){d(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return ue(this)};BV.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};BV.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(d(this._observer))return;let u=this;u._observer=new MutationObserver(function(){e.body.contains(u._container)&&(u._observer.disconnect(),u._observer=void 0,u.applyThemeChanges())}),u._observer.observe(e,{childList:!0,subtree:!0});return}let t=ug(this._themeNormal),n=ug(this._themeHover),i=ug(this._themeSelect),o=ug(this._themeDisabled),r=ug(this._themeKnob),s=ug(this._themePointer),a=ug(this._themeSwoosh),c=ug(this._themeSwooshHover),l=Th({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(t,m9)},{tagName:"stop",offset:"12%","stop-color":Br(t,yD)},{tagName:"stop",offset:"46%","stop-color":Br(t,e8)},{tagName:"stop",offset:"81%","stop-color":Br(t,gD)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(n,m9)},{tagName:"stop",offset:"12%","stop-color":Br(n,yD)},{tagName:"stop",offset:"46%","stop-color":Br(n,e8)},{tagName:"stop",offset:"81%","stop-color":Br(n,gD)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(i,m9)},{tagName:"stop",offset:"12%","stop-color":Br(i,yD)},{tagName:"stop",offset:"46%","stop-color":Br(i,e8)},{tagName:"stop",offset:"81%","stop-color":Br(i,gD)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Br(o,myt)},{tagName:"stop",offset:"75%","stop-color":Br(o,hyt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":Br(s,Mxe)},{tagName:"stop",offset:"100%","stop-color":Br(s,Mxe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Br(r,m9)},{tagName:"stop",offset:"60%","stop-color":Br(r,Axe)},{tagName:"stop",offset:"85%","stop-color":Br(r,yD)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Br(r,Axe)},{tagName:"stop",offset:"60%","stop-color":Br(r,m9)},{tagName:"stop",offset:"85%","stop-color":Br(r,gD)}]}]});d(this._defsElement)?this._svgNode.replaceChild(l,this._defsElement):this._svgNode.appendChild(l),this._defsElement=l};var f9=BV;var kmo=T(S(),1);var yyt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],mg=15,YV=105;function Uxe(e,t){return e-t}function i8(e,t){let n=Lo(t,e,Uxe);return n<0?~n:n}function gyt(e,t){if(Math.abs(e)<=mg)return e/mg;let n=mg,i=YV,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function xyt(e,t,n){if(n.clockStep===mo.SYSTEM_CLOCK)return mg;if(Math.abs(e)<=1)return e*mg;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=mg,r=YV,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function Qu(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=Qu.defaultDateFormatter,this._timeFormatter=Qu.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Se.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(Qu.defaultTicks),this.timeLabel=void 0,Se.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Se.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Se.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===mo.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Se.defineProperty(this,"shuttleRingAngle",{get:function(){return xyt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,YV),-YV);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===YV){c.multiplier=s>0?a[a.length-1]:a[0];return}let l=gyt(s,a);if(t.snapToTicks)l=a[i8(l,a)];else if(l!==0){let u=Math.abs(l);if(u>100){let m=u.toFixed(0).length-2,p=Math.pow(10,m);l=Math.round(l/p)*p|0}else u>mg?l=Math.round(l):u>1?l=+l.toFixed(1):u>0&&(l=+l.toFixed(2))}c.multiplier=l}}),this._canAnimate=void 0,Se.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Er.UNBOUNDED)return!0;let c=s.multiplier,l=s.currentTime,u=s.startTime,m=!1;if(a===Er.LOOP_STOP)m=te.greaterThan(l,u)||l.equals(u)&&c>0;else{let p=s.stopTime;m=te.greaterThan(l,u)&&te.lessThan(l,p)||l.equals(u)&&c>0||l.equals(p)&&c<0}return m||(s.shouldAnimate=!1),m}),this._isSystemTimeAvailable=void 0,Se.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Er.UNBOUNDED)return!0;let c=s.systemTime;return te.greaterThanOrEquals(c,s.startTime)&&te.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Se.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=Cn(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new dg(n,{toggled:Se.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=Cn(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new dg(i,{toggled:Se.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=Cn(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new dg(o,{toggled:Se.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==mo.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=Cn(function(){t._clockViewModel.clockStep=mo.SYSTEM_CLOCK},Se.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new dg(r,{toggled:Se.computed(function(){return e.clockStep===mo.SYSTEM_CLOCK}),tooltip:Se.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=Cn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=i8(c,a)-1;l>=0&&(s.multiplier=a[l])}),this._faster=Cn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=i8(c,a)+1;l<a.length&&(s.multiplier=a[l])})}Qu.defaultDateFormatter=function(e,t){let n=te.toGregorianDate(e);return`${yyt[n.month-1]} ${n.day} ${n.year}`};Qu.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];Qu.defaultTimeFormatter=function(e,t){let n=te.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};Qu.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};Qu.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(Uxe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(Qu.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});Qu._maxShuttleRingAngle=YV;Qu._realtimeShuttleRingAngle=mg;var p9=Qu;var $mo=T(S(),1);var Kmo=T(S(),1);function _yt(e){return function(t){let n=e._scene.pick(t.position);d(n)&&n.primitive instanceof zs&&(e.tileset=n.primitive),e.pickActive=!1}}function Dxe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);d(i)&&i.primitive instanceof zs&&(e.tileset=i.primitive)},_n.MOUSE_MOVE):(e._eventHandler.removeInputAction(_n.MOUSE_MOVE),e.picking=e.picking)}var Tyt={maximumFractionDigits:3};function b9(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,Tyt):Math.round(t).toLocaleString()}function y9(e,t){if(!d(e))return"";let n=t?e._statisticsPerPass[Xo.PICK]:e._statisticsPerPass[Xo.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${b9(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${b9(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${b9(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function Bxe(){let e=Bi.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${b9(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${b9(e.texturesByteLength)}</li> + </ul> + `}var Syt=[{text:"Highlight",value:fl.HIGHLIGHT},{text:"Replace",value:fl.REPLACE},{text:"Mix",value:fl.MIX}],kxe=new B(1,1,0,.4),Cyt=new B,_D=new B;function ca(e,t){let n=this,i=e.canvas;this._eventHandler=new Id(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new A0({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Se.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Se.observable({}),this.properties=[],Se.defineProperty(this,"properties",function(){let U=[],J=n._properties();for(let z in J)J.hasOwnProperty(z)&&U.push(z);return U});let o=Se.observable();Se.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(U){o(U),d(n._tileset)&&(n._tileset.dynamicScreenSpaceError=U)}}),this.dynamicScreenSpaceError=!1;let r=Se.observable();Se.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(U){r(U),d(n._tileset)&&(n._tileset.colorBlendMode=U,n._scene.requestRender())}}),this.colorBlendMode=fl.HIGHLIGHT;let s=Se.observable(),a=Se.observable();Se.defineProperty(this,"picking",{get:function(){return a()},set:function(U){a(U),U?n._eventHandler.setInputAction(function(J){let z=e.pick(J.endPosition);if(z instanceof Ss?(n.feature=z,n.tile=z.content.tile):d(z)&&d(z.content)?(n.feature=void 0,n.tile=z.content.tile):(n.feature=void 0,n.tile=void 0),!!d(n._tileset)){if(s&&d(z)&&d(z.content)){let ee;e.pickPositionSupported&&(ee=e.pickPosition(J.endPosition),d(ee)&&(n._tileset.debugPickPosition=ee)),n._tileset.debugPickedTile=z.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},_n.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(_n.MOUSE_MOVE))}}),this.picking=!0;let c=Se.observable();Se.defineProperty(this,"colorize",{get:function(){return c()},set:function(U){c(U),d(n._tileset)&&(n._tileset.debugColorizeTiles=U,n._scene.requestRender())}}),this.colorize=!1;let l=Se.observable();Se.defineProperty(this,"wireframe",{get:function(){return l()},set:function(U){l(U),d(n._tileset)&&(n._tileset.debugWireframe=U,n._scene.requestRender())}}),this.wireframe=!1;let u=Se.observable();Se.defineProperty(this,"showBoundingVolumes",{get:function(){return u()},set:function(U){u(U),d(n._tileset)&&(n._tileset.debugShowBoundingVolume=U,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let m=Se.observable();Se.defineProperty(this,"showContentBoundingVolumes",{get:function(){return m()},set:function(U){m(U),d(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=U,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Se.observable();Se.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(U){p(U),d(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=U,n._scene.requestRender())}}),this.showRequestVolumes=!1;let y=Se.observable();Se.defineProperty(this,"freezeFrame",{get:function(){return y()},set:function(U){y(U),d(n._tileset)&&(n._tileset.debugFreezeFrame=U,n._scene.debugShowFrustumPlanes=U,n._scene.requestRender())}}),this.freezeFrame=!1,Se.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(U){s(U),d(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=U,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let f=Se.observable();Se.defineProperty(this,"showGeometricError",{get:function(){return f()},set:function(U){f(U),d(n._tileset)&&(n._tileset.debugShowGeometricError=U,n._scene.requestRender())}}),this.showGeometricError=!1;let x=Se.observable();Se.defineProperty(this,"showRenderingStatistics",{get:function(){return x()},set:function(U){x(U),d(n._tileset)&&(n._tileset.debugShowRenderingStatistics=U,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let _=Se.observable();Se.defineProperty(this,"showMemoryUsage",{get:function(){return _()},set:function(U){_(U),d(n._tileset)&&(n._tileset.debugShowMemoryUsage=U,n._scene.requestRender())}}),this.showMemoryUsage=!1;let C=Se.observable();Se.defineProperty(this,"showUrl",{get:function(){return C()},set:function(U){C(U),d(n._tileset)&&(n._tileset.debugShowUrl=U,n._scene.requestRender())}}),this.showUrl=!1;let V=Se.observable();Se.defineProperty(this,"maximumScreenSpaceError",{get:function(){return V()},set:function(U){U=Number(U),isNaN(U)||(V(U),d(n._tileset)&&(n._tileset.maximumScreenSpaceError=U))}}),this.maximumScreenSpaceError=16;let L=Se.observable();Se.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return L()},set:function(U){U=Number(U),isNaN(U)||(L(U),d(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=U))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Se.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(L(),1/6)},set:function(U){L(Math.pow(U,6))}});let Z=Se.observable();Se.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return Z()},set:function(U){U=Number(U),isNaN(U)||(Z(U),d(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=U))}}),this.dynamicScreenSpaceErrorFactor=4;let G=_yt(this),X=Se.observable();Se.defineProperty(this,"pickActive",{get:function(){return X()},set:function(U){X(U),U?n._eventHandler.setInputAction(G,_n.LEFT_CLICK):n._eventHandler.removeInputAction(_n.LEFT_CLICK)}});let P=Se.observable();Se.defineProperty(this,"pointCloudShading",{get:function(){return P()},set:function(U){P(U),d(n._tileset)&&(n._tileset.pointCloudShading.attenuation=U)}}),this.pointCloudShading=!1;let v=Se.observable();Se.defineProperty(this,"geometricErrorScale",{get:function(){return v()},set:function(U){U=Number(U),isNaN(U)||(v(U),d(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=U))}}),this.geometricErrorScale=1;let A=Se.observable();Se.defineProperty(this,"maximumAttenuation",{get:function(){return A()},set:function(U){U=Number(U),isNaN(U)||(A(U),d(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=U===0?void 0:U))}}),this.maximumAttenuation=0;let M=Se.observable();Se.defineProperty(this,"baseResolution",{get:function(){return M()},set:function(U){U=Number(U),isNaN(U)||(M(U),d(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=U===0?void 0:U))}}),this.baseResolution=0;let b=Se.observable();Se.defineProperty(this,"eyeDomeLighting",{get:function(){return b()},set:function(U){b(U),d(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=U)}}),this.eyeDomeLighting=!1;let R=Se.observable();Se.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return R()},set:function(U){U=Number(U),isNaN(U)||(R(U),d(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=U))}}),this.eyeDomeLightingStrength=1;let E=Se.observable();Se.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return E()},set:function(U){U=Number(U),isNaN(U)||(E(U),d(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=U))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=Se.observable();Se.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(U){I(U),d(n._tileset)&&(n._tileset.skipLevelOfDetail=U)}}),this.skipLevelOfDetail=!0;let F=Se.observable();Se.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return F()},set:function(U){U=Number(U),isNaN(U)||(F(U),d(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=U))}}),this.skipScreenSpaceErrorFactor=16;let N=Se.observable();Se.defineProperty(this,"baseScreenSpaceError",{get:function(){return N()},set:function(U){U=Number(U),isNaN(U)||(N(U),d(n._tileset)&&(n._tileset.baseScreenSpaceError=U))}}),this.baseScreenSpaceError=1024;let Y=Se.observable();Se.defineProperty(this,"skipLevels",{get:function(){return Y()},set:function(U){U=Number(U),isNaN(U)||(Y(U),d(n._tileset)&&(n._tileset.skipLevels=U))}}),this.skipLevels=1;let k=Se.observable();Se.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return k()},set:function(U){k(U),d(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=U)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let O=Se.observable();Se.defineProperty(this,"loadSiblings",{get:function(){return O()},set:function(U){O(U),d(n._tileset)&&(n._tileset.loadSiblings=U)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),d(this._tileset)||Dxe(this,!0)}Object.defineProperties(ca.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return Syt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,d(e)){this._properties(e.properties);let t=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=t.length;for(let o=0;o<n;++o){let r=t[o];this[r]=this[r]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let i=e.pointCloudShading;this.pointCloudShading=i.attenuation,this.geometricErrorScale=i.geometricErrorScale,this.maximumAttenuation=i.maximumAttenuation?i.maximumAttenuation:0,this.baseResolution=i.baseResolution?i.baseResolution:0,this.eyeDomeLighting=i.eyeDomeLighting,this.eyeDomeLightingStrength=i.eyeDomeLightingStrength,this.eyeDomeLightingRadius=i.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=y9(e,!1),this._pickStatisticsText=y9(e,!0),this._resourceCacheStatisticsText=Bxe(),Dxe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;d(t)&&!t.content.isDestroyed()&&(!this.colorize&&d(this._style)?t.color=d(this._style.color)?this._style.color.evaluateColor(t,Cyt):B.WHITE:t.color=_D,this._scene.requestRender()),d(e)&&(B.clone(e.color,_D),e.color=kxe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;d(t)&&!t.isDestroyed()&&!o8(t.content)&&(t.color=_D,this._scene.requestRender()),d(e)&&!o8(e.content)&&(B.clone(e.color,_D),e.color=kxe,this._scene.requestRender()),this._tile=e}}});function o8(e){if(!d(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(d(t)){let n=t.length;for(let i=0;i<n;++i)if(!o8(t[i]))return!1;return!0}return!1}ca.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};ca.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ca.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};ca.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ca.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};ca.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};ca.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};ca.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};ca.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};ca.prototype.trimTilesCache=function(){d(this._tileset)&&this._tileset.trimLoadedTiles()};ca.prototype.compileStyle=function(){let e=this._tileset;if(!(!d(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new bT(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};ca.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),r-=2):(a[l]=a[l].substr(1),r-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,r+=2;let u=a.join(` +`);n.value=n.value.slice(0,i)+u+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};ca.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),d(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=y9(e,!1),this._pickStatisticsText=y9(e,!0),this._resourceCacheStatisticsText=Bxe())};ca.prototype.isDestroyed=function(){return!1};ca.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Se.getObservable(e,t).dispose()}),ue(this)};ca.getStatistics=y9;var g9=ca;function TD(e,t){e=En(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new g9(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=Za.createSection,c=Za.createCheckbox,l=Za.createRangeInput,u=Za.createButton,m=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),y=a(s,"Update","updateVisible","toggleUpdate"),f=a(s,"Logging","loggingVisible","toggleLogging"),x=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),_=a(s,"Style","styleVisible","toggleStyle"),C=a(s,"Optimization","optimizationVisible","toggleOptimization"),V=document.createElement("div");V.className="field-group";let L=document.createElement("label");L.className="field-label",L.appendChild(document.createTextNode("Properties: "));let Z=document.createElement("div");Z.setAttribute("data-bind","text: properties"),V.appendChild(L),V.appendChild(Z),m.appendChild(V),m.appendChild(u("Pick Tileset","togglePickTileset","pickActive")),m.appendChild(u("Trim Tiles Cache","trimTilesCache")),m.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let G=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),X=document.createElement("p");X.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),X.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),X.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",G.appendChild(X),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let P=document.createElement("div");P.setAttribute("data-bind","visible: pointCloudShading"),P.appendChild(l("Geometric Error Scale","geometricErrorScale",0,2,.01)),P.appendChild(l("Maximum Attenuation","maximumAttenuation",0,32,1)),P.appendChild(l("Base Resolution","baseResolution",0,1,.01)),P.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(P);let v=document.createElement("div");v.setAttribute("data-bind","visible: eyeDomeLighting"),v.appendChild(l("EDL Strength","eyeDomeLightingStrength",0,2,.1)),v.appendChild(l("EDL Radius","eyeDomeLightingRadius",0,4,.1)),P.appendChild(v),y.appendChild(c("Freeze Frame","freezeFrame")),y.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let A=document.createElement("div");A.appendChild(l("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),y.appendChild(A);let M=document.createElement("div");M.setAttribute("data-bind","visible: dynamicScreenSpaceError"),M.appendChild(l("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),M.appendChild(l("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,10,.1)),y.appendChild(M),f.appendChild(c("Performance","performance")),f.appendChild(i),f.appendChild(c("Statistics","showStatistics"));let b=document.createElement("div");b.className="cesium-3dTilesInspector-statistics",b.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),f.appendChild(b),f.appendChild(c("Pick Statistics","showPickStatistics"));let R=document.createElement("div");R.className="cesium-3dTilesInspector-statistics",R.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),f.appendChild(R),f.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let E=document.createElement("div");E.className="cesium-3dTilesInspector-statistics",E.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),f.appendChild(E);let I=document.createElement("div");_.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let F=document.createElement("select");F.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(F);let N=document.createElement("textarea");N.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(N);let Y=u("Compile (Ctrl+Enter)","compileStyle");I.appendChild(Y);let k=document.createElement("div");k.className="cesium-cesiumInspector-error",k.setAttribute("data-bind","text: editorError"),I.appendChild(k),x.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),x.appendChild(c("Geometric Error","showGeometricError")),x.appendChild(c("Rendering Statistics","showRenderingStatistics")),x.appendChild(c("Memory Usage (MB)","showMemoryUsage")),x.appendChild(c("Url","showUrl")),C.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let O=document.createElement("div");O.appendChild(l("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),C.appendChild(O);let U=document.createElement("div");U.appendChild(l("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),C.appendChild(U);let J=document.createElement("div");J.appendChild(l("Min. levels to skip","skipLevels",0,10,1)),C.appendChild(J),C.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),C.appendChild(c("Load siblings of visible tiles","loadSiblings")),Se.applyBindings(o,n)}Object.defineProperties(TD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});TD.prototype.isDestroyed=function(){return!1};TD.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var x9=TD;var mho=T(S(),1);var rho=T(S(),1);function Yxe(e){e=g(e,g.EMPTY_OBJECT);let t=e.globe,n=g(e.imageryProviderViewModels,[]),i=g(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Se.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=Se.getObservable(this,"imageryProviderViewModels"),r=Se.pureComputed(function(){let m=o(),p={},y;for(y=0;y<m.length;y++){let _=m[y],C=_.category;d(p[C])?p[C].push(_):p[C]=[_]}let f=Object.keys(p),x=[];for(y=0;y<f.length;y++){let _=f[y];x.push({name:_,providers:p[_]})}return x});this._imageryProviders=r;let s=Se.getObservable(this,"terrainProviderViewModels"),a=Se.pureComputed(function(){let m=s(),p={},y;for(y=0;y<m.length;y++){let _=m[y],C=_.category;d(p[C])?p[C].push(_):p[C]=[_]}let f=Object.keys(p),x=[];for(y=0;y<f.length;y++){let _=f[y];x.push({name:_,providers:p[_]})}return x});this._terrainProviders=a,this.buttonTooltip=void 0,Se.defineProperty(this,"buttonTooltip",function(){let m=this.selectedImagery,p=this.selectedTerrain,y=d(m)?m.name:void 0,f=d(p)?p.name:void 0;return d(y)&&d(f)?`${y} +${f}`:d(y)?y:f}),this.buttonImageUrl=void 0,Se.defineProperty(this,"buttonImageUrl",function(){let m=this.selectedImagery;if(d(m))return m.iconUrl}),this.selectedImagery=void 0;let c=Se.observable();this._currentImageryLayers=[],Se.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(m){if(c()===m){this.dropDownVisible=!1;return}let p,y=this._currentImageryLayers,f=y.length,x=this._globe.imageryLayers,_=!1;for(p=0;p<f;p++){let C=x.length;for(let V=0;V<C;V++){let L=x.get(V);if(L===y[p]){x.remove(L),_=!0;break}}}if(d(m)){let C=m.creationCommand();if(Array.isArray(C)){let V=C.length;for(this._currentImageryLayers=[],p=V-1;p>=0;p--){let L=na.fromProviderAsync(C[p]);x.add(L,0),this._currentImageryLayers.push(L)}}else{this._currentImageryLayers=[];let V=na.fromProviderAsync(C);if(V.name=m.name,_)x.add(V,0);else{let L=x.get(0);d(L)&&x.remove(L),x.add(V,0)}this._currentImageryLayers.push(V)}}c(m),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let l=Se.observable();Se.defineProperty(this,"selectedTerrain",{get:function(){return l()},set:function(m){if(l()===m){this.dropDownVisible=!1;return}let p;if(d(m)&&(p=m.creationCommand()),d(p)&&!d(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof Cf),this._globe.terrainProvider=p;else if(d(p)){let y=!1,f=this._globe.terrainProviderChanged.addEventListener(()=>{y=!0,f()}),_=new Iw(p).readyEvent.addEventListener(C=>{y||(this._globe.depthTestAgainstTerrain=!(C instanceof Cf),this._globe.terrainProvider=C,_())})}l(m),this.dropDownVisible=!1}});let u=this;this._toggleDropDown=Cn(function(){u.dropDownVisible=!u.dropDownVisible}),this.selectedImagery=g(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=g(e.selectedTerrainProviderViewModel,i[0])}Object.defineProperties(Yxe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var _9=Yxe;function SD(e,t){e=En(e);let n=new _9(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let l=document.createElement("div");l.className="cesium-baseLayerPicker-categoryTitle",l.setAttribute("data-bind","text: name"),c.appendChild(l);let u=document.createElement("div");u.className="cesium-baseLayerPicker-choices",u.setAttribute("data-bind","foreach: providers"),c.appendChild(u);let m=document.createElement("div");m.className="cesium-baseLayerPicker-item",m.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),u.appendChild(m);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),m.appendChild(p);let y=document.createElement("div");y.className="cesium-baseLayerPicker-itemLabel",y.setAttribute("data-bind","text: name"),m.appendChild(y);let f=document.createElement("div");f.className="cesium-baseLayerPicker-sectionTitle",f.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),f.innerHTML="Terrain",r.appendChild(f);let x=document.createElement("div");x.className="cesium-baseLayerPicker-section",x.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(x);let _=document.createElement("div");_.className="cesium-baseLayerPicker-category",x.appendChild(_);let C=document.createElement("div");C.className="cesium-baseLayerPicker-categoryTitle",C.setAttribute("data-bind","text: name"),_.appendChild(C);let V=document.createElement("div");V.className="cesium-baseLayerPicker-choices",V.setAttribute("data-bind","foreach: providers"),_.appendChild(V);let L=document.createElement("div");L.className="cesium-baseLayerPicker-item",L.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),V.appendChild(L);let Z=document.createElement("img");Z.className="cesium-baseLayerPicker-itemIcon",Z.setAttribute("data-bind","attr: { src: iconUrl }"),Z.setAttribute("draggable","false"),L.appendChild(Z);let G=document.createElement("div");G.className="cesium-baseLayerPicker-itemLabel",G.setAttribute("data-bind","text: name"),L.appendChild(G),Se.applyBindings(n,i),Se.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(X){i.contains(X.target)||r.contains(X.target)||(n.dropDownVisible=!1)},Mt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(SD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});SD.prototype.isDestroyed=function(){return!1};SD.prototype.destroy=function(){return Mt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Se.cleanNode(this._element),Se.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var T9=SD;var gho=T(S(),1);function Oxe(e){let t=e.creationFunction;d(t.canExecute)||(t=Cn(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=g(e.category,""),Se.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(Oxe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var Yr=Oxe;var Sho=T(S(),1);function Vyt(){let e=[],t=devicePixelRatio>=2;return e.push(new Yr({name:"Bing Maps Aerial",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return P0({style:W0.AERIAL})}})),e.push(new Yr({name:"Bing Maps Aerial with Labels",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return P0({style:W0.AERIAL_WITH_LABELS})}})),e.push(new Yr({name:"Bing Maps Roads",iconUrl:$t("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return P0({style:W0.ROAD})}})),e.push(new Yr({name:"ArcGIS World Imagery",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return X0.fromBasemapType(ch.SATELLITE,{enablePickFeatures:!1})}})),e.push(new Yr({name:"ArcGIS World Hillshade",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return X0.fromBasemapType(ch.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new Yr({name:"Esri World Ocean",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return X0.fromBasemapType(ch.OCEANS,{enablePickFeatures:!1})}})),e.push(new Yr({name:"Open\xADStreet\xADMap",iconUrl:$t("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new K0({url:"https://tile.openstreetmap.org/"})}})),e.push(new Yr({name:"Stadia x Stamen Watercolor",iconUrl:$t("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and reminiscent of hand drawn maps, the watercolor maps from Stamen Design apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new K0({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Stadia x Stamen Toner",iconUrl:$t("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and the most popular of the excellent styles from Stamen Design, these high-contrast B+W (black and white) maps are the perfect backdrop for your colorful and eye-catching overlays. +https://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new K0({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Stadia Alidade Smooth",iconUrl:$t("Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png"),tooltip:`Stadia's custom Alidade Smooth style is designed for maps that use a lot of markers or overlays. It features a muted color scheme and fewer points of interest to allow your added data to shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new K0({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Stadia Alidade Smooth Dark",iconUrl:$t("Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png"),tooltip:`Stadia Alidade Smooth Dark, like its lighter cousin, is also designed to stay out of the way. It just flips the dark mode switch on the color scheme. With the lights out, your data can now literally shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new K0({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new Yr({name:"Sentinel-2",iconUrl:$t("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return I0.fromAssetId(3954)}})),e.push(new Yr({name:"Blue Marble",iconUrl:$t("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return I0.fromAssetId(3845)}})),e.push(new Yr({name:"Earth at night",iconUrl:$t("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return I0.fromAssetId(3812)}})),e.push(new Yr({name:"Natural Earth\xA0II",iconUrl:$t("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return ky.fromUrl($t("Assets/Textures/NaturalEarthII"))}})),e}var S9=Vyt;var Rho=T(S(),1);function Lyt(){let e=[];return e.push(new Yr({name:"WGS84 Ellipsoid",iconUrl:$t("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new Cf}})),e.push(new Yr({name:"Cesium World Terrain",iconUrl:$t("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return ZT({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var C9=Lyt;var Uho=T(S(),1);var Who=T(S(),1);function Ryt(e){let t;if(d(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function r8(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var Zyt=new Sn,Gyt=new h;function V9(e,t){let n=this,i=e.canvas,o=new Id(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Se.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=Cn(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=Cn(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=Cn(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=Cn(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Se.getObservable(this,"frustums").subscribe(function(l){n._scene.debugShowFrustums=l,n._scene.requestRender()}),this._frustumPlanesSubscription=Se.getObservable(this,"frustumPlanes").subscribe(function(l){n._scene.debugShowFrustumPlanes=l,n._scene.requestRender()}),this._performanceSubscription=Se.getObservable(this,"performance").subscribe(function(l){l?n._performanceDisplay=new A0({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=Cn(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Se.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=Cn(function(){if(n.primitiveReferenceFrame){let l=n._primitive.modelMatrix;n._modelMatrixPrimitive=new uw({modelMatrix:l}),n._scene.primitives.add(n._modelMatrixPrimitive)}else d(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Se.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=Cn(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(l){return d(n._modelMatrixPrimitive)&&l.owner===n._modelMatrixPrimitive._primitive?!0:d(n._primitive)?l.owner===n._primitive||l.owner===n._primitive._billboardCollection||l.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Se.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Se.getObservable(this,"wireframe").subscribe(function(l){r._surface.tileProvider._debug.wireframe=l,n._scene.requestRender()}),this._depthFrustumSubscription=Se.getObservable(this,"depthFrustum").subscribe(function(l){n._scene.debugShowDepthFrustum=l,n._scene.requestRender()}),this._incrementDepthFrustum=Cn(function(){let l=n.depthFrustum+1;return n.depthFrustum=r8(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._decrementDepthFrustum=Cn(function(){let l=n.depthFrustum-1;return n.depthFrustum=r8(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Se.getObservable(this,"suspendUpdates").subscribe(function(l){r._surface._debug.suspendLodUpdate=l,l||(n.filterTile=!1)});let s;this._showTileCoordinates=Cn(function(){return n.tileCoordinates&&!d(s)?s=e.imageryLayers.addImageryProvider(new Pw({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&d(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Se.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Se.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=Cn(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=Cn(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],d(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Se.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(l){let u=n._scene.pick({x:l.position.x,y:l.position.y});d(u)&&(n.primitive=d(u.collection)?u.collection:u.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=Cn(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Se.getObservable(this,"pickPrimitiveActive").subscribe(function(l){l?o.setInputAction(a,_n.LEFT_CLICK):o.removeInputAction(_n.LEFT_CLICK)});function c(l){let u,m=r.ellipsoid,p=n._scene.camera.getPickRay(l.position,Zyt),y=r.pick(p,n._scene,Gyt);if(d(y)){let f=m.cartesianToCartographic(y),x=r._surface.tileProvider._tilesToRenderByTextureCount;for(let _=0;!u&&_<x.length;++_){let C=x[_];if(d(C))for(let V=0;!u&&V<C.length;++V){let L=C[V];de.contains(L.rectangle,f)&&(u=L)}}}n.tile=u,n.pickTileActive=!1}this._pickTile=Cn(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Se.getObservable(this,"pickTileActive").subscribe(function(l){l?o.setInputAction(c,_n.LEFT_CLICK):o.removeInputAction(_n.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(V9.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,d(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,d(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(d(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;d(n)&&d(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});V9.prototype._update=function(){this.frustums&&(this.frustumStatisticText=Ryt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=r8(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};V9.prototype.isDestroyed=function(){return!1};V9.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),ue(this)};var L9=V9;function CD(e,t){e=En(e);let n=document.createElement("div"),i=new L9(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=Za.createSection,c=Za.createCheckbox,l=a(s,"General","generalVisible","toggleGeneral"),u=c("Show Frustums","frustums"),m=document.createElement("div");m.className="cesium-cesiumInspector-frustumStatistics",m.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),u.appendChild(m),l.appendChild(u),l.appendChild(c("Show Frustum Planes","frustumPlanes")),l.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",l.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),l.appendChild(p);let y=document.createElement("div");l.appendChild(y);let f=document.createElement("span");f.setAttribute("data-bind",'html: "     Frustum:"'),y.appendChild(f);let x=document.createElement("span");x.setAttribute("data-bind","text: depthFrustumText"),y.appendChild(x);let _=document.createElement("input");_.type="button",_.value="-",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: decrementDepthFrustum"),y.appendChild(_);let C=document.createElement("input");C.type="button",C.value="+",C.className="cesium-cesiumInspector-pickButton",C.setAttribute("data-bind","click: incrementDepthFrustum"),y.appendChild(C);let V=a(s,"Primitives","primitivesVisible","togglePrimitives"),L=document.createElement("div");L.className="cesium-cesiumInspector-pickSection",V.appendChild(L);let Z=document.createElement("input");Z.type="button",Z.value="Pick a primitive",Z.className="cesium-cesiumInspector-pickButton",Z.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let G=document.createElement("div");G.className="cesium-cesiumInspector-center",G.appendChild(Z),L.appendChild(G),L.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),L.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),L.appendChild(this._primitiveOnly);let X=a(s,"Terrain","terrainVisible","toggleTerrain"),P=document.createElement("div");P.className="cesium-cesiumInspector-pickSection",X.appendChild(P);let v=document.createElement("input");v.type="button",v.value="Pick a tile",v.className="cesium-cesiumInspector-pickButton",v.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),G=document.createElement("div"),G.appendChild(v),G.className="cesium-cesiumInspector-center",P.appendChild(G);let A=document.createElement("div");P.appendChild(A);let M=document.createElement("input");M.type="button",M.value="Parent",M.className="cesium-cesiumInspector-pickButton",M.setAttribute("data-bind","click: selectParent");let b=document.createElement("input");b.type="button",b.value="NW",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: selectNW");let R=document.createElement("input");R.type="button",R.value="NE",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind","click: selectNE");let E=document.createElement("input");E.type="button",E.value="SW",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectSE");let F=document.createElement("div");F.className="cesium-cesiumInspector-tileText",A.className="cesium-cesiumInspector-frustumStatistics",A.appendChild(F),A.setAttribute("data-bind","visible: hasPickedTile"),F.setAttribute("data-bind","html: tileText");let N=document.createElement("div");N.className="cesium-cesiumInspector-relativeText",N.textContent="Select relative:",A.appendChild(N);let Y=document.createElement("table"),k=document.createElement("tr"),O=document.createElement("tr"),U=document.createElement("td");U.appendChild(M);let J=document.createElement("td");J.appendChild(b);let z=document.createElement("td");z.appendChild(R),k.appendChild(U),k.appendChild(J),k.appendChild(z);let ee=document.createElement("td"),K=document.createElement("td");K.appendChild(E);let j=document.createElement("td");j.appendChild(I),O.appendChild(ee),O.appendChild(K),O.appendChild(j),Y.appendChild(k),Y.appendChild(O),A.appendChild(Y),P.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),P.appendChild(c("Show only selected","filterTile","hasPickedTile")),X.appendChild(c("Wireframe","wireframe")),X.appendChild(c("Suspend LOD update","suspendUpdates")),X.appendChild(c("Show tile coordinates","tileCoordinates")),Se.applyBindings(i,this._element)}Object.defineProperties(CD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});CD.prototype.isDestroyed=function(){return!1};CD.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var R9=CD;var jho=T(S(),1);var Yho=T(S(),1);function Kxe(e,t){this._scene=e,this._duration=t;let n=this;this._command=Cn(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Se.track(this,["tooltip"])}Object.defineProperties(Kxe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var Z9=Kxe;function VD(e,t,n){e=En(e);let i=new Z9(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),Se.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(VD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});VD.prototype.isDestroyed=function(){return!1};VD.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var G9=VD;var dfo=T(S(),1);var ifo=T(S(),1);function LD(e,t){d(t)||(t=document.body),t=En(t);let n=this,i=Se.observable(lr.fullscreen),o=Se.observable(lr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,Se.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Se.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&lr.enabled)}}),this.tooltip=void 0,Se.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=Cn(function(){lr.fullscreen?lr.exitFullscreen():lr.requestFullscreen(n._fullscreenElement)},Se.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=g(En(e),r.body),this._callback=function(){i(lr.fullscreen)},r.addEventListener(lr.changeEventName,this._callback)}Object.defineProperties(LD.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});LD.prototype.isDestroyed=function(){return!1};LD.prototype.destroy=function(){document.removeEventListener(lr.changeEventName,this._callback),ue(this)};var E9=LD;var Eyt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",Xyt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function RD(e,t){e=En(e);let n=new E9(t,e);n._exitFullScreenPath=Xyt,n._enterFullScreenPath=Eyt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Se.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(RD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});RD.prototype.isDestroyed=function(){return!1};RD.prototype.destroy=function(){return this._viewModel.destroy(),Se.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var X9=RD;var Cfo=T(S(),1);var bfo=T(S(),1);var Hxe=1e3;function ju(e){d(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new i9({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new ye,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=Jxe,this._handleArrowUp=zxe;let t=this;this._suggestionsVisible=Se.pureComputed(function(){let o=Se.getObservable(t,"_suggestions")().length>0,r=Se.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=Cn(function(i){if(i=g(i,rg.SEARCH),t._focusTextbox=!1,d(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)wyt(t);else return vyt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?zxe(t):r?Jxe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;qxe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=g(e.autocomplete,!0),this.destinationFound=g(e.destinationFound,ju.flyToDestination),this._focusTextbox=!1,Se.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Se.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){ju._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Se.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Se.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Se.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(ju.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});ju.prototype.destroy=function(){this._suggestionSubscription.dispose()};function zxe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],ju._adjustSuggestionsScroll(e,n)}function Jxe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],ju._adjustSuggestionsScroll(e,i)}function Iyt(e,t){let n=d(t)?t.availability:void 0;return d(n)?S0(t,[e]).then(function(i){return e=i[0],e.height+=Hxe,e}):(e.height+=Hxe,Promise.resolve(e))}function Wyt(e,t){let n=e._scene,o=n.mapProjection.ellipsoid,r=n.camera,s=n.terrainProvider,a=t,c;return t instanceof de?W.equalsEpsilon(t.south,t.north,W.EPSILON7)&&W.equalsEpsilon(t.east,t.west,W.EPSILON7)?t=de.center(t):c=vT(t,n):t=o.cartesianToCartographic(t),d(c)||(c=Iyt(t,s)),c.then(function(l){a=o.cartographicToCartesian(l)}).finally(function(){r.flyTo({destination:a,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:w.IDENTITY})})}async function Pyt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function vyt(e,t,n){let i=e._searchText;if(jxe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await Pyt(t[o],i,n),d(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,a8(e);let s=r.value;if(r.state==="fulfilled"&&d(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=Qxe(e,NV.getCreditsFromResult(s[0]));d(a)||s8(e,t[o].credit);return}e._searchText=`${i} (not found)`}function s8(e,t){d(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function Qxe(e,t){return d(t)&&t.forEach(n=>s8(e,n)),t}function a8(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function Fyt(e,t){let n=En(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function wyt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function jxe(e){return/^\s*$/.test(e)}function qxe(e){Se.getObservable(e,"_suggestions").removeAll()}async function Ayt(e){if(!e.autoComplete)return;let t=e._searchText;if(qxe(e),a8(e),!jxe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,rg.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=NV.getCreditsFromResult(r);o=o&&!d(s),Qxe(e,s)}),o&&s8(e,n.credit)}if(e._suggestions.length>=5)return}}ju.flyToDestination=Wyt;ju._updateSearchSuggestions=Ayt;ju._adjustSuggestionsScroll=Fyt;ju.prototype.isDestroyed=function(){return!1};ju.prototype.destroy=function(){return a8(this),ue(this)};var I9=ju;var Myt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",Nyt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function ZD(e){let t=En(e.container),n=new I9(e);n._startSearchPath=Myt,n._stopSearchPath=Nyt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Se.applyBindings(n,i),Se.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(l){let u=l.target;typeof l.composedPath=="function"&&(u=l.composedPath()[0]),t.contains(u)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(l){n._focusTextbox=!0,n.showSuggestions()},Mt.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(ZD.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});ZD.prototype.isDestroyed=function(){return!1};ZD.prototype.destroy=function(){let e=this._container;return Mt.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Se.cleanNode(this._form),Se.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var W9=ZD;var vfo=T(S(),1);var Zfo=T(S(),1);var Uyt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",kyt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function c8(){this._cameraClicked=new ye,this._closeClicked=new ye,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Se.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Se.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?kyt:Uyt}}),Se.defineProperty(this,"_bodyless",{get:function(){return!d(this.description)||this.description.length===0}})}c8.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(c8.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var P9=c8;function GD(e){e=En(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new P9;Se.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,l=c.createElement("link");l.href=$t("Widgets/InfoBox/InfoBoxDescription.css"),l.rel="stylesheet",l.type="text/css";let u=c.createElement("div");u.className="cesium-infoBox-description",c.head.appendChild(l),c.body.appendChild(u),a._descriptionSubscription=aa(s,"description",function(m){r.style.height="5px",u.innerHTML=m;let p=null,y=u.firstElementChild;if(y!==null&&u.childNodes.length===1){let x=window.getComputedStyle(y);if(x!==null){let _=x["background-color"],C=B.fromCssColorString(_);d(C)&&C.alpha!==0&&(p=x["background-color"])}}t.style["background-color"]=p;let f=u.getBoundingClientRect().height;r.style.height=`${f}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(GD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});GD.prototype.isDestroyed=function(){return!1};GD.prototype.destroy=function(){let e=this._container;return Se.cleanNode(this._element),e.removeChild(this._element),d(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var v9=GD;var Ofo=T(S(),1);var Mfo=T(S(),1);function $xe(){this.showInstructions=!1;let e=this;this._command=Cn(function(){e.showInstructions=!e.showInstructions}),this._showClick=Cn(function(){e._touch=!1}),this._showTouch=Cn(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Se.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties($xe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var F9=$xe;function ED(e){let t=En(e.container),n=new F9,i=g(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=$t("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let l=document.createElement("button");l.type="button",l.className="cesium-navigation-button cesium-navigation-button-right",l.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let u=document.createElement("img");u.src=$t("Widgets/Images/NavigationHelp/Touch.svg"),u.className="cesium-navigation-button-icon",u.style.width="25px",u.style.height="25px",l.appendChild(u),l.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(l);let m=document.createElement("div");m.className="cesium-click-navigation-help cesium-navigation-help-instructions",m.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),m.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(m);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Se.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(y){o.contains(y.target)||(n.showInstructions=!1)},Mt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(ED.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});ED.prototype.isDestroyed=function(){return!1};ED.prototype.destroy=function(){return Mt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Se.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var w9=ED;var opo=T(S(),1);var jfo=T(S(),1);function XD(e){this._scene=e,this._orthographic=e.camera.frustum instanceof en,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Se.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Se.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=Cn(function(){t.sceneMode===ie.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Vr,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===ie.SCENE2D||t._scene.camera.frustum instanceof en}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=d(e.camera._currentFlight)}),this._switchToPerspective=Cn(function(){t.sceneMode!==ie.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=Cn(function(){t.sceneMode!==ie.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ie}Object.defineProperties(XD.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});XD.prototype.isDestroyed=function(){return!1};XD.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var A9=XD;var Dyt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",Byt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function ID(e,t){e=En(e);let n=new A9(t);n._perspectivePath=Dyt,n._orthographicPath=Byt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Se.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Mt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(ID.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});ID.prototype.isDestroyed=function(){return!1};ID.prototype.destroy=function(){return this._viewModel.destroy(),Mt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Se.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var M9=ID;var gpo=T(S(),1);var upo=T(S(),1);function l8(e){this._scene=e.scene,this.lowFrameRateMessage=g(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Se.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=Cn(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=fw.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(l8.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});l8.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var N9=l8;function WD(e){let t=En(e.container),n=new N9(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),Se.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(WD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});WD.prototype.isDestroyed=function(){return!1};WD.prototype.destroy=function(){return this._viewModel.destroy(),Se.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var U9=WD;var Wpo=T(S(),1);var Lpo=T(S(),1);function PD(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Vr,this._eventHelper.add(e.morphStart,i),this._duration=g(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Se.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Se.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===ie.SCENE2D?n.tooltip2D:o===ie.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=Cn(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=Cn(function(){e.morphTo2D(n._duration)}),this._morphTo3D=Cn(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=Cn(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ie}Object.defineProperties(PD.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});PD.prototype.isDestroyed=function(){return!1};PD.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var k9=PD;var Yyt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",Oyt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",Kyt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function vD(e,t,n){e=En(e);let i=new k9(t,n);i._globePath=Yyt,i._flatMapPath=Oyt,i._columbusViewPath=Kyt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),Se.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(l){o.contains(l.target)||(i.dropDownVisible=!1)},Mt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(vD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});vD.prototype.isDestroyed=function(){return!1};vD.prototype.destroy=function(){return this._viewModel.destroy(),Mt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Se.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var D9=vD;var Ypo=T(S(),1);var Apo=T(S(),1);var Hyt=new D,FD="-1000px";function B9(e,t,n){this._scene=e,this._screenPositionX=FD,this._screenPositionY=FD,this._tweens=e.tweens,this._container=g(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Se.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Se.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&d(this.position)}}),Se.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Ji.wgs84ToWindowCoordinates(e,i,o)}}B9.prototype.update=function(){if(this.showSelection&&d(this.position)){let e=this.computeScreenSpacePosition(this.position,Hyt);if(!d(e))this._screenPositionX=FD,this._screenPositionY=FD;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};B9.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:Ir.EXPONENTIAL_OUT})};B9.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:Ir.EXPONENTIAL_OUT})};Object.defineProperties(B9.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var Y9=B9;function wD(e,t){e=En(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new Y9(t,this._element,this._container);this._viewModel=c,Se.applyBindings(this._viewModel,this._element)}Object.defineProperties(wD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});wD.prototype.isDestroyed=function(){return!1};wD.prototype.destroy=function(){let e=this._container;return Se.cleanNode(this._element),e.removeChild(this._element),ue(this)};var O9=wD;var a0o=T(S(),1);var e0o=T(S(),1);var o_e=T(i_e(),1);function Qyt(e){let t=!1,n=window.screen;return d(n)&&(d(n.lockOrientation)?t=n.lockOrientation(e):d(n.mozLockOrientation)?t=n.mozLockOrientation(e):d(n.msLockOrientation)?t=n.msLockOrientation(e):d(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function r_e(){let e=window.screen;d(e)&&(d(e.unlockOrientation)?e.unlockOrientation():d(e.mozUnlockOrientation)?e.mozUnlockOrientation():d(e.msUnlockOrientation)?e.msUnlockOrientation():d(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function jyt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(r_e(),e._locked=!1),e._noSleep.disable(),lr.exitFullscreen(),n(!1)):(lr.fullscreen||lr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=Qyt("landscape")),t.useWebVR=!0,n(!0)))}function AD(e,t){let n=this,i=Se.observable(lr.enabled),o=Se.observable(!1);this.isVRMode=void 0,Se.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,Se.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&lr.enabled)}}),this.tooltip=void 0,Se.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=Se.observable(!1);this._isOrthographic=void 0,Se.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new Vr,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof en)}),this._locked=!1,this._noSleep=new o_e.default,this._command=Cn(function(){jyt(n,e,o,r)},Se.getObservable(this,"isVREnabled")),this._vrElement=g(En(t),document.body),this._callback=function(){!lr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(r_e(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(lr.changeEventName,this._callback)}Object.defineProperties(AD.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});AD.prototype.isDestroyed=function(){return!1};AD.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(lr.changeEventName,this._callback),ue(this)};var K9=AD;var qyt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",$yt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function MD(e,t,n){e=En(e);let i=new K9(t,n);i._exitVRPath=$yt,i._enterVRPath=qyt;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),Se.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(MD.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});MD.prototype.isDestroyed=function(){return!1};MD.prototype.destroy=function(){return this._viewModel.destroy(),Se.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var H9=MD;var x0o=T(S(),1);var d0o=T(S(),1);function UT(e,t,n){this._color=e,this._height=t,this._base=g(n,0)}UT.prototype.getHeight=function(){return this._height};UT.prototype.getBase=function(){return this._base};UT.prototype.getStartTime=function(){return this._start};UT.prototype.getStopTime=function(){return this._stop};UT.prototype.setRange=function(e,t){this._start=e,this._stop=t};UT.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=te.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=te.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var z9=UT;var h0o=T(S(),1);function s_e(e,t,n,i){this.interval=e,this.height=t,this.color=n||new B(.5,.5,.5,1),this.backgroundColor=i||new B(0,0,0,0)}s_e.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=te.addSeconds(t.startJulian,t.duration,new te);if(te.lessThan(n,o)&&te.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(te.lessThanOrEquals(n,r)&&te.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let l=te.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new te);!d(a)&&te.greaterThanOrEquals(l,n)?a=s:!d(c)&&te.greaterThanOrEquals(l,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),d(a)&&(d(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var J9=s_e;var h8=1e12,qu={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},Qc={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},hg=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],egt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function jc(e,t){e=En(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=qu.none,this._touchMode=Qc.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=tgt(this),this._onMouseUp=ngt(this),this._onMouseMove=igt(this),this._onMouseWheel=ogt(this),this._onTouchStart=rgt(this),this._onTouchMove=agt(this),this._onTouchEnd=sgt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}jc.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};jc.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};jc.prototype.isDestroyed=function(){return!1};jc.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),ue(this)};jc.prototype.addHighlightRange=function(e,t,n){let i=new z9(e,t,n);return this._highlightRanges.push(i),this.resize(),i};jc.prototype.addTrack=function(e,t,n,i){let o=new J9(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};jc.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=te.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Er.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=te.secondsDifference(o,i),s=te.secondsDifference(i,this._startJulian),a=te.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=te.addSeconds(this._endJulian,s,new te),this._startJulian=i,this._timeBarSecondsSpan=te.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=te.addSeconds(this._startJulian,a,new te),this._endJulian=o,this._timeBarSecondsSpan=te.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};jc.prototype.zoomFrom=function(e){let t=te.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(te.addSeconds(this._startJulian,t-t*e,new te),te.addSeconds(this._endJulian,n*e-n,new te))};function f8(e){return e<10?`0${e.toString()}`:e.toString()}jc.prototype.makeLabel=function(e){let t=te.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${egt[t.month-1]} ${t.day} ${t.year} ${f8(t.hour)}:${f8(t.minute)}:${f8(t.second)}${i}`};jc.prototype.smallestTicInPixels=7;jc.prototype._makeTics=function(){let e=this._timeBarEle,t=te.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,l=1e-10,u=0,m=this._timeBarSecondsSpan;m<a?(m=a,this._timeBarSecondsSpan=a,this._endJulian=te.addSeconds(this._startJulian,a,new te)):m>c&&(m=c,this._timeBarSecondsSpan=c,this._endJulian=te.addSeconds(this._startJulian,c,new te));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let y=this._startJulian,f=Math.min(m/p*1e-5,.4),x,_=te.toGregorianDate(y);m>31536e4?x=te.fromDate(new Date(Date.UTC(Math.floor(_.year/100)*100,0))):m>31536e3?x=te.fromDate(new Date(Date.UTC(Math.floor(_.year/10)*10,0))):m>86400?x=te.fromDate(new Date(Date.UTC(_.year,0))):x=te.fromDate(new Date(Date.UTC(_.year,_.month,_.day)));let C=te.secondsDifference(this._startJulian,te.addSeconds(x,f,new te)),V=C+m;this._epochJulian=x;function L(U){return Math.floor(C/U)*U}function Z(U,J){return Math.ceil(U/J+.5)*J}function G(U){return(U-C)/m}function X(U,J){return U-J*Math.round(U/J)}this._rulerEle.innerHTML=this.makeLabel(te.addSeconds(this._endJulian,-a,new te));let P=this._rulerEle.offsetWidth+20;P<30&&(P=180);let v=u;u-=l;let A={startTime:C,startJulian:y,epochJulian:x,duration:m,timeBarWidth:p,getAlpha:G};this._highlightRanges.forEach(function(U){s+=U.render(A)});let M=0,b=0,R=0,E=P/p;E>1&&(E=1),E*=this._timeBarSecondsSpan;let I=-1,F=-1,N=hg.length,Y;for(Y=0;Y<N;++Y){let U=hg[Y];if(++I,M=U,U>E&&U>u)break;F<0&&p*(U/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(F=I)}if(I>0){for(;I>0;)if(--I,Math.abs(X(M,hg[I]))<1e-5){hg[I]>=u&&(b=hg[I]);break}if(F>=0)for(;F<I;){if(Math.abs(X(b,hg[F]))<1e-5&&hg[F]>=u){R=hg[F];break}++F}}u=v,u>l&&R<1e-5&&Math.abs(u-M)>l&&(R=u,u<=M+l&&(b=0));let k=-999999,O;if(p*(R/this._timeBarSecondsSpan)>=3)for(o=L(R);o<=V;o=Z(o,R))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*G(o)).toString()}px;"></span>`;if(p*(b/this._timeBarSecondsSpan)>=3)for(o=L(b);o<=V;o=Z(o,b))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*G(o)).toString()}px;"></span>`;if(p*(M/this._timeBarSecondsSpan)>=2){this._mainTicSpan=M,V+=M,o=L(M);let U=te.computeTaiMinusUtc(x);for(;o<=V;){let J=te.addSeconds(y,o-C,new te);if(M>2.1){let j=te.computeTaiMinusUtc(J);Math.abs(j-U)>.1&&(o+=j-U,J=te.addSeconds(y,o-C,new te))}let z=Math.round(p*G(o)),ee=this.makeLabel(J);this._rulerEle.innerHTML=ee,O=this._rulerEle.offsetWidth,O<10&&(O=P);let K=z-(O/2-1);K>k?(k=K+O+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${z.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${K.toString()}px;">${ee}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${z.toString()}px;"></span>`,o=Z(o,M)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),A.y=0,this._trackList.forEach(function(U){U.render(r._context,A),A.y+=U.height})};jc.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(d(this._scrubElement)){let t=te.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}d(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(te.addSeconds(this._startJulian,this._timelineDrag,new te),te.addSeconds(this._endJulian,this._timelineDrag,new te)))};jc.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=te.addSeconds(this._startJulian,t,new te),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function tgt(e){return function(t){e._mouseMode!==qu.touchOnly&&(t.button===0?(e._mouseMode=qu.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=qu.zoom:e._mouseMode=qu.slide)),t.preventDefault()}}function ngt(e){return function(t){e._mouseMode=qu.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function igt(e){return function(t){let n;if(e._mouseMode===qu.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===qu.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(te.addSeconds(e._startJulian,i,new te),te.addSeconds(e._endJulian,i,new te))}}else e._mouseMode===qu.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function ogt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;h8=Math.max(Math.min(Math.abs(n),h8),1),n/=h8,e.zoomFrom(Math.pow(1.05,-n))}}function rgt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=qu.touchOnly,n===1?(i=te.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=Qc.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=Qc.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=Qc.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=Qc.ignore}}function sgt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===Qc.singleTap?(e._touchMode=Qc.scrub,e._onTouchMove(t)):e._touchMode===Qc.scrub&&e._onTouchMove(t),e._mouseMode=qu.touchOnly,n!==1?e._touchMode=n>0?Qc.ignore:Qc.none:e._touchMode===Qc.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function agt(e){return function(t){let n,i,o,r,s,a,c=1,l=e._topDiv.getBoundingClientRect().left;e._touchMode===Qc.singleTap&&(e._touchMode=Qc.slideZoom),e._mouseMode=qu.touchOnly,e._touchMode===Qc.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-l,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===Qc.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-l,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-l,s=0),d(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=te.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new te)):(n=e._touchState.centerX-r,a=te.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new te)),e.zoomTo(a,te.addSeconds(a,e._timeBarSecondsSpan*c,new te)),e._touchState.centerX=r,e._touchState.spanX=s))}}jc.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var Q9=jc;var k0o=T(S(),1);var fg=new ce;function l_e(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function cgt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);d(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function lgt(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(d(r)&&r!=="")return r}return"Unnamed Feature"}function a_e(e,t){let n=e.scene.pick(t.position);if(d(n)){let i=g(n.id,n.primitive.id);if(i instanceof Oo)return i;if(n instanceof Ss)return new Oo({name:lgt(n),description:cgt(n),feature:n})}if(d(e.scene.globe))return mgt(e,t.position)}var dgt=new te;function d_e(e,t,n){if(d(n)){let i=n.clock;if(d(i)&&(i.getValue(t),d(e))){let o=i.startTime,r=i.stopTime;te.equals(o,r)&&(r=te.addSeconds(o,W.EPSILON2,dgt)),e.updateFromClock(),e.zoomTo(o,r)}}}var ugt=new h;function mgt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!d(o))return;let r=new Oo({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!d(s)||s.length===0){e.selectedEntity=c_e();return}let a=s[0],c=new Oo({id:a.name,description:a.description});if(d(a.position)){let l=e.scene.globe.ellipsoid.cartographicToCartesian(a.position,ugt);c.position=new Gc(l)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=c_e())}),r}function c_e(){return new Oo({id:"None",description:"No features found."})}function hgt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,l=e._fullscreenButton,u=e._infoBox,m=e._selectionIndicator,p=t?"hidden":"visible";if(d(n)&&(n.container.style.visibility=p),d(i)&&(i.container.style.visibility=p),d(o)&&(o.container.style.visibility=p),d(r)&&(r.container.style.visibility=p),d(s)&&(s.container.style.visibility=p),d(a)&&(a.container.style.visibility=p),d(c)&&(c.container.style.visibility=p),d(l)&&l.viewModel.isFullscreenEnabled&&(l.container.style.visibility=p),d(u)&&(u.container.style.visibility=p),d(m)&&(m.container.style.visibility=p),e._container){let y=t||!d(l)?0:l.container.clientWidth;e._vrButton.container.style.right=`${y}px`,e.forceResize()}}function Fi(e,t){e=En(e),t=g(t,g.EMPTY_OBJECT);let n=(!d(t.globe)||t.globe!==!1)&&(!d(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=g(t.scene3DOnly,!1),c,l,u=!1;d(t.clockViewModel)?(l=t.clockViewModel,c=l.clock):(c=new Dm,l=new d9(c),u=!0),d(t.shouldAnimate)&&(c.shouldAnimate=t.shouldAnimate);let m=new iw(r,{baseLayer:n||d(t.baseLayer)||d(t.imageryProvider)?!1:void 0,clock:c,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:d(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=t.dataSources,y=!1;d(p)||(p=new C2,y=!0);let f=m.scene,x=new lP({scene:f,dataSourceCollection:p}),_=new Vr;_.add(c.onTick,Fi.prototype._onTick,this),_.add(f.morphStart,Fi.prototype._clearTrackedObject,this);let C;if(!d(t.selectionIndicator)||t.selectionIndicator!==!1){let z=document.createElement("div");z.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(z),C=new O9(z,f)}let V;if(!d(t.infoBox)||t.infoBox!==!1){let z=document.createElement("div");z.className="cesium-viewer-infoBoxContainer",o.appendChild(z),V=new v9(z);let ee=V.viewModel;_.add(ee.cameraClicked,Fi.prototype._onInfoBoxCameraClicked,this),_.add(ee.closeClicked,Fi.prototype._onInfoBoxClockClicked,this)}let L=document.createElement("div");L.className="cesium-viewer-toolbar",o.appendChild(L);let Z;if(!d(t.geocoder)||t.geocoder!==!1){let z=document.createElement("div");z.className="cesium-viewer-geocoderContainer",L.appendChild(z);let ee;d(t.geocoder)&&typeof t.geocoder!="boolean"&&(ee=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),Z=new W9({container:z,geocoderServices:ee,scene:f}),_.add(Z.viewModel.search.beforeExecute,Fi.prototype._clearObjects,this)}let G;(!d(t.homeButton)||t.homeButton!==!1)&&(G=new G9(L,f),d(Z)&&_.add(G.viewModel.command.afterExecute,function(){let z=Z.viewModel;z.searchText="",z.isSearchInProgress&&z.search()}),_.add(G.viewModel.command.beforeExecute,Fi.prototype._clearTrackedObject,this));let X;!a&&(!d(t.sceneModePicker)||t.sceneModePicker!==!1)&&(X=new D9(L,f));let P;t.projectionPicker&&(P=new M9(L,f));let v,A;if(n){let z=g(t.imageryProviderViewModels,S9()),ee=g(t.terrainProviderViewModels,C9());v=new T9(L,{globe:f.globe,imageryProviderViewModels:z,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:ee,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),A=L.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}d(t.baseLayer)&&t.baseLayer!==!1&&(n&&(v.viewModel.selectedImagery=void 0),f.imageryLayers.removeAll(),f.imageryLayers.add(t.baseLayer)),d(t.terrainProvider)&&(n&&(v.viewModel.selectedTerrain=void 0),f.terrainProvider=t.terrainProvider),d(t.terrain)&&(n&&(v.viewModel.selectedTerrain=void 0,f.globe.depthTestAgainstTerrain=!0),f.setTerrain(t.terrain));let M;if(!d(t.navigationHelpButton)||t.navigationHelpButton!==!1){let z=!0;try{if(d(window.localStorage)){let ee=window.localStorage.getItem("cesium-hasSeenNavHelp");d(ee)&&ee?z=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}M=new w9({container:L,instructionsInitiallyVisible:g(t.navigationInstructionsInitiallyVisible,z)})}let b;if(!d(t.animation)||t.animation!==!1){let z=document.createElement("div");z.className="cesium-viewer-animationContainer",o.appendChild(z),b=new f9(z,new p9(l))}let R;if(!d(t.timeline)||t.timeline!==!1){let z=document.createElement("div");z.className="cesium-viewer-timelineContainer",o.appendChild(z),R=new Q9(z,c),R.addEventListener("settime",l_e,!1),R.zoomTo(c.startTime,c.stopTime)}let E,I,F;(!d(t.fullscreenButton)||t.fullscreenButton!==!1)&&(F=document.createElement("div"),F.className="cesium-viewer-fullscreenContainer",o.appendChild(F),E=new X9(F,t.fullscreenElement),I=aa(E.viewModel,"isFullscreenEnabled",function(z){F.style.display=z?"block":"none",d(R)&&(R.container.style.right=`${F.clientWidth}px`,R.resize())}));let N,Y,k;if(t.vrButton){let z=document.createElement("div");z.className="cesium-viewer-vrContainer",o.appendChild(z),N=new H9(z,f,t.fullScreenElement),Y=aa(N.viewModel,"isVREnabled",function(ee){z.style.display=ee?"block":"none",d(E)&&(z.style.right=`${F.clientWidth}px`),d(R)&&(R.container.style.right=`${z.clientWidth}px`,R.resize())}),k=aa(N.viewModel,"isVRMode",function(ee){hgt(i,ee)})}this._baseLayerPickerDropDown=A,this._fullscreenSubscription=I,this._vrSubscription=Y,this._vrModeSubscription=k,this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=g(t.automaticallyTrackDataSourceClocks,!0),this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=m,this._selectionIndicator=C,this._infoBox=V,this._dataSourceCollection=p,this._destroyDataSourceCollection=y,this._dataSourceDisplay=x,this._clockViewModel=l,this._destroyClockViewModel=u,this._toolbar=L,this._homeButton=G,this._sceneModePicker=X,this._projectionPicker=P,this._baseLayerPicker=v,this._navigationHelpButton=M,this._animation=b,this._timeline=R,this._fullscreenButton=E,this._vrButton=N,this._geocoder=Z,this._eventHelper=_,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=d(V)||d(C),this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._selectedEntity=void 0,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._selectedEntityChanged=new ye,this._trackedEntityChanged=new ye,Se.track(this,["_trackedEntity","_selectedEntity","_clockTrackedDataSource"]),_.add(p.dataSourceAdded,Fi.prototype._onDataSourceAdded,this),_.add(p.dataSourceRemoved,Fi.prototype._onDataSourceRemoved,this),_.add(f.postUpdate,Fi.prototype.resize,this),_.add(f.postRender,Fi.prototype._postRender,this);let O=p.length;for(let z=0;z<O;z++)this._dataSourceAdded(p,p.get(z));this._dataSourceAdded(void 0,x.defaultDataSource),_.add(p.dataSourceAdded,Fi.prototype._dataSourceAdded,this),_.add(p.dataSourceRemoved,Fi.prototype._dataSourceRemoved,this);function U(z){let ee=a_e(i,z);d(ee)?H.getValueOrUndefined(ee.position,i.clock.currentTime)?i.trackedEntity=ee:i.zoomTo(ee):d(i.trackedEntity)&&(i.trackedEntity=void 0)}function J(z){i.selectedEntity=a_e(i,z)}m.screenSpaceEventHandler.setInputAction(J,_n.LEFT_CLICK),m.screenSpaceEventHandler.setInputAction(U,_n.LEFT_DOUBLE_CLICK)}Object.defineProperties(Fi.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,p8(this);let t=this.scene,n=t.mode;!d(e)||!d(e.position)?(this._needTrackedEntityUpdate=!1,(n===ie.COLUMBUS_VIEW||n===ie.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ie.COLUMBUS_VIEW||n===ie.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(w.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=d(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;d(e)?d(t)&&t.animateAppear():d(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,d_e(this._timeline,this.clock,e))}}});Fi.prototype.extend=function(e,t){e(this,t)};Fi.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=d(this._animation),r=d(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(d(a)&&(a.style.maxHeight=`${s}px`),d(this._geocoder)){let y=this._geocoder.searchSuggestionsContainer;y.style.maxHeight=`${s}px`}d(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,l,u=0,m=0,p=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let y=this._lastWidth;l=this._animation.container,n>900?(u=169,y<=900&&(l.style.width="169px",l.style.height="112px",this._animation.resize())):n>=600?(u=136,(y<600||y>900)&&(l.style.width="136px",l.style.height="90px",this._animation.resize())):(u=106,(y>600||y===0)&&(l.style.width="106px",l.style.height="70px",this._animation.resize())),m=u+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let y=this._fullscreenButton,f=this._vrButton,x=c.container,_=x.style;p=x.clientHeight+3,_.left=`${u}px`;let C=0;d(y)&&(C+=y.container.clientWidth),d(f)&&(C+=f.container.clientWidth),_.right=`${C}px`,c.resize()}this._bottomContainer.style.left=`${m}px`,this._bottomContainer.style.bottom=`${p}px`,this._lastWidth=n,this._lastHeight=i};Fi.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Fi.prototype.render=function(){this._cesiumWidget.render()};Fi.prototype.isDestroyed=function(){return!1};Fi.prototype.destroy=function(){let e;this.screenSpaceEventHandler.removeInputAction(_n.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(_n.LEFT_DOUBLE_CLICK);let t=this.dataSources,n=t.length;for(e=0;e<n;e++)this._dataSourceRemoved(t,t.get(e));return this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),d(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),d(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),d(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),d(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),d(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),d(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),d(this._timeline)&&(this._timeline.removeEventListener("settime",l_e,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),d(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),d(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),d(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),d(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),this._cesiumWidget=this._cesiumWidget.destroy(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};Fi.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Fi.prototype._onEntityCollectionChanged,this)};Fi.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Fi.prototype._onEntityCollectionChanged,this),d(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),d(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Fi.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=n);let i=this._entityView;if(d(i)){let u=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(u,!1,fg)===lt.DONE&&i.update(t,fg)}let o,r=!1,s=this.selectedEntity,a=d(s)&&this._enableInfoOrSelection;a&&s.isShowing&&s.isAvailable(t)&&(this._dataSourceDisplay.getBoundingSphere(s,!0,fg)!==lt.FAILED?o=fg.center:d(s.position)&&(o=s.position.getValue(t,o)),r=d(o));let c=d(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;d(c)&&(c.position=h.clone(o,c.position),c.showSelection=a&&r,c.update());let l=d(this._infoBox)?this._infoBox.viewModel:void 0;d(l)&&(l.showInfo=a,l.enableCamera=r,l.isCameraTracking=this.trackedEntity===this.selectedEntity,a?(l.titleText=g(s.name,s.id),l.description=H.getValueOrDefault(s.description,t,"")):(l.titleText="",l.description=""))};Fi.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0),this.selectedEntity===r&&(this.selectedEntity=void 0)}};Fi.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;d(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Fi.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Fi.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Fi.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Fi.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&d_e(this.timeline,this.clock,e)};Fi.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Fi.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Fi.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Fi.prototype.zoomTo=function(e,t){return u_e(this,e,{offset:t},!1)};Fi.prototype.flyTo=function(e,t){return u_e(this,e,t,!0)};function u_e(e,t,n,i){p8(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof na){let s;d(r.imageryProvider)?s=Promise.resolve(r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return vT(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof zs||r instanceof IV||r instanceof FV){e._zoomTarget=r;return}if(r.isLoading&&d(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=g(r.values,r),d(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function j9(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function p8(e){let t=e._zoomPromise;d(t)&&(j9(e),e._completeZoom(!1))}Fi.prototype._postRender=function(){fgt(this),pgt(this)};function fgt(e){let t=e._zoomTarget;if(!d(t)||e.scene.mode===ie.MORPHING)return;let n=e.scene,i=n.camera,o=g(e._zoomOptions,{}),r;function s(u){d(o.offset)||(o.offset=new Pu(0,-.5,u.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(w.IDENTITY),e._completeZoom(!0)),j9(e)}if(t instanceof IV){if(d(t.boundingSphere)){s(t.boundingSphere);return}let u=t.frameChanged.addEventListener(function(m){s(m.boundingSphere),u()});return}if(t instanceof zs||t instanceof FV){s(t.boundingSphere);return}if(t instanceof he){r={destination:n.mapProjection.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),j9(e);return}let a=t,c=[];for(let u=0,m=a.length;u<m;u++){let p=e._dataSourceDisplay.getBoundingSphere(a[u],!1,fg);if(p===lt.PENDING)return;p!==lt.FAILED&&c.push(ce.clone(fg))}if(c.length===0){p8(e);return}e.trackedEntity=void 0;let l=ce.fromBoundingSpheres(c);e._zoomIsFlight?(j9(e),i.flyToBoundingSphere(l,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(l,o.offset),i.lookAtTransform(w.IDENTITY),j9(e),e._completeZoom(!0))}function pgt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=H.getValueOrUndefined(t.position,n);if(!d(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,fg);if(r===lt.PENDING)return;let s=o.mode;(s===ie.COLUMBUS_VIEW||s===ie.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===ie.COLUMBUS_VIEW||s===ie.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==lt.FAILED?fg:void 0;e._entityView=new uP(t,o,o.mapProjection.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var b8=Fi;var Y0o=T(S(),1);function bgt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new x9(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var y8=bgt;var H0o=T(S(),1);function ygt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new R9(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var g8=ygt;var j0o=T(S(),1);function ggt(e,t){t=g(t,g.EMPTY_OBJECT);let n=!0,i=g(t.flyToOnDrop,!0),o=new ye,r=g(t.clearOnDrop,!0),s=g(t.dropTarget,e.container),a=g(t.clampToGround,!0),c=t.proxy;s=En(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(u){m_e(s,l),s=u,x8(s,l)}},dropEnabled:{get:function(){return n},set:function(u){u!==n&&(u?x8(s,l):m_e(s,l),n=u)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(u){r=u}},flyToOnDrop:{get:function(){return i},set:function(u){i=u}},proxy:{get:function(){return c},set:function(u){c=u}},clampToGround:{get:function(){return a},set:function(u){a=u}}});function l(u){kT(u),r&&(e.entities.removeAll(),e.dataSources.removeAll());let m=u.dataTransfer.files,p=m.length;for(let y=0;y<p;y++){let f=m[y],x=new FileReader;x.onload=xgt(e,f,c,a),x.onerror=_gt(e,f),x.readAsText(f)}}x8(s,l),e.destroy=r9(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=l}function kT(e){e.stopPropagation(),e.preventDefault()}function m_e(e,t){let n=e;d(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",kT,!1),n.removeEventListener("dragover",kT,!1),n.removeEventListener("dragexit",kT,!1))}function x8(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",kT,!1),e.addEventListener("dragover",kT,!1),e.addEventListener("dragexit",kT,!1)}function xgt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=S2.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=fP.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=FP.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=gP.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}d(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function _gt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var _8=ggt;var ibo=T(S(),1);function Tgt(e,t){t=g(t,g.EMPTY_OBJECT);let n=new U9({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var T8=Tgt;var gbo=T(S(),1);var pbo=T(S(),1);var cbo=T(S(),1);function h_e(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function $u(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(u){t._voxelPrimitive[r]=u});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),d(c)&&t._getPrimitiveFunctions.push(c);let l=Se.observable();return Se.defineProperty(t,r,{get:function(){return l()},set:function(u){typeof s=="number"&&typeof u=="string"&&(u=Number(u),isNaN(u)&&(u=s)),typeof s=="boolean"&&typeof u=="number"&&(u=u===1),l(u),d(a)&&d(t._voxelPrimitive)&&(a(u),e.requestRender())}}),t[r]=s,l}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=h_e(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===Oi.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===Oi.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===Oi.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)},getPrimitiveFunction:function(){t.translationX=w.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)},getPrimitiveFunction:function(){t.translationY=w.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)},getPrimitiveFunction:function(){t.translationZ=w.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)},getPrimitiveFunction:function(){t.scaleX=w.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)},getPrimitiveFunction:function(){t.scaleY=w.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)},getPrimitiveFunction:function(){t.scaleZ=w.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Uf(t)}})}var Sgt=new h,Cgt=new h,Vgt=new Aa,Lgt=new $;function Uf(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,Sgt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,Cgt),i=Vgt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,Lgt),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=w.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties($u.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(d(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),d(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=h_e(i),d(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,Uf(t)}}}});$u.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};$u.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};$u.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};$u.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};$u.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};$u.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};$u.prototype.compileShader=function(){d(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new WT({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};$u.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),r-=2):(a[l]=a[l].substr(1),r-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,r+=2;let u=a.join(` +`);n.value=n.value.slice(0,i)+u+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};$u.prototype.isDestroyed=function(){return!1};$u.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Se.getObservable(e,t).dispose()}),ue(this)};var q9=$u;function ND(e,t){e=En(e);let n=document.createElement("div"),i=new q9(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=Za.createSection,a=Za.createCheckbox,c=Za.createRangeInput,l=Za.createButton,u=s(r,"Display","displayVisible","toggleDisplay"),m=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),y=s(r,"Clipping","clippingVisible","toggleClipping"),f=s(r,"Shader","shaderVisible","toggleShader");u.appendChild(a("Depth Test","depthTest")),u.appendChild(a("Show","show")),u.appendChild(a("Disable Update","disableUpdate")),u.appendChild(a("Debug Draw","debugDraw")),u.appendChild(a("Jitter","jitter")),u.appendChild(a("Nearest Sampling","nearestSampling")),u.appendChild(c("Screen Space Error","screenSpaceError",0,128)),u.appendChild(c("Step Size","stepSize",0,2));let x=10,_=10,C=W.PI;m.appendChild(c("Translation X","translationX",-x,+x)),m.appendChild(c("Translation Y","translationY",-x,+x)),m.appendChild(c("Translation Z","translationZ",-x,+x)),m.appendChild(c("Scale X","scaleX",0,+_)),m.appendChild(c("Scale Y","scaleY",0,+_)),m.appendChild(c("Scale Z","scaleZ",0,+_)),m.appendChild(c("Heading","angleX",-C,+C)),m.appendChild(c("Pitch","angleY",-C,+C)),m.appendChild(c("Roll","angleZ",-C,+C));let V=Oi.getMinBounds(Oi.BOX),L=Oi.getMaxBounds(Oi.BOX),Z=h.fromElements(Oi.getMinBounds(Oi.ELLIPSOID).x,Oi.getMinBounds(Oi.ELLIPSOID).y,-re.WGS84.maximumRadius,new h),G=h.fromElements(Oi.getMaxBounds(Oi.ELLIPSOID).x,Oi.getMaxBounds(Oi.ELLIPSOID).y,1e7,new h),X=Oi.getMinBounds(Oi.CYLINDER),P=Oi.getMaxBounds(Oi.CYLINDER);OV("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",V,L,"shapeIsBox",p),OV("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",Z,G,"shapeIsEllipsoid",p),OV("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",X,P,"shapeIsCylinder",p),OV("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",V,L,"shapeIsBox",y),OV("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",Z,G,"shapeIsEllipsoid",y),OV("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",X,P,"shapeIsCylinder",y);let v=document.createElement("div");f.appendChild(v);let A=document.createElement("textarea");A.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),v.className="cesium-cesiumInspector-styleEditor",v.appendChild(A);let M=l("Compile (Ctrl+Enter)","compileShader");v.appendChild(M);let b=document.createElement("label");b.style.display="block",b.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),v.appendChild(b),Se.applyBindings(i,n)}Object.defineProperties(ND.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});ND.prototype.isDestroyed=function(){return!1};ND.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function OV(e,t,n,i,o,r,s,a,c,l,u,m,p,y,f,x){let _=Za.createRangeInput,C=p,V=y,L=x.appendChild(document.createElement("div"));L.setAttribute("data-bind",`if: ${f}`),L.appendChild(_(e,s,C.x,V.x)),L.appendChild(_(t,a,C.x,V.x)),L.appendChild(_(n,c,C.y,V.y)),L.appendChild(_(i,l,C.y,V.y)),L.appendChild(_(o,u,C.z,V.z)),L.appendChild(_(r,m,C.z,V.z))}var $9=ND;function Rgt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new $9(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var S8=Rgt;globalThis.CESIUM_VERSION="1.111";var Zgt="1.111";return E_e(Ggt);})(); diff --git a/libs/cesium/1.111/ThirdParty/Workers/package.json b/libs/cesium/1.111/ThirdParty/Workers/package.json new file mode 100644 index 000000000..0292b9956 --- /dev/null +++ b/libs/cesium/1.111/ThirdParty/Workers/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/libs/cesium/1.111/ThirdParty/Workers/pako_deflate.min.js b/libs/cesium/1.111/ThirdParty/Workers/pako_deflate.min.js new file mode 100644 index 000000000..71416d2af --- /dev/null +++ b/libs/cesium/1.111/ThirdParty/Workers/pako_deflate.min.js @@ -0,0 +1 @@ +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */(function(v,z){typeof exports=="object"&&typeof module<"u"?z(exports):typeof define=="function"&&define.amd?define(["exports"],z):z((v=typeof globalThis<"u"?globalThis:v||self).pako={})})(this,function(v){"use strict";function z(e){let s=e.length;for(;--s>=0;)e[s]=0}const oe=256,Ae=286,H=30,M=15,de=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ae=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),ra=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Z=new Array(576);z(Z);const P=new Array(60);z(P);const j=new Array(512);z(j);const K=new Array(256);z(K);const ue=new Array(29);z(ue);const se=new Array(H);function fe(e,s,a,r,n){this.static_tree=e,this.extra_bits=s,this.extra_base=a,this.elems=r,this.max_length=n,this.has_stree=e&&e.length}let Ze,Ue,Re;function ce(e,s){this.dyn_tree=e,this.max_code=0,this.stat_desc=s}z(se);const Se=e=>e<256?j[e]:j[256+(e>>>7)],Y=(e,s)=>{e.pending_buf[e.pending++]=255&s,e.pending_buf[e.pending++]=s>>>8&255},p=(e,s,a)=>{e.bi_valid>16-a?(e.bi_buf|=s<<e.bi_valid&65535,Y(e,e.bi_buf),e.bi_buf=s>>16-e.bi_valid,e.bi_valid+=a-16):(e.bi_buf|=s<<e.bi_valid&65535,e.bi_valid+=a)},k=(e,s,a)=>{p(e,a[2*s],a[2*s+1])},Te=(e,s)=>{let a=0;do a|=1&e,e>>>=1,a<<=1;while(--s>0);return a>>>1},Le=(e,s,a)=>{const r=new Array(16);let n,i,_=0;for(n=1;n<=M;n++)_=_+a[n-1]<<1,r[n]=_;for(i=0;i<=s;i++){let t=e[2*i+1];t!==0&&(e[2*i]=Te(r[t]++,t))}},Fe=e=>{let s;for(s=0;s<Ae;s++)e.dyn_ltree[2*s]=0;for(s=0;s<H;s++)e.dyn_dtree[2*s]=0;for(s=0;s<19;s++)e.bl_tree[2*s]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Oe=e=>{e.bi_valid>8?Y(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},De=(e,s,a,r)=>{const n=2*s,i=2*a;return e[n]<e[i]||e[n]===e[i]&&r[s]<=r[a]},pe=(e,s,a)=>{const r=e.heap[a];let n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&De(s,e.heap[n+1],e.heap[n],e.depth)&&n++,!De(s,r,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=r},Ne=(e,s,a)=>{let r,n,i,_,t=0;if(e.sym_next!==0)do r=255&e.pending_buf[e.sym_buf+t++],r+=(255&e.pending_buf[e.sym_buf+t++])<<8,n=e.pending_buf[e.sym_buf+t++],r===0?k(e,n,s):(i=K[n],k(e,i+oe+1,s),_=de[i],_!==0&&(n-=ue[i],p(e,n,_)),r--,i=Se(r),k(e,i,a),_=ae[i],_!==0&&(r-=se[i],p(e,r,_)));while(t<e.sym_next);k(e,256,s)},ge=(e,s)=>{const a=s.dyn_tree,r=s.stat_desc.static_tree,n=s.stat_desc.has_stree,i=s.stat_desc.elems;let _,t,h,l=-1;for(e.heap_len=0,e.heap_max=573,_=0;_<i;_++)a[2*_]!==0?(e.heap[++e.heap_len]=l=_,e.depth[_]=0):a[2*_+1]=0;for(;e.heap_len<2;)h=e.heap[++e.heap_len]=l<2?++l:0,a[2*h]=1,e.depth[h]=0,e.opt_len--,n&&(e.static_len-=r[2*h+1]);for(s.max_code=l,_=e.heap_len>>1;_>=1;_--)pe(e,a,_);h=i;do _=e.heap[1],e.heap[1]=e.heap[e.heap_len--],pe(e,a,1),t=e.heap[1],e.heap[--e.heap_max]=_,e.heap[--e.heap_max]=t,a[2*h]=a[2*_]+a[2*t],e.depth[h]=(e.depth[_]>=e.depth[t]?e.depth[_]:e.depth[t])+1,a[2*_+1]=a[2*t+1]=h,e.heap[1]=h++,pe(e,a,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((u,d)=>{const m=d.dyn_tree,V=d.max_code,_e=d.stat_desc.static_tree,Na=d.stat_desc.has_stree,Ia=d.stat_desc.extra_bits,na=d.stat_desc.extra_base,$=d.stat_desc.max_length;let ee,y,B,f,le,xe,he=0;for(f=0;f<=M;f++)u.bl_count[f]=0;for(m[2*u.heap[u.heap_max]+1]=0,ee=u.heap_max+1;ee<573;ee++)y=u.heap[ee],f=m[2*m[2*y+1]+1]+1,f>$&&(f=$,he++),m[2*y+1]=f,y>V||(u.bl_count[f]++,le=0,y>=na&&(le=Ia[y-na]),xe=m[2*y],u.opt_len+=xe*(f+le),Na&&(u.static_len+=xe*(_e[2*y+1]+le)));if(he!==0){do{for(f=$-1;u.bl_count[f]===0;)f--;u.bl_count[f]--,u.bl_count[f+1]+=2,u.bl_count[$]--,he-=2}while(he>0);for(f=$;f!==0;f--)for(y=u.bl_count[f];y!==0;)B=u.heap[--ee],B>V||(m[2*B+1]!==f&&(u.opt_len+=(f-m[2*B+1])*m[2*B],m[2*B+1]=f),y--)}})(e,s),Le(a,l,e.bl_count)},Ie=(e,s,a)=>{let r,n,i=-1,_=s[1],t=0,h=7,l=4;for(_===0&&(h=138,l=3),s[2*(a+1)+1]=65535,r=0;r<=a;r++)n=_,_=s[2*(r+1)+1],++t<h&&n===_||(t<l?e.bl_tree[2*n]+=t:n!==0?(n!==i&&e.bl_tree[2*n]++,e.bl_tree[32]++):t<=10?e.bl_tree[34]++:e.bl_tree[36]++,t=0,i=n,_===0?(h=138,l=3):n===_?(h=6,l=3):(h=7,l=4))},Ce=(e,s,a)=>{let r,n,i=-1,_=s[1],t=0,h=7,l=4;for(_===0&&(h=138,l=3),r=0;r<=a;r++)if(n=_,_=s[2*(r+1)+1],!(++t<h&&n===_)){if(t<l)do k(e,n,e.bl_tree);while(--t!=0);else n!==0?(n!==i&&(k(e,n,e.bl_tree),t--),k(e,16,e.bl_tree),p(e,t-3,2)):t<=10?(k(e,17,e.bl_tree),p(e,t-3,3)):(k(e,18,e.bl_tree),p(e,t-11,7));t=0,i=n,_===0?(h=138,l=3):n===_?(h=6,l=3):(h=7,l=4)}};let Be=!1;const He=(e,s,a,r)=>{p(e,0+(r?1:0),3),Oe(e),Y(e,a),Y(e,~a),a&&e.pending_buf.set(e.window.subarray(s,s+a),e.pending),e.pending+=a};var ia=(e,s,a,r)=>{let n,i,_=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=(t=>{let h,l=4093624447;for(h=0;h<=31;h++,l>>>=1)if(1&l&&t.dyn_ltree[2*h]!==0)return 0;if(t.dyn_ltree[18]!==0||t.dyn_ltree[20]!==0||t.dyn_ltree[26]!==0)return 1;for(h=32;h<oe;h++)if(t.dyn_ltree[2*h]!==0)return 1;return 0})(e)),ge(e,e.l_desc),ge(e,e.d_desc),_=(t=>{let h;for(Ie(t,t.dyn_ltree,t.l_desc.max_code),Ie(t,t.dyn_dtree,t.d_desc.max_code),ge(t,t.bl_desc),h=18;h>=3&&t.bl_tree[2*Ee[h]+1]===0;h--);return t.opt_len+=3*(h+1)+5+5+4,h})(e),n=e.opt_len+3+7>>>3,i=e.static_len+3+7>>>3,i<=n&&(n=i)):n=i=a+5,a+4<=n&&s!==-1?He(e,s,a,r):e.strategy===4||i===n?(p(e,2+(r?1:0),3),Ne(e,Z,P)):(p(e,4+(r?1:0),3),((t,h,l,u)=>{let d;for(p(t,h-257,5),p(t,l-1,5),p(t,u-4,4),d=0;d<u;d++)p(t,t.bl_tree[2*Ee[d]+1],3);Ce(t,t.dyn_ltree,h-1),Ce(t,t.dyn_dtree,l-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,_+1),Ne(e,e.dyn_ltree,e.dyn_dtree)),Fe(e),r&&Oe(e)},ta={_tr_init:e=>{Be||((()=>{let s,a,r,n,i;const _=new Array(16);for(r=0,n=0;n<28;n++)for(ue[n]=r,s=0;s<1<<de[n];s++)K[r++]=n;for(K[r-1]=n,i=0,n=0;n<16;n++)for(se[n]=i,s=0;s<1<<ae[n];s++)j[i++]=n;for(i>>=7;n<H;n++)for(se[n]=i<<7,s=0;s<1<<ae[n]-7;s++)j[256+i++]=n;for(a=0;a<=M;a++)_[a]=0;for(s=0;s<=143;)Z[2*s+1]=8,s++,_[8]++;for(;s<=255;)Z[2*s+1]=9,s++,_[9]++;for(;s<=279;)Z[2*s+1]=7,s++,_[7]++;for(;s<=287;)Z[2*s+1]=8,s++,_[8]++;for(Le(Z,287,_),s=0;s<H;s++)P[2*s+1]=5,P[2*s]=Te(s,5);Ze=new fe(Z,de,257,Ae,M),Ue=new fe(P,ae,0,H,M),Re=new fe(new Array(0),ra,0,19,7)})(),Be=!0),e.l_desc=new ce(e.dyn_ltree,Ze),e.d_desc=new ce(e.dyn_dtree,Ue),e.bl_desc=new ce(e.bl_tree,Re),e.bi_buf=0,e.bi_valid=0,Fe(e)},_tr_stored_block:He,_tr_flush_block:ia,_tr_tally:(e,s,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=s,e.pending_buf[e.sym_buf+e.sym_next++]=s>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,s===0?e.dyn_ltree[2*a]++:(e.matches++,s--,e.dyn_ltree[2*(K[a]+oe+1)]++,e.dyn_dtree[2*Se(s)]++),e.sym_next===e.sym_end),_tr_align:e=>{p(e,2,3),k(e,256,Z),(s=>{s.bi_valid===16?(Y(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)})(e)}},Me=(e,s,a,r)=>{let n=65535&e|0,i=e>>>16&65535|0,_=0;for(;a!==0;){_=a>2e3?2e3:a,a-=_;do n=n+s[r++]|0,i=i+n|0;while(--_);n%=65521,i%=65521}return n|i<<16|0};const _a=new Uint32Array((()=>{let e,s=[];for(var a=0;a<256;a++){e=a;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;s[a]=e}return s})());var U=(e,s,a,r)=>{const n=_a,i=r+a;e^=-1;for(let _=r;_<i;_++)e=e>>>8^n[255&(e^s[_])];return-1^e},ne={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},we={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:la,_tr_stored_block:me,_tr_flush_block:ha,_tr_tally:R,_tr_align:oa}=ta,{Z_NO_FLUSH:S,Z_PARTIAL_FLUSH:da,Z_FULL_FLUSH:ua,Z_FINISH:b,Z_BLOCK:Pe,Z_OK:c,Z_STREAM_END:je,Z_STREAM_ERROR:x,Z_DATA_ERROR:fa,Z_BUF_ERROR:be,Z_DEFAULT_COMPRESSION:ca,Z_FILTERED:pa,Z_HUFFMAN_ONLY:re,Z_RLE:ga,Z_FIXED:wa,Z_DEFAULT_STRATEGY:ma,Z_UNKNOWN:ba,Z_DEFLATED:ie}=we,F=258,A=262,N=42,O=113,G=666,D=(e,s)=>(e.msg=ne[s],s),Ke=e=>2*e-(e>4?9:0),T=e=>{let s=e.length;for(;--s>=0;)e[s]=0},ya=e=>{let s,a,r,n=e.w_size;s=e.hash_size,r=s;do a=e.head[--r],e.head[r]=a>=n?a-n:0;while(--s);s=n,r=s;do a=e.prev[--r],e.prev[r]=a>=n?a-n:0;while(--s)};let L=(e,s,a)=>(s<<e.hash_shift^a)&e.hash_mask;const g=e=>{const s=e.state;let a=s.pending;a>e.avail_out&&(a=e.avail_out),a!==0&&(e.output.set(s.pending_buf.subarray(s.pending_out,s.pending_out+a),e.next_out),e.next_out+=a,s.pending_out+=a,e.total_out+=a,e.avail_out-=a,s.pending-=a,s.pending===0&&(s.pending_out=0))},w=(e,s)=>{ha(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,s),e.block_start=e.strstart,g(e.strm)},o=(e,s)=>{e.pending_buf[e.pending++]=s},X=(e,s)=>{e.pending_buf[e.pending++]=s>>>8&255,e.pending_buf[e.pending++]=255&s},ye=(e,s,a,r)=>{let n=e.avail_in;return n>r&&(n=r),n===0?0:(e.avail_in-=n,s.set(e.input.subarray(e.next_in,e.next_in+n),a),e.state.wrap===1?e.adler=Me(e.adler,s,n,a):e.state.wrap===2&&(e.adler=U(e.adler,s,n,a)),e.next_in+=n,e.total_in+=n,n)},Ye=(e,s)=>{let a,r,n=e.max_chain_length,i=e.strstart,_=e.prev_length,t=e.nice_match;const h=e.strstart>e.w_size-A?e.strstart-(e.w_size-A):0,l=e.window,u=e.w_mask,d=e.prev,m=e.strstart+F;let V=l[i+_-1],_e=l[i+_];e.prev_length>=e.good_match&&(n>>=2),t>e.lookahead&&(t=e.lookahead);do if(a=s,l[a+_]===_e&&l[a+_-1]===V&&l[a]===l[i]&&l[++a]===l[i+1]){i+=2,a++;do;while(l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&i<m);if(r=F-(m-i),i=m-F,r>_){if(e.match_start=s,_=r,r>=t)break;V=l[i+_-1],_e=l[i+_]}}while((s=d[s&u])>h&&--n!=0);return _<=e.lookahead?_:e.lookahead},I=e=>{const s=e.w_size;let a,r,n;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=s+(s-A)&&(e.window.set(e.window.subarray(s,s+s-r),0),e.match_start-=s,e.strstart-=s,e.block_start-=s,e.insert>e.strstart&&(e.insert=e.strstart),ya(e),r+=s),e.strm.avail_in===0)break;if(a=ye(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=a,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=L(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=L(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<A&&e.strm.avail_in!==0)},Ge=(e,s)=>{let a,r,n,i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,_=0,t=e.strm.avail_in;do{if(a=65535,n=e.bi_valid+42>>3,e.strm.avail_out<n||(n=e.strm.avail_out-n,r=e.strstart-e.block_start,a>r+e.strm.avail_in&&(a=r+e.strm.avail_in),a>n&&(a=n),a<i&&(a===0&&s!==b||s===S||a!==r+e.strm.avail_in)))break;_=s===b&&a===r+e.strm.avail_in?1:0,me(e,0,0,_),e.pending_buf[e.pending-4]=a,e.pending_buf[e.pending-3]=a>>8,e.pending_buf[e.pending-2]=~a,e.pending_buf[e.pending-1]=~a>>8,g(e.strm),r&&(r>a&&(r=a),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,a-=r),a&&(ye(e.strm,e.strm.output,e.strm.next_out,a),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a)}while(_===0);return t-=e.strm.avail_in,t&&(t>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=t&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-t,e.strm.next_in),e.strstart),e.strstart+=t,e.insert+=t>e.w_size-e.insert?e.w_size-e.insert:t),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),_?4:s!==S&&s!==b&&e.strm.avail_in===0&&e.strstart===e.block_start?2:(n=e.window_size-e.strstart,e.strm.avail_in>n&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,n+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),n>e.strm.avail_in&&(n=e.strm.avail_in),n&&(ye(e.strm,e.window,e.strstart,n),e.strstart+=n,e.insert+=n>e.w_size-e.insert?e.w_size-e.insert:n),e.high_water<e.strstart&&(e.high_water=e.strstart),n=e.bi_valid+42>>3,n=e.pending_buf_size-n>65535?65535:e.pending_buf_size-n,i=n>e.w_size?e.w_size:n,r=e.strstart-e.block_start,(r>=i||(r||s===b)&&s!==S&&e.strm.avail_in===0&&r<=n)&&(a=r>n?n:r,_=s===b&&e.strm.avail_in===0&&a===r?1:0,me(e,e.block_start,a,_),e.block_start+=a,g(e.strm)),_?3:1)},ve=(e,s)=>{let a,r;for(;;){if(e.lookahead<A){if(I(e),e.lookahead<A&&s===S)return 1;if(e.lookahead===0)break}if(a=0,e.lookahead>=3&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),a!==0&&e.strstart-a<=e.w_size-A&&(e.match_length=Ye(e,a)),e.match_length>=3)if(r=R(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do e.strstart++,e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!=0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=L(e,e.ins_h,e.window[e.strstart+1]);else r=R(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(w(e,!1),e.strm.avail_out===0))return 1}return e.insert=e.strstart<2?e.strstart:2,s===b?(w(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(w(e,!1),e.strm.avail_out===0)?1:2},C=(e,s)=>{let a,r,n;for(;;){if(e.lookahead<A){if(I(e),e.lookahead<A&&s===S)return 1;if(e.lookahead===0)break}if(a=0,e.lookahead>=3&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,a!==0&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-A&&(e.match_length=Ye(e,a),e.match_length<=5&&(e.strategy===pa||e.match_length===3&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,r=R(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!=0);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(w(e,!1),e.strm.avail_out===0))return 1}else if(e.match_available){if(r=R(e,0,e.window[e.strstart-1]),r&&w(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=R(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,s===b?(w(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(w(e,!1),e.strm.avail_out===0)?1:2};function E(e,s,a,r,n){this.good_length=e,this.max_lazy=s,this.nice_length=a,this.max_chain=r,this.func=n}const W=[new E(0,0,0,0,Ge),new E(4,4,8,4,ve),new E(4,5,16,8,ve),new E(4,6,32,32,ve),new E(4,4,16,16,C),new E(8,16,32,32,C),new E(8,16,128,128,C),new E(8,32,128,256,C),new E(32,128,258,1024,C),new E(32,258,258,4096,C)];function va(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ie,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),T(this.dyn_ltree),T(this.dyn_dtree),T(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),T(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),T(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const q=e=>{if(!e)return 1;const s=e.state;return!s||s.strm!==e||s.status!==N&&s.status!==57&&s.status!==69&&s.status!==73&&s.status!==91&&s.status!==103&&s.status!==O&&s.status!==G?1:0},Xe=e=>{if(q(e))return D(e,x);e.total_in=e.total_out=0,e.data_type=ba;const s=e.state;return s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap===2?57:s.wrap?N:O,e.adler=s.wrap===2?0:1,s.last_flush=-2,la(s),c},We=e=>{const s=Xe(e);var a;return s===c&&((a=e.state).window_size=2*a.w_size,T(a.head),a.max_lazy_match=W[a.level].max_lazy,a.good_match=W[a.level].good_length,a.nice_match=W[a.level].nice_length,a.max_chain_length=W[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),s},qe=(e,s,a,r,n,i)=>{if(!e)return x;let _=1;if(s===ca&&(s=6),r<0?(_=0,r=-r):r>15&&(_=2,r-=16),n<1||n>9||a!==ie||r<8||r>15||s<0||s>9||i<0||i>wa||r===8&&_!==1)return D(e,x);r===8&&(r=9);const t=new va;return e.state=t,t.strm=e,t.status=N,t.wrap=_,t.gzhead=null,t.w_bits=r,t.w_size=1<<t.w_bits,t.w_mask=t.w_size-1,t.hash_bits=n+7,t.hash_size=1<<t.hash_bits,t.hash_mask=t.hash_size-1,t.hash_shift=~~((t.hash_bits+3-1)/3),t.window=new Uint8Array(2*t.w_size),t.head=new Uint16Array(t.hash_size),t.prev=new Uint16Array(t.w_size),t.lit_bufsize=1<<n+6,t.pending_buf_size=4*t.lit_bufsize,t.pending_buf=new Uint8Array(t.pending_buf_size),t.sym_buf=t.lit_bufsize,t.sym_end=3*(t.lit_bufsize-1),t.level=s,t.strategy=i,t.method=a,We(e)};var J={deflateInit:(e,s)=>qe(e,s,ie,15,8,ma),deflateInit2:qe,deflateReset:We,deflateResetKeep:Xe,deflateSetHeader:(e,s)=>q(e)||e.state.wrap!==2?x:(e.state.gzhead=s,c),deflate:(e,s)=>{if(q(e)||s>Pe||s<0)return e?D(e,x):x;const a=e.state;if(!e.output||e.avail_in!==0&&!e.input||a.status===G&&s!==b)return D(e,e.avail_out===0?be:x);const r=a.last_flush;if(a.last_flush=s,a.pending!==0){if(g(e),e.avail_out===0)return a.last_flush=-1,c}else if(e.avail_in===0&&Ke(s)<=Ke(r)&&s!==b)return D(e,be);if(a.status===G&&e.avail_in!==0)return D(e,be);if(a.status===N&&a.wrap===0&&(a.status=O),a.status===N){let n=ie+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=re||a.level<2?0:a.level<6?1:a.level===6?2:3,n|=i<<6,a.strstart!==0&&(n|=32),n+=31-n%31,X(a,n),a.strstart!==0&&(X(a,e.adler>>>16),X(a,65535&e.adler)),e.adler=1,a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(a.status===57){if(e.adler=0,o(a,31),o(a,139),o(a,8),a.gzhead)o(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),o(a,255&a.gzhead.time),o(a,a.gzhead.time>>8&255),o(a,a.gzhead.time>>16&255),o(a,a.gzhead.time>>24&255),o(a,a.level===9?2:a.strategy>=re||a.level<2?4:0),o(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(o(a,255&a.gzhead.extra.length),o(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=U(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(o(a,0),o(a,0),o(a,0),o(a,0),o(a,0),o(a,a.level===9?2:a.strategy>=re||a.level<2?4:0),o(a,3),a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(a.status===69){if(a.gzhead.extra){let n=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let t=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+t),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>n&&(e.adler=U(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex+=t,g(e),a.pending!==0)return a.last_flush=-1,c;n=0,i-=t}let _=new Uint8Array(a.gzhead.extra);a.pending_buf.set(_.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>n&&(e.adler=U(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex=0}a.status=73}if(a.status===73){if(a.gzhead.name){let n,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),g(e),a.pending!==0)return a.last_flush=-1,c;i=0}n=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,o(a,n)}while(n!==0);a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(a.status===91){if(a.gzhead.comment){let n,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),g(e),a.pending!==0)return a.last_flush=-1,c;i=0}n=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,o(a,n)}while(n!==0);a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(a.status===103){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(g(e),a.pending!==0))return a.last_flush=-1,c;o(a,255&e.adler),o(a,e.adler>>8&255),e.adler=0}if(a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(e.avail_in!==0||a.lookahead!==0||s!==S&&a.status!==G){let n=a.level===0?Ge(a,s):a.strategy===re?((i,_)=>{let t;for(;;){if(i.lookahead===0&&(I(i),i.lookahead===0)){if(_===S)return 1;break}if(i.match_length=0,t=R(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(w(i,!1),i.strm.avail_out===0))return 1}return i.insert=0,_===b?(w(i,!0),i.strm.avail_out===0?3:4):i.sym_next&&(w(i,!1),i.strm.avail_out===0)?1:2})(a,s):a.strategy===ga?((i,_)=>{let t,h,l,u;const d=i.window;for(;;){if(i.lookahead<=F){if(I(i),i.lookahead<=F&&_===S)return 1;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=3&&i.strstart>0&&(l=i.strstart-1,h=d[l],h===d[++l]&&h===d[++l]&&h===d[++l])){u=i.strstart+F;do;while(h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&l<u);i.match_length=F-(u-l),i.match_length>i.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=3?(t=R(i,1,i.match_length-3),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=R(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(w(i,!1),i.strm.avail_out===0))return 1}return i.insert=0,_===b?(w(i,!0),i.strm.avail_out===0?3:4):i.sym_next&&(w(i,!1),i.strm.avail_out===0)?1:2})(a,s):W[a.level].func(a,s);if(n!==3&&n!==4||(a.status=G),n===1||n===3)return e.avail_out===0&&(a.last_flush=-1),c;if(n===2&&(s===da?oa(a):s!==Pe&&(me(a,0,0,!1),s===ua&&(T(a.head),a.lookahead===0&&(a.strstart=0,a.block_start=0,a.insert=0))),g(e),e.avail_out===0))return a.last_flush=-1,c}return s!==b?c:a.wrap<=0?je:(a.wrap===2?(o(a,255&e.adler),o(a,e.adler>>8&255),o(a,e.adler>>16&255),o(a,e.adler>>24&255),o(a,255&e.total_in),o(a,e.total_in>>8&255),o(a,e.total_in>>16&255),o(a,e.total_in>>24&255)):(X(a,e.adler>>>16),X(a,65535&e.adler)),g(e),a.wrap>0&&(a.wrap=-a.wrap),a.pending!==0?c:je)},deflateEnd:e=>{if(q(e))return x;const s=e.state.status;return e.state=null,s===O?D(e,fa):c},deflateSetDictionary:(e,s)=>{let a=s.length;if(q(e))return x;const r=e.state,n=r.wrap;if(n===2||n===1&&r.status!==N||r.lookahead)return x;if(n===1&&(e.adler=Me(e.adler,s,a,0)),r.wrap=0,a>=r.w_size){n===0&&(T(r.head),r.strstart=0,r.block_start=0,r.insert=0);let h=new Uint8Array(r.w_size);h.set(s.subarray(a-r.w_size,a),0),s=h,a=r.w_size}const i=e.avail_in,_=e.next_in,t=e.input;for(e.avail_in=a,e.next_in=0,e.input=s,I(r);r.lookahead>=3;){let h=r.strstart,l=r.lookahead-2;do r.ins_h=L(r,r.ins_h,r.window[h+3-1]),r.prev[h&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=h,h++;while(--l);r.strstart=h,r.lookahead=2,I(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=_,e.input=t,e.avail_in=i,r.wrap=n,c},deflateInfo:"pako deflate (from Nodeca project)"};const za=(e,s)=>Object.prototype.hasOwnProperty.call(e,s);var ka=function(e){const s=Array.prototype.slice.call(arguments,1);for(;s.length;){const a=s.shift();if(a){if(typeof a!="object")throw new TypeError(a+"must be non-object");for(const r in a)za(a,r)&&(e[r]=a[r])}}return e},xa=e=>{let s=0;for(let r=0,n=e.length;r<n;r++)s+=e[r].length;const a=new Uint8Array(s);for(let r=0,n=0,i=e.length;r<i;r++){let _=e[r];a.set(_,n),n+=_.length}return a};let Aa=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Aa=!1}const ze=new Uint8Array(256);for(let e=0;e<256;e++)ze[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Je=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let s,a,r,n,i,_=e.length,t=0;for(n=0;n<_;n++)a=e.charCodeAt(n),(64512&a)==55296&&n+1<_&&(r=e.charCodeAt(n+1),(64512&r)==56320&&(a=65536+(a-55296<<10)+(r-56320),n++)),t+=a<128?1:a<2048?2:a<65536?3:4;for(s=new Uint8Array(t),i=0,n=0;i<t;n++)a=e.charCodeAt(n),(64512&a)==55296&&n+1<_&&(r=e.charCodeAt(n+1),(64512&r)==56320&&(a=65536+(a-55296<<10)+(r-56320),n++)),a<128?s[i++]=a:a<2048?(s[i++]=192|a>>>6,s[i++]=128|63&a):a<65536?(s[i++]=224|a>>>12,s[i++]=128|a>>>6&63,s[i++]=128|63&a):(s[i++]=240|a>>>18,s[i++]=128|a>>>12&63,s[i++]=128|a>>>6&63,s[i++]=128|63&a);return s},Ea=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Qe=Object.prototype.toString,{Z_NO_FLUSH:Za,Z_SYNC_FLUSH:Ua,Z_FULL_FLUSH:Ra,Z_FINISH:Sa,Z_OK:te,Z_STREAM_END:Ta,Z_DEFAULT_COMPRESSION:La,Z_DEFAULT_STRATEGY:Fa,Z_DEFLATED:Oa}=we;function Q(e){this.options=ka({level:La,method:Oa,chunkSize:16384,windowBits:15,memLevel:8,strategy:Fa},e||{});let s=this.options;s.raw&&s.windowBits>0?s.windowBits=-s.windowBits:s.gzip&&s.windowBits>0&&s.windowBits<16&&(s.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ea,this.strm.avail_out=0;let a=J.deflateInit2(this.strm,s.level,s.method,s.windowBits,s.memLevel,s.strategy);if(a!==te)throw new Error(ne[a]);if(s.header&&J.deflateSetHeader(this.strm,s.header),s.dictionary){let r;if(r=typeof s.dictionary=="string"?Je(s.dictionary):Qe.call(s.dictionary)==="[object ArrayBuffer]"?new Uint8Array(s.dictionary):s.dictionary,a=J.deflateSetDictionary(this.strm,r),a!==te)throw new Error(ne[a]);this._dict_set=!0}}function ke(e,s){const a=new Q(s);if(a.push(e,!0),a.err)throw a.msg||ne[a.err];return a.result}Q.prototype.push=function(e,s){const a=this.strm,r=this.options.chunkSize;let n,i;if(this.ended)return!1;for(i=s===~~s?s:s===!0?Sa:Za,typeof e=="string"?a.input=Je(e):Qe.call(e)==="[object ArrayBuffer]"?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;)if(a.avail_out===0&&(a.output=new Uint8Array(r),a.next_out=0,a.avail_out=r),(i===Ua||i===Ra)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=J.deflate(a,i),n===Ta)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=J.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===te;if(a.avail_out!==0){if(i>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(a.avail_in===0)break}else this.onData(a.output)}return!0},Q.prototype.onData=function(e){this.chunks.push(e)},Q.prototype.onEnd=function(e){e===te&&(this.result=xa(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ve=Q,$e=ke,ea=function(e,s){return(s=s||{}).raw=!0,ke(e,s)},aa=function(e,s){return(s=s||{}).gzip=!0,ke(e,s)},sa=we,Da={Deflate:Ve,deflate:$e,deflateRaw:ea,gzip:aa,constants:sa};v.Deflate=Ve,v.constants=sa,v.default=Da,v.deflate=$e,v.deflateRaw=ea,v.gzip=aa,Object.defineProperty(v,"__esModule",{value:!0})}); diff --git a/libs/cesium/1.111/ThirdParty/Workers/pako_inflate.min.js b/libs/cesium/1.111/ThirdParty/Workers/pako_inflate.min.js new file mode 100644 index 000000000..420318f13 --- /dev/null +++ b/libs/cesium/1.111/ThirdParty/Workers/pako_inflate.min.js @@ -0,0 +1 @@ +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */(function(O,I){typeof exports=="object"&&typeof module<"u"?I(exports):typeof define=="function"&&define.amd?define(["exports"],I):I((O=typeof globalThis<"u"?globalThis:O||self).pako={})})(this,function(O){"use strict";var I=(e,i,t,o)=>{let s=65535&e|0,r=e>>>16&65535|0,h=0;for(;t!==0;){h=t>2e3?2e3:t,t-=h;do s=s+i[o++]|0,r=r+s|0;while(--h);s%=65521,r%=65521}return s|r<<16|0};const Zt=new Uint32Array((()=>{let e,i=[];for(var t=0;t<256;t++){e=t;for(var o=0;o<8;o++)e=1&e?3988292384^e>>>1:e>>>1;i[t]=e}return i})());var U=(e,i,t,o)=>{const s=Zt,r=o+t;e^=-1;for(let h=o;h<r;h++)e=e>>>8^s[255&(e^i[h])];return-1^e};const j=16209;var St=function(e,i){let t,o,s,r,h,l,p,n,a,A,w,d,Z,v,u,y,k,f,g,E,c,x,m,b;const _=e.state;t=e.next_in,m=e.input,o=t+(e.avail_in-5),s=e.next_out,b=e.output,r=s-(i-e.avail_out),h=s+(e.avail_out-257),l=_.dmax,p=_.wsize,n=_.whave,a=_.wnext,A=_.window,w=_.hold,d=_.bits,Z=_.lencode,v=_.distcode,u=(1<<_.lenbits)-1,y=(1<<_.distbits)-1;t:do{d<15&&(w+=m[t++]<<d,d+=8,w+=m[t++]<<d,d+=8),k=Z[w&u];e:for(;;){if(f=k>>>24,w>>>=f,d-=f,f=k>>>16&255,f===0)b[s++]=65535&k;else{if(!(16&f)){if(!(64&f)){k=Z[(65535&k)+(w&(1<<f)-1)];continue e}if(32&f){_.mode=16191;break t}e.msg="invalid literal/length code",_.mode=j;break t}g=65535&k,f&=15,f&&(d<f&&(w+=m[t++]<<d,d+=8),g+=w&(1<<f)-1,w>>>=f,d-=f),d<15&&(w+=m[t++]<<d,d+=8,w+=m[t++]<<d,d+=8),k=v[w&y];i:for(;;){if(f=k>>>24,w>>>=f,d-=f,f=k>>>16&255,!(16&f)){if(!(64&f)){k=v[(65535&k)+(w&(1<<f)-1)];continue i}e.msg="invalid distance code",_.mode=j;break t}if(E=65535&k,f&=15,d<f&&(w+=m[t++]<<d,d+=8,d<f&&(w+=m[t++]<<d,d+=8)),E+=w&(1<<f)-1,E>l){e.msg="invalid distance too far back",_.mode=j;break t}if(w>>>=f,d-=f,f=s-r,E>f){if(f=E-f,f>n&&_.sane){e.msg="invalid distance too far back",_.mode=j;break t}if(c=0,x=A,a===0){if(c+=p-f,f<g){g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}}else if(a<f){if(c+=p+a-f,f-=a,f<g){g-=f;do b[s++]=A[c++];while(--f);if(c=0,a<g){f=a,g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}}}else if(c+=a-f,f<g){g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}for(;g>2;)b[s++]=x[c++],b[s++]=x[c++],b[s++]=x[c++],g-=3;g&&(b[s++]=x[c++],g>1&&(b[s++]=x[c++]))}else{c=s-E;do b[s++]=b[c++],b[s++]=b[c++],b[s++]=b[c++],g-=3;while(g>2);g&&(b[s++]=b[c++],g>1&&(b[s++]=b[c++]))}break}}break}}while(t<o&&s<h);g=d>>3,t-=g,d-=g<<3,w&=(1<<d)-1,e.next_in=t,e.next_out=s,e.avail_in=t<o?o-t+5:5-(t-o),e.avail_out=s<h?h-s+257:257-(s-h),_.hold=w,_.bits=d};const K=15,Tt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ot=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Ut=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Dt=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var z=(e,i,t,o,s,r,h,l)=>{const p=l.bits;let n,a,A,w,d,Z,v=0,u=0,y=0,k=0,f=0,g=0,E=0,c=0,x=0,m=0,b=null;const _=new Uint16Array(16),S=new Uint16Array(16);let H,q,J,Q=null;for(v=0;v<=K;v++)_[v]=0;for(u=0;u<o;u++)_[i[t+u]]++;for(f=p,k=K;k>=1&&_[k]===0;k--);if(f>k&&(f=k),k===0)return s[r++]=20971520,s[r++]=20971520,l.bits=1,0;for(y=1;y<k&&_[y]===0;y++);for(f<y&&(f=y),c=1,v=1;v<=K;v++)if(c<<=1,c-=_[v],c<0)return-1;if(c>0&&(e===0||k!==1))return-1;for(S[1]=0,v=1;v<K;v++)S[v+1]=S[v]+_[v];for(u=0;u<o;u++)i[t+u]!==0&&(h[S[i[t+u]]++]=u);if(e===0?(b=Q=h,Z=20):e===1?(b=Tt,Q=Ot,Z=257):(b=Ut,Q=Dt,Z=0),m=0,u=0,v=y,d=r,g=f,E=0,A=-1,x=1<<f,w=x-1,e===1&&x>852||e===2&&x>592)return 1;for(;;){H=v-E,h[u]+1<Z?(q=0,J=h[u]):h[u]>=Z?(q=Q[h[u]-Z],J=b[h[u]-Z]):(q=96,J=0),n=1<<v-E,a=1<<g,y=a;do a-=n,s[d+(m>>E)+a]=H<<24|q<<16|J|0;while(a!==0);for(n=1<<v-1;m&n;)n>>=1;if(n!==0?(m&=n-1,m+=n):m=0,u++,--_[v]==0){if(v===k)break;v=i[t+h[u]]}if(v>f&&(m&w)!==A){for(E===0&&(E=f),d+=y,g=v-E,c=1<<g;g+E<k&&(c-=_[g+E],!(c<=0));)g++,c<<=1;if(x+=1<<g,e===1&&x>852||e===2&&x>592)return 1;A=m&w,s[A]=f<<24|g<<16|d-r|0}}return m!==0&&(s[d+m]=v-E<<24|64<<16|0),l.bits=f,0},V={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{Z_FINISH:lt,Z_BLOCK:Bt,Z_TREES:P,Z_OK:C,Z_STREAM_END:It,Z_NEED_DICT:Ct,Z_STREAM_ERROR:T,Z_DATA_ERROR:dt,Z_MEM_ERROR:ft,Z_BUF_ERROR:Nt,Z_DEFLATED:ht}=V,Y=16180,G=16190,D=16191,$=16192,tt=16194,X=16199,W=16200,et=16206,R=16209,ct=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function zt(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const N=e=>{if(!e)return 1;const i=e.state;return!i||i.strm!==e||i.mode<Y||i.mode>16211?1:0},ut=e=>{if(N(e))return T;const i=e.state;return e.total_in=e.total_out=i.total=0,e.msg="",i.wrap&&(e.adler=1&i.wrap),i.mode=Y,i.last=0,i.havedict=0,i.flags=-1,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(852),i.distcode=i.distdyn=new Int32Array(592),i.sane=1,i.back=-1,C},wt=e=>{if(N(e))return T;const i=e.state;return i.wsize=0,i.whave=0,i.wnext=0,ut(e)},bt=(e,i)=>{let t;if(N(e))return T;const o=e.state;return i<0?(t=0,i=-i):(t=5+(i>>4),i<48&&(i&=15)),i&&(i<8||i>15)?T:(o.window!==null&&o.wbits!==i&&(o.window=null),o.wrap=t,o.wbits=i,wt(e))},mt=(e,i)=>{if(!e)return T;const t=new zt;e.state=t,t.strm=e,t.window=null,t.mode=Y;const o=bt(e,i);return o!==C&&(e.state=null),o};let it,nt,kt=!0;const Ft=e=>{if(kt){it=new Int32Array(512),nt=new Int32Array(32);let i=0;for(;i<144;)e.lens[i++]=8;for(;i<256;)e.lens[i++]=9;for(;i<280;)e.lens[i++]=7;for(;i<288;)e.lens[i++]=8;for(z(1,e.lens,0,288,it,0,e.work,{bits:9}),i=0;i<32;)e.lens[i++]=5;z(2,e.lens,0,32,nt,0,e.work,{bits:5}),kt=!1}e.lencode=it,e.lenbits=9,e.distcode=nt,e.distbits=5},_t=(e,i,t,o)=>{let s;const r=e.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),o>=r.wsize?(r.window.set(i.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>o&&(s=o),r.window.set(i.subarray(t-o,t-o+s),r.wnext),(o-=s)?(r.window.set(i.subarray(t-o,t),0),r.wnext=o,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0};var B={inflateReset:wt,inflateReset2:bt,inflateResetKeep:ut,inflateInit:e=>mt(e,15),inflateInit2:mt,inflate:(e,i)=>{let t,o,s,r,h,l,p,n,a,A,w,d,Z,v,u,y,k,f,g,E,c,x,m=0;const b=new Uint8Array(4);let _,S;const H=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(N(e)||!e.output||!e.input&&e.avail_in!==0)return T;t=e.state,t.mode===D&&(t.mode=$),h=e.next_out,s=e.output,p=e.avail_out,r=e.next_in,o=e.input,l=e.avail_in,n=t.hold,a=t.bits,A=l,w=p,x=C;t:for(;;)switch(t.mode){case Y:if(t.wrap===0){t.mode=$;break}for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(2&t.wrap&&n===35615){t.wbits===0&&(t.wbits=15),t.check=0,b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0),n=0,a=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&n)<<8)+(n>>8))%31){e.msg="incorrect header check",t.mode=R;break}if((15&n)!==ht){e.msg="unknown compression method",t.mode=R;break}if(n>>>=4,a-=4,c=8+(15&n),t.wbits===0&&(t.wbits=c),c>15||c>t.wbits){e.msg="invalid window size",t.mode=R;break}t.dmax=1<<t.wbits,t.flags=0,e.adler=t.check=1,t.mode=512&n?16189:D,n=0,a=0;break;case 16181:for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(t.flags=n,(255&t.flags)!==ht){e.msg="unknown compression method",t.mode=R;break}if(57344&t.flags){e.msg="unknown header flags set",t.mode=R;break}t.head&&(t.head.text=n>>8&1),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0,t.mode=16182;case 16182:for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.head&&(t.head.time=n),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,b[2]=n>>>16&255,b[3]=n>>>24&255,t.check=U(t.check,b,4,0)),n=0,a=0,t.mode=16183;case 16183:for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.head&&(t.head.xflags=255&n,t.head.os=n>>8),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0,t.mode=16184;case 16184:if(1024&t.flags){for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.length=n,t.head&&(t.head.extra_len=n),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(d=t.length,d>l&&(d=l),d&&(t.head&&(c=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(o.subarray(r,r+d),c)),512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,t.length-=d),t.length))break t;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(l===0)break t;d=0;do c=o[r+d++],t.head&&c&&t.length<65536&&(t.head.name+=String.fromCharCode(c));while(c&&d<l);if(512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,c)break t}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(l===0)break t;d=0;do c=o[r+d++],t.head&&c&&t.length<65536&&(t.head.comment+=String.fromCharCode(c));while(c&&d<l);if(512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,c)break t}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(4&t.wrap&&n!==(65535&t.check)){e.msg="header crc mismatch",t.mode=R;break}n=0,a=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=D;break;case 16189:for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}e.adler=t.check=ct(n),n=0,a=0,t.mode=G;case G:if(t.havedict===0)return e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,Ct;e.adler=t.check=1,t.mode=D;case D:if(i===Bt||i===P)break t;case $:if(t.last){n>>>=7&a,a-=7&a,t.mode=et;break}for(;a<3;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}switch(t.last=1&n,n>>>=1,a-=1,3&n){case 0:t.mode=16193;break;case 1:if(Ft(t),t.mode=X,i===P){n>>>=2,a-=2;break t}break;case 2:t.mode=16196;break;case 3:e.msg="invalid block type",t.mode=R}n>>>=2,a-=2;break;case 16193:for(n>>>=7&a,a-=7&a;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if((65535&n)!=(n>>>16^65535)){e.msg="invalid stored block lengths",t.mode=R;break}if(t.length=65535&n,n=0,a=0,t.mode=tt,i===P)break t;case tt:t.mode=16195;case 16195:if(d=t.length,d){if(d>l&&(d=l),d>p&&(d=p),d===0)break t;s.set(o.subarray(r,r+d),h),l-=d,r+=d,p-=d,h+=d,t.length-=d;break}t.mode=D;break;case 16196:for(;a<14;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(t.nlen=257+(31&n),n>>>=5,a-=5,t.ndist=1+(31&n),n>>>=5,a-=5,t.ncode=4+(15&n),n>>>=4,a-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=R;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;a<3;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.lens[H[t.have++]]=7&n,n>>>=3,a-=3}for(;t.have<19;)t.lens[H[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,_={bits:t.lenbits},x=z(0,t.lens,0,19,t.lencode,0,t.work,_),t.lenbits=_.bits,x){e.msg="invalid code lengths set",t.mode=R;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;m=t.lencode[n&(1<<t.lenbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(k<16)n>>>=u,a-=u,t.lens[t.have++]=k;else{if(k===16){for(S=u+2;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(n>>>=u,a-=u,t.have===0){e.msg="invalid bit length repeat",t.mode=R;break}c=t.lens[t.have-1],d=3+(3&n),n>>>=2,a-=2}else if(k===17){for(S=u+3;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=u,a-=u,c=0,d=3+(7&n),n>>>=3,a-=3}else{for(S=u+7;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=u,a-=u,c=0,d=11+(127&n),n>>>=7,a-=7}if(t.have+d>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=R;break}for(;d--;)t.lens[t.have++]=c}}if(t.mode===R)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=R;break}if(t.lenbits=9,_={bits:t.lenbits},x=z(1,t.lens,0,t.nlen,t.lencode,0,t.work,_),t.lenbits=_.bits,x){e.msg="invalid literal/lengths set",t.mode=R;break}if(t.distbits=6,t.distcode=t.distdyn,_={bits:t.distbits},x=z(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,_),t.distbits=_.bits,x){e.msg="invalid distances set",t.mode=R;break}if(t.mode=X,i===P)break t;case X:t.mode=W;case W:if(l>=6&&p>=258){e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,St(e,w),h=e.next_out,s=e.output,p=e.avail_out,r=e.next_in,o=e.input,l=e.avail_in,n=t.hold,a=t.bits,t.mode===D&&(t.back=-1);break}for(t.back=0;m=t.lencode[n&(1<<t.lenbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(y&&!(240&y)){for(f=u,g=y,E=k;m=t.lencode[E+((n&(1<<f+g)-1)>>f)],u=m>>>24,y=m>>>16&255,k=65535&m,!(f+u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=f,a-=f,t.back+=f}if(n>>>=u,a-=u,t.back+=u,t.length=k,y===0){t.mode=16205;break}if(32&y){t.back=-1,t.mode=D;break}if(64&y){e.msg="invalid literal/length code",t.mode=R;break}t.extra=15&y,t.mode=16201;case 16201:if(t.extra){for(S=t.extra;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.length+=n&(1<<t.extra)-1,n>>>=t.extra,a-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;m=t.distcode[n&(1<<t.distbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(!(240&y)){for(f=u,g=y,E=k;m=t.distcode[E+((n&(1<<f+g)-1)>>f)],u=m>>>24,y=m>>>16&255,k=65535&m,!(f+u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=f,a-=f,t.back+=f}if(n>>>=u,a-=u,t.back+=u,64&y){e.msg="invalid distance code",t.mode=R;break}t.offset=k,t.extra=15&y,t.mode=16203;case 16203:if(t.extra){for(S=t.extra;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.offset+=n&(1<<t.extra)-1,n>>>=t.extra,a-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=R;break}t.mode=16204;case 16204:if(p===0)break t;if(d=w-p,t.offset>d){if(d=t.offset-d,d>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=R;break}d>t.wnext?(d-=t.wnext,Z=t.wsize-d):Z=t.wnext-d,d>t.length&&(d=t.length),v=t.window}else v=s,Z=h-t.offset,d=t.length;d>p&&(d=p),p-=d,t.length-=d;do s[h++]=v[Z++];while(--d);t.length===0&&(t.mode=W);break;case 16205:if(p===0)break t;s[h++]=t.length,p--,t.mode=W;break;case et:if(t.wrap){for(;a<32;){if(l===0)break t;l--,n|=o[r++]<<a,a+=8}if(w-=p,e.total_out+=w,t.total+=w,4&t.wrap&&w&&(e.adler=t.check=t.flags?U(t.check,s,w,h-w):I(t.check,s,w,h-w)),w=p,4&t.wrap&&(t.flags?n:ct(n))!==t.check){e.msg="incorrect data check",t.mode=R;break}n=0,a=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(4&t.wrap&&n!==(4294967295&t.total)){e.msg="incorrect length check",t.mode=R;break}n=0,a=0}t.mode=16208;case 16208:x=It;break t;case R:x=dt;break t;case 16210:return ft;default:return T}return e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,(t.wsize||w!==e.avail_out&&t.mode<R&&(t.mode<et||i!==lt))&&_t(e,e.output,e.next_out,w-e.avail_out),A-=e.avail_in,w-=e.avail_out,e.total_in+=A,e.total_out+=w,t.total+=w,4&t.wrap&&w&&(e.adler=t.check=t.flags?U(t.check,s,w,e.next_out-w):I(t.check,s,w,e.next_out-w)),e.data_type=t.bits+(t.last?64:0)+(t.mode===D?128:0)+(t.mode===X||t.mode===tt?256:0),(A===0&&w===0||i===lt)&&x===C&&(x=Nt),x},inflateEnd:e=>{if(N(e))return T;let i=e.state;return i.window&&(i.window=null),e.state=null,C},inflateGetHeader:(e,i)=>{if(N(e))return T;const t=e.state;return 2&t.wrap?(t.head=i,i.done=!1,C):T},inflateSetDictionary:(e,i)=>{const t=i.length;let o,s,r;return N(e)?T:(o=e.state,o.wrap!==0&&o.mode!==G?T:o.mode===G&&(s=1,s=I(s,i,t,0),s!==o.check)?dt:(r=_t(e,i,t,t),r?(o.mode=16210,ft):(o.havedict=1,C)))},inflateInfo:"pako inflate (from Nodeca project)"};const Lt=(e,i)=>Object.prototype.hasOwnProperty.call(e,i);var Mt=function(e){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const t=i.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const o in t)Lt(t,o)&&(e[o]=t[o])}}return e},Ht=e=>{let i=0;for(let o=0,s=e.length;o<s;o++)i+=e[o].length;const t=new Uint8Array(i);for(let o=0,s=0,r=e.length;o<r;o++){let h=e[o];t.set(h,s),s+=h.length}return t};let gt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{gt=!1}const F=new Uint8Array(256);for(let e=0;e<256;e++)F[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;F[254]=F[254]=1;var jt=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let i,t,o,s,r,h=e.length,l=0;for(s=0;s<h;s++)t=e.charCodeAt(s),(64512&t)==55296&&s+1<h&&(o=e.charCodeAt(s+1),(64512&o)==56320&&(t=65536+(t-55296<<10)+(o-56320),s++)),l+=t<128?1:t<2048?2:t<65536?3:4;for(i=new Uint8Array(l),r=0,s=0;r<l;s++)t=e.charCodeAt(s),(64512&t)==55296&&s+1<h&&(o=e.charCodeAt(s+1),(64512&o)==56320&&(t=65536+(t-55296<<10)+(o-56320),s++)),t<128?i[r++]=t:t<2048?(i[r++]=192|t>>>6,i[r++]=128|63&t):t<65536?(i[r++]=224|t>>>12,i[r++]=128|t>>>6&63,i[r++]=128|63&t):(i[r++]=240|t>>>18,i[r++]=128|t>>>12&63,i[r++]=128|t>>>6&63,i[r++]=128|63&t);return i},Kt=(e,i)=>{const t=i||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,i));let o,s;const r=new Array(2*t);for(s=0,o=0;o<t;){let h=e[o++];if(h<128){r[s++]=h;continue}let l=F[h];if(l>4)r[s++]=65533,o+=l-1;else{for(h&=l===2?31:l===3?15:7;l>1&&o<t;)h=h<<6|63&e[o++],l--;l>1?r[s++]=65533:h<65536?r[s++]=h:(h-=65536,r[s++]=55296|h>>10&1023,r[s++]=56320|1023&h)}}return((h,l)=>{if(l<65534&&h.subarray&>)return String.fromCharCode.apply(null,h.length===l?h:h.subarray(0,l));let p="";for(let n=0;n<l;n++)p+=String.fromCharCode(h[n]);return p})(r,s)},Pt=(e,i)=>{(i=i||e.length)>e.length&&(i=e.length);let t=i-1;for(;t>=0&&(192&e[t])==128;)t--;return t<0||t===0?i:t+F[e[t]]>i?t:i},at={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Yt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Gt=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const pt=Object.prototype.toString,{Z_NO_FLUSH:Xt,Z_FINISH:Wt,Z_OK:L,Z_STREAM_END:rt,Z_NEED_DICT:ot,Z_STREAM_ERROR:qt,Z_DATA_ERROR:vt,Z_MEM_ERROR:Jt}=V;function M(e){this.options=Mt({chunkSize:65536,windowBits:15,to:""},e||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),!(i.windowBits>=0&&i.windowBits<16)||e&&e.windowBits||(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&!(15&i.windowBits)&&(i.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yt,this.strm.avail_out=0;let t=B.inflateInit2(this.strm,i.windowBits);if(t!==L)throw new Error(at[t]);if(this.header=new Gt,B.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=jt(i.dictionary):pt.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(t=B.inflateSetDictionary(this.strm,i.dictionary),t!==L)))throw new Error(at[t])}function st(e,i){const t=new M(i);if(t.push(e),t.err)throw t.msg||at[t.err];return t.result}M.prototype.push=function(e,i){const t=this.strm,o=this.options.chunkSize,s=this.options.dictionary;let r,h,l;if(this.ended)return!1;for(h=i===~~i?i:i===!0?Wt:Xt,pt.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(o),t.next_out=0,t.avail_out=o),r=B.inflate(t,h),r===ot&&s&&(r=B.inflateSetDictionary(t,s),r===L?r=B.inflate(t,h):r===vt&&(r=ot));t.avail_in>0&&r===rt&&t.state.wrap>0&&e[t.next_in]!==0;)B.inflateReset(t),r=B.inflate(t,h);switch(r){case qt:case vt:case ot:case Jt:return this.onEnd(r),this.ended=!0,!1}if(l=t.avail_out,t.next_out&&(t.avail_out===0||r===rt))if(this.options.to==="string"){let p=Pt(t.output,t.next_out),n=t.next_out-p,a=Kt(t.output,p);t.next_out=n,t.avail_out=o-n,n&&t.output.set(t.output.subarray(p,p+n),0),this.onData(a)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(r!==L||l!==0){if(r===rt)return r=B.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(t.avail_in===0)break}}return!0},M.prototype.onData=function(e){this.chunks.push(e)},M.prototype.onEnd=function(e){e===L&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ht(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var xt=M,yt=st,Et=function(e,i){return(i=i||{}).raw=!0,st(e,i)},Rt=st,At=V,Qt={Inflate:xt,inflate:yt,inflateRaw:Et,ungzip:Rt,constants:At};O.Inflate=xt,O.constants=At,O.default=Qt,O.inflate=yt,O.inflateRaw=Et,O.ungzip=Rt,Object.defineProperty(O,"__esModule",{value:!0})}); diff --git a/libs/cesium/1.111/ThirdParty/Workers/z-worker-pako.js b/libs/cesium/1.111/ThirdParty/Workers/z-worker-pako.js new file mode 100644 index 000000000..da960cf2a --- /dev/null +++ b/libs/cesium/1.111/ThirdParty/Workers/z-worker-pako.js @@ -0,0 +1 @@ +(function(){"use strict";const{Array:G,Object:y,Math:k,Error:m,Uint8Array:p,Uint16Array:ve,Uint32Array:M,Int32Array:ze,DataView:j,TextEncoder:x,crypto:b,postMessage:A}=globalThis,F=[];for(let n=0;256>n;n++){let e=n;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;F[n]=e}class R{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let s=0,a=0|e.length;a>s;s++)t=t>>>8^F[255&(t^e[s])];this.crc=t}get(){return~this.crc}}const u={concat(n,e){if(n.length===0||e.length===0)return n.concat(e);const t=n[n.length-1],s=u.getPartial(t);return s===32?n.concat(e):u._shiftRight(e,s,0|t,n.slice(0,n.length-1))},bitLength(n){const e=n.length;if(e===0)return 0;const t=n[e-1];return 32*(e-1)+u.getPartial(t)},clamp(n,e){if(32*n.length<e)return n;const t=(n=n.slice(0,k.ceil(e/32))).length;return e&=31,t>0&&e&&(n[t-1]=u.partial(e,n[t-1]&2147483648>>e-1,1)),n},partial:(n,e,t)=>n===32?e:(t?0|e:e<<32-n)+1099511627776*n,getPartial:n=>k.round(n/1099511627776)||32,_shiftRight(n,e,t,s){for(s===void 0&&(s=[]);e>=32;e-=32)s.push(t),t=0;if(e===0)return s.concat(n);for(let i=0;i<n.length;i++)s.push(t|n[i]>>>e),t=n[i]<<32-e;const a=n.length?n[n.length-1]:0,r=u.getPartial(a);return s.push(u.partial(e+r&31,e+r>32?t:s.pop(),1)),s}},W={bytes:{fromBits(n){const e=u.bitLength(n)/8,t=new p(e);let s;for(let a=0;e>a;a++)!(3&a)&&(s=n[a/4]),t[a]=s>>>24,s<<=8;return t},toBits(n){const e=[];let t,s=0;for(t=0;t<n.length;t++)s=s<<8|n[t],(3&t)==3&&(e.push(s),s=0);return 3&t&&e.push(u.partial(8*(3&t),s)),e}}},O={sha1:function(n){n?(this._h=n._h.slice(0),this._buffer=n._buffer.slice(0),this._length=n._length):this.reset()}};O.sha1.prototype={blockSize:512,reset:function(){const n=this;return n._h=this._init.slice(0),n._buffer=[],n._length=0,n},update:function(n){const e=this;typeof n=="string"&&(n=W.utf8String.toBits(n));const t=e._buffer=u.concat(e._buffer,n),s=e._length,a=e._length=s+u.bitLength(n);if(a>9007199254740991)throw new m("Cannot hash more than 2^53 - 1 bits");const r=new M(t);let i=0;for(let c=e.blockSize+s-(e.blockSize+s&e.blockSize-1);a>=c;c+=e.blockSize)e._block(r.subarray(16*i,16*(i+1))),i+=1;return t.splice(0,16*i),e},finalize:function(){const n=this;let e=n._buffer;const t=n._h;e=u.concat(e,[u.partial(1,1)]);for(let s=e.length+2;15&s;s++)e.push(0);for(e.push(k.floor(n._length/4294967296)),e.push(0|n._length);e.length;)n._block(e.splice(0,16));return n.reset(),t},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:(n,e,t,s)=>n>19?n>39?n>59?n>79?void 0:e^t^s:e&t|e&s|t&s:e^t^s:e&t|~e&s,_S:(n,e)=>e<<n|e>>>32-n,_block:function(n){const e=this,t=e._h,s=G(80);for(let o=0;16>o;o++)s[o]=n[o];let a=t[0],r=t[1],i=t[2],c=t[3],l=t[4];for(let o=0;79>=o;o++){16>o||(s[o]=e._S(1,s[o-3]^s[o-8]^s[o-14]^s[o-16]));const h=e._S(5,a)+e._f(o,r,i,c)+l+s[o]+e._key[k.floor(o/20)]|0;l=c,c=i,i=e._S(30,r),r=a,a=h}t[0]=t[0]+a|0,t[1]=t[1]+r|0,t[2]=t[2]+i|0,t[3]=t[3]+c|0,t[4]=t[4]+l|0}};const de={getRandomValues(n){const e=new M(n.buffer),t=s=>{let a=987654321;const r=4294967295;return()=>(a=36969*(65535&a)+(a>>16)&r,(((a<<16)+(s=18e3*(65535&s)+(s>>16)&r)&r)/4294967296+.5)*(k.random()>.5?1:-1))};for(let s,a=0;a<n.length;a+=4){const r=t(4294967296*(s||k.random()));s=987654071*r(),e[a/4]=4294967296*r()|0}return n}},T={importKey:n=>new T.hmacSha1(W.bytes.toBits(n)),pbkdf2(n,e,t,s){if(t=t||1e4,0>s||0>t)throw new m("invalid params to pbkdf2");const a=1+(s>>5)<<2;let r,i,c,l,o;const h=new ArrayBuffer(a),d=new j(h);let w=0;const z=u;for(e=W.bytes.toBits(e),o=1;(a||1)>w;o++){for(r=i=n.encrypt(z.concat(e,[o])),c=1;t>c;c++)for(i=n.encrypt(i),l=0;l<i.length;l++)r[l]^=i[l];for(c=0;(a||1)>w&&c<r.length;c++)d.setInt32(w,r[c]),w+=4}return h.slice(0,s/8)},hmacSha1:class{constructor(n){const e=this,t=e._hash=O.sha1,s=[[],[]],a=t.prototype.blockSize/32;e._baseHash=[new t,new t],n.length>a&&(n=t.hash(n));for(let r=0;a>r;r++)s[0][r]=909522486^n[r],s[1][r]=1549556828^n[r];e._baseHash[0].update(s[0]),e._baseHash[1].update(s[1]),e._resultHash=new t(e._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){this._updated=!0,this._resultHash.update(n)}digest(){const n=this,e=n._resultHash.finalize(),t=new n._hash(n._baseHash[1]).update(e).finalize();return n.reset(),t}encrypt(n){if(this._updated)throw new m("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}}},q="Invalid pasword",D=16,J={name:"PBKDF2"},ue=y.assign({hash:{name:"HMAC"}},J),N=y.assign({iterations:1e3,hash:{name:"SHA-1"}},J),fe=["deriveBits"],H=[8,12,16],K=[16,24,32],v=10,Q=[0,0,0,0],U=b!==void 0,X=U&&b.subtle!==void 0,_=W.bytes,Y=class{constructor(n){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],s=e._tables[1],a=n.length;let r,i,c,l=1;if(a!==4&&a!==6&&a!==8)throw new m("invalid aes key size");for(e._key=[i=n.slice(0),c=[]],r=a;4*a+28>r;r++){let o=i[r-1];(r%a==0||a===8&&r%a==4)&&(o=t[o>>>24]<<24^t[o>>16&255]<<16^t[o>>8&255]<<8^t[255&o],r%a==0&&(o=o<<8^o>>>24^l<<24,l=l<<1^283*(l>>7))),i[r]=i[r-a]^o}for(let o=0;r;o++,r--){const h=i[3&o?r:r-4];c[o]=4>=r||4>o?h:s[0][t[h>>>24]]^s[1][t[h>>16&255]]^s[2][t[h>>8&255]]^s[3][t[255&h]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],e=this._tables[1],t=n[4],s=e[4],a=[],r=[];let i,c,l,o;for(let h=0;256>h;h++)r[(a[h]=h<<1^283*(h>>7))^h]=h;for(let h=i=0;!t[h];h^=c||1,i=r[i]||1){let d=i^i<<1^i<<2^i<<3^i<<4;d=d>>8^255&d^99,t[h]=d,s[d]=h,o=a[l=a[c=a[h]]];let w=16843009*o^65537*l^257*c^16843008*h,z=257*a[d]^16843008*d;for(let g=0;4>g;g++)n[g][h]=z=z<<24^z>>>8,e[g][d]=w=w<<24^w>>>8}for(let h=0;5>h;h++)n[h]=n[h].slice(0),e[h]=e[h].slice(0)}_crypt(n,e){if(n.length!==4)throw new m("invalid aes block size");const t=this._key[e],s=t.length/4-2,a=[0,0,0,0],r=this._tables[e],i=r[0],c=r[1],l=r[2],o=r[3],h=r[4];let d,w,z,g=n[0]^t[0],C=n[e?3:1]^t[1],S=n[2]^t[2],B=n[e?1:3]^t[3],V=4;for(let I=0;s>I;I++)d=i[g>>>24]^c[C>>16&255]^l[S>>8&255]^o[255&B]^t[V],w=i[C>>>24]^c[S>>16&255]^l[B>>8&255]^o[255&g]^t[V+1],z=i[S>>>24]^c[B>>16&255]^l[g>>8&255]^o[255&C]^t[V+2],B=i[B>>>24]^c[g>>16&255]^l[C>>8&255]^o[255&S]^t[V+3],V+=4,g=d,C=w,S=z;for(let I=0;4>I;I++)a[e?3&-I:I]=h[g>>>24]<<24^h[C>>16&255]<<16^h[S>>8&255]<<8^h[255&B]^t[V++],d=g,g=C,C=S,S=B,B=d;return a}},Z=class{constructor(n,e){this._prf=n,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if((n>>24&255)==255){let e=n>>16&255,t=n>>8&255,s=255&n;e===255?(e=0,t===255?(t=0,s===255?s=0:++s):++t):++e,n=0,n+=e<<16,n+=t<<8,n+=s}else n+=1<<24;return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,e,t){let s;if(!(s=e.length))return[];const a=u.bitLength(e);for(let r=0;s>r;r+=4){this.incCounter(t);const i=n.encrypt(t);e[r]^=i[0],e[r+1]^=i[1],e[r+2]^=i[2],e[r+3]^=i[3]}return u.clamp(e,a)}},$=T.hmacSha1;class ge{constructor(e,t,s){y.assign(this,{password:e,signed:t,strength:s-1,pendingInput:new p(0)})}async append(e){const t=this;if(t.password){const s=f(e,0,H[t.strength]+2);await(async(a,r,i)=>{await te(a,i,f(r,0,H[a.strength]));const c=f(r,H[a.strength]),l=a.keys.passwordVerification;if(l[0]!=c[0]||l[1]!=c[1])throw new m(q)})(t,s,t.password),t.password=null,t.aesCtrGladman=new Z(new Y(t.keys.key),G.from(Q)),t.hmac=new $(t.keys.authentication),e=f(e,H[t.strength]+2)}return ee(t,e,new p(e.length-v-(e.length-v)%D),0,v,!0)}flush(){const e=this,t=e.pendingInput,s=f(t,0,t.length-v),a=f(t,t.length-v);let r=new p(0);if(s.length){const c=_.toBits(s);e.hmac.update(c);const l=e.aesCtrGladman.update(c);r=_.fromBits(l)}let i=!0;if(e.signed){const c=f(_.fromBits(e.hmac.digest()),0,v);for(let l=0;v>l;l++)c[l]!=a[l]&&(i=!1)}return{valid:i,data:r}}}class we{constructor(e,t){y.assign(this,{password:e,strength:t-1,pendingInput:new p(0)})}async append(e){const t=this;let s=new p(0);t.password&&(s=await(async(r,i)=>{const c=(l=new p(H[r.strength]),U&&typeof b.getRandomValues=="function"?b.getRandomValues(l):de.getRandomValues(l));var l;return await te(r,i,c),L(c,r.keys.passwordVerification)})(t,t.password),t.password=null,t.aesCtrGladman=new Z(new Y(t.keys.key),G.from(Q)),t.hmac=new $(t.keys.authentication));const a=new p(s.length+e.length-e.length%D);return a.set(s,0),ee(t,e,a,s.length,0)}flush(){const e=this;let t=new p(0);if(e.pendingInput.length){const a=e.aesCtrGladman.update(_.toBits(e.pendingInput));e.hmac.update(a),t=_.fromBits(a)}const s=f(_.fromBits(e.hmac.digest()),0,v);return{data:L(t,s),signature:s}}}function ee(n,e,t,s,a,r){const i=e.length-a;let c;for(n.pendingInput.length&&(e=L(n.pendingInput,e),t=((l,o)=>{if(o&&o>l.length){const h=l;(l=new p(o)).set(h,0)}return l})(t,i-i%D)),c=0;i-D>=c;c+=D){const l=_.toBits(f(e,c,c+D));r&&n.hmac.update(l);const o=n.aesCtrGladman.update(l);r||n.hmac.update(o),t.set(_.fromBits(o),c+s)}return n.pendingInput=f(e,c),t}async function te(n,e,t){const s=(c=>{if(x===void 0){const l=new p((c=unescape(encodeURIComponent(c))).length);for(let o=0;o<l.length;o++)l[o]=c.charCodeAt(o);return l}return new x().encode(c)})(e),a=await((c,l,o,h,d)=>U&&X&&typeof b.subtle.importKey=="function"?b.subtle.importKey("raw",l,o,!1,d):T.importKey(l))(0,s,ue,0,fe),r=await(async(c,l,o)=>U&&X&&typeof b.subtle.deriveBits=="function"?await b.subtle.deriveBits(c,l,o):T.pbkdf2(l,c.salt,N.iterations,o))(y.assign({salt:t},N),a,8*(2*K[n.strength]+2)),i=new p(r);n.keys={key:_.toBits(f(i,0,K[n.strength])),authentication:_.toBits(f(i,K[n.strength],2*K[n.strength])),passwordVerification:f(i,2*K[n.strength])}}function L(n,e){let t=n;return n.length+e.length&&(t=new p(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function f(n,e,t){return n.subarray(e,t)}class ye{constructor(e,t){y.assign(this,{password:e,passwordVerification:t}),ae(this,e)}append(e){const t=this;if(t.password){const s=ne(t,e.subarray(0,12));if(t.password=null,s[11]!=t.passwordVerification)throw new m(q);e=e.subarray(12)}return ne(t,e)}flush(){return{valid:!0,data:new p(0)}}}class _e{constructor(e,t){y.assign(this,{password:e,passwordVerification:t}),ae(this,e)}append(e){const t=this;let s,a;if(t.password){t.password=null;const r=b.getRandomValues(new p(12));r[11]=t.passwordVerification,s=new p(e.length+r.length),s.set(se(t,r),0),a=12}else s=new p(e.length),a=0;return s.set(se(t,e),a),s}flush(){return{data:new p(0)}}}function ne(n,e){const t=new p(e.length);for(let s=0;s<e.length;s++)t[s]=re(n)^e[s],P(n,t[s]);return t}function se(n,e){const t=new p(e.length);for(let s=0;s<e.length;s++)t[s]=re(n)^e[s],P(n,e[s]);return t}function ae(n,e){n.keys=[305419896,591751049,878082192],n.crcKey0=new R(n.keys[0]),n.crcKey2=new R(n.keys[2]);for(let t=0;t<e.length;t++)P(n,e.charCodeAt(t))}function P(n,e){n.crcKey0.append([e]),n.keys[0]=~n.crcKey0.get(),n.keys[1]=ce(n.keys[1]+ie(n.keys[0])),n.keys[1]=ce(k.imul(n.keys[1],134775813)+1),n.crcKey2.append([n.keys[1]>>>24]),n.keys[2]=~n.crcKey2.get()}function re(n){const e=2|n.keys[2];return ie(k.imul(e,1^e)>>>8)}function ie(n){return 255&n}function ce(n){return 4294967295&n}const oe="deflate",le="inflate",he="Invalid signature";class me{constructor(e,{signature:t,password:s,signed:a,compressed:r,zipCrypto:i,passwordVerification:c,encryptionStrength:l},{chunkSize:o}){const h=!!s;y.assign(this,{signature:t,encrypted:h,signed:a,compressed:r,inflate:r&&new e({chunkSize:o}),crc32:a&&new R,zipCrypto:i,decrypt:h&&i?new ye(s,c):new ge(s,a,l)})}async append(e){const t=this;return t.encrypted&&e.length&&(e=await t.decrypt.append(e)),t.compressed&&e.length&&(e=await t.inflate.append(e)),(!t.encrypted||t.zipCrypto)&&t.signed&&e.length&&t.crc32.append(e),e}async flush(){const e=this;let t,s=new p(0);if(e.encrypted){const a=e.decrypt.flush();if(!a.valid)throw new m(he);s=a.data}if((!e.encrypted||e.zipCrypto)&&e.signed){const a=new j(new p(4).buffer);if(t=e.crc32.get(),a.setUint32(0,t),e.signature!=a.getUint32(0,!1))throw new m(he)}return e.compressed&&(s=await e.inflate.append(s)||new p(0),await e.inflate.flush()),{data:s,signature:t}}}class be{constructor(e,{encrypted:t,signed:s,compressed:a,level:r,zipCrypto:i,password:c,passwordVerification:l,encryptionStrength:o},{chunkSize:h}){y.assign(this,{encrypted:t,signed:s,compressed:a,deflate:a&&new e({level:r||5,chunkSize:h}),crc32:s&&new R,zipCrypto:i,encrypt:t&&i?new _e(c,l):new we(c,o)})}async append(e){const t=this;let s=e;return t.compressed&&e.length&&(s=await t.deflate.append(e)),t.encrypted&&s.length&&(s=await t.encrypt.append(s)),(!t.encrypted||t.zipCrypto)&&t.signed&&e.length&&t.crc32.append(e),s}async flush(){const e=this;let t,s=new p(0);if(e.compressed&&(s=await e.deflate.flush()||new p(0)),e.encrypted){s=await e.encrypt.append(s);const a=e.encrypt.flush();t=a.signature;const r=new p(s.length+a.data.length);r.set(s,0),r.set(a.data,s.length),s=r}return e.encrypted&&!e.zipCrypto||!e.signed||(t=e.crc32.get()),{data:s,signature:t}}}const ke={init(n){n.scripts&&n.scripts.length&&importScripts.apply(void 0,n.scripts);const e=n.options;let t;self.initCodec&&self.initCodec(),e.codecType.startsWith(oe)?t=self.Deflate:e.codecType.startsWith(le)&&(t=self.Inflate),E=((s,a,r)=>a.codecType.startsWith(oe)?new be(s,a,r):a.codecType.startsWith(le)?new me(s,a,r):void 0)(t,e,n.config)},append:async n=>({data:await E.append(n.data)}),flush:()=>E.flush()};let E;function pe(n,e,t){return class{constructor(a){const r=this;r.codec=new n(y.assign({},e,a)),t(r.codec,i=>{if(r.pendingData){const c=r.pendingData;r.pendingData=new p(c.length+i.length),r.pendingData.set(c,0),r.pendingData.set(i,c.length)}else r.pendingData=new p(i)})}append(a){return this.codec.push(a),s(this)}flush(){return this.codec.push(new p(0),!0),s(this)}};function s(a){if(a.pendingData){const r=a.pendingData;return a.pendingData=null,r}return new p(0)}}addEventListener("message",async n=>{const e=n.data,t=e.type,s=ke[t];if(s)try{e.data&&(e.data=new p(e.data));const a=await s(e)||{};if(a.type=t,a.data)try{a.data=a.data.buffer,A(a,[a.data])}catch{A(a)}else A(a)}catch(a){A({type:t,error:{message:a.message,stack:a.stack}})}}),self.initCodec=()=>{const{Deflate:n,Inflate:e}=((t,s={},a)=>({Deflate:pe(t.Deflate,s.deflate,a),Inflate:pe(t.Inflate,s.inflate,a)}))(pako,{deflate:{raw:!0},inflate:{raw:!0}},(t,s)=>t.onData=s);self.Deflate=n,self.Inflate=e}})(); diff --git a/libs/cesium/1.111/ThirdParty/basis_transcoder.wasm b/libs/cesium/1.111/ThirdParty/basis_transcoder.wasm new file mode 100644 index 000000000..71328587d Binary files /dev/null and b/libs/cesium/1.111/ThirdParty/basis_transcoder.wasm differ diff --git a/libs/cesium/1.111/ThirdParty/draco_decoder.wasm b/libs/cesium/1.111/ThirdParty/draco_decoder.wasm new file mode 100644 index 000000000..e5a5e06eb Binary files /dev/null and b/libs/cesium/1.111/ThirdParty/draco_decoder.wasm differ diff --git a/libs/cesium/1.111/ThirdParty/google-earth-dbroot-parser.js b/libs/cesium/1.111/ThirdParty/google-earth-dbroot-parser.js new file mode 100644 index 000000000..648bf66db --- /dev/null +++ b/libs/cesium/1.111/ThirdParty/google-earth-dbroot-parser.js @@ -0,0 +1 @@ +(()=>{window.cesiumGoogleEarthDbRootParser=function(d){"use strict";var f=d.Reader,u=d.util,n=d.roots.default||(d.roots.default={});return n.keyhole=function(){var b={};return b.dbroot=function(){var c={};return c.StringEntryProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.stringValue="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringEntryProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.stringValue=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("stringId"))throw u.ProtocolError("missing required 'stringId'",{instance:o});if(!o.hasOwnProperty("stringValue"))throw u.ProtocolError("missing required 'stringValue'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.stringId)?u.isString(r.stringValue)?null:"stringValue: string expected":"stringId: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringEntryProto)return r;var t=new n.keyhole.dbroot.StringEntryProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.stringValue!=null&&(t.stringValue=String(r.stringValue)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.stringValue=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.stringValue!=null&&r.hasOwnProperty("stringValue")&&(e.stringValue=r.stringValue),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringEntryProto"},i}(),c.StringIdOrValueProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.value="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringIdOrValueProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.value=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.stringId!=null&&r.hasOwnProperty("stringId")&&!u.isInteger(r.stringId)?"stringId: integer expected":r.value!=null&&r.hasOwnProperty("value")&&!u.isString(r.value)?"value: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringIdOrValueProto)return r;var t=new n.keyhole.dbroot.StringIdOrValueProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.value!=null&&(t.value=String(r.value)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.value=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.value!=null&&r.hasOwnProperty("value")&&(e.value=r.value),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringIdOrValueProto"},i}(),c.PlanetModelProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.radius=6378.137,i.prototype.flattening=.00335281066474748,i.prototype.elevationBias=0,i.prototype.negativeAltitudeExponentBias=0,i.prototype.compressedNegativeAltitudeThreshold=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetModelProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.radius=r.double();break}case 2:{o.flattening=r.double();break}case 4:{o.elevationBias=r.double();break}case 5:{o.negativeAltitudeExponentBias=r.int32();break}case 6:{o.compressedNegativeAltitudeThreshold=r.double();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.radius!=null&&r.hasOwnProperty("radius")&&typeof r.radius!="number"?"radius: number expected":r.flattening!=null&&r.hasOwnProperty("flattening")&&typeof r.flattening!="number"?"flattening: number expected":r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&typeof r.elevationBias!="number"?"elevationBias: number expected":r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&!u.isInteger(r.negativeAltitudeExponentBias)?"negativeAltitudeExponentBias: integer expected":r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&typeof r.compressedNegativeAltitudeThreshold!="number"?"compressedNegativeAltitudeThreshold: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetModelProto)return r;var t=new n.keyhole.dbroot.PlanetModelProto;return r.radius!=null&&(t.radius=Number(r.radius)),r.flattening!=null&&(t.flattening=Number(r.flattening)),r.elevationBias!=null&&(t.elevationBias=Number(r.elevationBias)),r.negativeAltitudeExponentBias!=null&&(t.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias|0),r.compressedNegativeAltitudeThreshold!=null&&(t.compressedNegativeAltitudeThreshold=Number(r.compressedNegativeAltitudeThreshold)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.radius=6378.137,e.flattening=.00335281066474748,e.elevationBias=0,e.negativeAltitudeExponentBias=0,e.compressedNegativeAltitudeThreshold=0),r.radius!=null&&r.hasOwnProperty("radius")&&(e.radius=t.json&&!isFinite(r.radius)?String(r.radius):r.radius),r.flattening!=null&&r.hasOwnProperty("flattening")&&(e.flattening=t.json&&!isFinite(r.flattening)?String(r.flattening):r.flattening),r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&(e.elevationBias=t.json&&!isFinite(r.elevationBias)?String(r.elevationBias):r.elevationBias),r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&(e.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias),r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&(e.compressedNegativeAltitudeThreshold=t.json&&!isFinite(r.compressedNegativeAltitudeThreshold)?String(r.compressedNegativeAltitudeThreshold):r.compressedNegativeAltitudeThreshold),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetModelProto"},i}(),c.ProviderInfoProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.providerId=0,i.prototype.copyrightString=null,i.prototype.verticalPixelOffset=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ProviderInfoProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.providerId=r.int32();break}case 2:{o.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.verticalPixelOffset=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("providerId"))throw u.ProtocolError("missing required 'providerId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.providerId))return"providerId: integer expected";if(r.copyrightString!=null&&r.hasOwnProperty("copyrightString")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.copyrightString);if(t)return"copyrightString."+t}return r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&!u.isInteger(r.verticalPixelOffset)?"verticalPixelOffset: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ProviderInfoProto)return r;var t=new n.keyhole.dbroot.ProviderInfoProto;if(r.providerId!=null&&(t.providerId=r.providerId|0),r.copyrightString!=null){if(typeof r.copyrightString!="object")throw TypeError(".keyhole.dbroot.ProviderInfoProto.copyrightString: object expected");t.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.copyrightString)}return r.verticalPixelOffset!=null&&(t.verticalPixelOffset=r.verticalPixelOffset|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.providerId=0,e.copyrightString=null,e.verticalPixelOffset=-1),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.copyrightString!=null&&r.hasOwnProperty("copyrightString")&&(e.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.copyrightString,t)),r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&(e.verticalPixelOffset=r.verticalPixelOffset),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ProviderInfoProto"},i}(),c.PopUpProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isBalloonStyle=!1,i.prototype.text=null,i.prototype.backgroundColorAbgr=4294967295,i.prototype.textColorAbgr=4278190080,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PopUpProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isBalloonStyle=r.bool();break}case 2:{o.text=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.backgroundColorAbgr=r.fixed32();break}case 4:{o.textColorAbgr=r.fixed32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&typeof r.isBalloonStyle!="boolean")return"isBalloonStyle: boolean expected";if(r.text!=null&&r.hasOwnProperty("text")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.text);if(t)return"text."+t}return r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&!u.isInteger(r.backgroundColorAbgr)?"backgroundColorAbgr: integer expected":r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&!u.isInteger(r.textColorAbgr)?"textColorAbgr: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PopUpProto)return r;var t=new n.keyhole.dbroot.PopUpProto;if(r.isBalloonStyle!=null&&(t.isBalloonStyle=!!r.isBalloonStyle),r.text!=null){if(typeof r.text!="object")throw TypeError(".keyhole.dbroot.PopUpProto.text: object expected");t.text=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.text)}return r.backgroundColorAbgr!=null&&(t.backgroundColorAbgr=r.backgroundColorAbgr>>>0),r.textColorAbgr!=null&&(t.textColorAbgr=r.textColorAbgr>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isBalloonStyle=!1,e.text=null,e.backgroundColorAbgr=4294967295,e.textColorAbgr=4278190080),r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&(e.isBalloonStyle=r.isBalloonStyle),r.text!=null&&r.hasOwnProperty("text")&&(e.text=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.text,t)),r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&(e.backgroundColorAbgr=r.backgroundColorAbgr),r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&(e.textColorAbgr=r.textColorAbgr),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PopUpProto"},i}(),c.StyleAttributeProto=function(){function i(l){if(this.drawFlag=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleId="",i.prototype.providerId=0,i.prototype.polyColorAbgr=4294967295,i.prototype.lineColorAbgr=4294967295,i.prototype.lineWidth=1,i.prototype.labelColorAbgr=4294967295,i.prototype.labelScale=1,i.prototype.placemarkIconColorAbgr=4294967295,i.prototype.placemarkIconScale=1,i.prototype.placemarkIconPath=null,i.prototype.placemarkIconX=0,i.prototype.placemarkIconY=0,i.prototype.placemarkIconWidth=32,i.prototype.placemarkIconHeight=32,i.prototype.popUp=null,i.prototype.drawFlag=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleAttributeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleId=r.string();break}case 3:{o.providerId=r.int32();break}case 4:{o.polyColorAbgr=r.fixed32();break}case 5:{o.lineColorAbgr=r.fixed32();break}case 6:{o.lineWidth=r.float();break}case 7:{o.labelColorAbgr=r.fixed32();break}case 8:{o.labelScale=r.float();break}case 9:{o.placemarkIconColorAbgr=r.fixed32();break}case 10:{o.placemarkIconScale=r.float();break}case 11:{o.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.placemarkIconX=r.int32();break}case 13:{o.placemarkIconY=r.int32();break}case 14:{o.placemarkIconWidth=r.int32();break}case 15:{o.placemarkIconHeight=r.int32();break}case 16:{o.popUp=n.keyhole.dbroot.PopUpProto.decode(r,r.uint32());break}case 17:{o.drawFlag&&o.drawFlag.length||(o.drawFlag=[]),o.drawFlag.push(n.keyhole.dbroot.DrawFlagProto.decode(r,r.uint32()));break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleId"))throw u.ProtocolError("missing required 'styleId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.styleId))return"styleId: string expected";if(r.providerId!=null&&r.hasOwnProperty("providerId")&&!u.isInteger(r.providerId))return"providerId: integer expected";if(r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&!u.isInteger(r.polyColorAbgr))return"polyColorAbgr: integer expected";if(r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&!u.isInteger(r.lineColorAbgr))return"lineColorAbgr: integer expected";if(r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&typeof r.lineWidth!="number")return"lineWidth: number expected";if(r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&!u.isInteger(r.labelColorAbgr))return"labelColorAbgr: integer expected";if(r.labelScale!=null&&r.hasOwnProperty("labelScale")&&typeof r.labelScale!="number")return"labelScale: number expected";if(r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&!u.isInteger(r.placemarkIconColorAbgr))return"placemarkIconColorAbgr: integer expected";if(r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&typeof r.placemarkIconScale!="number")return"placemarkIconScale: number expected";if(r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.placemarkIconPath);if(t)return"placemarkIconPath."+t}if(r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&!u.isInteger(r.placemarkIconX))return"placemarkIconX: integer expected";if(r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&!u.isInteger(r.placemarkIconY))return"placemarkIconY: integer expected";if(r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&!u.isInteger(r.placemarkIconWidth))return"placemarkIconWidth: integer expected";if(r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&!u.isInteger(r.placemarkIconHeight))return"placemarkIconHeight: integer expected";if(r.popUp!=null&&r.hasOwnProperty("popUp")){var t=n.keyhole.dbroot.PopUpProto.verify(r.popUp);if(t)return"popUp."+t}if(r.drawFlag!=null&&r.hasOwnProperty("drawFlag")){if(!Array.isArray(r.drawFlag))return"drawFlag: array expected";for(var e=0;e<r.drawFlag.length;++e){var t=n.keyhole.dbroot.DrawFlagProto.verify(r.drawFlag[e]);if(t)return"drawFlag."+t}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleAttributeProto)return r;var t=new n.keyhole.dbroot.StyleAttributeProto;if(r.styleId!=null&&(t.styleId=String(r.styleId)),r.providerId!=null&&(t.providerId=r.providerId|0),r.polyColorAbgr!=null&&(t.polyColorAbgr=r.polyColorAbgr>>>0),r.lineColorAbgr!=null&&(t.lineColorAbgr=r.lineColorAbgr>>>0),r.lineWidth!=null&&(t.lineWidth=Number(r.lineWidth)),r.labelColorAbgr!=null&&(t.labelColorAbgr=r.labelColorAbgr>>>0),r.labelScale!=null&&(t.labelScale=Number(r.labelScale)),r.placemarkIconColorAbgr!=null&&(t.placemarkIconColorAbgr=r.placemarkIconColorAbgr>>>0),r.placemarkIconScale!=null&&(t.placemarkIconScale=Number(r.placemarkIconScale)),r.placemarkIconPath!=null){if(typeof r.placemarkIconPath!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.placemarkIconPath: object expected");t.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.placemarkIconPath)}if(r.placemarkIconX!=null&&(t.placemarkIconX=r.placemarkIconX|0),r.placemarkIconY!=null&&(t.placemarkIconY=r.placemarkIconY|0),r.placemarkIconWidth!=null&&(t.placemarkIconWidth=r.placemarkIconWidth|0),r.placemarkIconHeight!=null&&(t.placemarkIconHeight=r.placemarkIconHeight|0),r.popUp!=null){if(typeof r.popUp!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.popUp: object expected");t.popUp=n.keyhole.dbroot.PopUpProto.fromObject(r.popUp)}if(r.drawFlag){if(!Array.isArray(r.drawFlag))throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: array expected");t.drawFlag=[];for(var e=0;e<r.drawFlag.length;++e){if(typeof r.drawFlag[e]!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: object expected");t.drawFlag[e]=n.keyhole.dbroot.DrawFlagProto.fromObject(r.drawFlag[e])}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.drawFlag=[]),t.defaults&&(e.styleId="",e.providerId=0,e.polyColorAbgr=4294967295,e.lineColorAbgr=4294967295,e.lineWidth=1,e.labelColorAbgr=4294967295,e.labelScale=1,e.placemarkIconColorAbgr=4294967295,e.placemarkIconScale=1,e.placemarkIconPath=null,e.placemarkIconX=0,e.placemarkIconY=0,e.placemarkIconWidth=32,e.placemarkIconHeight=32,e.popUp=null),r.styleId!=null&&r.hasOwnProperty("styleId")&&(e.styleId=r.styleId),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&(e.polyColorAbgr=r.polyColorAbgr),r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&(e.lineColorAbgr=r.lineColorAbgr),r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&(e.lineWidth=t.json&&!isFinite(r.lineWidth)?String(r.lineWidth):r.lineWidth),r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&(e.labelColorAbgr=r.labelColorAbgr),r.labelScale!=null&&r.hasOwnProperty("labelScale")&&(e.labelScale=t.json&&!isFinite(r.labelScale)?String(r.labelScale):r.labelScale),r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&(e.placemarkIconColorAbgr=r.placemarkIconColorAbgr),r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&(e.placemarkIconScale=t.json&&!isFinite(r.placemarkIconScale)?String(r.placemarkIconScale):r.placemarkIconScale),r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")&&(e.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.placemarkIconPath,t)),r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&(e.placemarkIconX=r.placemarkIconX),r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&(e.placemarkIconY=r.placemarkIconY),r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&(e.placemarkIconWidth=r.placemarkIconWidth),r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&(e.placemarkIconHeight=r.placemarkIconHeight),r.popUp!=null&&r.hasOwnProperty("popUp")&&(e.popUp=n.keyhole.dbroot.PopUpProto.toObject(r.popUp,t)),r.drawFlag&&r.drawFlag.length){e.drawFlag=[];for(var o=0;o<r.drawFlag.length;++o)e.drawFlag[o]=n.keyhole.dbroot.DrawFlagProto.toObject(r.drawFlag[o],t)}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleAttributeProto"},i}(),c.StyleMapProto=function(){function i(l){if(this.channelId=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleMapId=0,i.prototype.channelId=u.emptyArray,i.prototype.normalStyleAttribute=0,i.prototype.highlightStyleAttribute=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleMapProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleMapId=r.int32();break}case 2:{if(o.channelId&&o.channelId.length||(o.channelId=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.channelId.push(r.int32());else o.channelId.push(r.int32());break}case 3:{o.normalStyleAttribute=r.int32();break}case 4:{o.highlightStyleAttribute=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleMapId"))throw u.ProtocolError("missing required 'styleMapId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.styleMapId))return"styleMapId: integer expected";if(r.channelId!=null&&r.hasOwnProperty("channelId")){if(!Array.isArray(r.channelId))return"channelId: array expected";for(var t=0;t<r.channelId.length;++t)if(!u.isInteger(r.channelId[t]))return"channelId: integer[] expected"}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&!u.isInteger(r.normalStyleAttribute)?"normalStyleAttribute: integer expected":r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&!u.isInteger(r.highlightStyleAttribute)?"highlightStyleAttribute: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleMapProto)return r;var t=new n.keyhole.dbroot.StyleMapProto;if(r.styleMapId!=null&&(t.styleMapId=r.styleMapId|0),r.channelId){if(!Array.isArray(r.channelId))throw TypeError(".keyhole.dbroot.StyleMapProto.channelId: array expected");t.channelId=[];for(var e=0;e<r.channelId.length;++e)t.channelId[e]=r.channelId[e]|0}return r.normalStyleAttribute!=null&&(t.normalStyleAttribute=r.normalStyleAttribute|0),r.highlightStyleAttribute!=null&&(t.highlightStyleAttribute=r.highlightStyleAttribute|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.channelId=[]),t.defaults&&(e.styleMapId=0,e.normalStyleAttribute=0,e.highlightStyleAttribute=0),r.styleMapId!=null&&r.hasOwnProperty("styleMapId")&&(e.styleMapId=r.styleMapId),r.channelId&&r.channelId.length){e.channelId=[];for(var o=0;o<r.channelId.length;++o)e.channelId[o]=r.channelId[o]}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&(e.normalStyleAttribute=r.normalStyleAttribute),r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&(e.highlightStyleAttribute=r.highlightStyleAttribute),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleMapProto"},i}(),c.ZoomRangeProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.minZoom=0,i.prototype.maxZoom=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ZoomRangeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.minZoom=r.int32();break}case 2:{o.maxZoom=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("minZoom"))throw u.ProtocolError("missing required 'minZoom'",{instance:o});if(!o.hasOwnProperty("maxZoom"))throw u.ProtocolError("missing required 'maxZoom'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.minZoom)?u.isInteger(r.maxZoom)?null:"maxZoom: integer expected":"minZoom: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ZoomRangeProto)return r;var t=new n.keyhole.dbroot.ZoomRangeProto;return r.minZoom!=null&&(t.minZoom=r.minZoom|0),r.maxZoom!=null&&(t.maxZoom=r.maxZoom|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.minZoom=0,e.maxZoom=0),r.minZoom!=null&&r.hasOwnProperty("minZoom")&&(e.minZoom=r.minZoom),r.maxZoom!=null&&r.hasOwnProperty("maxZoom")&&(e.maxZoom=r.maxZoom),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ZoomRangeProto"},i}(),c.DrawFlagProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.drawFlagType=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DrawFlagProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.drawFlagType=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("drawFlagType"))throw u.ProtocolError("missing required 'drawFlagType'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";switch(r.drawFlagType){default:return"drawFlagType: enum value expected";case 1:case 2:case 3:case 4:case 5:break}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DrawFlagProto)return r;var t=new n.keyhole.dbroot.DrawFlagProto;switch(r.drawFlagType){case"TYPE_FILL_ONLY":case 1:t.drawFlagType=1;break;case"TYPE_OUTLINE_ONLY":case 2:t.drawFlagType=2;break;case"TYPE_FILL_AND_OUTLINE":case 3:t.drawFlagType=3;break;case"TYPE_ANTIALIASING":case 4:t.drawFlagType=4;break;case"TYPE_CENTER_LABEL":case 5:t.drawFlagType=5;break}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.drawFlagType=t.enums===String?"TYPE_FILL_ONLY":1),r.drawFlagType!=null&&r.hasOwnProperty("drawFlagType")&&(e.drawFlagType=t.enums===String?n.keyhole.dbroot.DrawFlagProto.DrawFlagType[r.drawFlagType]:r.drawFlagType),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DrawFlagProto"},i.DrawFlagType=function(){var l={},r=Object.create(l);return r[l[1]="TYPE_FILL_ONLY"]=1,r[l[2]="TYPE_OUTLINE_ONLY"]=2,r[l[3]="TYPE_FILL_AND_OUTLINE"]=3,r[l[4]="TYPE_ANTIALIASING"]=4,r[l[5]="TYPE_CENTER_LABEL"]=5,r}(),i}(),c.LayerProto=function(){function i(l){if(this.zoomRange=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.zoomRange=u.emptyArray,i.prototype.preserveTextLevel=30,i.prototype.lodBeginTransition=!1,i.prototype.lodEndTransition=!1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LayerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.zoomRange&&o.zoomRange.length||(o.zoomRange=[]),o.zoomRange.push(n.keyhole.dbroot.ZoomRangeProto.decode(r,r.uint32()));break}case 2:{o.preserveTextLevel=r.int32();break}case 4:{o.lodBeginTransition=r.bool();break}case 5:{o.lodEndTransition=r.bool();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.zoomRange!=null&&r.hasOwnProperty("zoomRange")){if(!Array.isArray(r.zoomRange))return"zoomRange: array expected";for(var t=0;t<r.zoomRange.length;++t){var e=n.keyhole.dbroot.ZoomRangeProto.verify(r.zoomRange[t]);if(e)return"zoomRange."+e}}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&!u.isInteger(r.preserveTextLevel)?"preserveTextLevel: integer expected":r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&typeof r.lodBeginTransition!="boolean"?"lodBeginTransition: boolean expected":r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&typeof r.lodEndTransition!="boolean"?"lodEndTransition: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LayerProto)return r;var t=new n.keyhole.dbroot.LayerProto;if(r.zoomRange){if(!Array.isArray(r.zoomRange))throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: array expected");t.zoomRange=[];for(var e=0;e<r.zoomRange.length;++e){if(typeof r.zoomRange[e]!="object")throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: object expected");t.zoomRange[e]=n.keyhole.dbroot.ZoomRangeProto.fromObject(r.zoomRange[e])}}return r.preserveTextLevel!=null&&(t.preserveTextLevel=r.preserveTextLevel|0),r.lodBeginTransition!=null&&(t.lodBeginTransition=!!r.lodBeginTransition),r.lodEndTransition!=null&&(t.lodEndTransition=!!r.lodEndTransition),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.zoomRange=[]),t.defaults&&(e.preserveTextLevel=30,e.lodBeginTransition=!1,e.lodEndTransition=!1),r.zoomRange&&r.zoomRange.length){e.zoomRange=[];for(var o=0;o<r.zoomRange.length;++o)e.zoomRange[o]=n.keyhole.dbroot.ZoomRangeProto.toObject(r.zoomRange[o],t)}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&(e.preserveTextLevel=r.preserveTextLevel),r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&(e.lodBeginTransition=r.lodBeginTransition),r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&(e.lodEndTransition=r.lodEndTransition),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LayerProto"},i}(),c.FolderProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isExpandable=!0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FolderProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isExpandable=r.bool();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&typeof r.isExpandable!="boolean"?"isExpandable: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FolderProto)return r;var t=new n.keyhole.dbroot.FolderProto;return r.isExpandable!=null&&(t.isExpandable=!!r.isExpandable),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isExpandable=!0),r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&(e.isExpandable=r.isExpandable),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FolderProto"},i}(),c.RequirementProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.requiredVram="",i.prototype.requiredClientVer="",i.prototype.probability="",i.prototype.requiredUserAgent="",i.prototype.requiredClientCapabilities="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.RequirementProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 3:{o.requiredVram=r.string();break}case 4:{o.requiredClientVer=r.string();break}case 5:{o.probability=r.string();break}case 6:{o.requiredUserAgent=r.string();break}case 7:{o.requiredClientCapabilities=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&!u.isString(r.requiredVram)?"requiredVram: string expected":r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&!u.isString(r.requiredClientVer)?"requiredClientVer: string expected":r.probability!=null&&r.hasOwnProperty("probability")&&!u.isString(r.probability)?"probability: string expected":r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&!u.isString(r.requiredUserAgent)?"requiredUserAgent: string expected":r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&!u.isString(r.requiredClientCapabilities)?"requiredClientCapabilities: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.RequirementProto)return r;var t=new n.keyhole.dbroot.RequirementProto;return r.requiredVram!=null&&(t.requiredVram=String(r.requiredVram)),r.requiredClientVer!=null&&(t.requiredClientVer=String(r.requiredClientVer)),r.probability!=null&&(t.probability=String(r.probability)),r.requiredUserAgent!=null&&(t.requiredUserAgent=String(r.requiredUserAgent)),r.requiredClientCapabilities!=null&&(t.requiredClientCapabilities=String(r.requiredClientCapabilities)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.requiredVram="",e.requiredClientVer="",e.probability="",e.requiredUserAgent="",e.requiredClientCapabilities=""),r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&(e.requiredVram=r.requiredVram),r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&(e.requiredClientVer=r.requiredClientVer),r.probability!=null&&r.hasOwnProperty("probability")&&(e.probability=r.probability),r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&(e.requiredUserAgent=r.requiredUserAgent),r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&(e.requiredClientCapabilities=r.requiredClientCapabilities),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.RequirementProto"},i}(),c.LookAtProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.longitude=0,i.prototype.latitude=0,i.prototype.range=0,i.prototype.tilt=0,i.prototype.heading=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LookAtProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.longitude=r.float();break}case 2:{o.latitude=r.float();break}case 3:{o.range=r.float();break}case 4:{o.tilt=r.float();break}case 5:{o.heading=r.float();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("longitude"))throw u.ProtocolError("missing required 'longitude'",{instance:o});if(!o.hasOwnProperty("latitude"))throw u.ProtocolError("missing required 'latitude'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":typeof r.longitude!="number"?"longitude: number expected":typeof r.latitude!="number"?"latitude: number expected":r.range!=null&&r.hasOwnProperty("range")&&typeof r.range!="number"?"range: number expected":r.tilt!=null&&r.hasOwnProperty("tilt")&&typeof r.tilt!="number"?"tilt: number expected":r.heading!=null&&r.hasOwnProperty("heading")&&typeof r.heading!="number"?"heading: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LookAtProto)return r;var t=new n.keyhole.dbroot.LookAtProto;return r.longitude!=null&&(t.longitude=Number(r.longitude)),r.latitude!=null&&(t.latitude=Number(r.latitude)),r.range!=null&&(t.range=Number(r.range)),r.tilt!=null&&(t.tilt=Number(r.tilt)),r.heading!=null&&(t.heading=Number(r.heading)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.longitude=0,e.latitude=0,e.range=0,e.tilt=0,e.heading=0),r.longitude!=null&&r.hasOwnProperty("longitude")&&(e.longitude=t.json&&!isFinite(r.longitude)?String(r.longitude):r.longitude),r.latitude!=null&&r.hasOwnProperty("latitude")&&(e.latitude=t.json&&!isFinite(r.latitude)?String(r.latitude):r.latitude),r.range!=null&&r.hasOwnProperty("range")&&(e.range=t.json&&!isFinite(r.range)?String(r.range):r.range),r.tilt!=null&&r.hasOwnProperty("tilt")&&(e.tilt=t.json&&!isFinite(r.tilt)?String(r.tilt):r.tilt),r.heading!=null&&r.hasOwnProperty("heading")&&(e.heading=t.json&&!isFinite(r.heading)?String(r.heading):r.heading),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LookAtProto"},i}(),c.NestedFeatureProto=function(){function i(l){if(this.children=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.featureType=1,i.prototype.kmlUrl=null,i.prototype.databaseUrl="",i.prototype.layer=null,i.prototype.folder=null,i.prototype.requirement=null,i.prototype.channelId=0,i.prototype.displayName=null,i.prototype.isVisible=!0,i.prototype.isEnabled=!0,i.prototype.isChecked=!1,i.prototype.layerMenuIconPath="icons/773_l.png",i.prototype.description=null,i.prototype.lookAt=null,i.prototype.assetUuid="",i.prototype.isSaveLocked=!0,i.prototype.children=u.emptyArray,i.prototype.clientConfigScriptName="",i.prototype.dioramaDataChannelBase=-1,i.prototype.replicaDataChannelBase=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.NestedFeatureProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.featureType=r.int32();break}case 2:{o.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.databaseUrl=r.string();break}case 3:{o.layer=n.keyhole.dbroot.LayerProto.decode(r,r.uint32());break}case 4:{o.folder=n.keyhole.dbroot.FolderProto.decode(r,r.uint32());break}case 5:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}case 6:{o.channelId=r.int32();break}case 7:{o.displayName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.isVisible=r.bool();break}case 9:{o.isEnabled=r.bool();break}case 10:{o.isChecked=r.bool();break}case 11:{o.layerMenuIconPath=r.string();break}case 12:{o.description=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 13:{o.lookAt=n.keyhole.dbroot.LookAtProto.decode(r,r.uint32());break}case 15:{o.assetUuid=r.string();break}case 16:{o.isSaveLocked=r.bool();break}case 17:{o.children&&o.children.length||(o.children=[]),o.children.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 18:{o.clientConfigScriptName=r.string();break}case 19:{o.dioramaDataChannelBase=r.int32();break}case 20:{o.replicaDataChannelBase=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("channelId"))throw u.ProtocolError("missing required 'channelId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.featureType!=null&&r.hasOwnProperty("featureType"))switch(r.featureType){default:return"featureType: enum value expected";case 1:case 2:case 3:case 4:break}if(r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.kmlUrl);if(t)return"kmlUrl."+t}if(r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&!u.isString(r.databaseUrl))return"databaseUrl: string expected";if(r.layer!=null&&r.hasOwnProperty("layer")){var t=n.keyhole.dbroot.LayerProto.verify(r.layer);if(t)return"layer."+t}if(r.folder!=null&&r.hasOwnProperty("folder")){var t=n.keyhole.dbroot.FolderProto.verify(r.folder);if(t)return"folder."+t}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}if(!u.isInteger(r.channelId))return"channelId: integer expected";if(r.displayName!=null&&r.hasOwnProperty("displayName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.displayName);if(t)return"displayName."+t}if(r.isVisible!=null&&r.hasOwnProperty("isVisible")&&typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&typeof r.isEnabled!="boolean")return"isEnabled: boolean expected";if(r.isChecked!=null&&r.hasOwnProperty("isChecked")&&typeof r.isChecked!="boolean")return"isChecked: boolean expected";if(r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&!u.isString(r.layerMenuIconPath))return"layerMenuIconPath: string expected";if(r.description!=null&&r.hasOwnProperty("description")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.description);if(t)return"description."+t}if(r.lookAt!=null&&r.hasOwnProperty("lookAt")){var t=n.keyhole.dbroot.LookAtProto.verify(r.lookAt);if(t)return"lookAt."+t}if(r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&!u.isString(r.assetUuid))return"assetUuid: string expected";if(r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&typeof r.isSaveLocked!="boolean")return"isSaveLocked: boolean expected";if(r.children!=null&&r.hasOwnProperty("children")){if(!Array.isArray(r.children))return"children: array expected";for(var e=0;e<r.children.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.children[e]);if(t)return"children."+t}}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&!u.isString(r.clientConfigScriptName)?"clientConfigScriptName: string expected":r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&!u.isInteger(r.dioramaDataChannelBase)?"dioramaDataChannelBase: integer expected":r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&!u.isInteger(r.replicaDataChannelBase)?"replicaDataChannelBase: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.NestedFeatureProto)return r;var t=new n.keyhole.dbroot.NestedFeatureProto;switch(r.featureType){case"TYPE_POINT_Z":case 1:t.featureType=1;break;case"TYPE_POLYGON_Z":case 2:t.featureType=2;break;case"TYPE_LINE_Z":case 3:t.featureType=3;break;case"TYPE_TERRAIN":case 4:t.featureType=4;break}if(r.kmlUrl!=null){if(typeof r.kmlUrl!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.kmlUrl: object expected");t.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.kmlUrl)}if(r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),r.layer!=null){if(typeof r.layer!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.layer: object expected");t.layer=n.keyhole.dbroot.LayerProto.fromObject(r.layer)}if(r.folder!=null){if(typeof r.folder!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.folder: object expected");t.folder=n.keyhole.dbroot.FolderProto.fromObject(r.folder)}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}if(r.channelId!=null&&(t.channelId=r.channelId|0),r.displayName!=null){if(typeof r.displayName!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.displayName: object expected");t.displayName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.displayName)}if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.isEnabled!=null&&(t.isEnabled=!!r.isEnabled),r.isChecked!=null&&(t.isChecked=!!r.isChecked),r.layerMenuIconPath!=null&&(t.layerMenuIconPath=String(r.layerMenuIconPath)),r.description!=null){if(typeof r.description!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.description: object expected");t.description=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.description)}if(r.lookAt!=null){if(typeof r.lookAt!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.lookAt: object expected");t.lookAt=n.keyhole.dbroot.LookAtProto.fromObject(r.lookAt)}if(r.assetUuid!=null&&(t.assetUuid=String(r.assetUuid)),r.isSaveLocked!=null&&(t.isSaveLocked=!!r.isSaveLocked),r.children){if(!Array.isArray(r.children))throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: array expected");t.children=[];for(var e=0;e<r.children.length;++e){if(typeof r.children[e]!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: object expected");t.children[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.children[e])}}return r.clientConfigScriptName!=null&&(t.clientConfigScriptName=String(r.clientConfigScriptName)),r.dioramaDataChannelBase!=null&&(t.dioramaDataChannelBase=r.dioramaDataChannelBase|0),r.replicaDataChannelBase!=null&&(t.replicaDataChannelBase=r.replicaDataChannelBase|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.children=[]),t.defaults&&(e.featureType=t.enums===String?"TYPE_POINT_Z":1,e.kmlUrl=null,e.layer=null,e.folder=null,e.requirement=null,e.channelId=0,e.displayName=null,e.isVisible=!0,e.isEnabled=!0,e.isChecked=!1,e.layerMenuIconPath="icons/773_l.png",e.description=null,e.lookAt=null,e.assetUuid="",e.isSaveLocked=!0,e.clientConfigScriptName="",e.dioramaDataChannelBase=-1,e.replicaDataChannelBase=-1,e.databaseUrl=""),r.featureType!=null&&r.hasOwnProperty("featureType")&&(e.featureType=t.enums===String?n.keyhole.dbroot.NestedFeatureProto.FeatureType[r.featureType]:r.featureType),r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")&&(e.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.kmlUrl,t)),r.layer!=null&&r.hasOwnProperty("layer")&&(e.layer=n.keyhole.dbroot.LayerProto.toObject(r.layer,t)),r.folder!=null&&r.hasOwnProperty("folder")&&(e.folder=n.keyhole.dbroot.FolderProto.toObject(r.folder,t)),r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),r.channelId!=null&&r.hasOwnProperty("channelId")&&(e.channelId=r.channelId),r.displayName!=null&&r.hasOwnProperty("displayName")&&(e.displayName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.displayName,t)),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&(e.isEnabled=r.isEnabled),r.isChecked!=null&&r.hasOwnProperty("isChecked")&&(e.isChecked=r.isChecked),r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&(e.layerMenuIconPath=r.layerMenuIconPath),r.description!=null&&r.hasOwnProperty("description")&&(e.description=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.description,t)),r.lookAt!=null&&r.hasOwnProperty("lookAt")&&(e.lookAt=n.keyhole.dbroot.LookAtProto.toObject(r.lookAt,t)),r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&(e.assetUuid=r.assetUuid),r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&(e.isSaveLocked=r.isSaveLocked),r.children&&r.children.length){e.children=[];for(var o=0;o<r.children.length;++o)e.children[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.children[o],t)}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&(e.clientConfigScriptName=r.clientConfigScriptName),r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&(e.dioramaDataChannelBase=r.dioramaDataChannelBase),r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&(e.replicaDataChannelBase=r.replicaDataChannelBase),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.NestedFeatureProto"},i.FeatureType=function(){var l={},r=Object.create(l);return r[l[1]="TYPE_POINT_Z"]=1,r[l[2]="TYPE_POLYGON_Z"]=2,r[l[3]="TYPE_LINE_Z"]=3,r[l[4]="TYPE_TERRAIN"]=4,r}(),i}(),c.MfeDomainFeaturesProto=function(){function i(l){if(this.supportedFeatures=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.countryCode="",i.prototype.domainName="",i.prototype.supportedFeatures=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.MfeDomainFeaturesProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.countryCode=r.string();break}case 2:{o.domainName=r.string();break}case 3:{if(o.supportedFeatures&&o.supportedFeatures.length||(o.supportedFeatures=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.supportedFeatures.push(r.int32());else o.supportedFeatures.push(r.int32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("countryCode"))throw u.ProtocolError("missing required 'countryCode'",{instance:o});if(!o.hasOwnProperty("domainName"))throw u.ProtocolError("missing required 'domainName'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.countryCode))return"countryCode: string expected";if(!u.isString(r.domainName))return"domainName: string expected";if(r.supportedFeatures!=null&&r.hasOwnProperty("supportedFeatures")){if(!Array.isArray(r.supportedFeatures))return"supportedFeatures: array expected";for(var t=0;t<r.supportedFeatures.length;++t)switch(r.supportedFeatures[t]){default:return"supportedFeatures: enum value[] expected";case 0:case 1:case 2:break}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.MfeDomainFeaturesProto)return r;var t=new n.keyhole.dbroot.MfeDomainFeaturesProto;if(r.countryCode!=null&&(t.countryCode=String(r.countryCode)),r.domainName!=null&&(t.domainName=String(r.domainName)),r.supportedFeatures){if(!Array.isArray(r.supportedFeatures))throw TypeError(".keyhole.dbroot.MfeDomainFeaturesProto.supportedFeatures: array expected");t.supportedFeatures=[];for(var e=0;e<r.supportedFeatures.length;++e)switch(r.supportedFeatures[e]){default:case"GEOCODING":case 0:t.supportedFeatures[e]=0;break;case"LOCAL_SEARCH":case 1:t.supportedFeatures[e]=1;break;case"DRIVING_DIRECTIONS":case 2:t.supportedFeatures[e]=2;break}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.supportedFeatures=[]),t.defaults&&(e.countryCode="",e.domainName=""),r.countryCode!=null&&r.hasOwnProperty("countryCode")&&(e.countryCode=r.countryCode),r.domainName!=null&&r.hasOwnProperty("domainName")&&(e.domainName=r.domainName),r.supportedFeatures&&r.supportedFeatures.length){e.supportedFeatures=[];for(var o=0;o<r.supportedFeatures.length;++o)e.supportedFeatures[o]=t.enums===String?n.keyhole.dbroot.MfeDomainFeaturesProto.SupportedFeature[r.supportedFeatures[o]]:r.supportedFeatures[o]}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.MfeDomainFeaturesProto"},i.SupportedFeature=function(){var l={},r=Object.create(l);return r[l[0]="GEOCODING"]=0,r[l[1]="LOCAL_SEARCH"]=1,r[l[2]="DRIVING_DIRECTIONS"]=2,r}(),i}(),c.ClientOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.disableDiskCache=!1,i.prototype.disableEmbeddedBrowserVista=!1,i.prototype.drawAtmosphere=!0,i.prototype.drawStars=!0,i.prototype.shaderFilePrefix="",i.prototype.useProtobufQuadtreePackets=!1,i.prototype.useExtendedCopyrightIds=!0,i.prototype.precipitationsOptions=null,i.prototype.captureOptions=null,i.prototype.show_2dMapsIcon=!0,i.prototype.disableInternalBrowser=!1,i.prototype.internalBrowserBlacklist="",i.prototype.internalBrowserOriginWhitelist="*",i.prototype.polarTileMergingLevel=0,i.prototype.jsBridgeRequestWhitelist="http://*.google.com/*",i.prototype.mapsOptions=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ClientOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.disableDiskCache=r.bool();break}case 2:{o.disableEmbeddedBrowserVista=r.bool();break}case 3:{o.drawAtmosphere=r.bool();break}case 4:{o.drawStars=r.bool();break}case 5:{o.shaderFilePrefix=r.string();break}case 6:{o.useProtobufQuadtreePackets=r.bool();break}case 7:{o.useExtendedCopyrightIds=r.bool();break}case 8:{o.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.decode(r,r.uint32());break}case 9:{o.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.decode(r,r.uint32());break}case 10:{o.show_2dMapsIcon=r.bool();break}case 11:{o.disableInternalBrowser=r.bool();break}case 12:{o.internalBrowserBlacklist=r.string();break}case 13:{o.internalBrowserOriginWhitelist=r.string();break}case 14:{o.polarTileMergingLevel=r.int32();break}case 15:{o.jsBridgeRequestWhitelist=r.string();break}case 16:{o.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&typeof r.disableDiskCache!="boolean")return"disableDiskCache: boolean expected";if(r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&typeof r.disableEmbeddedBrowserVista!="boolean")return"disableEmbeddedBrowserVista: boolean expected";if(r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&typeof r.drawAtmosphere!="boolean")return"drawAtmosphere: boolean expected";if(r.drawStars!=null&&r.hasOwnProperty("drawStars")&&typeof r.drawStars!="boolean")return"drawStars: boolean expected";if(r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&!u.isString(r.shaderFilePrefix))return"shaderFilePrefix: string expected";if(r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&typeof r.useProtobufQuadtreePackets!="boolean")return"useProtobufQuadtreePackets: boolean expected";if(r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&typeof r.useExtendedCopyrightIds!="boolean")return"useExtendedCopyrightIds: boolean expected";if(r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.verify(r.precipitationsOptions);if(t)return"precipitationsOptions."+t}if(r.captureOptions!=null&&r.hasOwnProperty("captureOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.verify(r.captureOptions);if(t)return"captureOptions."+t}if(r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&typeof r.show_2dMapsIcon!="boolean")return"show_2dMapsIcon: boolean expected";if(r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&typeof r.disableInternalBrowser!="boolean")return"disableInternalBrowser: boolean expected";if(r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&!u.isString(r.internalBrowserBlacklist))return"internalBrowserBlacklist: string expected";if(r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&!u.isString(r.internalBrowserOriginWhitelist))return"internalBrowserOriginWhitelist: string expected";if(r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&!u.isInteger(r.polarTileMergingLevel))return"polarTileMergingLevel: integer expected";if(r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&!u.isString(r.jsBridgeRequestWhitelist))return"jsBridgeRequestWhitelist: string expected";if(r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.verify(r.mapsOptions);if(t)return"mapsOptions."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ClientOptionsProto)return r;var t=new n.keyhole.dbroot.ClientOptionsProto;if(r.disableDiskCache!=null&&(t.disableDiskCache=!!r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&(t.disableEmbeddedBrowserVista=!!r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&(t.drawAtmosphere=!!r.drawAtmosphere),r.drawStars!=null&&(t.drawStars=!!r.drawStars),r.shaderFilePrefix!=null&&(t.shaderFilePrefix=String(r.shaderFilePrefix)),r.useProtobufQuadtreePackets!=null&&(t.useProtobufQuadtreePackets=!!r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&(t.useExtendedCopyrightIds=!!r.useExtendedCopyrightIds),r.precipitationsOptions!=null){if(typeof r.precipitationsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.precipitationsOptions: object expected");t.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.fromObject(r.precipitationsOptions)}if(r.captureOptions!=null){if(typeof r.captureOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.captureOptions: object expected");t.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.fromObject(r.captureOptions)}if(r.show_2dMapsIcon!=null&&(t.show_2dMapsIcon=!!r.show_2dMapsIcon),r.disableInternalBrowser!=null&&(t.disableInternalBrowser=!!r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&(t.internalBrowserBlacklist=String(r.internalBrowserBlacklist)),r.internalBrowserOriginWhitelist!=null&&(t.internalBrowserOriginWhitelist=String(r.internalBrowserOriginWhitelist)),r.polarTileMergingLevel!=null&&(t.polarTileMergingLevel=r.polarTileMergingLevel|0),r.jsBridgeRequestWhitelist!=null&&(t.jsBridgeRequestWhitelist=String(r.jsBridgeRequestWhitelist)),r.mapsOptions!=null){if(typeof r.mapsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.mapsOptions: object expected");t.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.fromObject(r.mapsOptions)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.disableDiskCache=!1,e.disableEmbeddedBrowserVista=!1,e.drawAtmosphere=!0,e.drawStars=!0,e.shaderFilePrefix="",e.useProtobufQuadtreePackets=!1,e.useExtendedCopyrightIds=!0,e.precipitationsOptions=null,e.captureOptions=null,e.show_2dMapsIcon=!0,e.disableInternalBrowser=!1,e.internalBrowserBlacklist="",e.internalBrowserOriginWhitelist="*",e.polarTileMergingLevel=0,e.jsBridgeRequestWhitelist="http://*.google.com/*",e.mapsOptions=null),r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&(e.disableDiskCache=r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&(e.disableEmbeddedBrowserVista=r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&(e.drawAtmosphere=r.drawAtmosphere),r.drawStars!=null&&r.hasOwnProperty("drawStars")&&(e.drawStars=r.drawStars),r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&(e.shaderFilePrefix=r.shaderFilePrefix),r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&(e.useProtobufQuadtreePackets=r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&(e.useExtendedCopyrightIds=r.useExtendedCopyrightIds),r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")&&(e.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.toObject(r.precipitationsOptions,t)),r.captureOptions!=null&&r.hasOwnProperty("captureOptions")&&(e.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.toObject(r.captureOptions,t)),r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&(e.show_2dMapsIcon=r.show_2dMapsIcon),r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&(e.disableInternalBrowser=r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&(e.internalBrowserBlacklist=r.internalBrowserBlacklist),r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&(e.internalBrowserOriginWhitelist=r.internalBrowserOriginWhitelist),r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&(e.polarTileMergingLevel=r.polarTileMergingLevel),r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&(e.jsBridgeRequestWhitelist=r.jsBridgeRequestWhitelist),r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")&&(e.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.toObject(r.mapsOptions,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ClientOptionsProto"},i.PrecipitationsOptions=function(){function l(r){if(this.weatherMapping=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.imageUrl="",l.prototype.imageExpireTime=900,l.prototype.maxColorDistance=20,l.prototype.imageLevel=5,l.prototype.weatherMapping=u.emptyArray,l.prototype.cloudsLayerUrl="",l.prototype.animationDecelerationDelay=20,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.imageUrl=t.string();break}case 2:{a.imageExpireTime=t.int32();break}case 3:{a.maxColorDistance=t.int32();break}case 4:{a.imageLevel=t.int32();break}case 5:{a.weatherMapping&&a.weatherMapping.length||(a.weatherMapping=[]),a.weatherMapping.push(n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.decode(t,t.uint32()));break}case 6:{a.cloudsLayerUrl=t.string();break}case 7:{a.animationDecelerationDelay=t.float();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&!u.isString(t.imageUrl))return"imageUrl: string expected";if(t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&!u.isInteger(t.imageExpireTime))return"imageExpireTime: integer expected";if(t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&!u.isInteger(t.maxColorDistance))return"maxColorDistance: integer expected";if(t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&!u.isInteger(t.imageLevel))return"imageLevel: integer expected";if(t.weatherMapping!=null&&t.hasOwnProperty("weatherMapping")){if(!Array.isArray(t.weatherMapping))return"weatherMapping: array expected";for(var e=0;e<t.weatherMapping.length;++e){var o=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.verify(t.weatherMapping[e]);if(o)return"weatherMapping."+o}}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&!u.isString(t.cloudsLayerUrl)?"cloudsLayerUrl: string expected":t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&typeof t.animationDecelerationDelay!="number"?"animationDecelerationDelay: number expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;if(t.imageUrl!=null&&(e.imageUrl=String(t.imageUrl)),t.imageExpireTime!=null&&(e.imageExpireTime=t.imageExpireTime|0),t.maxColorDistance!=null&&(e.maxColorDistance=t.maxColorDistance|0),t.imageLevel!=null&&(e.imageLevel=t.imageLevel|0),t.weatherMapping){if(!Array.isArray(t.weatherMapping))throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: array expected");e.weatherMapping=[];for(var o=0;o<t.weatherMapping.length;++o){if(typeof t.weatherMapping[o]!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: object expected");e.weatherMapping[o]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.fromObject(t.weatherMapping[o])}}return t.cloudsLayerUrl!=null&&(e.cloudsLayerUrl=String(t.cloudsLayerUrl)),t.animationDecelerationDelay!=null&&(e.animationDecelerationDelay=Number(t.animationDecelerationDelay)),e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.weatherMapping=[]),e.defaults&&(o.imageUrl="",o.imageExpireTime=900,o.maxColorDistance=20,o.imageLevel=5,o.cloudsLayerUrl="",o.animationDecelerationDelay=20),t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&(o.imageUrl=t.imageUrl),t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&(o.imageExpireTime=t.imageExpireTime),t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&(o.maxColorDistance=t.maxColorDistance),t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&(o.imageLevel=t.imageLevel),t.weatherMapping&&t.weatherMapping.length){o.weatherMapping=[];for(var a=0;a<t.weatherMapping.length;++a)o.weatherMapping[a]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.toObject(t.weatherMapping[a],e)}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&(o.cloudsLayerUrl=t.cloudsLayerUrl),t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&(o.animationDecelerationDelay=e.json&&!isFinite(t.animationDecelerationDelay)?String(t.animationDecelerationDelay):t.animationDecelerationDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions"},l.WeatherMapping=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.colorAbgr=0,r.prototype.weatherType=0,r.prototype.elongation=1,r.prototype.opacity=0,r.prototype.fogDensity=0,r.prototype.speed0=0,r.prototype.speed1=0,r.prototype.speed2=0,r.prototype.speed3=0,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.colorAbgr=e.uint32();break}case 2:{p.weatherType=e.int32();break}case 3:{p.elongation=e.float();break}case 4:{p.opacity=e.float();break}case 5:{p.fogDensity=e.float();break}case 6:{p.speed0=e.float();break}case 7:{p.speed1=e.float();break}case 8:{p.speed2=e.float();break}case 9:{p.speed3=e.float();break}default:e.skipType(y&7);break}}if(!p.hasOwnProperty("colorAbgr"))throw u.ProtocolError("missing required 'colorAbgr'",{instance:p});if(!p.hasOwnProperty("weatherType"))throw u.ProtocolError("missing required 'weatherType'",{instance:p});return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(!u.isInteger(e.colorAbgr))return"colorAbgr: integer expected";switch(e.weatherType){default:return"weatherType: enum value expected";case 0:case 1:case 2:break}return e.elongation!=null&&e.hasOwnProperty("elongation")&&typeof e.elongation!="number"?"elongation: number expected":e.opacity!=null&&e.hasOwnProperty("opacity")&&typeof e.opacity!="number"?"opacity: number expected":e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&typeof e.fogDensity!="number"?"fogDensity: number expected":e.speed0!=null&&e.hasOwnProperty("speed0")&&typeof e.speed0!="number"?"speed0: number expected":e.speed1!=null&&e.hasOwnProperty("speed1")&&typeof e.speed1!="number"?"speed1: number expected":e.speed2!=null&&e.hasOwnProperty("speed2")&&typeof e.speed2!="number"?"speed2: number expected":e.speed3!=null&&e.hasOwnProperty("speed3")&&typeof e.speed3!="number"?"speed3: number expected":null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping)return e;var o=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;switch(e.colorAbgr!=null&&(o.colorAbgr=e.colorAbgr>>>0),e.weatherType){case"NO_PRECIPITATION":case 0:o.weatherType=0;break;case"RAIN":case 1:o.weatherType=1;break;case"SNOW":case 2:o.weatherType=2;break}return e.elongation!=null&&(o.elongation=Number(e.elongation)),e.opacity!=null&&(o.opacity=Number(e.opacity)),e.fogDensity!=null&&(o.fogDensity=Number(e.fogDensity)),e.speed0!=null&&(o.speed0=Number(e.speed0)),e.speed1!=null&&(o.speed1=Number(e.speed1)),e.speed2!=null&&(o.speed2=Number(e.speed2)),e.speed3!=null&&(o.speed3=Number(e.speed3)),o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.colorAbgr=0,a.weatherType=o.enums===String?"NO_PRECIPITATION":0,a.elongation=1,a.opacity=0,a.fogDensity=0,a.speed0=0,a.speed1=0,a.speed2=0,a.speed3=0),e.colorAbgr!=null&&e.hasOwnProperty("colorAbgr")&&(a.colorAbgr=e.colorAbgr),e.weatherType!=null&&e.hasOwnProperty("weatherType")&&(a.weatherType=o.enums===String?n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.WeatherType[e.weatherType]:e.weatherType),e.elongation!=null&&e.hasOwnProperty("elongation")&&(a.elongation=o.json&&!isFinite(e.elongation)?String(e.elongation):e.elongation),e.opacity!=null&&e.hasOwnProperty("opacity")&&(a.opacity=o.json&&!isFinite(e.opacity)?String(e.opacity):e.opacity),e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&(a.fogDensity=o.json&&!isFinite(e.fogDensity)?String(e.fogDensity):e.fogDensity),e.speed0!=null&&e.hasOwnProperty("speed0")&&(a.speed0=o.json&&!isFinite(e.speed0)?String(e.speed0):e.speed0),e.speed1!=null&&e.hasOwnProperty("speed1")&&(a.speed1=o.json&&!isFinite(e.speed1)?String(e.speed1):e.speed1),e.speed2!=null&&e.hasOwnProperty("speed2")&&(a.speed2=o.json&&!isFinite(e.speed2)?String(e.speed2):e.speed2),e.speed3!=null&&e.hasOwnProperty("speed3")&&(a.speed3=o.json&&!isFinite(e.speed3)?String(e.speed3):e.speed3),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping"},r.WeatherType=function(){var t={},e=Object.create(t);return e[t[0]="NO_PRECIPITATION"]=0,e[t[1]="RAIN"]=1,e[t[2]="SNOW"]=2,e}(),r}(),l}(),i.CaptureOptions=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.allowSaveAsImage=!0,l.prototype.maxFreeCaptureRes=2400,l.prototype.maxPremiumCaptureRes=4800,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.allowSaveAsImage=t.bool();break}case 2:{a.maxFreeCaptureRes=t.int32();break}case 3:{a.maxPremiumCaptureRes=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&typeof t.allowSaveAsImage!="boolean"?"allowSaveAsImage: boolean expected":t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&!u.isInteger(t.maxFreeCaptureRes)?"maxFreeCaptureRes: integer expected":t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&!u.isInteger(t.maxPremiumCaptureRes)?"maxPremiumCaptureRes: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.CaptureOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;return t.allowSaveAsImage!=null&&(e.allowSaveAsImage=!!t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&(e.maxFreeCaptureRes=t.maxFreeCaptureRes|0),t.maxPremiumCaptureRes!=null&&(e.maxPremiumCaptureRes=t.maxPremiumCaptureRes|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.allowSaveAsImage=!0,o.maxFreeCaptureRes=2400,o.maxPremiumCaptureRes=4800),t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&(o.allowSaveAsImage=t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&(o.maxFreeCaptureRes=t.maxFreeCaptureRes),t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&(o.maxPremiumCaptureRes=t.maxPremiumCaptureRes),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.CaptureOptions"},l}(),i.MapsOptions=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.enableMaps=!1,l.prototype.docsAutoDownloadEnabled=!1,l.prototype.docsAutoDownloadInterval=0,l.prototype.docsAutoUploadEnabled=!1,l.prototype.docsAutoUploadDelay=0,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.enableMaps=t.bool();break}case 2:{a.docsAutoDownloadEnabled=t.bool();break}case 3:{a.docsAutoDownloadInterval=t.int32();break}case 4:{a.docsAutoUploadEnabled=t.bool();break}case 5:{a.docsAutoUploadDelay=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&typeof t.enableMaps!="boolean"?"enableMaps: boolean expected":t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&typeof t.docsAutoDownloadEnabled!="boolean"?"docsAutoDownloadEnabled: boolean expected":t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&!u.isInteger(t.docsAutoDownloadInterval)?"docsAutoDownloadInterval: integer expected":t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&typeof t.docsAutoUploadEnabled!="boolean"?"docsAutoUploadEnabled: boolean expected":t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&!u.isInteger(t.docsAutoUploadDelay)?"docsAutoUploadDelay: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.MapsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;return t.enableMaps!=null&&(e.enableMaps=!!t.enableMaps),t.docsAutoDownloadEnabled!=null&&(e.docsAutoDownloadEnabled=!!t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&(e.docsAutoDownloadInterval=t.docsAutoDownloadInterval|0),t.docsAutoUploadEnabled!=null&&(e.docsAutoUploadEnabled=!!t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&(e.docsAutoUploadDelay=t.docsAutoUploadDelay|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.enableMaps=!1,o.docsAutoDownloadEnabled=!1,o.docsAutoDownloadInterval=0,o.docsAutoUploadEnabled=!1,o.docsAutoUploadDelay=0),t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&(o.enableMaps=t.enableMaps),t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&(o.docsAutoDownloadEnabled=t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&(o.docsAutoDownloadInterval=t.docsAutoDownloadInterval),t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&(o.docsAutoUploadEnabled=t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&(o.docsAutoUploadDelay=t.docsAutoUploadDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.MapsOptions"},l}(),i}(),c.FetchingOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.maxRequestsPerQuery=1,i.prototype.forceMaxRequestsPerQuery=!1,i.prototype.sortBatches=!1,i.prototype.maxDrawable=2,i.prototype.maxImagery=2,i.prototype.maxTerrain=5,i.prototype.maxQuadtree=5,i.prototype.maxDioramaMetadata=1,i.prototype.maxDioramaData=0,i.prototype.maxConsumerFetchRatio=1,i.prototype.maxProEcFetchRatio=0,i.prototype.safeOverallQps=0,i.prototype.safeImageryQps=0,i.prototype.domainsForHttps="google.com gstatic.com",i.prototype.hostsForHttp="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FetchingOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.maxRequestsPerQuery=r.int32();break}case 12:{o.forceMaxRequestsPerQuery=r.bool();break}case 13:{o.sortBatches=r.bool();break}case 2:{o.maxDrawable=r.int32();break}case 3:{o.maxImagery=r.int32();break}case 4:{o.maxTerrain=r.int32();break}case 5:{o.maxQuadtree=r.int32();break}case 6:{o.maxDioramaMetadata=r.int32();break}case 7:{o.maxDioramaData=r.int32();break}case 8:{o.maxConsumerFetchRatio=r.float();break}case 9:{o.maxProEcFetchRatio=r.float();break}case 10:{o.safeOverallQps=r.float();break}case 11:{o.safeImageryQps=r.float();break}case 14:{o.domainsForHttps=r.string();break}case 15:{o.hostsForHttp=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&!u.isInteger(r.maxRequestsPerQuery)?"maxRequestsPerQuery: integer expected":r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&typeof r.forceMaxRequestsPerQuery!="boolean"?"forceMaxRequestsPerQuery: boolean expected":r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&typeof r.sortBatches!="boolean"?"sortBatches: boolean expected":r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&!u.isInteger(r.maxDrawable)?"maxDrawable: integer expected":r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&!u.isInteger(r.maxImagery)?"maxImagery: integer expected":r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&!u.isInteger(r.maxTerrain)?"maxTerrain: integer expected":r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&!u.isInteger(r.maxQuadtree)?"maxQuadtree: integer expected":r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&!u.isInteger(r.maxDioramaMetadata)?"maxDioramaMetadata: integer expected":r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&!u.isInteger(r.maxDioramaData)?"maxDioramaData: integer expected":r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&typeof r.maxConsumerFetchRatio!="number"?"maxConsumerFetchRatio: number expected":r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&typeof r.maxProEcFetchRatio!="number"?"maxProEcFetchRatio: number expected":r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&typeof r.safeOverallQps!="number"?"safeOverallQps: number expected":r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&typeof r.safeImageryQps!="number"?"safeImageryQps: number expected":r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&!u.isString(r.domainsForHttps)?"domainsForHttps: string expected":r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&!u.isString(r.hostsForHttp)?"hostsForHttp: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FetchingOptionsProto)return r;var t=new n.keyhole.dbroot.FetchingOptionsProto;return r.maxRequestsPerQuery!=null&&(t.maxRequestsPerQuery=r.maxRequestsPerQuery|0),r.forceMaxRequestsPerQuery!=null&&(t.forceMaxRequestsPerQuery=!!r.forceMaxRequestsPerQuery),r.sortBatches!=null&&(t.sortBatches=!!r.sortBatches),r.maxDrawable!=null&&(t.maxDrawable=r.maxDrawable|0),r.maxImagery!=null&&(t.maxImagery=r.maxImagery|0),r.maxTerrain!=null&&(t.maxTerrain=r.maxTerrain|0),r.maxQuadtree!=null&&(t.maxQuadtree=r.maxQuadtree|0),r.maxDioramaMetadata!=null&&(t.maxDioramaMetadata=r.maxDioramaMetadata|0),r.maxDioramaData!=null&&(t.maxDioramaData=r.maxDioramaData|0),r.maxConsumerFetchRatio!=null&&(t.maxConsumerFetchRatio=Number(r.maxConsumerFetchRatio)),r.maxProEcFetchRatio!=null&&(t.maxProEcFetchRatio=Number(r.maxProEcFetchRatio)),r.safeOverallQps!=null&&(t.safeOverallQps=Number(r.safeOverallQps)),r.safeImageryQps!=null&&(t.safeImageryQps=Number(r.safeImageryQps)),r.domainsForHttps!=null&&(t.domainsForHttps=String(r.domainsForHttps)),r.hostsForHttp!=null&&(t.hostsForHttp=String(r.hostsForHttp)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.maxRequestsPerQuery=1,e.maxDrawable=2,e.maxImagery=2,e.maxTerrain=5,e.maxQuadtree=5,e.maxDioramaMetadata=1,e.maxDioramaData=0,e.maxConsumerFetchRatio=1,e.maxProEcFetchRatio=0,e.safeOverallQps=0,e.safeImageryQps=0,e.forceMaxRequestsPerQuery=!1,e.sortBatches=!1,e.domainsForHttps="google.com gstatic.com",e.hostsForHttp=""),r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&(e.maxRequestsPerQuery=r.maxRequestsPerQuery),r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&(e.maxDrawable=r.maxDrawable),r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&(e.maxImagery=r.maxImagery),r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&(e.maxTerrain=r.maxTerrain),r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&(e.maxQuadtree=r.maxQuadtree),r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&(e.maxDioramaMetadata=r.maxDioramaMetadata),r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&(e.maxDioramaData=r.maxDioramaData),r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&(e.maxConsumerFetchRatio=t.json&&!isFinite(r.maxConsumerFetchRatio)?String(r.maxConsumerFetchRatio):r.maxConsumerFetchRatio),r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&(e.maxProEcFetchRatio=t.json&&!isFinite(r.maxProEcFetchRatio)?String(r.maxProEcFetchRatio):r.maxProEcFetchRatio),r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&(e.safeOverallQps=t.json&&!isFinite(r.safeOverallQps)?String(r.safeOverallQps):r.safeOverallQps),r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&(e.safeImageryQps=t.json&&!isFinite(r.safeImageryQps)?String(r.safeImageryQps):r.safeImageryQps),r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&(e.forceMaxRequestsPerQuery=r.forceMaxRequestsPerQuery),r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&(e.sortBatches=r.sortBatches),r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&(e.domainsForHttps=r.domainsForHttps),r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&(e.hostsForHttp=r.hostsForHttp),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FetchingOptionsProto"},i}(),c.TimeMachineOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.serverUrl="",i.prototype.isTimemachine=!1,i.prototype.dwellTimeMs=500,i.prototype.discoverabilityAltitudeMeters=15e3,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.TimeMachineOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.serverUrl=r.string();break}case 2:{o.isTimemachine=r.bool();break}case 3:{o.dwellTimeMs=r.int32();break}case 4:{o.discoverabilityAltitudeMeters=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&!u.isString(r.serverUrl)?"serverUrl: string expected":r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&typeof r.isTimemachine!="boolean"?"isTimemachine: boolean expected":r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&!u.isInteger(r.dwellTimeMs)?"dwellTimeMs: integer expected":r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&!u.isInteger(r.discoverabilityAltitudeMeters)?"discoverabilityAltitudeMeters: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.TimeMachineOptionsProto)return r;var t=new n.keyhole.dbroot.TimeMachineOptionsProto;return r.serverUrl!=null&&(t.serverUrl=String(r.serverUrl)),r.isTimemachine!=null&&(t.isTimemachine=!!r.isTimemachine),r.dwellTimeMs!=null&&(t.dwellTimeMs=r.dwellTimeMs|0),r.discoverabilityAltitudeMeters!=null&&(t.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.serverUrl="",e.isTimemachine=!1,e.dwellTimeMs=500,e.discoverabilityAltitudeMeters=15e3),r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&(e.serverUrl=r.serverUrl),r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&(e.isTimemachine=r.isTimemachine),r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&(e.dwellTimeMs=r.dwellTimeMs),r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&(e.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.TimeMachineOptionsProto"},i}(),c.AutopiaOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.metadataServerUrl="http://cbk0.google.com/cbk",i.prototype.depthmapServerUrl="http://cbk0.google.com/cbk",i.prototype.coverageOverlayUrl="",i.prototype.maxImageryQps=0,i.prototype.maxMetadataDepthmapQps=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.AutopiaOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.metadataServerUrl=r.string();break}case 2:{o.depthmapServerUrl=r.string();break}case 3:{o.coverageOverlayUrl=r.string();break}case 4:{o.maxImageryQps=r.float();break}case 5:{o.maxMetadataDepthmapQps=r.float();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&!u.isString(r.metadataServerUrl)?"metadataServerUrl: string expected":r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&!u.isString(r.depthmapServerUrl)?"depthmapServerUrl: string expected":r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&!u.isString(r.coverageOverlayUrl)?"coverageOverlayUrl: string expected":r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&typeof r.maxImageryQps!="number"?"maxImageryQps: number expected":r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&typeof r.maxMetadataDepthmapQps!="number"?"maxMetadataDepthmapQps: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.AutopiaOptionsProto)return r;var t=new n.keyhole.dbroot.AutopiaOptionsProto;return r.metadataServerUrl!=null&&(t.metadataServerUrl=String(r.metadataServerUrl)),r.depthmapServerUrl!=null&&(t.depthmapServerUrl=String(r.depthmapServerUrl)),r.coverageOverlayUrl!=null&&(t.coverageOverlayUrl=String(r.coverageOverlayUrl)),r.maxImageryQps!=null&&(t.maxImageryQps=Number(r.maxImageryQps)),r.maxMetadataDepthmapQps!=null&&(t.maxMetadataDepthmapQps=Number(r.maxMetadataDepthmapQps)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.metadataServerUrl="http://cbk0.google.com/cbk",e.depthmapServerUrl="http://cbk0.google.com/cbk",e.coverageOverlayUrl="",e.maxImageryQps=0,e.maxMetadataDepthmapQps=0),r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&(e.metadataServerUrl=r.metadataServerUrl),r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&(e.depthmapServerUrl=r.depthmapServerUrl),r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&(e.coverageOverlayUrl=r.coverageOverlayUrl),r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&(e.maxImageryQps=t.json&&!isFinite(r.maxImageryQps)?String(r.maxImageryQps):r.maxImageryQps),r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&(e.maxMetadataDepthmapQps=t.json&&!isFinite(r.maxMetadataDepthmapQps)?String(r.maxMetadataDepthmapQps):r.maxMetadataDepthmapQps),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.AutopiaOptionsProto"},i}(),c.CSIOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.samplingPercentage=0,i.prototype.experimentId="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CSIOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.samplingPercentage=r.int32();break}case 2:{o.experimentId=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&!u.isInteger(r.samplingPercentage)?"samplingPercentage: integer expected":r.experimentId!=null&&r.hasOwnProperty("experimentId")&&!u.isString(r.experimentId)?"experimentId: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CSIOptionsProto)return r;var t=new n.keyhole.dbroot.CSIOptionsProto;return r.samplingPercentage!=null&&(t.samplingPercentage=r.samplingPercentage|0),r.experimentId!=null&&(t.experimentId=String(r.experimentId)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.samplingPercentage=0,e.experimentId=""),r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&(e.samplingPercentage=r.samplingPercentage),r.experimentId!=null&&r.hasOwnProperty("experimentId")&&(e.experimentId=r.experimentId),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CSIOptionsProto"},i}(),c.SearchTabProto=function(){function i(l){if(this.inputBox=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isVisible=!1,i.prototype.tabLabel=null,i.prototype.baseUrl="",i.prototype.viewportPrefix="",i.prototype.inputBox=u.emptyArray,i.prototype.requirement=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SearchTabProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isVisible=r.bool();break}case 2:{o.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.baseUrl=r.string();break}case 4:{o.viewportPrefix=r.string();break}case 5:{o.inputBox&&o.inputBox.length||(o.inputBox=[]),o.inputBox.push(n.keyhole.dbroot.SearchTabProto.InputBoxInfo.decode(r,r.uint32()));break}case 6:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("isVisible"))throw u.ProtocolError("missing required 'isVisible'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.tabLabel!=null&&r.hasOwnProperty("tabLabel")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tabLabel);if(t)return"tabLabel."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&!u.isString(r.baseUrl))return"baseUrl: string expected";if(r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&!u.isString(r.viewportPrefix))return"viewportPrefix: string expected";if(r.inputBox!=null&&r.hasOwnProperty("inputBox")){if(!Array.isArray(r.inputBox))return"inputBox: array expected";for(var e=0;e<r.inputBox.length;++e){var t=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.verify(r.inputBox[e]);if(t)return"inputBox."+t}}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SearchTabProto)return r;var t=new n.keyhole.dbroot.SearchTabProto;if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.tabLabel!=null){if(typeof r.tabLabel!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.tabLabel: object expected");t.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tabLabel)}if(r.baseUrl!=null&&(t.baseUrl=String(r.baseUrl)),r.viewportPrefix!=null&&(t.viewportPrefix=String(r.viewportPrefix)),r.inputBox){if(!Array.isArray(r.inputBox))throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: array expected");t.inputBox=[];for(var e=0;e<r.inputBox.length;++e){if(typeof r.inputBox[e]!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: object expected");t.inputBox[e]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.fromObject(r.inputBox[e])}}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.inputBox=[]),t.defaults&&(e.isVisible=!1,e.tabLabel=null,e.baseUrl="",e.viewportPrefix="",e.requirement=null),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.tabLabel!=null&&r.hasOwnProperty("tabLabel")&&(e.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tabLabel,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=r.baseUrl),r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&(e.viewportPrefix=r.viewportPrefix),r.inputBox&&r.inputBox.length){e.inputBox=[];for(var o=0;o<r.inputBox.length;++o)e.inputBox[o]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.toObject(r.inputBox[o],t)}return r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SearchTabProto"},i.InputBoxInfo=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.label=null,l.prototype.queryVerb="",l.prototype.queryPrepend="",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.label=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 2:{a.queryVerb=t.string();break}case 3:{a.queryPrepend=t.string();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("label"))throw u.ProtocolError("missing required 'label'",{instance:a});if(!a.hasOwnProperty("queryVerb"))throw u.ProtocolError("missing required 'queryVerb'",{instance:a});return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";{var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.label);if(e)return"label."+e}return u.isString(t.queryVerb)?t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&!u.isString(t.queryPrepend)?"queryPrepend: string expected":null:"queryVerb: string expected"},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.SearchTabProto.InputBoxInfo)return t;var e=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;if(t.label!=null){if(typeof t.label!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.InputBoxInfo.label: object expected");e.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.label)}return t.queryVerb!=null&&(e.queryVerb=String(t.queryVerb)),t.queryPrepend!=null&&(e.queryPrepend=String(t.queryPrepend)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.label=null,o.queryVerb="",o.queryPrepend=""),t.label!=null&&t.hasOwnProperty("label")&&(o.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.label,e)),t.queryVerb!=null&&t.hasOwnProperty("queryVerb")&&(o.queryVerb=t.queryVerb),t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&(o.queryPrepend=t.queryPrepend),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.SearchTabProto.InputBoxInfo"},l}(),i}(),c.CobrandProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.logoUrl="",i.prototype.xCoord=null,i.prototype.yCoord=null,i.prototype.tiePoint=6,i.prototype.screenSize=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CobrandProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.logoUrl=r.string();break}case 2:{o.xCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 3:{o.yCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 4:{o.tiePoint=r.int32();break}case 5:{o.screenSize=r.double();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("logoUrl"))throw u.ProtocolError("missing required 'logoUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.logoUrl))return"logoUrl: string expected";if(r.xCoord!=null&&r.hasOwnProperty("xCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.xCoord);if(t)return"xCoord."+t}if(r.yCoord!=null&&r.hasOwnProperty("yCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.yCoord);if(t)return"yCoord."+t}if(r.tiePoint!=null&&r.hasOwnProperty("tiePoint"))switch(r.tiePoint){default:return"tiePoint: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:break}return r.screenSize!=null&&r.hasOwnProperty("screenSize")&&typeof r.screenSize!="number"?"screenSize: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CobrandProto)return r;var t=new n.keyhole.dbroot.CobrandProto;if(r.logoUrl!=null&&(t.logoUrl=String(r.logoUrl)),r.xCoord!=null){if(typeof r.xCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.xCoord: object expected");t.xCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.xCoord)}if(r.yCoord!=null){if(typeof r.yCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.yCoord: object expected");t.yCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.yCoord)}switch(r.tiePoint){case"TOP_LEFT":case 0:t.tiePoint=0;break;case"TOP_CENTER":case 1:t.tiePoint=1;break;case"TOP_RIGHT":case 2:t.tiePoint=2;break;case"MID_LEFT":case 3:t.tiePoint=3;break;case"MID_CENTER":case 4:t.tiePoint=4;break;case"MID_RIGHT":case 5:t.tiePoint=5;break;case"BOTTOM_LEFT":case 6:t.tiePoint=6;break;case"BOTTOM_CENTER":case 7:t.tiePoint=7;break;case"BOTTOM_RIGHT":case 8:t.tiePoint=8;break}return r.screenSize!=null&&(t.screenSize=Number(r.screenSize)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.logoUrl="",e.xCoord=null,e.yCoord=null,e.tiePoint=t.enums===String?"BOTTOM_LEFT":6,e.screenSize=0),r.logoUrl!=null&&r.hasOwnProperty("logoUrl")&&(e.logoUrl=r.logoUrl),r.xCoord!=null&&r.hasOwnProperty("xCoord")&&(e.xCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.xCoord,t)),r.yCoord!=null&&r.hasOwnProperty("yCoord")&&(e.yCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.yCoord,t)),r.tiePoint!=null&&r.hasOwnProperty("tiePoint")&&(e.tiePoint=t.enums===String?n.keyhole.dbroot.CobrandProto.TiePoint[r.tiePoint]:r.tiePoint),r.screenSize!=null&&r.hasOwnProperty("screenSize")&&(e.screenSize=t.json&&!isFinite(r.screenSize)?String(r.screenSize):r.screenSize),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CobrandProto"},i.Coord=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.value=0,l.prototype.isRelative=!1,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.CobrandProto.Coord;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.value=t.double();break}case 2:{a.isRelative=t.bool();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("value"))throw u.ProtocolError("missing required 'value'",{instance:a});return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":typeof t.value!="number"?"value: number expected":t.isRelative!=null&&t.hasOwnProperty("isRelative")&&typeof t.isRelative!="boolean"?"isRelative: boolean expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.CobrandProto.Coord)return t;var e=new n.keyhole.dbroot.CobrandProto.Coord;return t.value!=null&&(e.value=Number(t.value)),t.isRelative!=null&&(e.isRelative=!!t.isRelative),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.value=0,o.isRelative=!1),t.value!=null&&t.hasOwnProperty("value")&&(o.value=e.json&&!isFinite(t.value)?String(t.value):t.value),t.isRelative!=null&&t.hasOwnProperty("isRelative")&&(o.isRelative=t.isRelative),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.CobrandProto.Coord"},l}(),i.TiePoint=function(){var l={},r=Object.create(l);return r[l[0]="TOP_LEFT"]=0,r[l[1]="TOP_CENTER"]=1,r[l[2]="TOP_RIGHT"]=2,r[l[3]="MID_LEFT"]=3,r[l[4]="MID_CENTER"]=4,r[l[5]="MID_RIGHT"]=5,r[l[6]="BOTTOM_LEFT"]=6,r[l[7]="BOTTOM_CENTER"]=7,r[l[8]="BOTTOM_RIGHT"]=8,r}(),i}(),c.DatabaseDescriptionProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.databaseUrl="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseDescriptionProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.databaseUrl=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("databaseUrl"))throw u.ProtocolError("missing required 'databaseUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}return u.isString(r.databaseUrl)?null:"databaseUrl: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseDescriptionProto)return r;var t=new n.keyhole.dbroot.DatabaseDescriptionProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DatabaseDescriptionProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}return r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.databaseName=null,e.databaseUrl=""),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseDescriptionProto"},i}(),c.ConfigScriptProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.scriptName="",i.prototype.scriptData="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ConfigScriptProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.scriptName=r.string();break}case 2:{o.scriptData=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("scriptName"))throw u.ProtocolError("missing required 'scriptName'",{instance:o});if(!o.hasOwnProperty("scriptData"))throw u.ProtocolError("missing required 'scriptData'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isString(r.scriptName)?u.isString(r.scriptData)?null:"scriptData: string expected":"scriptName: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ConfigScriptProto)return r;var t=new n.keyhole.dbroot.ConfigScriptProto;return r.scriptName!=null&&(t.scriptName=String(r.scriptName)),r.scriptData!=null&&(t.scriptData=String(r.scriptData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.scriptName="",e.scriptData=""),r.scriptName!=null&&r.hasOwnProperty("scriptName")&&(e.scriptName=r.scriptName),r.scriptData!=null&&r.hasOwnProperty("scriptData")&&(e.scriptData=r.scriptData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ConfigScriptProto"},i}(),c.SwoopParamsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.startDistInMeters=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SwoopParamsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.startDistInMeters=r.double();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&typeof r.startDistInMeters!="number"?"startDistInMeters: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SwoopParamsProto)return r;var t=new n.keyhole.dbroot.SwoopParamsProto;return r.startDistInMeters!=null&&(t.startDistInMeters=Number(r.startDistInMeters)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.startDistInMeters=0),r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&(e.startDistInMeters=t.json&&!isFinite(r.startDistInMeters)?String(r.startDistInMeters):r.startDistInMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SwoopParamsProto"},i}(),c.PostingServerProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.name=null,i.prototype.baseUrl=null,i.prototype.postWizardPath=null,i.prototype.fileSubmitPath=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PostingServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 4:{o.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.name!=null&&r.hasOwnProperty("name")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.baseUrl);if(t)return"baseUrl."+t}if(r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.postWizardPath);if(t)return"postWizardPath."+t}if(r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.fileSubmitPath);if(t)return"fileSubmitPath."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PostingServerProto)return r;var t=new n.keyhole.dbroot.PostingServerProto;if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}if(r.baseUrl!=null){if(typeof r.baseUrl!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.baseUrl: object expected");t.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.baseUrl)}if(r.postWizardPath!=null){if(typeof r.postWizardPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.postWizardPath: object expected");t.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.postWizardPath)}if(r.fileSubmitPath!=null){if(typeof r.fileSubmitPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.fileSubmitPath: object expected");t.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.fileSubmitPath)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.name=null,e.baseUrl=null,e.postWizardPath=null,e.fileSubmitPath=null),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.baseUrl,t)),r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")&&(e.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.postWizardPath,t)),r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")&&(e.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.fileSubmitPath,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PostingServerProto"},i}(),c.PlanetaryDatabaseProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.name=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetaryDatabaseProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});if(!o.hasOwnProperty("name"))throw u.ProtocolError("missing required 'name'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetaryDatabaseProto)return r;var t=new n.keyhole.dbroot.PlanetaryDatabaseProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.name=null),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetaryDatabaseProto"},i}(),c.LogServerProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.enable=!1,i.prototype.throttlingFactor=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LogServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.enable=r.bool();break}case 3:{o.throttlingFactor=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.url!=null&&r.hasOwnProperty("url")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}return r.enable!=null&&r.hasOwnProperty("enable")&&typeof r.enable!="boolean"?"enable: boolean expected":r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&!u.isInteger(r.throttlingFactor)?"throttlingFactor: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LogServerProto)return r;var t=new n.keyhole.dbroot.LogServerProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.LogServerProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}return r.enable!=null&&(t.enable=!!r.enable),r.throttlingFactor!=null&&(t.throttlingFactor=r.throttlingFactor|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.enable=!1,e.throttlingFactor=1),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.enable!=null&&r.hasOwnProperty("enable")&&(e.enable=r.enable),r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&(e.throttlingFactor=r.throttlingFactor),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LogServerProto"},i}(),c.EndSnippetProto=function(){function i(l){if(this.mfeDomains=[],this.searchTab=[],this.cobrandInfo=[],this.validDatabase=[],this.configScript=[],this.planetaryDatabase=[],this.filmstripConfig=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.model=null,i.prototype.authServerUrl=null,i.prototype.disableAuthentication=!1,i.prototype.mfeDomains=u.emptyArray,i.prototype.mfeLangParam="hl=$5Bhl5D",i.prototype.adsUrlPatterns="",i.prototype.reverseGeocoderUrl=null,i.prototype.reverseGeocoderProtocolVersion=3,i.prototype.skyDatabaseIsAvailable=!0,i.prototype.skyDatabaseUrl=null,i.prototype.defaultWebPageIntlUrl=null,i.prototype.numStartUpTips=17,i.prototype.startUpTipsUrl=null,i.prototype.numProStartUpTips=0,i.prototype.proStartUpTipsUrl=null,i.prototype.startupTipsIntlUrl=null,i.prototype.userGuideIntlUrl=null,i.prototype.supportCenterIntlUrl=null,i.prototype.businessListingIntlUrl=null,i.prototype.supportAnswerIntlUrl=null,i.prototype.supportTopicIntlUrl=null,i.prototype.supportRequestIntlUrl=null,i.prototype.earthIntlUrl=null,i.prototype.addContentUrl=null,i.prototype.sketchupNotInstalledUrl=null,i.prototype.sketchupErrorUrl=null,i.prototype.freeLicenseUrl=null,i.prototype.proLicenseUrl=null,i.prototype.tutorialUrl=null,i.prototype.keyboardShortcutsUrl=null,i.prototype.releaseNotesUrl=null,i.prototype.hideUserData=!1,i.prototype.useGeLogo=!0,i.prototype.dioramaDescriptionUrlBase=null,i.prototype.dioramaDefaultColor=4291281607,i.prototype.dioramaBlacklistUrl=null,i.prototype.clientOptions=null,i.prototype.fetchingOptions=null,i.prototype.timeMachineOptions=null,i.prototype.csiOptions=null,i.prototype.searchTab=u.emptyArray,i.prototype.cobrandInfo=u.emptyArray,i.prototype.validDatabase=u.emptyArray,i.prototype.configScript=u.emptyArray,i.prototype.deauthServerUrl=null,i.prototype.swoopParameters=null,i.prototype.bbsServerInfo=null,i.prototype.dataErrorServerInfo=null,i.prototype.planetaryDatabase=u.emptyArray,i.prototype.logServer=null,i.prototype.autopiaOptions=null,i.prototype.searchConfig=null,i.prototype.searchInfo=null,i.prototype.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",i.prototype.elevationProfileQueryDelay=500,i.prototype.proUpgradeUrl=null,i.prototype.earthCommunityUrl=null,i.prototype.googleMapsUrl=null,i.prototype.sharingUrl=null,i.prototype.privacyPolicyUrl=null,i.prototype.doGplusUserCheck=!1,i.prototype.rocktreeDataProto=null,i.prototype.filmstripConfig=u.emptyArray,i.prototype.showSigninButton=!1,i.prototype.proMeasureUpsellUrl=null,i.prototype.proPrintUpsellUrl=null,i.prototype.starDataProto=null,i.prototype.feedbackUrl=null,i.prototype.oauth2LoginUrl=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EndSnippetProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.model=n.keyhole.dbroot.PlanetModelProto.decode(r,r.uint32());break}case 2:{o.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.disableAuthentication=r.bool();break}case 4:{o.mfeDomains&&o.mfeDomains.length||(o.mfeDomains=[]),o.mfeDomains.push(n.keyhole.dbroot.MfeDomainFeaturesProto.decode(r,r.uint32()));break}case 5:{o.mfeLangParam=r.string();break}case 6:{o.adsUrlPatterns=r.string();break}case 7:{o.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.reverseGeocoderProtocolVersion=r.int32();break}case 9:{o.skyDatabaseIsAvailable=r.bool();break}case 10:{o.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 11:{o.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.numStartUpTips=r.int32();break}case 13:{o.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 51:{o.numProStartUpTips=r.int32();break}case 52:{o.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 64:{o.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 14:{o.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 15:{o.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 16:{o.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 17:{o.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 18:{o.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 19:{o.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 20:{o.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 22:{o.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 23:{o.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 24:{o.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 25:{o.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 48:{o.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 49:{o.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 50:{o.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 26:{o.hideUserData=r.bool();break}case 27:{o.useGeLogo=r.bool();break}case 28:{o.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 29:{o.dioramaDefaultColor=r.uint32();break}case 53:{o.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 30:{o.clientOptions=n.keyhole.dbroot.ClientOptionsProto.decode(r,r.uint32());break}case 31:{o.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.decode(r,r.uint32());break}case 32:{o.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.decode(r,r.uint32());break}case 33:{o.csiOptions=n.keyhole.dbroot.CSIOptionsProto.decode(r,r.uint32());break}case 34:{o.searchTab&&o.searchTab.length||(o.searchTab=[]),o.searchTab.push(n.keyhole.dbroot.SearchTabProto.decode(r,r.uint32()));break}case 35:{o.cobrandInfo&&o.cobrandInfo.length||(o.cobrandInfo=[]),o.cobrandInfo.push(n.keyhole.dbroot.CobrandProto.decode(r,r.uint32()));break}case 36:{o.validDatabase&&o.validDatabase.length||(o.validDatabase=[]),o.validDatabase.push(n.keyhole.dbroot.DatabaseDescriptionProto.decode(r,r.uint32()));break}case 37:{o.configScript&&o.configScript.length||(o.configScript=[]),o.configScript.push(n.keyhole.dbroot.ConfigScriptProto.decode(r,r.uint32()));break}case 38:{o.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 39:{o.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.decode(r,r.uint32());break}case 40:{o.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 41:{o.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 42:{o.planetaryDatabase&&o.planetaryDatabase.length||(o.planetaryDatabase=[]),o.planetaryDatabase.push(n.keyhole.dbroot.PlanetaryDatabaseProto.decode(r,r.uint32()));break}case 43:{o.logServer=n.keyhole.dbroot.LogServerProto.decode(r,r.uint32());break}case 44:{o.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.decode(r,r.uint32());break}case 54:{o.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.decode(r,r.uint32());break}case 45:{o.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.decode(r,r.uint32());break}case 46:{o.elevationServiceBaseUrl=r.string();break}case 47:{o.elevationProfileQueryDelay=r.int32();break}case 55:{o.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 56:{o.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 57:{o.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 58:{o.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 59:{o.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 60:{o.doGplusUserCheck=r.bool();break}case 61:{o.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.decode(r,r.uint32());break}case 62:{o.filmstripConfig&&o.filmstripConfig.length||(o.filmstripConfig=[]),o.filmstripConfig.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.decode(r,r.uint32()));break}case 63:{o.showSigninButton=r.bool();break}case 65:{o.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 66:{o.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 67:{o.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.decode(r,r.uint32());break}case 68:{o.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 69:{o.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.model!=null&&r.hasOwnProperty("model")){var t=n.keyhole.dbroot.PlanetModelProto.verify(r.model);if(t)return"model."+t}if(r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.authServerUrl);if(t)return"authServerUrl."+t}if(r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&typeof r.disableAuthentication!="boolean")return"disableAuthentication: boolean expected";if(r.mfeDomains!=null&&r.hasOwnProperty("mfeDomains")){if(!Array.isArray(r.mfeDomains))return"mfeDomains: array expected";for(var e=0;e<r.mfeDomains.length;++e){var t=n.keyhole.dbroot.MfeDomainFeaturesProto.verify(r.mfeDomains[e]);if(t)return"mfeDomains."+t}}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&!u.isString(r.mfeLangParam))return"mfeLangParam: string expected";if(r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&!u.isString(r.adsUrlPatterns))return"adsUrlPatterns: string expected";if(r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.reverseGeocoderUrl);if(t)return"reverseGeocoderUrl."+t}if(r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&!u.isInteger(r.reverseGeocoderProtocolVersion))return"reverseGeocoderProtocolVersion: integer expected";if(r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&typeof r.skyDatabaseIsAvailable!="boolean")return"skyDatabaseIsAvailable: boolean expected";if(r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.skyDatabaseUrl);if(t)return"skyDatabaseUrl."+t}if(r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.defaultWebPageIntlUrl);if(t)return"defaultWebPageIntlUrl."+t}if(r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&!u.isInteger(r.numStartUpTips))return"numStartUpTips: integer expected";if(r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startUpTipsUrl);if(t)return"startUpTipsUrl."+t}if(r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&!u.isInteger(r.numProStartUpTips))return"numProStartUpTips: integer expected";if(r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proStartUpTipsUrl);if(t)return"proStartUpTipsUrl."+t}if(r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startupTipsIntlUrl);if(t)return"startupTipsIntlUrl."+t}if(r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.userGuideIntlUrl);if(t)return"userGuideIntlUrl."+t}if(r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportCenterIntlUrl);if(t)return"supportCenterIntlUrl."+t}if(r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.businessListingIntlUrl);if(t)return"businessListingIntlUrl."+t}if(r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportAnswerIntlUrl);if(t)return"supportAnswerIntlUrl."+t}if(r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportTopicIntlUrl);if(t)return"supportTopicIntlUrl."+t}if(r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportRequestIntlUrl);if(t)return"supportRequestIntlUrl."+t}if(r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthIntlUrl);if(t)return"earthIntlUrl."+t}if(r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.addContentUrl);if(t)return"addContentUrl."+t}if(r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupNotInstalledUrl);if(t)return"sketchupNotInstalledUrl."+t}if(r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupErrorUrl);if(t)return"sketchupErrorUrl."+t}if(r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.freeLicenseUrl);if(t)return"freeLicenseUrl."+t}if(r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proLicenseUrl);if(t)return"proLicenseUrl."+t}if(r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tutorialUrl);if(t)return"tutorialUrl."+t}if(r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.keyboardShortcutsUrl);if(t)return"keyboardShortcutsUrl."+t}if(r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.releaseNotesUrl);if(t)return"releaseNotesUrl."+t}if(r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&typeof r.hideUserData!="boolean")return"hideUserData: boolean expected";if(r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&typeof r.useGeLogo!="boolean")return"useGeLogo: boolean expected";if(r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaDescriptionUrlBase);if(t)return"dioramaDescriptionUrlBase."+t}if(r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&!u.isInteger(r.dioramaDefaultColor))return"dioramaDefaultColor: integer expected";if(r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaBlacklistUrl);if(t)return"dioramaBlacklistUrl."+t}if(r.clientOptions!=null&&r.hasOwnProperty("clientOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.verify(r.clientOptions);if(t)return"clientOptions."+t}if(r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")){var t=n.keyhole.dbroot.FetchingOptionsProto.verify(r.fetchingOptions);if(t)return"fetchingOptions."+t}if(r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")){var t=n.keyhole.dbroot.TimeMachineOptionsProto.verify(r.timeMachineOptions);if(t)return"timeMachineOptions."+t}if(r.csiOptions!=null&&r.hasOwnProperty("csiOptions")){var t=n.keyhole.dbroot.CSIOptionsProto.verify(r.csiOptions);if(t)return"csiOptions."+t}if(r.searchTab!=null&&r.hasOwnProperty("searchTab")){if(!Array.isArray(r.searchTab))return"searchTab: array expected";for(var e=0;e<r.searchTab.length;++e){var t=n.keyhole.dbroot.SearchTabProto.verify(r.searchTab[e]);if(t)return"searchTab."+t}}if(r.cobrandInfo!=null&&r.hasOwnProperty("cobrandInfo")){if(!Array.isArray(r.cobrandInfo))return"cobrandInfo: array expected";for(var e=0;e<r.cobrandInfo.length;++e){var t=n.keyhole.dbroot.CobrandProto.verify(r.cobrandInfo[e]);if(t)return"cobrandInfo."+t}}if(r.validDatabase!=null&&r.hasOwnProperty("validDatabase")){if(!Array.isArray(r.validDatabase))return"validDatabase: array expected";for(var e=0;e<r.validDatabase.length;++e){var t=n.keyhole.dbroot.DatabaseDescriptionProto.verify(r.validDatabase[e]);if(t)return"validDatabase."+t}}if(r.configScript!=null&&r.hasOwnProperty("configScript")){if(!Array.isArray(r.configScript))return"configScript: array expected";for(var e=0;e<r.configScript.length;++e){var t=n.keyhole.dbroot.ConfigScriptProto.verify(r.configScript[e]);if(t)return"configScript."+t}}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.deauthServerUrl);if(t)return"deauthServerUrl."+t}if(r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")){var t=n.keyhole.dbroot.SwoopParamsProto.verify(r.swoopParameters);if(t)return"swoopParameters."+t}if(r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.bbsServerInfo);if(t)return"bbsServerInfo."+t}if(r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.dataErrorServerInfo);if(t)return"dataErrorServerInfo."+t}if(r.planetaryDatabase!=null&&r.hasOwnProperty("planetaryDatabase")){if(!Array.isArray(r.planetaryDatabase))return"planetaryDatabase: array expected";for(var e=0;e<r.planetaryDatabase.length;++e){var t=n.keyhole.dbroot.PlanetaryDatabaseProto.verify(r.planetaryDatabase[e]);if(t)return"planetaryDatabase."+t}}if(r.logServer!=null&&r.hasOwnProperty("logServer")){var t=n.keyhole.dbroot.LogServerProto.verify(r.logServer);if(t)return"logServer."+t}if(r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")){var t=n.keyhole.dbroot.AutopiaOptionsProto.verify(r.autopiaOptions);if(t)return"autopiaOptions."+t}if(r.searchConfig!=null&&r.hasOwnProperty("searchConfig")){var t=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.verify(r.searchConfig);if(t)return"searchConfig."+t}if(r.searchInfo!=null&&r.hasOwnProperty("searchInfo")){var t=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.verify(r.searchInfo);if(t)return"searchInfo."+t}if(r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&!u.isString(r.elevationServiceBaseUrl))return"elevationServiceBaseUrl: string expected";if(r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&!u.isInteger(r.elevationProfileQueryDelay))return"elevationProfileQueryDelay: integer expected";if(r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proUpgradeUrl);if(t)return"proUpgradeUrl."+t}if(r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthCommunityUrl);if(t)return"earthCommunityUrl."+t}if(r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.googleMapsUrl);if(t)return"googleMapsUrl."+t}if(r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sharingUrl);if(t)return"sharingUrl."+t}if(r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.privacyPolicyUrl);if(t)return"privacyPolicyUrl."+t}if(r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&typeof r.doGplusUserCheck!="boolean")return"doGplusUserCheck: boolean expected";if(r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.verify(r.rocktreeDataProto);if(t)return"rocktreeDataProto."+t}if(r.filmstripConfig!=null&&r.hasOwnProperty("filmstripConfig")){if(!Array.isArray(r.filmstripConfig))return"filmstripConfig: array expected";for(var e=0;e<r.filmstripConfig.length;++e){var t=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.verify(r.filmstripConfig[e]);if(t)return"filmstripConfig."+t}}if(r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&typeof r.showSigninButton!="boolean")return"showSigninButton: boolean expected";if(r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proMeasureUpsellUrl);if(t)return"proMeasureUpsellUrl."+t}if(r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proPrintUpsellUrl);if(t)return"proPrintUpsellUrl."+t}if(r.starDataProto!=null&&r.hasOwnProperty("starDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.StarDataProto.verify(r.starDataProto);if(t)return"starDataProto."+t}if(r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.feedbackUrl);if(t)return"feedbackUrl."+t}if(r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.oauth2LoginUrl);if(t)return"oauth2LoginUrl."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EndSnippetProto)return r;var t=new n.keyhole.dbroot.EndSnippetProto;if(r.model!=null){if(typeof r.model!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.model: object expected");t.model=n.keyhole.dbroot.PlanetModelProto.fromObject(r.model)}if(r.authServerUrl!=null){if(typeof r.authServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.authServerUrl: object expected");t.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.authServerUrl)}if(r.disableAuthentication!=null&&(t.disableAuthentication=!!r.disableAuthentication),r.mfeDomains){if(!Array.isArray(r.mfeDomains))throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: array expected");t.mfeDomains=[];for(var e=0;e<r.mfeDomains.length;++e){if(typeof r.mfeDomains[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: object expected");t.mfeDomains[e]=n.keyhole.dbroot.MfeDomainFeaturesProto.fromObject(r.mfeDomains[e])}}if(r.mfeLangParam!=null&&(t.mfeLangParam=String(r.mfeLangParam)),r.adsUrlPatterns!=null&&(t.adsUrlPatterns=String(r.adsUrlPatterns)),r.reverseGeocoderUrl!=null){if(typeof r.reverseGeocoderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.reverseGeocoderUrl: object expected");t.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.reverseGeocoderUrl)}if(r.reverseGeocoderProtocolVersion!=null&&(t.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion|0),r.skyDatabaseIsAvailable!=null&&(t.skyDatabaseIsAvailable=!!r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null){if(typeof r.skyDatabaseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.skyDatabaseUrl: object expected");t.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.skyDatabaseUrl)}if(r.defaultWebPageIntlUrl!=null){if(typeof r.defaultWebPageIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.defaultWebPageIntlUrl: object expected");t.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.defaultWebPageIntlUrl)}if(r.numStartUpTips!=null&&(t.numStartUpTips=r.numStartUpTips|0),r.startUpTipsUrl!=null){if(typeof r.startUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startUpTipsUrl: object expected");t.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startUpTipsUrl)}if(r.numProStartUpTips!=null&&(t.numProStartUpTips=r.numProStartUpTips|0),r.proStartUpTipsUrl!=null){if(typeof r.proStartUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proStartUpTipsUrl: object expected");t.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proStartUpTipsUrl)}if(r.startupTipsIntlUrl!=null){if(typeof r.startupTipsIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startupTipsIntlUrl: object expected");t.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startupTipsIntlUrl)}if(r.userGuideIntlUrl!=null){if(typeof r.userGuideIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.userGuideIntlUrl: object expected");t.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.userGuideIntlUrl)}if(r.supportCenterIntlUrl!=null){if(typeof r.supportCenterIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportCenterIntlUrl: object expected");t.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportCenterIntlUrl)}if(r.businessListingIntlUrl!=null){if(typeof r.businessListingIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.businessListingIntlUrl: object expected");t.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.businessListingIntlUrl)}if(r.supportAnswerIntlUrl!=null){if(typeof r.supportAnswerIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportAnswerIntlUrl: object expected");t.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportAnswerIntlUrl)}if(r.supportTopicIntlUrl!=null){if(typeof r.supportTopicIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportTopicIntlUrl: object expected");t.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportTopicIntlUrl)}if(r.supportRequestIntlUrl!=null){if(typeof r.supportRequestIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportRequestIntlUrl: object expected");t.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportRequestIntlUrl)}if(r.earthIntlUrl!=null){if(typeof r.earthIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthIntlUrl: object expected");t.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthIntlUrl)}if(r.addContentUrl!=null){if(typeof r.addContentUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.addContentUrl: object expected");t.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.addContentUrl)}if(r.sketchupNotInstalledUrl!=null){if(typeof r.sketchupNotInstalledUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupNotInstalledUrl: object expected");t.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupNotInstalledUrl)}if(r.sketchupErrorUrl!=null){if(typeof r.sketchupErrorUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupErrorUrl: object expected");t.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupErrorUrl)}if(r.freeLicenseUrl!=null){if(typeof r.freeLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.freeLicenseUrl: object expected");t.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.freeLicenseUrl)}if(r.proLicenseUrl!=null){if(typeof r.proLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proLicenseUrl: object expected");t.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proLicenseUrl)}if(r.tutorialUrl!=null){if(typeof r.tutorialUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.tutorialUrl: object expected");t.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tutorialUrl)}if(r.keyboardShortcutsUrl!=null){if(typeof r.keyboardShortcutsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.keyboardShortcutsUrl: object expected");t.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.keyboardShortcutsUrl)}if(r.releaseNotesUrl!=null){if(typeof r.releaseNotesUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.releaseNotesUrl: object expected");t.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.releaseNotesUrl)}if(r.hideUserData!=null&&(t.hideUserData=!!r.hideUserData),r.useGeLogo!=null&&(t.useGeLogo=!!r.useGeLogo),r.dioramaDescriptionUrlBase!=null){if(typeof r.dioramaDescriptionUrlBase!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaDescriptionUrlBase: object expected");t.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaDescriptionUrlBase)}if(r.dioramaDefaultColor!=null&&(t.dioramaDefaultColor=r.dioramaDefaultColor>>>0),r.dioramaBlacklistUrl!=null){if(typeof r.dioramaBlacklistUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaBlacklistUrl: object expected");t.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaBlacklistUrl)}if(r.clientOptions!=null){if(typeof r.clientOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.clientOptions: object expected");t.clientOptions=n.keyhole.dbroot.ClientOptionsProto.fromObject(r.clientOptions)}if(r.fetchingOptions!=null){if(typeof r.fetchingOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.fetchingOptions: object expected");t.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.fromObject(r.fetchingOptions)}if(r.timeMachineOptions!=null){if(typeof r.timeMachineOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.timeMachineOptions: object expected");t.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.fromObject(r.timeMachineOptions)}if(r.csiOptions!=null){if(typeof r.csiOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.csiOptions: object expected");t.csiOptions=n.keyhole.dbroot.CSIOptionsProto.fromObject(r.csiOptions)}if(r.searchTab){if(!Array.isArray(r.searchTab))throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: array expected");t.searchTab=[];for(var e=0;e<r.searchTab.length;++e){if(typeof r.searchTab[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: object expected");t.searchTab[e]=n.keyhole.dbroot.SearchTabProto.fromObject(r.searchTab[e])}}if(r.cobrandInfo){if(!Array.isArray(r.cobrandInfo))throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: array expected");t.cobrandInfo=[];for(var e=0;e<r.cobrandInfo.length;++e){if(typeof r.cobrandInfo[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: object expected");t.cobrandInfo[e]=n.keyhole.dbroot.CobrandProto.fromObject(r.cobrandInfo[e])}}if(r.validDatabase){if(!Array.isArray(r.validDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: array expected");t.validDatabase=[];for(var e=0;e<r.validDatabase.length;++e){if(typeof r.validDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: object expected");t.validDatabase[e]=n.keyhole.dbroot.DatabaseDescriptionProto.fromObject(r.validDatabase[e])}}if(r.configScript){if(!Array.isArray(r.configScript))throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: array expected");t.configScript=[];for(var e=0;e<r.configScript.length;++e){if(typeof r.configScript[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: object expected");t.configScript[e]=n.keyhole.dbroot.ConfigScriptProto.fromObject(r.configScript[e])}}if(r.deauthServerUrl!=null){if(typeof r.deauthServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.deauthServerUrl: object expected");t.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.deauthServerUrl)}if(r.swoopParameters!=null){if(typeof r.swoopParameters!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.swoopParameters: object expected");t.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.fromObject(r.swoopParameters)}if(r.bbsServerInfo!=null){if(typeof r.bbsServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.bbsServerInfo: object expected");t.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.bbsServerInfo)}if(r.dataErrorServerInfo!=null){if(typeof r.dataErrorServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dataErrorServerInfo: object expected");t.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.dataErrorServerInfo)}if(r.planetaryDatabase){if(!Array.isArray(r.planetaryDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: array expected");t.planetaryDatabase=[];for(var e=0;e<r.planetaryDatabase.length;++e){if(typeof r.planetaryDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: object expected");t.planetaryDatabase[e]=n.keyhole.dbroot.PlanetaryDatabaseProto.fromObject(r.planetaryDatabase[e])}}if(r.logServer!=null){if(typeof r.logServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.logServer: object expected");t.logServer=n.keyhole.dbroot.LogServerProto.fromObject(r.logServer)}if(r.autopiaOptions!=null){if(typeof r.autopiaOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.autopiaOptions: object expected");t.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.fromObject(r.autopiaOptions)}if(r.searchConfig!=null){if(typeof r.searchConfig!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchConfig: object expected");t.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.fromObject(r.searchConfig)}if(r.searchInfo!=null){if(typeof r.searchInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchInfo: object expected");t.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.fromObject(r.searchInfo)}if(r.elevationServiceBaseUrl!=null&&(t.elevationServiceBaseUrl=String(r.elevationServiceBaseUrl)),r.elevationProfileQueryDelay!=null&&(t.elevationProfileQueryDelay=r.elevationProfileQueryDelay|0),r.proUpgradeUrl!=null){if(typeof r.proUpgradeUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proUpgradeUrl: object expected");t.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proUpgradeUrl)}if(r.earthCommunityUrl!=null){if(typeof r.earthCommunityUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthCommunityUrl: object expected");t.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthCommunityUrl)}if(r.googleMapsUrl!=null){if(typeof r.googleMapsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.googleMapsUrl: object expected");t.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.googleMapsUrl)}if(r.sharingUrl!=null){if(typeof r.sharingUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sharingUrl: object expected");t.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sharingUrl)}if(r.privacyPolicyUrl!=null){if(typeof r.privacyPolicyUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.privacyPolicyUrl: object expected");t.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.privacyPolicyUrl)}if(r.doGplusUserCheck!=null&&(t.doGplusUserCheck=!!r.doGplusUserCheck),r.rocktreeDataProto!=null){if(typeof r.rocktreeDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.rocktreeDataProto: object expected");t.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.fromObject(r.rocktreeDataProto)}if(r.filmstripConfig){if(!Array.isArray(r.filmstripConfig))throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: array expected");t.filmstripConfig=[];for(var e=0;e<r.filmstripConfig.length;++e){if(typeof r.filmstripConfig[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: object expected");t.filmstripConfig[e]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fromObject(r.filmstripConfig[e])}}if(r.showSigninButton!=null&&(t.showSigninButton=!!r.showSigninButton),r.proMeasureUpsellUrl!=null){if(typeof r.proMeasureUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proMeasureUpsellUrl: object expected");t.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proMeasureUpsellUrl)}if(r.proPrintUpsellUrl!=null){if(typeof r.proPrintUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proPrintUpsellUrl: object expected");t.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proPrintUpsellUrl)}if(r.starDataProto!=null){if(typeof r.starDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.starDataProto: object expected");t.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.fromObject(r.starDataProto)}if(r.feedbackUrl!=null){if(typeof r.feedbackUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.feedbackUrl: object expected");t.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.feedbackUrl)}if(r.oauth2LoginUrl!=null){if(typeof r.oauth2LoginUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.oauth2LoginUrl: object expected");t.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.oauth2LoginUrl)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.mfeDomains=[],e.searchTab=[],e.cobrandInfo=[],e.validDatabase=[],e.configScript=[],e.planetaryDatabase=[],e.filmstripConfig=[]),t.defaults&&(e.model=null,e.authServerUrl=null,e.disableAuthentication=!1,e.mfeLangParam="hl=$5Bhl5D",e.adsUrlPatterns="",e.reverseGeocoderUrl=null,e.reverseGeocoderProtocolVersion=3,e.skyDatabaseIsAvailable=!0,e.skyDatabaseUrl=null,e.defaultWebPageIntlUrl=null,e.numStartUpTips=17,e.startUpTipsUrl=null,e.userGuideIntlUrl=null,e.supportCenterIntlUrl=null,e.businessListingIntlUrl=null,e.supportAnswerIntlUrl=null,e.supportTopicIntlUrl=null,e.supportRequestIntlUrl=null,e.earthIntlUrl=null,e.addContentUrl=null,e.sketchupNotInstalledUrl=null,e.sketchupErrorUrl=null,e.freeLicenseUrl=null,e.proLicenseUrl=null,e.hideUserData=!1,e.useGeLogo=!0,e.dioramaDescriptionUrlBase=null,e.dioramaDefaultColor=4291281607,e.clientOptions=null,e.fetchingOptions=null,e.timeMachineOptions=null,e.csiOptions=null,e.deauthServerUrl=null,e.swoopParameters=null,e.bbsServerInfo=null,e.dataErrorServerInfo=null,e.logServer=null,e.autopiaOptions=null,e.searchInfo=null,e.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",e.elevationProfileQueryDelay=500,e.tutorialUrl=null,e.keyboardShortcutsUrl=null,e.releaseNotesUrl=null,e.numProStartUpTips=0,e.proStartUpTipsUrl=null,e.dioramaBlacklistUrl=null,e.searchConfig=null,e.proUpgradeUrl=null,e.earthCommunityUrl=null,e.googleMapsUrl=null,e.sharingUrl=null,e.privacyPolicyUrl=null,e.doGplusUserCheck=!1,e.rocktreeDataProto=null,e.showSigninButton=!1,e.startupTipsIntlUrl=null,e.proMeasureUpsellUrl=null,e.proPrintUpsellUrl=null,e.starDataProto=null,e.feedbackUrl=null,e.oauth2LoginUrl=null),r.model!=null&&r.hasOwnProperty("model")&&(e.model=n.keyhole.dbroot.PlanetModelProto.toObject(r.model,t)),r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")&&(e.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.authServerUrl,t)),r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&(e.disableAuthentication=r.disableAuthentication),r.mfeDomains&&r.mfeDomains.length){e.mfeDomains=[];for(var o=0;o<r.mfeDomains.length;++o)e.mfeDomains[o]=n.keyhole.dbroot.MfeDomainFeaturesProto.toObject(r.mfeDomains[o],t)}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&(e.mfeLangParam=r.mfeLangParam),r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&(e.adsUrlPatterns=r.adsUrlPatterns),r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")&&(e.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.reverseGeocoderUrl,t)),r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&(e.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion),r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&(e.skyDatabaseIsAvailable=r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")&&(e.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.skyDatabaseUrl,t)),r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")&&(e.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.defaultWebPageIntlUrl,t)),r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&(e.numStartUpTips=r.numStartUpTips),r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")&&(e.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startUpTipsUrl,t)),r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")&&(e.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.userGuideIntlUrl,t)),r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")&&(e.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportCenterIntlUrl,t)),r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")&&(e.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.businessListingIntlUrl,t)),r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")&&(e.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportAnswerIntlUrl,t)),r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")&&(e.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportTopicIntlUrl,t)),r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")&&(e.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportRequestIntlUrl,t)),r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")&&(e.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthIntlUrl,t)),r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")&&(e.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.addContentUrl,t)),r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")&&(e.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupNotInstalledUrl,t)),r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")&&(e.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupErrorUrl,t)),r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")&&(e.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.freeLicenseUrl,t)),r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")&&(e.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proLicenseUrl,t)),r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&(e.hideUserData=r.hideUserData),r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&(e.useGeLogo=r.useGeLogo),r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")&&(e.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaDescriptionUrlBase,t)),r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&(e.dioramaDefaultColor=r.dioramaDefaultColor),r.clientOptions!=null&&r.hasOwnProperty("clientOptions")&&(e.clientOptions=n.keyhole.dbroot.ClientOptionsProto.toObject(r.clientOptions,t)),r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")&&(e.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.toObject(r.fetchingOptions,t)),r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")&&(e.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.toObject(r.timeMachineOptions,t)),r.csiOptions!=null&&r.hasOwnProperty("csiOptions")&&(e.csiOptions=n.keyhole.dbroot.CSIOptionsProto.toObject(r.csiOptions,t)),r.searchTab&&r.searchTab.length){e.searchTab=[];for(var o=0;o<r.searchTab.length;++o)e.searchTab[o]=n.keyhole.dbroot.SearchTabProto.toObject(r.searchTab[o],t)}if(r.cobrandInfo&&r.cobrandInfo.length){e.cobrandInfo=[];for(var o=0;o<r.cobrandInfo.length;++o)e.cobrandInfo[o]=n.keyhole.dbroot.CobrandProto.toObject(r.cobrandInfo[o],t)}if(r.validDatabase&&r.validDatabase.length){e.validDatabase=[];for(var o=0;o<r.validDatabase.length;++o)e.validDatabase[o]=n.keyhole.dbroot.DatabaseDescriptionProto.toObject(r.validDatabase[o],t)}if(r.configScript&&r.configScript.length){e.configScript=[];for(var o=0;o<r.configScript.length;++o)e.configScript[o]=n.keyhole.dbroot.ConfigScriptProto.toObject(r.configScript[o],t)}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")&&(e.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.deauthServerUrl,t)),r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")&&(e.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.toObject(r.swoopParameters,t)),r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")&&(e.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.bbsServerInfo,t)),r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")&&(e.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.dataErrorServerInfo,t)),r.planetaryDatabase&&r.planetaryDatabase.length){e.planetaryDatabase=[];for(var o=0;o<r.planetaryDatabase.length;++o)e.planetaryDatabase[o]=n.keyhole.dbroot.PlanetaryDatabaseProto.toObject(r.planetaryDatabase[o],t)}if(r.logServer!=null&&r.hasOwnProperty("logServer")&&(e.logServer=n.keyhole.dbroot.LogServerProto.toObject(r.logServer,t)),r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")&&(e.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.toObject(r.autopiaOptions,t)),r.searchInfo!=null&&r.hasOwnProperty("searchInfo")&&(e.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.toObject(r.searchInfo,t)),r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&(e.elevationServiceBaseUrl=r.elevationServiceBaseUrl),r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&(e.elevationProfileQueryDelay=r.elevationProfileQueryDelay),r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")&&(e.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tutorialUrl,t)),r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")&&(e.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.keyboardShortcutsUrl,t)),r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")&&(e.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.releaseNotesUrl,t)),r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&(e.numProStartUpTips=r.numProStartUpTips),r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")&&(e.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proStartUpTipsUrl,t)),r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")&&(e.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaBlacklistUrl,t)),r.searchConfig!=null&&r.hasOwnProperty("searchConfig")&&(e.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.toObject(r.searchConfig,t)),r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")&&(e.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proUpgradeUrl,t)),r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")&&(e.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthCommunityUrl,t)),r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")&&(e.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.googleMapsUrl,t)),r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")&&(e.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sharingUrl,t)),r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")&&(e.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.privacyPolicyUrl,t)),r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&(e.doGplusUserCheck=r.doGplusUserCheck),r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")&&(e.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.toObject(r.rocktreeDataProto,t)),r.filmstripConfig&&r.filmstripConfig.length){e.filmstripConfig=[];for(var o=0;o<r.filmstripConfig.length;++o)e.filmstripConfig[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.toObject(r.filmstripConfig[o],t)}return r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&(e.showSigninButton=r.showSigninButton),r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")&&(e.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startupTipsIntlUrl,t)),r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")&&(e.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proMeasureUpsellUrl,t)),r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")&&(e.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proPrintUpsellUrl,t)),r.starDataProto!=null&&r.hasOwnProperty("starDataProto")&&(e.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.toObject(r.starDataProto,t)),r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")&&(e.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.feedbackUrl,t)),r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")&&(e.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.oauth2LoginUrl,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EndSnippetProto"},i.SearchConfigProto=function(){function l(r){if(this.searchServer=[],this.oneboxService=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.searchServer=u.emptyArray,l.prototype.oneboxService=u.emptyArray,l.prototype.kmlSearchUrl=null,l.prototype.kmlRenderUrl=null,l.prototype.searchHistoryUrl=null,l.prototype.errorPageUrl=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.searchServer&&a.searchServer.length||(a.searchServer=[]),a.searchServer.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.decode(t,t.uint32()));break}case 2:{a.oneboxService&&a.oneboxService.length||(a.oneboxService=[]),a.oneboxService.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.decode(t,t.uint32()));break}case 3:{a.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.searchServer!=null&&t.hasOwnProperty("searchServer")){if(!Array.isArray(t.searchServer))return"searchServer: array expected";for(var e=0;e<t.searchServer.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.verify(t.searchServer[e]);if(o)return"searchServer."+o}}if(t.oneboxService!=null&&t.hasOwnProperty("oneboxService")){if(!Array.isArray(t.oneboxService))return"oneboxService: array expected";for(var e=0;e<t.oneboxService.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.verify(t.oneboxService[e]);if(o)return"oneboxService."+o}}if(t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlSearchUrl);if(o)return"kmlSearchUrl."+o}if(t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlRenderUrl);if(o)return"kmlRenderUrl."+o}if(t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.searchHistoryUrl);if(o)return"searchHistoryUrl."+o}if(t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.errorPageUrl);if(o)return"errorPageUrl."+o}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;if(t.searchServer){if(!Array.isArray(t.searchServer))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: array expected");e.searchServer=[];for(var o=0;o<t.searchServer.length;++o){if(typeof t.searchServer[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: object expected");e.searchServer[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.fromObject(t.searchServer[o])}}if(t.oneboxService){if(!Array.isArray(t.oneboxService))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: array expected");e.oneboxService=[];for(var o=0;o<t.oneboxService.length;++o){if(typeof t.oneboxService[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: object expected");e.oneboxService[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.fromObject(t.oneboxService[o])}}if(t.kmlSearchUrl!=null){if(typeof t.kmlSearchUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlSearchUrl: object expected");e.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlSearchUrl)}if(t.kmlRenderUrl!=null){if(typeof t.kmlRenderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlRenderUrl: object expected");e.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlRenderUrl)}if(t.searchHistoryUrl!=null){if(typeof t.searchHistoryUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchHistoryUrl: object expected");e.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.searchHistoryUrl)}if(t.errorPageUrl!=null){if(typeof t.errorPageUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.errorPageUrl: object expected");e.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.errorPageUrl)}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.searchServer=[],o.oneboxService=[]),e.defaults&&(o.kmlSearchUrl=null,o.kmlRenderUrl=null,o.errorPageUrl=null,o.searchHistoryUrl=null),t.searchServer&&t.searchServer.length){o.searchServer=[];for(var a=0;a<t.searchServer.length;++a)o.searchServer[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.toObject(t.searchServer[a],e)}if(t.oneboxService&&t.oneboxService.length){o.oneboxService=[];for(var a=0;a<t.oneboxService.length;++a)o.oneboxService[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.toObject(t.oneboxService[a],e)}return t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")&&(o.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlSearchUrl,e)),t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")&&(o.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlRenderUrl,e)),t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")&&(o.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.errorPageUrl,e)),t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")&&(o.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.searchHistoryUrl,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto"},l.SearchServer=function(){function r(t){if(this.suggestion=[],this.searchlet=[],t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.name=null,r.prototype.url=null,r.prototype.type=0,r.prototype.htmlTransformUrl=null,r.prototype.kmlTransformUrl=null,r.prototype.supplementalUi=null,r.prototype.suggestion=u.emptyArray,r.prototype.searchlet=u.emptyArray,r.prototype.requirements=null,r.prototype.suggestServer=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.name=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.url=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 3:{p.type=e.int32();break}case 4:{p.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 6:{p.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.decode(e,e.uint32());break}case 9:{p.suggestion&&p.suggestion.length||(p.suggestion=[]),p.suggestion.push(n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32()));break}case 7:{p.searchlet&&p.searchlet.length||(p.searchlet=[]),p.searchlet.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.decode(e,e.uint32()));break}case 8:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}case 10:{p.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.name!=null&&e.hasOwnProperty("name")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.name);if(o)return"name."+o}if(e.url!=null&&e.hasOwnProperty("url")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.url);if(o)return"url."+o}if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:break}if(e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.htmlTransformUrl);if(o)return"htmlTransformUrl."+o}if(e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlTransformUrl);if(o)return"kmlTransformUrl."+o}if(e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.verify(e.supplementalUi);if(o)return"supplementalUi."+o}if(e.suggestion!=null&&e.hasOwnProperty("suggestion")){if(!Array.isArray(e.suggestion))return"suggestion: array expected";for(var a=0;a<e.suggestion.length;++a){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestion[a]);if(o)return"suggestion."+o}}if(e.searchlet!=null&&e.hasOwnProperty("searchlet")){if(!Array.isArray(e.searchlet))return"searchlet: array expected";for(var a=0;a<e.searchlet.length;++a){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.verify(e.searchlet[a]);if(o)return"searchlet."+o}}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}if(e.suggestServer!=null&&e.hasOwnProperty("suggestServer")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestServer);if(o)return"suggestServer."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;if(e.name!=null){if(typeof e.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.name: object expected");o.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.name)}if(e.url!=null){if(typeof e.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.url: object expected");o.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.url)}switch(e.type){case"RESULT_TYPE_KML":case 0:o.type=0;break;case"RESULT_TYPE_XML":case 1:o.type=1;break}if(e.htmlTransformUrl!=null){if(typeof e.htmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.htmlTransformUrl: object expected");o.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.htmlTransformUrl)}if(e.kmlTransformUrl!=null){if(typeof e.kmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.kmlTransformUrl: object expected");o.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlTransformUrl)}if(e.supplementalUi!=null){if(typeof e.supplementalUi!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.supplementalUi: object expected");o.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.fromObject(e.supplementalUi)}if(e.suggestion){if(!Array.isArray(e.suggestion))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: array expected");o.suggestion=[];for(var a=0;a<e.suggestion.length;++a){if(typeof e.suggestion[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: object expected");o.suggestion[a]=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestion[a])}}if(e.searchlet){if(!Array.isArray(e.searchlet))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: array expected");o.searchlet=[];for(var a=0;a<e.searchlet.length;++a){if(typeof e.searchlet[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: object expected");o.searchlet[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.fromObject(e.searchlet[a])}}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}if(e.suggestServer!=null){if(typeof e.suggestServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestServer: object expected");o.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestServer)}return o},r.toObject=function(e,o){o||(o={});var a={};if((o.arrays||o.defaults)&&(a.searchlet=[],a.suggestion=[]),o.defaults&&(a.name=null,a.url=null,a.type=o.enums===String?"RESULT_TYPE_KML":0,a.htmlTransformUrl=null,a.kmlTransformUrl=null,a.supplementalUi=null,a.requirements=null,a.suggestServer=null),e.name!=null&&e.hasOwnProperty("name")&&(a.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.name,o)),e.url!=null&&e.hasOwnProperty("url")&&(a.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.url,o)),e.type!=null&&e.hasOwnProperty("type")&&(a.type=o.enums===String?n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.ResultType[e.type]:e.type),e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")&&(a.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.htmlTransformUrl,o)),e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")&&(a.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlTransformUrl,o)),e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")&&(a.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.toObject(e.supplementalUi,o)),e.searchlet&&e.searchlet.length){a.searchlet=[];for(var p=0;p<e.searchlet.length;++p)a.searchlet[p]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.toObject(e.searchlet[p],o)}if(e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),e.suggestion&&e.suggestion.length){a.suggestion=[];for(var p=0;p<e.suggestion.length;++p)a.suggestion[p]=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestion[p],o)}return e.suggestServer!=null&&e.hasOwnProperty("suggestServer")&&(a.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestServer,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer"},r.ResultType=function(){var t={},e=Object.create(t);return e[t[0]="RESULT_TYPE_KML"]=0,e[t[1]="RESULT_TYPE_XML"]=1,e}(),r.SupplementalUi=function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.label=null,t.prototype.height=160,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.label=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.height=o.int32();break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.label!=null&&o.hasOwnProperty("label")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.label);if(a)return"label."+a}return o.height!=null&&o.hasOwnProperty("height")&&!u.isInteger(o.height)?"height: integer expected":null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.label!=null){if(typeof o.label!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.label: object expected");a.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.label)}return o.height!=null&&(a.height=o.height|0),a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.label=null,p.height=160),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.label!=null&&o.hasOwnProperty("label")&&(p.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.label,a)),o.height!=null&&o.hasOwnProperty("height")&&(p.height=o.height),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi"},t}(),r.SearchletProto=function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.name=null,t.prototype.requirements=null,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.name=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.requirements=n.keyhole.dbroot.RequirementProto.decode(o,o.uint32());break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.name!=null&&o.hasOwnProperty("name")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.name);if(a)return"name."+a}if(o.requirements!=null&&o.hasOwnProperty("requirements")){var a=n.keyhole.dbroot.RequirementProto.verify(o.requirements);if(a)return"requirements."+a}return null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.name!=null){if(typeof o.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.name: object expected");a.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.name)}if(o.requirements!=null){if(typeof o.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.requirements: object expected");a.requirements=n.keyhole.dbroot.RequirementProto.fromObject(o.requirements)}return a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.name=null,p.requirements=null),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.name!=null&&o.hasOwnProperty("name")&&(p.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.name,a)),o.requirements!=null&&o.hasOwnProperty("requirements")&&(p.requirements=n.keyhole.dbroot.RequirementProto.toObject(o.requirements,a)),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto"},t}(),r}(),l.OneboxServiceProto=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.serviceUrl=null,r.prototype.requirements=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.serviceUrl);if(o)return"serviceUrl."+o}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;if(e.serviceUrl!=null){if(typeof e.serviceUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.serviceUrl: object expected");o.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.serviceUrl)}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.serviceUrl=null,a.requirements=null),e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")&&(a.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.serviceUrl,o)),e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto"},r}(),l}(),i.SearchInfoProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.defaultUrl="http://maps.google.com/maps",l.prototype.geocodeParam="q",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.defaultUrl=t.string();break}case 2:{a.geocodeParam=t.string();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&!u.isString(t.defaultUrl)?"defaultUrl: string expected":t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&!u.isString(t.geocodeParam)?"geocodeParam: string expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchInfoProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;return t.defaultUrl!=null&&(e.defaultUrl=String(t.defaultUrl)),t.geocodeParam!=null&&(e.geocodeParam=String(t.geocodeParam)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.defaultUrl="http://maps.google.com/maps",o.geocodeParam="q"),t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&(o.defaultUrl=t.defaultUrl),t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&(o.geocodeParam=t.geocodeParam),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchInfoProto"},l}(),i.RockTreeDataProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.RockTreeDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.RockTreeDataProto"},l}(),i.FilmstripConfigProto=function(){function l(r){if(this.imageryType=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.requirements=null,l.prototype.alleycatUrlTemplate=null,l.prototype.fallbackAlleycatUrlTemplate=null,l.prototype.metadataUrlTemplate=null,l.prototype.thumbnailUrlTemplate=null,l.prototype.kmlUrlTemplate=null,l.prototype.featuredToursUrl=null,l.prototype.enableViewportFallback=!1,l.prototype.viewportFallbackDistance=0,l.prototype.imageryType=u.emptyArray,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.requirements=n.keyhole.dbroot.RequirementProto.decode(t,t.uint32());break}case 2:{a.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 9:{a.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 3:{a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 7:{a.enableViewportFallback=t.bool();break}case 8:{a.viewportFallbackDistance=t.uint32();break}case 10:{a.imageryType&&a.imageryType.length||(a.imageryType=[]),a.imageryType.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.decode(t,t.uint32()));break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.requirements!=null&&t.hasOwnProperty("requirements")){var e=n.keyhole.dbroot.RequirementProto.verify(t.requirements);if(e)return"requirements."+e}if(t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.alleycatUrlTemplate);if(e)return"alleycatUrlTemplate."+e}if(t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.fallbackAlleycatUrlTemplate);if(e)return"fallbackAlleycatUrlTemplate."+e}if(t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.metadataUrlTemplate);if(e)return"metadataUrlTemplate."+e}if(t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.thumbnailUrlTemplate);if(e)return"thumbnailUrlTemplate."+e}if(t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlUrlTemplate);if(e)return"kmlUrlTemplate."+e}if(t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.featuredToursUrl);if(e)return"featuredToursUrl."+e}if(t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&typeof t.enableViewportFallback!="boolean")return"enableViewportFallback: boolean expected";if(t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&!u.isInteger(t.viewportFallbackDistance))return"viewportFallbackDistance: integer expected";if(t.imageryType!=null&&t.hasOwnProperty("imageryType")){if(!Array.isArray(t.imageryType))return"imageryType: array expected";for(var o=0;o<t.imageryType.length;++o){var e=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.verify(t.imageryType[o]);if(e)return"imageryType."+e}}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;if(t.requirements!=null){if(typeof t.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.requirements: object expected");e.requirements=n.keyhole.dbroot.RequirementProto.fromObject(t.requirements)}if(t.alleycatUrlTemplate!=null){if(typeof t.alleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.alleycatUrlTemplate: object expected");e.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.alleycatUrlTemplate)}if(t.fallbackAlleycatUrlTemplate!=null){if(typeof t.fallbackAlleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fallbackAlleycatUrlTemplate: object expected");e.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.fallbackAlleycatUrlTemplate)}if(t.metadataUrlTemplate!=null){if(typeof t.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.metadataUrlTemplate: object expected");e.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.metadataUrlTemplate)}if(t.thumbnailUrlTemplate!=null){if(typeof t.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.thumbnailUrlTemplate: object expected");e.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.thumbnailUrlTemplate)}if(t.kmlUrlTemplate!=null){if(typeof t.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.kmlUrlTemplate: object expected");e.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlUrlTemplate)}if(t.featuredToursUrl!=null){if(typeof t.featuredToursUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.featuredToursUrl: object expected");e.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.featuredToursUrl)}if(t.enableViewportFallback!=null&&(e.enableViewportFallback=!!t.enableViewportFallback),t.viewportFallbackDistance!=null&&(e.viewportFallbackDistance=t.viewportFallbackDistance>>>0),t.imageryType){if(!Array.isArray(t.imageryType))throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: array expected");e.imageryType=[];for(var o=0;o<t.imageryType.length;++o){if(typeof t.imageryType[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: object expected");e.imageryType[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.fromObject(t.imageryType[o])}}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.imageryType=[]),e.defaults&&(o.requirements=null,o.alleycatUrlTemplate=null,o.metadataUrlTemplate=null,o.thumbnailUrlTemplate=null,o.kmlUrlTemplate=null,o.featuredToursUrl=null,o.enableViewportFallback=!1,o.viewportFallbackDistance=0,o.fallbackAlleycatUrlTemplate=null),t.requirements!=null&&t.hasOwnProperty("requirements")&&(o.requirements=n.keyhole.dbroot.RequirementProto.toObject(t.requirements,e)),t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")&&(o.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.alleycatUrlTemplate,e)),t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")&&(o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.metadataUrlTemplate,e)),t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")&&(o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.thumbnailUrlTemplate,e)),t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")&&(o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlUrlTemplate,e)),t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")&&(o.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.featuredToursUrl,e)),t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&(o.enableViewportFallback=t.enableViewportFallback),t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&(o.viewportFallbackDistance=t.viewportFallbackDistance),t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")&&(o.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.fallbackAlleycatUrlTemplate,e)),t.imageryType&&t.imageryType.length){o.imageryType=[];for(var a=0;a<t.imageryType.length;++a)o.imageryType[a]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.toObject(t.imageryType[a],e)}return o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto"},l.AlleycatImageryTypeProto=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.imageryTypeId=0,r.prototype.imageryTypeLabel="",r.prototype.metadataUrlTemplate=null,r.prototype.thumbnailUrlTemplate=null,r.prototype.kmlUrlTemplate=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.imageryTypeId=e.int32();break}case 2:{p.imageryTypeLabel=e.string();break}case 3:{p.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 4:{p.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&!u.isInteger(e.imageryTypeId))return"imageryTypeId: integer expected";if(e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&!u.isString(e.imageryTypeLabel))return"imageryTypeLabel: string expected";if(e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.metadataUrlTemplate);if(o)return"metadataUrlTemplate."+o}if(e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.thumbnailUrlTemplate);if(o)return"thumbnailUrlTemplate."+o}if(e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlUrlTemplate);if(o)return"kmlUrlTemplate."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;if(e.imageryTypeId!=null&&(o.imageryTypeId=e.imageryTypeId|0),e.imageryTypeLabel!=null&&(o.imageryTypeLabel=String(e.imageryTypeLabel)),e.metadataUrlTemplate!=null){if(typeof e.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.metadataUrlTemplate: object expected");o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.metadataUrlTemplate)}if(e.thumbnailUrlTemplate!=null){if(typeof e.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.thumbnailUrlTemplate: object expected");o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.thumbnailUrlTemplate)}if(e.kmlUrlTemplate!=null){if(typeof e.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.kmlUrlTemplate: object expected");o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlUrlTemplate)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.imageryTypeId=0,a.imageryTypeLabel="",a.metadataUrlTemplate=null,a.thumbnailUrlTemplate=null,a.kmlUrlTemplate=null),e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&(a.imageryTypeId=e.imageryTypeId),e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&(a.imageryTypeLabel=e.imageryTypeLabel),e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")&&(a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.metadataUrlTemplate,o)),e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")&&(a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.thumbnailUrlTemplate,o)),e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")&&(a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlUrlTemplate,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto"},r}(),l}(),i.StarDataProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.StarDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.StarDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.StarDataProto"},l}(),i}(),c.DbRootRefProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url="",i.prototype.isCritical=!1,i.prototype.requirements=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootRefProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 2:{o.url=r.string();break}case 1:{o.isCritical=r.bool();break}case 3:{o.requirements=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.url))return"url: string expected";if(r.isCritical!=null&&r.hasOwnProperty("isCritical")&&typeof r.isCritical!="boolean")return"isCritical: boolean expected";if(r.requirements!=null&&r.hasOwnProperty("requirements")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirements);if(t)return"requirements."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootRefProto)return r;var t=new n.keyhole.dbroot.DbRootRefProto;if(r.url!=null&&(t.url=String(r.url)),r.isCritical!=null&&(t.isCritical=!!r.isCritical),r.requirements!=null){if(typeof r.requirements!="object")throw TypeError(".keyhole.dbroot.DbRootRefProto.requirements: object expected");t.requirements=n.keyhole.dbroot.RequirementProto.fromObject(r.requirements)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isCritical=!1,e.url="",e.requirements=null),r.isCritical!=null&&r.hasOwnProperty("isCritical")&&(e.isCritical=r.isCritical),r.url!=null&&r.hasOwnProperty("url")&&(e.url=r.url),r.requirements!=null&&r.hasOwnProperty("requirements")&&(e.requirements=n.keyhole.dbroot.RequirementProto.toObject(r.requirements,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootRefProto"},i}(),c.DatabaseVersionProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.quadtreeVersion=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseVersionProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.quadtreeVersion=r.uint32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("quadtreeVersion"))throw u.ProtocolError("missing required 'quadtreeVersion'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.quadtreeVersion)?null:"quadtreeVersion: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseVersionProto)return r;var t=new n.keyhole.dbroot.DatabaseVersionProto;return r.quadtreeVersion!=null&&(t.quadtreeVersion=r.quadtreeVersion>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.quadtreeVersion=0),r.quadtreeVersion!=null&&r.hasOwnProperty("quadtreeVersion")&&(e.quadtreeVersion=r.quadtreeVersion),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseVersionProto"},i}(),c.DbRootProto=function(){function i(l){if(this.providerInfo=[],this.nestedFeature=[],this.styleAttribute=[],this.styleMap=[],this.translationEntry=[],this.dbrootReference=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.imageryPresent=!0,i.prototype.protoImagery=!1,i.prototype.terrainPresent=!1,i.prototype.providerInfo=u.emptyArray,i.prototype.nestedFeature=u.emptyArray,i.prototype.styleAttribute=u.emptyArray,i.prototype.styleMap=u.emptyArray,i.prototype.endSnippet=null,i.prototype.translationEntry=u.emptyArray,i.prototype.language="en",i.prototype.version=5,i.prototype.dbrootReference=u.emptyArray,i.prototype.databaseVersion=null,i.prototype.refreshTimeout=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 15:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 1:{o.imageryPresent=r.bool();break}case 14:{o.protoImagery=r.bool();break}case 2:{o.terrainPresent=r.bool();break}case 3:{o.providerInfo&&o.providerInfo.length||(o.providerInfo=[]),o.providerInfo.push(n.keyhole.dbroot.ProviderInfoProto.decode(r,r.uint32()));break}case 4:{o.nestedFeature&&o.nestedFeature.length||(o.nestedFeature=[]),o.nestedFeature.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 5:{o.styleAttribute&&o.styleAttribute.length||(o.styleAttribute=[]),o.styleAttribute.push(n.keyhole.dbroot.StyleAttributeProto.decode(r,r.uint32()));break}case 6:{o.styleMap&&o.styleMap.length||(o.styleMap=[]),o.styleMap.push(n.keyhole.dbroot.StyleMapProto.decode(r,r.uint32()));break}case 7:{o.endSnippet=n.keyhole.dbroot.EndSnippetProto.decode(r,r.uint32());break}case 8:{o.translationEntry&&o.translationEntry.length||(o.translationEntry=[]),o.translationEntry.push(n.keyhole.dbroot.StringEntryProto.decode(r,r.uint32()));break}case 9:{o.language=r.string();break}case 10:{o.version=r.int32();break}case 11:{o.dbrootReference&&o.dbrootReference.length||(o.dbrootReference=[]),o.dbrootReference.push(n.keyhole.dbroot.DbRootRefProto.decode(r,r.uint32()));break}case 13:{o.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.decode(r,r.uint32());break}case 16:{o.refreshTimeout=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}if(r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&typeof r.imageryPresent!="boolean")return"imageryPresent: boolean expected";if(r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&typeof r.protoImagery!="boolean")return"protoImagery: boolean expected";if(r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&typeof r.terrainPresent!="boolean")return"terrainPresent: boolean expected";if(r.providerInfo!=null&&r.hasOwnProperty("providerInfo")){if(!Array.isArray(r.providerInfo))return"providerInfo: array expected";for(var e=0;e<r.providerInfo.length;++e){var t=n.keyhole.dbroot.ProviderInfoProto.verify(r.providerInfo[e]);if(t)return"providerInfo."+t}}if(r.nestedFeature!=null&&r.hasOwnProperty("nestedFeature")){if(!Array.isArray(r.nestedFeature))return"nestedFeature: array expected";for(var e=0;e<r.nestedFeature.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.nestedFeature[e]);if(t)return"nestedFeature."+t}}if(r.styleAttribute!=null&&r.hasOwnProperty("styleAttribute")){if(!Array.isArray(r.styleAttribute))return"styleAttribute: array expected";for(var e=0;e<r.styleAttribute.length;++e){var t=n.keyhole.dbroot.StyleAttributeProto.verify(r.styleAttribute[e]);if(t)return"styleAttribute."+t}}if(r.styleMap!=null&&r.hasOwnProperty("styleMap")){if(!Array.isArray(r.styleMap))return"styleMap: array expected";for(var e=0;e<r.styleMap.length;++e){var t=n.keyhole.dbroot.StyleMapProto.verify(r.styleMap[e]);if(t)return"styleMap."+t}}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")){var t=n.keyhole.dbroot.EndSnippetProto.verify(r.endSnippet);if(t)return"endSnippet."+t}if(r.translationEntry!=null&&r.hasOwnProperty("translationEntry")){if(!Array.isArray(r.translationEntry))return"translationEntry: array expected";for(var e=0;e<r.translationEntry.length;++e){var t=n.keyhole.dbroot.StringEntryProto.verify(r.translationEntry[e]);if(t)return"translationEntry."+t}}if(r.language!=null&&r.hasOwnProperty("language")&&!u.isString(r.language))return"language: string expected";if(r.version!=null&&r.hasOwnProperty("version")&&!u.isInteger(r.version))return"version: integer expected";if(r.dbrootReference!=null&&r.hasOwnProperty("dbrootReference")){if(!Array.isArray(r.dbrootReference))return"dbrootReference: array expected";for(var e=0;e<r.dbrootReference.length;++e){var t=n.keyhole.dbroot.DbRootRefProto.verify(r.dbrootReference[e]);if(t)return"dbrootReference."+t}}if(r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")){var t=n.keyhole.dbroot.DatabaseVersionProto.verify(r.databaseVersion);if(t)return"databaseVersion."+t}return r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&!u.isInteger(r.refreshTimeout)?"refreshTimeout: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootProto)return r;var t=new n.keyhole.dbroot.DbRootProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}if(r.imageryPresent!=null&&(t.imageryPresent=!!r.imageryPresent),r.protoImagery!=null&&(t.protoImagery=!!r.protoImagery),r.terrainPresent!=null&&(t.terrainPresent=!!r.terrainPresent),r.providerInfo){if(!Array.isArray(r.providerInfo))throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: array expected");t.providerInfo=[];for(var e=0;e<r.providerInfo.length;++e){if(typeof r.providerInfo[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: object expected");t.providerInfo[e]=n.keyhole.dbroot.ProviderInfoProto.fromObject(r.providerInfo[e])}}if(r.nestedFeature){if(!Array.isArray(r.nestedFeature))throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: array expected");t.nestedFeature=[];for(var e=0;e<r.nestedFeature.length;++e){if(typeof r.nestedFeature[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: object expected");t.nestedFeature[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.nestedFeature[e])}}if(r.styleAttribute){if(!Array.isArray(r.styleAttribute))throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: array expected");t.styleAttribute=[];for(var e=0;e<r.styleAttribute.length;++e){if(typeof r.styleAttribute[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: object expected");t.styleAttribute[e]=n.keyhole.dbroot.StyleAttributeProto.fromObject(r.styleAttribute[e])}}if(r.styleMap){if(!Array.isArray(r.styleMap))throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: array expected");t.styleMap=[];for(var e=0;e<r.styleMap.length;++e){if(typeof r.styleMap[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: object expected");t.styleMap[e]=n.keyhole.dbroot.StyleMapProto.fromObject(r.styleMap[e])}}if(r.endSnippet!=null){if(typeof r.endSnippet!="object")throw TypeError(".keyhole.dbroot.DbRootProto.endSnippet: object expected");t.endSnippet=n.keyhole.dbroot.EndSnippetProto.fromObject(r.endSnippet)}if(r.translationEntry){if(!Array.isArray(r.translationEntry))throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: array expected");t.translationEntry=[];for(var e=0;e<r.translationEntry.length;++e){if(typeof r.translationEntry[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: object expected");t.translationEntry[e]=n.keyhole.dbroot.StringEntryProto.fromObject(r.translationEntry[e])}}if(r.language!=null&&(t.language=String(r.language)),r.version!=null&&(t.version=r.version|0),r.dbrootReference){if(!Array.isArray(r.dbrootReference))throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: array expected");t.dbrootReference=[];for(var e=0;e<r.dbrootReference.length;++e){if(typeof r.dbrootReference[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: object expected");t.dbrootReference[e]=n.keyhole.dbroot.DbRootRefProto.fromObject(r.dbrootReference[e])}}if(r.databaseVersion!=null){if(typeof r.databaseVersion!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseVersion: object expected");t.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.fromObject(r.databaseVersion)}return r.refreshTimeout!=null&&(t.refreshTimeout=r.refreshTimeout|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.providerInfo=[],e.nestedFeature=[],e.styleAttribute=[],e.styleMap=[],e.translationEntry=[],e.dbrootReference=[]),t.defaults&&(e.imageryPresent=!0,e.terrainPresent=!1,e.endSnippet=null,e.language="en",e.version=5,e.databaseVersion=null,e.protoImagery=!1,e.databaseName=null,e.refreshTimeout=0),r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&(e.imageryPresent=r.imageryPresent),r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&(e.terrainPresent=r.terrainPresent),r.providerInfo&&r.providerInfo.length){e.providerInfo=[];for(var o=0;o<r.providerInfo.length;++o)e.providerInfo[o]=n.keyhole.dbroot.ProviderInfoProto.toObject(r.providerInfo[o],t)}if(r.nestedFeature&&r.nestedFeature.length){e.nestedFeature=[];for(var o=0;o<r.nestedFeature.length;++o)e.nestedFeature[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.nestedFeature[o],t)}if(r.styleAttribute&&r.styleAttribute.length){e.styleAttribute=[];for(var o=0;o<r.styleAttribute.length;++o)e.styleAttribute[o]=n.keyhole.dbroot.StyleAttributeProto.toObject(r.styleAttribute[o],t)}if(r.styleMap&&r.styleMap.length){e.styleMap=[];for(var o=0;o<r.styleMap.length;++o)e.styleMap[o]=n.keyhole.dbroot.StyleMapProto.toObject(r.styleMap[o],t)}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")&&(e.endSnippet=n.keyhole.dbroot.EndSnippetProto.toObject(r.endSnippet,t)),r.translationEntry&&r.translationEntry.length){e.translationEntry=[];for(var o=0;o<r.translationEntry.length;++o)e.translationEntry[o]=n.keyhole.dbroot.StringEntryProto.toObject(r.translationEntry[o],t)}if(r.language!=null&&r.hasOwnProperty("language")&&(e.language=r.language),r.version!=null&&r.hasOwnProperty("version")&&(e.version=r.version),r.dbrootReference&&r.dbrootReference.length){e.dbrootReference=[];for(var o=0;o<r.dbrootReference.length;++o)e.dbrootReference[o]=n.keyhole.dbroot.DbRootRefProto.toObject(r.dbrootReference[o],t)}return r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")&&(e.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.toObject(r.databaseVersion,t)),r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&(e.protoImagery=r.protoImagery),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&(e.refreshTimeout=r.refreshTimeout),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootProto"},i}(),c.EncryptedDbRootProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.encryptionType=0,i.prototype.encryptionData=u.newBuffer([]),i.prototype.dbrootData=u.newBuffer([]),i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EncryptedDbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.encryptionType=r.int32();break}case 2:{o.encryptionData=r.bytes();break}case 3:{o.dbrootData=r.bytes();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.encryptionType!=null&&r.hasOwnProperty("encryptionType"))switch(r.encryptionType){default:return"encryptionType: enum value expected";case 0:break}return r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&!(r.encryptionData&&typeof r.encryptionData.length=="number"||u.isString(r.encryptionData))?"encryptionData: buffer expected":r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&!(r.dbrootData&&typeof r.dbrootData.length=="number"||u.isString(r.dbrootData))?"dbrootData: buffer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EncryptedDbRootProto)return r;var t=new n.keyhole.dbroot.EncryptedDbRootProto;switch(r.encryptionType){case"ENCRYPTION_XOR":case 0:t.encryptionType=0;break}return r.encryptionData!=null&&(typeof r.encryptionData=="string"?u.base64.decode(r.encryptionData,t.encryptionData=u.newBuffer(u.base64.length(r.encryptionData)),0):r.encryptionData.length>=0&&(t.encryptionData=r.encryptionData)),r.dbrootData!=null&&(typeof r.dbrootData=="string"?u.base64.decode(r.dbrootData,t.dbrootData=u.newBuffer(u.base64.length(r.dbrootData)),0):r.dbrootData.length>=0&&(t.dbrootData=r.dbrootData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.encryptionType=t.enums===String?"ENCRYPTION_XOR":0,t.bytes===String?e.encryptionData="":(e.encryptionData=[],t.bytes!==Array&&(e.encryptionData=u.newBuffer(e.encryptionData))),t.bytes===String?e.dbrootData="":(e.dbrootData=[],t.bytes!==Array&&(e.dbrootData=u.newBuffer(e.dbrootData)))),r.encryptionType!=null&&r.hasOwnProperty("encryptionType")&&(e.encryptionType=t.enums===String?n.keyhole.dbroot.EncryptedDbRootProto.EncryptionType[r.encryptionType]:r.encryptionType),r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&(e.encryptionData=t.bytes===String?u.base64.encode(r.encryptionData,0,r.encryptionData.length):t.bytes===Array?Array.prototype.slice.call(r.encryptionData):r.encryptionData),r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&(e.dbrootData=t.bytes===String?u.base64.encode(r.dbrootData,0,r.dbrootData.length):t.bytes===Array?Array.prototype.slice.call(r.dbrootData):r.dbrootData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EncryptedDbRootProto"},i.EncryptionType=function(){var l={},r=Object.create(l);return r[l[0]="ENCRYPTION_XOR"]=0,r}(),i}(),c}(),b}(),n.keyhole.dbroot};})(); diff --git a/libs/cesium/1.111/Widgets/Animation/Animation.css b/libs/cesium/1.111/Widgets/Animation/Animation.css new file mode 100644 index 000000000..0f18c52e2 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Animation/Animation.css @@ -0,0 +1,127 @@ +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} diff --git a/libs/cesium/1.111/Widgets/Animation/lighter.css b/libs/cesium/1.111/Widgets/Animation/lighter.css new file mode 100644 index 000000000..466ddb603 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Animation/lighter.css @@ -0,0 +1,70 @@ +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} diff --git a/libs/cesium/1.111/Widgets/BaseLayerPicker/BaseLayerPicker.css b/libs/cesium/1.111/Widgets/BaseLayerPicker/BaseLayerPicker.css new file mode 100644 index 000000000..ac37d16e0 --- /dev/null +++ b/libs/cesium/1.111/Widgets/BaseLayerPicker/BaseLayerPicker.css @@ -0,0 +1,108 @@ +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} diff --git a/libs/cesium/1.111/Widgets/BaseLayerPicker/lighter.css b/libs/cesium/1.111/Widgets/BaseLayerPicker/lighter.css new file mode 100644 index 000000000..d43cd3d96 --- /dev/null +++ b/libs/cesium/1.111/Widgets/BaseLayerPicker/lighter.css @@ -0,0 +1,22 @@ +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} diff --git a/libs/cesium/1.111/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css b/libs/cesium/1.111/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css new file mode 100644 index 000000000..5b6295b40 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css @@ -0,0 +1,102 @@ +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} diff --git a/libs/cesium/1.111/Widgets/CesiumInspector/CesiumInspector.css b/libs/cesium/1.111/Widgets/CesiumInspector/CesiumInspector.css new file mode 100644 index 000000000..aeb7700e9 --- /dev/null +++ b/libs/cesium/1.111/Widgets/CesiumInspector/CesiumInspector.css @@ -0,0 +1,113 @@ +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} diff --git a/libs/cesium/1.111/Widgets/CesiumWidget/CesiumWidget.css b/libs/cesium/1.111/Widgets/CesiumWidget/CesiumWidget.css new file mode 100644 index 000000000..da3bde29f --- /dev/null +++ b/libs/cesium/1.111/Widgets/CesiumWidget/CesiumWidget.css @@ -0,0 +1,124 @@ +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} + +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} + +.cesium-widget-credits a, +.cesium-widget-credits a:visited { + color: #fff; +} + +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} + +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} + +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} + +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} + +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} + +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} + +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} + +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} + +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} + +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} diff --git a/libs/cesium/1.111/Widgets/CesiumWidget/lighter.css b/libs/cesium/1.111/Widgets/CesiumWidget/lighter.css new file mode 100644 index 000000000..899e024cb --- /dev/null +++ b/libs/cesium/1.111/Widgets/CesiumWidget/lighter.css @@ -0,0 +1,14 @@ +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} + +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} + +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} diff --git a/libs/cesium/1.111/Widgets/FullscreenButton/FullscreenButton.css b/libs/cesium/1.111/Widgets/FullscreenButton/FullscreenButton.css new file mode 100644 index 000000000..fdb0a411a --- /dev/null +++ b/libs/cesium/1.111/Widgets/FullscreenButton/FullscreenButton.css @@ -0,0 +1,8 @@ +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/libs/cesium/1.111/Widgets/Geocoder/Geocoder.css b/libs/cesium/1.111/Widgets/Geocoder/Geocoder.css new file mode 100644 index 000000000..a0b478fc4 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Geocoder/Geocoder.css @@ -0,0 +1,70 @@ +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} diff --git a/libs/cesium/1.111/Widgets/Geocoder/lighter.css b/libs/cesium/1.111/Widgets/Geocoder/lighter.css new file mode 100644 index 000000000..b15c18924 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Geocoder/lighter.css @@ -0,0 +1,17 @@ +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png new file mode 100644 index 000000000..bd5976d24 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png new file mode 100644 index 000000000..46ffe9c6f Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png new file mode 100644 index 000000000..286f3a057 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingAerial.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingAerial.png new file mode 100644 index 000000000..a78a154b1 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingAerial.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingAerialLabels.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingAerialLabels.png new file mode 100644 index 000000000..4cafd40f9 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingAerialLabels.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingRoads.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingRoads.png new file mode 100644 index 000000000..282d6ada8 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/bingRoads.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/blueMarble.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/blueMarble.png new file mode 100644 index 000000000..b8b5b7b1a Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/blueMarble.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/earthAtNight.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/earthAtNight.png new file mode 100644 index 000000000..45e0fc7b8 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/earthAtNight.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png new file mode 100644 index 000000000..f2eba4106 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxSatellite.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxSatellite.png new file mode 100644 index 000000000..30ee6dbd5 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxSatellite.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxStreets.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxStreets.png new file mode 100644 index 000000000..6eef1fc3a Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxStreets.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxTerrain.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxTerrain.png new file mode 100644 index 000000000..e6bc35513 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/mapboxTerrain.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/naturalEarthII.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/naturalEarthII.png new file mode 100644 index 000000000..50271c79a Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/naturalEarthII.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/openStreetMap.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/openStreetMap.png new file mode 100644 index 000000000..84acdb809 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/openStreetMap.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/sentinel-2.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/sentinel-2.png new file mode 100644 index 000000000..775fb38ce Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/sentinel-2.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png new file mode 100644 index 000000000..0520e17c7 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png new file mode 100644 index 000000000..1546494ca Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/stamenToner.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stamenToner.png new file mode 100644 index 000000000..af894096c Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stamenToner.png differ diff --git a/libs/cesium/1.111/Widgets/Images/ImageryProviders/stamenWatercolor.png b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stamenWatercolor.png new file mode 100644 index 000000000..552130eb5 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/ImageryProviders/stamenWatercolor.png differ diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/Mouse.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/Mouse.svg new file mode 100644 index 000000000..7fae028c0 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/Mouse.svg @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="29.6875" + height="40.625095" + viewBox="0 0 29.6875 40.625095" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Mouse.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="747" + inkscape:window-height="596" + id="namedview17" + showgrid="false" + inkscape:zoom="1.84375" + inkscape:cx="-37.919388" + inkscape:cy="92.305679" + inkscape:window-x="266" + inkscape:window-y="72" + inkscape:window-maximized="0" + inkscape:current-layer="Layer_1" + inkscape:snap-center="false" + inkscape:snap-page="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3" + transform="translate(-17.15625,-19.531154)"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + d="M 31.9335,20.041 C 24.639,20.034 17.653,20.318 17.653,44.617 c 0,10.951 8.799,15.032 14.347,15.032 5.545,0 14.347,-4.081 14.347,-15.032 0,-24.27 -7.119,-24.569 -14.4135,-24.576 z m 0.7515,1.358 c 5.643,0.012 10.927,0.236 12.063,16.153 -3.86,1.805 -7.916,2.765 -12.063,2.86 l 0,-2.966 c 0.845,-0.162 1.481,-0.909 1.481,-1.782 l 0,-8.956 c 0,-0.876 -0.637,-1.621 -1.481,-1.784 z m -1.027,4.855 0.685,0 c 0.249,0 0.453,0.205 0.453,0.454 l 0,8.956 c 0,0.249 -0.204,0.449 -0.453,0.449 l -0.685,0 c -0.249,0 -0.452,-0.2 -0.452,-0.449 l 0,-8.956 c 0,-0.249 0.203,-0.454 0.452,-0.454 z m -0.345,-4.855 0,3.525 c -0.845,0.163 -1.479,0.91 -1.479,1.784 l 0,8.956 c 0,0.873 0.634,1.62 1.479,1.782 l 0,2.966 C 25.002,40.264 20.408,38.16 19.25,37.573 20.381,21.633 25.668,21.411 31.313,21.399 z M 32,58.274 c -5.016,0 -12.976,-3.707 -12.976,-13.658 0,-1.983 0.045,-3.853 0.134,-5.563 2.003,0.929 6.696,2.74 12.868,2.74 4.394,0 8.704,-0.934 12.813,-2.771 0.089,1.718 0.135,3.6 0.135,5.595 0,9.95 -7.958,13.657 -12.974,13.657 z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssscccccssccsssssssssccssccccsscscss" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644;stroke-opacity:1" + d="M 11.584306,20.532528 C 9.1265112,20.247533 6.2927846,19.555647 4.1047676,18.706316 c -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.5226316 4.304477,-8.0618496 9.1542404,-8.0618496 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.5275241 -0.422157,5.7217066 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" + inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseLeft.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseLeft.svg new file mode 100644 index 000000000..0c49c15fb --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseLeft.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseLeft.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="104" + inkscape:window-y="136" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#66CCFF;stroke:#66CCFF;stroke-width:0.27118643999999997" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" + inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseMiddle.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseMiddle.svg new file mode 100644 index 000000000..9dd533d58 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseMiddle.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseMiddle.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /><path + style="fill:#ffd800;stroke:#ffd800;stroke-width:0.33870965" + d="m 31.356243,35.809264 c -0.164314,-0.103856 -0.298753,-2.215682 -0.298753,-4.692945 0,-3.956026 0.08644,-4.52508 0.710296,-4.676395 0.390663,-0.09475 0.87474,-0.06834 1.075729,0.0587 0.200991,0.127038 0.312719,2.28036 0.248288,4.785159 -0.09927,3.859122 -0.217853,4.566401 -0.776977,4.634247 -0.362909,0.04404 -0.79427,-0.0049 -0.958583,-0.108765 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /></g> +</svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseRight.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseRight.svg new file mode 100644 index 000000000..2662ad18d --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/MouseRight.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseRight.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="32" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#65FD00;stroke:#65FD00;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /></g> +</svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/Touch.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/Touch.svg new file mode 100644 index 000000000..e682b3019 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/Touch.svg @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="128.25087" + viewBox="0 0 76.664283 128.25086" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Touch.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.07794217" + inkscape:cy="94.239301" + inkscape:window-x="1529" + inkscape:window-y="186" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-5.1661327)"> + + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +</g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +</svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchDrag.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchDrag.svg new file mode 100644 index 000000000..f0509e855 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchDrag.svg @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="133.41701" + viewBox="0 0 76.664283 133.417" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchDrag.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.077942171" + inkscape:cy="94.239298" + inkscape:window-x="161" + inkscape:window-y="225" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="M 18.653,0 C 12.359,0 7.258,5.102 7.258,11.395 c 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 30.048,5.102 24.946,0 18.653,0 z m 0,20.43 c -4.989,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.047,-9.035 9.036,-9.035 4.989,0 9.035,4.046 9.035,9.035 0,4.99 -4.045,9.036 -9.035,9.036 z" + id="path3430" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +<path + d="m 65.247258,98.823749 c -0.681067,0.71969 -7.149935,7.376421 -7.149935,7.376421 0,0 -0.86404,0.92222 -0.86404,-0.29705 0.0013,-1.22468 0.0013,-3.17039 0.0013,-3.17039 0,0 -0.498094,0.003 -1.261753,0.002 -2.35324,0.002 -6.936466,0.002 -8.692502,0.002 0,0 -0.07751,-0.007 -0.162642,-0.0472 0,0.0378 0,0.0972 0,0.13232 0.01652,0.0891 0.0013,0.16068 0,0.16608 0,0.0149 0,0.0419 0,0.0554 0,0 0.01779,0.077 0,0.17013 0,2.02673 0,6.49066 0,8.99672 0.0013,0.90332 0,1.49203 0,1.49203 0,0 2.283354,0.002 3.229986,0 0.942821,0 0.07751,0.87225 0.07751,0.87225 l -7.121981,7.36157 c 0,0 -0.470139,0.5833 -0.963151,0.0607 -0.677255,-0.72374 -6.941548,-7.59515 -6.941548,-7.59515 0,0 -0.867853,-0.91952 0.280812,-0.91952 1.151207,0.002 2.983481,0.002 2.983481,0.002 0,0 -0.0026,-0.52929 -0.0013,-1.34079 -0.0013,-2.50067 -0.0013,-7.37102 -0.0013,-9.23572 l 0,-0.004 c 0,-0.0567 0,-0.14582 0,-0.21333 -0.08259,0.0392 -0.15883,0.0459 -0.15883,0.0459 -1.756036,0 -6.339262,0 -8.696314,-0.002 -0.759847,0.002 -1.260482,0 -1.260482,0 0,0 0.0026,1.94706 0.0026,3.17039 -0.0013,1.21793 -0.864041,0.29975 -0.864041,0.29975 0,0 -6.467597,-6.655381 -7.147393,-7.377761 -0.493012,-0.52525 0.05464,-1.02484 0.05464,-1.02484 l 6.927571,-7.566801 c 0,0 0.82338,-0.92357 0.82211,0.08236 0.0026,1.004586 0.0026,3.432334 0.0026,3.432334 0,0 0.552732,-0.0014 1.402796,-0.0041 2.439643,0.0041 6.872933,0.0027 8.678524,0.0014 0,0 0.116899,-0.03106 0.23634,0.027 0,-4.084505 0,-8.204115 0.0013,-9.436893 -0.0013,-0.807449 0,-1.339448 0,-1.339448 0,0 -1.832274,0.0027 -2.983481,0.0027 -1.146124,-0.0014 -0.280813,-0.918169 -0.280813,-0.918169 0,0 6.261752,-6.872771 6.942819,-7.596505 0.494283,-0.522547 0.964422,0.05806 0.964422,0.05806 l 7.12071,7.361561 c 0,0 0.869123,0.874963 -0.07624,0.872261 -0.945362,0.0027 -3.229987,0.0027 -3.229987,0.0027 0,0 0.0013,0.587358 0.0038,1.492025 -0.0013,1.284087 -0.0026,5.419901 -0.0026,9.503056 0.120712,-0.06211 0.240153,-0.02835 0.240153,-0.02835 1.804319,0 6.237609,0 8.675982,0 0.851334,-0.0014 1.404066,0 1.404066,0 0,0 0.0013,-2.426399 0,-3.430985 0,-1.003235 0.820838,-0.08236 0.820838,-0.08236 l 6.927572,7.566803 c 0,0.001 0.546378,0.50094 0.05845,1.02484 z" + id="path3238" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccccccsscccccccccccccccccccccccccccccccc" + style="fill:#66ccff;fill-opacity:1" /></g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +</svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchRotate.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchRotate.svg new file mode 100644 index 000000000..fe968ff45 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchRotate.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="99.001816" + height="101.57817" + viewBox="0 0 99.001814 101.57817" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchRotate.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="1.9873603" + inkscape:cx="11.856691" + inkscape:cy="15.112094" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 48.832974,0 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 C 59.42425,4.862311 54.682106,0 48.832974,0 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 27.154761,39.321738 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="M 93.394891,94.930552 91.5074,101.57817 52.728925,101.21032 c 8.08e-4,-8.5e-4 2.829619,-2.585988 -2.124439,-7.016318 0,0 -10.822746,-5.22596 -18.506953,-18.0968 0,0 -6.310236,-6.742109 -6.091889,-9.206596 -0.583067,-4.408398 -1.209805,-6.954724 -1.715239,-8.534999 -1.063849,-4.039774 -1.553525,-2.844172 -1.553525,-7.228104 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.595085,22.156743 -5.191814,37.665865 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 36.857901,10.534807 -5.731265,12.511815 c 0,0 -0.666487,1.516584 -1.19043,0.316343 -0.52908,-1.19559 -1.800413,-4.092683 -1.800413,-4.092683 0,0 -0.774356,0.279126 -1.962218,0.711771 -3.412049,1.225827 -9.61846,3.462323 -12.145716,4.370646 0,0 -0.609983,0.412873 -1.019633,-0.532666 -0.419926,-0.944375 -3.7806092,-8.602891 -4.0798222,-9.279772 -0.294076,-0.674552 0.288938,-0.867615 0.288938,-0.867615 2.4553422,-0.886224 8.8659382,-3.19599 12.1688342,-4.381112 1.05816,-0.382636 1.763171,-0.631523 1.763171,-0.631523 0,0 -1.02734,-2.324887 -1.664289,-3.782156 -0.636951,-1.454944 1.049169,-0.79202 1.049169,-0.79202 0,0 12.534822,4.676522 13.866509,5.195231 0.963131,0.382636 0.457165,1.253741 0.457165,1.253741 z" + id="path9" + style="fill:#d800d8;fill-opacity:1" + inkscape:connector-curvature="0" /><g + id="g2997" + transform="matrix(0,-1,1,0,-0.01316643,45.882166)" + inkscape:transform-center-x="-4.9812271" + inkscape:transform-center-y="-4.2696251"><path + id="path2999" + d="M 6.6614176,0.14173229 19.48819,5.5984253 c 0,0 1.559055,0.6377953 0.354331,1.1338583 -1.240158,0.5314961 -4.181103,1.7716536 -4.181103,1.7716536 0,0 0.283465,0.7440945 0.744095,1.9133858 1.27559,3.259843 3.57874,9.248032 4.535433,11.692914 0,0 0.425197,0.566929 -0.566929,0.992126 -0.956693,0.389764 -8.751969,3.685039 -9.460631,4.003937 -0.673228,0.283464 -0.885827,-0.283465 -0.885827,-0.283465 C 9.1062996,24.448819 6.6968507,18.283465 5.4921262,15.094489 5.0669294,14.066929 4.8188979,13.393701 4.8188979,13.393701 c 0,0 -2.3740159,0.992126 -3.86220494,1.629921 -1.48818905,0.637796 -0.81496067,-0.992126 -0.81496067,-0.992126 0,0 4.71259861,-12.1535432 5.24409471,-13.42913378 0.3897638,-0.95669294 1.2755906,-0.46062993 1.2755906,-0.46062993 z" + style="fill:#d800d8;fill-opacity:1;fill-rule:nonzero;stroke:none" + inkscape:connector-curvature="0" /></g></svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchTilt.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchTilt.svg new file mode 100644 index 000000000..e1206c5d6 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchTilt.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.663582" + height="140.44" + viewBox="0 0 76.663581 140.44" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchTilt.svg"><metadata + id="metadata3364"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3362" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="766" + inkscape:window-height="480" + id="namedview3360" + showgrid="false" + inkscape:zoom="1.6804329" + inkscape:cx="6.1930652" + inkscape:cy="74.717535" + inkscape:window-x="343" + inkscape:window-y="203" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3322" + style="fill:#ffffff" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 12.622,5.815 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 0,-6.293 -5.102,-11.395 -11.395,-11.395 z m 0,20.431 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3324" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 43.793,0 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 55.188,5.102 50.086,0 43.793,0 z m 0,20.43 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3326" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,87.918 C 77.464,73.913 62.146,72.6 62.146,72.6 57.769,59.907 47.556,66.472 47.556,66.472 c 0,0 2.262,-49.025 1.395,-54.713 -0.51,-3.331 -6.383,-10.562 -9.998,-1.684 -2.137,6.166 -5.59,60.75 -9.465,56.874 C 24.984,62.447 20.611,18.817 19.414,18.626 18.438,14.09 9.011,5.294 7.511,21.794 c 3,39.5 3.865,47.304 3.865,47.304 C 9.187,74.35 5.31,87.481 5.31,87.481 c -8.316,9.191 -4.377,15.756 -4.377,15.756 7.002,12.255 21.385,28.449 21.385,28.449 6.127,5.252 2.625,8.316 2.625,8.316 l 42.455,0.438 2.334,-7.879 c 9.628,-18.382 6.419,-44.643 6.419,-44.643 z" + id="path3328" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccc" + style="fill:#ffffff" /> +</g> +<g + id="g3330" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3332" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3334" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3336" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3338" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3340" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3342" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3344" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3346" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3348" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3350" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3352" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3354" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3356" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3358" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<path + inkscape:connector-curvature="0" + d="m 52.342987,124.78465 -8.980622,9.44613 c 0,0 -0.592129,0.74692 -1.214412,0.0786 -0.853927,-0.92772 -8.753091,-9.74549 -8.753091,-9.74549 0,0 -1.096535,-1.17966 0.352262,-1.17818 1.454279,10e-4 3.762485,10e-4 3.762485,10e-4 0,0 -0.0027,-0.67875 -0.0014,-1.72058 -0.0014,-3.20848 -0.0014,-9.4565 -0.0027,-11.8499 0,0 -0.01233,-0.56315 0.655179,-0.56019 0.672999,0 8.298029,0 9.238308,-0.003 0.937537,0.003 0.774428,0.66985 0.774428,0.66985 0,2.45861 0,8.50359 -0.0027,11.82767 0.0041,1.16039 0.0027,1.91472 0.0027,1.91472 0,0 2.879775,0.003 4.070886,0 1.192483,-10e-4 0.09869,1.11889 0.09869,1.11889 z m -0.09869,-37.828986 c -1.191111,0.003 -4.073627,0.003 -4.073627,0.003 0,0 0.0027,0.752845 0.0041,1.914716 -0.0041,3.327041 -0.0041,9.370556 -0.0014,11.83064 0,0 0.16174,0.66393 -0.774427,0.66096 -0.943021,0.006 -8.563939,0.003 -9.235567,0.004 -0.670257,-0.003 -0.65655,-0.56167 -0.65655,-0.56167 -0.0014,-2.393393 -0.0014,-8.642902 0.0014,-11.855831 -0.0014,-1.034421 0,-1.717613 0,-1.717613 0,0 -2.312318,0.003 -3.762486,0.0044 -1.444685,-0.003 -0.355003,-1.178173 -0.355003,-1.178173 0,0 7.896422,-8.81777 8.755832,-9.745488 0.622284,-0.671338 1.215783,0.07558 1.215783,0.07558 l 8.979252,9.444648 c 0,0 1.096534,1.121857 -0.09732,1.120375 z" + id="path3432" + sodipodi:nodetypes="ccccsccccccccccccccccccccccccc" + style="fill:#ffd800;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchZoom.svg b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchZoom.svg new file mode 100644 index 000000000..74e55d7cb --- /dev/null +++ b/libs/cesium/1.111/Widgets/Images/NavigationHelp/TouchZoom.svg @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="95.087433" + height="118.43173" + viewBox="0 0 95.087431 118.43173" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchZoom.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="2.8132167" + inkscape:cx="10.565593" + inkscape:cy="72.192791" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + d="m 0.0436199,84.941029 c 0,0 -0.2799964,-1.323641 0.578786,-0.720397 0.8621957,0.601498 2.9536375,2.059778 2.9536375,2.059778 0,0 0.3431801,-0.517567 0.8707286,-1.316651 1.521209,-2.28009 4.281925,-6.427623 5.405325,-8.116707 0,0 0.187721,-0.53855 0.863902,-0.06295 0.682926,0.472104 6.206065,4.329377 6.692655,4.668591 0.483157,0.340966 0.220227,0.718649 0.220227,0.718649 -1.094368,1.641877 -3.948985,5.929292 -5.418977,8.132449 -0.469526,0.711655 -0.783654,1.178514 -0.783654,1.178514 0,0 1.678274,1.168023 2.728271,1.900661 1.043172,0.732637 -0.28341,0.987925 -0.28341,0.987925 0,0 -9.7470195,2.05628 -10.7936043,2.25911 -0.756328,0.145111 -0.8468168,-0.666198 -0.8468168,-0.666198 z" + id="path3376-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" + style="fill:#65ff00;fill-opacity:1" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 44.918594,16.853557 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 -9.23e-4,-5.997359 -4.743067,-10.85967 -10.592199,-10.85967 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 23.240381,56.175295 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="m 89.480511,111.78411 -1.887491,6.64762 -38.778475,-0.36785 c 8.08e-4,-8.5e-4 2.829619,-2.58599 -2.124439,-7.01632 0,0 -10.822746,-5.22596 -18.506953,-18.096801 0,0 -6.310236,-6.742109 -6.091889,-9.206596 C 21.508197,79.335765 20.881459,76.789439 20.376025,75.209164 19.312176,71.16939 18.8225,72.364992 18.8225,67.98106 c 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.59509,22.156743 -5.191814,37.665866 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 49.854025,14.903508 c 0.696314,0.466948 6.359531,4.268019 6.858144,4.604015 0.491619,0.334273 0.748797,-0.05343 0.748797,-0.05343 1.121449,-1.617954 4.044902,-5.844621 5.545997,-8.013953 0.488115,-0.703007 0.803031,-1.164787 0.803031,-1.164787 0,0 1.714536,1.152726 2.792243,1.876411 1.07596,0.721961 0.813533,-0.620302 0.813533,-0.620302 0,0 -1.732034,-9.8989818 -1.933227,-10.95349441 -0.150463,-0.7615853 -0.939496,-0.5513731 -0.939496,-0.5513731 L 53.458049,1.9374693 c 0,0 -1.336636,0.2136595 -0.454876,0.8046693 0.88876,0.5927325 3.02493,2.0297666 3.02493,2.0297666 0,0 -0.355152,0.5083037 -0.895757,1.2940169 -1.558825,2.2468717 -4.387811,6.3339699 -5.538999,7.9984459 -0.0018,0.0017 -0.433883,0.370456 0.260678,0.83914 z" + id="path3376-7-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" + style="fill:#65ff00;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/libs/cesium/1.111/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png b/libs/cesium/1.111/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png new file mode 100644 index 000000000..16343ec24 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png differ diff --git a/libs/cesium/1.111/Widgets/Images/TerrainProviders/Ellipsoid.png b/libs/cesium/1.111/Widgets/Images/TerrainProviders/Ellipsoid.png new file mode 100644 index 000000000..a36259bbe Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/TerrainProviders/Ellipsoid.png differ diff --git a/libs/cesium/1.111/Widgets/Images/TimelineIcons.png b/libs/cesium/1.111/Widgets/Images/TimelineIcons.png new file mode 100644 index 000000000..e3a04556a Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/TimelineIcons.png differ diff --git a/libs/cesium/1.111/Widgets/Images/info-loading.gif b/libs/cesium/1.111/Widgets/Images/info-loading.gif new file mode 100644 index 000000000..8df10dd51 Binary files /dev/null and b/libs/cesium/1.111/Widgets/Images/info-loading.gif differ diff --git a/libs/cesium/1.111/Widgets/InfoBox/InfoBox.css b/libs/cesium/1.111/Widgets/InfoBox/InfoBox.css new file mode 100644 index 000000000..42a7b2201 --- /dev/null +++ b/libs/cesium/1.111/Widgets/InfoBox/InfoBox.css @@ -0,0 +1,92 @@ +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} diff --git a/libs/cesium/1.111/Widgets/InfoBox/InfoBoxDescription.css b/libs/cesium/1.111/Widgets/InfoBox/InfoBoxDescription.css new file mode 100644 index 000000000..04ee3dbc0 --- /dev/null +++ b/libs/cesium/1.111/Widgets/InfoBox/InfoBoxDescription.css @@ -0,0 +1,178 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/InfoBox/InfoBoxDescription.css */ +body { + margin: 0; + padding: 0; +} +.cesium-infoBox-description { + font-family: sans-serif; + font-size: 13px; + padding: 4px 10px; + margin-right: 4px; + color: #edffff; +} +.cesium-infoBox-description a:link, +.cesium-infoBox-description a:visited, +.cesium-infoBox-description a:hover, +.cesium-infoBox-description a:active { + color: #edffff; +} +.cesium-infoBox-description table { + color: #edffff; +} +.cesium-infoBox-defaultTable { + width: 100%; + color: #edffff; +} +.cesium-infoBox-defaultTable tr:nth-child(odd) { + background-color: rgba(84, 84, 84, 0.8); +} +.cesium-infoBox-defaultTable tr:nth-child(even) { + background-color: rgba(84, 84, 84, 0.25); +} +.cesium-infoBox-defaultTable th { + font-weight: normal; + padding: 3px; + vertical-align: middle; + text-align: center; +} +.cesium-infoBox-defaultTable td { + padding: 3px; + vertical-align: middle; + text-align: left; +} +.cesium-infoBox-description-lighter { + color: #000000; +} +.cesium-infoBox-description-lighter a:link, +.cesium-infoBox-description-lighter a:visited, +.cesium-infoBox-description-lighter a:hover, +.cesium-infoBox-description-lighter a:active { + color: #000000; +} +.cesium-infoBox-description-lighter table { + color: #000000; +} +.cesium-infoBox-defaultTable-lighter { + width: 100%; + color: #000000; +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(odd) { + background-color: rgba(179, 179, 179, 0.8); +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(even) { + background-color: rgba(179, 179, 179, 0.25); +} +.cesium-infoBox-loadingContainer { + margin: 5px; + text-align: center; +} +.cesium-infoBox-loading { + display: inline-block; + background-image: url(data:text/plain;base64,R0lGODlhEAALAPQAAAAAAOLTlyAdFSgmGxEQC9zOk+LTl7mse25nSYyDXTw4KMO2gqCVa2dgRIl/Wzg1JsCzgN7PlJySaBUTDiEfFggIBbCkdR4cFAoJB0A7KlNONy4rHg4NCQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA); + width: 16px; + height: 11px; +} diff --git a/libs/cesium/1.111/Widgets/NavigationHelpButton/NavigationHelpButton.css b/libs/cesium/1.111/Widgets/NavigationHelpButton/NavigationHelpButton.css new file mode 100644 index 000000000..60f7a5bf1 --- /dev/null +++ b/libs/cesium/1.111/Widgets/NavigationHelpButton/NavigationHelpButton.css @@ -0,0 +1,93 @@ +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} diff --git a/libs/cesium/1.111/Widgets/NavigationHelpButton/lighter.css b/libs/cesium/1.111/Widgets/NavigationHelpButton/lighter.css new file mode 100644 index 000000000..7cf654b32 --- /dev/null +++ b/libs/cesium/1.111/Widgets/NavigationHelpButton/lighter.css @@ -0,0 +1,38 @@ +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} diff --git a/libs/cesium/1.111/Widgets/PerformanceWatchdog/PerformanceWatchdog.css b/libs/cesium/1.111/Widgets/PerformanceWatchdog/PerformanceWatchdog.css new file mode 100644 index 000000000..f8f770ad9 --- /dev/null +++ b/libs/cesium/1.111/Widgets/PerformanceWatchdog/PerformanceWatchdog.css @@ -0,0 +1,15 @@ +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} diff --git a/libs/cesium/1.111/Widgets/ProjectionPicker/ProjectionPicker.css b/libs/cesium/1.111/Widgets/ProjectionPicker/ProjectionPicker.css new file mode 100644 index 000000000..57b6f6fd4 --- /dev/null +++ b/libs/cesium/1.111/Widgets/ProjectionPicker/ProjectionPicker.css @@ -0,0 +1,38 @@ +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/libs/cesium/1.111/Widgets/SceneModePicker/SceneModePicker.css b/libs/cesium/1.111/Widgets/SceneModePicker/SceneModePicker.css new file mode 100644 index 000000000..51e4c67f7 --- /dev/null +++ b/libs/cesium/1.111/Widgets/SceneModePicker/SceneModePicker.css @@ -0,0 +1,56 @@ +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/libs/cesium/1.111/Widgets/SelectionIndicator/SelectionIndicator.css b/libs/cesium/1.111/Widgets/SelectionIndicator/SelectionIndicator.css new file mode 100644 index 000000000..148ff4a87 --- /dev/null +++ b/libs/cesium/1.111/Widgets/SelectionIndicator/SelectionIndicator.css @@ -0,0 +1,20 @@ +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} diff --git a/libs/cesium/1.111/Widgets/Timeline/Timeline.css b/libs/cesium/1.111/Widgets/Timeline/Timeline.css new file mode 100644 index 000000000..6a9603ed6 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Timeline/Timeline.css @@ -0,0 +1,96 @@ +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: linear-gradient(to bottom, rgba(116, 117, 119, 0.8) 0%, rgba(58, 68, 82, 0.8) 11%, rgba(46, 50, 56, 0.8) 46%, rgba(53, 53, 53, 0.8) 81%, rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} diff --git a/libs/cesium/1.111/Widgets/Timeline/lighter.css b/libs/cesium/1.111/Widgets/Timeline/lighter.css new file mode 100644 index 000000000..b311f3d45 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Timeline/lighter.css @@ -0,0 +1,18 @@ +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: linear-gradient(to bottom, #eeeeee 0%, #ffffff 50%, #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} diff --git a/libs/cesium/1.111/Widgets/VRButton/VRButton.css b/libs/cesium/1.111/Widgets/VRButton/VRButton.css new file mode 100644 index 000000000..1005bd4a0 --- /dev/null +++ b/libs/cesium/1.111/Widgets/VRButton/VRButton.css @@ -0,0 +1,8 @@ +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/libs/cesium/1.111/Widgets/Viewer/Viewer.css b/libs/cesium/1.111/Widgets/Viewer/Viewer.css new file mode 100644 index 000000000..5884a8697 --- /dev/null +++ b/libs/cesium/1.111/Widgets/Viewer/Viewer.css @@ -0,0 +1,107 @@ +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} diff --git a/libs/cesium/1.111/Widgets/VoxelInspector/VoxelInspector.css b/libs/cesium/1.111/Widgets/VoxelInspector/VoxelInspector.css new file mode 100644 index 000000000..a0a31024b --- /dev/null +++ b/libs/cesium/1.111/Widgets/VoxelInspector/VoxelInspector.css @@ -0,0 +1,16 @@ +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} diff --git a/libs/cesium/1.111/Widgets/lighter.css b/libs/cesium/1.111/Widgets/lighter.css new file mode 100644 index 000000000..bb69e63a9 --- /dev/null +++ b/libs/cesium/1.111/Widgets/lighter.css @@ -0,0 +1,232 @@ +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} + +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} + +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} + +/* packages/engine/Source/Widget/lighter.css */ +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} + +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} + +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: linear-gradient(to bottom, #eeeeee 0%, #ffffff 50%, #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} + +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} + +/* packages/widgets/Source/lighter.css */ diff --git a/libs/cesium/1.111/Widgets/lighterShared.css b/libs/cesium/1.111/Widgets/lighterShared.css new file mode 100644 index 000000000..7d3b4ddd3 --- /dev/null +++ b/libs/cesium/1.111/Widgets/lighterShared.css @@ -0,0 +1,46 @@ +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} diff --git a/libs/cesium/1.111/Widgets/shared.css b/libs/cesium/1.111/Widgets/shared.css new file mode 100644 index 000000000..2c9b949e9 --- /dev/null +++ b/libs/cesium/1.111/Widgets/shared.css @@ -0,0 +1,103 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} diff --git a/libs/cesium/1.111/Widgets/widgets.css b/libs/cesium/1.111/Widgets/widgets.css new file mode 100644 index 000000000..e49ae97c6 --- /dev/null +++ b/libs/cesium/1.111/Widgets/widgets.css @@ -0,0 +1,1311 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} + +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} + +/* packages/engine/Source/Widget/CesiumWidget.css */ +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} +.cesium-widget-credits a, +.cesium-widget-credits a:visited { + color: #fff; +} +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} + +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} + +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} + +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} + +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} + +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} + +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} + +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} + +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} + +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: linear-gradient(to bottom, rgba(116, 117, 119, 0.8) 0%, rgba(58, 68, 82, 0.8) 11%, rgba(46, 50, 56, 0.8) 46%, rgba(53, 53, 53, 0.8) 81%, rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} + +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} + +/* packages/widgets/Source/widgets.css */ diff --git a/libs/cesium/1.111/Workers/chunk-3UAKIC5Y.js b/libs/cesium/1.111/Workers/chunk-3UAKIC5Y.js new file mode 100644 index 000000000..d6116f6cb --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-3UAKIC5Y.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-K36PKEJW.js";function a(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}var i=a;export{i as a}; diff --git a/libs/cesium/1.111/Workers/chunk-3ZQZIWLR.js b/libs/cesium/1.111/Workers/chunk-3ZQZIWLR.js new file mode 100644 index 000000000..c73272df9 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-3ZQZIWLR.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as et}from"./chunk-PNRMC4IG.js";import{a as jt}from"./chunk-V6ZHITEJ.js";import{b as Lt}from"./chunk-OH4CN3UY.js";import{a as Et}from"./chunk-AAJ456AA.js";import{a as j}from"./chunk-JZL634RF.js";import{a as mt,b as D,c as B,d as U}from"./chunk-QEWKHB6D.js";import{a as _t,b as Ut,d as rt}from"./chunk-DV7DPSRL.js";import{a as dt,b as H,d as R}from"./chunk-KCIWEUSR.js";import{a as k}from"./chunk-7XDW3BZW.js";import{a as r,b as Mt,d as Ot}from"./chunk-F33YCXD2.js";import{a as N}from"./chunk-DUBQPPQZ.js";import{a as K}from"./chunk-K36PKEJW.js";import{a as I,b as pt}from"./chunk-KD2PMTHD.js";import{e as f}from"./chunk-ZUCO5WNM.js";var Yt=new r,Zt=new r,Xt=new r;function pe(t,e,n,s,i){pt.defined("point",t),pt.defined("p0",e),pt.defined("p1",n),pt.defined("p2",s),f(i)||(i=new r);let c,o,a,p,u,d,m,l;if(f(e.z)){if(r.equalsEpsilon(t,e,N.EPSILON14))return r.clone(r.UNIT_X,i);if(r.equalsEpsilon(t,n,N.EPSILON14))return r.clone(r.UNIT_Y,i);if(r.equalsEpsilon(t,s,N.EPSILON14))return r.clone(r.UNIT_Z,i);c=r.subtract(n,e,Yt),o=r.subtract(s,e,Zt),a=r.subtract(t,e,Xt),p=r.dot(c,c),u=r.dot(c,o),d=r.dot(c,a),m=r.dot(o,o),l=r.dot(o,a)}else{if(R.equalsEpsilon(t,e,N.EPSILON14))return r.clone(r.UNIT_X,i);if(R.equalsEpsilon(t,n,N.EPSILON14))return r.clone(r.UNIT_Y,i);if(R.equalsEpsilon(t,s,N.EPSILON14))return r.clone(r.UNIT_Z,i);c=R.subtract(n,e,Yt),o=R.subtract(s,e,Zt),a=R.subtract(t,e,Xt),p=R.dot(c,c),u=R.dot(c,o),d=R.dot(c,a),m=R.dot(o,o),l=R.dot(o,a)}i.y=m*d-u*l,i.z=p*l-u*d;let h=p*m-u*u;if(h!==0)return i.y/=h,i.z/=h,i.x=1-i.y-i.z,i}var Ht=pe;var Nt={};Nt.calculateACMR=function(t){t=K(t,K.EMPTY_OBJECT);let e=t.indices,n=t.maximumIndex,s=K(t.cacheSize,24);if(!f(e))throw new I("indices is required.");let i=e.length;if(i<3||i%3!==0)throw new I("indices length must be a multiple of three.");if(n<=0)throw new I("maximumIndex must be greater than zero.");if(s<3)throw new I("cacheSize must be greater than two.");if(!f(n)){n=0;let a=0,p=e[a];for(;a<i;)p>n&&(n=p),++a,p=e[a]}let c=[];for(let a=0;a<n+1;a++)c[a]=0;let o=s+1;for(let a=0;a<i;++a)o-c[e[a]]>s&&(c[e[a]]=o,++o);return(o-s+1)/(i/3)};Nt.tipsify=function(t){t=K(t,K.EMPTY_OBJECT);let e=t.indices,n=t.maximumIndex,s=K(t.cacheSize,24),i;function c(C,z,q,V){for(;z.length>=1;){let G=z[z.length-1];if(z.splice(z.length-1,1),C[G].numLiveTriangles>0)return G}for(;i<V;){if(C[i].numLiveTriangles>0)return++i,i-1;++i}return-1}function o(C,z,q,V,G,M,J){let Y=-1,_,Pt=-1,gt=0;for(;gt<q.length;){let ft=q[gt];V[ft].numLiveTriangles&&(_=0,G-V[ft].timeStamp+2*V[ft].numLiveTriangles<=z&&(_=G-V[ft].timeStamp),(_>Pt||Pt===-1)&&(Pt=_,Y=ft)),++gt}return Y===-1?c(V,M,C,J):Y}if(!f(e))throw new I("indices is required.");let a=e.length;if(a<3||a%3!==0)throw new I("indices length must be a multiple of three.");if(n<=0)throw new I("maximumIndex must be greater than zero.");if(s<3)throw new I("cacheSize must be greater than two.");let p=0,u=0,d=e[u],m=a;if(f(n))p=n+1;else{for(;u<m;)d>p&&(p=d),++u,d=e[u];if(p===-1)return 0;++p}let l=[],h;for(h=0;h<p;h++)l[h]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let y=0;for(;u<m;)l[e[u]].vertexTriangles.push(y),++l[e[u]].numLiveTriangles,l[e[u+1]].vertexTriangles.push(y),++l[e[u+1]].numLiveTriangles,l[e[u+2]].vertexTriangles.push(y),++l[e[u+2]].numLiveTriangles,++y,u+=3;let v=0,b=s+1;i=1;let S=[],x=[],w,A,E=0,P=[],O=a/3,L=[];for(h=0;h<O;h++)L[h]=!1;let g,T;for(;v!==-1;){S=[],A=l[v],T=A.vertexTriangles.length;for(let C=0;C<T;++C)if(y=A.vertexTriangles[C],!L[y]){L[y]=!0,u=y+y+y;for(let z=0;z<3;++z)g=e[u],S.push(g),x.push(g),P[E]=g,++E,w=l[g],--w.numLiveTriangles,b-w.timeStamp>s&&(w.timeStamp=b,++b),++u}v=o(e,s,S,l,b,x,p)}return P};var Wt=Nt;var F={};function St(t,e,n,s,i){t[e++]=n,t[e++]=s,t[e++]=s,t[e++]=i,t[e++]=i,t[e]=n}function de(t){let e=t.length,n=e/3*6,s=j.createTypedArray(e,n),i=0;for(let c=0;c<e;c+=3,i+=6)St(s,i,t[c],t[c+1],t[c+2]);return s}function me(t){let e=t.length;if(e>=3){let n=(e-2)*6,s=j.createTypedArray(e,n);St(s,0,t[0],t[1],t[2]);let i=6;for(let c=3;c<e;++c,i+=6)St(s,i,t[c-1],t[c],t[c-2]);return s}return new Uint16Array}function he(t){if(t.length>0){let e=t.length-1,n=(e-1)*6,s=j.createTypedArray(e,n),i=t[0],c=0;for(let o=1;o<e;++o,c+=6)St(s,c,i,t[o],t[o+1]);return s}return new Uint16Array}F.toWireframe=function(t){if(!f(t))throw new I("geometry is required.");let e=t.indices;if(f(e)){switch(t.primitiveType){case D.TRIANGLES:t.indices=de(e);break;case D.TRIANGLE_STRIP:t.indices=me(e);break;case D.TRIANGLE_FAN:t.indices=he(e);break;default:throw new I("geometry.primitiveType must be TRIANGLES, TRIANGLE_STRIP, or TRIANGLE_FAN.")}t.primitiveType=D.LINES}return t};F.createLineSegmentsForVectors=function(t,e,n){if(e=K(e,"normal"),!f(t))throw new I("geometry is required.");if(!f(t.attributes.position))throw new I("geometry.attributes.position is required.");if(!f(t.attributes[e]))throw new I(`geometry.attributes must have an attribute with the same name as the attributeName parameter, ${e}.`);n=K(n,1e4);let s=t.attributes.position.values,i=t.attributes[e].values,c=s.length,o=new Float64Array(2*c),a=0;for(let d=0;d<c;d+=3)o[a++]=s[d],o[a++]=s[d+1],o[a++]=s[d+2],o[a++]=s[d]+i[d]*n,o[a++]=s[d+1]+i[d+1]*n,o[a++]=s[d+2]+i[d+2]*n;let p,u=t.boundingSphere;return f(u)&&(p=new rt(u.center,u.radius+n)),new B({attributes:{position:new U({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:o})},primitiveType:D.LINES,boundingSphere:p})};F.createAttributeLocations=function(t){if(!f(t))throw new I("geometry is required.");let e=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=t.attributes,s={},i=0,c,o=e.length;for(c=0;c<o;++c){let a=e[c];f(n[a])&&(s[a]=i++)}for(let a in n)n.hasOwnProperty(a)&&!f(s[a])&&(s[a]=i++);return s};F.reorderForPreVertexCache=function(t){if(!f(t))throw new I("geometry is required.");let e=B.computeNumberOfVertices(t),n=t.indices;if(f(n)){let s=new Int32Array(e);for(let l=0;l<e;l++)s[l]=-1;let i=n,c=i.length,o=j.createTypedArray(e,c),a=0,p=0,u=0,d;for(;a<c;)d=s[i[a]],d!==-1?o[p]=d:(d=i[a],s[d]=u,o[p]=u,++u),++a,++p;t.indices=o;let m=t.attributes;for(let l in m)if(m.hasOwnProperty(l)&&f(m[l])&&f(m[l].values)){let h=m[l],y=h.values,v=0,b=h.componentsPerAttribute,S=k.createTypedArray(h.componentDatatype,u*b);for(;v<e;){let x=s[v];if(x!==-1)for(let w=0;w<b;w++)S[b*x+w]=y[b*v+w];++v}h.values=S}}return t};F.reorderForPostVertexCache=function(t,e){if(!f(t))throw new I("geometry is required.");let n=t.indices;if(t.primitiveType===D.TRIANGLES&&f(n)){let s=n.length,i=0;for(let c=0;c<s;c++)n[c]>i&&(i=n[c]);t.indices=Wt.tipsify({indices:n,maximumIndex:i,cacheSize:e})}return t};function $t(t){let e={};for(let n in t)if(t.hasOwnProperty(n)&&f(t[n])&&f(t[n].values)){let s=t[n];e[n]=new U({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:[]})}return e}function be(t,e,n){for(let s in e)if(e.hasOwnProperty(s)&&f(e[s])&&f(e[s].values)){let i=e[s];for(let c=0;c<i.componentsPerAttribute;++c)t[s].values.push(i.values[n*i.componentsPerAttribute+c])}}F.fitToUnsignedShortIndices=function(t){if(!f(t))throw new I("geometry is required.");if(f(t.indices)&&t.primitiveType!==D.TRIANGLES&&t.primitiveType!==D.LINES&&t.primitiveType!==D.POINTS)throw new I("geometry.primitiveType must equal to PrimitiveType.TRIANGLES, PrimitiveType.LINES, or PrimitiveType.POINTS.");let e=[],n=B.computeNumberOfVertices(t);if(f(t.indices)&&n>=N.SIXTY_FOUR_KILOBYTES){let s=[],i=[],c=0,o=$t(t.attributes),a=t.indices,p=a.length,u;t.primitiveType===D.TRIANGLES?u=3:t.primitiveType===D.LINES?u=2:t.primitiveType===D.POINTS&&(u=1);for(let d=0;d<p;d+=u){for(let m=0;m<u;++m){let l=a[d+m],h=s[l];f(h)||(h=c++,s[l]=h,be(o,t.attributes,l)),i.push(h)}c+u>=N.SIXTY_FOUR_KILOBYTES&&(e.push(new B({attributes:o,indices:i,primitiveType:t.primitiveType,boundingSphere:t.boundingSphere,boundingSphereCV:t.boundingSphereCV})),s=[],i=[],c=0,o=$t(t.attributes))}i.length!==0&&e.push(new B({attributes:o,indices:i,primitiveType:t.primitiveType,boundingSphere:t.boundingSphere,boundingSphereCV:t.boundingSphereCV}))}else e.push(t);return e};var Jt=new r,we=new Mt;F.projectTo2D=function(t,e,n,s,i){if(!f(t))throw new I("geometry is required.");if(!f(e))throw new I("attributeName is required.");if(!f(n))throw new I("attributeName3D is required.");if(!f(s))throw new I("attributeName2D is required.");if(!f(t.attributes[e]))throw new I(`geometry must have attribute matching the attributeName argument: ${e}.`);if(t.attributes[e].componentDatatype!==k.DOUBLE)throw new I("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");let c=t.attributes[e];i=f(i)?i:new _t;let o=i.ellipsoid,a=c.values,p=new Float64Array(a.length),u=0;for(let d=0;d<a.length;d+=3){let m=r.fromArray(a,d,Jt),l=o.cartesianToCartographic(m,we);if(!f(l))throw new I(`Could not project point (${m.x}, ${m.y}, ${m.z}) to 2D.`);let h=i.project(l,Jt);p[u++]=h.x,p[u++]=h.y,p[u++]=h.z}return t.attributes[n]=c,t.attributes[s]=new U({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:p}),delete t.attributes[e],t};var zt={high:0,low:0};F.encodeAttribute=function(t,e,n,s){if(!f(t))throw new I("geometry is required.");if(!f(e))throw new I("attributeName is required.");if(!f(n))throw new I("attributeHighName is required.");if(!f(s))throw new I("attributeLowName is required.");if(!f(t.attributes[e]))throw new I(`geometry must have attribute matching the attributeName argument: ${e}.`);if(t.attributes[e].componentDatatype!==k.DOUBLE)throw new I("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");let i=t.attributes[e],c=i.values,o=c.length,a=new Float32Array(o),p=new Float32Array(o);for(let d=0;d<o;++d)jt.encode(c[d],zt),a[d]=zt.high,p[d]=zt.low;let u=i.componentsPerAttribute;return t.attributes[n]=new U({componentDatatype:k.FLOAT,componentsPerAttribute:u,values:a}),t.attributes[s]=new U({componentDatatype:k.FLOAT,componentsPerAttribute:u,values:p}),delete t.attributes[e],t};var $=new r;function Dt(t,e){if(f(e)){let n=e.values,s=n.length;for(let i=0;i<s;i+=3)r.unpack(n,i,$),H.multiplyByPoint(t,$,$),r.pack($,n,i)}}function qt(t,e){if(f(e)){let n=e.values,s=n.length;for(let i=0;i<s;i+=3)r.unpack(n,i,$),Ot.multiplyByVector(t,$,$),$=r.normalize($,$),r.pack($,n,i)}}var vt=new H,yt=new Ot;F.transformToWorldCoordinates=function(t){if(!f(t))throw new I("instance is required.");let e=t.modelMatrix;if(H.equals(e,H.IDENTITY))return t;let n=t.geometry.attributes;Dt(e,n.position),Dt(e,n.prevPosition),Dt(e,n.nextPosition),(f(n.normal)||f(n.tangent)||f(n.bitangent))&&(H.inverse(e,vt),H.transpose(vt,vt),H.getMatrix3(vt,yt),qt(yt,n.normal),qt(yt,n.tangent),qt(yt,n.bitangent));let s=t.geometry.boundingSphere;return f(s)&&(t.geometry.boundingSphere=rt.transform(s,e,s)),t.modelMatrix=H.clone(H.IDENTITY),t};function ve(t,e){let n=t.length,s={},i=t[0][e].attributes,c;for(c in i)if(i.hasOwnProperty(c)&&f(i[c])&&f(i[c].values)){let o=i[c],a=o.values.length,p=!0;for(let u=1;u<n;++u){let d=t[u][e].attributes[c];if(!f(d)||o.componentDatatype!==d.componentDatatype||o.componentsPerAttribute!==d.componentsPerAttribute||o.normalize!==d.normalize){p=!1;break}a+=d.values.length}p&&(s[c]=new U({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:k.createTypedArray(o.componentDatatype,a)}))}return s}var ye=new r;function Vt(t,e){let n=t.length,s,i,c,o,a=t[0].modelMatrix,p=f(t[0][e].indices),u=t[0][e].primitiveType;for(i=1;i<n;++i){if(!H.equals(t[i].modelMatrix,a))throw new I("All instances must have the same modelMatrix.");if(f(t[i][e].indices)!==p)throw new I("All instance geometries must have an indices or not have one.");if(t[i][e].primitiveType!==u)throw new I("All instance geometries must have the same primitiveType.")}let d=ve(t,e),m,l,h;for(s in d)if(d.hasOwnProperty(s))for(m=d[s].values,o=0,i=0;i<n;++i)for(l=t[i][e].attributes[s].values,h=l.length,c=0;c<h;++c)m[o++]=l[c];let y;if(p){let x=0;for(i=0;i<n;++i)x+=t[i][e].indices.length;let w=B.computeNumberOfVertices(new B({attributes:d,primitiveType:D.POINTS})),A=j.createTypedArray(w,x),E=0,P=0;for(i=0;i<n;++i){let O=t[i][e].indices,L=O.length;for(o=0;o<L;++o)A[E++]=P+O[o];P+=B.computeNumberOfVertices(t[i][e])}y=A}let v=new r,b=0,S;for(i=0;i<n;++i){if(S=t[i][e].boundingSphere,!f(S)){v=void 0;break}r.add(S.center,v,v)}if(f(v))for(r.divideByScalar(v,n,v),i=0;i<n;++i){S=t[i][e].boundingSphere;let x=r.magnitude(r.subtract(S.center,v,ye))+S.radius;x>b&&(b=x)}return new B({attributes:d,indices:y,primitiveType:u,boundingSphere:f(v)?new rt(v,b):void 0})}F.combineInstances=function(t){if(!f(t)||t.length<1)throw new I("instances is required and must have length greater than zero.");let e=[],n=[],s=t.length;for(let c=0;c<s;++c){let o=t[c];f(o.geometry)?e.push(o):f(o.westHemisphereGeometry)&&f(o.eastHemisphereGeometry)&&n.push(o)}let i=[];return e.length>0&&i.push(Vt(e,"geometry")),n.length>0&&(i.push(Vt(n,"westHemisphereGeometry")),i.push(Vt(n,"eastHemisphereGeometry"))),i};var Z=new r,ht=new r,ct=new r,at=new r;F.computeNormal=function(t){if(!f(t))throw new I("geometry is required.");if(!f(t.attributes.position)||!f(t.attributes.position.values))throw new I("geometry.attributes.position.values is required.");if(!f(t.indices))throw new I("geometry.indices is required.");if(t.indices.length<2||t.indices.length%3!==0)throw new I("geometry.indices length must be greater than 0 and be a multiple of 3.");if(t.primitiveType!==D.TRIANGLES)throw new I("geometry.primitiveType must be PrimitiveType.TRIANGLES.");let e=t.indices,n=t.attributes,s=n.position.values,i=n.position.values.length/3,c=e.length,o=new Array(i),a=new Array(c/3),p=new Array(c),u;for(u=0;u<i;u++)o[u]={indexOffset:0,count:0,currentCount:0};let d=0;for(u=0;u<c;u+=3){let y=e[u],v=e[u+1],b=e[u+2],S=y*3,x=v*3,w=b*3;ht.x=s[S],ht.y=s[S+1],ht.z=s[S+2],ct.x=s[x],ct.y=s[x+1],ct.z=s[x+2],at.x=s[w],at.y=s[w+1],at.z=s[w+2],o[y].count++,o[v].count++,o[b].count++,r.subtract(ct,ht,ct),r.subtract(at,ht,at),a[d]=r.cross(ct,at,new r),d++}let m=0;for(u=0;u<i;u++)o[u].indexOffset+=m,m+=o[u].count;d=0;let l;for(u=0;u<c;u+=3){l=o[e[u]];let y=l.indexOffset+l.currentCount;p[y]=d,l.currentCount++,l=o[e[u+1]],y=l.indexOffset+l.currentCount,p[y]=d,l.currentCount++,l=o[e[u+2]],y=l.indexOffset+l.currentCount,p[y]=d,l.currentCount++,d++}let h=new Float32Array(i*3);for(u=0;u<i;u++){let y=u*3;if(l=o[u],r.clone(r.ZERO,Z),l.count>0){for(d=0;d<l.count;d++)r.add(Z,a[p[l.indexOffset+d]],Z);r.equalsEpsilon(r.ZERO,Z,N.EPSILON10)&&r.clone(a[p[l.indexOffset]],Z)}r.equalsEpsilon(r.ZERO,Z,N.EPSILON10)&&(Z.z=1),r.normalize(Z,Z),h[y]=Z.x,h[y+1]=Z.y,h[y+2]=Z.z}return t.attributes.normal=new U({componentDatatype:k.FLOAT,componentsPerAttribute:3,values:h}),t};var xe=new r,Kt=new r,Te=new r;F.computeTangentAndBitangent=function(t){if(!f(t))throw new I("geometry is required.");let e=t.attributes,n=t.indices;if(!f(e.position)||!f(e.position.values))throw new I("geometry.attributes.position.values is required.");if(!f(e.normal)||!f(e.normal.values))throw new I("geometry.attributes.normal.values is required.");if(!f(e.st)||!f(e.st.values))throw new I("geometry.attributes.st.values is required.");if(!f(n))throw new I("geometry.indices is required.");if(n.length<2||n.length%3!==0)throw new I("geometry.indices length must be greater than 0 and be a multiple of 3.");if(t.primitiveType!==D.TRIANGLES)throw new I("geometry.primitiveType must be PrimitiveType.TRIANGLES.");let s=t.attributes.position.values,i=t.attributes.normal.values,c=t.attributes.st.values,o=t.attributes.position.values.length/3,a=n.length,p=new Array(o*3),u;for(u=0;u<p.length;u++)p[u]=0;let d,m,l;for(u=0;u<a;u+=3){let v=n[u],b=n[u+1],S=n[u+2];d=v*3,m=b*3,l=S*3;let x=v*2,w=b*2,A=S*2,E=s[d],P=s[d+1],O=s[d+2],L=c[x],g=c[x+1],T=c[w+1]-g,C=c[A+1]-g,z=1/((c[w]-L)*C-(c[A]-L)*T),q=(C*(s[m]-E)-T*(s[l]-E))*z,V=(C*(s[m+1]-P)-T*(s[l+1]-P))*z,G=(C*(s[m+2]-O)-T*(s[l+2]-O))*z;p[d]+=q,p[d+1]+=V,p[d+2]+=G,p[m]+=q,p[m+1]+=V,p[m+2]+=G,p[l]+=q,p[l+1]+=V,p[l+2]+=G}let h=new Float32Array(o*3),y=new Float32Array(o*3);for(u=0;u<o;u++){d=u*3,m=d+1,l=d+2;let v=r.fromArray(i,d,xe),b=r.fromArray(p,d,Te),S=r.dot(v,b);r.multiplyByScalar(v,S,Kt),r.normalize(r.subtract(b,Kt,b),b),h[d]=b.x,h[m]=b.y,h[l]=b.z,r.normalize(r.cross(v,b,b),b),y[d]=b.x,y[m]=b.y,y[l]=b.z}return t.attributes.tangent=new U({componentDatatype:k.FLOAT,componentsPerAttribute:3,values:h}),t.attributes.bitangent=new U({componentDatatype:k.FLOAT,componentsPerAttribute:3,values:y}),t};var bt=new R,W=new r,Qt=new r,te=new r,xt=new R;F.compressVertices=function(t){if(!f(t))throw new I("geometry is required.");let e=t.attributes.extrudeDirection,n,s;if(f(e)){let P=e.values;s=P.length/3;let O=new Float32Array(s*2),L=0;for(n=0;n<s;++n){if(r.fromArray(P,n*3,W),r.equals(W,r.ZERO)){L+=2;continue}xt=et.octEncodeInRange(W,65535,xt),O[L++]=xt.x,O[L++]=xt.y}return t.attributes.compressedAttributes=new U({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:O}),delete t.attributes.extrudeDirection,t}let i=t.attributes.normal,c=t.attributes.st,o=f(i),a=f(c);if(!o&&!a)return t;let p=t.attributes.tangent,u=t.attributes.bitangent,d=f(p),m=f(u),l,h,y,v;o&&(l=i.values),a&&(h=c.values),d&&(y=p.values),m&&(v=u.values),s=(o?l.length:h.length)/(o?3:2);let x=s,w=a&&o?2:1;w+=d||m?1:0,x*=w;let A=new Float32Array(x),E=0;for(n=0;n<s;++n){a&&(R.fromArray(h,n*2,bt),A[E++]=et.compressTextureCoordinates(bt));let P=n*3;o&&f(y)&&f(v)?(r.fromArray(l,P,W),r.fromArray(y,P,Qt),r.fromArray(v,P,te),et.octPack(W,Qt,te,bt),A[E++]=bt.x,A[E++]=bt.y):(o&&(r.fromArray(l,P,W),A[E++]=et.octEncodeFloat(W)),d&&(r.fromArray(y,P,W),A[E++]=et.octEncodeFloat(W)),m&&(r.fromArray(v,P,W),A[E++]=et.octEncodeFloat(W)))}return t.attributes.compressedAttributes=new U({componentDatatype:k.FLOAT,componentsPerAttribute:w,values:A}),o&&delete t.attributes.normal,a&&delete t.attributes.st,m&&delete t.attributes.bitangent,d&&delete t.attributes.tangent,t};function Ae(t){if(f(t.indices))return t;let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least three.");if(e%3!==0)throw new I("The number of vertices must be a multiple of three.");let n=j.createTypedArray(e,e);for(let s=0;s<e;++s)n[s]=s;return t.indices=n,t}function Ie(t){let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least three.");let n=j.createTypedArray(e,(e-2)*3);n[0]=1,n[1]=0,n[2]=2;let s=3;for(let i=3;i<e;++i)n[s++]=i-1,n[s++]=0,n[s++]=i;return t.indices=n,t.primitiveType=D.TRIANGLES,t}function Se(t){let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least 3.");let n=j.createTypedArray(e,(e-2)*3);n[0]=0,n[1]=1,n[2]=2,e>3&&(n[3]=0,n[4]=2,n[5]=3);let s=6;for(let i=3;i<e-1;i+=2)n[s++]=i,n[s++]=i-1,n[s++]=i+1,i+2<e&&(n[s++]=i,n[s++]=i+1,n[s++]=i+2);return t.indices=n,t.primitiveType=D.TRIANGLES,t}function Pe(t){if(f(t.indices))return t;let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");if(e%2!==0)throw new I("The number of vertices must be a multiple of 2.");let n=j.createTypedArray(e,e);for(let s=0;s<e;++s)n[s]=s;return t.indices=n,t}function ge(t){let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");let n=j.createTypedArray(e,(e-1)*2);n[0]=0,n[1]=1;let s=2;for(let i=2;i<e;++i)n[s++]=i-1,n[s++]=i;return t.indices=n,t.primitiveType=D.LINES,t}function Oe(t){let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");let n=j.createTypedArray(e,e*2);n[0]=0,n[1]=1;let s=2;for(let i=2;i<e;++i)n[s++]=i-1,n[s++]=i;return n[s++]=e-1,n[s]=0,t.indices=n,t.primitiveType=D.LINES,t}function Le(t){switch(t.primitiveType){case D.TRIANGLE_FAN:return Ie(t);case D.TRIANGLE_STRIP:return Se(t);case D.TRIANGLES:return Ae(t);case D.LINE_STRIP:return ge(t);case D.LINE_LOOP:return Oe(t);case D.LINES:return Pe(t)}return t}function tt(t,e){Math.abs(t.y)<N.EPSILON6&&(e?t.y=-N.EPSILON6:t.y=N.EPSILON6)}function Ee(t,e,n){if(t.y!==0&&e.y!==0&&n.y!==0){tt(t,t.y<0),tt(e,e.y<0),tt(n,n.y<0);return}let s=Math.abs(t.y),i=Math.abs(e.y),c=Math.abs(n.y),o;s>i?s>c?o=N.sign(t.y):o=N.sign(n.y):i>c?o=N.sign(e.y):o=N.sign(n.y);let a=o<0;tt(t,a),tt(e,a),tt(n,a)}var ee=new r;function X(t,e,n,s){r.add(t,r.multiplyByScalar(r.subtract(e,t,ee),t.y/(t.y-e.y),ee),n),r.clone(n,s),tt(n,!0),tt(s,!1)}var nt=new r,it=new r,st=new r,ot=new r,Rt={positions:new Array(7),indices:new Array(3*3)};function Ne(t,e,n){if(t.x>=0||e.x>=0||n.x>=0)return;Ee(t,e,n);let s=t.y<0,i=e.y<0,c=n.y<0,o=0;o+=s?1:0,o+=i?1:0,o+=c?1:0;let a=Rt.indices;o===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,s?(X(t,e,nt,st),X(t,n,it,ot),a[0]=0,a[3]=1,a[4]=2,a[6]=1):i?(X(e,n,nt,st),X(e,t,it,ot),a[0]=1,a[3]=2,a[4]=0,a[6]=2):c&&(X(n,t,nt,st),X(n,e,it,ot),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):o===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,s?i?c||(X(n,t,nt,st),X(n,e,it,ot),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(X(e,n,nt,st),X(e,t,it,ot),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(X(t,e,nt,st),X(t,n,it,ot),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let p=Rt.positions;return p[0]=t,p[1]=e,p[2]=n,p.length=3,(o===1||o===2)&&(p[3]=nt,p[4]=it,p[5]=st,p[6]=ot,p.length=7),Rt}function ne(t,e){let n=t.attributes;if(n.position.values.length===0)return;for(let i in n)if(n.hasOwnProperty(i)&&f(n[i])&&f(n[i].values)){let c=n[i];c.values=k.createTypedArray(c.componentDatatype,c.values)}let s=B.computeNumberOfVertices(t);return t.indices=j.createTypedArray(s,t.indices),e&&(t.boundingSphere=rt.fromVertices(n.position.values)),t}function lt(t){let e=t.attributes,n={};for(let s in e)if(e.hasOwnProperty(s)&&f(e[s])&&f(e[s].values)){let i=e[s];n[s]=new U({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new B({attributes:n,indices:[],primitiveType:t.primitiveType})}function kt(t,e,n){let s=f(t.geometry.boundingSphere);e=ne(e,s),n=ne(n,s),f(n)&&!f(e)?t.geometry=n:!f(n)&&f(e)?t.geometry=e:(t.westHemisphereGeometry=e,t.eastHemisphereGeometry=n,t.geometry=void 0)}function Ft(t,e){let n=new t,s=new t,i=new t;return function(c,o,a,p,u,d,m,l){let h=t.fromArray(u,c*e,n),y=t.fromArray(u,o*e,s),v=t.fromArray(u,a*e,i);t.multiplyByScalar(h,p.x,h),t.multiplyByScalar(y,p.y,y),t.multiplyByScalar(v,p.z,v);let b=t.add(h,y,h);t.add(b,v,b),l&&t.normalize(b,b),t.pack(b,d,m*e)}}var ze=Ft(dt,4),It=Ft(r,3),ae=Ft(R,2),De=function(t,e,n,s,i,c,o){let a=i[t]*s.x,p=i[e]*s.y,u=i[n]*s.z;c[o]=a+p+u>N.EPSILON6?1:0},wt=new r,Gt=new r,Ct=new r,qe=new r;function Tt(t,e,n,s,i,c,o,a,p,u,d,m,l,h,y,v){if(!f(c)&&!f(o)&&!f(a)&&!f(p)&&!f(u)&&h===0)return;let b=r.fromArray(i,t*3,wt),S=r.fromArray(i,e*3,Gt),x=r.fromArray(i,n*3,Ct),w=Ht(s,b,S,x,qe);if(f(w)){if(f(c)&&It(t,e,n,w,c,m.normal.values,v,!0),f(u)){let A=r.fromArray(u,t*3,wt),E=r.fromArray(u,e*3,Gt),P=r.fromArray(u,n*3,Ct);r.multiplyByScalar(A,w.x,A),r.multiplyByScalar(E,w.y,E),r.multiplyByScalar(P,w.z,P);let O;!r.equals(A,r.ZERO)||!r.equals(E,r.ZERO)||!r.equals(P,r.ZERO)?(O=r.add(A,E,A),r.add(O,P,O),r.normalize(O,O)):(O=wt,O.x=0,O.y=0,O.z=0),r.pack(O,m.extrudeDirection.values,v*3)}if(f(d)&&De(t,e,n,w,d,m.applyOffset.values,v),f(o)&&It(t,e,n,w,o,m.tangent.values,v,!0),f(a)&&It(t,e,n,w,a,m.bitangent.values,v,!0),f(p)&&ae(t,e,n,w,p,m.st.values,v),h>0)for(let A=0;A<h;A++){let E=l[A];Ve(t,e,n,w,v,y[E],m[E])}}}function Ve(t,e,n,s,i,c,o){let a=c.componentsPerAttribute,p=c.values,u=o.values;switch(a){case 4:ze(t,e,n,s,p,u,i,!1);break;case 3:It(t,e,n,s,p,u,i,!1);break;case 2:ae(t,e,n,s,p,u,i,!1);break;default:u[i]=p[t]*s.x+p[e]*s.y+p[n]*s.z}}function Q(t,e,n,s,i,c){let o=t.position.values.length/3;if(i!==-1){let a=s[i],p=n[a];return p===-1?(n[a]=o,t.position.values.push(c.x,c.y,c.z),e.push(o),o):(e.push(p),p)}return t.position.values.push(c.x,c.y,c.z),e.push(o),o}var Re={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function ie(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=f(n.normal)?n.normal.values:void 0,c=f(n.bitangent)?n.bitangent.values:void 0,o=f(n.tangent)?n.tangent.values:void 0,a=f(n.st)?n.st.values:void 0,p=f(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=f(n.applyOffset)?n.applyOffset.values:void 0,d=e.indices,m=[];for(let O in n)n.hasOwnProperty(O)&&!Re[O]&&f(n[O])&&m.push(O);let l=m.length,h=lt(e),y=lt(e),v,b,S,x,w,A=[];A.length=s.length/3;let E=[];for(E.length=s.length/3,w=0;w<A.length;++w)A[w]=-1,E[w]=-1;let P=d.length;for(w=0;w<P;w+=3){let O=d[w],L=d[w+1],g=d[w+2],T=r.fromArray(s,O*3),C=r.fromArray(s,L*3),z=r.fromArray(s,g*3),q=Ne(T,C,z);if(f(q)&&q.positions.length>3){let V=q.positions,G=q.indices,M=G.length;for(let J=0;J<M;++J){let Y=G[J],_=V[Y];_.y<0?(v=y.attributes,b=y.indices,S=A):(v=h.attributes,b=h.indices,S=E),x=Q(v,b,S,d,Y<3?w+Y:-1,_),Tt(O,L,g,_,s,i,o,c,a,p,u,v,m,l,n,x)}}else f(q)&&(T=q.positions[0],C=q.positions[1],z=q.positions[2]),T.y<0?(v=y.attributes,b=y.indices,S=A):(v=h.attributes,b=h.indices,S=E),x=Q(v,b,S,d,w,T),Tt(O,L,g,T,s,i,o,c,a,p,u,v,m,l,n,x),x=Q(v,b,S,d,w+1,C),Tt(O,L,g,C,s,i,o,c,a,p,u,v,m,l,n,x),x=Q(v,b,S,d,w+2,z),Tt(O,L,g,z,s,i,o,c,a,p,u,v,m,l,n,x)}kt(t,y,h)}var ue=Et.fromPointNormal(r.ZERO,r.UNIT_Y),Ge=new r,Ce=new r;function ut(t,e,n,s,i,c,o){if(!f(o))return;let a=r.fromArray(s,t*3,wt);r.equalsEpsilon(a,n,N.EPSILON10)?c.applyOffset.values[i]=o[t]:c.applyOffset.values[i]=o[e]}function se(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=f(n.applyOffset)?n.applyOffset.values:void 0,c=e.indices,o=lt(e),a=lt(e),p,u=c.length,d=[];d.length=s.length/3;let m=[];for(m.length=s.length/3,p=0;p<d.length;++p)d[p]=-1,m[p]=-1;for(p=0;p<u;p+=2){let l=c[p],h=c[p+1],y=r.fromArray(s,l*3,wt),v=r.fromArray(s,h*3,Gt),b;Math.abs(y.y)<N.EPSILON6&&(y.y<0?y.y=-N.EPSILON6:y.y=N.EPSILON6),Math.abs(v.y)<N.EPSILON6&&(v.y<0?v.y=-N.EPSILON6:v.y=N.EPSILON6);let S=o.attributes,x=o.indices,w=m,A=a.attributes,E=a.indices,P=d,O=Lt.lineSegmentPlane(y,v,ue,Ct);if(f(O)){let L=r.multiplyByScalar(r.UNIT_Y,5*N.EPSILON9,Ge);y.y<0&&(r.negate(L,L),S=a.attributes,x=a.indices,w=d,A=o.attributes,E=o.indices,P=m);let g=r.add(O,L,Ce);b=Q(S,x,w,c,p,y),ut(l,h,y,s,b,S,i),b=Q(S,x,w,c,-1,g),ut(l,h,g,s,b,S,i),r.negate(L,L),r.add(O,L,g),b=Q(A,E,P,c,-1,g),ut(l,h,g,s,b,A,i),b=Q(A,E,P,c,p+1,v),ut(l,h,v,s,b,A,i)}else{let L,g,T;y.y<0?(L=a.attributes,g=a.indices,T=d):(L=o.attributes,g=o.indices,T=m),b=Q(L,g,T,c,p,y),ut(l,h,y,s,b,L,i),b=Q(L,g,T,c,p+1,v),ut(l,h,v,s,b,L,i)}}kt(t,a,o)}var oe=new R,Be=new R,le=new r,fe=new r,Bt=new r,ke=new r,Fe=new r,Me=new r,re=new dt;function ce(t){let e=t.attributes,n=e.position.values,s=e.prevPosition.values,i=e.nextPosition.values,c=n.length;for(let o=0;o<c;o+=3){let a=r.unpack(n,o,le);if(a.x>0)continue;let p=r.unpack(s,o,fe);(a.y<0&&p.y>0||a.y>0&&p.y<0)&&(o-3>0?(s[o]=n[o-3],s[o+1]=n[o-2],s[o+2]=n[o-1]):r.pack(a,s,o));let u=r.unpack(i,o,Bt);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(o+3<c?(i[o]=n[o+3],i[o+1]=n[o+4],i[o+2]=n[o+5]):r.pack(a,i,o))}}var _e=5*N.EPSILON9,At=N.EPSILON6;function Ue(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=n.prevPosition.values,c=n.nextPosition.values,o=n.expandAndWidth.values,a=f(n.st)?n.st.values:void 0,p=f(n.color)?n.color.values:void 0,u=lt(e),d=lt(e),m,l,h,y=!1,v=s.length/3;for(m=0;m<v;m+=4){let b=m,S=m+2,x=r.fromArray(s,b*3,le),w=r.fromArray(s,S*3,fe);if(Math.abs(x.y)<At)for(x.y=At*(w.y<0?-1:1),s[m*3+1]=x.y,s[(m+1)*3+1]=x.y,l=b*3;l<b*3+4*3;l+=3)i[l]=s[m*3],i[l+1]=s[m*3+1],i[l+2]=s[m*3+2];if(Math.abs(w.y)<At)for(w.y=At*(x.y<0?-1:1),s[(m+2)*3+1]=w.y,s[(m+3)*3+1]=w.y,l=b*3;l<b*3+4*3;l+=3)c[l]=s[(m+2)*3],c[l+1]=s[(m+2)*3+1],c[l+2]=s[(m+2)*3+2];let A=u.attributes,E=u.indices,P=d.attributes,O=d.indices,L=Lt.lineSegmentPlane(x,w,ue,ke);if(f(L)){y=!0;let g=r.multiplyByScalar(r.UNIT_Y,_e,Fe);x.y<0&&(r.negate(g,g),A=d.attributes,E=d.indices,P=u.attributes,O=u.indices);let T=r.add(L,g,Me);A.position.values.push(x.x,x.y,x.z,x.x,x.y,x.z),A.position.values.push(T.x,T.y,T.z),A.position.values.push(T.x,T.y,T.z),A.prevPosition.values.push(i[b*3],i[b*3+1],i[b*3+2]),A.prevPosition.values.push(i[b*3+3],i[b*3+4],i[b*3+5]),A.prevPosition.values.push(x.x,x.y,x.z,x.x,x.y,x.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),r.negate(g,g),r.add(L,g,T),P.position.values.push(T.x,T.y,T.z),P.position.values.push(T.x,T.y,T.z),P.position.values.push(w.x,w.y,w.z,w.x,w.y,w.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.nextPosition.values.push(w.x,w.y,w.z,w.x,w.y,w.z),P.nextPosition.values.push(c[S*3],c[S*3+1],c[S*3+2]),P.nextPosition.values.push(c[S*3+3],c[S*3+4],c[S*3+5]);let C=R.fromArray(o,b*2,oe),z=Math.abs(C.y);A.expandAndWidth.values.push(-1,z,1,z),A.expandAndWidth.values.push(-1,-z,1,-z),P.expandAndWidth.values.push(-1,z,1,z),P.expandAndWidth.values.push(-1,-z,1,-z);let q=r.magnitudeSquared(r.subtract(L,x,Bt));if(q/=r.magnitudeSquared(r.subtract(w,x,Bt)),f(p)){let V=dt.fromArray(p,b*4,re),G=dt.fromArray(p,S*4,re),M=N.lerp(V.x,G.x,q),J=N.lerp(V.y,G.y,q),Y=N.lerp(V.z,G.z,q),_=N.lerp(V.w,G.w,q);for(l=b*4;l<b*4+2*4;++l)A.color.values.push(p[l]);for(A.color.values.push(M,J,Y,_),A.color.values.push(M,J,Y,_),P.color.values.push(M,J,Y,_),P.color.values.push(M,J,Y,_),l=S*4;l<S*4+2*4;++l)P.color.values.push(p[l])}if(f(a)){let V=R.fromArray(a,b*2,oe),G=R.fromArray(a,(m+3)*2,Be),M=N.lerp(V.x,G.x,q);for(l=b*2;l<b*2+2*2;++l)A.st.values.push(a[l]);for(A.st.values.push(M,V.y),A.st.values.push(M,G.y),P.st.values.push(M,V.y),P.st.values.push(M,G.y),l=S*2;l<S*2+2*2;++l)P.st.values.push(a[l])}h=A.position.values.length/3-4,E.push(h,h+2,h+1),E.push(h+1,h+2,h+3),h=P.position.values.length/3-4,O.push(h,h+2,h+1),O.push(h+1,h+2,h+3)}else{let g,T;for(x.y<0?(g=d.attributes,T=d.indices):(g=u.attributes,T=u.indices),g.position.values.push(x.x,x.y,x.z),g.position.values.push(x.x,x.y,x.z),g.position.values.push(w.x,w.y,w.z),g.position.values.push(w.x,w.y,w.z),l=m*3;l<m*3+4*3;++l)g.prevPosition.values.push(i[l]),g.nextPosition.values.push(c[l]);for(l=m*2;l<m*2+4*2;++l)g.expandAndWidth.values.push(o[l]),f(a)&&g.st.values.push(a[l]);if(f(p))for(l=m*4;l<m*4+4*4;++l)g.color.values.push(p[l]);h=g.position.values.length/3-4,T.push(h,h+2,h+1),T.push(h+1,h+2,h+3)}}y&&(ce(d),ce(u)),kt(t,d,u)}F.splitLongitude=function(t){if(!f(t))throw new I("instance is required.");let e=t.geometry,n=e.boundingSphere;if(f(n)&&(n.center.x-n.radius>0||rt.intersectPlane(n,Et.ORIGIN_ZX_PLANE)!==Ut.INTERSECTING))return t;if(e.geometryType!==mt.NONE)switch(e.geometryType){case mt.POLYLINES:Ue(t);break;case mt.TRIANGLES:ie(t);break;case mt.LINES:se(t);break}else Le(e),e.primitiveType===D.TRIANGLES?ie(t):e.primitiveType===D.LINES&&se(t);return t};var gn=F;export{gn as a}; diff --git a/libs/cesium/1.111/Workers/chunk-4FFHQQYZ.js b/libs/cesium/1.111/Workers/chunk-4FFHQQYZ.js new file mode 100644 index 000000000..7defc58a6 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-4FFHQQYZ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-K36PKEJW.js";import{e as l}from"./chunk-ZUCO5WNM.js";function p(n,r,i){i=a(i,!1);let f={},u=l(n),s=l(r),e,t,o;if(u)for(e in n)n.hasOwnProperty(e)&&(t=n[e],s&&i&&typeof t=="object"&&r.hasOwnProperty(e)?(o=r[e],typeof o=="object"?f[e]=p(t,o,i):f[e]=t):f[e]=t);if(s)for(e in r)r.hasOwnProperty(e)&&!f.hasOwnProperty(e)&&(o=r[e],f[e]=o);return f}var h=p;export{h as a}; diff --git a/libs/cesium/1.111/Workers/chunk-4H3LC6HP.js b/libs/cesium/1.111/Workers/chunk-4H3LC6HP.js new file mode 100644 index 000000000..0df911fb0 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-4H3LC6HP.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as $}from"./chunk-4XIXQUKW.js";import{a as b}from"./chunk-3ZQZIWLR.js";import{a as U}from"./chunk-JZL634RF.js";import{a as E}from"./chunk-3UAKIC5Y.js";import{c as z,d as L}from"./chunk-QEWKHB6D.js";import{a as D,d as y}from"./chunk-DV7DPSRL.js";import{b as G}from"./chunk-KCIWEUSR.js";import{a as k}from"./chunk-7XDW3BZW.js";import{c as B}from"./chunk-F33YCXD2.js";import{a as v}from"./chunk-K36PKEJW.js";import{a as F,b as I}from"./chunk-KD2PMTHD.js";import{e as a}from"./chunk-ZUCO5WNM.js";function w(e,n,t){e=v(e,0),n=v(n,0),t=v(t,0),this.value=new Float32Array([e,n,t])}Object.defineProperties(w.prototype,{componentDatatype:{get:function(){return k.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});w.fromCartesian3=function(e){return I.defined("offset",e),new w(e.x,e.y,e.z)};w.toValue=function(e,n){return I.defined("offset",e),a(n)||(n=new Float32Array([e.x,e.y,e.z])),n[0]=e.x,n[1]=e.y,n[2]=e.z,n};var j=w;function K(e,n,t){let i=!t,r=e.length,c;if(!i&&r>1){let o=e[0].modelMatrix;for(c=1;c<r;++c)if(!G.equals(o,e[c].modelMatrix)){i=!0;break}}if(i)for(c=0;c<r;++c)a(e[c].geometry)&&b.transformToWorldCoordinates(e[c]);else G.multiplyTransformation(n,e[0].modelMatrix,n)}function P(e,n){let t=e.attributes,i=t.position,r=i.values.length/i.componentsPerAttribute;t.batchId=new L({componentDatatype:k.FLOAT,componentsPerAttribute:1,values:new Float32Array(r)});let c=t.batchId.values;for(let o=0;o<r;++o)c[o]=n}function N(e){let n=e.length;for(let t=0;t<n;++t){let i=e[t];a(i.geometry)?P(i.geometry,t):a(i.westHemisphereGeometry)&&a(i.eastHemisphereGeometry)&&(P(i.westHemisphereGeometry,t),P(i.eastHemisphereGeometry,t))}}function Q(e){let n=e.instances,t=e.projection,i=e.elementIndexUintSupported,r=e.scene3DOnly,c=e.vertexCacheOptimize,o=e.compressVertices,g=e.modelMatrix,s,u,m,p=n.length;for(s=0;s<p;++s)if(a(n[s].geometry)){m=n[s].geometry.primitiveType;break}for(s=1;s<p;++s)if(a(n[s].geometry)&&n[s].geometry.primitiveType!==m)throw new F("All instance geometries must have the same primitiveType.");if(K(n,g,r),!r)for(s=0;s<p;++s)a(n[s].geometry)&&b.splitLongitude(n[s]);if(N(n),c)for(s=0;s<p;++s){let f=n[s];a(f.geometry)?(b.reorderForPostVertexCache(f.geometry),b.reorderForPreVertexCache(f.geometry)):a(f.westHemisphereGeometry)&&a(f.eastHemisphereGeometry)&&(b.reorderForPostVertexCache(f.westHemisphereGeometry),b.reorderForPreVertexCache(f.westHemisphereGeometry),b.reorderForPostVertexCache(f.eastHemisphereGeometry),b.reorderForPreVertexCache(f.eastHemisphereGeometry))}let l=b.combineInstances(n);for(p=l.length,s=0;s<p;++s){u=l[s];let f=u.attributes;if(r)for(let d in f)f.hasOwnProperty(d)&&f[d].componentDatatype===k.DOUBLE&&b.encodeAttribute(u,d,`${d}3DHigh`,`${d}3DLow`);else for(let d in f)if(f.hasOwnProperty(d)&&f[d].componentDatatype===k.DOUBLE){let h=`${d}3D`,x=`${d}2D`;b.projectTo2D(u,d,h,x,t),a(u.boundingSphere)&&d==="position"&&(u.boundingSphereCV=y.fromVertices(u.attributes.position2D.values)),b.encodeAttribute(u,h,`${h}High`,`${h}Low`),b.encodeAttribute(u,x,`${x}High`,`${x}Low`)}o&&b.compressVertices(u)}if(!i){let f=[];for(p=l.length,s=0;s<p;++s)u=l[s],f=f.concat(b.fitToUnsignedShortIndices(u));l=f}return l}function T(e,n,t,i){let r,c,o,g=i.length-1;if(g>=0){let u=i[g];r=u.offset+u.count,o=u.index,c=t[o].indices.length}else r=0,o=0,c=t[o].indices.length;let s=e.length;for(let u=0;u<s;++u){let p=e[u][n];if(!a(p))continue;let l=p.indices.length;r+l>c&&(r=0,c=t[++o].indices.length),i.push({index:o,offset:r,count:l}),r+=l}}function X(e,n){let t=[];return T(e,"geometry",n,t),T(e,"westHemisphereGeometry",n,t),T(e,"eastHemisphereGeometry",n,t),t}var S={};S.combineGeometry=function(e){let n,t,i=e.instances,r=i.length,c,o,g=!1;r>0&&(n=Q(e),n.length>0&&(t=b.createAttributeLocations(n[0]),e.createPickOffsets&&(c=X(i,n))),a(i[0].attributes)&&a(i[0].attributes.offset)&&(o=new Array(r),g=!0));let s=new Array(r),u=new Array(r);for(let m=0;m<r;++m){let p=i[m],l=p.geometry;a(l)&&(s[m]=l.boundingSphere,u[m]=l.boundingSphereCV,g&&(o[m]=p.geometry.offsetAttribute));let f=p.eastHemisphereGeometry,d=p.westHemisphereGeometry;a(f)&&a(d)&&(a(f.boundingSphere)&&a(d.boundingSphere)&&(s[m]=y.union(f.boundingSphere,d.boundingSphere)),a(f.boundingSphereCV)&&a(d.boundingSphereCV)&&(u[m]=y.union(f.boundingSphereCV,d.boundingSphereCV)))}return{geometries:n,modelMatrix:e.modelMatrix,attributeLocations:t,pickOffsets:c,offsetInstanceExtend:o,boundingSpheres:s,boundingSpheresCV:u}};function Y(e,n){let t=e.attributes;for(let i in t)if(t.hasOwnProperty(i)){let r=t[i];a(r)&&a(r.values)&&n.push(r.values.buffer)}a(e.indices)&&n.push(e.indices.buffer)}function Z(e,n){let t=e.length;for(let i=0;i<t;++i)Y(e[i],n)}function _(e){let n=1,t=e.length;for(let i=0;i<t;i++){let r=e[i];if(++n,!a(r))continue;let c=r.attributes;n+=7+2*y.packedLength+(a(r.indices)?r.indices.length:0);for(let o in c)if(c.hasOwnProperty(o)&&a(c[o])){let g=c[o];n+=5+g.values.length}}return n}S.packCreateGeometryResults=function(e,n){let t=new Float64Array(_(e)),i=[],r={},c=e.length,o=0;t[o++]=c;for(let g=0;g<c;g++){let s=e[g],u=a(s);if(t[o++]=u?1:0,!u)continue;t[o++]=s.primitiveType,t[o++]=s.geometryType,t[o++]=v(s.offsetAttribute,-1);let m=a(s.boundingSphere)?1:0;t[o++]=m,m&&y.pack(s.boundingSphere,t,o),o+=y.packedLength;let p=a(s.boundingSphereCV)?1:0;t[o++]=p,p&&y.pack(s.boundingSphereCV,t,o),o+=y.packedLength;let l=s.attributes,f=[];for(let h in l)l.hasOwnProperty(h)&&a(l[h])&&(f.push(h),a(r[h])||(r[h]=i.length,i.push(h)));t[o++]=f.length;for(let h=0;h<f.length;h++){let x=f[h],C=l[x];t[o++]=r[x],t[o++]=C.componentDatatype,t[o++]=C.componentsPerAttribute,t[o++]=C.normalize?1:0,t[o++]=C.values.length,t.set(C.values,o),o+=C.values.length}let d=a(s.indices)?s.indices.length:0;t[o++]=d,d>0&&(t.set(s.indices,o),o+=d)}return n.push(t.buffer),{stringTable:i,packedData:t}};S.unpackCreateGeometryResults=function(e){let n=e.stringTable,t=e.packedData,i,r=new Array(t[0]),c=0,o=1;for(;o<t.length;){if(!(t[o++]===1)){r[c++]=void 0;continue}let s=t[o++],u=t[o++],m=t[o++];m===-1&&(m=void 0);let p,l;t[o++]===1&&(p=y.unpack(t,o)),o+=y.packedLength,t[o++]===1&&(l=y.unpack(t,o)),o+=y.packedLength;let h,x,C,H=new E,q=t[o++];for(i=0;i<q;i++){let A=n[t[o++]],M=t[o++];C=t[o++];let J=t[o++]!==0;h=t[o++],x=k.createTypedArray(M,h);for(let O=0;O<h;O++)x[O]=t[o++];H[A]=new L({componentDatatype:M,componentsPerAttribute:C,normalize:J,values:x})}let V;if(h=t[o++],h>0){let A=x.length/C;for(V=U.createTypedArray(A,h),i=0;i<h;i++)V[i]=t[o++]}r[c++]=new z({primitiveType:s,geometryType:u,boundingSphere:p,boundingSphereCV:l,indices:V,attributes:H,offsetAttribute:m})}return r};function ee(e,n){let t=e.length,i=new Float64Array(1+t*19),r=0;i[r++]=t;for(let c=0;c<t;c++){let o=e[c];if(G.pack(o.modelMatrix,i,r),r+=G.packedLength,a(o.attributes)&&a(o.attributes.offset)){let g=o.attributes.offset.value;i[r]=g[0],i[r+1]=g[1],i[r+2]=g[2]}r+=3}return n.push(i.buffer),i}function te(e){let n=e,t=new Array(n[0]),i=0,r=1;for(;r<n.length;){let c=G.unpack(n,r),o;r+=G.packedLength,a(n[r])&&(o={offset:new j(n[r],n[r+1],n[r+2])}),r+=3,t[i++]={modelMatrix:c,attributes:o}}return t}S.packCombineGeometryParameters=function(e,n){let t=e.createGeometryResults,i=t.length;for(let r=0;r<i;r++)n.push(t[r].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:ee(e.instances,n),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof D,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};S.unpackCombineGeometryParameters=function(e){let n=te(e.packedInstances),t=e.createGeometryResults,i=t.length,r=0;for(let g=0;g<i;g++){let s=S.unpackCreateGeometryResults(t[g]),u=s.length;for(let m=0;m<u;m++){let p=s[m],l=n[r];l.geometry=p,++r}}let c=B.clone(e.ellipsoid),o=e.isGeographic?new D(c):new $(c);return{instances:n,ellipsoid:c,projection:o,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:G.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function R(e){let n=e.length,t=1+(y.packedLength+1)*n,i=new Float32Array(t),r=0;i[r++]=n;for(let c=0;c<n;++c){let o=e[c];a(o)?(i[r++]=1,y.pack(e[c],i,r)):i[r++]=0,r+=y.packedLength}return i}function W(e){let n=new Array(e[0]),t=0,i=1;for(;i<e.length;)e[i++]===1&&(n[t]=y.unpack(e,i)),++t,i+=y.packedLength;return n}S.packCombineGeometryResults=function(e,n){a(e.geometries)&&Z(e.geometries,n);let t=R(e.boundingSpheres),i=R(e.boundingSpheresCV);return n.push(t.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:t,boundingSpheresCV:i}};S.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:W(e.boundingSpheres),boundingSpheresCV:W(e.boundingSpheresCV)}};var Ge=S;export{Ge as a}; diff --git a/libs/cesium/1.111/Workers/chunk-4HIMVLZZ.js b/libs/cesium/1.111/Workers/chunk-4HIMVLZZ.js new file mode 100644 index 000000000..566443314 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-4HIMVLZZ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as O,b as d}from"./chunk-DV7DPSRL.js";import{c as R,d as g}from"./chunk-KCIWEUSR.js";import{b as p}from"./chunk-F33YCXD2.js";import{a as w}from"./chunk-K36PKEJW.js";import{b as m}from"./chunk-KD2PMTHD.js";import{e as f}from"./chunk-ZUCO5WNM.js";function o(i,h,n,t){this.x=w(i,0),this.y=w(h,0),this.width=w(n,0),this.height=w(t,0)}o.packedLength=4;o.pack=function(i,h,n){return m.typeOf.object("value",i),m.defined("array",h),n=w(n,0),h[n++]=i.x,h[n++]=i.y,h[n++]=i.width,h[n]=i.height,h};o.unpack=function(i,h,n){return m.defined("array",i),h=w(h,0),f(n)||(n=new o),n.x=i[h++],n.y=i[h++],n.width=i[h++],n.height=i[h],n};o.fromPoints=function(i,h){if(f(h)||(h=new o),!f(i)||i.length===0)return h.x=0,h.y=0,h.width=0,h.height=0,h;let n=i.length,t=i[0].x,c=i[0].y,e=i[0].x,y=i[0].y;for(let x=1;x<n;x++){let b=i[x],j=b.x,M=b.y;t=Math.min(j,t),e=Math.max(j,e),c=Math.min(M,c),y=Math.max(M,y)}return h.x=t,h.y=c,h.width=e-t,h.height=y-c,h};var L=new O,X=new p,Y=new p;o.fromRectangle=function(i,h,n){if(f(n)||(n=new o),!f(i))return n.x=0,n.y=0,n.width=0,n.height=0,n;h=w(h,L);let t=h.project(R.southwest(i,X)),c=h.project(R.northeast(i,Y));return g.subtract(c,t,c),n.x=t.x,n.y=t.y,n.width=c.x,n.height=c.y,n};o.clone=function(i,h){if(f(i))return f(h)?(h.x=i.x,h.y=i.y,h.width=i.width,h.height=i.height,h):new o(i.x,i.y,i.width,i.height)};o.union=function(i,h,n){m.typeOf.object("left",i),m.typeOf.object("right",h),f(n)||(n=new o);let t=Math.min(i.x,h.x),c=Math.min(i.y,h.y),e=Math.max(i.x+i.width,h.x+h.width),y=Math.max(i.y+i.height,h.y+h.height);return n.x=t,n.y=c,n.width=e-t,n.height=y-c,n};o.expand=function(i,h,n){m.typeOf.object("rectangle",i),m.typeOf.object("point",h),n=o.clone(i,n);let t=h.x-n.x,c=h.y-n.y;return t>n.width?n.width=t:t<0&&(n.width-=t,n.x=h.x),c>n.height?n.height=c:c<0&&(n.height-=c,n.y=h.y),n};o.intersect=function(i,h){m.typeOf.object("left",i),m.typeOf.object("right",h);let n=i.x,t=i.y,c=h.x,e=h.y;return n>c+h.width||n+i.width<c||t+i.height<e||t>e+h.height?d.OUTSIDE:d.INTERSECTING};o.equals=function(i,h){return i===h||f(i)&&f(h)&&i.x===h.x&&i.y===h.y&&i.width===h.width&&i.height===h.height};o.prototype.clone=function(i){return o.clone(this,i)};o.prototype.intersect=function(i){return o.intersect(this,i)};o.prototype.equals=function(i){return o.equals(this,i)};var S=o;export{S as a}; diff --git a/libs/cesium/1.111/Workers/chunk-4M7FKQYC.js b/libs/cesium/1.111/Workers/chunk-4M7FKQYC.js new file mode 100644 index 000000000..5dc3eecf8 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-4M7FKQYC.js @@ -0,0 +1,28 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{e as f}from"./chunk-ZUCO5WNM.js";function c(t){let n,a=t.name,e=t.message;f(a)&&f(e)?n=`${a}: ${e}`:n=t.toString();let o=t.stack;return f(o)&&(n+=` +${o}`),n}var i=c;function l(t){async function n({data:e}){let o=[],s={id:e.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=e.baseUrl;try{let r=await t(e.parameters,o);s.result=r}catch(r){r instanceof Error?s.error={name:r.name,message:r.message,stack:r.stack}:s.error=r}e.canTransferArrayBuffer||(o.length=0);try{postMessage(s,o)}catch(r){s.result=void 0,s.error=`postMessage failed with error: ${i(r)} + with responseMessage: ${JSON.stringify(s)}`,postMessage(s)}}function a(e){postMessage({id:e.data?.id,error:`postMessage failed with error: ${JSON.stringify(e)}`})}return self.onmessage=n,self.onmessageerror=a,self}var d=l;export{d as a}; diff --git a/libs/cesium/1.111/Workers/chunk-4XIXQUKW.js b/libs/cesium/1.111/Workers/chunk-4XIXQUKW.js new file mode 100644 index 000000000..af611651a --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-4XIXQUKW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as c,b as p,c as f}from"./chunk-F33YCXD2.js";import{a as d}from"./chunk-DUBQPPQZ.js";import{a as u}from"./chunk-K36PKEJW.js";import{a as s}from"./chunk-KD2PMTHD.js";import{e as a}from"./chunk-ZUCO5WNM.js";function e(t){this._ellipsoid=u(t,f.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});e.mercatorAngleToGeodeticLatitude=function(t){return d.PI_OVER_TWO-2*Math.atan(Math.exp(-t))};e.geodeticLatitudeToMercatorAngle=function(t){t>e.MaximumLatitude?t=e.MaximumLatitude:t<-e.MaximumLatitude&&(t=-e.MaximumLatitude);let i=Math.sin(t);return .5*Math.log((1+i)/(1-i))};e.MaximumLatitude=e.mercatorAngleToGeodeticLatitude(Math.PI);e.prototype.project=function(t,i){let o=this._semimajorAxis,r=t.longitude*o,n=e.geodeticLatitudeToMercatorAngle(t.latitude)*o,m=t.height;return a(i)?(i.x=r,i.y=n,i.z=m,i):new c(r,n,m)};e.prototype.unproject=function(t,i){if(!a(t))throw new s("cartesian is required");let o=this._oneOverSemimajorAxis,r=t.x*o,n=e.mercatorAngleToGeodeticLatitude(t.y*o),m=t.z;return a(i)?(i.longitude=r,i.latitude=n,i.height=m,i):new p(r,n,m)};var L=e;export{L as a}; diff --git a/libs/cesium/1.111/Workers/chunk-6FTJPHAD.js b/libs/cesium/1.111/Workers/chunk-6FTJPHAD.js new file mode 100644 index 000000000..333c787fd --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-6FTJPHAD.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var e={NONE:0,GEODESIC:1,RHUMB:2},t=Object.freeze(e);export{t as a}; diff --git a/libs/cesium/1.111/Workers/chunk-7XDW3BZW.js b/libs/cesium/1.111/Workers/chunk-7XDW3BZW.js new file mode 100644 index 000000000..39fc534a4 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-7XDW3BZW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as N}from"./chunk-CG3JQAX7.js";import{a as i}from"./chunk-K36PKEJW.js";import{a}from"./chunk-KD2PMTHD.js";import{e as T}from"./chunk-ZUCO5WNM.js";var r={BYTE:N.BYTE,UNSIGNED_BYTE:N.UNSIGNED_BYTE,SHORT:N.SHORT,UNSIGNED_SHORT:N.UNSIGNED_SHORT,INT:N.INT,UNSIGNED_INT:N.UNSIGNED_INT,FLOAT:N.FLOAT,DOUBLE:N.DOUBLE};r.getSizeInBytes=function(n){if(!T(n))throw new a("value is required.");switch(n){case r.BYTE:return Int8Array.BYTES_PER_ELEMENT;case r.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case r.SHORT:return Int16Array.BYTES_PER_ELEMENT;case r.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case r.INT:return Int32Array.BYTES_PER_ELEMENT;case r.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case r.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case r.DOUBLE:return Float64Array.BYTES_PER_ELEMENT;default:throw new a("componentDatatype is not a valid value.")}};r.fromTypedArray=function(n){if(n instanceof Int8Array)return r.BYTE;if(n instanceof Uint8Array)return r.UNSIGNED_BYTE;if(n instanceof Int16Array)return r.SHORT;if(n instanceof Uint16Array)return r.UNSIGNED_SHORT;if(n instanceof Int32Array)return r.INT;if(n instanceof Uint32Array)return r.UNSIGNED_INT;if(n instanceof Float32Array)return r.FLOAT;if(n instanceof Float64Array)return r.DOUBLE;throw new a("array must be an Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, or Float64Array.")};r.validate=function(n){return T(n)&&(n===r.BYTE||n===r.UNSIGNED_BYTE||n===r.SHORT||n===r.UNSIGNED_SHORT||n===r.INT||n===r.UNSIGNED_INT||n===r.FLOAT||n===r.DOUBLE)};r.createTypedArray=function(n,e){if(!T(n))throw new a("componentDatatype is required.");if(!T(e))throw new a("valuesOrLength is required.");switch(n){case r.BYTE:return new Int8Array(e);case r.UNSIGNED_BYTE:return new Uint8Array(e);case r.SHORT:return new Int16Array(e);case r.UNSIGNED_SHORT:return new Uint16Array(e);case r.INT:return new Int32Array(e);case r.UNSIGNED_INT:return new Uint32Array(e);case r.FLOAT:return new Float32Array(e);case r.DOUBLE:return new Float64Array(e);default:throw new a("componentDatatype is not a valid value.")}};r.createArrayBufferView=function(n,e,E,t){if(!T(n))throw new a("componentDatatype is required.");if(!T(e))throw new a("buffer is required.");switch(E=i(E,0),t=i(t,(e.byteLength-E)/r.getSizeInBytes(n)),n){case r.BYTE:return new Int8Array(e,E,t);case r.UNSIGNED_BYTE:return new Uint8Array(e,E,t);case r.SHORT:return new Int16Array(e,E,t);case r.UNSIGNED_SHORT:return new Uint16Array(e,E,t);case r.INT:return new Int32Array(e,E,t);case r.UNSIGNED_INT:return new Uint32Array(e,E,t);case r.FLOAT:return new Float32Array(e,E,t);case r.DOUBLE:return new Float64Array(e,E,t);default:throw new a("componentDatatype is not a valid value.")}};r.fromName=function(n){switch(n){case"BYTE":return r.BYTE;case"UNSIGNED_BYTE":return r.UNSIGNED_BYTE;case"SHORT":return r.SHORT;case"UNSIGNED_SHORT":return r.UNSIGNED_SHORT;case"INT":return r.INT;case"UNSIGNED_INT":return r.UNSIGNED_INT;case"FLOAT":return r.FLOAT;case"DOUBLE":return r.DOUBLE;default:throw new a("name is not a valid value.")}};var U=Object.freeze(r);export{U as a}; diff --git a/libs/cesium/1.111/Workers/chunk-A7HHFHR4.js b/libs/cesium/1.111/Workers/chunk-A7HHFHR4.js new file mode 100644 index 000000000..095df988a --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-A7HHFHR4.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as L}from"./chunk-CN7OWDF4.js";import{a as j}from"./chunk-N52FZRFP.js";import{a as D}from"./chunk-JZL634RF.js";import{a as V}from"./chunk-3UAKIC5Y.js";import{b as T,c as B,d as x}from"./chunk-QEWKHB6D.js";import{d as O}from"./chunk-DV7DPSRL.js";import{a as S}from"./chunk-7XDW3BZW.js";import{a as c,c as l}from"./chunk-F33YCXD2.js";import{a as E}from"./chunk-DUBQPPQZ.js";import{a as m}from"./chunk-K36PKEJW.js";import{a as _}from"./chunk-KD2PMTHD.js";import{e as d}from"./chunk-ZUCO5WNM.js";var q=new c,M=new c;function U(e){let t=e.center;M=c.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,M),e.height,M),M=c.add(t,M,M);let i=new O(M,e.semiMajorAxis),f=L.computeEllipsePositions(e,!1,!0).outerPositions,o=new V({position:new x({componentDatatype:S.DOUBLE,componentsPerAttribute:3,values:L.raisePositionsToHeight(f,e,!1)})}),r=f.length/3,u=D.createTypedArray(r,r*2),h=0;for(let n=0;n<r;++n)u[h++]=n,u[h++]=(n+1)%r;return{boundingSphere:i,attributes:o,indices:u}}var N=new O,P=new O;function R(e){let t=e.center,i=e.ellipsoid,f=e.semiMajorAxis,o=c.multiplyByScalar(i.geodeticSurfaceNormal(t,q),e.height,q);N.center=c.add(t,o,N.center),N.radius=f,o=c.multiplyByScalar(i.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),P.center=c.add(t,o,P.center),P.radius=f;let r=L.computeEllipsePositions(e,!1,!0).outerPositions,u=new V({position:new x({componentDatatype:S.DOUBLE,componentsPerAttribute:3,values:L.raisePositionsToHeight(r,e,!0)})});r=u.position.values;let h=O.union(N,P),n=r.length/3;if(d(e.offsetAttribute)){let g=new Uint8Array(n);if(e.offsetAttribute===j.TOP)g=g.fill(1,0,n/2);else{let H=e.offsetAttribute===j.NONE?0:1;g=g.fill(H)}u.applyOffset=new x({componentDatatype:S.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let p=m(e.numberOfVerticalLines,16);p=E.clamp(p,0,n/2);let a=D.createTypedArray(n,n*2+p*2);n/=2;let A=0,s;for(s=0;s<n;++s)a[A++]=s,a[A++]=(s+1)%n,a[A++]=s+n,a[A++]=(s+1)%n+n;let k;if(p>0){let g=Math.min(p,n);k=Math.round(n/g);let H=Math.min(k*p,n);for(s=0;s<H;s+=k)a[A++]=s,a[A++]=s+n}return{boundingSphere:h,attributes:u,indices:a}}function w(e){e=m(e,m.EMPTY_OBJECT);let t=e.center,i=m(e.ellipsoid,l.WGS84),f=e.semiMajorAxis,o=e.semiMinorAxis,r=m(e.granularity,E.RADIANS_PER_DEGREE);if(!d(t))throw new _("center is required.");if(!d(f))throw new _("semiMajorAxis is required.");if(!d(o))throw new _("semiMinorAxis is required.");if(f<o)throw new _("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(r<=0)throw new _("granularity must be greater than zero.");let u=m(e.height,0),h=m(e.extrudedHeight,u);this._center=c.clone(t),this._semiMajorAxis=f,this._semiMinorAxis=o,this._ellipsoid=l.clone(i),this._rotation=m(e.rotation,0),this._height=Math.max(h,u),this._granularity=r,this._extrudedHeight=Math.min(h,u),this._numberOfVerticalLines=Math.max(m(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}w.packedLength=c.packedLength+l.packedLength+8;w.pack=function(e,t,i){if(!d(e))throw new _("value is required");if(!d(t))throw new _("array is required");return i=m(i,0),c.pack(e._center,t,i),i+=c.packedLength,l.pack(e._ellipsoid,t,i),i+=l.packedLength,t[i++]=e._semiMajorAxis,t[i++]=e._semiMinorAxis,t[i++]=e._rotation,t[i++]=e._height,t[i++]=e._granularity,t[i++]=e._extrudedHeight,t[i++]=e._numberOfVerticalLines,t[i]=m(e._offsetAttribute,-1),t};var y=new c,C=new l,b={center:y,ellipsoid:C,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};w.unpack=function(e,t,i){if(!d(e))throw new _("array is required");t=m(t,0);let f=c.unpack(e,t,y);t+=c.packedLength;let o=l.unpack(e,t,C);t+=l.packedLength;let r=e[t++],u=e[t++],h=e[t++],n=e[t++],p=e[t++],a=e[t++],A=e[t++],s=e[t];return d(i)?(i._center=c.clone(f,i._center),i._ellipsoid=l.clone(o,i._ellipsoid),i._semiMajorAxis=r,i._semiMinorAxis=u,i._rotation=h,i._height=n,i._granularity=p,i._extrudedHeight=a,i._numberOfVerticalLines=A,i._offsetAttribute=s===-1?void 0:s,i):(b.height=n,b.extrudedHeight=a,b.granularity=p,b.rotation=h,b.semiMajorAxis=r,b.semiMinorAxis=u,b.numberOfVerticalLines=A,b.offsetAttribute=s===-1?void 0:s,new w(b))};w.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,i=e._extrudedHeight,f=!E.equalsEpsilon(t,i,0,E.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(f)o.extrudedHeight=i,o.offsetAttribute=e._offsetAttribute,r=R(o);else if(r=U(o),d(e._offsetAttribute)){let u=r.attributes.position.values.length,h=e._offsetAttribute===j.NONE?0:1,n=new Uint8Array(u/3).fill(h);r.attributes.applyOffset=new x({componentDatatype:S.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}return new B({attributes:r.attributes,indices:r.indices,primitiveType:T.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var ie=w;export{ie as a}; diff --git a/libs/cesium/1.111/Workers/chunk-AAIHI2WK.js b/libs/cesium/1.111/Workers/chunk-AAIHI2WK.js new file mode 100644 index 000000000..58784550e --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-AAIHI2WK.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w}from"./chunk-DUBQPPQZ.js";var C={};C.computePositions=function(I,f,b,n,e){let m=I*.5,i=-m,s=n+n,P=e?2*s:s,t=new Float64Array(P*3),r,c=0,o=0,p=e?s*3:0,a=e?(s+n)*3:n*3;for(r=0;r<n;r++){let y=r/n*w.TWO_PI,x=Math.cos(y),h=Math.sin(y),u=x*b,M=h*b,O=x*f,d=h*f;t[o+p]=u,t[o+p+1]=M,t[o+p+2]=i,t[o+a]=O,t[o+a+1]=d,t[o+a+2]=m,o+=3,e&&(t[c++]=u,t[c++]=M,t[c++]=i,t[c++]=O,t[c++]=d,t[c++]=m)}return t};var Y=C;export{Y as a}; diff --git a/libs/cesium/1.111/Workers/chunk-AAJ456AA.js b/libs/cesium/1.111/Workers/chunk-AAJ456AA.js new file mode 100644 index 000000000..dd4a24ab7 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-AAJ456AA.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l,b as d}from"./chunk-KCIWEUSR.js";import{a as t}from"./chunk-F33YCXD2.js";import{a as s}from"./chunk-DUBQPPQZ.js";import{a as f,b as r}from"./chunk-KD2PMTHD.js";import{e as m}from"./chunk-ZUCO5WNM.js";function o(e,n){if(r.typeOf.object("normal",e),!s.equalsEpsilon(t.magnitude(e),1,s.EPSILON6))throw new f("normal must be normalized.");r.typeOf.number("distance",n),this.normal=t.clone(e),this.distance=n}o.fromPointNormal=function(e,n,a){if(r.typeOf.object("point",e),r.typeOf.object("normal",n),!s.equalsEpsilon(t.magnitude(n),1,s.EPSILON6))throw new f("normal must be normalized.");let c=-t.dot(n,e);return m(a)?(t.clone(n,a.normal),a.distance=c,a):new o(n,c)};var b=new t;o.fromCartesian4=function(e,n){r.typeOf.object("coefficients",e);let a=t.fromCartesian4(e,b),c=e.w;if(!s.equalsEpsilon(t.magnitude(a),1,s.EPSILON6))throw new f("normal must be normalized.");return m(n)?(t.clone(a,n.normal),n.distance=c,n):new o(a,c)};o.getPointDistance=function(e,n){return r.typeOf.object("plane",e),r.typeOf.object("point",n),t.dot(e.normal,n)+e.distance};var y=new t;o.projectPointOntoPlane=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("point",n),m(a)||(a=new t);let c=o.getPointDistance(e,n),p=t.multiplyByScalar(e.normal,c,y);return t.subtract(n,p,a)};var w=new d,j=new l,N=new t;o.transform=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("transform",n);let c=e.normal,p=e.distance,u=d.inverseTranspose(n,w),i=l.fromElements(c.x,c.y,c.z,p,j);i=d.multiplyByVector(u,i,i);let O=t.fromCartesian4(i,N);return i=l.divideByScalar(i,t.magnitude(O),i),o.fromCartesian4(i,a)};o.clone=function(e,n){return r.typeOf.object("plane",e),m(n)?(t.clone(e.normal,n.normal),n.distance=e.distance,n):new o(e.normal,e.distance)};o.equals=function(e,n){return r.typeOf.object("left",e),r.typeOf.object("right",n),e.distance===n.distance&&t.equals(e.normal,n.normal)};o.ORIGIN_XY_PLANE=Object.freeze(new o(t.UNIT_Z,0));o.ORIGIN_YZ_PLANE=Object.freeze(new o(t.UNIT_X,0));o.ORIGIN_ZX_PLANE=Object.freeze(new o(t.UNIT_Y,0));var T=o;export{T as a}; diff --git a/libs/cesium/1.111/Workers/chunk-BSXS3UVL.js b/libs/cesium/1.111/Workers/chunk-BSXS3UVL.js new file mode 100644 index 000000000..b2528dc7a --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-BSXS3UVL.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as p,b as P,c as q}from"./chunk-F33YCXD2.js";import{a}from"./chunk-DUBQPPQZ.js";import{a as T}from"./chunk-K36PKEJW.js";import{a as S,b as g}from"./chunk-KD2PMTHD.js";import{e as l}from"./chunk-ZUCO5WNM.js";function y(n,i,o){if(n===0)return i*o;let t=n*n,e=t*t,c=e*t,r=c*t,h=r*t,s=h*t,d=o,u=Math.sin(2*d),f=Math.sin(4*d),M=Math.sin(6*d),_=Math.sin(8*d),E=Math.sin(10*d),I=Math.sin(12*d);return i*((1-t/4-3*e/64-5*c/256-175*r/16384-441*h/65536-4851*s/1048576)*d-(3*t/8+3*e/32+45*c/1024+105*r/4096+2205*h/131072+6237*s/524288)*u+(15*e/256+45*c/1024+525*r/16384+1575*h/65536+155925*s/8388608)*f-(35*c/3072+175*r/12288+3675*h/262144+13475*s/1048576)*M+(315*r/131072+2205*h/524288+43659*s/8388608)*_-(693*h/1310720+6237*s/5242880)*E+1001*s/8388608*I)}function z(n,i,o){let t=n/o;if(i===0)return t;let e=t*t,c=e*t,r=c*t,h=i,s=h*h,d=s*s,u=d*s,f=u*s,M=f*s,_=M*s,E=Math.sin(2*t),I=Math.cos(2*t),W=Math.sin(4*t),V=Math.cos(4*t),C=Math.sin(6*t),N=Math.cos(6*t),R=Math.sin(8*t),b=Math.cos(8*t),x=Math.sin(10*t),U=Math.cos(10*t),H=Math.sin(12*t);return t+t*s/4+7*t*d/64+15*t*u/256+579*t*f/16384+1515*t*M/65536+16837*t*_/1048576+(3*t*d/16+45*t*u/256-t*(32*e-561)*f/4096-t*(232*e-1677)*M/16384+t*(399985-90560*e+512*r)*_/5242880)*I+(21*t*u/256+483*t*f/4096-t*(224*e-1969)*M/16384-t*(33152*e-112599)*_/1048576)*V+(151*t*f/4096+4681*t*M/65536+1479*t*_/16384-453*c*_/32768)*N+(1097*t*M/65536+42783*t*_/1048576)*b+8011*t*_/1048576*U+(3*s/8+3*d/16+213*u/2048-3*e*u/64+255*f/4096-33*e*f/512+20861*M/524288-33*e*M/512+r*M/1024+28273*_/1048576-471*e*_/8192+9*r*_/4096)*E+(21*d/256+21*u/256+533*f/8192-21*e*f/512+197*M/4096-315*e*M/4096+584039*_/16777216-12517*e*_/131072+7*r*_/2048)*W+(151*u/6144+151*f/4096+5019*M/131072-453*e*M/16384+26965*_/786432-8607*e*_/131072)*C+(1097*f/131072+1097*M/65536+225797*_/10485760-1097*e*_/65536)*R+(8011*M/2621440+8011*_/1048576)*x+293393*_/251658240*H}function O(n,i){if(n===0)return Math.log(Math.tan(.5*(a.PI_OVER_TWO+i)));let o=n*Math.sin(i);return Math.log(Math.tan(.5*(a.PI_OVER_TWO+i)))-n/2*Math.log((1+o)/(1-o))}function G(n,i,o,t,e){let c=O(n._ellipticity,o),r=O(n._ellipticity,e);return Math.atan2(a.negativePiToPi(t-i),r-c)}function k(n,i,o,t,e,c,r){let h=n._heading,s=c-t,d=0;if(a.equalsEpsilon(Math.abs(h),a.PI_OVER_TWO,a.EPSILON8))if(i===o)d=i*Math.cos(e)*a.negativePiToPi(s);else{let u=Math.sin(e);d=i*Math.cos(e)*a.negativePiToPi(s)/Math.sqrt(1-n._ellipticitySquared*u*u)}else{let u=y(n._ellipticity,i,e);d=(y(n._ellipticity,i,r)-u)/Math.cos(h)}return Math.abs(d)}var A=new p,w=new p;function D(n,i,o,t){let e=p.normalize(t.cartographicToCartesian(i,w),A),c=p.normalize(t.cartographicToCartesian(o,w),w);g.typeOf.number.greaterThanOrEquals("value",Math.abs(Math.abs(p.angleBetween(e,c))-Math.PI),.0125);let r=t.maximumRadius,h=t.minimumRadius,s=r*r,d=h*h;n._ellipticitySquared=(s-d)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=P.clone(i,n._start),n._start.height=0,n._end=P.clone(o,n._end),n._end.height=0,n._heading=G(n,i.longitude,i.latitude,o.longitude,o.latitude),n._distance=k(n,t.maximumRadius,t.minimumRadius,i.longitude,i.latitude,o.longitude,o.latitude)}function v(n,i,o,t,e,c){if(o===0)return P.clone(n,c);let r=e*e,h,s,d;if(Math.abs(a.PI_OVER_TWO-Math.abs(i))>a.EPSILON8){let u=y(e,t,n.latitude),f=o*Math.cos(i),M=u+f;if(s=z(M,e,t),Math.abs(i)<a.EPSILON10)h=a.negativePiToPi(n.longitude);else{let _=O(e,n.latitude),E=O(e,s);d=Math.tan(i)*(E-_),h=a.negativePiToPi(n.longitude+d)}}else{s=n.latitude;let u;if(e===0)u=t*Math.cos(n.latitude);else{let f=Math.sin(n.latitude);u=t*Math.cos(n.latitude)/Math.sqrt(1-r*f*f)}d=o/u,i>0?h=a.negativePiToPi(n.longitude+d):h=a.negativePiToPi(n.longitude-d)}return l(c)?(c.longitude=h,c.latitude=s,c.height=0,c):new P(h,s,0)}function m(n,i,o){let t=T(o,q.WGS84);this._ellipsoid=t,this._start=new P,this._end=new P,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(n)&&l(i)&&D(this,n,i,t)}Object.defineProperties(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return g.defined("distance",this._distance),this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return g.defined("distance",this._distance),this._heading}}});m.fromStartHeadingDistance=function(n,i,o,t,e){g.defined("start",n),g.defined("heading",i),g.defined("distance",o),g.typeOf.number.greaterThan("distance",o,0);let c=T(t,q.WGS84),r=c.maximumRadius,h=c.minimumRadius,s=r*r,d=h*h,u=Math.sqrt((s-d)/s);i=a.negativePiToPi(i);let f=v(n,i,o,c.maximumRadius,u);return!l(e)||l(t)&&!t.equals(e.ellipsoid)?new m(n,f,c):(e.setEndPoints(n,f),e)};m.prototype.setEndPoints=function(n,i){g.defined("start",n),g.defined("end",i),D(this,n,i,this._ellipsoid)};m.prototype.interpolateUsingFraction=function(n,i){return this.interpolateUsingSurfaceDistance(n*this._distance,i)};m.prototype.interpolateUsingSurfaceDistance=function(n,i){if(g.typeOf.number("distance",n),!l(this._distance)||this._distance===0)throw new S("EllipsoidRhumbLine must have distinct start and end set.");return v(this._start,this._heading,n,this._ellipsoid.maximumRadius,this._ellipticity,i)};m.prototype.findIntersectionWithLongitude=function(n,i){if(g.typeOf.number("intersectionLongitude",n),!l(this._distance)||this._distance===0)throw new S("EllipsoidRhumbLine must have distinct start and end set.");let o=this._ellipticity,t=this._heading,e=Math.abs(t),c=this._start;if(n=a.negativePiToPi(n),a.equalsEpsilon(Math.abs(n),Math.PI,a.EPSILON14)&&(n=a.sign(c.longitude)*Math.PI),l(i)||(i=new P),Math.abs(a.PI_OVER_TWO-e)<=a.EPSILON8)return i.longitude=n,i.latitude=c.latitude,i.height=0,i;if(a.equalsEpsilon(Math.abs(a.PI_OVER_TWO-e),a.PI_OVER_TWO,a.EPSILON8))return a.equalsEpsilon(n,c.longitude,a.EPSILON12)?void 0:(i.longitude=n,i.latitude=a.PI_OVER_TWO*a.sign(a.PI_OVER_TWO-t),i.height=0,i);let r=c.latitude,h=o*Math.sin(r),s=Math.tan(.5*(a.PI_OVER_TWO+r))*Math.exp((n-c.longitude)/Math.tan(t)),d=(1+h)/(1-h),u=c.latitude,f;do{f=u;let M=o*Math.sin(f),_=(1+M)/(1-M);u=2*Math.atan(s*Math.pow(_/d,o/2))-a.PI_OVER_TWO}while(!a.equalsEpsilon(u,f,a.EPSILON12));return i.longitude=n,i.latitude=u,i.height=0,i};m.prototype.findIntersectionWithLatitude=function(n,i){if(g.typeOf.number("intersectionLatitude",n),!l(this._distance)||this._distance===0)throw new S("EllipsoidRhumbLine must have distinct start and end set.");let o=this._ellipticity,t=this._heading,e=this._start;if(a.equalsEpsilon(Math.abs(t),a.PI_OVER_TWO,a.EPSILON8))return;let c=O(o,e.latitude),r=O(o,n),h=Math.tan(t)*(r-c),s=a.negativePiToPi(e.longitude+h);return l(i)?(i.longitude=s,i.latitude=n,i.height=0,i):new P(s,n,0)};var $=m;export{$ as a}; diff --git a/libs/cesium/1.111/Workers/chunk-BVOZOPDI.js b/libs/cesium/1.111/Workers/chunk-BVOZOPDI.js new file mode 100644 index 000000000..4053c5011 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-BVOZOPDI.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as ue}from"./chunk-BSXS3UVL.js";import{b as he,c as pe,d as ne}from"./chunk-QEWKHB6D.js";import{d as w}from"./chunk-KCIWEUSR.js";import{a as te}from"./chunk-7XDW3BZW.js";import{a as p,b as ee,c as Se}from"./chunk-F33YCXD2.js";import{a as Y}from"./chunk-DUBQPPQZ.js";import{a as le}from"./chunk-CG3JQAX7.js";import{a as K}from"./chunk-K36PKEJW.js";import{b}from"./chunk-KD2PMTHD.js";import{c as We,d as Ge,e as D}from"./chunk-ZUCO5WNM.js";var Oe=We((st,de)=>{"use strict";de.exports=xe;de.exports.default=xe;function xe(e,n,t){t=t||2;var u=n&&n.length,r=u?n[0]*t:e.length,i=Ce(e,0,r,t,!0),s=[];if(!i||i.next===i.prev)return s;var o,f,c,l,y,v,g;if(u&&(i=ke(e,n,i,t)),e.length>80*t){o=c=e[0],f=l=e[1];for(var h=t;h<r;h+=t)y=e[h],v=e[h+1],y<o&&(o=y),v<f&&(f=v),y>c&&(c=y),v>l&&(l=v);g=Math.max(c-o,l-f),g=g!==0?32767/g:0}return re(i,s,t,o,f,g,0),s}function Ce(e,n,t,u,r){var i,s;if(r===ge(e,n,t,u)>0)for(i=n;i<t;i+=u)s=Ae(i,e[i],e[i+1],s);else for(i=t-u;i>=n;i-=u)s=Ae(i,e[i],e[i+1],s);return s&&ae(s,s.next)&&(oe(s),s=s.next),s}function N(e,n){if(!e)return e;n||(n=e);var t=e,u;do if(u=!1,!t.steiner&&(ae(t,t.next)||A(t.prev,t,t.next)===0)){if(oe(t),t=n=t.prev,t===t.next)break;u=!0}else t=t.next;while(u||t!==n);return n}function re(e,n,t,u,r,i,s){if(e){!s&&i&&qe(e,u,r,i);for(var o=e,f,c;e.prev!==e.next;){if(f=e.prev,c=e.next,i?Ie(e,u,r,i):$e(e)){n.push(f.i/t|0),n.push(e.i/t|0),n.push(c.i/t|0),oe(e),e=c.next,o=c.next;continue}if(e=c,e===o){s?s===1?(e=He(N(e),n,t),re(e,n,t,u,r,i,2)):s===2&&Ne(e,n,t,u,r,i):re(N(e),n,t,u,r,i,1);break}}}}function $e(e){var n=e.prev,t=e,u=e.next;if(A(n,t,u)>=0)return!1;for(var r=n.x,i=t.x,s=u.x,o=n.y,f=t.y,c=u.y,l=r<i?r<s?r:s:i<s?i:s,y=o<f?o<c?o:c:f<c?f:c,v=r>i?r>s?r:s:i>s?i:s,g=o>f?o>c?o:c:f>c?f:c,h=u.next;h!==n;){if(h.x>=l&&h.x<=v&&h.y>=y&&h.y<=g&&V(r,o,i,f,s,c,h.x,h.y)&&A(h.prev,h,h.next)>=0)return!1;h=h.next}return!0}function Ie(e,n,t,u){var r=e.prev,i=e,s=e.next;if(A(r,i,s)>=0)return!1;for(var o=r.x,f=i.x,c=s.x,l=r.y,y=i.y,v=s.y,g=o<f?o<c?o:c:f<c?f:c,h=l<y?l<v?l:v:y<v?y:v,T=o>f?o>c?o:c:f>c?f:c,L=l>y?l>v?l:v:y>v?y:v,z=ye(g,h,n,t,u),F=ye(T,L,n,t,u),x=e.prevZ,a=e.nextZ;x&&x.z>=z&&a&&a.z<=F;){if(x.x>=g&&x.x<=T&&x.y>=h&&x.y<=L&&x!==r&&x!==s&&V(o,l,f,y,c,v,x.x,x.y)&&A(x.prev,x,x.next)>=0||(x=x.prevZ,a.x>=g&&a.x<=T&&a.y>=h&&a.y<=L&&a!==r&&a!==s&&V(o,l,f,y,c,v,a.x,a.y)&&A(a.prev,a,a.next)>=0))return!1;a=a.nextZ}for(;x&&x.z>=z;){if(x.x>=g&&x.x<=T&&x.y>=h&&x.y<=L&&x!==r&&x!==s&&V(o,l,f,y,c,v,x.x,x.y)&&A(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;a&&a.z<=F;){if(a.x>=g&&a.x<=T&&a.y>=h&&a.y<=L&&a!==r&&a!==s&&V(o,l,f,y,c,v,a.x,a.y)&&A(a.prev,a,a.next)>=0)return!1;a=a.nextZ}return!0}function He(e,n,t){var u=e;do{var r=u.prev,i=u.next.next;!ae(r,i)&&be(r,u,u.next,i)&&ie(r,i)&&ie(i,r)&&(n.push(r.i/t|0),n.push(u.i/t|0),n.push(i.i/t|0),oe(u),oe(u.next),u=e=i),u=u.next}while(u!==e);return N(u)}function Ne(e,n,t,u,r,i){var s=e;do{for(var o=s.next.next;o!==s.prev;){if(s.i!==o.i&&je(s,o)){var f=Ee(s,o);s=N(s,s.next),f=N(f,f.next),re(s,n,t,u,r,i,0),re(f,n,t,u,r,i,0);return}o=o.next}s=s.next}while(s!==e)}function ke(e,n,t,u){var r=[],i,s,o,f,c;for(i=0,s=n.length;i<s;i++)o=n[i]*u,f=i<s-1?n[i+1]*u:e.length,c=Ce(e,o,f,u,!1),c===c.next&&(c.steiner=!0),r.push(Qe(c));for(r.sort(Ue),i=0;i<r.length;i++)t=_e(r[i],t);return t}function Ue(e,n){return e.x-n.x}function _e(e,n){var t=Ke(e,n);if(!t)return n;var u=Ee(t,e);return N(u,u.next),N(t,t.next)}function Ke(e,n){var t=n,u=e.x,r=e.y,i=-1/0,s;do{if(r<=t.y&&r>=t.next.y&&t.next.y!==t.y){var o=t.x+(r-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(o<=u&&o>i&&(i=o,s=t.x<t.next.x?t:t.next,o===u))return s}t=t.next}while(t!==n);if(!s)return null;var f=s,c=s.x,l=s.y,y=1/0,v;t=s;do u>=t.x&&t.x>=c&&u!==t.x&&V(r<l?u:i,r,c,l,r<l?i:u,r,t.x,t.y)&&(v=Math.abs(r-t.y)/(u-t.x),ie(t,e)&&(v<y||v===y&&(t.x>s.x||t.x===s.x&&Ve(s,t)))&&(s=t,y=v)),t=t.next;while(t!==f);return s}function Ve(e,n){return A(e.prev,e,n.prev)<0&&A(n.next,e,e.next)<0}function qe(e,n,t,u){var r=e;do r.z===0&&(r.z=ye(r.x,r.y,n,t,u)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,Je(r)}function Je(e){var n,t,u,r,i,s,o,f,c=1;do{for(t=e,e=null,i=null,s=0;t;){for(s++,u=t,o=0,n=0;n<c&&(o++,u=u.nextZ,!!u);n++);for(f=c;o>0||f>0&&u;)o!==0&&(f===0||!u||t.z<=u.z)?(r=t,t=t.nextZ,o--):(r=u,u=u.nextZ,f--),i?i.nextZ=r:e=r,r.prevZ=i,i=r;t=u}i.nextZ=null,c*=2}while(s>1);return e}function ye(e,n,t,u,r){return e=(e-t)*r|0,n=(n-u)*r|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e|n<<1}function Qe(e){var n=e,t=e;do(n.x<t.x||n.x===t.x&&n.y<t.y)&&(t=n),n=n.next;while(n!==e);return t}function V(e,n,t,u,r,i,s,o){return(r-s)*(n-o)>=(e-s)*(i-o)&&(e-s)*(u-o)>=(t-s)*(n-o)&&(t-s)*(i-o)>=(r-s)*(u-o)}function je(e,n){return e.next.i!==n.i&&e.prev.i!==n.i&&!Xe(e,n)&&(ie(e,n)&&ie(n,e)&&Ye(e,n)&&(A(e.prev,e,n.prev)||A(e,n.prev,n))||ae(e,n)&&A(e.prev,e,e.next)>0&&A(n.prev,n,n.next)>0)}function A(e,n,t){return(n.y-e.y)*(t.x-n.x)-(n.x-e.x)*(t.y-n.y)}function ae(e,n){return e.x===n.x&&e.y===n.y}function be(e,n,t,u){var r=fe(A(e,n,t)),i=fe(A(e,n,u)),s=fe(A(t,u,e)),o=fe(A(t,u,n));return!!(r!==i&&s!==o||r===0&&ce(e,t,n)||i===0&&ce(e,u,n)||s===0&&ce(t,e,u)||o===0&&ce(t,n,u))}function ce(e,n,t){return n.x<=Math.max(e.x,t.x)&&n.x>=Math.min(e.x,t.x)&&n.y<=Math.max(e.y,t.y)&&n.y>=Math.min(e.y,t.y)}function fe(e){return e>0?1:e<0?-1:0}function Xe(e,n){var t=e;do{if(t.i!==e.i&&t.next.i!==e.i&&t.i!==n.i&&t.next.i!==n.i&&be(t,t.next,e,n))return!0;t=t.next}while(t!==e);return!1}function ie(e,n){return A(e.prev,e,e.next)<0?A(e,n,e.next)>=0&&A(e,e.prev,n)>=0:A(e,n,e.prev)<0||A(e,e.next,n)<0}function Ye(e,n){var t=e,u=!1,r=(e.x+n.x)/2,i=(e.y+n.y)/2;do t.y>i!=t.next.y>i&&t.next.y!==t.y&&r<(t.next.x-t.x)*(i-t.y)/(t.next.y-t.y)+t.x&&(u=!u),t=t.next;while(t!==e);return u}function Ee(e,n){var t=new me(e.i,e.x,e.y),u=new me(n.i,n.x,n.y),r=e.next,i=n.prev;return e.next=n,n.prev=e,t.next=r,r.prev=t,u.next=t,t.prev=u,i.next=u,u.prev=i,u}function Ae(e,n,t,u){var r=new me(e,n,t);return u?(r.next=u.next,r.prev=u,u.next.prev=r,u.next=r):(r.prev=r,r.next=r),r}function oe(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function me(e,n,t){this.i=e,this.x=n,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}xe.deviation=function(e,n,t,u){var r=n&&n.length,i=r?n[0]*t:e.length,s=Math.abs(ge(e,0,i,t));if(r)for(var o=0,f=n.length;o<f;o++){var c=n[o]*t,l=o<f-1?n[o+1]*t:e.length;s-=Math.abs(ge(e,c,l,t))}var y=0;for(o=0;o<u.length;o+=3){var v=u[o]*t,g=u[o+1]*t,h=u[o+2]*t;y+=Math.abs((e[v]-e[h])*(e[g+1]-e[v+1])-(e[v]-e[g])*(e[h+1]-e[v+1]))}return s===0&&y===0?0:Math.abs((y-s)/s)};function ge(e,n,t,u){for(var r=0,i=n,s=t-u;i<t;i+=u)r+=(e[s]-e[i])*(e[i+1]+e[s+1]),s=i;return r}xe.flatten=function(e){for(var n=e[0][0].length,t={vertices:[],holes:[],dimensions:n},u=0,r=0;r<e.length;r++){for(var i=0;i<e[r].length;i++)for(var s=0;s<n;s++)t.vertices.push(e[r][i][s]);r>0&&(u+=e[r-1].length,t.holes.push(u))}return t}});var se={CLOCKWISE:le.CW,COUNTER_CLOCKWISE:le.CCW};se.validate=function(e){return e===se.CLOCKWISE||e===se.COUNTER_CLOCKWISE};var ve=Object.freeze(se);var Le=Ge(Oe(),1);var et=new p,tt=new p,B={};B.computeArea2D=function(e){b.defined("positions",e),b.typeOf.number.greaterThanOrEquals("positions.length",e.length,3);let n=e.length,t=0;for(let u=n-1,r=0;r<n;u=r++){let i=e[u],s=e[r];t+=i.x*s.y-s.x*i.y}return t*.5};B.computeWindingOrder2D=function(e){return B.computeArea2D(e)>0?ve.COUNTER_CLOCKWISE:ve.CLOCKWISE};B.triangulate=function(e,n){b.defined("positions",e);let t=w.packArray(e);return(0,Le.default)(t,n,2)};var De=new p,Fe=new p,Pe=new p,Te=new p,Me=new p,Ze=new p,R=new p,Re=new w,ze=new w,Be=new w,q=new w;B.computeSubdivision=function(e,n,t,u,r){r=K(r,Y.RADIANS_PER_DEGREE);let i=D(u);b.typeOf.object("ellipsoid",e),b.defined("positions",n),b.defined("indices",t),b.typeOf.number.greaterThanOrEquals("indices.length",t.length,3),b.typeOf.number.equals("indices.length % 3","0",t.length%3,0),b.typeOf.number.greaterThan("granularity",r,0);let s=t.slice(0),o,f=n.length,c=new Array(f*3),l=new Array(f*2),y=0,v=0;for(o=0;o<f;o++){let x=n[o];if(c[y++]=x.x,c[y++]=x.y,c[y++]=x.z,i){let a=u[o];l[v++]=a.x,l[v++]=a.y}}let g=[],h={},T=e.maximumRadius,L=Y.chordLength(r,T),z=L*L;for(;s.length>0;){let x=s.pop(),a=s.pop(),m=s.pop(),C=p.fromArray(c,m*3,De),E=p.fromArray(c,a*3,Fe),J=p.fromArray(c,x*3,Pe),Q,j,W;i&&(Q=w.fromArray(l,m*2,Re),j=w.fromArray(l,a*2,ze),W=w.fromArray(l,x*2,Be));let k=p.multiplyByScalar(p.normalize(C,Te),T,Te),U=p.multiplyByScalar(p.normalize(E,Me),T,Me),G=p.multiplyByScalar(p.normalize(J,Ze),T,Ze),$=p.magnitudeSquared(p.subtract(k,U,R)),I=p.magnitudeSquared(p.subtract(U,G,R)),X=p.magnitudeSquared(p.subtract(G,k,R)),H=Math.max($,I,X),M,S,d;H>z?$===H?(M=`${Math.min(m,a)} ${Math.max(m,a)}`,o=h[M],D(o)||(S=p.add(C,E,R),p.multiplyByScalar(S,.5,S),c.push(S.x,S.y,S.z),o=c.length/3-1,h[M]=o,i&&(d=w.add(Q,j,q),w.multiplyByScalar(d,.5,d),l.push(d.x,d.y))),s.push(m,o,x),s.push(o,a,x)):I===H?(M=`${Math.min(a,x)} ${Math.max(a,x)}`,o=h[M],D(o)||(S=p.add(E,J,R),p.multiplyByScalar(S,.5,S),c.push(S.x,S.y,S.z),o=c.length/3-1,h[M]=o,i&&(d=w.add(j,W,q),w.multiplyByScalar(d,.5,d),l.push(d.x,d.y))),s.push(a,o,m),s.push(o,x,m)):X===H&&(M=`${Math.min(x,m)} ${Math.max(x,m)}`,o=h[M],D(o)||(S=p.add(J,C,R),p.multiplyByScalar(S,.5,S),c.push(S.x,S.y,S.z),o=c.length/3-1,h[M]=o,i&&(d=w.add(W,Q,q),w.multiplyByScalar(d,.5,d),l.push(d.x,d.y))),s.push(x,o,a),s.push(o,m,a)):(g.push(m),g.push(a),g.push(x))}let F={attributes:{position:new ne({componentDatatype:te.DOUBLE,componentsPerAttribute:3,values:c})},indices:g,primitiveType:he.TRIANGLES};return i&&(F.attributes.st=new ne({componentDatatype:te.FLOAT,componentsPerAttribute:2,values:l})),new pe(F)};var nt=new ee,rt=new ee,it=new ee,we=new ee;B.computeRhumbLineSubdivision=function(e,n,t,u,r){r=K(r,Y.RADIANS_PER_DEGREE);let i=D(u);b.typeOf.object("ellipsoid",e),b.defined("positions",n),b.defined("indices",t),b.typeOf.number.greaterThanOrEquals("indices.length",t.length,3),b.typeOf.number.equals("indices.length % 3","0",t.length%3,0),b.typeOf.number.greaterThan("granularity",r,0);let s=t.slice(0),o,f=n.length,c=new Array(f*3),l=new Array(f*2),y=0,v=0;for(o=0;o<f;o++){let m=n[o];if(c[y++]=m.x,c[y++]=m.y,c[y++]=m.z,i){let C=u[o];l[v++]=C.x,l[v++]=C.y}}let g=[],h={},T=e.maximumRadius,L=Y.chordLength(r,T),z=new ue(void 0,void 0,e),F=new ue(void 0,void 0,e),x=new ue(void 0,void 0,e);for(;s.length>0;){let m=s.pop(),C=s.pop(),E=s.pop(),J=p.fromArray(c,E*3,De),Q=p.fromArray(c,C*3,Fe),j=p.fromArray(c,m*3,Pe),W,k,U;i&&(W=w.fromArray(l,E*2,Re),k=w.fromArray(l,C*2,ze),U=w.fromArray(l,m*2,Be));let G=e.cartesianToCartographic(J,nt),$=e.cartesianToCartographic(Q,rt),I=e.cartesianToCartographic(j,it);z.setEndPoints(G,$);let X=z.surfaceDistance;F.setEndPoints($,I);let H=F.surfaceDistance;x.setEndPoints(I,G);let M=x.surfaceDistance,S=Math.max(X,H,M),d,P,_,Z,O;S>L?X===S?(d=`${Math.min(E,C)} ${Math.max(E,C)}`,o=h[d],D(o)||(P=z.interpolateUsingFraction(.5,we),_=(G.height+$.height)*.5,Z=p.fromRadians(P.longitude,P.latitude,_,e,R),c.push(Z.x,Z.y,Z.z),o=c.length/3-1,h[d]=o,i&&(O=w.add(W,k,q),w.multiplyByScalar(O,.5,O),l.push(O.x,O.y))),s.push(E,o,m),s.push(o,C,m)):H===S?(d=`${Math.min(C,m)} ${Math.max(C,m)}`,o=h[d],D(o)||(P=F.interpolateUsingFraction(.5,we),_=($.height+I.height)*.5,Z=p.fromRadians(P.longitude,P.latitude,_,e,R),c.push(Z.x,Z.y,Z.z),o=c.length/3-1,h[d]=o,i&&(O=w.add(k,U,q),w.multiplyByScalar(O,.5,O),l.push(O.x,O.y))),s.push(C,o,E),s.push(o,m,E)):M===S&&(d=`${Math.min(m,E)} ${Math.max(m,E)}`,o=h[d],D(o)||(P=x.interpolateUsingFraction(.5,we),_=(I.height+G.height)*.5,Z=p.fromRadians(P.longitude,P.latitude,_,e,R),c.push(Z.x,Z.y,Z.z),o=c.length/3-1,h[d]=o,i&&(O=w.add(U,W,q),w.multiplyByScalar(O,.5,O),l.push(O.x,O.y))),s.push(m,o,C),s.push(o,E,C)):(g.push(E),g.push(C),g.push(m))}let a={attributes:{position:new ne({componentDatatype:te.DOUBLE,componentsPerAttribute:3,values:c})},indices:g,primitiveType:he.TRIANGLES};return i&&(a.attributes.st=new ne({componentDatatype:te.FLOAT,componentsPerAttribute:2,values:l})),new pe(a)};B.scaleToGeodeticHeight=function(e,n,t,u){t=K(t,Se.WGS84);let r=et,i=tt;if(n=K(n,0),u=K(u,!0),D(e)){let s=e.length;for(let o=0;o<s;o+=3)p.fromArray(e,o,i),u&&(i=t.scaleToGeodeticSurface(i,i)),n!==0&&(r=t.geodeticSurfaceNormal(i,r),p.multiplyByScalar(r,n,r),p.add(i,r,i)),e[o]=i.x,e[o+1]=i.y,e[o+2]=i.z}return e};var At=B;export{ve as a,At as b}; diff --git a/libs/cesium/1.111/Workers/chunk-C4WD3G7A.js b/libs/cesium/1.111/Workers/chunk-C4WD3G7A.js new file mode 100644 index 000000000..71e7f38b5 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-C4WD3G7A.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as z,b as q}from"./chunk-NLQJPKTT.js";import{a as U}from"./chunk-Y33I6CKI.js";import{f as I}from"./chunk-DV7DPSRL.js";import{a as e,d as C}from"./chunk-F33YCXD2.js";import{a as O}from"./chunk-DUBQPPQZ.js";import{e as j}from"./chunk-ZUCO5WNM.js";var G={},B=new e,J=new e,_=new e,v=new e,g=[new e,new e],K=new e,W=new e,X=new e,$=new e,ee=new e,te=new e,ne=new e,oe=new e,re=new e,se=new e,F=new I,k=new C;function V(o,s,a,c,r){let d=e.angleBetween(e.subtract(s,o,B),e.subtract(a,o,J)),y=c===z.BEVELED?1:Math.ceil(d/O.toRadians(5))+1,n=y*3,l=new Array(n);l[n-3]=a.x,l[n-2]=a.y,l[n-1]=a.z;let m;r?m=C.fromQuaternion(I.fromAxisAngle(e.negate(o,B),d/y,F),k):m=C.fromQuaternion(I.fromAxisAngle(o,d/y,F),k);let t=0;s=e.clone(s,B);for(let i=0;i<y;i++)s=C.multiplyByVector(m,s,s),l[t++]=s.x,l[t++]=s.y,l[t++]=s.z;return l}function ae(o){let s=K,a=W,c=X,r=o[1];a=e.fromArray(o[1],r.length-3,a),c=e.fromArray(o[0],0,c),s=e.midpoint(a,c,s);let d=V(s,a,c,z.ROUNDED,!1),y=o.length-1,n=o[y-1];r=o[y],a=e.fromArray(n,n.length-3,a),c=e.fromArray(r,0,c),s=e.midpoint(a,c,s);let l=V(s,a,c,z.ROUNDED,!1);return[d,l]}function H(o,s,a,c){let r=B;return c?r=e.add(o,s,r):(s=e.negate(s,s),r=e.add(o,s,r)),[r.x,r.y,r.z,a.x,a.y,a.z]}function T(o,s,a,c){let r=new Array(o.length),d=new Array(o.length),y=e.multiplyByScalar(s,a,B),n=e.negate(y,J),l=0,m=o.length-1;for(let t=0;t<o.length;t+=3){let i=e.fromArray(o,t,_),w=e.add(i,n,v);r[l++]=w.x,r[l++]=w.y,r[l++]=w.z;let f=e.add(i,y,v);d[m--]=f.z,d[m--]=f.y,d[m--]=f.x}return c.push(r,d),c}G.addAttribute=function(o,s,a,c){let r=s.x,d=s.y,y=s.z;j(a)&&(o[a]=r,o[a+1]=d,o[a+2]=y),j(c)&&(o[c]=y,o[c-1]=d,o[c-2]=r)};var le=new e,ce=new e;G.computePositions=function(o){let s=o.granularity,a=o.positions,c=o.ellipsoid,r=o.width/2,d=o.cornerType,y=o.saveAttributes,n=K,l=W,m=X,t=$,i=ee,w=te,f=ne,u=oe,p=re,x=se,E=[],S=y?[]:void 0,D=y?[]:void 0,h=a[0],N=a[1];l=e.normalize(e.subtract(N,h,l),l),n=c.geodeticSurfaceNormal(h,n),t=e.normalize(e.cross(n,l,t),t),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),f=e.clone(h,f),h=N,m=e.negate(l,m);let A,P=[],M,Y=a.length;for(M=1;M<Y-1;M++){n=c.geodeticSurfaceNormal(h,n),N=a[M+1],l=e.normalize(e.subtract(N,h,l),l),i=e.normalize(e.add(l,m,i),i);let L=e.multiplyByScalar(n,e.dot(l,n),le);e.subtract(l,L,L),e.normalize(L,L);let R=e.multiplyByScalar(n,e.dot(m,n),ce);if(e.subtract(m,R,R),e.normalize(R,R),!O.equalsEpsilon(Math.abs(e.dot(L,R)),1,O.EPSILON7)){i=e.cross(i,n,i),i=e.cross(n,i,i),i=e.normalize(i,i);let Z=r/Math.max(.25,e.magnitude(e.cross(i,m,B))),b=q.angleIsGreaterThanPi(l,m,h,c);i=e.multiplyByScalar(i,Z,i),b?(u=e.add(h,i,u),x=e.add(u,e.multiplyByScalar(t,r,x),x),p=e.add(u,e.multiplyByScalar(t,r*2,p),p),g[0]=e.clone(f,g[0]),g[1]=e.clone(x,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),w=e.clone(p,w),t=e.normalize(e.cross(n,l,t),t),p=e.add(u,e.multiplyByScalar(t,r*2,p),p),f=e.add(u,e.multiplyByScalar(t,r,f),f),d===z.ROUNDED||d===z.BEVELED?P.push({leftPositions:V(u,w,p,d,b)}):P.push({leftPositions:H(h,e.negate(i,i),p,b)})):(p=e.add(h,i,p),x=e.add(p,e.negate(e.multiplyByScalar(t,r,x),x),x),u=e.add(p,e.negate(e.multiplyByScalar(t,r*2,u),u),u),g[0]=e.clone(f,g[0]),g[1]=e.clone(x,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),w=e.clone(u,w),t=e.normalize(e.cross(n,l,t),t),u=e.add(p,e.negate(e.multiplyByScalar(t,r*2,u),u),u),f=e.add(p,e.negate(e.multiplyByScalar(t,r,f),f),f),d===z.ROUNDED||d===z.BEVELED?P.push({rightPositions:V(p,w,u,d,b)}):P.push({rightPositions:H(h,i,u,b)})),m=e.negate(l,m)}h=N}n=c.geodeticSurfaceNormal(h,n),g[0]=e.clone(f,g[0]),g[1]=e.clone(h,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z));let Q;return d===z.ROUNDED&&(Q=ae(E)),{positions:E,corners:P,lefts:S,normals:D,endPositions:Q}};var we=G;export{we as a}; diff --git a/libs/cesium/1.111/Workers/chunk-CEN2FMLA.js b/libs/cesium/1.111/Workers/chunk-CEN2FMLA.js new file mode 100644 index 000000000..204863ea9 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-CEN2FMLA.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as tt}from"./chunk-CN7OWDF4.js";import{a as At}from"./chunk-FDKE3YW2.js";import{a as yt}from"./chunk-3ZQZIWLR.js";import{a as G}from"./chunk-N52FZRFP.js";import{a as z}from"./chunk-WIRUK4BS.js";import{a as at}from"./chunk-JZL634RF.js";import{a as ht}from"./chunk-3UAKIC5Y.js";import{b as mt,c as st,d as F}from"./chunk-QEWKHB6D.js";import{a as dt,d as it,f as rt}from"./chunk-DV7DPSRL.js";import{c as bt,d as Q}from"./chunk-KCIWEUSR.js";import{a as S}from"./chunk-7XDW3BZW.js";import{a,b as _t,c as v,d as R}from"./chunk-F33YCXD2.js";import{a as I}from"./chunk-DUBQPPQZ.js";import{a as T}from"./chunk-K36PKEJW.js";import{a as nt,b as H}from"./chunk-KD2PMTHD.js";import{e as K}from"./chunk-ZUCO5WNM.js";var et=new a,pt=new a,xt=new a,wt=new a,w=new Q,Mt=new R,Vt=new R,gt=new rt,Tt=new a,Nt=new a,Et=new a,lt=new _t,Pt=new a,St=new Q,Ft=new Q;function Ot(o,e,t){let n=e.vertexFormat,s=e.center,i=e.semiMajorAxis,r=e.semiMinorAxis,f=e.ellipsoid,h=e.stRotation,E=t?o.length/3*2:o.length/3,g=e.shadowVolume,c=n.st?new Float32Array(E*2):void 0,l=n.normal?new Float32Array(E*3):void 0,A=n.tangent?new Float32Array(E*3):void 0,x=n.bitangent?new Float32Array(E*3):void 0,O=g?new Float32Array(E*3):void 0,B=0,b=Tt,M=Nt,d=Et,_=new dt(f),L=_.project(f.cartesianToCartographic(s,lt),Pt),J=f.scaleToGeodeticSurface(s,et);f.geodeticSurfaceNormal(J,J);let Z=Mt,W=Vt;if(h!==0){let m=rt.fromAxisAngle(J,h,gt);Z=R.fromQuaternion(m,Z),m=rt.fromAxisAngle(J,-h,gt),W=R.fromQuaternion(m,W)}else Z=R.clone(R.IDENTITY,Z),W=R.clone(R.IDENTITY,W);let k=Q.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,St),q=Q.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Ft),j=o.length,y=t?j:0,p=y/3*2;for(let m=0;m<j;m+=3){let u=m+1,N=m+2,D=a.fromArray(o,m,et);if(n.st){let P=R.multiplyByVector(Z,D,pt),C=_.project(f.cartesianToCartographic(P,lt),xt);a.subtract(C,L,C),w.x=(C.x+i)/(2*i),w.y=(C.y+r)/(2*r),k.x=Math.min(w.x,k.x),k.y=Math.min(w.y,k.y),q.x=Math.max(w.x,q.x),q.y=Math.max(w.y,q.y),t&&(c[B+p]=w.x,c[B+1+p]=w.y),c[B++]=w.x,c[B++]=w.y}(n.normal||n.tangent||n.bitangent||g)&&(b=f.geodeticSurfaceNormal(D,b),g&&(O[m+y]=-b.x,O[u+y]=-b.y,O[N+y]=-b.z),(n.normal||n.tangent||n.bitangent)&&((n.tangent||n.bitangent)&&(M=a.normalize(a.cross(a.UNIT_Z,b,M),M),R.multiplyByVector(W,M,M)),n.normal&&(l[m]=b.x,l[u]=b.y,l[N]=b.z,t&&(l[m+y]=-b.x,l[u+y]=-b.y,l[N+y]=-b.z)),n.tangent&&(A[m]=M.x,A[u]=M.y,A[N]=M.z,t&&(A[m+y]=-M.x,A[u+y]=-M.y,A[N+y]=-M.z)),n.bitangent&&(d=a.normalize(a.cross(b,M,d),d),x[m]=d.x,x[u]=d.y,x[N]=d.z,t&&(x[m+y]=d.x,x[u+y]=d.y,x[N+y]=d.z))))}if(n.st){j=c.length;for(let m=0;m<j;m+=2)c[m]=(c[m]-k.x)/(q.x-k.x),c[m+1]=(c[m+1]-k.y)/(q.y-k.y)}let V=new ht;if(n.position){let m=tt.raisePositionsToHeight(o,e,t);V.position=new F({componentDatatype:S.DOUBLE,componentsPerAttribute:3,values:m})}if(n.st&&(V.st=new F({componentDatatype:S.FLOAT,componentsPerAttribute:2,values:c})),n.normal&&(V.normal=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:l})),n.tangent&&(V.tangent=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:A})),n.bitangent&&(V.bitangent=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:x})),g&&(V.extrudeDirection=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:O})),t&&K(e.offsetAttribute)){let m=new Uint8Array(E);if(e.offsetAttribute===G.TOP)m=m.fill(1,0,E/2);else{let u=e.offsetAttribute===G.NONE?0:1;m=m.fill(u)}V.applyOffset=new F({componentDatatype:S.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}return V}function jt(o){let e=new Array(12*(o*(o+1))-6),t=0,n,s,i,r,f;for(n=0,i=1,r=0;r<3;r++)e[t++]=i++,e[t++]=n,e[t++]=i;for(r=2;r<o+1;++r){for(i=r*(r+1)-1,n=(r-1)*r-1,e[t++]=i++,e[t++]=n,e[t++]=i,s=2*r,f=0;f<s-1;++f)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;e[t++]=i++,e[t++]=n,e[t++]=i}for(s=o*2,++i,++n,r=0;r<s-1;++r)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;for(e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n++,e[t++]=n,++n,r=o-1;r>1;--r){for(e[t++]=n++,e[t++]=n,e[t++]=i,s=2*r,f=0;f<s-1;++f)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;e[t++]=n++,e[t++]=n++,e[t++]=i++}for(r=0;r<3;r++)e[t++]=n++,e[t++]=n,e[t++]=i;return e}var X=new a;function Dt(o){let e=o.center;X=a.multiplyByScalar(o.ellipsoid.geodeticSurfaceNormal(e,X),o.height,X),X=a.add(e,X,X);let t=new it(X,o.semiMajorAxis),n=tt.computeEllipsePositions(o,!0,!1),s=n.positions,i=n.numPts,r=Ot(s,o,!1),f=jt(i);return f=at.createTypedArray(s.length/3,f),{boundingSphere:t,attributes:r,indices:f}}function vt(o,e){let t=e.vertexFormat,n=e.center,s=e.semiMajorAxis,i=e.semiMinorAxis,r=e.ellipsoid,f=e.height,h=e.extrudedHeight,E=e.stRotation,g=o.length/3*2,c=new Float64Array(g*3),l=t.st?new Float32Array(g*2):void 0,A=t.normal?new Float32Array(g*3):void 0,x=t.tangent?new Float32Array(g*3):void 0,O=t.bitangent?new Float32Array(g*3):void 0,B=e.shadowVolume,b=B?new Float32Array(g*3):void 0,M=0,d=Tt,_=Nt,L=Et,J=new dt(r),Z=J.project(r.cartesianToCartographic(n,lt),Pt),W=r.scaleToGeodeticSurface(n,et);r.geodeticSurfaceNormal(W,W);let k=rt.fromAxisAngle(W,E,gt),q=R.fromQuaternion(k,Mt),j=Q.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,St),y=Q.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Ft),p=o.length,V=p/3*2;for(let u=0;u<p;u+=3){let N=u+1,D=u+2,P=a.fromArray(o,u,et),C;if(t.st){let ot=R.multiplyByVector(q,P,pt),$=J.project(r.cartesianToCartographic(ot,lt),xt);a.subtract($,Z,$),w.x=($.x+s)/(2*s),w.y=($.y+i)/(2*i),j.x=Math.min(w.x,j.x),j.y=Math.min(w.y,j.y),y.x=Math.max(w.x,y.x),y.y=Math.max(w.y,y.y),l[M+V]=w.x,l[M+1+V]=w.y,l[M++]=w.x,l[M++]=w.y}P=r.scaleToGeodeticSurface(P,P),C=a.clone(P,pt),d=r.geodeticSurfaceNormal(P,d),B&&(b[u+p]=-d.x,b[N+p]=-d.y,b[D+p]=-d.z);let ct=a.multiplyByScalar(d,f,wt);if(P=a.add(P,ct,P),ct=a.multiplyByScalar(d,h,ct),C=a.add(C,ct,C),t.position&&(c[u+p]=C.x,c[N+p]=C.y,c[D+p]=C.z,c[u]=P.x,c[N]=P.y,c[D]=P.z),t.normal||t.tangent||t.bitangent){L=a.clone(d,L);let ot=a.fromArray(o,(u+3)%p,wt);a.subtract(ot,P,ot);let $=a.subtract(C,P,xt);d=a.normalize(a.cross($,ot,d),d),t.normal&&(A[u]=d.x,A[N]=d.y,A[D]=d.z,A[u+p]=d.x,A[N+p]=d.y,A[D+p]=d.z),t.tangent&&(_=a.normalize(a.cross(L,d,_),_),x[u]=_.x,x[N]=_.y,x[D]=_.z,x[u+p]=_.x,x[u+1+p]=_.y,x[u+2+p]=_.z),t.bitangent&&(O[u]=L.x,O[N]=L.y,O[D]=L.z,O[u+p]=L.x,O[N+p]=L.y,O[D+p]=L.z)}}if(t.st){p=l.length;for(let u=0;u<p;u+=2)l[u]=(l[u]-j.x)/(y.x-j.x),l[u+1]=(l[u+1]-j.y)/(y.y-j.y)}let m=new ht;if(t.position&&(m.position=new F({componentDatatype:S.DOUBLE,componentsPerAttribute:3,values:c})),t.st&&(m.st=new F({componentDatatype:S.FLOAT,componentsPerAttribute:2,values:l})),t.normal&&(m.normal=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:A})),t.tangent&&(m.tangent=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:x})),t.bitangent&&(m.bitangent=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:O})),B&&(m.extrudeDirection=new F({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:b})),K(e.offsetAttribute)){let u=new Uint8Array(g);if(e.offsetAttribute===G.TOP)u=u.fill(1,0,g/2);else{let N=e.offsetAttribute===G.NONE?0:1;u=u.fill(N)}m.applyOffset=new F({componentDatatype:S.UNSIGNED_BYTE,componentsPerAttribute:1,values:u})}return m}function zt(o){let e=o.length/3,t=at.createTypedArray(e,e*6),n=0;for(let s=0;s<e;s++){let i=s,r=s+e,f=(i+1)%e,h=f+e;t[n++]=i,t[n++]=r,t[n++]=f,t[n++]=f,t[n++]=r,t[n++]=h}return t}var ut=new it,ft=new it;function Bt(o){let e=o.center,t=o.ellipsoid,n=o.semiMajorAxis,s=a.multiplyByScalar(t.geodeticSurfaceNormal(e,et),o.height,et);ut.center=a.add(e,s,ut.center),ut.radius=n,s=a.multiplyByScalar(t.geodeticSurfaceNormal(e,s),o.extrudedHeight,s),ft.center=a.add(e,s,ft.center),ft.radius=n;let i=tt.computeEllipsePositions(o,!0,!0),r=i.positions,f=i.numPts,h=i.outerPositions,E=it.union(ut,ft),g=Ot(r,o,!0),c=jt(f),l=c.length;c.length=l*2;let A=r.length/3;for(let _=0;_<l;_+=3)c[_+l]=c[_+2]+A,c[_+1+l]=c[_+1]+A,c[_+2+l]=c[_]+A;let x=at.createTypedArray(A*2/3,c),O=new st({attributes:g,indices:x,primitiveType:mt.TRIANGLES}),B=vt(h,o);c=zt(h);let b=at.createTypedArray(h.length*2/3,c),M=new st({attributes:B,indices:b,primitiveType:mt.TRIANGLES}),d=yt.combineInstances([new At({geometry:O}),new At({geometry:M})]);return{boundingSphere:E,attributes:d[0].attributes,indices:d[0].indices}}function Ct(o,e,t,n,s,i,r){let h=tt.computeEllipsePositions({center:o,semiMajorAxis:e,semiMinorAxis:t,rotation:n,granularity:s},!1,!0).outerPositions,E=h.length/3,g=new Array(E);for(let l=0;l<E;++l)g[l]=a.fromArray(h,l*3);let c=bt.fromCartesianArray(g,i,r);return c.width>I.PI&&(c.north=c.north>0?I.PI_OVER_TWO-I.EPSILON7:c.north,c.south=c.south<0?I.EPSILON7-I.PI_OVER_TWO:c.south,c.east=I.PI,c.west=-I.PI),c}function U(o){o=T(o,T.EMPTY_OBJECT);let e=o.center,t=T(o.ellipsoid,v.WGS84),n=o.semiMajorAxis,s=o.semiMinorAxis,i=T(o.granularity,I.RADIANS_PER_DEGREE),r=T(o.vertexFormat,z.DEFAULT);if(H.defined("options.center",e),H.typeOf.number("options.semiMajorAxis",n),H.typeOf.number("options.semiMinorAxis",s),n<s)throw new nt("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(i<=0)throw new nt("granularity must be greater than zero.");let f=T(o.height,0),h=T(o.extrudedHeight,f);this._center=a.clone(e),this._semiMajorAxis=n,this._semiMinorAxis=s,this._ellipsoid=v.clone(t),this._rotation=T(o.rotation,0),this._stRotation=T(o.stRotation,0),this._height=Math.max(h,f),this._granularity=i,this._vertexFormat=z.clone(r),this._extrudedHeight=Math.min(h,f),this._shadowVolume=T(o.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=o.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}U.packedLength=a.packedLength+v.packedLength+z.packedLength+9;U.pack=function(o,e,t){return H.defined("value",o),H.defined("array",e),t=T(t,0),a.pack(o._center,e,t),t+=a.packedLength,v.pack(o._ellipsoid,e,t),t+=v.packedLength,z.pack(o._vertexFormat,e,t),t+=z.packedLength,e[t++]=o._semiMajorAxis,e[t++]=o._semiMinorAxis,e[t++]=o._rotation,e[t++]=o._stRotation,e[t++]=o._height,e[t++]=o._granularity,e[t++]=o._extrudedHeight,e[t++]=o._shadowVolume?1:0,e[t]=T(o._offsetAttribute,-1),e};var Rt=new a,It=new v,Lt=new z,Y={center:Rt,ellipsoid:It,vertexFormat:Lt,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};U.unpack=function(o,e,t){H.defined("array",o),e=T(e,0);let n=a.unpack(o,e,Rt);e+=a.packedLength;let s=v.unpack(o,e,It);e+=v.packedLength;let i=z.unpack(o,e,Lt);e+=z.packedLength;let r=o[e++],f=o[e++],h=o[e++],E=o[e++],g=o[e++],c=o[e++],l=o[e++],A=o[e++]===1,x=o[e];return K(t)?(t._center=a.clone(n,t._center),t._ellipsoid=v.clone(s,t._ellipsoid),t._vertexFormat=z.clone(i,t._vertexFormat),t._semiMajorAxis=r,t._semiMinorAxis=f,t._rotation=h,t._stRotation=E,t._height=g,t._granularity=c,t._extrudedHeight=l,t._shadowVolume=A,t._offsetAttribute=x===-1?void 0:x,t):(Y.height=g,Y.extrudedHeight=l,Y.granularity=c,Y.stRotation=E,Y.rotation=h,Y.semiMajorAxis=r,Y.semiMinorAxis=f,Y.shadowVolume=A,Y.offsetAttribute=x===-1?void 0:x,new U(Y))};U.computeRectangle=function(o,e){o=T(o,T.EMPTY_OBJECT);let t=o.center,n=T(o.ellipsoid,v.WGS84),s=o.semiMajorAxis,i=o.semiMinorAxis,r=T(o.granularity,I.RADIANS_PER_DEGREE),f=T(o.rotation,0);if(H.defined("options.center",t),H.typeOf.number("options.semiMajorAxis",s),H.typeOf.number("options.semiMinorAxis",i),s<i)throw new nt("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(r<=0)throw new nt("granularity must be greater than zero.");return Ct(t,s,i,f,r,n,e)};U.createGeometry=function(o){if(o._semiMajorAxis<=0||o._semiMinorAxis<=0)return;let e=o._height,t=o._extrudedHeight,n=!I.equalsEpsilon(e,t,0,I.EPSILON2);o._center=o._ellipsoid.scaleToGeodeticSurface(o._center,o._center);let s={center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,ellipsoid:o._ellipsoid,rotation:o._rotation,height:e,granularity:o._granularity,vertexFormat:o._vertexFormat,stRotation:o._stRotation},i;if(n)s.extrudedHeight=t,s.shadowVolume=o._shadowVolume,s.offsetAttribute=o._offsetAttribute,i=Bt(s);else if(i=Dt(s),K(o._offsetAttribute)){let r=i.attributes.position.values.length,f=o._offsetAttribute===G.NONE?0:1,h=new Uint8Array(r/3).fill(f);i.attributes.applyOffset=new F({componentDatatype:S.UNSIGNED_BYTE,componentsPerAttribute:1,values:h})}return new st({attributes:i.attributes,indices:i.indices,primitiveType:mt.TRIANGLES,boundingSphere:i.boundingSphere,offsetAttribute:o._offsetAttribute})};U.createShadowVolume=function(o,e,t){let n=o._granularity,s=o._ellipsoid,i=e(n,s),r=t(n,s);return new U({center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,ellipsoid:s,rotation:o._rotation,stRotation:o._stRotation,granularity:n,extrudedHeight:i,height:r,vertexFormat:z.POSITION_ONLY,shadowVolume:!0})};function kt(o){let e=-o._stRotation;if(e===0)return[0,0,0,1,1,0];let n=tt.computeEllipsePositions({center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,rotation:o._rotation,granularity:o._granularity},!1,!0).outerPositions,s=n.length/3,i=new Array(s);for(let h=0;h<s;++h)i[h]=a.fromArray(n,h*3);let r=o._ellipsoid,f=o.rectangle;return st._textureCoordinateRotationPoints(i,e,r,f)}Object.defineProperties(U.prototype,{rectangle:{get:function(){return K(this._rectangle)||(this._rectangle=Ct(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return K(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=kt(this)),this._textureCoordinateRotationPoints}}});var de=U;export{de as a}; diff --git a/libs/cesium/1.111/Workers/chunk-CG3JQAX7.js b/libs/cesium/1.111/Workers/chunk-CG3JQAX7.js new file mode 100644 index 000000000..30dda87f1 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-CG3JQAX7.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var E={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},_=Object.freeze(E);export{_ as a}; diff --git a/libs/cesium/1.111/Workers/chunk-CN7OWDF4.js b/libs/cesium/1.111/Workers/chunk-CN7OWDF4.js new file mode 100644 index 000000000..63e0d3520 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-CN7OWDF4.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{f as C}from"./chunk-DV7DPSRL.js";import{a as n,d as b}from"./chunk-F33YCXD2.js";import{a as w}from"./chunk-DUBQPPQZ.js";var j={},q=new n,L=new n,Q=new C,G=new b;function W(m,O,p,S,g,_,d,f,M,s){let a=m+O;n.multiplyByScalar(S,Math.cos(a),q),n.multiplyByScalar(p,Math.sin(a),L),n.add(q,L,q);let u=Math.cos(m);u=u*u;let l=Math.sin(m);l=l*l;let h=_/Math.sqrt(d*u+g*l)/f;return C.fromAxisAngle(q,h,Q),b.fromQuaternion(Q,G),b.multiplyByVector(G,M,s),n.normalize(s,s),n.multiplyByScalar(s,f,s),s}var U=new n,Z=new n,N=new n,v=new n;j.raisePositionsToHeight=function(m,O,p){let S=O.ellipsoid,g=O.height,_=O.extrudedHeight,d=p?m.length/3*2:m.length/3,f=new Float64Array(d*3),M=m.length,s=p?M:0;for(let a=0;a<M;a+=3){let u=a+1,l=a+2,r=n.fromArray(m,a,U);S.scaleToGeodeticSurface(r,r);let h=n.clone(r,Z),x=S.geodeticSurfaceNormal(r,v),P=n.multiplyByScalar(x,g,N);n.add(r,P,r),p&&(n.multiplyByScalar(x,_,P),n.add(h,P,h),f[a+s]=h.x,f[u+s]=h.y,f[l+s]=h.z),f[a]=r.x,f[u]=r.y,f[l]=r.z}return f};var D=new n,J=new n,K=new n;j.computeEllipsePositions=function(m,O,p){let S=m.semiMinorAxis,g=m.semiMajorAxis,_=m.rotation,d=m.center,f=m.granularity*8,M=S*S,s=g*g,a=g*S,u=n.magnitude(d),l=n.normalize(d,D),r=n.cross(n.UNIT_Z,d,J);r=n.normalize(r,r);let h=n.cross(l,r,K),x=1+Math.ceil(w.PI_OVER_TWO/f),P=w.PI_OVER_TWO/(x-1),y=w.PI_OVER_TWO-x*P;y<0&&(x-=Math.ceil(Math.abs(y)/P));let k=2*(x*(x+2)),e=O?new Array(k*3):void 0,o=0,t=U,i=Z,H=x*4*3,z=H-1,A=0,c=p?new Array(H):void 0,I,T,R,E,V;for(y=w.PI_OVER_TWO,t=W(y,_,h,r,M,a,s,u,l,t),O&&(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z),p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x),y=w.PI_OVER_TWO-P,I=1;I<x+1;++I){if(t=W(y,_,h,r,M,a,s,u,l,t),i=W(Math.PI-y,_,h,r,M,a,s,u,l,i),O){for(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,R=2*I+2,T=1;T<R-1;++T)E=T/(R-1),V=n.lerp(t,i,E,N),e[o++]=V.x,e[o++]=V.y,e[o++]=V.z;e[o++]=i.x,e[o++]=i.y,e[o++]=i.z}p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,c[A++]=i.x,c[A++]=i.y,c[A++]=i.z),y=w.PI_OVER_TWO-(I+1)*P}for(I=x;I>1;--I){if(y=w.PI_OVER_TWO-(I-1)*P,t=W(-y,_,h,r,M,a,s,u,l,t),i=W(y+Math.PI,_,h,r,M,a,s,u,l,i),O){for(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,R=2*(I-1)+2,T=1;T<R-1;++T)E=T/(R-1),V=n.lerp(t,i,E,N),e[o++]=V.x,e[o++]=V.y,e[o++]=V.z;e[o++]=i.x,e[o++]=i.y,e[o++]=i.z}p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,c[A++]=i.x,c[A++]=i.y,c[A++]=i.z)}y=w.PI_OVER_TWO,t=W(-y,_,h,r,M,a,s,u,l,t);let B={};return O&&(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,B.positions=e,B.numPts=x),p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,B.outerPositions=c),B};var tt=j;export{tt as a}; diff --git a/libs/cesium/1.111/Workers/chunk-DEMPH3MF.js b/libs/cesium/1.111/Workers/chunk-DEMPH3MF.js new file mode 100644 index 000000000..a15458bbb --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-DEMPH3MF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as W}from"./chunk-N52FZRFP.js";import{a as Z}from"./chunk-JZL634RF.js";import{a as X}from"./chunk-3UAKIC5Y.js";import{b as K,c as Q,d as V}from"./chunk-QEWKHB6D.js";import{d as H}from"./chunk-DV7DPSRL.js";import{a as U}from"./chunk-7XDW3BZW.js";import{a as r,c as J}from"./chunk-F33YCXD2.js";import{a as B}from"./chunk-DUBQPPQZ.js";import{a as u}from"./chunk-K36PKEJW.js";import{a as P}from"./chunk-KD2PMTHD.js";import{e as T}from"./chunk-ZUCO5WNM.js";var ii=new r(1,1,1),S=Math.cos,q=Math.sin;function x(t){t=u(t,u.EMPTY_OBJECT);let o=u(t.radii,ii),n=u(t.innerRadii,o),k=u(t.minimumClock,0),w=u(t.maximumClock,B.TWO_PI),d=u(t.minimumCone,0),l=u(t.maximumCone,B.PI),s=Math.round(u(t.stackPartitions,10)),A=Math.round(u(t.slicePartitions,8)),m=Math.round(u(t.subdivisions,128));if(s<1)throw new P("options.stackPartitions cannot be less than 1");if(A<0)throw new P("options.slicePartitions cannot be less than 0");if(m<0)throw new P("options.subdivisions must be greater than or equal to zero.");if(T(t.offsetAttribute)&&t.offsetAttribute===W.TOP)throw new P("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._radii=r.clone(o),this._innerRadii=r.clone(n),this._minimumClock=k,this._maximumClock=w,this._minimumCone=d,this._maximumCone=l,this._stackPartitions=s,this._slicePartitions=A,this._subdivisions=m,this._offsetAttribute=t.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}x.packedLength=2*r.packedLength+8;x.pack=function(t,o,n){if(!T(t))throw new P("value is required");if(!T(o))throw new P("array is required");return n=u(n,0),r.pack(t._radii,o,n),n+=r.packedLength,r.pack(t._innerRadii,o,n),n+=r.packedLength,o[n++]=t._minimumClock,o[n++]=t._maximumClock,o[n++]=t._minimumCone,o[n++]=t._maximumCone,o[n++]=t._stackPartitions,o[n++]=t._slicePartitions,o[n++]=t._subdivisions,o[n]=u(t._offsetAttribute,-1),o};var $=new r,G=new r,b={radii:$,innerRadii:G,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};x.unpack=function(t,o,n){if(!T(t))throw new P("array is required");o=u(o,0);let k=r.unpack(t,o,$);o+=r.packedLength;let w=r.unpack(t,o,G);o+=r.packedLength;let d=t[o++],l=t[o++],s=t[o++],A=t[o++],m=t[o++],f=t[o++],E=t[o++],h=t[o];return T(n)?(n._radii=r.clone(k,n._radii),n._innerRadii=r.clone(w,n._innerRadii),n._minimumClock=d,n._maximumClock=l,n._minimumCone=s,n._maximumCone=A,n._stackPartitions=m,n._slicePartitions=f,n._subdivisions=E,n._offsetAttribute=h===-1?void 0:h,n):(b.minimumClock=d,b.maximumClock=l,b.minimumCone=s,b.maximumCone=A,b.stackPartitions=m,b.slicePartitions=f,b.subdivisions=E,b.offsetAttribute=h===-1?void 0:h,new x(b))};x.createGeometry=function(t){let o=t._radii;if(o.x<=0||o.y<=0||o.z<=0)return;let n=t._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let k=t._minimumClock,w=t._maximumClock,d=t._minimumCone,l=t._maximumCone,s=t._subdivisions,A=J.fromCartesian3(o),m=t._slicePartitions+1,f=t._stackPartitions+1;m=Math.round(m*Math.abs(w-k)/B.TWO_PI),f=Math.round(f*Math.abs(l-d)/B.PI),m<2&&(m=2),f<2&&(f=2);let E=0,h=1,L=n.x!==o.x||n.y!==o.y||n.z!==o.z,Y=!1,j=!1;L&&(h=2,d>0&&(Y=!0,E+=m),l<Math.PI&&(j=!0,E+=m));let y=s*h*(f+m),a=new Float64Array(y*3),g=2*(y+E-(m+f)*h),_=Z.createTypedArray(y,g),i,e,v,z,c=0,C=new Array(f),O=new Array(f);for(i=0;i<f;i++)z=d+i*(l-d)/(f-1),C[i]=q(z),O[i]=S(z);let M=new Array(s),R=new Array(s);for(i=0;i<s;i++)v=k+i*(w-k)/(s-1),M[i]=q(v),R[i]=S(v);for(i=0;i<f;i++)for(e=0;e<s;e++)a[c++]=o.x*C[i]*R[e],a[c++]=o.y*C[i]*M[e],a[c++]=o.z*O[i];if(L)for(i=0;i<f;i++)for(e=0;e<s;e++)a[c++]=n.x*C[i]*R[e],a[c++]=n.y*C[i]*M[e],a[c++]=n.z*O[i];for(C.length=s,O.length=s,i=0;i<s;i++)z=d+i*(l-d)/(s-1),C[i]=q(z),O[i]=S(z);for(M.length=m,R.length=m,i=0;i<m;i++)v=k+i*(w-k)/(m-1),M[i]=q(v),R[i]=S(v);for(i=0;i<s;i++)for(e=0;e<m;e++)a[c++]=o.x*C[i]*R[e],a[c++]=o.y*C[i]*M[e],a[c++]=o.z*O[i];if(L)for(i=0;i<s;i++)for(e=0;e<m;e++)a[c++]=n.x*C[i]*R[e],a[c++]=n.y*C[i]*M[e],a[c++]=n.z*O[i];for(c=0,i=0;i<f*h;i++){let p=i*s;for(e=0;e<s-1;e++)_[c++]=p+e,_[c++]=p+e+1}let D=f*s*h;for(i=0;i<m;i++)for(e=0;e<s-1;e++)_[c++]=D+i+e*m,_[c++]=D+i+(e+1)*m;if(L)for(D=f*s*h+m*s,i=0;i<m;i++)for(e=0;e<s-1;e++)_[c++]=D+i+e*m,_[c++]=D+i+(e+1)*m;if(L){let p=f*s*h,N=p+s*m;if(Y)for(i=0;i<m;i++)_[c++]=p+i,_[c++]=N+i;if(j)for(p+=s*m-m,N+=s*m-m,i=0;i<m;i++)_[c++]=p+i,_[c++]=N+i}let F=new X({position:new V({componentDatatype:U.DOUBLE,componentsPerAttribute:3,values:a})});if(T(t._offsetAttribute)){let p=a.length,N=t._offsetAttribute===W.NONE?0:1,I=new Uint8Array(p/3).fill(N);F.applyOffset=new V({componentDatatype:U.UNSIGNED_BYTE,componentsPerAttribute:1,values:I})}return new Q({attributes:F,indices:_,primitiveType:K.LINES,boundingSphere:H.fromEllipsoid(A),offsetAttribute:t._offsetAttribute})};var Ci=x;export{Ci as a}; diff --git a/libs/cesium/1.111/Workers/chunk-DUBQPPQZ.js b/libs/cesium/1.111/Workers/chunk-DUBQPPQZ.js new file mode 100644 index 000000000..df241d946 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-DUBQPPQZ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as f}from"./chunk-K36PKEJW.js";import{a as n,b as c}from"./chunk-KD2PMTHD.js";import{c as I,d as _,e as o}from"./chunk-ZUCO5WNM.js";var P=I((O,d)=>{var u=function(t){t==null&&(t=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,t.constructor==Array?this.init_by_array(t,t.length):this.init_seed(t)};u.prototype.init_seed=function(t){for(this.mt[0]=t>>>0,this.mti=1;this.mti<this.N;this.mti++){var t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((t&4294901760)>>>16)*1812433253<<16)+(t&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};u.prototype.init_by_array=function(t,i){var e,s,h;for(this.init_seed(19650218),e=1,s=0,h=this.N>i?this.N:i;h;h--){var a=this.mt[e-1]^this.mt[e-1]>>>30;this.mt[e]=(this.mt[e]^(((a&4294901760)>>>16)*1664525<<16)+(a&65535)*1664525)+t[s]+s,this.mt[e]>>>=0,e++,s++,e>=this.N&&(this.mt[0]=this.mt[this.N-1],e=1),s>=i&&(s=0)}for(h=this.N-1;h;h--){var a=this.mt[e-1]^this.mt[e-1]>>>30;this.mt[e]=(this.mt[e]^(((a&4294901760)>>>16)*1566083941<<16)+(a&65535)*1566083941)-e,this.mt[e]>>>=0,e++,e>=this.N&&(this.mt[0]=this.mt[this.N-1],e=1)}this.mt[0]=2147483648};u.prototype.random_int=function(){var t,i=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var e;for(this.mti==this.N+1&&this.init_seed(5489),e=0;e<this.N-this.M;e++)t=this.mt[e]&this.UPPER_MASK|this.mt[e+1]&this.LOWER_MASK,this.mt[e]=this.mt[e+this.M]^t>>>1^i[t&1];for(;e<this.N-1;e++)t=this.mt[e]&this.UPPER_MASK|this.mt[e+1]&this.LOWER_MASK,this.mt[e]=this.mt[e+(this.M-this.N)]^t>>>1^i[t&1];t=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^t>>>1^i[t&1],this.mti=0}return t=this.mt[this.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0};u.prototype.random_int31=function(){return this.random_int()>>>1};u.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};u.prototype.random=function(){return this.random_int()*(1/4294967296)};u.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};u.prototype.random_long=function(){var t=this.random_int()>>>5,i=this.random_int()>>>6;return(t*67108864+i)*(1/9007199254740992)};d.exports=u});var m=_(P(),1);var r={};r.EPSILON1=.1;r.EPSILON2=.01;r.EPSILON3=.001;r.EPSILON4=1e-4;r.EPSILON5=1e-5;r.EPSILON6=1e-6;r.EPSILON7=1e-7;r.EPSILON8=1e-8;r.EPSILON9=1e-9;r.EPSILON10=1e-10;r.EPSILON11=1e-11;r.EPSILON12=1e-12;r.EPSILON13=1e-13;r.EPSILON14=1e-14;r.EPSILON15=1e-15;r.EPSILON16=1e-16;r.EPSILON17=1e-17;r.EPSILON18=1e-18;r.EPSILON19=1e-19;r.EPSILON20=1e-20;r.EPSILON21=1e-21;r.GRAVITATIONALPARAMETER=3986004418e5;r.SOLAR_RADIUS=6955e5;r.LUNAR_RADIUS=1737400;r.SIXTY_FOUR_KILOBYTES=64*1024;r.FOUR_GIGABYTES=4*1024*1024*1024;r.sign=f(Math.sign,function(i){return i=+i,i===0||i!==i?i:i>0?1:-1});r.signNotZero=function(t){return t<0?-1:1};r.toSNorm=function(t,i){return i=f(i,255),Math.round((r.clamp(t,-1,1)*.5+.5)*i)};r.fromSNorm=function(t,i){return i=f(i,255),r.clamp(t,0,i)/i*2-1};r.normalize=function(t,i,e){return e=Math.max(e-i,0),e===0?0:r.clamp((t-i)/e,0,1)};r.sinh=f(Math.sinh,function(i){return(Math.exp(i)-Math.exp(-i))/2});r.cosh=f(Math.cosh,function(i){return(Math.exp(i)+Math.exp(-i))/2});r.lerp=function(t,i,e){return(1-e)*t+e*i};r.PI=Math.PI;r.ONE_OVER_PI=1/Math.PI;r.PI_OVER_TWO=Math.PI/2;r.PI_OVER_THREE=Math.PI/3;r.PI_OVER_FOUR=Math.PI/4;r.PI_OVER_SIX=Math.PI/6;r.THREE_PI_OVER_TWO=3*Math.PI/2;r.TWO_PI=2*Math.PI;r.ONE_OVER_TWO_PI=1/(2*Math.PI);r.RADIANS_PER_DEGREE=Math.PI/180;r.DEGREES_PER_RADIAN=180/Math.PI;r.RADIANS_PER_ARCSECOND=r.RADIANS_PER_DEGREE/3600;r.toRadians=function(t){if(!o(t))throw new n("degrees is required.");return t*r.RADIANS_PER_DEGREE};r.toDegrees=function(t){if(!o(t))throw new n("radians is required.");return t*r.DEGREES_PER_RADIAN};r.convertLongitudeRange=function(t){if(!o(t))throw new n("angle is required.");let i=r.TWO_PI,e=t-Math.floor(t/i)*i;return e<-Math.PI?e+i:e>=Math.PI?e-i:e};r.clampToLatitudeRange=function(t){if(!o(t))throw new n("angle is required.");return r.clamp(t,-1*r.PI_OVER_TWO,r.PI_OVER_TWO)};r.negativePiToPi=function(t){if(!o(t))throw new n("angle is required.");return t>=-r.PI&&t<=r.PI?t:r.zeroToTwoPi(t+r.PI)-r.PI};r.zeroToTwoPi=function(t){if(!o(t))throw new n("angle is required.");if(t>=0&&t<=r.TWO_PI)return t;let i=r.mod(t,r.TWO_PI);return Math.abs(i)<r.EPSILON14&&Math.abs(t)>r.EPSILON14?r.TWO_PI:i};r.mod=function(t,i){if(!o(t))throw new n("m is required.");if(!o(i))throw new n("n is required.");if(i===0)throw new n("divisor cannot be 0.");return r.sign(t)===r.sign(i)&&Math.abs(t)<Math.abs(i)?t:(t%i+i)%i};r.equalsEpsilon=function(t,i,e,s){if(!o(t))throw new n("left is required.");if(!o(i))throw new n("right is required.");e=f(e,0),s=f(s,e);let h=Math.abs(t-i);return h<=s||h<=e*Math.max(Math.abs(t),Math.abs(i))};r.lessThan=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i<-e};r.lessThanOrEquals=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i<e};r.greaterThan=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i>e};r.greaterThanOrEquals=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i>-e};var w=[1];r.factorial=function(t){if(typeof t!="number"||t<0)throw new n("A number greater than or equal to 0 is required.");let i=w.length;if(t>=i){let e=w[i-1];for(let s=i;s<=t;s++){let h=e*s;w.push(h),e=h}}return w[t]};r.incrementWrap=function(t,i,e){if(e=f(e,0),!o(t))throw new n("n is required.");if(i<=e)throw new n("maximumValue must be greater than minimumValue.");return++t,t>i&&(t=e),t};r.isPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>4294967295)throw new n("A number between 0 and (2^32)-1 is required.");return t!==0&&(t&t-1)===0};r.nextPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>2147483648)throw new n("A number between 0 and 2^31 is required.");return--t,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t,t};r.previousPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>4294967295)throw new n("A number between 0 and (2^32)-1 is required.");return t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t|=t>>32,t=(t>>>0)-(t>>>1),t};r.clamp=function(t,i,e){return c.typeOf.number("value",t),c.typeOf.number("min",i),c.typeOf.number("max",e),t<i?i:t>e?e:t};var E=new m.default;r.setRandomNumberSeed=function(t){if(!o(t))throw new n("seed is required.");E=new m.default(t)};r.nextRandomNumber=function(){return E.random()};r.randomBetween=function(t,i){return r.nextRandomNumber()*(i-t)+t};r.acosClamped=function(t){if(!o(t))throw new n("value is required.");return Math.acos(r.clamp(t,-1,1))};r.asinClamped=function(t){if(!o(t))throw new n("value is required.");return Math.asin(r.clamp(t,-1,1))};r.chordLength=function(t,i){if(!o(t))throw new n("angle is required.");if(!o(i))throw new n("radius is required.");return 2*i*Math.sin(t*.5)};r.logBase=function(t,i){if(!o(t))throw new n("number is required.");if(!o(i))throw new n("base is required.");return Math.log(t)/Math.log(i)};r.cbrt=f(Math.cbrt,function(i){let e=Math.pow(Math.abs(i),.3333333333333333);return i<0?-e:e});r.log2=f(Math.log2,function(i){return Math.log(i)*Math.LOG2E});r.fog=function(t,i){let e=t*i;return 1-Math.exp(-(e*e))};r.fastApproximateAtan=function(t){return c.typeOf.number("x",t),t*(-.1784*Math.abs(t)-.0663*t*t+1.0301)};r.fastApproximateAtan2=function(t,i){c.typeOf.number("x",t),c.typeOf.number("y",i);let e,s=Math.abs(t);e=Math.abs(i);let h=Math.max(s,e);e=Math.min(s,e);let a=e/h;if(isNaN(a))throw new n("either x or y must be nonzero");return s=r.fastApproximateAtan(a),s=Math.abs(i)>Math.abs(t)?r.PI_OVER_TWO-s:s,s=t<0?r.PI-s:s,s=i<0?-s:s,s};var A=r;export{A as a}; diff --git a/libs/cesium/1.111/Workers/chunk-DV7DPSRL.js b/libs/cesium/1.111/Workers/chunk-DV7DPSRL.js new file mode 100644 index 000000000..bcc57538b --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-DV7DPSRL.js @@ -0,0 +1,62 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as qe}from"./chunk-4FFHQQYZ.js";import{a as xt,b as L,c as vt,d as sn}from"./chunk-KCIWEUSR.js";import{a as f,b as De,c as ze,d as B}from"./chunk-F33YCXD2.js";import{a as J}from"./chunk-DUBQPPQZ.js";import{a as Ee}from"./chunk-P3JQY4NV.js";import{a as O}from"./chunk-K36PKEJW.js";import{a as R,b as w}from"./chunk-KD2PMTHD.js";import{a as _t,c as St,d as Ge,e as d}from"./chunk-ZUCO5WNM.js";var or=St((et,tt)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof et=="object"&&et&&!et.nodeType&&et,n=typeof tt=="object"&&tt&&!tt.nodeType&&tt,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var s,o=2147483647,c=36,u=1,p=26,b=38,g=700,y=72,S=128,A="-",I=/^xn--/,T=/[^\x20-\x7E]/,k=/[\x2E\u3002\uFF0E\uFF61]/g,D={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},F=c-u,z=Math.floor,M=String.fromCharCode,N;function Y(h){throw new RangeError(D[h])}function oe(h,P){for(var q=h.length,V=[];q--;)V[q]=P(h[q]);return V}function ie(h,P){var q=h.split("@"),V="";q.length>1&&(V=q[0]+"@",h=q[1]),h=h.replace(k,".");var ne=h.split("."),se=oe(ne,P).join(".");return V+se}function X(h){for(var P=[],q=0,V=h.length,ne,se;q<V;)ne=h.charCodeAt(q++),ne>=55296&&ne<=56319&&q<V?(se=h.charCodeAt(q++),(se&64512)==56320?P.push(((ne&1023)<<10)+(se&1023)+65536):(P.push(ne),q--)):P.push(ne);return P}function W(h){return oe(h,function(P){var q="";return P>65535&&(P-=65536,q+=M(P>>>10&1023|55296),P=56320|P&1023),q+=M(P),q}).join("")}function Q(h){return h-48<10?h-22:h-65<26?h-65:h-97<26?h-97:c}function r(h,P){return h+22+75*(h<26)-((P!=0)<<5)}function a(h,P,q){var V=0;for(h=q?z(h/g):h>>1,h+=z(h/P);h>F*p>>1;V+=c)h=z(h/F);return z(V+(F+1)*h/(h+b))}function l(h){var P=[],q=h.length,V,ne=0,se=S,G=y,ae,he,be,ye,fe,_e,xe,Ue,Le;for(ae=h.lastIndexOf(A),ae<0&&(ae=0),he=0;he<ae;++he)h.charCodeAt(he)>=128&&Y("not-basic"),P.push(h.charCodeAt(he));for(be=ae>0?ae+1:0;be<q;){for(ye=ne,fe=1,_e=c;be>=q&&Y("invalid-input"),xe=Q(h.charCodeAt(be++)),(xe>=c||xe>z((o-ne)/fe))&&Y("overflow"),ne+=xe*fe,Ue=_e<=G?u:_e>=G+p?p:_e-G,!(xe<Ue);_e+=c)Le=c-Ue,fe>z(o/Le)&&Y("overflow"),fe*=Le;V=P.length+1,G=a(ne-ye,V,ye==0),z(ne/V)>o-se&&Y("overflow"),se+=z(ne/V),ne%=V,P.splice(ne++,0,se)}return W(P)}function m(h){var P,q,V,ne,se,G,ae,he,be,ye,fe,_e=[],xe,Ue,Le,on;for(h=X(h),xe=h.length,P=S,q=0,se=y,G=0;G<xe;++G)fe=h[G],fe<128&&_e.push(M(fe));for(V=ne=_e.length,ne&&_e.push(A);V<xe;){for(ae=o,G=0;G<xe;++G)fe=h[G],fe>=P&&fe<ae&&(ae=fe);for(Ue=V+1,ae-P>z((o-q)/Ue)&&Y("overflow"),q+=(ae-P)*Ue,P=ae,G=0;G<xe;++G)if(fe=h[G],fe<P&&++q>o&&Y("overflow"),fe==P){for(he=q,be=c;ye=be<=se?u:be>=se+p?p:be-se,!(he<ye);be+=c)on=he-ye,Le=c-ye,_e.push(M(r(ye+on%Le,0))),he=z(on/Le);_e.push(M(r(he,0))),se=a(q,Ue,V==ne),q=0,++V}++q,++P}return _e.join("")}function _(h){return ie(h,function(P){return I.test(P)?l(P.slice(4).toLowerCase()):P})}function v(h){return ie(h,function(P){return T.test(P)?"xn--"+m(P):P})}if(s={version:"1.3.2",ucs2:{decode:X,encode:W},decode:l,encode:m,toASCII:v,toUnicode:_},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return s});else if(t&&n)if(tt.exports==t)n.exports=s;else for(N in s)s.hasOwnProperty(N)&&(t[N]=s[N]);else e.punycode=s})(et)});var sr=St((ir,It)=>{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof It=="object"&&It.exports?It.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(ir,function(e){"use strict";var t=e&&e.IPv6;function n(s){var o=s.toLowerCase(),c=o.split(":"),u=c.length,p=8;c[0]===""&&c[1]===""&&c[2]===""?(c.shift(),c.shift()):c[0]===""&&c[1]===""?c.shift():c[u-1]===""&&c[u-2]===""&&c.pop(),u=c.length,c[u-1].indexOf(".")!==-1&&(p=7);var b;for(b=0;b<u&&c[b]!=="";b++);if(b<p)for(c.splice(b,1,"0000");c.length<p;)c.splice(b,0,"0000");for(var g,y=0;y<p;y++){g=c[y].split("");for(var S=0;S<3&&(g[0]==="0"&&g.length>1);S++)g.splice(0,1);c[y]=g.join("")}var A=-1,I=0,T=0,k=-1,D=!1;for(y=0;y<p;y++)D?c[y]==="0"?T+=1:(D=!1,T>I&&(A=k,I=T)):c[y]==="0"&&(D=!0,k=y,T=1);T>I&&(A=k,I=T),I>1&&c.splice(A,I,""),u=c.length;var F="";for(c[0]===""&&(F=":"),y=0;y<u&&(F+=c[y],y!==u-1);y++)F+=":";return c[u-1]===""&&(F+=":"),F}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var cr=St((ar,Ut)=>{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof Ut=="object"&&Ut.exports?Ut.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(ar,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var s=i.lastIndexOf(".");if(s<=0||s>=i.length-1)return!1;var o=i.lastIndexOf(".",s-1);if(o<=0||o>=s-1)return!1;var c=n.list[i.slice(s+1)];return c?c.indexOf(" "+i.slice(o+1,s)+" ")>=0:!1},is:function(i){var s=i.lastIndexOf(".");if(s<=0||s>=i.length-1)return!1;var o=i.lastIndexOf(".",s-1);if(o>=0)return!1;var c=n.list[i.slice(s+1)];return c?c.indexOf(" "+i.slice(0,s)+" ")>=0:!1},get:function(i){var s=i.lastIndexOf(".");if(s<=0||s>=i.length-1)return null;var o=i.lastIndexOf(".",s-1);if(o<=0||o>=s-1)return null;var c=n.list[i.slice(s+1)];return!c||c.indexOf(" "+i.slice(o+1,s)+" ")<0?null:i.slice(o+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var $e=St((ur,Dt)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof Dt=="object"&&Dt.exports?Dt.exports=t(or(),sr(),cr()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(ur,function(e,t,n,i){"use strict";var s=i&&i.URI;function o(r,a){var l=arguments.length>=1,m=arguments.length>=2;if(!(this instanceof o))return l?m?new o(r,a):new o(r):new o;if(r===void 0){if(l)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?r=location.href+"":r=""}if(r===null&&l)throw new TypeError("null is not a valid argument for URI");return this.href(r),a!==void 0?this.absoluteTo(a):this}function c(r){return/^[0-9]+$/.test(r)}o.version="1.19.11";var u=o.prototype,p=Object.prototype.hasOwnProperty;function b(r){return r.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function g(r){return r===void 0?"Undefined":String(Object.prototype.toString.call(r)).slice(8,-1)}function y(r){return g(r)==="Array"}function S(r,a){var l={},m,_;if(g(a)==="RegExp")l=null;else if(y(a))for(m=0,_=a.length;m<_;m++)l[a[m]]=!0;else l[a]=!0;for(m=0,_=r.length;m<_;m++){var v=l&&l[r[m]]!==void 0||!l&&a.test(r[m]);v&&(r.splice(m,1),_--,m--)}return r}function A(r,a){var l,m;if(y(a)){for(l=0,m=a.length;l<m;l++)if(!A(r,a[l]))return!1;return!0}var _=g(a);for(l=0,m=r.length;l<m;l++)if(_==="RegExp"){if(typeof r[l]=="string"&&r[l].match(a))return!0}else if(r[l]===a)return!0;return!1}function I(r,a){if(!y(r)||!y(a)||r.length!==a.length)return!1;r.sort(),a.sort();for(var l=0,m=r.length;l<m;l++)if(r[l]!==a[l])return!1;return!0}function T(r){var a=/^\/+|\/+$/g;return r.replace(a,"")}o._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:o.preventInvalidHostname,duplicateQueryParameters:o.duplicateQueryParameters,escapeQuerySpace:o.escapeQuerySpace}},o.preventInvalidHostname=!1,o.duplicateQueryParameters=!1,o.escapeQuerySpace=!0,o.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,o.idn_expression=/[^a-z0-9\._-]/i,o.punycode_expression=/(xn--)/i,o.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,o.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,o.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,o.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},o.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,o.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,o.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},o.hostProtocols=["http","https"],o.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,o.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},o.getDomAttribute=function(r){if(!(!r||!r.nodeName)){var a=r.nodeName.toLowerCase();if(!(a==="input"&&r.type!=="image"))return o.domAttributes[a]}};function k(r){return escape(r)}function D(r){return encodeURIComponent(r).replace(/[!'()*]/g,k).replace(/\*/g,"%2A")}o.encode=D,o.decode=decodeURIComponent,o.iso8859=function(){o.encode=escape,o.decode=unescape},o.unicode=function(){o.encode=D,o.decode=decodeURIComponent},o.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},o.encodeQuery=function(r,a){var l=o.encode(r+"");return a===void 0&&(a=o.escapeQuerySpace),a?l.replace(/%20/g,"+"):l},o.decodeQuery=function(r,a){r+="",a===void 0&&(a=o.escapeQuerySpace);try{return o.decode(a?r.replace(/\+/g,"%20"):r)}catch{return r}};var F={encode:"encode",decode:"decode"},z,M=function(r,a){return function(l){try{return o[a](l+"").replace(o.characters[r][a].expression,function(m){return o.characters[r][a].map[m]})}catch{return l}}};for(z in F)o[z+"PathSegment"]=M("pathname",F[z]),o[z+"UrnPathSegment"]=M("urnpath",F[z]);var N=function(r,a,l){return function(m){var _;l?_=function(q){return o[a](o[l](q))}:_=o[a];for(var v=(m+"").split(r),h=0,P=v.length;h<P;h++)v[h]=_(v[h]);return v.join(r)}};o.decodePath=N("/","decodePathSegment"),o.decodeUrnPath=N(":","decodeUrnPathSegment"),o.recodePath=N("/","encodePathSegment","decode"),o.recodeUrnPath=N(":","encodeUrnPathSegment","decode"),o.encodeReserved=M("reserved","encode"),o.parse=function(r,a){var l;return a||(a={preventInvalidHostname:o.preventInvalidHostname}),r=r.replace(o.leading_whitespace_expression,""),r=r.replace(o.ascii_tab_whitespace,""),l=r.indexOf("#"),l>-1&&(a.fragment=r.substring(l+1)||null,r=r.substring(0,l)),l=r.indexOf("?"),l>-1&&(a.query=r.substring(l+1)||null,r=r.substring(0,l)),r=r.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),r=r.replace(/^[/\\]{2,}/i,"//"),r.substring(0,2)==="//"?(a.protocol=null,r=r.substring(2),r=o.parseAuthority(r,a)):(l=r.indexOf(":"),l>-1&&(a.protocol=r.substring(0,l)||null,a.protocol&&!a.protocol.match(o.protocol_expression)?a.protocol=void 0:r.substring(l+1,l+3).replace(/\\/g,"/")==="//"?(r=r.substring(l+3),r=o.parseAuthority(r,a)):(r=r.substring(l+1),a.urn=!0))),a.path=r,a},o.parseHost=function(r,a){r||(r=""),r=r.replace(/\\/g,"/");var l=r.indexOf("/"),m,_;if(l===-1&&(l=r.length),r.charAt(0)==="[")m=r.indexOf("]"),a.hostname=r.substring(1,m)||null,a.port=r.substring(m+2,l)||null,a.port==="/"&&(a.port=null);else{var v=r.indexOf(":"),h=r.indexOf("/"),P=r.indexOf(":",v+1);P!==-1&&(h===-1||P<h)?(a.hostname=r.substring(0,l)||null,a.port=null):(_=r.substring(0,l).split(":"),a.hostname=_[0]||null,a.port=_[1]||null)}return a.hostname&&r.substring(l).charAt(0)!=="/"&&(l++,r="/"+r),a.preventInvalidHostname&&o.ensureValidHostname(a.hostname,a.protocol),a.port&&o.ensureValidPort(a.port),r.substring(l)||"/"},o.parseAuthority=function(r,a){return r=o.parseUserinfo(r,a),o.parseHost(r,a)},o.parseUserinfo=function(r,a){var l=r,m=r.indexOf("\\");m!==-1&&(r=r.replace(/\\/g,"/"));var _=r.indexOf("/"),v=r.lastIndexOf("@",_>-1?_:r.length-1),h;return v>-1&&(_===-1||v<_)?(h=r.substring(0,v).split(":"),a.username=h[0]?o.decode(h[0]):null,h.shift(),a.password=h[0]?o.decode(h.join(":")):null,r=l.substring(v+1)):(a.username=null,a.password=null),r},o.parseQuery=function(r,a){if(!r)return{};if(r=r.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!r)return{};for(var l={},m=r.split("&"),_=m.length,v,h,P,q=0;q<_;q++)v=m[q].split("="),h=o.decodeQuery(v.shift(),a),P=v.length?o.decodeQuery(v.join("="),a):null,h!=="__proto__"&&(p.call(l,h)?((typeof l[h]=="string"||l[h]===null)&&(l[h]=[l[h]]),l[h].push(P)):l[h]=P);return l},o.build=function(r){var a="",l=!1;return r.protocol&&(a+=r.protocol+":"),!r.urn&&(a||r.hostname)&&(a+="//",l=!0),a+=o.buildAuthority(r)||"",typeof r.path=="string"&&(r.path.charAt(0)!=="/"&&l&&(a+="/"),a+=r.path),typeof r.query=="string"&&r.query&&(a+="?"+r.query),typeof r.fragment=="string"&&r.fragment&&(a+="#"+r.fragment),a},o.buildHost=function(r){var a="";if(r.hostname)o.ip6_expression.test(r.hostname)?a+="["+r.hostname+"]":a+=r.hostname;else return"";return r.port&&(a+=":"+r.port),a},o.buildAuthority=function(r){return o.buildUserinfo(r)+o.buildHost(r)},o.buildUserinfo=function(r){var a="";return r.username&&(a+=o.encode(r.username)),r.password&&(a+=":"+o.encode(r.password)),a&&(a+="@"),a},o.buildQuery=function(r,a,l){var m="",_,v,h,P;for(v in r)if(v!=="__proto__"&&p.call(r,v))if(y(r[v]))for(_={},h=0,P=r[v].length;h<P;h++)r[v][h]!==void 0&&_[r[v][h]+""]===void 0&&(m+="&"+o.buildQueryParameter(v,r[v][h],l),a!==!0&&(_[r[v][h]+""]=!0));else r[v]!==void 0&&(m+="&"+o.buildQueryParameter(v,r[v],l));return m.substring(1)},o.buildQueryParameter=function(r,a,l){return o.encodeQuery(r,l)+(a!==null?"="+o.encodeQuery(a,l):"")},o.addQuery=function(r,a,l){if(typeof a=="object")for(var m in a)p.call(a,m)&&o.addQuery(r,m,a[m]);else if(typeof a=="string"){if(r[a]===void 0){r[a]=l;return}else typeof r[a]=="string"&&(r[a]=[r[a]]);y(l)||(l=[l]),r[a]=(r[a]||[]).concat(l)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},o.setQuery=function(r,a,l){if(typeof a=="object")for(var m in a)p.call(a,m)&&o.setQuery(r,m,a[m]);else if(typeof a=="string")r[a]=l===void 0?null:l;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},o.removeQuery=function(r,a,l){var m,_,v;if(y(a))for(m=0,_=a.length;m<_;m++)r[a[m]]=void 0;else if(g(a)==="RegExp")for(v in r)a.test(v)&&(r[v]=void 0);else if(typeof a=="object")for(v in a)p.call(a,v)&&o.removeQuery(r,v,a[v]);else if(typeof a=="string")l!==void 0?g(l)==="RegExp"?!y(r[a])&&l.test(r[a])?r[a]=void 0:r[a]=S(r[a],l):r[a]===String(l)&&(!y(l)||l.length===1)?r[a]=void 0:y(r[a])&&(r[a]=S(r[a],l)):r[a]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},o.hasQuery=function(r,a,l,m){switch(g(a)){case"String":break;case"RegExp":for(var _ in r)if(p.call(r,_)&&a.test(_)&&(l===void 0||o.hasQuery(r,_,l)))return!0;return!1;case"Object":for(var v in a)if(p.call(a,v)&&!o.hasQuery(r,v,a[v]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(g(l)){case"Undefined":return a in r;case"Boolean":var h=!!(y(r[a])?r[a].length:r[a]);return l===h;case"Function":return!!l(r[a],a,r);case"Array":if(!y(r[a]))return!1;var P=m?A:I;return P(r[a],l);case"RegExp":return y(r[a])?m?A(r[a],l):!1:!!(r[a]&&r[a].match(l));case"Number":l=String(l);case"String":return y(r[a])?m?A(r[a],l):!1:r[a]===l;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},o.joinPaths=function(){for(var r=[],a=[],l=0,m=0;m<arguments.length;m++){var _=new o(arguments[m]);r.push(_);for(var v=_.segment(),h=0;h<v.length;h++)typeof v[h]=="string"&&a.push(v[h]),v[h]&&l++}if(!a.length||!l)return new o("");var P=new o("").segment(a);return(r[0].path()===""||r[0].path().slice(0,1)==="/")&&P.path("/"+P.path()),P.normalize()},o.commonPath=function(r,a){var l=Math.min(r.length,a.length),m;for(m=0;m<l;m++)if(r.charAt(m)!==a.charAt(m)){m--;break}return m<1?r.charAt(0)===a.charAt(0)&&r.charAt(0)==="/"?"/":"":((r.charAt(m)!=="/"||a.charAt(m)!=="/")&&(m=r.substring(0,m).lastIndexOf("/")),r.substring(0,m+1))},o.withinString=function(r,a,l){l||(l={});var m=l.start||o.findUri.start,_=l.end||o.findUri.end,v=l.trim||o.findUri.trim,h=l.parens||o.findUri.parens,P=/[a-z0-9-]=["']?$/i;for(m.lastIndex=0;;){var q=m.exec(r);if(!q)break;var V=q.index;if(l.ignoreHtml){var ne=r.slice(Math.max(V-3,0),V);if(ne&&P.test(ne))continue}for(var se=V+r.slice(V).search(_),G=r.slice(V,se),ae=-1;;){var he=h.exec(G);if(!he)break;var be=he.index+he[0].length;ae=Math.max(ae,be)}if(ae>-1?G=G.slice(0,ae)+G.slice(ae).replace(v,""):G=G.replace(v,""),!(G.length<=q[0].length)&&!(l.ignore&&l.ignore.test(G))){se=V+G.length;var ye=a(G,V,se,r);if(ye===void 0){m.lastIndex=se;continue}ye=String(ye),r=r.slice(0,V)+ye+r.slice(se),m.lastIndex=V+ye.length}}return m.lastIndex=0,r},o.ensureValidHostname=function(r,a){var l=!!r,m=!!a,_=!1;if(m&&(_=A(o.hostProtocols,a)),_&&!l)throw new TypeError("Hostname cannot be empty, if protocol is "+a);if(r&&r.match(o.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+r+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(r).match(o.invalid_hostname_characters))throw new TypeError('Hostname "'+r+'" contains characters other than [A-Z0-9.-:_]')}},o.ensureValidPort=function(r){if(r){var a=Number(r);if(!(c(a)&&a>0&&a<65536))throw new TypeError('Port "'+r+'" is not a valid port')}},o.noConflict=function(r){if(r){var a={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(a.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(a.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(a.SecondLevelDomains=i.SecondLevelDomains.noConflict()),a}else i.URI===this&&(i.URI=s);return this},u.build=function(r){return r===!0?this._deferred_build=!0:(r===void 0||this._deferred_build)&&(this._string=o.build(this._parts),this._deferred_build=!1),this},u.clone=function(){return new o(this)},u.valueOf=u.toString=function(){return this.build(!1)._string};function Y(r){return function(a,l){return a===void 0?this._parts[r]||"":(this._parts[r]=a||null,this.build(!l),this)}}function oe(r,a){return function(l,m){return l===void 0?this._parts[r]||"":(l!==null&&(l=l+"",l.charAt(0)===a&&(l=l.substring(1))),this._parts[r]=l,this.build(!m),this)}}u.protocol=Y("protocol"),u.username=Y("username"),u.password=Y("password"),u.hostname=Y("hostname"),u.port=Y("port"),u.query=oe("query","?"),u.fragment=oe("fragment","#"),u.search=function(r,a){var l=this.query(r,a);return typeof l=="string"&&l.length?"?"+l:l},u.hash=function(r,a){var l=this.fragment(r,a);return typeof l=="string"&&l.length?"#"+l:l},u.pathname=function(r,a){if(r===void 0||r===!0){var l=this._parts.path||(this._parts.hostname?"/":"");return r?(this._parts.urn?o.decodeUrnPath:o.decodePath)(l):l}else return this._parts.urn?this._parts.path=r?o.recodeUrnPath(r):"":this._parts.path=r?o.recodePath(r):"/",this.build(!a),this},u.path=u.pathname,u.href=function(r,a){var l;if(r===void 0)return this.toString();this._string="",this._parts=o._parts();var m=r instanceof o,_=typeof r=="object"&&(r.hostname||r.path||r.pathname);if(r.nodeName){var v=o.getDomAttribute(r);r=r[v]||"",_=!1}if(!m&&_&&r.pathname!==void 0&&(r=r.toString()),typeof r=="string"||r instanceof String)this._parts=o.parse(String(r),this._parts);else if(m||_){var h=m?r._parts:r;for(l in h)l!=="query"&&p.call(this._parts,l)&&(this._parts[l]=h[l]);h.query&&this.query(h.query,!1)}else throw new TypeError("invalid input");return this.build(!a),this},u.is=function(r){var a=!1,l=!1,m=!1,_=!1,v=!1,h=!1,P=!1,q=!this._parts.urn;switch(this._parts.hostname&&(q=!1,l=o.ip4_expression.test(this._parts.hostname),m=o.ip6_expression.test(this._parts.hostname),a=l||m,_=!a,v=_&&n&&n.has(this._parts.hostname),h=_&&o.idn_expression.test(this._parts.hostname),P=_&&o.punycode_expression.test(this._parts.hostname)),r.toLowerCase()){case"relative":return q;case"absolute":return!q;case"domain":case"name":return _;case"sld":return v;case"ip":return a;case"ip4":case"ipv4":case"inet4":return l;case"ip6":case"ipv6":case"inet6":return m;case"idn":return h;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return P}return null};var ie=u.protocol,X=u.port,W=u.hostname;u.protocol=function(r,a){if(r&&(r=r.replace(/:(\/\/)?$/,""),!r.match(o.protocol_expression)))throw new TypeError('Protocol "'+r+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return ie.call(this,r,a)},u.scheme=u.protocol,u.port=function(r,a){return this._parts.urn?r===void 0?"":this:(r!==void 0&&(r===0&&(r=null),r&&(r+="",r.charAt(0)===":"&&(r=r.substring(1)),o.ensureValidPort(r))),X.call(this,r,a))},u.hostname=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r!==void 0){var l={preventInvalidHostname:this._parts.preventInvalidHostname},m=o.parseHost(r,l);if(m!=="/")throw new TypeError('Hostname "'+r+'" contains characters other than [A-Z0-9.-]');r=l.hostname,this._parts.preventInvalidHostname&&o.ensureValidHostname(r,this._parts.protocol)}return W.call(this,r,a)},u.origin=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r===void 0){var l=this.protocol(),m=this.authority();return m?(l?l+"://":"")+this.authority():""}else{var _=o(r);return this.protocol(_.protocol()).authority(_.authority()).build(!a),this}},u.host=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r===void 0)return this._parts.hostname?o.buildHost(this._parts):"";var l=o.parseHost(r,this._parts);if(l!=="/")throw new TypeError('Hostname "'+r+'" contains characters other than [A-Z0-9.-]');return this.build(!a),this},u.authority=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r===void 0)return this._parts.hostname?o.buildAuthority(this._parts):"";var l=o.parseAuthority(r,this._parts);if(l!=="/")throw new TypeError('Hostname "'+r+'" contains characters other than [A-Z0-9.-]');return this.build(!a),this},u.userinfo=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r===void 0){var l=o.buildUserinfo(this._parts);return l&&l.substring(0,l.length-1)}else return r[r.length-1]!=="@"&&(r+="@"),o.parseUserinfo(r,this._parts),this.build(!a),this},u.resource=function(r,a){var l;return r===void 0?this.path()+this.search()+this.hash():(l=o.parse(r),this._parts.path=l.path,this._parts.query=l.query,this._parts.fragment=l.fragment,this.build(!a),this)},u.subdomain=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r===void 0){if(!this._parts.hostname||this.is("IP"))return"";var l=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,l)||""}else{var m=this._parts.hostname.length-this.domain().length,_=this._parts.hostname.substring(0,m),v=new RegExp("^"+b(_));if(r&&r.charAt(r.length-1)!=="."&&(r+="."),r.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return r&&o.ensureValidHostname(r,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(v,r),this.build(!a),this}},u.domain=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(typeof r=="boolean"&&(a=r,r=void 0),r===void 0){if(!this._parts.hostname||this.is("IP"))return"";var l=this._parts.hostname.match(/\./g);if(l&&l.length<2)return this._parts.hostname;var m=this._parts.hostname.length-this.tld(a).length-1;return m=this._parts.hostname.lastIndexOf(".",m-1)+1,this._parts.hostname.substring(m)||""}else{if(!r)throw new TypeError("cannot set domain empty");if(r.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(o.ensureValidHostname(r,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=r;else{var _=new RegExp(b(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(_,r)}return this.build(!a),this}},u.tld=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(typeof r=="boolean"&&(a=r,r=void 0),r===void 0){if(!this._parts.hostname||this.is("IP"))return"";var l=this._parts.hostname.lastIndexOf("."),m=this._parts.hostname.substring(l+1);return a!==!0&&n&&n.list[m.toLowerCase()]&&n.get(this._parts.hostname)||m}else{var _;if(r)if(r.match(/[^a-zA-Z0-9-]/))if(n&&n.is(r))_=new RegExp(b(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(_,r);else throw new TypeError('TLD "'+r+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");_=new RegExp(b(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(_,r)}else throw new TypeError("cannot set TLD empty");return this.build(!a),this}},u.directory=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r===void 0||r===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var l=this._parts.path.length-this.filename().length-1,m=this._parts.path.substring(0,l)||(this._parts.hostname?"/":"");return r?o.decodePath(m):m}else{var _=this._parts.path.length-this.filename().length,v=this._parts.path.substring(0,_),h=new RegExp("^"+b(v));return this.is("relative")||(r||(r="/"),r.charAt(0)!=="/"&&(r="/"+r)),r&&r.charAt(r.length-1)!=="/"&&(r+="/"),r=o.recodePath(r),this._parts.path=this._parts.path.replace(h,r),this.build(!a),this}},u.filename=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(typeof r!="string"){if(!this._parts.path||this._parts.path==="/")return"";var l=this._parts.path.lastIndexOf("/"),m=this._parts.path.substring(l+1);return r?o.decodePathSegment(m):m}else{var _=!1;r.charAt(0)==="/"&&(r=r.substring(1)),r.match(/\.?\//)&&(_=!0);var v=new RegExp(b(this.filename())+"$");return r=o.recodePath(r),this._parts.path=this._parts.path.replace(v,r),_?this.normalizePath(a):this.build(!a),this}},u.suffix=function(r,a){if(this._parts.urn)return r===void 0?"":this;if(r===void 0||r===!0){if(!this._parts.path||this._parts.path==="/")return"";var l=this.filename(),m=l.lastIndexOf("."),_,v;return m===-1?"":(_=l.substring(m+1),v=/^[a-z0-9%]+$/i.test(_)?_:"",r?o.decodePathSegment(v):v)}else{r.charAt(0)==="."&&(r=r.substring(1));var h=this.suffix(),P;if(h)r?P=new RegExp(b(h)+"$"):P=new RegExp(b("."+h)+"$");else{if(!r)return this;this._parts.path+="."+o.recodePath(r)}return P&&(r=o.recodePath(r),this._parts.path=this._parts.path.replace(P,r)),this.build(!a),this}},u.segment=function(r,a,l){var m=this._parts.urn?":":"/",_=this.path(),v=_.substring(0,1)==="/",h=_.split(m);if(r!==void 0&&typeof r!="number"&&(l=a,a=r,r=void 0),r!==void 0&&typeof r!="number")throw new Error('Bad segment "'+r+'", must be 0-based integer');if(v&&h.shift(),r<0&&(r=Math.max(h.length+r,0)),a===void 0)return r===void 0?h:h[r];if(r===null||h[r]===void 0)if(y(a)){h=[];for(var P=0,q=a.length;P<q;P++)!a[P].length&&(!h.length||!h[h.length-1].length)||(h.length&&!h[h.length-1].length&&h.pop(),h.push(T(a[P])))}else(a||typeof a=="string")&&(a=T(a),h[h.length-1]===""?h[h.length-1]=a:h.push(a));else a?h[r]=T(a):h.splice(r,1);return v&&h.unshift(""),this.path(h.join(m),l)},u.segmentCoded=function(r,a,l){var m,_,v;if(typeof r!="number"&&(l=a,a=r,r=void 0),a===void 0){if(m=this.segment(r,a,l),!y(m))m=m!==void 0?o.decode(m):void 0;else for(_=0,v=m.length;_<v;_++)m[_]=o.decode(m[_]);return m}if(!y(a))a=typeof a=="string"||a instanceof String?o.encode(a):a;else for(_=0,v=a.length;_<v;_++)a[_]=o.encode(a[_]);return this.segment(r,a,l)};var Q=u.query;return u.query=function(r,a){if(r===!0)return o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof r=="function"){var l=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace),m=r.call(this,l);return this._parts.query=o.buildQuery(m||l,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!a),this}else return r!==void 0&&typeof r!="string"?(this._parts.query=o.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!a),this):Q.call(this,r,a)},u.setQuery=function(r,a,l){var m=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof r=="string"||r instanceof String)m[r]=a!==void 0?a:null;else if(typeof r=="object")for(var _ in r)p.call(r,_)&&(m[_]=r[_]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=o.buildQuery(m,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof r!="string"&&(l=a),this.build(!l),this},u.addQuery=function(r,a,l){var m=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.addQuery(m,r,a===void 0?null:a),this._parts.query=o.buildQuery(m,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof r!="string"&&(l=a),this.build(!l),this},u.removeQuery=function(r,a,l){var m=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.removeQuery(m,r,a),this._parts.query=o.buildQuery(m,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof r!="string"&&(l=a),this.build(!l),this},u.hasQuery=function(r,a,l){var m=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.hasQuery(m,r,a,l)},u.setSearch=u.setQuery,u.addSearch=u.addQuery,u.removeSearch=u.removeQuery,u.hasSearch=u.hasQuery,u.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},u.normalizeProtocol=function(r){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!r)),this},u.normalizeHostname=function(r){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!r)),this},u.normalizePort=function(r){return typeof this._parts.protocol=="string"&&this._parts.port===o.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!r)),this},u.normalizePath=function(r){var a=this._parts.path;if(!a)return this;if(this._parts.urn)return this._parts.path=o.recodeUrnPath(this._parts.path),this.build(!r),this;if(this._parts.path==="/")return this;a=o.recodePath(a);var l,m="",_,v;for(a.charAt(0)!=="/"&&(l=!0,a="/"+a),(a.slice(-3)==="/.."||a.slice(-2)==="/.")&&(a+="/"),a=a.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),l&&(m=a.substring(1).match(/^(\.\.\/)+/)||"",m&&(m=m[0]));_=a.search(/\/\.\.(\/|$)/),_!==-1;){if(_===0){a=a.substring(3);continue}v=a.substring(0,_).lastIndexOf("/"),v===-1&&(v=_),a=a.substring(0,v)+a.substring(_+3)}return l&&this.is("relative")&&(a=m+a.substring(1)),this._parts.path=a,this.build(!r),this},u.normalizePathname=u.normalizePath,u.normalizeQuery=function(r){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(o.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!r)),this},u.normalizeFragment=function(r){return this._parts.fragment||(this._parts.fragment=null,this.build(!r)),this},u.normalizeSearch=u.normalizeQuery,u.normalizeHash=u.normalizeFragment,u.iso8859=function(){var r=o.encode,a=o.decode;o.encode=escape,o.decode=decodeURIComponent;try{this.normalize()}finally{o.encode=r,o.decode=a}return this},u.unicode=function(){var r=o.encode,a=o.decode;o.encode=D,o.decode=unescape;try{this.normalize()}finally{o.encode=r,o.decode=a}return this},u.readable=function(){var r=this.clone();r.username("").password("").normalize();var a="";if(r._parts.protocol&&(a+=r._parts.protocol+"://"),r._parts.hostname&&(r.is("punycode")&&e?(a+=e.toUnicode(r._parts.hostname),r._parts.port&&(a+=":"+r._parts.port)):a+=r.host()),r._parts.hostname&&r._parts.path&&r._parts.path.charAt(0)!=="/"&&(a+="/"),a+=r.path(!0),r._parts.query){for(var l="",m=0,_=r._parts.query.split("&"),v=_.length;m<v;m++){var h=(_[m]||"").split("=");l+="&"+o.decodeQuery(h[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),h[1]!==void 0&&(l+="="+o.decodeQuery(h[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}a+="?"+l.substring(1)}return a+=o.decodeQuery(r.hash(),!0),a},u.absoluteTo=function(r){var a=this.clone(),l=["protocol","username","password","hostname","port"],m,_,v;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(r instanceof o||(r=new o(r)),a._parts.protocol||(a._parts.protocol=r._parts.protocol,this._parts.hostname))return a;for(_=0;v=l[_];_++)a._parts[v]=r._parts[v];return a._parts.path?(a._parts.path.substring(-2)===".."&&(a._parts.path+="/"),a.path().charAt(0)!=="/"&&(m=r.directory(),m=m||(r.path().indexOf("/")===0?"/":""),a._parts.path=(m?m+"/":"")+a._parts.path,a.normalizePath())):(a._parts.path=r._parts.path,a._parts.query||(a._parts.query=r._parts.query)),a.build(),a},u.relativeTo=function(r){var a=this.clone().normalize(),l,m,_,v,h;if(a._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(r=new o(r).normalize(),l=a._parts,m=r._parts,v=a.path(),h=r.path(),v.charAt(0)!=="/")throw new Error("URI is already relative");if(h.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(l.protocol===m.protocol&&(l.protocol=null),l.username!==m.username||l.password!==m.password||l.protocol!==null||l.username!==null||l.password!==null)return a.build();if(l.hostname===m.hostname&&l.port===m.port)l.hostname=null,l.port=null;else return a.build();if(v===h)return l.path="",a.build();if(_=o.commonPath(v,h),!_)return a.build();var P=m.path.substring(_.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return l.path=P+l.path.substring(_.length)||"./",a.build()},u.equals=function(r){var a=this.clone(),l=new o(r),m={},_={},v={},h,P,q;if(a.normalize(),l.normalize(),a.toString()===l.toString())return!0;if(h=a.query(),P=l.query(),a.query(""),l.query(""),a.toString()!==l.toString()||h.length!==P.length)return!1;m=o.parseQuery(h,this._parts.escapeQuerySpace),_=o.parseQuery(P,this._parts.escapeQuerySpace);for(q in m)if(p.call(m,q)){if(y(m[q])){if(!I(m[q],_[q]))return!1}else if(m[q]!==_[q])return!1;v[q]=!0}for(q in _)if(p.call(_,q)&&!v[q])return!1;return!0},u.preventInvalidHostname=function(r){return this._parts.preventInvalidHostname=!!r,this},u.duplicateQueryParameters=function(r){return this._parts.duplicateQueryParameters=!!r,this},u.escapeQuerySpace=function(r){return this._parts.escapeQuerySpace=!!r,this},o})});function Ot(e){this._ellipsoid=O(e,ze.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(Ot.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});Ot.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,s=e.latitude*n,o=e.height;return d(t)?(t.x=i,t.y=s,t.z=o,t):new f(i,s,o)};Ot.prototype.unproject=function(e,t){if(!d(e))throw new R("cartesian is required");let n=this._oneOverSemimajorAxis,i=e.x*n,s=e.y*n,o=e.z;return d(t)?(t.longitude=i,t.latitude=s,t.height=o,t):new De(i,s,o)};var an=Ot;var mo={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},Et=Object.freeze(mo);function ho(e,t){this.start=O(e,0),this.stop=O(t,0)}var Kn=ho;function U(e,t){this.center=f.clone(O(e,f.ZERO)),this.radius=O(t,0)}var fn=new f,ln=new f,dn=new f,pn=new f,mn=new f,hn=new f,yn=new f,ce=new f,gn=new f,wn=new f,bn=new f,_n=new f,yo=4/3*J.PI;U.fromPoints=function(e,t){if(d(t)||(t=new U),!d(e)||e.length===0)return t.center=f.clone(f.ZERO,t.center),t.radius=0,t;let n=f.clone(e[0],yn),i=f.clone(n,fn),s=f.clone(n,ln),o=f.clone(n,dn),c=f.clone(n,pn),u=f.clone(n,mn),p=f.clone(n,hn),b=e.length,g;for(g=1;g<b;g++){f.clone(e[g],n);let ie=n.x,X=n.y,W=n.z;ie<i.x&&f.clone(n,i),ie>c.x&&f.clone(n,c),X<s.y&&f.clone(n,s),X>u.y&&f.clone(n,u),W<o.z&&f.clone(n,o),W>p.z&&f.clone(n,p)}let y=f.magnitudeSquared(f.subtract(c,i,ce)),S=f.magnitudeSquared(f.subtract(u,s,ce)),A=f.magnitudeSquared(f.subtract(p,o,ce)),I=i,T=c,k=y;S>k&&(k=S,I=s,T=u),A>k&&(k=A,I=o,T=p);let D=gn;D.x=(I.x+T.x)*.5,D.y=(I.y+T.y)*.5,D.z=(I.z+T.z)*.5;let F=f.magnitudeSquared(f.subtract(T,D,ce)),z=Math.sqrt(F),M=wn;M.x=i.x,M.y=s.y,M.z=o.z;let N=bn;N.x=c.x,N.y=u.y,N.z=p.z;let Y=f.midpoint(M,N,_n),oe=0;for(g=0;g<b;g++){f.clone(e[g],n);let ie=f.magnitude(f.subtract(n,Y,ce));ie>oe&&(oe=ie);let X=f.magnitudeSquared(f.subtract(n,D,ce));if(X>F){let W=Math.sqrt(X);z=(z+W)*.5,F=z*z;let Q=W-z;D.x=(z*D.x+Q*n.x)/W,D.y=(z*D.y+Q*n.y)/W,D.z=(z*D.z+Q*n.z)/W}}return z<oe?(f.clone(D,t.center),t.radius=z):(f.clone(Y,t.center),t.radius=oe),t};var go=new an,wo=new f,bo=new f,cn=new De,un=new De;U.fromRectangle2D=function(e,t,n){return U.fromRectangleWithHeights2D(e,t,0,0,n)};U.fromRectangleWithHeights2D=function(e,t,n,i,s){if(d(s)||(s=new U),!d(e))return s.center=f.clone(f.ZERO,s.center),s.radius=0,s;t=O(t,go),vt.southwest(e,cn),cn.height=n,vt.northeast(e,un),un.height=i;let o=t.project(cn,wo),c=t.project(un,bo),u=c.x-o.x,p=c.y-o.y,b=c.z-o.z;s.radius=Math.sqrt(u*u+p*p+b*b)*.5;let g=s.center;return g.x=o.x+u*.5,g.y=o.y+p*.5,g.z=o.z+b*.5,s};var _o=[];U.fromRectangle3D=function(e,t,n,i){if(t=O(t,ze.WGS84),n=O(n,0),d(i)||(i=new U),!d(e))return i.center=f.clone(f.ZERO,i.center),i.radius=0,i;let s=vt.subsample(e,t,n,_o);return U.fromPoints(s,i)};U.fromVertices=function(e,t,n,i){if(d(i)||(i=new U),!d(e)||e.length===0)return i.center=f.clone(f.ZERO,i.center),i.radius=0,i;t=O(t,f.ZERO),n=O(n,3),w.typeOf.number.greaterThanOrEquals("stride",n,3);let s=yn;s.x=e[0]+t.x,s.y=e[1]+t.y,s.z=e[2]+t.z;let o=f.clone(s,fn),c=f.clone(s,ln),u=f.clone(s,dn),p=f.clone(s,pn),b=f.clone(s,mn),g=f.clone(s,hn),y=e.length,S;for(S=0;S<y;S+=n){let W=e[S]+t.x,Q=e[S+1]+t.y,r=e[S+2]+t.z;s.x=W,s.y=Q,s.z=r,W<o.x&&f.clone(s,o),W>p.x&&f.clone(s,p),Q<c.y&&f.clone(s,c),Q>b.y&&f.clone(s,b),r<u.z&&f.clone(s,u),r>g.z&&f.clone(s,g)}let A=f.magnitudeSquared(f.subtract(p,o,ce)),I=f.magnitudeSquared(f.subtract(b,c,ce)),T=f.magnitudeSquared(f.subtract(g,u,ce)),k=o,D=p,F=A;I>F&&(F=I,k=c,D=b),T>F&&(F=T,k=u,D=g);let z=gn;z.x=(k.x+D.x)*.5,z.y=(k.y+D.y)*.5,z.z=(k.z+D.z)*.5;let M=f.magnitudeSquared(f.subtract(D,z,ce)),N=Math.sqrt(M),Y=wn;Y.x=o.x,Y.y=c.y,Y.z=u.z;let oe=bn;oe.x=p.x,oe.y=b.y,oe.z=g.z;let ie=f.midpoint(Y,oe,_n),X=0;for(S=0;S<y;S+=n){s.x=e[S]+t.x,s.y=e[S+1]+t.y,s.z=e[S+2]+t.z;let W=f.magnitude(f.subtract(s,ie,ce));W>X&&(X=W);let Q=f.magnitudeSquared(f.subtract(s,z,ce));if(Q>M){let r=Math.sqrt(Q);N=(N+r)*.5,M=N*N;let a=r-N;z.x=(N*z.x+a*s.x)/r,z.y=(N*z.y+a*s.y)/r,z.z=(N*z.z+a*s.z)/r}}return N<X?(f.clone(z,i.center),i.radius=N):(f.clone(ie,i.center),i.radius=X),i};U.fromEncodedCartesianVertices=function(e,t,n){if(d(n)||(n=new U),!d(e)||!d(t)||e.length!==t.length||e.length===0)return n.center=f.clone(f.ZERO,n.center),n.radius=0,n;let i=yn;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let s=f.clone(i,fn),o=f.clone(i,ln),c=f.clone(i,dn),u=f.clone(i,pn),p=f.clone(i,mn),b=f.clone(i,hn),g=e.length,y;for(y=0;y<g;y+=3){let X=e[y]+t[y],W=e[y+1]+t[y+1],Q=e[y+2]+t[y+2];i.x=X,i.y=W,i.z=Q,X<s.x&&f.clone(i,s),X>u.x&&f.clone(i,u),W<o.y&&f.clone(i,o),W>p.y&&f.clone(i,p),Q<c.z&&f.clone(i,c),Q>b.z&&f.clone(i,b)}let S=f.magnitudeSquared(f.subtract(u,s,ce)),A=f.magnitudeSquared(f.subtract(p,o,ce)),I=f.magnitudeSquared(f.subtract(b,c,ce)),T=s,k=u,D=S;A>D&&(D=A,T=o,k=p),I>D&&(D=I,T=c,k=b);let F=gn;F.x=(T.x+k.x)*.5,F.y=(T.y+k.y)*.5,F.z=(T.z+k.z)*.5;let z=f.magnitudeSquared(f.subtract(k,F,ce)),M=Math.sqrt(z),N=wn;N.x=s.x,N.y=o.y,N.z=c.z;let Y=bn;Y.x=u.x,Y.y=p.y,Y.z=b.z;let oe=f.midpoint(N,Y,_n),ie=0;for(y=0;y<g;y+=3){i.x=e[y]+t[y],i.y=e[y+1]+t[y+1],i.z=e[y+2]+t[y+2];let X=f.magnitude(f.subtract(i,oe,ce));X>ie&&(ie=X);let W=f.magnitudeSquared(f.subtract(i,F,ce));if(W>z){let Q=Math.sqrt(W);M=(M+Q)*.5,z=M*M;let r=Q-M;F.x=(M*F.x+r*i.x)/Q,F.y=(M*F.y+r*i.y)/Q,F.z=(M*F.z+r*i.z)/Q}}return M<ie?(f.clone(F,n.center),n.radius=M):(f.clone(oe,n.center),n.radius=ie),n};U.fromCornerPoints=function(e,t,n){w.typeOf.object("corner",e),w.typeOf.object("oppositeCorner",t),d(n)||(n=new U);let i=f.midpoint(e,t,n.center);return n.radius=f.distance(i,t),n};U.fromEllipsoid=function(e,t){return w.typeOf.object("ellipsoid",e),d(t)||(t=new U),f.clone(f.ZERO,t.center),t.radius=e.maximumRadius,t};var So=new f;U.fromBoundingSpheres=function(e,t){if(d(t)||(t=new U),!d(e)||e.length===0)return t.center=f.clone(f.ZERO,t.center),t.radius=0,t;let n=e.length;if(n===1)return U.clone(e[0],t);if(n===2)return U.union(e[0],e[1],t);let i=[],s;for(s=0;s<n;s++)i.push(e[s].center);t=U.fromPoints(i,t);let o=t.center,c=t.radius;for(s=0;s<n;s++){let u=e[s];c=Math.max(c,f.distance(o,u.center,So)+u.radius)}return t.radius=c,t};var xo=new f,vo=new f,Oo=new f;U.fromOrientedBoundingBox=function(e,t){w.defined("orientedBoundingBox",e),d(t)||(t=new U);let n=e.halfAxes,i=B.getColumn(n,0,xo),s=B.getColumn(n,1,vo),o=B.getColumn(n,2,Oo);return f.add(i,s,i),f.add(i,o,i),t.center=f.clone(e.center,t.center),t.radius=f.magnitude(i),t};var Eo=new f,Co=new f;U.fromTransformation=function(e,t){w.typeOf.object("transformation",e),d(t)||(t=new U);let n=L.getTranslation(e,Eo),i=L.getScale(e,Co),s=.5*f.magnitude(i);return t.center=f.clone(n,t.center),t.radius=s,t};U.clone=function(e,t){if(d(e))return d(t)?(t.center=f.clone(e.center,t.center),t.radius=e.radius,t):new U(e.center,e.radius)};U.packedLength=4;U.pack=function(e,t,n){w.typeOf.object("value",e),w.defined("array",t),n=O(n,0);let i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t};U.unpack=function(e,t,n){w.defined("array",e),t=O(t,0),d(n)||(n=new U);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var Ao=new f,Ro=new f;U.union=function(e,t,n){w.typeOf.object("left",e),w.typeOf.object("right",t),d(n)||(n=new U);let i=e.center,s=e.radius,o=t.center,c=t.radius,u=f.subtract(o,i,Ao),p=f.magnitude(u);if(s>=p+c)return e.clone(n),n;if(c>=p+s)return t.clone(n),n;let b=(s+p+c)*.5,g=f.multiplyByScalar(u,(-s+b)/p,Ro);return f.add(g,i,g),f.clone(g,n.center),n.radius=b,n};var Po=new f;U.expand=function(e,t,n){w.typeOf.object("sphere",e),w.typeOf.object("point",t),n=U.clone(e,n);let i=f.magnitude(f.subtract(t,n.center,Po));return i>n.radius&&(n.radius=i),n};U.intersectPlane=function(e,t){w.typeOf.object("sphere",e),w.typeOf.object("plane",t);let n=e.center,i=e.radius,s=t.normal,o=f.dot(s,n)+t.distance;return o<-i?Et.OUTSIDE:o<i?Et.INTERSECTING:Et.INSIDE};U.transform=function(e,t,n){return w.typeOf.object("sphere",e),w.typeOf.object("transform",t),d(n)||(n=new U),n.center=L.multiplyByPoint(t,e.center,n.center),n.radius=L.getMaximumScale(t)*e.radius,n};var To=new f;U.distanceSquaredTo=function(e,t){w.typeOf.object("sphere",e),w.typeOf.object("cartesian",t);let n=f.subtract(e.center,t,To),i=f.magnitude(n)-e.radius;return i<=0?0:i*i};U.transformWithoutScale=function(e,t,n){return w.typeOf.object("sphere",e),w.typeOf.object("transform",t),d(n)||(n=new U),n.center=L.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var Io=new f;U.computePlaneDistances=function(e,t,n,i){w.typeOf.object("sphere",e),w.typeOf.object("position",t),w.typeOf.object("direction",n),d(i)||(i=new Kn);let s=f.subtract(e.center,t,Io),o=f.dot(n,s);return i.start=o-e.radius,i.stop=o+e.radius,i};var er=new f,Uo=new f,Do=new f,zo=new f,qo=new f,ko=new De,tr=new Array(8);for(let e=0;e<8;++e)tr[e]=new f;var Fo=new an;U.projectTo2D=function(e,t,n){w.typeOf.object("sphere",e),t=O(t,Fo);let i=t.ellipsoid,s=e.center,o=e.radius,c;f.equals(s,f.ZERO)?c=f.clone(f.UNIT_X,er):c=i.geodeticSurfaceNormal(s,er);let u=f.cross(f.UNIT_Z,c,Uo);f.normalize(u,u);let p=f.cross(c,u,Do);f.normalize(p,p),f.multiplyByScalar(c,o,c),f.multiplyByScalar(p,o,p),f.multiplyByScalar(u,o,u);let b=f.negate(p,qo),g=f.negate(u,zo),y=tr,S=y[0];f.add(c,p,S),f.add(S,u,S),S=y[1],f.add(c,p,S),f.add(S,g,S),S=y[2],f.add(c,b,S),f.add(S,g,S),S=y[3],f.add(c,b,S),f.add(S,u,S),f.negate(c,c),S=y[4],f.add(c,p,S),f.add(S,u,S),S=y[5],f.add(c,p,S),f.add(S,g,S),S=y[6],f.add(c,b,S),f.add(S,g,S),S=y[7],f.add(c,b,S),f.add(S,u,S);let A=y.length;for(let D=0;D<A;++D){let F=y[D];f.add(s,F,F);let z=i.cartesianToCartographic(F,ko);t.project(z,F)}n=U.fromPoints(y,n),s=n.center;let I=s.x,T=s.y,k=s.z;return s.x=k,s.y=I,s.z=T,n};U.isOccluded=function(e,t){return w.typeOf.object("sphere",e),w.typeOf.object("occluder",t),!t.isBoundingSphereVisible(e)};U.equals=function(e,t){return e===t||d(e)&&d(t)&&f.equals(e.center,t.center)&&e.radius===t.radius};U.prototype.intersectPlane=function(e){return U.intersectPlane(this,e)};U.prototype.distanceSquaredTo=function(e){return U.distanceSquaredTo(this,e)};U.prototype.computePlaneDistances=function(e,t,n){return U.computePlaneDistances(this,e,t,n)};U.prototype.isOccluded=function(e){return U.isOccluded(this,e)};U.prototype.equals=function(e){return U.equals(this,e)};U.prototype.clone=function(e){return U.clone(this,e)};U.prototype.volume=function(){let e=this.radius;return yo*e*e*e};var Qs=U;function Mo(e,t,n){w.defined("array",e),w.defined("itemToFind",t),w.defined("comparator",n);let i=0,s=e.length-1,o,c;for(;i<=s;){if(o=~~((i+s)/2),c=n(e[o],t),c<0){i=o+1;continue}if(c>0){s=o-1;continue}return o}return~(s+1)}var Qe=Mo;function jo(e,t,n,i,s){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=s}var ut=jo;function No(e,t,n,i,s,o,c,u){this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=s,this.second=o,this.millisecond=c,this.isLeapSecond=u}var Ct=No;function Bo(e){if(e===null||isNaN(e))throw new R("year is required and must be a number.");return e%4===0&&e%100!==0||e%400===0}var Sn=Bo;function Lo(e,t){this.julianDate=e,this.offset=t}var Z=Lo;var Qo={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},K=Object.freeze(Qo);var $o={UTC:0,TAI:1},j=Object.freeze($o);var rr=new Ct,At=[31,28,31,30,31,30,31,31,30,31,30,31],Rt=29;function xn(e,t){return C.compare(e.julianDate,t.julianDate)}var Ke=new Z;function Tt(e){Ke.julianDate=e;let t=C.leapSeconds,n=Qe(t,Ke,xn);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&C.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),C.addSeconds(e,i,e)}function nr(e,t){Ke.julianDate=e;let n=C.leapSeconds,i=Qe(n,Ke,xn);if(i<0&&(i=~i),i===0)return C.addSeconds(e,-n[0].offset,t);if(i>=n.length)return C.addSeconds(e,-n[i-1].offset,t);let s=C.secondsDifference(n[i].julianDate,e);if(s===0)return C.addSeconds(e,-n[i].offset,t);if(!(s<=1))return C.addSeconds(e,-n[--i].offset,t)}function ke(e,t,n){let i=t/K.SECONDS_PER_DAY|0;return e+=i,t-=K.SECONDS_PER_DAY*i,t<0&&(e--,t+=K.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function vn(e,t,n,i,s,o,c){let u=(t-14)/12|0,p=e+4800+u,b=(1461*p/4|0)+(367*(t-2-12*u)/12|0)-(3*((p+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let g=o+(i*K.SECONDS_PER_HOUR+s*K.SECONDS_PER_MINUTE+c*K.SECONDS_PER_MILLISECOND);return g>=43200&&(b-=1),[b,g]}var Wo=/^(\d{4})$/,Vo=/^(\d{4})-(\d{2})$/,Ho=/^(\d{4})-?(\d{3})$/,Yo=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,Zo=/^(\d{4})-?(\d{2})-?(\d{2})$/,On=/([Z+\-])?(\d{2})?:?(\d{2})?$/,Jo=/^(\d{2})(\.\d+)?/.source+On.source,Xo=/^(\d{2}):?(\d{2})(\.\d+)?/.source+On.source,Go=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+On.source,ve="Invalid ISO 8601 date.";function C(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=O(e,0),t=O(t,0),n=O(n,j.UTC);let i=e|0;t=t+(e-i)*K.SECONDS_PER_DAY,ke(i,t,this),n===j.UTC&&Tt(this)}C.fromGregorianDate=function(e,t){if(!(e instanceof Ct))throw new R("date must be a valid GregorianDate.");let n=vn(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return d(t)?(ke(n[0],n[1],t),Tt(t),t):new C(n[0],n[1],j.UTC)};C.fromDate=function(e,t){if(!(e instanceof Date)||isNaN(e.getTime()))throw new R("date must be a valid JavaScript Date.");let n=vn(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return d(t)?(ke(n[0],n[1],t),Tt(t),t):new C(n[0],n[1],j.UTC)};C.fromIso8601=function(e,t){if(typeof e!="string")throw new R(ve);e=e.replace(",",".");let n=e.split("T"),i,s=1,o=1,c=0,u=0,p=0,b=0,g=n[0],y=n[1],S,A;if(!d(g))throw new R(ve);let I;if(n=g.match(Zo),n!==null){if(I=g.split("-").length-1,I>0&&I!==2)throw new R(ve);i=+n[1],s=+n[2],o=+n[3]}else if(n=g.match(Vo),n!==null)i=+n[1],s=+n[2];else if(n=g.match(Wo),n!==null)i=+n[1];else{let F;if(n=g.match(Ho),n!==null){if(i=+n[1],F=+n[2],A=Sn(i),F<1||A&&F>366||!A&&F>365)throw new R(ve)}else if(n=g.match(Yo),n!==null){i=+n[1];let z=+n[2],M=+n[3]||0;if(I=g.split("-").length-1,I>0&&(!d(n[3])&&I!==1||d(n[3])&&I!==2))throw new R(ve);let N=new Date(Date.UTC(i,0,4));F=z*7+M-N.getUTCDay()-3}else throw new R(ve);S=new Date(Date.UTC(i,0,1)),S.setUTCDate(F),s=S.getUTCMonth()+1,o=S.getUTCDate()}if(A=Sn(i),s<1||s>12||o<1||(s!==2||!A)&&o>At[s-1]||A&&s===2&&o>Rt)throw new R(ve);let T;if(d(y)){if(n=y.match(Go),n!==null){if(I=y.split(":").length-1,I>0&&I!==2&&I!==3)throw new R(ve);c=+n[1],u=+n[2],p=+n[3],b=+(n[4]||0)*1e3,T=5}else if(n=y.match(Xo),n!==null){if(I=y.split(":").length-1,I>2)throw new R(ve);c=+n[1],u=+n[2],p=+(n[3]||0)*60,T=4}else if(n=y.match(Jo),n!==null)c=+n[1],u=+(n[2]||0)*60,T=3;else throw new R(ve);if(u>=60||p>=61||c>24||c===24&&(u>0||p>0||b>0))throw new R(ve);let F=n[T],z=+n[T+1],M=+(n[T+2]||0);switch(F){case"+":c=c-z,u=u-M;break;case"-":c=c+z,u=u+M;break;case"Z":break;default:u=u+new Date(Date.UTC(i,s-1,o,c,u)).getTimezoneOffset();break}}let k=p===60;for(k&&p--;u>=60;)u-=60,c++;for(;c>=24;)c-=24,o++;for(S=A&&s===2?Rt:At[s-1];o>S;)o-=S,s++,s>12&&(s-=12,i++),S=A&&s===2?Rt:At[s-1];for(;u<0;)u+=60,c--;for(;c<0;)c+=24,o--;for(;o<1;)s--,s<1&&(s+=12,i--),S=A&&s===2?Rt:At[s-1],o+=S;let D=vn(i,s,o,c,u,p,b);return d(t)?(ke(D[0],D[1],t),Tt(t)):t=new C(D[0],D[1],j.UTC),k&&C.addSeconds(t,1,t),t};C.now=function(e){return C.fromDate(new Date,e)};var Pt=new C(0,0,j.TAI);C.toGregorianDate=function(e,t){if(!d(e))throw new R("julianDate is required.");let n=!1,i=nr(e,Pt);d(i)||(C.addSeconds(e,-1,Pt),i=nr(Pt,Pt),n=!0);let s=i.dayNumber,o=i.secondsOfDay;o>=43200&&(s+=1);let c=s+68569|0,u=4*c/146097|0;c=c-((146097*u+3)/4|0)|0;let p=4e3*(c+1)/1461001|0;c=c-(1461*p/4|0)+31|0;let b=80*c/2447|0,g=c-(2447*b/80|0)|0;c=b/11|0;let y=b+2-12*c|0,S=100*(u-49)+p+c|0,A=o/K.SECONDS_PER_HOUR|0,I=o-A*K.SECONDS_PER_HOUR,T=I/K.SECONDS_PER_MINUTE|0;I=I-T*K.SECONDS_PER_MINUTE;let k=I|0,D=(I-k)/K.SECONDS_PER_MILLISECOND;return A+=12,A>23&&(A-=24),n&&(k+=1),d(t)?(t.year=S,t.month=y,t.day=g,t.hour=A,t.minute=T,t.second=k,t.millisecond=D,t.isLeapSecond=n,t):new Ct(S,y,g,A,T,k,D,n)};C.toDate=function(e){if(!d(e))throw new R("julianDate is required.");let t=C.toGregorianDate(e,rr),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};C.toIso8601=function(e,t){if(!d(e))throw new R("julianDate is required.");let n=C.toGregorianDate(e,rr),i=n.year,s=n.month,o=n.day,c=n.hour,u=n.minute,p=n.second,b=n.millisecond;i===1e4&&s===1&&o===1&&c===0&&u===0&&p===0&&b===0&&(i=9999,s=12,o=31,c=24);let g;return!d(t)&&b!==0?(g=(b*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${s.toString().padStart(2,"0")}-${o.toString().padStart(2,"0")}T${c.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${p.toString().padStart(2,"0")}.${g}Z`):!d(t)||t===0?`${i.toString().padStart(4,"0")}-${s.toString().padStart(2,"0")}-${o.toString().padStart(2,"0")}T${c.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${p.toString().padStart(2,"0")}Z`:(g=(b*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${s.toString().padStart(2,"0")}-${o.toString().padStart(2,"0")}T${c.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${p.toString().padStart(2,"0")}.${g}Z`)};C.clone=function(e,t){if(d(e))return d(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new C(e.dayNumber,e.secondsOfDay,j.TAI)};C.compare=function(e,t){if(!d(e))throw new R("left is required.");if(!d(t))throw new R("right is required.");let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};C.equals=function(e,t){return e===t||d(e)&&d(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};C.equalsEpsilon=function(e,t,n){return n=O(n,0),e===t||d(e)&&d(t)&&Math.abs(C.secondsDifference(e,t))<=n};C.totalDays=function(e){if(!d(e))throw new R("julianDate is required.");return e.dayNumber+e.secondsOfDay/K.SECONDS_PER_DAY};C.secondsDifference=function(e,t){if(!d(e))throw new R("left is required.");if(!d(t))throw new R("right is required.");return(e.dayNumber-t.dayNumber)*K.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};C.daysDifference=function(e,t){if(!d(e))throw new R("left is required.");if(!d(t))throw new R("right is required.");let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/K.SECONDS_PER_DAY;return n+i};C.computeTaiMinusUtc=function(e){Ke.julianDate=e;let t=C.leapSeconds,n=Qe(t,Ke,xn);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};C.addSeconds=function(e,t,n){if(!d(e))throw new R("julianDate is required.");if(!d(t))throw new R("seconds is required.");if(!d(n))throw new R("result is required.");return ke(e.dayNumber,e.secondsOfDay+t,n)};C.addMinutes=function(e,t,n){if(!d(e))throw new R("julianDate is required.");if(!d(t))throw new R("minutes is required.");if(!d(n))throw new R("result is required.");let i=e.secondsOfDay+t*K.SECONDS_PER_MINUTE;return ke(e.dayNumber,i,n)};C.addHours=function(e,t,n){if(!d(e))throw new R("julianDate is required.");if(!d(t))throw new R("hours is required.");if(!d(n))throw new R("result is required.");let i=e.secondsOfDay+t*K.SECONDS_PER_HOUR;return ke(e.dayNumber,i,n)};C.addDays=function(e,t,n){if(!d(e))throw new R("julianDate is required.");if(!d(t))throw new R("days is required.");if(!d(n))throw new R("result is required.");let i=e.dayNumber+t;return ke(i,e.secondsOfDay,n)};C.lessThan=function(e,t){return C.compare(e,t)<0};C.lessThanOrEquals=function(e,t){return C.compare(e,t)<=0};C.greaterThan=function(e,t){return C.compare(e,t)>0};C.greaterThanOrEquals=function(e,t){return C.compare(e,t)>=0};C.prototype.clone=function(e){return C.clone(this,e)};C.prototype.equals=function(e){return C.equals(this,e)};C.prototype.equalsEpsilon=function(e,t){return C.equalsEpsilon(this,e,t)};C.prototype.toString=function(){return C.toIso8601(this)};C.leapSeconds=[new Z(new C(2441317,43210,j.TAI),10),new Z(new C(2441499,43211,j.TAI),11),new Z(new C(2441683,43212,j.TAI),12),new Z(new C(2442048,43213,j.TAI),13),new Z(new C(2442413,43214,j.TAI),14),new Z(new C(2442778,43215,j.TAI),15),new Z(new C(2443144,43216,j.TAI),16),new Z(new C(2443509,43217,j.TAI),17),new Z(new C(2443874,43218,j.TAI),18),new Z(new C(2444239,43219,j.TAI),19),new Z(new C(2444786,43220,j.TAI),20),new Z(new C(2445151,43221,j.TAI),21),new Z(new C(2445516,43222,j.TAI),22),new Z(new C(2446247,43223,j.TAI),23),new Z(new C(2447161,43224,j.TAI),24),new Z(new C(2447892,43225,j.TAI),25),new Z(new C(2448257,43226,j.TAI),26),new Z(new C(2448804,43227,j.TAI),27),new Z(new C(2449169,43228,j.TAI),28),new Z(new C(2449534,43229,j.TAI),29),new Z(new C(2450083,43230,j.TAI),30),new Z(new C(2450630,43231,j.TAI),31),new Z(new C(2451179,43232,j.TAI),32),new Z(new C(2453736,43233,j.TAI),33),new Z(new C(2454832,43234,j.TAI),34),new Z(new C(2456109,43235,j.TAI),35),new Z(new C(2457204,43236,j.TAI),36),new Z(new C(2457754,43237,j.TAI),37)];var ue=C;var zr=Ge($e(),1);function Ko(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var fr=Ko;function lr(e,t){if(e===null||typeof e!="object")return e;t=O(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let s=e[i];t&&(s=lr(s,t)),n[i]=s}return n}var nt=lr;function ei(){let e,t,n=new Promise(function(i,s){e=i,t=s});return{resolve:e,reject:t,promise:n}}var We=ei;var dr=Ge($e(),1);function En(e,t){let n;return typeof document<"u"&&(n=document),En._implementation(e,t,n)}En._implementation=function(e,t,n){if(!d(e))throw new R("relative uri is required.");if(!d(t)){if(typeof n>"u")return e;t=O(n.baseURI,n.location.href)}let i=new dr.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var ft=En;var pr=Ge($e(),1);function ti(e,t){if(!d(e))throw new R("uri is required.");let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new pr.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var mr=ti;var hr=Ge($e(),1);function ni(e){if(!d(e))throw new R("uri is required.");let t=new hr.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var yr=ni;var gr={};function ri(e,t,n){d(t)||(t=e.width),d(n)||(n=e.height);let i=gr[t];d(i)||(i={},gr[t]=i);let s=i[n];if(!d(s)){let o=document.createElement("canvas");o.width=t,o.height=n,s=o.getContext("2d",{willReadFrequently:!0}),s.globalCompositeOperation="copy",i[n]=s}return s.drawImage(e,0,0,t,n),s.getImageData(0,0,t,n).data}var Cn=ri;var oi=/^blob:/i;function ii(e){return w.typeOf.string("uri",e),oi.test(e)}var zt=ii;var Ce;function si(e){d(Ce)||(Ce=document.createElement("a")),Ce.href=window.location.href;let t=Ce.host,n=Ce.protocol;return Ce.href=e,Ce.href=Ce.href,n!==Ce.protocol||t!==Ce.host}var wr=si;var ai=/^data:/i;function ci(e){return w.typeOf.string("uri",e),ai.test(e)}var qt=ci;function ui(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let s=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,s.removeChild(t),n()},t.onerror=function(o){i(o)},s.appendChild(t)})}var br=ui;function fi(e){if(!d(e))throw new R("obj is required.");let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],s=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let o=0,c=i.length;o<c;++o)t+=`${s+encodeURIComponent(i[o])}&`;else t+=`${s+encodeURIComponent(i)}&`}return t=t.slice(0,-1),t}var _r=fi;function li(e){if(!d(e))throw new R("queryString is required.");let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let i=0,s=n.length;i<s;++i){let o=n[i].split("="),c=decodeURIComponent(o[0]),u=o[1];d(u)?u=decodeURIComponent(u):u="";let p=t[c];typeof p=="string"?t[c]=[p,u]:Array.isArray(p)?p.push(u):t[c]=u}return t}var Sr=li;var di={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},te=Object.freeze(di);var pi={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},xr=Object.freeze(pi);function kt(e){e=O(e,O.EMPTY_OBJECT);let t=O(e.throttleByServer,!1),n=O(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=O(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=O(e.type,xr.OTHER),this.serverKey=e.serverKey,this.state=te.UNISSUED,this.deferred=void 0,this.cancelled=!1}kt.prototype.cancel=function(){this.cancelled=!0};kt.prototype.clone=function(e){return d(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=te.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new kt(this)};var vr=kt;function mi(e){let t={};if(!e)return t;let n=e.split(`\r +`);for(let i=0;i<n.length;++i){let s=n[i],o=s.indexOf(": ");if(o>0){let c=s.substring(0,o),u=s.substring(o+2);t[c]=u}}return t}var Or=mi;function Er(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=Or(this.responseHeaders))}Er.prototype.toString=function(){let e="Request has failed.";return d(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var lt=Er;var Ft=Ge($e(),1);function dt(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(dt.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});dt.prototype.addEventListener=function(e,t){w.typeOf.func("listener",e),this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};dt.prototype.removeEventListener=function(e,t){w.typeOf.func("listener",e);let n=this._listeners,i=this._scopes,s=-1;for(let o=0;o<n.length;o++)if(n[o]===e&&i[o]===t){s=o;break}return s!==-1?(this._insideRaiseEvent?(this._toRemove.push(s),n[s]=void 0,i[s]=void 0):(n.splice(s,1),i.splice(s,1)),!0):!1};function hi(e,t){return t-e}dt.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,i=t.length;for(e=0;e<i;e++){let o=t[e];d(o)&&t[e].apply(n[e],arguments)}let s=this._toRemove;if(i=s.length,i>0){for(s.sort(hi),e=0;e<i;e++){let o=s[e];t.splice(o,1),n.splice(o,1)}s.length=0}this._insideRaiseEvent=!1};var Cr=dt;function Ve(e){w.typeOf.object("options",e),w.defined("options.comparator",e.comparator),this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(Ve.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){w.typeOf.number.greaterThanOrEquals("maximumLength",e,0);let t=this._length;if(e<t){let n=this._array;for(let i=e;i<t;++i)n[i]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function An(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}Ve.prototype.reserve=function(e){e=O(e,this._length),this._array.length=e};Ve.prototype.heapify=function(e){e=O(e,0);let t=this._length,n=this._comparator,i=this._array,s=-1,o=!0;for(;o;){let c=2*(e+1),u=c-1;u<t&&n(i[u],i[e])<0?s=u:s=e,c<t&&n(i[c],i[s])<0&&(s=c),s!==e?(An(i,s,e),e=s):o=!1}};Ve.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};Ve.prototype.insert=function(e){w.defined("element",e);let t=this._array,n=this._comparator,i=this._maximumLength,s=this._length++;for(s<t.length?t[s]=e:t.push(e);s!==0;){let c=Math.floor((s-1)/2);if(n(t[s],t[c])<0)An(t,s,c),s=c;else break}let o;return d(i)&&this._length>i&&(o=t[i],this._length=i),o};Ve.prototype.pop=function(e){if(e=O(e,0),this._length===0)return;w.typeOf.number.lessThan("index",e,this._length);let t=this._array,n=t[e];return An(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var Ar=Ve;function yi(e,t){return e.priority-t.priority}var H={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},rt=20,le=new Ar({comparator:yi});le.maximumLength=rt;le.reserve(rt);var Ae=[],Pe={},gi=typeof document<"u"?new Ft.default(document.location.href):new Ft.default,Mt=new Cr;function ee(){}ee.maximumRequests=50;ee.maximumRequestsPerServer=6;ee.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18,"tile.googleapis.com:443":18,"tile.openstreetmap.org:443":18};ee.throttleRequests=!0;ee.debugShowStatistics=!1;ee.requestCompletedEvent=Mt;Object.defineProperties(ee,{statistics:{get:function(){return H}},priorityHeapLength:{get:function(){return rt},set:function(e){if(e<rt)for(;le.length>e;){let t=le.pop();He(t)}rt=e,le.maximumLength=e,le.reserve(e)}}});function Rr(e){d(e.priorityFunction)&&(e.priority=e.priorityFunction())}ee.serverHasOpenSlots=function(e,t){t=O(t,1);let n=O(ee.requestsByServer[e],ee.maximumRequestsPerServer);return Pe[e]+t<=n};ee.heapHasOpenSlots=function(e){return le.length+e<=rt};function Pr(e){return e.state===te.UNISSUED&&(e.state=te.ISSUED,e.deferred=We()),e.deferred.promise}function wi(e){return function(t){if(e.state===te.CANCELLED)return;let n=e.deferred;--H.numberOfActiveRequests,--Pe[e.serverKey],Mt.raiseEvent(),e.state=te.RECEIVED,e.deferred=void 0,n.resolve(t)}}function bi(e){return function(t){e.state!==te.CANCELLED&&(++H.numberOfFailedRequests,--H.numberOfActiveRequests,--Pe[e.serverKey],Mt.raiseEvent(t),e.state=te.FAILED,e.deferred.reject(t))}}function Tr(e){let t=Pr(e);return e.state=te.ACTIVE,Ae.push(e),++H.numberOfActiveRequests,++H.numberOfActiveRequestsEver,++Pe[e.serverKey],e.requestFunction().then(wi(e)).catch(bi(e)),t}function He(e){let t=e.state===te.ACTIVE;if(e.state=te.CANCELLED,++H.numberOfCancelledRequests,d(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--H.numberOfActiveRequests,--Pe[e.serverKey],++H.numberOfCancelledActiveRequests),d(e.cancelFunction)&&e.cancelFunction()}ee.update=function(){let e,t,n=0,i=Ae.length;for(e=0;e<i;++e){if(t=Ae[e],t.cancelled&&He(t),t.state!==te.ACTIVE){++n;continue}n>0&&(Ae[e-n]=t)}Ae.length-=n;let s=le.internalArray,o=le.length;for(e=0;e<o;++e)Rr(s[e]);le.resort();let c=Math.max(ee.maximumRequests-Ae.length,0),u=0;for(;u<c&&le.length>0;){if(t=le.pop(),t.cancelled){He(t);continue}if(t.throttleByServer&&!ee.serverHasOpenSlots(t.serverKey)){He(t);continue}Tr(t),++u}_i()};ee.getServerKey=function(e){w.typeOf.string("url",e);let t=new Ft.default(e);t.scheme()===""&&(t=t.absoluteTo(gi),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=Pe[n];return d(i)||(Pe[n]=0),n};ee.request=function(e){if(w.typeOf.object("request",e),w.typeOf.string("request.url",e.url),w.typeOf.func("request.requestFunction",e.requestFunction),qt(e.url)||zt(e.url))return Mt.raiseEvent(),e.state=te.RECEIVED,e.requestFunction();if(++H.numberOfAttemptedRequests,d(e.serverKey)||(e.serverKey=ee.getServerKey(e.url)),ee.throttleRequests&&e.throttleByServer&&!ee.serverHasOpenSlots(e.serverKey))return;if(!ee.throttleRequests||!e.throttle)return Tr(e);if(Ae.length>=ee.maximumRequests)return;Rr(e);let t=le.insert(e);if(d(t)){if(t===e)return;He(t)}return Pr(e)};function _i(){ee.debugShowStatistics&&(H.numberOfActiveRequests===0&&H.lastNumberOfActiveRequests>0&&(H.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${H.numberOfAttemptedRequests}`),H.numberOfAttemptedRequests=0),H.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${H.numberOfCancelledRequests}`),H.numberOfCancelledRequests=0),H.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${H.numberOfCancelledActiveRequests}`),H.numberOfCancelledActiveRequests=0),H.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${H.numberOfFailedRequests}`),H.numberOfFailedRequests=0)),H.lastNumberOfActiveRequests=H.numberOfActiveRequests)}ee.clearForSpecs=function(){for(;le.length>0;){let t=le.pop();He(t)}let e=Ae.length;for(let t=0;t<e;++t)He(Ae[t]);Ae.length=0,Pe={},H.numberOfAttemptedRequests=0,H.numberOfActiveRequests=0,H.numberOfCancelledRequests=0,H.numberOfCancelledActiveRequests=0,H.numberOfFailedRequests=0,H.numberOfActiveRequestsEver=0,H.lastNumberOfActiveRequests=0};ee.numberOfActiveRequestsByServer=function(e){return Pe[e]};ee.requestHeap=le;var jt=ee;var Ir=Ge($e(),1);var pt={},ot={};pt.add=function(e,t){if(!d(e))throw new R("host is required.");if(!d(t)||t<=0)throw new R("port is required to be greater than 0.");let n=`${e.toLowerCase()}:${t}`;d(ot[n])||(ot[n]=!0)};pt.remove=function(e,t){if(!d(e))throw new R("host is required.");if(!d(t)||t<=0)throw new R("port is required to be greater than 0.");let n=`${e.toLowerCase()}:${t}`;d(ot[n])&&delete ot[n]};function Si(e){let t=new Ir.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let i=t.scheme();if(i.length===0&&(i=window.location.protocol,i=i.substring(0,i.length-1)),i==="http")n+=":80";else if(i==="https")n+=":443";else return}return n}}pt.contains=function(e){if(!d(e))throw new R("url is required.");let t=Si(e);return!!(d(t)&&d(ot[t]))};pt.clear=function(){ot={}};var Rn=pt;var qr=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function E(e){e=O(e,O.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),w.typeOf.string("options.url",e.url),this._url=void 0,this._templateValues=Re(e.templateValues,{}),this._queryParameters=Re(e.queryParameters,{}),this.headers=Re(e.headers,{}),this.request=O(e.request,new vr),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=O(e.retryAttempts,0),this._retryCount=0,O(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url,this._credits=e.credits}function Re(e,t){return d(e)?nt(e):t}E.createIfNeeded=function(e){return e instanceof E?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new E({url:e})};var it;E.supportsImageBitmapOptions=function(){if(d(it))return it;if(typeof createImageBitmap!="function")return it=Promise.resolve(!1),it;let e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC";return it=E.fetchBlob({url:e}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=Cn(t[0]),i=Cn(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),it};Object.defineProperties(E,{isBlobSupported:{get:function(){return qr}}});Object.defineProperties(E.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return yr(this._url)}},isDataUri:{get:function(){return qt(this._url)}},isBlobUri:{get:function(){return zt(this._url)}},isCrossOriginUrl:{get:function(){return wr(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});E.prototype.toString=function(){return this.getUrlComponent(!0,!0)};E.prototype.parseUrl=function(e,t,n,i){let s=new zr.default(e),o=xi(s.query());this._queryParameters=t?Bt(o,this.queryParameters,n):o,s.search(""),s.fragment(""),d(i)&&s.scheme()===""&&(s=s.absoluteTo(ft(i))),this._url=s.toString()};function xi(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:Sr(e)}function Bt(e,t,n){if(!n)return qe(e,t);let i=nt(e,!0);for(let s in t)if(t.hasOwnProperty(s)){let o=i[s],c=t[s];d(o)?(Array.isArray(o)||(o=i[s]=[o]),i[s]=o.concat(c)):i[s]=Array.isArray(c)?c.slice():c}return i}E.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${vi(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(s,o){let c=i[o];return d(c)?encodeURIComponent(c):s})),t&&d(this.proxy)&&(n=this.proxy.getURL(n)),n};function vi(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!d(e[t[0]])?`?${t[0]}`:`?${_r(e)}`}E.prototype.setQueryParameters=function(e,t){t?this._queryParameters=Bt(this._queryParameters,e,!1):this._queryParameters=Bt(e,this._queryParameters,!1)};E.prototype.appendQueryParameters=function(e){this._queryParameters=Bt(e,this._queryParameters,!0)};E.prototype.setTemplateValues=function(e,t){t?this._templateValues=qe(this._templateValues,e):this._templateValues=qe(e,this._templateValues)};E.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,d(e.url)){let n=O(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return d(e.queryParameters)&&(t._queryParameters=qe(e.queryParameters,t.queryParameters)),d(e.templateValues)&&(t._templateValues=qe(e.templateValues,t.templateValues)),d(e.headers)&&(t.headers=qe(e.headers,t.headers)),d(e.proxy)&&(t.proxy=e.proxy),d(e.request)&&(t.request=e.request),d(e.retryCallback)&&(t.retryCallback=e.retryCallback),d(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};E.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};E.prototype.clone=function(e){return d(e)?(e._url=this._url,e._queryParameters=nt(this._queryParameters),e._templateValues=nt(this._templateValues),e.headers=nt(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new E({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:d(this.credits)?this.credits.slice():void 0})};E.prototype.getBaseUri=function(e){return mr(this.getUrlComponent(e),e)};E.prototype.appendForwardSlash=function(){this._url=fr(this._url)};E.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};E.fetchArrayBuffer=function(e){return new E(e).fetchArrayBuffer()};E.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};E.fetchBlob=function(e){return new E(e).fetchBlob()};E.prototype.fetchImage=function(e){e=O(e,O.EMPTY_OBJECT);let t=O(e.preferImageBitmap,!1),n=O(e.preferBlob,!1),i=O(e.flipY,!1),s=O(e.skipColorSpaceConversion,!1);if(Tn(this.request),!qr||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return Pn({resource:this,flipY:i,skipColorSpaceConversion:s,preferImageBitmap:t});let o=this.fetchBlob();if(!d(o))return;let c,u,p,b;return E.supportsImageBitmapOptions().then(function(g){return c=g,u=c&&t,o}).then(function(g){if(!d(g))return;if(b=g,u)return E.createImageBitmapFromBlob(g,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:s});let y=window.URL.createObjectURL(g);return p=new E({url:y}),Pn({resource:p,flipY:i,skipColorSpaceConversion:s,preferImageBitmap:!1})}).then(function(g){if(d(g))return g.blob=b,u||window.URL.revokeObjectURL(p.url),g}).catch(function(g){return d(p)&&window.URL.revokeObjectURL(p.url),g.blob=b,Promise.reject(g)})};function Pn(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,s=e.preferImageBitmap,o=t.request;o.url=t.url,o.requestFunction=function(){let u=!1;!t.isDataUri&&!t.isBlobUri&&(u=t.isCrossOriginUrl);let p=We();return E._Implementations.createImage(o,u,p,n,i,s),p.promise};let c=jt.request(o);if(d(c))return c.catch(function(u){return o.state!==te.FAILED?Promise.reject(u):t.retryOnError(u).then(function(p){return p?(o.state=te.UNISSUED,o.deferred=void 0,Pn({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:s})):Promise.reject(u)})})}E.fetchImage=function(e){return new E(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};E.prototype.fetchText=function(){return this.fetch({responseType:"text"})};E.fetchText=function(e){return new E(e).fetchText()};E.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(d(e))return e.then(function(t){if(d(t))return JSON.parse(t)})};E.fetchJson=function(e){return new E(e).fetchJson()};E.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};E.fetchXML=function(e){return new E(e).fetchXML()};E.prototype.fetchJsonp=function(e){e=O(e,"callback"),Tn(this.request);let t;do t=`loadJsonp${J.nextRandomNumber().toString().substring(2,8)}`;while(d(window[t]));return kr(this,e,t)};function kr(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let s=e.request,o=e.url;s.url=o,s.requestFunction=function(){let u=We();return window[n]=function(p){u.resolve(p);try{delete window[n]}catch{window[n]=void 0}},E._Implementations.loadAndExecuteScript(o,n,u),u.promise};let c=jt.request(s);if(d(c))return c.catch(function(u){return s.state!==te.FAILED?Promise.reject(u):e.retryOnError(u).then(function(p){return p?(s.state=te.UNISSUED,s.deferred=void 0,kr(e,t,n)):Promise.reject(u)})})}E.fetchJsonp=function(e){return new E(e).fetchJsonp(e.callbackParameterName)};E.prototype._makeRequest=function(e){let t=this;Tn(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let o=e.responseType,c=qe(e.headers,t.headers),u=e.overrideMimeType,p=e.method,b=e.data,g=We(),y=E._Implementations.loadWithXhr(i,o,p,b,c,g,u);return d(y)&&d(y.abort)&&(n.cancelFunction=function(){y.abort()}),g.promise};let s=jt.request(n);if(d(s))return s.then(function(o){return n.cancelFunction=void 0,o}).catch(function(o){return n.cancelFunction=void 0,n.state!==te.FAILED?Promise.reject(o):t.retryOnError(o).then(function(c){return c?(n.state=te.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(o)})})};function Tn(e){if(e.state===te.ISSUED||e.state===te.ACTIVE)throw new Ee("The Resource is already being fetched.");e.state=te.UNISSUED,e.deferred=void 0}var Oi=/^data:(.*?)(;base64)?,(.*)$/;function Nt(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function Ur(e,t){let n=Nt(e,t),i=new ArrayBuffer(n.length),s=new Uint8Array(i);for(let o=0;o<n.length;o++)s[o]=n.charCodeAt(o);return i}function Ei(e,t){t=O(t,"");let n=e[1],i=!!e[2],s=e[3],o,c;switch(t){case"":case"text":return Nt(i,s);case"arraybuffer":return Ur(i,s);case"blob":return o=Ur(i,s),new Blob([o],{type:n});case"document":return c=new DOMParser,c.parseFromString(Nt(i,s),n);case"json":return JSON.parse(Nt(i,s));default:throw new R(`Unhandled responseType: ${t}`)}}E.prototype.fetch=function(e){return e=Re(e,{}),e.method="GET",this._makeRequest(e)};E.fetch=function(e){return new E(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};E.prototype.delete=function(e){return e=Re(e,{}),e.method="DELETE",this._makeRequest(e)};E.delete=function(e){return new E(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};E.prototype.head=function(e){return e=Re(e,{}),e.method="HEAD",this._makeRequest(e)};E.head=function(e){return new E(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};E.prototype.options=function(e){return e=Re(e,{}),e.method="OPTIONS",this._makeRequest(e)};E.options=function(e){return new E(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};E.prototype.post=function(e,t){return w.defined("data",e),t=Re(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};E.post=function(e){return new E(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};E.prototype.put=function(e,t){return w.defined("data",e),t=Re(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};E.put=function(e){return new E(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};E.prototype.patch=function(e,t){return w.defined("data",e),t=Re(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};E.patch=function(e){return new E(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};E._Implementations={};E._Implementations.loadImageElement=function(e,t,n){let i=new Image;i.onload=function(){i.naturalWidth===0&&i.naturalHeight===0&&i.width===0&&i.height===0&&(i.width=300,i.height=150),n.resolve(i)},i.onerror=function(s){n.reject(s)},t&&(Rn.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};E._Implementations.createImage=function(e,t,n,i,s,o){let c=e.url;E.supportsImageBitmapOptions().then(function(u){if(!(u&&o)){E._Implementations.loadImageElement(c,t,n);return}let p="blob",b="GET",g=We(),y=E._Implementations.loadWithXhr(c,p,b,void 0,void 0,g,void 0,void 0,void 0);return d(y)&&d(y.abort)&&(e.cancelFunction=function(){y.abort()}),g.promise.then(function(S){if(!d(S)){n.reject(new Ee(`Successfully retrieved ${c} but it contained no content.`));return}return E.createImageBitmapFromBlob(S,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:s})}).then(function(S){n.resolve(S)})}).catch(function(u){n.reject(u)})};E.createImageBitmapFromBlob=function(e,t){return w.defined("options",t),w.typeOf.bool("options.flipY",t.flipY),w.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),w.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function Dr(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function Ci(e,t,n,i,s,o,c){let u,p;Promise.all([import("url"),import("zlib")]).then(([b,g])=>(u=b.parse(e),p=g,u.protocol==="https:"?import("https"):import("http"))).then(b=>{let g={protocol:u.protocol,hostname:u.hostname,port:u.port,path:u.path,query:u.query,method:n,headers:s};b.request(g).on("response",function(y){if(y.statusCode<200||y.statusCode>=300){o.reject(new lt(y.statusCode,y,y.headers));return}let S=[];y.on("data",function(A){S.push(A)}),y.on("end",function(){let A=Buffer.concat(S);y.headers["content-encoding"]==="gzip"?p.gunzip(A,function(I,T){I?o.reject(new Ee("Error decompressing response.")):o.resolve(Dr(T,t))}):o.resolve(Dr(A,t))})}).on("error",function(y){o.reject(new lt)}).end()})}var Ai=typeof XMLHttpRequest>"u";E._Implementations.loadWithXhr=function(e,t,n,i,s,o,c){let u=Oi.exec(e);if(u!==null){o.resolve(Ei(u,t));return}if(Ai){Ci(e,t,n,i,s,o,c);return}let p=new XMLHttpRequest;if(Rn.contains(e)&&(p.withCredentials=!0),p.open(n,e,!0),d(c)&&d(p.overrideMimeType)&&p.overrideMimeType(c),d(s))for(let g in s)s.hasOwnProperty(g)&&p.setRequestHeader(g,s[g]);d(t)&&(p.responseType=t);let b=!1;return typeof e=="string"&&(b=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),p.onload=function(){if((p.status<200||p.status>=300)&&!(b&&p.status===0)){o.reject(new lt(p.status,p.response,p.getAllResponseHeaders()));return}let g=p.response,y=p.responseType;if(n==="HEAD"||n==="OPTIONS"){let A=p.getAllResponseHeaders().trim().split(/[\r\n]+/),I={};A.forEach(function(T){let k=T.split(": "),D=k.shift();I[D]=k.join(": ")}),o.resolve(I);return}if(p.status===204)o.resolve();else if(d(g)&&(!d(t)||y===t))o.resolve(g);else if(t==="json"&&typeof g=="string")try{o.resolve(JSON.parse(g))}catch(S){o.reject(S)}else(y===""||y==="document")&&d(p.responseXML)&&p.responseXML.hasChildNodes()?o.resolve(p.responseXML):(y===""||y==="text")&&d(p.responseText)?o.resolve(p.responseText):o.reject(new Ee("Invalid XMLHttpRequest response type."))},p.onerror=function(g){o.reject(new lt)},p.send(i),p};E._Implementations.loadAndExecuteScript=function(e,t,n){return br(e,t).catch(function(i){n.reject(i)})};E._DefaultImplementations={};E._DefaultImplementations.createImage=E._Implementations.createImage;E._DefaultImplementations.loadWithXhr=E._Implementations.loadWithXhr;E._DefaultImplementations.loadAndExecuteScript=E._Implementations.loadAndExecuteScript;E.DEFAULT=Object.freeze(new E({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var Fe=E;function ht(e){e=O(e,O.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=O(e.addNewLeapSeconds,!0),d(e.data)?Fr(this,e.data):Fr(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}ht.fromUrl=async function(e,t){w.defined("url",e),t=O(t,O.EMPTY_OBJECT);let n=Fe.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new Ee(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new ht({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};ht.NONE=Object.freeze({compute:function(e,t){return d(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new ut(0,0,0,0,0),t}});ht.prototype.compute=function(e,t){if(!d(this._samples))return;if(d(t)||(t=new ut(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,s=0,o=0;if(d(i)){let u=n[i],p=n[i+1],b=ue.lessThanOrEquals(u,e),g=!d(p),y=g||ue.greaterThanOrEquals(p,e);if(b&&y)return s=i,!g&&p.equals(e)&&++s,o=s+1,jr(this,n,this._samples,e,s,o,t),t}let c=Qe(n,e,ue.compare,this._dateColumn);return c>=0?(c<n.length-1&&n[c+1].equals(e)&&++c,s=c,o=c):(o=~c,s=o-1,s<0&&(s=0)),this._lastIndex=s,jr(this,n,this._samples,e,s,o,t),t};function Ri(e,t){return ue.compare(e.julianDate,t)}function Fr(e,t){if(!d(t.columnNames))throw new Ee("Error in loaded EOP data: The columnNames property is required.");if(!d(t.samples))throw new Ee("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),i=t.columnNames.indexOf("xPoleWanderRadians"),s=t.columnNames.indexOf("yPoleWanderRadians"),o=t.columnNames.indexOf("ut1MinusUtcSeconds"),c=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),u=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||i<0||s<0||o<0||c<0||u<0||p<0)throw new Ee("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let b=e._samples=t.samples,g=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=o,e._xCelestialPoleOffsetRadiansColumn=c,e._yCelestialPoleOffsetRadiansColumn=u,e._taiMinusUtcSecondsColumn=p,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let y,S=e._addNewLeapSeconds;for(let A=0,I=b.length;A<I;A+=e._columnCount){let T=b[A+n],k=b[A+p],D=T+K.MODIFIED_JULIAN_DATE_DIFFERENCE,F=new ue(D,k,j.TAI);if(g.push(F),S){if(k!==y&&d(y)){let z=ue.leapSeconds,M=Qe(z,F,Ri);if(M<0){let N=new Z(F,k);z.splice(~M,0,N)}}y=k}}}function Mr(e,t,n,i,s){let o=n*i;s.xPoleWander=t[o+e._xPoleWanderRadiansColumn],s.yPoleWander=t[o+e._yPoleWanderRadiansColumn],s.xPoleOffset=t[o+e._xCelestialPoleOffsetRadiansColumn],s.yPoleOffset=t[o+e._yCelestialPoleOffsetRadiansColumn],s.ut1MinusUtc=t[o+e._ut1MinusUtcSecondsColumn]}function mt(e,t,n){return t+e*(n-t)}function jr(e,t,n,i,s,o,c){let u=e._columnCount;if(o>t.length-1)return c.xPoleWander=0,c.yPoleWander=0,c.xPoleOffset=0,c.yPoleOffset=0,c.ut1MinusUtc=0,c;let p=t[s],b=t[o];if(p.equals(b)||i.equals(p))return Mr(e,n,s,u,c),c;if(i.equals(b))return Mr(e,n,o,u,c),c;let g=ue.secondsDifference(i,p)/ue.secondsDifference(b,p),y=s*u,S=o*u,A=n[y+e._ut1MinusUtcSecondsColumn],I=n[S+e._ut1MinusUtcSecondsColumn],T=I-A;if(T>.5||T<-.5){let k=n[y+e._taiMinusUtcSecondsColumn],D=n[S+e._taiMinusUtcSecondsColumn];k!==D&&(b.equals(i)?A=I:I-=D-k)}return c.xPoleWander=mt(g,n[y+e._xPoleWanderRadiansColumn],n[S+e._xPoleWanderRadiansColumn]),c.yPoleWander=mt(g,n[y+e._yPoleWanderRadiansColumn],n[S+e._yPoleWanderRadiansColumn]),c.xPoleOffset=mt(g,n[y+e._xCelestialPoleOffsetRadiansColumn],n[S+e._xCelestialPoleOffsetRadiansColumn]),c.yPoleOffset=mt(g,n[y+e._yCelestialPoleOffsetRadiansColumn],n[S+e._yCelestialPoleOffsetRadiansColumn]),c.ut1MinusUtc=mt(g,A,I),c}var Nr=ht;function de(e,t,n){this.heading=O(e,0),this.pitch=O(t,0),this.roll=O(n,0)}de.fromQuaternion=function(e,t){if(!d(e))throw new R("quaternion is required");d(t)||(t=new de);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),s=2*(e.w*e.x+e.y*e.z),o=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(c,o),t.roll=Math.atan2(s,i),t.pitch=-J.asinClamped(n),t};de.fromDegrees=function(e,t,n,i){if(!d(e))throw new R("heading is required");if(!d(t))throw new R("pitch is required");if(!d(n))throw new R("roll is required");return d(i)||(i=new de),i.heading=e*J.RADIANS_PER_DEGREE,i.pitch=t*J.RADIANS_PER_DEGREE,i.roll=n*J.RADIANS_PER_DEGREE,i};de.clone=function(e,t){if(d(e))return d(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new de(e.heading,e.pitch,e.roll)};de.equals=function(e,t){return e===t||d(e)&&d(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};de.equalsEpsilon=function(e,t,n,i){return e===t||d(e)&&d(t)&&J.equalsEpsilon(e.heading,t.heading,n,i)&&J.equalsEpsilon(e.pitch,t.pitch,n,i)&&J.equalsEpsilon(e.roll,t.roll,n,i)};de.prototype.clone=function(e){return de.clone(this,e)};de.prototype.equals=function(e){return de.equals(this,e)};de.prototype.equalsEpsilon=function(e,t,n){return de.equalsEpsilon(this,e,t,n)};de.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var In=de;var Br=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function Pi(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),s=Br.exec(i);if(s!==null)return s[1]}}var Lt;function Lr(e){return typeof document>"u"?e:(d(Lt)||(Lt=document.createElement("a")),Lt.href=e,Lt.href)}var Ye;function Qr(){if(d(Ye))return Ye;let e;if(typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:d(import.meta?.url)?e=ft(".",import.meta.url):typeof define=="object"&&d(define.amd)&&!define.amd.toUrlUndefined&&d(_t.toUrl)?e=ft("..",Ze("Core/buildModuleUrl.js")):e=Pi(),!d(e))throw new R("Unable to determine Cesium base URL automatically, try defining a global variable called CESIUM_BASE_URL.");return Ye=new Fe({url:Lr(e)}),Ye.appendForwardSlash(),Ye}function Ti(e){return Lr(_t.toUrl(`../${e}`))}function $r(e){return Qr().getDerivedResource({url:e}).url}var Qt;function Ze(e){return d(Qt)||(typeof define=="object"&&d(define.amd)&&!define.amd.toUrlUndefined&&d(_t.toUrl)?Qt=Ti:Qt=$r),Qt(e)}Ze._cesiumScriptRegex=Br;Ze._buildModuleUrlFromBaseUrl=$r;Ze._clearBaseResource=function(){Ye=void 0};Ze.setBaseUrl=function(e){Ye=Fe.DEFAULT.getDerivedResource({url:e})};Ze.getCesiumBaseUrl=Qr;var Wr=Ze;function Ii(e,t,n){this.x=e,this.y=t,this.s=n}var $t=Ii;function zn(e){e=O(e,O.EMPTY_OBJECT),this._xysFileUrlTemplate=Fe.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=O(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=O(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new ue(this._sampleZeroJulianEphemerisDate,0,j.TAI),this._stepSizeDays=O(e.stepSizeDays,1),this._samplesPerXysFile=O(e.samplesPerXysFile,1e3),this._totalSamples=O(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t);for(let o=0;o<=t;++o){n[o]=s,i[o]=o*this._stepSizeDays;for(let c=0;c<=t;++c)c!==o&&(n[o]*=o-c);n[o]=1/n[o]}this._work=new Array(t+1),this._coef=new Array(t+1)}var Ui=new ue(0,0,j.TAI);function Un(e,t,n){let i=Ui;return i.dayNumber=t,i.secondsOfDay=n,ue.daysDifference(i,e._sampleZeroDateTT)}zn.prototype.preload=function(e,t,n,i){let s=Un(this,e,t),o=Un(this,n,i),c=s/this._stepSizeDays-this._interpolationOrder/2|0;c<0&&(c=0);let u=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;u>=this._totalSamples&&(u=this._totalSamples-1);let p=c/this._samplesPerXysFile|0,b=u/this._samplesPerXysFile|0,g=[];for(let y=p;y<=b;++y)g.push(Dn(this,y));return Promise.all(g)};zn.prototype.computeXysRadians=function(e,t,n){let i=Un(this,e,t);if(i<0)return;let s=i/this._stepSizeDays|0;if(s>=this._totalSamples)return;let o=this._interpolationOrder,c=s-(o/2|0);c<0&&(c=0);let u=c+o;u>=this._totalSamples&&(u=this._totalSamples-1,c=u-o,c<0&&(c=0));let p=!1,b=this._samples;if(d(b[c*3])||(Dn(this,c/this._samplesPerXysFile|0),p=!0),d(b[u*3])||(Dn(this,u/this._samplesPerXysFile|0),p=!0),p)return;d(n)?(n.x=0,n.y=0,n.s=0):n=new $t(0,0,0);let g=i-c*this._stepSizeDays,y=this._work,S=this._denominators,A=this._coef,I=this._xTable,T,k;for(T=0;T<=o;++T)y[T]=g-I[T];for(T=0;T<=o;++T){for(A[T]=1,k=0;k<=o;++k)k!==T&&(A[T]*=y[k]);A[T]*=S[T];let D=(c+T)*3;n.x+=A[T]*b[D++],n.y+=A[T]*b[D++],n.s+=A[T]*b[D]}return n};function Dn(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;d(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new Fe({url:Wr(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let s=n.fetchJson().then(function(o){e._chunkDownloadsInProgress[t]=!1;let c=e._samples,u=o.samples,p=t*e._samplesPerXysFile*3;for(let b=0,g=u.length;b<g;++b)c[p+b]=u[b]});return e._chunkDownloadsInProgress[t]=s,s}var Vr=zn;var Me,re={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},ge={};Object.defineProperties(ge,{element:{get:function(){if(ge.supportsFullscreen())return document[re.fullscreenElement]}},changeEventName:{get:function(){if(ge.supportsFullscreen())return re.fullscreenchange}},errorEventName:{get:function(){if(ge.supportsFullscreen())return re.fullscreenerror}},enabled:{get:function(){if(ge.supportsFullscreen())return document[re.fullscreenEnabled]}},fullscreen:{get:function(){if(ge.supportsFullscreen())return ge.element!==null}}});ge.supportsFullscreen=function(){if(d(Me))return Me;Me=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return re.requestFullscreen="requestFullscreen",re.exitFullscreen="exitFullscreen",re.fullscreenEnabled="fullscreenEnabled",re.fullscreenElement="fullscreenElement",re.fullscreenchange="fullscreenchange",re.fullscreenerror="fullscreenerror",Me=!0,Me;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,s=t.length;i<s;++i){let o=t[i];n=`${o}RequestFullscreen`,typeof e[n]=="function"?(re.requestFullscreen=n,Me=!0):(n=`${o}RequestFullScreen`,typeof e[n]=="function"&&(re.requestFullscreen=n,Me=!0)),n=`${o}ExitFullscreen`,typeof document[n]=="function"?re.exitFullscreen=n:(n=`${o}CancelFullScreen`,typeof document[n]=="function"&&(re.exitFullscreen=n)),n=`${o}FullscreenEnabled`,document[n]!==void 0?re.fullscreenEnabled=n:(n=`${o}FullScreenEnabled`,document[n]!==void 0&&(re.fullscreenEnabled=n)),n=`${o}FullscreenElement`,document[n]!==void 0?re.fullscreenElement=n:(n=`${o}FullScreenElement`,document[n]!==void 0&&(re.fullscreenElement=n)),n=`${o}fullscreenchange`,document[`on${n}`]!==void 0&&(o==="ms"&&(n="MSFullscreenChange"),re.fullscreenchange=n),n=`${o}fullscreenerror`,document[`on${n}`]!==void 0&&(o==="ms"&&(n="MSFullscreenError"),re.fullscreenerror=n)}return Me};ge.requestFullscreen=function(e,t){ge.supportsFullscreen()&&e[re.requestFullscreen]({vrDisplay:t})};ge.exitFullscreen=function(){ge.supportsFullscreen()&&document[re.exitFullscreen]()};ge._names=re;var Hr=ge;var me;typeof navigator<"u"?me=navigator:me={};function Je(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var Wt,Yr;function Nn(){if(!d(Wt)&&(Wt=!1,!Xt())){let e=/ Chrome\/([\.0-9]+)/.exec(me.userAgent);e!==null&&(Wt=!0,Yr=Je(e[1]))}return Wt}function Di(){return Nn()&&Yr}var Vt,Zr;function Jr(){if(!d(Vt)&&(Vt=!1,!Nn()&&!Xt()&&/ Safari\/[\.0-9]+/.test(me.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(me.userAgent);e!==null&&(Vt=!0,Zr=Je(e[1]))}return Vt}function zi(){return Jr()&&Zr}var Ht,Mn;function Xr(){if(!d(Ht)){Ht=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(me.userAgent);e!==null&&(Ht=!0,Mn=Je(e[1]),Mn.isNightly=!!e[2])}return Ht}function qi(){return Xr()&&Mn}var yt,jn;function Gr(){if(!d(yt)){yt=!1;let e;me.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(me.userAgent),e!==null&&(yt=!0,jn=Je(e[1]))):me.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(me.userAgent),e!==null&&(yt=!0,jn=Je(e[1])))}return yt}function ki(){return Gr()&&jn}var Yt,Kr;function Xt(){if(!d(Yt)){Yt=!1;let e=/ Edg\/([\.0-9]+)/.exec(me.userAgent);e!==null&&(Yt=!0,Kr=Je(e[1]))}return Yt}function Fi(){return Xt()&&Kr}var Zt,Bn;function Gt(){if(!d(Zt)){Zt=!1;let e=/Firefox\/([\.0-9]+)/.exec(me.userAgent);e!==null&&(Zt=!0,Bn=Je(e[1]))}return Zt}var qn;function Mi(){return d(qn)||(qn=/Windows/i.test(me.appVersion)),qn}var kn;function ji(){return d(kn)||(kn=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),kn}function Ni(){return Gt()&&Bn}var Fn;function Bi(){return d(Fn)||(Fn=!Gt()&&typeof PointerEvent<"u"&&(!d(me.pointerEnabled)||me.pointerEnabled)),Fn}var eo,Jt;function to(){if(!d(Jt)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;Jt=d(t)&&t!=="",Jt&&(eo=t)}return Jt}function Li(){return to()?eo:void 0}function pe(){if(!pe.initialized)throw new R("You must call FeatureDetection.supportsWebP.initialize and wait for the promise to resolve before calling FeatureDetection.supportsWebP");return pe._result}pe._promise=void 0;pe._result=void 0;pe.initialize=function(){return d(pe._promise)||(pe._promise=new Promise(e=>{let t=new Image;t.onload=function(){pe._result=t.width>0&&t.height>0,e(pe._result)},t.onerror=function(){pe._result=!1,e(pe._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),pe._promise};Object.defineProperties(pe,{initialized:{get:function(){return d(pe._result)}}});var st=[];typeof ArrayBuffer<"u"&&(st.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&st.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&st.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&st.push(BigInt64Array),typeof BigUint64Array<"u"&&st.push(BigUint64Array));var Se={isChrome:Nn,chromeVersion:Di,isSafari:Jr,safariVersion:zi,isWebkit:Xr,webkitVersion:qi,isInternetExplorer:Gr,internetExplorerVersion:ki,isEdge:Xt,edgeVersion:Fi,isFirefox:Gt,firefoxVersion:Ni,isWindows:Mi,isIPadOrIOS:ji,hardwareConcurrency:O(me.hardwareConcurrency,3),supportsPointerEvents:Bi,supportsImageRenderingPixelated:to,supportsWebP:pe,imageRenderingValue:Li,typedArrayTypes:st};Se.supportsBasis=function(e){return Se.supportsWebAssembly()&&e.context.supportsBasis};Se.supportsFullscreen=function(){return Hr.supportsFullscreen()};Se.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};Se.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};Se.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};Se.supportsBigInt=function(){return typeof BigInt<"u"};Se.supportsWebWorkers=function(){return typeof Worker<"u"};Se.supportsWebAssembly=function(){return typeof WebAssembly<"u"};Se.supportsWebgl2=function(e){return w.defined("scene",e),e.context.webgl2};Se.supportsEsmWebWorkers=function(){return!Gt()||parseInt(Bn)>=114};var gt=Se;function x(e,t,n,i){this.x=O(e,0),this.y=O(t,0),this.z=O(n,0),this.w=O(i,0)}var wt=new f;x.fromAxisAngle=function(e,t,n){w.typeOf.object("axis",e),w.typeOf.number("angle",t);let i=t/2,s=Math.sin(i);wt=f.normalize(e,wt);let o=wt.x*s,c=wt.y*s,u=wt.z*s,p=Math.cos(i);return d(n)?(n.x=o,n.y=c,n.z=u,n.w=p,n):new x(o,c,u,p)};var Qi=[1,2,0],$i=new Array(3);x.fromRotationMatrix=function(e,t){w.typeOf.object("matrix",e);let n,i,s,o,c,u=e[B.COLUMN0ROW0],p=e[B.COLUMN1ROW1],b=e[B.COLUMN2ROW2],g=u+p+b;if(g>0)n=Math.sqrt(g+1),c=.5*n,n=.5/n,i=(e[B.COLUMN1ROW2]-e[B.COLUMN2ROW1])*n,s=(e[B.COLUMN2ROW0]-e[B.COLUMN0ROW2])*n,o=(e[B.COLUMN0ROW1]-e[B.COLUMN1ROW0])*n;else{let y=Qi,S=0;p>u&&(S=1),b>u&&b>p&&(S=2);let A=y[S],I=y[A];n=Math.sqrt(e[B.getElementIndex(S,S)]-e[B.getElementIndex(A,A)]-e[B.getElementIndex(I,I)]+1);let T=$i;T[S]=.5*n,n=.5/n,c=(e[B.getElementIndex(I,A)]-e[B.getElementIndex(A,I)])*n,T[A]=(e[B.getElementIndex(A,S)]+e[B.getElementIndex(S,A)])*n,T[I]=(e[B.getElementIndex(I,S)]+e[B.getElementIndex(S,I)])*n,i=-T[0],s=-T[1],o=-T[2]}return d(t)?(t.x=i,t.y=s,t.z=o,t.w=c,t):new x(i,s,o,c)};var no=new x,ro=new x,Ln=new x,oo=new x;x.fromHeadingPitchRoll=function(e,t){return w.typeOf.object("headingPitchRoll",e),oo=x.fromAxisAngle(f.UNIT_X,e.roll,no),Ln=x.fromAxisAngle(f.UNIT_Y,-e.pitch,t),t=x.multiply(Ln,oo,Ln),ro=x.fromAxisAngle(f.UNIT_Z,-e.heading,no),x.multiply(ro,t,t)};var Kt=new f,Qn=new f,Oe=new x,io=new x,en=new x;x.packedLength=4;x.pack=function(e,t,n){return w.typeOf.object("value",e),w.defined("array",t),n=O(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};x.unpack=function(e,t,n){return w.defined("array",e),t=O(t,0),d(n)||(n=new x),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};x.packedInterpolationLength=3;x.convertPackedArrayForInterpolation=function(e,t,n,i){x.unpack(e,n*4,en),x.conjugate(en,en);for(let s=0,o=n-t+1;s<o;s++){let c=s*3;x.unpack(e,(t+s)*4,Oe),x.multiply(Oe,en,Oe),Oe.w<0&&x.negate(Oe,Oe),x.computeAxis(Oe,Kt);let u=x.computeAngle(Oe);d(i)||(i=[]),i[c]=Kt.x*u,i[c+1]=Kt.y*u,i[c+2]=Kt.z*u}};x.unpackInterpolationResult=function(e,t,n,i,s){d(s)||(s=new x),f.fromArray(e,0,Qn);let o=f.magnitude(Qn);return x.unpack(t,i*4,io),o===0?x.clone(x.IDENTITY,Oe):x.fromAxisAngle(Qn,o,Oe),x.multiply(Oe,io,s)};x.clone=function(e,t){if(d(e))return d(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new x(e.x,e.y,e.z,e.w)};x.conjugate=function(e,t){return w.typeOf.object("quaternion",e),w.typeOf.object("result",t),t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};x.magnitudeSquared=function(e){return w.typeOf.object("quaternion",e),e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};x.magnitude=function(e){return Math.sqrt(x.magnitudeSquared(e))};x.normalize=function(e,t){w.typeOf.object("result",t);let n=1/x.magnitude(e),i=e.x*n,s=e.y*n,o=e.z*n,c=e.w*n;return t.x=i,t.y=s,t.z=o,t.w=c,t};x.inverse=function(e,t){w.typeOf.object("result",t);let n=x.magnitudeSquared(e);return t=x.conjugate(e,t),x.multiplyByScalar(t,1/n,t)};x.add=function(e,t,n){return w.typeOf.object("left",e),w.typeOf.object("right",t),w.typeOf.object("result",n),n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};x.subtract=function(e,t,n){return w.typeOf.object("left",e),w.typeOf.object("right",t),w.typeOf.object("result",n),n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};x.negate=function(e,t){return w.typeOf.object("quaternion",e),w.typeOf.object("result",t),t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};x.dot=function(e,t){return w.typeOf.object("left",e),w.typeOf.object("right",t),e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};x.multiply=function(e,t,n){w.typeOf.object("left",e),w.typeOf.object("right",t),w.typeOf.object("result",n);let i=e.x,s=e.y,o=e.z,c=e.w,u=t.x,p=t.y,b=t.z,g=t.w,y=c*u+i*g+s*b-o*p,S=c*p-i*b+s*g+o*u,A=c*b+i*p-s*u+o*g,I=c*g-i*u-s*p-o*b;return n.x=y,n.y=S,n.z=A,n.w=I,n};x.multiplyByScalar=function(e,t,n){return w.typeOf.object("quaternion",e),w.typeOf.number("scalar",t),w.typeOf.object("result",n),n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};x.divideByScalar=function(e,t,n){return w.typeOf.object("quaternion",e),w.typeOf.number("scalar",t),w.typeOf.object("result",n),n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};x.computeAxis=function(e,t){w.typeOf.object("quaternion",e),w.typeOf.object("result",t);let n=e.w;if(Math.abs(n-1)<J.EPSILON6)return t.x=t.y=t.z=0,t;let i=1/Math.sqrt(1-n*n);return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t};x.computeAngle=function(e){return w.typeOf.object("quaternion",e),Math.abs(e.w-1)<J.EPSILON6?0:2*Math.acos(e.w)};var $n=new x;x.lerp=function(e,t,n,i){return w.typeOf.object("start",e),w.typeOf.object("end",t),w.typeOf.number("t",n),w.typeOf.object("result",i),$n=x.multiplyByScalar(t,n,$n),i=x.multiplyByScalar(e,1-n,i),x.add($n,i,i)};var so=new x,Wn=new x,Vn=new x;x.slerp=function(e,t,n,i){w.typeOf.object("start",e),w.typeOf.object("end",t),w.typeOf.number("t",n),w.typeOf.object("result",i);let s=x.dot(e,t),o=t;if(s<0&&(s=-s,o=so=x.negate(t,so)),1-s<J.EPSILON6)return x.lerp(e,o,n,i);let c=Math.acos(s);return Wn=x.multiplyByScalar(e,Math.sin((1-n)*c),Wn),Vn=x.multiplyByScalar(o,Math.sin(n*c),Vn),i=x.add(Wn,Vn,i),x.multiplyByScalar(i,1/Math.sin(c),i)};x.log=function(e,t){w.typeOf.object("quaternion",e),w.typeOf.object("result",t);let n=J.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),f.multiplyByScalar(e,i,t)};x.exp=function(e,t){w.typeOf.object("cartesian",e),w.typeOf.object("result",t);let n=f.magnitude(e),i=0;return n!==0&&(i=Math.sin(n)/n),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=Math.cos(n),t};var Wi=new f,Vi=new f,bt=new x,at=new x;x.computeInnerQuadrangle=function(e,t,n,i){w.typeOf.object("q0",e),w.typeOf.object("q1",t),w.typeOf.object("q2",n),w.typeOf.object("result",i);let s=x.conjugate(t,bt);x.multiply(s,n,at);let o=x.log(at,Wi);x.multiply(s,e,at);let c=x.log(at,Vi);return f.add(o,c,o),f.multiplyByScalar(o,.25,o),f.negate(o,o),x.exp(o,bt),x.multiply(t,bt,i)};x.squad=function(e,t,n,i,s,o){w.typeOf.object("q0",e),w.typeOf.object("q1",t),w.typeOf.object("s0",n),w.typeOf.object("s1",i),w.typeOf.number("t",s),w.typeOf.object("result",o);let c=x.slerp(e,t,s,bt),u=x.slerp(n,i,s,at);return x.slerp(c,u,2*s*(1-s),o)};var Hi=new x,ao=1.9011074535173003,tn=gt.supportsTypedArrays()?new Float32Array(8):[],nn=gt.supportsTypedArrays()?new Float32Array(8):[],Te=gt.supportsTypedArrays()?new Float32Array(8):[],Ie=gt.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;tn[e]=1/(t*n),nn[e]=t/n}tn[7]=ao/(8*17);nn[7]=ao*8/17;x.fastSlerp=function(e,t,n,i){w.typeOf.object("start",e),w.typeOf.object("end",t),w.typeOf.number("t",n),w.typeOf.object("result",i);let s=x.dot(e,t),o;s>=0?o=1:(o=-1,s=-s);let c=s-1,u=1-n,p=n*n,b=u*u;for(let A=7;A>=0;--A)Te[A]=(tn[A]*p-nn[A])*c,Ie[A]=(tn[A]*b-nn[A])*c;let g=o*n*(1+Te[0]*(1+Te[1]*(1+Te[2]*(1+Te[3]*(1+Te[4]*(1+Te[5]*(1+Te[6]*(1+Te[7])))))))),y=u*(1+Ie[0]*(1+Ie[1]*(1+Ie[2]*(1+Ie[3]*(1+Ie[4]*(1+Ie[5]*(1+Ie[6]*(1+Ie[7])))))))),S=x.multiplyByScalar(e,y,Hi);return x.multiplyByScalar(t,g,i),x.add(S,i,i)};x.fastSquad=function(e,t,n,i,s,o){w.typeOf.object("q0",e),w.typeOf.object("q1",t),w.typeOf.object("s0",n),w.typeOf.object("s1",i),w.typeOf.number("t",s),w.typeOf.object("result",o);let c=x.fastSlerp(e,t,s,bt),u=x.fastSlerp(n,i,s,at);return x.fastSlerp(c,u,2*s*(1-s),o)};x.equals=function(e,t){return e===t||d(e)&&d(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};x.equalsEpsilon=function(e,t,n){return n=O(n,0),e===t||d(e)&&d(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};x.ZERO=Object.freeze(new x(0,0,0,0));x.IDENTITY=Object.freeze(new x(0,0,0,1));x.prototype.clone=function(e){return x.clone(this,e)};x.prototype.equals=function(e){return x.equals(this,e)};x.prototype.equalsEpsilon=function(e,t){return x.equalsEpsilon(this,e,t)};x.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Xe=x;var $={},Hn={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},ct={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Yn={},we={east:new f,north:new f,up:new f,west:new f,south:new f,down:new f},je=new f,Ne=new f,Be=new f;$.localFrameToFixedFrameGenerator=function(e,t){if(!Hn.hasOwnProperty(e)||!Hn[e].hasOwnProperty(t))throw new R("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=Hn[e][t],i,s=e+t;return d(Yn[s])?i=Yn[s]:(i=function(o,c,u){if(!d(o))throw new R("origin is required.");if(d(u)||(u=new L),f.equalsEpsilon(o,f.ZERO,J.EPSILON14))f.unpack(ct[e],0,je),f.unpack(ct[t],0,Ne),f.unpack(ct[n],0,Be);else if(J.equalsEpsilon(o.x,0,J.EPSILON14)&&J.equalsEpsilon(o.y,0,J.EPSILON14)){let p=J.sign(o.z);f.unpack(ct[e],0,je),e!=="east"&&e!=="west"&&f.multiplyByScalar(je,p,je),f.unpack(ct[t],0,Ne),t!=="east"&&t!=="west"&&f.multiplyByScalar(Ne,p,Ne),f.unpack(ct[n],0,Be),n!=="east"&&n!=="west"&&f.multiplyByScalar(Be,p,Be)}else{c=O(c,ze.WGS84),c.geodeticSurfaceNormal(o,we.up);let p=we.up,b=we.east;b.x=-o.y,b.y=o.x,b.z=0,f.normalize(b,we.east),f.cross(p,b,we.north),f.multiplyByScalar(we.up,-1,we.down),f.multiplyByScalar(we.east,-1,we.west),f.multiplyByScalar(we.north,-1,we.south),je=we[e],Ne=we[t],Be=we[n]}return u[0]=je.x,u[1]=je.y,u[2]=je.z,u[3]=0,u[4]=Ne.x,u[5]=Ne.y,u[6]=Ne.z,u[7]=0,u[8]=Be.x,u[9]=Be.y,u[10]=Be.z,u[11]=0,u[12]=o.x,u[13]=o.y,u[14]=o.z,u[15]=1,u},Yn[s]=i),i};$.eastNorthUpToFixedFrame=$.localFrameToFixedFrameGenerator("east","north");$.northEastDownToFixedFrame=$.localFrameToFixedFrameGenerator("north","east");$.northUpEastToFixedFrame=$.localFrameToFixedFrameGenerator("north","up");$.northWestUpToFixedFrame=$.localFrameToFixedFrameGenerator("north","west");var Yi=new Xe,Zi=new f(1,1,1),Ji=new L;$.headingPitchRollToFixedFrame=function(e,t,n,i,s){w.typeOf.object("HeadingPitchRoll",t),i=O(i,$.eastNorthUpToFixedFrame);let o=Xe.fromHeadingPitchRoll(t,Yi),c=L.fromTranslationQuaternionRotationScale(f.ZERO,o,Zi,Ji);return s=i(e,n,s),L.multiply(s,c,s)};var Xi=new L,Gi=new B;$.headingPitchRollQuaternion=function(e,t,n,i,s){w.typeOf.object("HeadingPitchRoll",t);let o=$.headingPitchRollToFixedFrame(e,t,n,i,Xi),c=L.getMatrix3(o,Gi);return Xe.fromRotationMatrix(c,s)};var Ki=new f(1,1,1),es=new f,co=new L,ts=new L,ns=new B,rs=new Xe;$.fixedFrameToHeadingPitchRoll=function(e,t,n,i){w.defined("transform",e),t=O(t,ze.WGS84),n=O(n,$.eastNorthUpToFixedFrame),d(i)||(i=new In);let s=L.getTranslation(e,es);if(f.equals(s,f.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let o=L.inverseTransformation(n(s,t,co),co),c=L.setScale(e,Ki,ts);c=L.setTranslation(c,f.ZERO,c),o=L.multiply(o,c,o);let u=Xe.fromRotationMatrix(L.getMatrix3(o,ns),rs);return u=Xe.normalize(u,u),In.fromQuaternion(u,i)};var os=6*3600+41*60+50.54841,is=8640184812866e-6,ss=.093104,as=-62e-7,cs=11772758384668e-32,us=72921158553e-15,fs=J.TWO_PI/86400,rn=new ue;$.computeTemeToPseudoFixedMatrix=function(e,t){if(!d(e))throw new R("date is required.");rn=ue.addSeconds(e,-ue.computeTaiMinusUtc(e),rn);let n=rn.dayNumber,i=rn.secondsOfDay,s,o=n-2451545;i>=43200?s=(o+.5)/K.DAYS_PER_JULIAN_CENTURY:s=(o-.5)/K.DAYS_PER_JULIAN_CENTURY;let u=(os+s*(is+s*(ss+s*as)))*fs%J.TWO_PI,p=us+cs*(n-24515455e-1),b=(i+K.SECONDS_PER_DAY*.5)%K.SECONDS_PER_DAY,g=u+p*b,y=Math.cos(g),S=Math.sin(g);return d(t)?(t[0]=y,t[1]=-S,t[2]=0,t[3]=S,t[4]=y,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new B(y,S,0,-S,y,0,0,0,1)};$.iau2006XysData=new Vr;$.earthOrientationParameters=Nr.NONE;var Xn=32.184,ls=2451545;$.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+Xn,i=e.stop.dayNumber,s=e.stop.secondsOfDay+Xn;return $.iau2006XysData.preload(t,n,i,s)};$.computeIcrfToFixedMatrix=function(e,t){if(!d(e))throw new R("date is required.");d(t)||(t=new B);let n=$.computeFixedToIcrfMatrix(e,t);if(d(n))return B.transpose(n,t)};var ds=new $t(0,0,0),ps=new ut(0,0,0,0,0,0),Zn=new B,Jn=new B;$.computeFixedToIcrfMatrix=function(e,t){if(!d(e))throw new R("date is required.");d(t)||(t=new B);let n=$.earthOrientationParameters.compute(e,ps);if(!d(n))return;let i=e.dayNumber,s=e.secondsOfDay+Xn,o=$.iau2006XysData.computeXysRadians(i,s,ds);if(!d(o))return;let c=o.x+n.xPoleOffset,u=o.y+n.yPoleOffset,p=1/(1+Math.sqrt(1-c*c-u*u)),b=Zn;b[0]=1-p*c*c,b[3]=-p*c*u,b[6]=c,b[1]=-p*c*u,b[4]=1-p*u*u,b[7]=u,b[2]=-c,b[5]=-u,b[8]=1-p*(c*c+u*u);let g=B.fromRotationZ(-o.s,Jn),y=B.multiply(b,g,Zn),S=e.dayNumber,A=e.secondsOfDay-ue.computeTaiMinusUtc(e)+n.ut1MinusUtc,I=S-2451545,T=A/K.SECONDS_PER_DAY,k=.779057273264+T+.00273781191135448*(I+T);k=k%1*J.TWO_PI;let D=B.fromRotationZ(k,Jn),F=B.multiply(y,D,Zn),z=Math.cos(n.xPoleWander),M=Math.cos(n.yPoleWander),N=Math.sin(n.xPoleWander),Y=Math.sin(n.yPoleWander),oe=i-ls+s/K.SECONDS_PER_DAY;oe/=36525;let ie=-47e-6*oe*J.RADIANS_PER_DEGREE/3600,X=Math.cos(ie),W=Math.sin(ie),Q=Jn;return Q[0]=z*X,Q[1]=z*W,Q[2]=N,Q[3]=-M*W+Y*N*X,Q[4]=M*X+Y*N*W,Q[5]=-Y*z,Q[6]=-Y*W-M*N*X,Q[7]=Y*X-M*N*W,Q[8]=M*z,B.multiply(F,Q,t)};var ms=new xt;$.pointToWindowCoordinates=function(e,t,n,i){return i=$.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};$.pointToGLWindowCoordinates=function(e,t,n,i){if(!d(e))throw new R("modelViewProjectionMatrix is required.");if(!d(t))throw new R("viewportTransformation is required.");if(!d(n))throw new R("point is required.");d(i)||(i=new sn);let s=ms;return L.multiplyByVector(e,xt.fromElements(n.x,n.y,n.z,1,s),s),xt.multiplyByScalar(s,1/s.w,s),L.multiplyByVector(t,s,s),sn.fromCartesian4(s,i)};var hs=new f,ys=new f,gs=new f;$.rotationMatrixFromPositionVelocity=function(e,t,n,i){if(!d(e))throw new R("position is required.");if(!d(t))throw new R("velocity is required.");let s=O(n,ze.WGS84).geodeticSurfaceNormal(e,hs),o=f.cross(t,s,ys);f.equalsEpsilon(o,f.ZERO,J.EPSILON6)&&(o=f.clone(f.UNIT_X,o));let c=f.cross(o,t,gs);return f.normalize(c,c),f.cross(t,c,o),f.negate(o,o),f.normalize(o,o),d(i)||(i=new B),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=o.x,i[4]=o.y,i[5]=o.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var uo=new L(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),fo=new De,lo=new f,ws=new f,bs=new B,Gn=new L,po=new L;$.basisTo2D=function(e,t,n){if(!d(e))throw new R("projection is required.");if(!d(t))throw new R("matrix is required.");if(!d(n))throw new R("result is required.");let i=L.getTranslation(t,ws),s=e.ellipsoid,o=s.cartesianToCartographic(i,fo),c=e.project(o,lo);f.fromElements(c.z,c.x,c.y,c);let u=$.eastNorthUpToFixedFrame(i,s,Gn),p=L.inverseTransformation(u,po),b=L.getMatrix3(t,bs),g=L.multiplyByMatrix3(p,b,n);return L.multiply(uo,g,n),L.setTranslation(n,c,n),n};$.wgs84To2DModelMatrix=function(e,t,n){if(!d(e))throw new R("projection is required.");if(!d(t))throw new R("center is required.");if(!d(n))throw new R("result is required.");let i=e.ellipsoid,s=$.eastNorthUpToFixedFrame(t,i,Gn),o=L.inverseTransformation(s,po),c=i.cartesianToCartographic(t,fo),u=e.project(c,lo);f.fromElements(u.z,u.x,u.y,u);let p=L.fromTranslation(u,Gn);return L.multiply(uo,o,n),L.multiply(p,n,n),n};var nf=$;export{an as a,Et as b,Kn as c,Qs as d,gt as e,Xe as f,Fe as g,Wr as h,nf as i}; diff --git a/libs/cesium/1.111/Workers/chunk-EFCSU2FF.js b/libs/cesium/1.111/Workers/chunk-EFCSU2FF.js new file mode 100644 index 000000000..b4d7d426d --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-EFCSU2FF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-DUBQPPQZ.js";import{a as g}from"./chunk-K36PKEJW.js";import{b as d}from"./chunk-KD2PMTHD.js";import{e as i}from"./chunk-ZUCO5WNM.js";var u=C.EPSILON10;function x(e,r,h,l){if(d.defined("equalsEpsilon",r),!i(e))return;h=g(h,!1);let m=i(l),n=e.length;if(n<2)return e;let f,s=e[0],o,t,p=0,c=-1;for(f=1;f<n;++f)o=e[f],r(s,o,u)?(i(t)||(t=e.slice(0,f),p=f-1,c=0),m&&l.push(f)):(i(t)&&(t.push(o),p=f,m&&(c=l.length)),s=o);return h&&r(e[0],e[n-1],u)&&(m&&(i(t)?l.splice(c,0,p):l.push(n-1)),i(t)?t.length-=1:t=e.slice(0,-1)),i(t)?t:e}var a=x;export{a}; diff --git a/libs/cesium/1.111/Workers/chunk-EMZN2RVW.js b/libs/cesium/1.111/Workers/chunk-EMZN2RVW.js new file mode 100644 index 000000000..084895bd7 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-EMZN2RVW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as K}from"./chunk-JMG4RN2X.js";import{a as L}from"./chunk-AAJ456AA.js";import{b as v,c as J,d as Z}from"./chunk-DV7DPSRL.js";import{b as B,c as k,d as I}from"./chunk-KCIWEUSR.js";import{a as t,b as T,c as F,d}from"./chunk-F33YCXD2.js";import{a as g}from"./chunk-DUBQPPQZ.js";import{a as W}from"./chunk-K36PKEJW.js";import{a as b,b as z}from"./chunk-KD2PMTHD.js";import{e as p}from"./chunk-ZUCO5WNM.js";function m(n,e){this.center=t.clone(W(n,t.ZERO)),this.halfAxes=d.clone(W(e,d.ZERO))}m.packedLength=t.packedLength+d.packedLength;m.pack=function(n,e,c){return z.typeOf.object("value",n),z.defined("array",e),c=W(c,0),t.pack(n.center,e,c),d.pack(n.halfAxes,e,c+t.packedLength),e};m.unpack=function(n,e,c){return z.defined("array",n),e=W(e,0),p(c)||(c=new m),t.unpack(n,e,c.center),d.unpack(n,e+t.packedLength,c.halfAxes),c};var Ct=new t,ut=new t,Pt=new t,xt=new t,yt=new t,At=new t,Nt=new d,Mt={unitary:new d,diagonal:new d};m.fromPoints=function(n,e){if(p(e)||(e=new m),!p(n)||n.length===0)return e.halfAxes=d.ZERO,e.center=t.ZERO,e;let c,h=n.length,r=t.clone(n[0],Ct);for(c=1;c<h;c++)t.add(r,n[c],r);let o=1/h;t.multiplyByScalar(r,o,r);let i=0,C=0,w=0,l=0,u=0,a=0,s;for(c=0;c<h;c++)s=t.subtract(n[c],r,ut),i+=s.x*s.x,C+=s.x*s.y,w+=s.x*s.z,l+=s.y*s.y,u+=s.y*s.z,a+=s.z*s.z;i*=o,C*=o,w*=o,l*=o,u*=o,a*=o;let f=Nt;f[0]=i,f[1]=C,f[2]=w,f[3]=C,f[4]=l,f[5]=u,f[6]=w,f[7]=u,f[8]=a;let A=d.computeEigenDecomposition(f,Mt),M=d.clone(A.unitary,e.halfAxes),x=d.getColumn(M,0,xt),y=d.getColumn(M,1,yt),N=d.getColumn(M,2,At),P=-Number.MAX_VALUE,O=-Number.MAX_VALUE,U=-Number.MAX_VALUE,q=Number.MAX_VALUE,R=Number.MAX_VALUE,j=Number.MAX_VALUE;for(c=0;c<h;c++)s=n[c],P=Math.max(t.dot(x,s),P),O=Math.max(t.dot(y,s),O),U=Math.max(t.dot(N,s),U),q=Math.min(t.dot(x,s),q),R=Math.min(t.dot(y,s),R),j=Math.min(t.dot(N,s),j);x=t.multiplyByScalar(x,.5*(q+P),x),y=t.multiplyByScalar(y,.5*(R+O),y),N=t.multiplyByScalar(N,.5*(j+U),N);let S=t.add(x,y,e.center);t.add(S,N,S);let E=Pt;return E.x=P-q,E.y=O-R,E.z=U-j,t.multiplyByScalar(E,.5,E),d.multiplyByScale(e.halfAxes,E,e.halfAxes),e};var nt=new t,Ot=new t;function Q(n,e,c,h,r,o,i,C,w,l,u){if(!p(r)||!p(o)||!p(i)||!p(C)||!p(w)||!p(l))throw new b("all extents (minimum/maximum X/Y/Z) are required.");p(u)||(u=new m);let a=u.halfAxes;d.setColumn(a,0,e,a),d.setColumn(a,1,c,a),d.setColumn(a,2,h,a);let s=nt;s.x=(r+o)/2,s.y=(i+C)/2,s.z=(w+l)/2;let f=Ot;f.x=(o-r)/2,f.y=(C-i)/2,f.z=(l-w)/2;let A=u.center;return s=d.multiplyByVector(a,s,s),t.add(n,s,A),d.multiplyByScale(a,f,a),u}var $=new T,bt=new t,St=new T,Tt=new T,gt=new T,Et=new T,Rt=new T,Wt=new t,H=new t,zt=new t,tt=new t,It=new t,Lt=new I,Ut=new I,qt=new I,jt=new I,Bt=new I,vt=new t,Vt=new t,_t=new t,Dt=new t,Xt=new I,kt=new t,Zt=new t,Yt=new t,Gt=new L(t.UNIT_X,0);m.fromRectangle=function(n,e,c,h,r){if(!p(n))throw new b("rectangle is required");if(n.width<0||n.width>g.TWO_PI)throw new b("Rectangle width must be between 0 and 2 * pi");if(n.height<0||n.height>g.PI)throw new b("Rectangle height must be between 0 and pi");if(p(h)&&!g.equalsEpsilon(h.radii.x,h.radii.y,g.EPSILON15))throw new b("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");e=W(e,0),c=W(c,0),h=W(h,F.WGS84);let o,i,C,w,l,u,a;if(n.width<=g.PI){let R=k.center(n,$),j=h.cartographicToCartesian(R,bt),S=new K(j,h);a=S.plane;let E=R.longitude,ot=n.south<0&&n.north>0?0:R.latitude,st=T.fromRadians(E,n.north,c,St),V=T.fromRadians(n.west,n.north,c,Tt),it=T.fromRadians(n.west,ot,c,gt),_=T.fromRadians(n.west,n.south,c,Et),ht=T.fromRadians(E,n.south,c,Rt),ft=h.cartographicToCartesian(st,Wt),D=h.cartographicToCartesian(V,H),dt=h.cartographicToCartesian(it,zt),X=h.cartographicToCartesian(_,tt),mt=h.cartographicToCartesian(ht,It),wt=S.projectPointToNearestOnPlane(ft,Lt),Y=S.projectPointToNearestOnPlane(D,Ut),lt=S.projectPointToNearestOnPlane(dt,qt),G=S.projectPointToNearestOnPlane(X,jt),pt=S.projectPointToNearestOnPlane(mt,Bt);return o=Math.min(Y.x,lt.x,G.x),i=-o,w=Math.max(Y.y,wt.y),C=Math.min(G.y,pt.y),V.height=_.height=e,D=h.cartographicToCartesian(V,H),X=h.cartographicToCartesian(_,tt),l=Math.min(L.getPointDistance(a,D),L.getPointDistance(a,X)),u=c,Q(S.origin,S.xAxis,S.yAxis,S.zAxis,o,i,C,w,l,u,r)}let s=n.south>0,f=n.north<0,A=s?n.south:f?n.north:0,M=k.center(n,$).longitude,x=t.fromRadians(M,A,c,h,vt);x.z=0;let N=Math.abs(x.x)<g.EPSILON10&&Math.abs(x.y)<g.EPSILON10?t.UNIT_X:t.normalize(x,Vt),P=t.UNIT_Z,O=t.cross(N,P,_t);a=L.fromPointNormal(x,N,Gt);let U=t.fromRadians(M+g.PI_OVER_TWO,A,c,h,Dt);i=t.dot(L.projectPointOntoPlane(a,U,Xt),O),o=-i,w=t.fromRadians(0,n.north,f?e:c,h,kt).z,C=t.fromRadians(0,n.south,s?e:c,h,Zt).z;let q=t.fromRadians(n.east,A,c,h,Yt);return l=L.getPointDistance(a,q),u=0,Q(x,O,P,N,o,i,C,w,l,u,r)};m.fromTransformation=function(n,e){return z.typeOf.object("transformation",n),p(e)||(e=new m),e.center=B.getTranslation(n,e.center),e.halfAxes=B.getMatrix3(n,e.halfAxes),e.halfAxes=d.multiplyByScalar(e.halfAxes,.5,e.halfAxes),e};m.clone=function(n,e){if(p(n))return p(e)?(t.clone(n.center,e.center),d.clone(n.halfAxes,e.halfAxes),e):new m(n.center,n.halfAxes)};m.intersectPlane=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("plane is required.");let c=n.center,h=e.normal,r=n.halfAxes,o=h.x,i=h.y,C=h.z,w=Math.abs(o*r[d.COLUMN0ROW0]+i*r[d.COLUMN0ROW1]+C*r[d.COLUMN0ROW2])+Math.abs(o*r[d.COLUMN1ROW0]+i*r[d.COLUMN1ROW1]+C*r[d.COLUMN1ROW2])+Math.abs(o*r[d.COLUMN2ROW0]+i*r[d.COLUMN2ROW1]+C*r[d.COLUMN2ROW2]),l=t.dot(h,c)+e.distance;return l<=-w?v.OUTSIDE:l>=w?v.INSIDE:v.INTERSECTING};var at=new t,ct=new t,rt=new t,Ft=new t,et=new t,Jt=new t;m.distanceSquaredTo=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("cartesian is required.");let c=t.subtract(e,n.center,nt),h=n.halfAxes,r=d.getColumn(h,0,at),o=d.getColumn(h,1,ct),i=d.getColumn(h,2,rt),C=t.magnitude(r),w=t.magnitude(o),l=t.magnitude(i),u=!0,a=!0,s=!0;C>0?t.divideByScalar(r,C,r):u=!1,w>0?t.divideByScalar(o,w,o):a=!1,l>0?t.divideByScalar(i,l,i):s=!1;let f=!u+!a+!s,A,M,x;if(f===1){let O=r;A=o,M=i,a?s||(O=i,M=r):(O=o,A=r),x=t.cross(A,M,et),O===r?r=x:O===o?o=x:O===i&&(i=x)}else if(f===2){A=r,a?A=o:s&&(A=i);let O=t.UNIT_Y;O.equalsEpsilon(A,g.EPSILON3)&&(O=t.UNIT_X),M=t.cross(A,O,Ft),t.normalize(M,M),x=t.cross(A,M,et),t.normalize(x,x),A===r?(o=M,i=x):A===o?(i=M,r=x):A===i&&(r=M,o=x)}else f===3&&(r=t.UNIT_X,o=t.UNIT_Y,i=t.UNIT_Z);let y=Jt;y.x=t.dot(c,r),y.y=t.dot(c,o),y.z=t.dot(c,i);let N=0,P;return y.x<-C?(P=y.x+C,N+=P*P):y.x>C&&(P=y.x-C,N+=P*P),y.y<-w?(P=y.y+w,N+=P*P):y.y>w&&(P=y.y-w,N+=P*P),y.z<-l?(P=y.z+l,N+=P*P):y.z>l&&(P=y.z-l,N+=P*P),N};var Kt=new t,Qt=new t;m.computePlaneDistances=function(n,e,c,h){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("position is required.");if(!p(c))throw new b("direction is required.");p(h)||(h=new J);let r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=n.center,C=n.halfAxes,w=d.getColumn(C,0,at),l=d.getColumn(C,1,ct),u=d.getColumn(C,2,rt),a=t.add(w,l,Kt);t.add(a,u,a),t.add(a,i,a);let s=t.subtract(a,e,Qt),f=t.dot(c,s);return r=Math.min(f,r),o=Math.max(f,o),t.add(i,w,a),t.add(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.add(i,w,a),t.subtract(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.add(i,w,a),t.subtract(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.add(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.add(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.subtract(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.subtract(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),h.start=r,h.stop=o,h};var $t=new t,Ht=new t,te=new t;m.computeCorners=function(n,e){z.typeOf.object("box",n),p(e)||(e=[new t,new t,new t,new t,new t,new t,new t,new t]);let c=n.center,h=n.halfAxes,r=d.getColumn(h,0,$t),o=d.getColumn(h,1,Ht),i=d.getColumn(h,2,te);return t.clone(c,e[0]),t.subtract(e[0],r,e[0]),t.subtract(e[0],o,e[0]),t.subtract(e[0],i,e[0]),t.clone(c,e[1]),t.subtract(e[1],r,e[1]),t.subtract(e[1],o,e[1]),t.add(e[1],i,e[1]),t.clone(c,e[2]),t.subtract(e[2],r,e[2]),t.add(e[2],o,e[2]),t.subtract(e[2],i,e[2]),t.clone(c,e[3]),t.subtract(e[3],r,e[3]),t.add(e[3],o,e[3]),t.add(e[3],i,e[3]),t.clone(c,e[4]),t.add(e[4],r,e[4]),t.subtract(e[4],o,e[4]),t.subtract(e[4],i,e[4]),t.clone(c,e[5]),t.add(e[5],r,e[5]),t.subtract(e[5],o,e[5]),t.add(e[5],i,e[5]),t.clone(c,e[6]),t.add(e[6],r,e[6]),t.add(e[6],o,e[6]),t.subtract(e[6],i,e[6]),t.clone(c,e[7]),t.add(e[7],r,e[7]),t.add(e[7],o,e[7]),t.add(e[7],i,e[7]),e};var ee=new d;m.computeTransformation=function(n,e){z.typeOf.object("box",n),p(e)||(e=new B);let c=n.center,h=d.multiplyByUniformScale(n.halfAxes,2,ee);return B.fromRotationTranslation(h,c,e)};var ne=new Z;m.isOccluded=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("occluder is required.");let c=Z.fromOrientedBoundingBox(n,ne);return!e.isBoundingSphereVisible(c)};m.prototype.intersectPlane=function(n){return m.intersectPlane(this,n)};m.prototype.distanceSquaredTo=function(n){return m.distanceSquaredTo(this,n)};m.prototype.computePlaneDistances=function(n,e,c){return m.computePlaneDistances(this,n,e,c)};m.prototype.computeCorners=function(n){return m.computeCorners(this,n)};m.prototype.computeTransformation=function(n){return m.computeTransformation(this,n)};m.prototype.isOccluded=function(n){return m.isOccluded(this,n)};m.equals=function(n,e){return n===e||p(n)&&p(e)&&t.equals(n.center,e.center)&&d.equals(n.halfAxes,e.halfAxes)};m.prototype.clone=function(n){return m.clone(this,n)};m.prototype.equals=function(n){return m.equals(this,n)};var ye=m;export{ye as a}; diff --git a/libs/cesium/1.111/Workers/chunk-ENWPNENP.js b/libs/cesium/1.111/Workers/chunk-ENWPNENP.js new file mode 100644 index 000000000..d5600b99a --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-ENWPNENP.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as h}from"./chunk-EMZN2RVW.js";import{d as y}from"./chunk-KCIWEUSR.js";import{a as n,d as a}from"./chunk-F33YCXD2.js";import{b as f}from"./chunk-KD2PMTHD.js";var x={},b=new n,P=new n,B=new n,M=new n,w=new h;x.validOutline=function(i){f.defined("positions",i);let o=h.fromPoints(i,w).halfAxes,e=a.getColumn(o,0,P),r=a.getColumn(o,1,B),t=a.getColumn(o,2,M),u=n.magnitude(e),s=n.magnitude(r),l=n.magnitude(t);return!(u===0&&(s===0||l===0)||s===0&&l===0)};x.computeProjectTo2DArguments=function(i,c,o,e){f.defined("positions",i),f.defined("centerResult",c),f.defined("planeAxis1Result",o),f.defined("planeAxis2Result",e);let r=h.fromPoints(i,w),t=r.halfAxes,u=a.getColumn(t,0,P),s=a.getColumn(t,1,B),l=a.getColumn(t,2,M),A=n.magnitude(u),d=n.magnitude(s),g=n.magnitude(l),m=Math.min(A,d,g);if(A===0&&(d===0||g===0)||d===0&&g===0)return!1;let p,C;return(m===d||m===g)&&(p=u),m===A?p=s:m===g&&(C=s),(m===A||m===d)&&(C=l),n.normalize(p,o),n.normalize(C,e),n.clone(r.center,c),!0};function z(i,c,o,e,r){let t=n.subtract(i,c,b),u=n.dot(o,t),s=n.dot(e,t);return y.fromElements(u,s,r)}x.createProjectPointsTo2DFunction=function(i,c,o){return function(e){let r=new Array(e.length);for(let t=0;t<e.length;t++)r[t]=z(e[t],i,c,o);return r}};x.createProjectPointTo2DFunction=function(i,c,o){return function(e,r){return z(e,i,c,o,r)}};var O=x;export{O as a}; diff --git a/libs/cesium/1.111/Workers/chunk-F33YCXD2.js b/libs/cesium/1.111/Workers/chunk-F33YCXD2.js new file mode 100644 index 000000000..e64838579 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-F33YCXD2.js @@ -0,0 +1,28 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as z}from"./chunk-DUBQPPQZ.js";import{a as u}from"./chunk-K36PKEJW.js";import{a as r,b as c}from"./chunk-KD2PMTHD.js";import{e as h}from"./chunk-ZUCO5WNM.js";function f(n,o,e){this.x=u(n,0),this.y=u(o,0),this.z=u(e,0)}f.fromSpherical=function(n,o){c.typeOf.object("spherical",n),h(o)||(o=new f);let e=n.clock,t=n.cone,i=u(n.magnitude,1),y=i*Math.sin(t);return o.x=y*Math.cos(e),o.y=y*Math.sin(e),o.z=i*Math.cos(t),o};f.fromElements=function(n,o,e,t){return h(t)?(t.x=n,t.y=o,t.z=e,t):new f(n,o,e)};f.clone=function(n,o){if(h(n))return h(o)?(o.x=n.x,o.y=n.y,o.z=n.z,o):new f(n.x,n.y,n.z)};f.fromCartesian4=f.clone;f.packedLength=3;f.pack=function(n,o,e){return c.typeOf.object("value",n),c.defined("array",o),e=u(e,0),o[e++]=n.x,o[e++]=n.y,o[e]=n.z,o};f.unpack=function(n,o,e){return c.defined("array",n),o=u(o,0),h(e)||(e=new f),e.x=n[o++],e.y=n[o++],e.z=n[o],e};f.packArray=function(n,o){c.defined("array",n);let e=n.length,t=e*3;if(!h(o))o=new Array(t);else{if(!Array.isArray(o)&&o.length!==t)throw new r("If result is a typed array, it must have exactly array.length * 3 elements");o.length!==t&&(o.length=t)}for(let i=0;i<e;++i)f.pack(n[i],o,i*3);return o};f.unpackArray=function(n,o){if(c.defined("array",n),c.typeOf.number.greaterThanOrEquals("array.length",n.length,3),n.length%3!==0)throw new r("array length must be a multiple of 3.");let e=n.length;h(o)?o.length=e/3:o=new Array(e/3);for(let t=0;t<e;t+=3){let i=t/3;o[i]=f.unpack(n,t,o[i])}return o};f.fromArray=f.unpack;f.maximumComponent=function(n){return c.typeOf.object("cartesian",n),Math.max(n.x,n.y,n.z)};f.minimumComponent=function(n){return c.typeOf.object("cartesian",n),Math.min(n.x,n.y,n.z)};f.minimumByComponent=function(n,o,e){return c.typeOf.object("first",n),c.typeOf.object("second",o),c.typeOf.object("result",e),e.x=Math.min(n.x,o.x),e.y=Math.min(n.y,o.y),e.z=Math.min(n.z,o.z),e};f.maximumByComponent=function(n,o,e){return c.typeOf.object("first",n),c.typeOf.object("second",o),c.typeOf.object("result",e),e.x=Math.max(n.x,o.x),e.y=Math.max(n.y,o.y),e.z=Math.max(n.z,o.z),e};f.clamp=function(n,o,e,t){c.typeOf.object("value",n),c.typeOf.object("min",o),c.typeOf.object("max",e),c.typeOf.object("result",t);let i=z.clamp(n.x,o.x,e.x),y=z.clamp(n.y,o.y,e.y),d=z.clamp(n.z,o.z,e.z);return t.x=i,t.y=y,t.z=d,t};f.magnitudeSquared=function(n){return c.typeOf.object("cartesian",n),n.x*n.x+n.y*n.y+n.z*n.z};f.magnitude=function(n){return Math.sqrt(f.magnitudeSquared(n))};var P=new f;f.distance=function(n,o){return c.typeOf.object("left",n),c.typeOf.object("right",o),f.subtract(n,o,P),f.magnitude(P)};f.distanceSquared=function(n,o){return c.typeOf.object("left",n),c.typeOf.object("right",o),f.subtract(n,o,P),f.magnitudeSquared(P)};f.normalize=function(n,o){c.typeOf.object("cartesian",n),c.typeOf.object("result",o);let e=f.magnitude(n);if(o.x=n.x/e,o.y=n.y/e,o.z=n.z/e,isNaN(o.x)||isNaN(o.y)||isNaN(o.z))throw new r("normalized result is not a number");return o};f.dot=function(n,o){return c.typeOf.object("left",n),c.typeOf.object("right",o),n.x*o.x+n.y*o.y+n.z*o.z};f.multiplyComponents=function(n,o,e){return c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e),e.x=n.x*o.x,e.y=n.y*o.y,e.z=n.z*o.z,e};f.divideComponents=function(n,o,e){return c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e),e.x=n.x/o.x,e.y=n.y/o.y,e.z=n.z/o.z,e};f.add=function(n,o,e){return c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e),e.x=n.x+o.x,e.y=n.y+o.y,e.z=n.z+o.z,e};f.subtract=function(n,o,e){return c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e),e.x=n.x-o.x,e.y=n.y-o.y,e.z=n.z-o.z,e};f.multiplyByScalar=function(n,o,e){return c.typeOf.object("cartesian",n),c.typeOf.number("scalar",o),c.typeOf.object("result",e),e.x=n.x*o,e.y=n.y*o,e.z=n.z*o,e};f.divideByScalar=function(n,o,e){return c.typeOf.object("cartesian",n),c.typeOf.number("scalar",o),c.typeOf.object("result",e),e.x=n.x/o,e.y=n.y/o,e.z=n.z/o,e};f.negate=function(n,o){return c.typeOf.object("cartesian",n),c.typeOf.object("result",o),o.x=-n.x,o.y=-n.y,o.z=-n.z,o};f.abs=function(n,o){return c.typeOf.object("cartesian",n),c.typeOf.object("result",o),o.x=Math.abs(n.x),o.y=Math.abs(n.y),o.z=Math.abs(n.z),o};var nn=new f;f.lerp=function(n,o,e,t){return c.typeOf.object("start",n),c.typeOf.object("end",o),c.typeOf.number("t",e),c.typeOf.object("result",t),f.multiplyByScalar(o,e,nn),t=f.multiplyByScalar(n,1-e,t),f.add(nn,t,t)};var D=new f,G=new f;f.angleBetween=function(n,o){c.typeOf.object("left",n),c.typeOf.object("right",o),f.normalize(n,D),f.normalize(o,G);let e=f.dot(D,G),t=f.magnitude(f.cross(D,G,D));return Math.atan2(t,e)};var yn=new f;f.mostOrthogonalAxis=function(n,o){c.typeOf.object("cartesian",n),c.typeOf.object("result",o);let e=f.normalize(n,yn);return f.abs(e,e),e.x<=e.y?e.x<=e.z?o=f.clone(f.UNIT_X,o):o=f.clone(f.UNIT_Z,o):e.y<=e.z?o=f.clone(f.UNIT_Y,o):o=f.clone(f.UNIT_Z,o),o};f.projectVector=function(n,o,e){c.defined("a",n),c.defined("b",o),c.defined("result",e);let t=f.dot(n,o)/f.dot(o,o);return f.multiplyByScalar(o,t,e)};f.equals=function(n,o){return n===o||h(n)&&h(o)&&n.x===o.x&&n.y===o.y&&n.z===o.z};f.equalsArray=function(n,o,e){return n.x===o[e]&&n.y===o[e+1]&&n.z===o[e+2]};f.equalsEpsilon=function(n,o,e,t){return n===o||h(n)&&h(o)&&z.equalsEpsilon(n.x,o.x,e,t)&&z.equalsEpsilon(n.y,o.y,e,t)&&z.equalsEpsilon(n.z,o.z,e,t)};f.cross=function(n,o,e){c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e);let t=n.x,i=n.y,y=n.z,d=o.x,a=o.y,m=o.z,b=i*m-y*a,j=y*d-t*m,S=t*a-i*d;return e.x=b,e.y=j,e.z=S,e};f.midpoint=function(n,o,e){return c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e),e.x=(n.x+o.x)*.5,e.y=(n.y+o.y)*.5,e.z=(n.z+o.z)*.5,e};f.fromDegrees=function(n,o,e,t,i){return c.typeOf.number("longitude",n),c.typeOf.number("latitude",o),n=z.toRadians(n),o=z.toRadians(o),f.fromRadians(n,o,e,t,i)};var g=new f,Z=new f,dn=new f(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);f.fromRadians=function(n,o,e,t,i){c.typeOf.number("longitude",n),c.typeOf.number("latitude",o),e=u(e,0);let y=h(t)?t.radiiSquared:dn,d=Math.cos(o);g.x=d*Math.cos(n),g.y=d*Math.sin(n),g.z=Math.sin(o),g=f.normalize(g,g),f.multiplyComponents(y,g,Z);let a=Math.sqrt(f.dot(g,Z));return Z=f.divideByScalar(Z,a,Z),g=f.multiplyByScalar(g,e,g),h(i)||(i=new f),f.add(Z,g,i)};f.fromDegreesArray=function(n,o,e){if(c.defined("coordinates",n),n.length<2||n.length%2!==0)throw new r("the number of coordinates must be a multiple of 2 and at least 2");let t=n.length;h(e)?e.length=t/2:e=new Array(t/2);for(let i=0;i<t;i+=2){let y=n[i],d=n[i+1],a=i/2;e[a]=f.fromDegrees(y,d,0,o,e[a])}return e};f.fromRadiansArray=function(n,o,e){if(c.defined("coordinates",n),n.length<2||n.length%2!==0)throw new r("the number of coordinates must be a multiple of 2 and at least 2");let t=n.length;h(e)?e.length=t/2:e=new Array(t/2);for(let i=0;i<t;i+=2){let y=n[i],d=n[i+1],a=i/2;e[a]=f.fromRadians(y,d,0,o,e[a])}return e};f.fromDegreesArrayHeights=function(n,o,e){if(c.defined("coordinates",n),n.length<3||n.length%3!==0)throw new r("the number of coordinates must be a multiple of 3 and at least 3");let t=n.length;h(e)?e.length=t/3:e=new Array(t/3);for(let i=0;i<t;i+=3){let y=n[i],d=n[i+1],a=n[i+2],m=i/3;e[m]=f.fromDegrees(y,d,a,o,e[m])}return e};f.fromRadiansArrayHeights=function(n,o,e){if(c.defined("coordinates",n),n.length<3||n.length%3!==0)throw new r("the number of coordinates must be a multiple of 3 and at least 3");let t=n.length;h(e)?e.length=t/3:e=new Array(t/3);for(let i=0;i<t;i+=3){let y=n[i],d=n[i+1],a=n[i+2],m=i/3;e[m]=f.fromRadians(y,d,a,o,e[m])}return e};f.ZERO=Object.freeze(new f(0,0,0));f.ONE=Object.freeze(new f(1,1,1));f.UNIT_X=Object.freeze(new f(1,0,0));f.UNIT_Y=Object.freeze(new f(0,1,0));f.UNIT_Z=Object.freeze(new f(0,0,1));f.prototype.clone=function(n){return f.clone(this,n)};f.prototype.equals=function(n){return f.equals(this,n)};f.prototype.equalsEpsilon=function(n,o,e){return f.equalsEpsilon(this,n,o,e)};f.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var O=f;var an=new O,On=new O;function hn(n,o,e,t,i){if(!h(n))throw new r("cartesian is required.");if(!h(o))throw new r("oneOverRadii is required.");if(!h(e))throw new r("oneOverRadiiSquared is required.");if(!h(t))throw new r("centerToleranceSquared is required.");let y=n.x,d=n.y,a=n.z,m=o.x,b=o.y,j=o.z,S=y*y*m*m,M=d*d*b*b,q=a*a*j*j,_=S+M+q,T=Math.sqrt(1/_),E=O.multiplyByScalar(n,T,an);if(_<t)return isFinite(T)?O.clone(E,i):void 0;let s=e.x,N=e.y,A=e.z,C=On;C.x=E.x*s*2,C.y=E.y*N*2,C.z=E.z*A*2;let B=(1-T)*O.magnitude(n)/(.5*O.magnitude(C)),K=0,$,Q,L,k,U,W,I,F,J,x,l;do{B-=K,L=1/(1+B*s),k=1/(1+B*N),U=1/(1+B*A),W=L*L,I=k*k,F=U*U,J=W*L,x=I*k,l=F*U,$=S*W+M*I+q*F-1,Q=S*J*s+M*x*N+q*l*A;let pn=-2*Q;K=$/pn}while(Math.abs($)>z.EPSILON12);return h(i)?(i.x=y*L,i.y=d*k,i.z=a*U,i):new O(y*L,d*k,a*U)}var X=hn;function R(n,o,e){this.longitude=u(n,0),this.latitude=u(o,0),this.height=u(e,0)}R.fromRadians=function(n,o,e,t){return c.typeOf.number("longitude",n),c.typeOf.number("latitude",o),e=u(e,0),h(t)?(t.longitude=n,t.latitude=o,t.height=e,t):new R(n,o,e)};R.fromDegrees=function(n,o,e,t){return c.typeOf.number("longitude",n),c.typeOf.number("latitude",o),n=z.toRadians(n),o=z.toRadians(o),R.fromRadians(n,o,e,t)};var mn=new O,bn=new O,un=new O,wn=new O(1/6378137,1/6378137,1/6356752314245179e-9),jn=new O(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),zn=z.EPSILON1;R.fromCartesian=function(n,o,e){let t=h(o)?o.oneOverRadii:wn,i=h(o)?o.oneOverRadiiSquared:jn,y=h(o)?o._centerToleranceSquared:zn,d=X(n,t,i,y,bn);if(!h(d))return;let a=O.multiplyComponents(d,i,mn);a=O.normalize(a,a);let m=O.subtract(n,d,un),b=Math.atan2(a.y,a.x),j=Math.asin(a.z),S=z.sign(O.dot(m,n))*O.magnitude(m);return h(e)?(e.longitude=b,e.latitude=j,e.height=S,e):new R(b,j,S)};R.toCartesian=function(n,o,e){return c.defined("cartographic",n),O.fromRadians(n.longitude,n.latitude,n.height,o,e)};R.clone=function(n,o){if(h(n))return h(o)?(o.longitude=n.longitude,o.latitude=n.latitude,o.height=n.height,o):new R(n.longitude,n.latitude,n.height)};R.equals=function(n,o){return n===o||h(n)&&h(o)&&n.longitude===o.longitude&&n.latitude===o.latitude&&n.height===o.height};R.equalsEpsilon=function(n,o,e){return e=u(e,0),n===o||h(n)&&h(o)&&Math.abs(n.longitude-o.longitude)<=e&&Math.abs(n.latitude-o.latitude)<=e&&Math.abs(n.height-o.height)<=e};R.ZERO=Object.freeze(new R(0,0,0));R.prototype.clone=function(n){return R.clone(this,n)};R.prototype.equals=function(n){return R.equals(this,n)};R.prototype.equalsEpsilon=function(n,o){return R.equalsEpsilon(this,n,o)};R.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var on=R;function tn(n,o,e,t){o=u(o,0),e=u(e,0),t=u(t,0),c.typeOf.number.greaterThanOrEquals("x",o,0),c.typeOf.number.greaterThanOrEquals("y",e,0),c.typeOf.number.greaterThanOrEquals("z",t,0),n._radii=new O(o,e,t),n._radiiSquared=new O(o*o,e*e,t*t),n._radiiToTheFourth=new O(o*o*o*o,e*e*e*e,t*t*t*t),n._oneOverRadii=new O(o===0?0:1/o,e===0?0:1/e,t===0?0:1/t),n._oneOverRadiiSquared=new O(o===0?0:1/(o*o),e===0?0:1/(e*e),t===0?0:1/(t*t)),n._minimumRadius=Math.min(o,e,t),n._maximumRadius=Math.max(o,e,t),n._centerToleranceSquared=z.EPSILON1,n._radiiSquared.z!==0&&(n._squaredXOverSquaredZ=n._radiiSquared.x/n._radiiSquared.z)}function w(n,o,e){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,tn(this,n,o,e)}Object.defineProperties(w.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});w.clone=function(n,o){if(!h(n))return;let e=n._radii;return h(o)?(O.clone(e,o._radii),O.clone(n._radiiSquared,o._radiiSquared),O.clone(n._radiiToTheFourth,o._radiiToTheFourth),O.clone(n._oneOverRadii,o._oneOverRadii),O.clone(n._oneOverRadiiSquared,o._oneOverRadiiSquared),o._minimumRadius=n._minimumRadius,o._maximumRadius=n._maximumRadius,o._centerToleranceSquared=n._centerToleranceSquared,o):new w(e.x,e.y,e.z)};w.fromCartesian3=function(n,o){return h(o)||(o=new w),h(n)&&tn(o,n.x,n.y,n.z),o};w.WGS84=Object.freeze(new w(6378137,6378137,6356752314245179e-9));w.UNIT_SPHERE=Object.freeze(new w(1,1,1));w.MOON=Object.freeze(new w(z.LUNAR_RADIUS,z.LUNAR_RADIUS,z.LUNAR_RADIUS));w.prototype.clone=function(n){return w.clone(this,n)};w.packedLength=O.packedLength;w.pack=function(n,o,e){return c.typeOf.object("value",n),c.defined("array",o),e=u(e,0),O.pack(n._radii,o,e),o};w.unpack=function(n,o,e){c.defined("array",n),o=u(o,0);let t=O.unpack(n,o);return w.fromCartesian3(t,e)};w.prototype.geocentricSurfaceNormal=O.normalize;w.prototype.geodeticSurfaceNormalCartographic=function(n,o){c.typeOf.object("cartographic",n);let e=n.longitude,t=n.latitude,i=Math.cos(t),y=i*Math.cos(e),d=i*Math.sin(e),a=Math.sin(t);return h(o)||(o=new O),o.x=y,o.y=d,o.z=a,O.normalize(o,o)};w.prototype.geodeticSurfaceNormal=function(n,o){if(!O.equalsEpsilon(n,O.ZERO,z.EPSILON14))return h(o)||(o=new O),o=O.multiplyComponents(n,this._oneOverRadiiSquared,o),O.normalize(o,o)};var Sn=new O,Mn=new O;w.prototype.cartographicToCartesian=function(n,o){let e=Sn,t=Mn;this.geodeticSurfaceNormalCartographic(n,e),O.multiplyComponents(this._radiiSquared,e,t);let i=Math.sqrt(O.dot(e,t));return O.divideByScalar(t,i,t),O.multiplyByScalar(e,n.height,e),h(o)||(o=new O),O.add(t,e,o)};w.prototype.cartographicArrayToCartesianArray=function(n,o){c.defined("cartographics",n);let e=n.length;h(o)?o.length=e:o=new Array(e);for(let t=0;t<e;t++)o[t]=this.cartographicToCartesian(n[t],o[t]);return o};var Rn=new O,rn=new O,qn=new O;w.prototype.cartesianToCartographic=function(n,o){let e=this.scaleToGeodeticSurface(n,rn);if(!h(e))return;let t=this.geodeticSurfaceNormal(e,Rn),i=O.subtract(n,e,qn),y=Math.atan2(t.y,t.x),d=Math.asin(t.z),a=z.sign(O.dot(i,n))*O.magnitude(i);return h(o)?(o.longitude=y,o.latitude=d,o.height=a,o):new on(y,d,a)};w.prototype.cartesianArrayToCartographicArray=function(n,o){c.defined("cartesians",n);let e=n.length;h(o)?o.length=e:o=new Array(e);for(let t=0;t<e;++t)o[t]=this.cartesianToCartographic(n[t],o[t]);return o};w.prototype.scaleToGeodeticSurface=function(n,o){return X(n,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,o)};w.prototype.scaleToGeocentricSurface=function(n,o){c.typeOf.object("cartesian",n),h(o)||(o=new O);let e=n.x,t=n.y,i=n.z,y=this._oneOverRadiiSquared,d=1/Math.sqrt(e*e*y.x+t*t*y.y+i*i*y.z);return O.multiplyByScalar(n,d,o)};w.prototype.transformPositionToScaledSpace=function(n,o){return h(o)||(o=new O),O.multiplyComponents(n,this._oneOverRadii,o)};w.prototype.transformPositionFromScaledSpace=function(n,o){return h(o)||(o=new O),O.multiplyComponents(n,this._radii,o)};w.prototype.equals=function(n){return this===n||h(n)&&O.equals(this._radii,n._radii)};w.prototype.toString=function(){return this._radii.toString()};w.prototype.getSurfaceNormalIntersectionWithZAxis=function(n,o,e){if(c.typeOf.object("position",n),!z.equalsEpsilon(this._radii.x,this._radii.y,z.EPSILON15))throw new r("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");c.typeOf.number.greaterThan("Ellipsoid.radii.z",this._radii.z,0),o=u(o,0);let t=this._squaredXOverSquaredZ;if(h(e)||(e=new O),e.x=0,e.y=0,e.z=n.z*(1-t),!(Math.abs(e.z)>=this._radii.z-o))return e};var Tn=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],gn=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function en(n,o,e){c.typeOf.number("a",n),c.typeOf.number("b",o),c.typeOf.func("func",e);let t=.5*(o+n),i=.5*(o-n),y=0;for(let d=0;d<5;d++){let a=i*Tn[d];y+=gn[d]*(e(t+a)+e(t-a))}return y*=i,y}w.prototype.surfaceArea=function(n){c.typeOf.object("rectangle",n);let o=n.west,e=n.east,t=n.south,i=n.north;for(;e<o;)e+=z.TWO_PI;let y=this._radiiSquared,d=y.x,a=y.y,m=y.z,b=d*a;return en(t,i,function(j){let S=Math.cos(j),M=Math.sin(j);return Math.cos(j)*en(o,e,function(q){let _=Math.cos(q),T=Math.sin(q);return Math.sqrt(b*M*M+m*(a*_*_+d*T*T)*S*S)})})};var fo=w;function p(n,o,e,t,i,y,d,a,m){this[0]=u(n,0),this[1]=u(t,0),this[2]=u(d,0),this[3]=u(o,0),this[4]=u(i,0),this[5]=u(a,0),this[6]=u(e,0),this[7]=u(y,0),this[8]=u(m,0)}p.packedLength=9;p.pack=function(n,o,e){return c.typeOf.object("value",n),c.defined("array",o),e=u(e,0),o[e++]=n[0],o[e++]=n[1],o[e++]=n[2],o[e++]=n[3],o[e++]=n[4],o[e++]=n[5],o[e++]=n[6],o[e++]=n[7],o[e++]=n[8],o};p.unpack=function(n,o,e){return c.defined("array",n),o=u(o,0),h(e)||(e=new p),e[0]=n[o++],e[1]=n[o++],e[2]=n[o++],e[3]=n[o++],e[4]=n[o++],e[5]=n[o++],e[6]=n[o++],e[7]=n[o++],e[8]=n[o++],e};p.packArray=function(n,o){c.defined("array",n);let e=n.length,t=e*9;if(!h(o))o=new Array(t);else{if(!Array.isArray(o)&&o.length!==t)throw new r("If result is a typed array, it must have exactly array.length * 9 elements");o.length!==t&&(o.length=t)}for(let i=0;i<e;++i)p.pack(n[i],o,i*9);return o};p.unpackArray=function(n,o){if(c.defined("array",n),c.typeOf.number.greaterThanOrEquals("array.length",n.length,9),n.length%9!==0)throw new r("array length must be a multiple of 9.");let e=n.length;h(o)?o.length=e/9:o=new Array(e/9);for(let t=0;t<e;t+=9){let i=t/9;o[i]=p.unpack(n,t,o[i])}return o};p.clone=function(n,o){if(h(n))return h(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o):new p(n[0],n[3],n[6],n[1],n[4],n[7],n[2],n[5],n[8])};p.fromArray=p.unpack;p.fromColumnMajorArray=function(n,o){return c.defined("values",n),p.clone(n,o)};p.fromRowMajorArray=function(n,o){return c.defined("values",n),h(o)?(o[0]=n[0],o[1]=n[3],o[2]=n[6],o[3]=n[1],o[4]=n[4],o[5]=n[7],o[6]=n[2],o[7]=n[5],o[8]=n[8],o):new p(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8])};p.fromQuaternion=function(n,o){c.typeOf.object("quaternion",n);let e=n.x*n.x,t=n.x*n.y,i=n.x*n.z,y=n.x*n.w,d=n.y*n.y,a=n.y*n.z,m=n.y*n.w,b=n.z*n.z,j=n.z*n.w,S=n.w*n.w,M=e-d-b+S,q=2*(t-j),_=2*(i+m),T=2*(t+j),E=-e+d-b+S,s=2*(a-y),N=2*(i-m),A=2*(a+y),C=-e-d+b+S;return h(o)?(o[0]=M,o[1]=T,o[2]=N,o[3]=q,o[4]=E,o[5]=A,o[6]=_,o[7]=s,o[8]=C,o):new p(M,q,_,T,E,s,N,A,C)};p.fromHeadingPitchRoll=function(n,o){c.typeOf.object("headingPitchRoll",n);let e=Math.cos(-n.pitch),t=Math.cos(-n.heading),i=Math.cos(n.roll),y=Math.sin(-n.pitch),d=Math.sin(-n.heading),a=Math.sin(n.roll),m=e*t,b=-i*d+a*y*t,j=a*d+i*y*t,S=e*d,M=i*t+a*y*d,q=-a*t+i*y*d,_=-y,T=a*e,E=i*e;return h(o)?(o[0]=m,o[1]=S,o[2]=_,o[3]=b,o[4]=M,o[5]=T,o[6]=j,o[7]=q,o[8]=E,o):new p(m,b,j,S,M,q,_,T,E)};p.fromScale=function(n,o){return c.typeOf.object("scale",n),h(o)?(o[0]=n.x,o[1]=0,o[2]=0,o[3]=0,o[4]=n.y,o[5]=0,o[6]=0,o[7]=0,o[8]=n.z,o):new p(n.x,0,0,0,n.y,0,0,0,n.z)};p.fromUniformScale=function(n,o){return c.typeOf.number("scale",n),h(o)?(o[0]=n,o[1]=0,o[2]=0,o[3]=0,o[4]=n,o[5]=0,o[6]=0,o[7]=0,o[8]=n,o):new p(n,0,0,0,n,0,0,0,n)};p.fromCrossProduct=function(n,o){return c.typeOf.object("vector",n),h(o)?(o[0]=0,o[1]=n.z,o[2]=-n.y,o[3]=-n.z,o[4]=0,o[5]=n.x,o[6]=n.y,o[7]=-n.x,o[8]=0,o):new p(0,-n.z,n.y,n.z,0,-n.x,-n.y,n.x,0)};p.fromRotationX=function(n,o){c.typeOf.number("angle",n);let e=Math.cos(n),t=Math.sin(n);return h(o)?(o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=e,o[5]=t,o[6]=0,o[7]=-t,o[8]=e,o):new p(1,0,0,0,e,-t,0,t,e)};p.fromRotationY=function(n,o){c.typeOf.number("angle",n);let e=Math.cos(n),t=Math.sin(n);return h(o)?(o[0]=e,o[1]=0,o[2]=-t,o[3]=0,o[4]=1,o[5]=0,o[6]=t,o[7]=0,o[8]=e,o):new p(e,0,t,0,1,0,-t,0,e)};p.fromRotationZ=function(n,o){c.typeOf.number("angle",n);let e=Math.cos(n),t=Math.sin(n);return h(o)?(o[0]=e,o[1]=t,o[2]=0,o[3]=-t,o[4]=e,o[5]=0,o[6]=0,o[7]=0,o[8]=1,o):new p(e,-t,0,t,e,0,0,0,1)};p.toArray=function(n,o){return c.typeOf.object("matrix",n),h(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o):[n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8]]};p.getElementIndex=function(n,o){return c.typeOf.number.greaterThanOrEquals("row",o,0),c.typeOf.number.lessThanOrEquals("row",o,2),c.typeOf.number.greaterThanOrEquals("column",n,0),c.typeOf.number.lessThanOrEquals("column",n,2),n*3+o};p.getColumn=function(n,o,e){c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",o,0),c.typeOf.number.lessThanOrEquals("index",o,2),c.typeOf.object("result",e);let t=o*3,i=n[t],y=n[t+1],d=n[t+2];return e.x=i,e.y=y,e.z=d,e};p.setColumn=function(n,o,e,t){c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",o,0),c.typeOf.number.lessThanOrEquals("index",o,2),c.typeOf.object("cartesian",e),c.typeOf.object("result",t),t=p.clone(n,t);let i=o*3;return t[i]=e.x,t[i+1]=e.y,t[i+2]=e.z,t};p.getRow=function(n,o,e){c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",o,0),c.typeOf.number.lessThanOrEquals("index",o,2),c.typeOf.object("result",e);let t=n[o],i=n[o+3],y=n[o+6];return e.x=t,e.y=i,e.z=y,e};p.setRow=function(n,o,e,t){return c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",o,0),c.typeOf.number.lessThanOrEquals("index",o,2),c.typeOf.object("cartesian",e),c.typeOf.object("result",t),t=p.clone(n,t),t[o]=e.x,t[o+3]=e.y,t[o+6]=e.z,t};var _n=new O;p.setScale=function(n,o,e){c.typeOf.object("matrix",n),c.typeOf.object("scale",o),c.typeOf.object("result",e);let t=p.getScale(n,_n),i=o.x/t.x,y=o.y/t.y,d=o.z/t.z;return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=n[3]*y,e[4]=n[4]*y,e[5]=n[5]*y,e[6]=n[6]*d,e[7]=n[7]*d,e[8]=n[8]*d,e};var En=new O;p.setUniformScale=function(n,o,e){c.typeOf.object("matrix",n),c.typeOf.number("scale",o),c.typeOf.object("result",e);let t=p.getScale(n,En),i=o/t.x,y=o/t.y,d=o/t.z;return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=n[3]*y,e[4]=n[4]*y,e[5]=n[5]*y,e[6]=n[6]*d,e[7]=n[7]*d,e[8]=n[8]*d,e};var v=new O;p.getScale=function(n,o){return c.typeOf.object("matrix",n),c.typeOf.object("result",o),o.x=O.magnitude(O.fromElements(n[0],n[1],n[2],v)),o.y=O.magnitude(O.fromElements(n[3],n[4],n[5],v)),o.z=O.magnitude(O.fromElements(n[6],n[7],n[8],v)),o};var cn=new O;p.getMaximumScale=function(n){return p.getScale(n,cn),O.maximumComponent(cn)};var Cn=new O;p.setRotation=function(n,o,e){c.typeOf.object("matrix",n),c.typeOf.object("result",e);let t=p.getScale(n,Cn);return e[0]=o[0]*t.x,e[1]=o[1]*t.x,e[2]=o[2]*t.x,e[3]=o[3]*t.y,e[4]=o[4]*t.y,e[5]=o[5]*t.y,e[6]=o[6]*t.z,e[7]=o[7]*t.z,e[8]=o[8]*t.z,e};var sn=new O;p.getRotation=function(n,o){c.typeOf.object("matrix",n),c.typeOf.object("result",o);let e=p.getScale(n,sn);return o[0]=n[0]/e.x,o[1]=n[1]/e.x,o[2]=n[2]/e.x,o[3]=n[3]/e.y,o[4]=n[4]/e.y,o[5]=n[5]/e.y,o[6]=n[6]/e.z,o[7]=n[7]/e.z,o[8]=n[8]/e.z,o};p.multiply=function(n,o,e){c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e);let t=n[0]*o[0]+n[3]*o[1]+n[6]*o[2],i=n[1]*o[0]+n[4]*o[1]+n[7]*o[2],y=n[2]*o[0]+n[5]*o[1]+n[8]*o[2],d=n[0]*o[3]+n[3]*o[4]+n[6]*o[5],a=n[1]*o[3]+n[4]*o[4]+n[7]*o[5],m=n[2]*o[3]+n[5]*o[4]+n[8]*o[5],b=n[0]*o[6]+n[3]*o[7]+n[6]*o[8],j=n[1]*o[6]+n[4]*o[7]+n[7]*o[8],S=n[2]*o[6]+n[5]*o[7]+n[8]*o[8];return e[0]=t,e[1]=i,e[2]=y,e[3]=d,e[4]=a,e[5]=m,e[6]=b,e[7]=j,e[8]=S,e};p.add=function(n,o,e){return c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e),e[0]=n[0]+o[0],e[1]=n[1]+o[1],e[2]=n[2]+o[2],e[3]=n[3]+o[3],e[4]=n[4]+o[4],e[5]=n[5]+o[5],e[6]=n[6]+o[6],e[7]=n[7]+o[7],e[8]=n[8]+o[8],e};p.subtract=function(n,o,e){return c.typeOf.object("left",n),c.typeOf.object("right",o),c.typeOf.object("result",e),e[0]=n[0]-o[0],e[1]=n[1]-o[1],e[2]=n[2]-o[2],e[3]=n[3]-o[3],e[4]=n[4]-o[4],e[5]=n[5]-o[5],e[6]=n[6]-o[6],e[7]=n[7]-o[7],e[8]=n[8]-o[8],e};p.multiplyByVector=function(n,o,e){c.typeOf.object("matrix",n),c.typeOf.object("cartesian",o),c.typeOf.object("result",e);let t=o.x,i=o.y,y=o.z,d=n[0]*t+n[3]*i+n[6]*y,a=n[1]*t+n[4]*i+n[7]*y,m=n[2]*t+n[5]*i+n[8]*y;return e.x=d,e.y=a,e.z=m,e};p.multiplyByScalar=function(n,o,e){return c.typeOf.object("matrix",n),c.typeOf.number("scalar",o),c.typeOf.object("result",e),e[0]=n[0]*o,e[1]=n[1]*o,e[2]=n[2]*o,e[3]=n[3]*o,e[4]=n[4]*o,e[5]=n[5]*o,e[6]=n[6]*o,e[7]=n[7]*o,e[8]=n[8]*o,e};p.multiplyByScale=function(n,o,e){return c.typeOf.object("matrix",n),c.typeOf.object("scale",o),c.typeOf.object("result",e),e[0]=n[0]*o.x,e[1]=n[1]*o.x,e[2]=n[2]*o.x,e[3]=n[3]*o.y,e[4]=n[4]*o.y,e[5]=n[5]*o.y,e[6]=n[6]*o.z,e[7]=n[7]*o.z,e[8]=n[8]*o.z,e};p.multiplyByUniformScale=function(n,o,e){return c.typeOf.object("matrix",n),c.typeOf.number("scale",o),c.typeOf.object("result",e),e[0]=n[0]*o,e[1]=n[1]*o,e[2]=n[2]*o,e[3]=n[3]*o,e[4]=n[4]*o,e[5]=n[5]*o,e[6]=n[6]*o,e[7]=n[7]*o,e[8]=n[8]*o,e};p.negate=function(n,o){return c.typeOf.object("matrix",n),c.typeOf.object("result",o),o[0]=-n[0],o[1]=-n[1],o[2]=-n[2],o[3]=-n[3],o[4]=-n[4],o[5]=-n[5],o[6]=-n[6],o[7]=-n[7],o[8]=-n[8],o};p.transpose=function(n,o){c.typeOf.object("matrix",n),c.typeOf.object("result",o);let e=n[0],t=n[3],i=n[6],y=n[1],d=n[4],a=n[7],m=n[2],b=n[5],j=n[8];return o[0]=e,o[1]=t,o[2]=i,o[3]=y,o[4]=d,o[5]=a,o[6]=m,o[7]=b,o[8]=j,o};function Nn(n){let o=0;for(let e=0;e<9;++e){let t=n[e];o+=t*t}return Math.sqrt(o)}var V=[1,0,0],H=[2,2,1];function An(n){let o=0;for(let e=0;e<3;++e){let t=n[p.getElementIndex(H[e],V[e])];o+=2*t*t}return Math.sqrt(o)}function Ln(n,o){let e=z.EPSILON15,t=0,i=1;for(let b=0;b<3;++b){let j=Math.abs(n[p.getElementIndex(H[b],V[b])]);j>t&&(i=b,t=j)}let y=1,d=0,a=V[i],m=H[i];if(Math.abs(n[p.getElementIndex(m,a)])>e){let b=n[p.getElementIndex(m,m)],j=n[p.getElementIndex(a,a)],S=n[p.getElementIndex(m,a)],M=(b-j)/2/S,q;M<0?q=-1/(-M+Math.sqrt(1+M*M)):q=1/(M+Math.sqrt(1+M*M)),y=1/Math.sqrt(1+q*q),d=q*y}return o=p.clone(p.IDENTITY,o),o[p.getElementIndex(a,a)]=o[p.getElementIndex(m,m)]=y,o[p.getElementIndex(m,a)]=d,o[p.getElementIndex(a,m)]=-d,o}var Y=new p,fn=new p;p.computeEigenDecomposition=function(n,o){c.typeOf.object("matrix",n);let e=z.EPSILON20,t=10,i=0,y=0;h(o)||(o={});let d=o.unitary=p.clone(p.IDENTITY,o.unitary),a=o.diagonal=p.clone(n,o.diagonal),m=e*Nn(a);for(;y<t&&An(a)>m;)Ln(a,Y),p.transpose(Y,fn),p.multiply(a,Y,a),p.multiply(fn,a,a),p.multiply(d,Y,d),++i>2&&(++y,i=0);return o};p.abs=function(n,o){return c.typeOf.object("matrix",n),c.typeOf.object("result",o),o[0]=Math.abs(n[0]),o[1]=Math.abs(n[1]),o[2]=Math.abs(n[2]),o[3]=Math.abs(n[3]),o[4]=Math.abs(n[4]),o[5]=Math.abs(n[5]),o[6]=Math.abs(n[6]),o[7]=Math.abs(n[7]),o[8]=Math.abs(n[8]),o};p.determinant=function(n){c.typeOf.object("matrix",n);let o=n[0],e=n[3],t=n[6],i=n[1],y=n[4],d=n[7],a=n[2],m=n[5],b=n[8];return o*(y*b-m*d)+i*(m*t-e*b)+a*(e*d-y*t)};p.inverse=function(n,o){c.typeOf.object("matrix",n),c.typeOf.object("result",o);let e=n[0],t=n[1],i=n[2],y=n[3],d=n[4],a=n[5],m=n[6],b=n[7],j=n[8],S=p.determinant(n);if(Math.abs(S)<=z.EPSILON15)throw new r("matrix is not invertible");o[0]=d*j-b*a,o[1]=b*i-t*j,o[2]=t*a-d*i,o[3]=m*a-y*j,o[4]=e*j-m*i,o[5]=y*i-e*a,o[6]=y*b-m*d,o[7]=m*t-e*b,o[8]=e*d-y*t;let M=1/S;return p.multiplyByScalar(o,M,o)};var kn=new p;p.inverseTranspose=function(n,o){return c.typeOf.object("matrix",n),c.typeOf.object("result",o),p.inverse(p.transpose(n,kn),o)};p.equals=function(n,o){return n===o||h(n)&&h(o)&&n[0]===o[0]&&n[1]===o[1]&&n[2]===o[2]&&n[3]===o[3]&&n[4]===o[4]&&n[5]===o[5]&&n[6]===o[6]&&n[7]===o[7]&&n[8]===o[8]};p.equalsEpsilon=function(n,o,e){return e=u(e,0),n===o||h(n)&&h(o)&&Math.abs(n[0]-o[0])<=e&&Math.abs(n[1]-o[1])<=e&&Math.abs(n[2]-o[2])<=e&&Math.abs(n[3]-o[3])<=e&&Math.abs(n[4]-o[4])<=e&&Math.abs(n[5]-o[5])<=e&&Math.abs(n[6]-o[6])<=e&&Math.abs(n[7]-o[7])<=e&&Math.abs(n[8]-o[8])<=e};p.IDENTITY=Object.freeze(new p(1,0,0,0,1,0,0,0,1));p.ZERO=Object.freeze(new p(0,0,0,0,0,0,0,0,0));p.COLUMN0ROW0=0;p.COLUMN0ROW1=1;p.COLUMN0ROW2=2;p.COLUMN1ROW0=3;p.COLUMN1ROW1=4;p.COLUMN1ROW2=5;p.COLUMN2ROW0=6;p.COLUMN2ROW1=7;p.COLUMN2ROW2=8;Object.defineProperties(p.prototype,{length:{get:function(){return p.packedLength}}});p.prototype.clone=function(n){return p.clone(this,n)};p.prototype.equals=function(n){return p.equals(this,n)};p.equalsArray=function(n,o,e){return n[0]===o[e]&&n[1]===o[e+1]&&n[2]===o[e+2]&&n[3]===o[e+3]&&n[4]===o[e+4]&&n[5]===o[e+5]&&n[6]===o[e+6]&&n[7]===o[e+7]&&n[8]===o[e+8]};p.prototype.equalsEpsilon=function(n,o){return p.equalsEpsilon(this,n,o)};p.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var uo=p;export{O as a,on as b,fo as c,uo as d}; diff --git a/libs/cesium/1.111/Workers/chunk-FDKE3YW2.js b/libs/cesium/1.111/Workers/chunk-FDKE3YW2.js new file mode 100644 index 000000000..d70cc647f --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-FDKE3YW2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as t}from"./chunk-KCIWEUSR.js";import{a as r}from"./chunk-K36PKEJW.js";import{a as m}from"./chunk-KD2PMTHD.js";import{e as i}from"./chunk-ZUCO5WNM.js";function d(e){if(e=r(e,r.EMPTY_OBJECT),!i(e.geometry))throw new m("options.geometry is required.");this.geometry=e.geometry,this.modelMatrix=t.clone(r(e.modelMatrix,t.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=r(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var s=d;export{s as a}; diff --git a/libs/cesium/1.111/Workers/chunk-J4D4SQY2.js b/libs/cesium/1.111/Workers/chunk-J4D4SQY2.js new file mode 100644 index 000000000..1bc76b133 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-J4D4SQY2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as n}from"./chunk-K36PKEJW.js";import{a as i}from"./chunk-KD2PMTHD.js";import{e as r}from"./chunk-ZUCO5WNM.js";var o={};function e(t,l){if(!r(t))throw new i("identifier is required.");r(o[t])||(o[t]=!0,console.warn(n(l,t)))}e.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";e.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";e.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";e.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var h=e;export{h as a}; diff --git a/libs/cesium/1.111/Workers/chunk-JMG4RN2X.js b/libs/cesium/1.111/Workers/chunk-JMG4RN2X.js new file mode 100644 index 000000000..66f39833a --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-JMG4RN2X.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P}from"./chunk-PG5ZS3T4.js";import{a as j,b as d}from"./chunk-OH4CN3UY.js";import{a as O}from"./chunk-AAJ456AA.js";import{i as u}from"./chunk-DV7DPSRL.js";import{a as A,b as m,d as l}from"./chunk-KCIWEUSR.js";import{a as e,c as _}from"./chunk-F33YCXD2.js";import{a as g}from"./chunk-K36PKEJW.js";import{a as y,b as p}from"./chunk-KD2PMTHD.js";import{e as r}from"./chunk-ZUCO5WNM.js";var x=new A;function s(n,t){if(p.defined("origin",n),t=g(t,_.WGS84),n=t.scaleToGeodeticSurface(n),!r(n))throw new y("origin must not be at the center of the ellipsoid.");let o=u.eastNorthUpToFixedFrame(n,t);this._ellipsoid=t,this._origin=n,this._xAxis=e.fromCartesian4(m.getColumn(o,0,x)),this._yAxis=e.fromCartesian4(m.getColumn(o,1,x));let i=e.fromCartesian4(m.getColumn(o,2,x));this._plane=O.fromPointNormal(n,i)}Object.defineProperties(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var C=new P;s.fromPoints=function(n,t){p.defined("cartesians",n);let o=P.fromPoints(n,C);return new s(o.center,t)};var w=new j,h=new e;s.prototype.projectPointOntoPlane=function(n,t){p.defined("cartesian",n);let o=w;o.origin=n,e.normalize(n,o.direction);let i=d.rayPlane(o,this._plane,h);if(r(i)||(e.negate(o.direction,o.direction),i=d.rayPlane(o,this._plane,h)),r(i)){let c=e.subtract(i,this._origin,i),a=e.dot(this._xAxis,c),f=e.dot(this._yAxis,c);return r(t)?(t.x=a,t.y=f,t):new l(a,f)}};s.prototype.projectPointsOntoPlane=function(n,t){p.defined("cartesians",n),r(t)||(t=[]);let o=0,i=n.length;for(let c=0;c<i;c++){let a=this.projectPointOntoPlane(n[c],t[o]);r(a)&&(t[o]=a,o++)}return t.length=o,t};s.prototype.projectPointToNearestOnPlane=function(n,t){p.defined("cartesian",n),r(t)||(t=new l);let o=w;o.origin=n,e.clone(this._plane.normal,o.direction);let i=d.rayPlane(o,this._plane,h);r(i)||(e.negate(o.direction,o.direction),i=d.rayPlane(o,this._plane,h));let c=e.subtract(i,this._origin,i),a=e.dot(this._xAxis,c),f=e.dot(this._yAxis,c);return t.x=a,t.y=f,t};s.prototype.projectPointsToNearestOnPlane=function(n,t){p.defined("cartesians",n),r(t)||(t=[]);let o=n.length;t.length=o;for(let i=0;i<o;i++)t[i]=this.projectPointToNearestOnPlane(n[i],t[i]);return t};var T=new e;s.prototype.projectPointOntoEllipsoid=function(n,t){p.defined("cartesian",n),r(t)||(t=new e);let o=this._ellipsoid,i=this._origin,c=this._xAxis,a=this._yAxis,f=T;return e.multiplyByScalar(c,n.x,f),t=e.add(i,f,t),e.multiplyByScalar(a,n.y,f),e.add(t,f,t),o.scaleToGeocentricSurface(t,t),t};s.prototype.projectPointsOntoEllipsoid=function(n,t){p.defined("cartesians",n);let o=n.length;r(t)?t.length=o:t=new Array(o);for(let i=0;i<o;++i)t[i]=this.projectPointOntoEllipsoid(n[i],t[i]);return t};var M=s;export{M as a}; diff --git a/libs/cesium/1.111/Workers/chunk-JZL634RF.js b/libs/cesium/1.111/Workers/chunk-JZL634RF.js new file mode 100644 index 000000000..32a80dedb --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-JZL634RF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-DUBQPPQZ.js";import{a as N}from"./chunk-CG3JQAX7.js";import{a as t}from"./chunk-KD2PMTHD.js";import{e as i}from"./chunk-ZUCO5WNM.js";var r={UNSIGNED_BYTE:N.UNSIGNED_BYTE,UNSIGNED_SHORT:N.UNSIGNED_SHORT,UNSIGNED_INT:N.UNSIGNED_INT};r.getSizeInBytes=function(e){switch(e){case r.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case r.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case r.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}throw new t("indexDatatype is required and must be a valid IndexDatatype constant.")};r.fromSizeInBytes=function(e){switch(e){case 2:return r.UNSIGNED_SHORT;case 4:return r.UNSIGNED_INT;case 1:return r.UNSIGNED_BYTE;default:throw new t("Size in bytes cannot be mapped to an IndexDatatype")}};r.validate=function(e){return i(e)&&(e===r.UNSIGNED_BYTE||e===r.UNSIGNED_SHORT||e===r.UNSIGNED_INT)};r.createTypedArray=function(e,n){if(!i(e))throw new t("numberOfVertices is required.");return e>=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n):new Uint16Array(n)};r.createTypedArrayFromArrayBuffer=function(e,n,E,o){if(!i(e))throw new t("numberOfVertices is required.");if(!i(n))throw new t("sourceArray is required.");if(!i(E))throw new t("byteOffset is required.");return e>=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n,E,o):new Uint16Array(n,E,o)};r.fromTypedArray=function(e){if(e instanceof Uint8Array)return r.UNSIGNED_BYTE;if(e instanceof Uint16Array)return r.UNSIGNED_SHORT;if(e instanceof Uint32Array)return r.UNSIGNED_INT;throw new t("array must be a Uint8Array, Uint16Array, or Uint32Array.")};var u=Object.freeze(r);export{u as a}; diff --git a/libs/cesium/1.111/Workers/chunk-K36PKEJW.js b/libs/cesium/1.111/Workers/chunk-K36PKEJW.js new file mode 100644 index 000000000..647106c80 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-K36PKEJW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +function u(e,n){return e??n}u.EMPTY_OBJECT=Object.freeze({});var t=u;export{t as a}; diff --git a/libs/cesium/1.111/Workers/chunk-KCIWEUSR.js b/libs/cesium/1.111/Workers/chunk-KCIWEUSR.js new file mode 100644 index 000000000..72288a05e --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-KCIWEUSR.js @@ -0,0 +1,30 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as L,b as x,c as dn,d as cn}from"./chunk-F33YCXD2.js";import{a as E}from"./chunk-DUBQPPQZ.js";import{a as Rn}from"./chunk-P3JQY4NV.js";import{a as T}from"./chunk-K36PKEJW.js";import{a as H,b as f}from"./chunk-KD2PMTHD.js";import{e as M}from"./chunk-ZUCO5WNM.js";function b(n,o,c,y){this.x=T(n,0),this.y=T(o,0),this.z=T(c,0),this.w=T(y,0)}b.fromElements=function(n,o,c,y,p){return M(p)?(p.x=n,p.y=o,p.z=c,p.w=y,p):new b(n,o,c,y)};b.fromColor=function(n,o){return f.typeOf.object("color",n),M(o)?(o.x=n.red,o.y=n.green,o.z=n.blue,o.w=n.alpha,o):new b(n.red,n.green,n.blue,n.alpha)};b.clone=function(n,o){if(M(n))return M(o)?(o.x=n.x,o.y=n.y,o.z=n.z,o.w=n.w,o):new b(n.x,n.y,n.z,n.w)};b.packedLength=4;b.pack=function(n,o,c){return f.typeOf.object("value",n),f.defined("array",o),c=T(c,0),o[c++]=n.x,o[c++]=n.y,o[c++]=n.z,o[c]=n.w,o};b.unpack=function(n,o,c){return f.defined("array",n),o=T(o,0),M(c)||(c=new b),c.x=n[o++],c.y=n[o++],c.z=n[o++],c.w=n[o],c};b.packArray=function(n,o){f.defined("array",n);let c=n.length,y=c*4;if(!M(o))o=new Array(y);else{if(!Array.isArray(o)&&o.length!==y)throw new H("If result is a typed array, it must have exactly array.length * 4 elements");o.length!==y&&(o.length=y)}for(let p=0;p<c;++p)b.pack(n[p],o,p*4);return o};b.unpackArray=function(n,o){if(f.defined("array",n),f.typeOf.number.greaterThanOrEquals("array.length",n.length,4),n.length%4!==0)throw new H("array length must be a multiple of 4.");let c=n.length;M(o)?o.length=c/4:o=new Array(c/4);for(let y=0;y<c;y+=4){let p=y/4;o[p]=b.unpack(n,y,o[p])}return o};b.fromArray=b.unpack;b.maximumComponent=function(n){return f.typeOf.object("cartesian",n),Math.max(n.x,n.y,n.z,n.w)};b.minimumComponent=function(n){return f.typeOf.object("cartesian",n),Math.min(n.x,n.y,n.z,n.w)};b.minimumByComponent=function(n,o,c){return f.typeOf.object("first",n),f.typeOf.object("second",o),f.typeOf.object("result",c),c.x=Math.min(n.x,o.x),c.y=Math.min(n.y,o.y),c.z=Math.min(n.z,o.z),c.w=Math.min(n.w,o.w),c};b.maximumByComponent=function(n,o,c){return f.typeOf.object("first",n),f.typeOf.object("second",o),f.typeOf.object("result",c),c.x=Math.max(n.x,o.x),c.y=Math.max(n.y,o.y),c.z=Math.max(n.z,o.z),c.w=Math.max(n.w,o.w),c};b.clamp=function(n,o,c,y){f.typeOf.object("value",n),f.typeOf.object("min",o),f.typeOf.object("max",c),f.typeOf.object("result",y);let p=E.clamp(n.x,o.x,c.x),O=E.clamp(n.y,o.y,c.y),e=E.clamp(n.z,o.z,c.z),h=E.clamp(n.w,o.w,c.w);return y.x=p,y.y=O,y.z=e,y.w=h,y};b.magnitudeSquared=function(n){return f.typeOf.object("cartesian",n),n.x*n.x+n.y*n.y+n.z*n.z+n.w*n.w};b.magnitude=function(n){return Math.sqrt(b.magnitudeSquared(n))};var yn=new b;b.distance=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),b.subtract(n,o,yn),b.magnitude(yn)};b.distanceSquared=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),b.subtract(n,o,yn),b.magnitudeSquared(yn)};b.normalize=function(n,o){f.typeOf.object("cartesian",n),f.typeOf.object("result",o);let c=b.magnitude(n);if(o.x=n.x/c,o.y=n.y/c,o.z=n.z/c,o.w=n.w/c,isNaN(o.x)||isNaN(o.y)||isNaN(o.z)||isNaN(o.w))throw new H("normalized result is not a number");return o};b.dot=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),n.x*o.x+n.y*o.y+n.z*o.z+n.w*o.w};b.multiplyComponents=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x*o.x,c.y=n.y*o.y,c.z=n.z*o.z,c.w=n.w*o.w,c};b.divideComponents=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x/o.x,c.y=n.y/o.y,c.z=n.z/o.z,c.w=n.w/o.w,c};b.add=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x+o.x,c.y=n.y+o.y,c.z=n.z+o.z,c.w=n.w+o.w,c};b.subtract=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x-o.x,c.y=n.y-o.y,c.z=n.z-o.z,c.w=n.w-o.w,c};b.multiplyByScalar=function(n,o,c){return f.typeOf.object("cartesian",n),f.typeOf.number("scalar",o),f.typeOf.object("result",c),c.x=n.x*o,c.y=n.y*o,c.z=n.z*o,c.w=n.w*o,c};b.divideByScalar=function(n,o,c){return f.typeOf.object("cartesian",n),f.typeOf.number("scalar",o),f.typeOf.object("result",c),c.x=n.x/o,c.y=n.y/o,c.z=n.z/o,c.w=n.w/o,c};b.negate=function(n,o){return f.typeOf.object("cartesian",n),f.typeOf.object("result",o),o.x=-n.x,o.y=-n.y,o.z=-n.z,o.w=-n.w,o};b.abs=function(n,o){return f.typeOf.object("cartesian",n),f.typeOf.object("result",o),o.x=Math.abs(n.x),o.y=Math.abs(n.y),o.z=Math.abs(n.z),o.w=Math.abs(n.w),o};var En=new b;b.lerp=function(n,o,c,y){return f.typeOf.object("start",n),f.typeOf.object("end",o),f.typeOf.number("t",c),f.typeOf.object("result",y),b.multiplyByScalar(o,c,En),y=b.multiplyByScalar(n,1-c,y),b.add(En,y,y)};var kn=new b;b.mostOrthogonalAxis=function(n,o){f.typeOf.object("cartesian",n),f.typeOf.object("result",o);let c=b.normalize(n,kn);return b.abs(c,c),c.x<=c.y?c.x<=c.z?c.x<=c.w?o=b.clone(b.UNIT_X,o):o=b.clone(b.UNIT_W,o):c.z<=c.w?o=b.clone(b.UNIT_Z,o):o=b.clone(b.UNIT_W,o):c.y<=c.z?c.y<=c.w?o=b.clone(b.UNIT_Y,o):o=b.clone(b.UNIT_W,o):c.z<=c.w?o=b.clone(b.UNIT_Z,o):o=b.clone(b.UNIT_W,o),o};b.equals=function(n,o){return n===o||M(n)&&M(o)&&n.x===o.x&&n.y===o.y&&n.z===o.z&&n.w===o.w};b.equalsArray=function(n,o,c){return n.x===o[c]&&n.y===o[c+1]&&n.z===o[c+2]&&n.w===o[c+3]};b.equalsEpsilon=function(n,o,c,y){return n===o||M(n)&&M(o)&&E.equalsEpsilon(n.x,o.x,c,y)&&E.equalsEpsilon(n.y,o.y,c,y)&&E.equalsEpsilon(n.z,o.z,c,y)&&E.equalsEpsilon(n.w,o.w,c,y)};b.ZERO=Object.freeze(new b(0,0,0,0));b.ONE=Object.freeze(new b(1,1,1,1));b.UNIT_X=Object.freeze(new b(1,0,0,0));b.UNIT_Y=Object.freeze(new b(0,1,0,0));b.UNIT_Z=Object.freeze(new b(0,0,1,0));b.UNIT_W=Object.freeze(new b(0,0,0,1));b.prototype.clone=function(n){return b.clone(this,n)};b.prototype.equals=function(n){return b.equals(this,n)};b.prototype.equalsEpsilon=function(n,o,c){return b.equalsEpsilon(this,n,o,c)};b.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var zn=new Float32Array(1),Q=new Uint8Array(zn.buffer),Vn=new Uint32Array([287454020]),Xn=new Uint8Array(Vn.buffer),mn=Xn[0]===68;b.packFloat=function(n,o){return f.typeOf.number("value",n),M(o)||(o=new b),zn[0]=n,mn?(o.x=Q[0],o.y=Q[1],o.z=Q[2],o.w=Q[3]):(o.x=Q[3],o.y=Q[2],o.z=Q[1],o.w=Q[0]),o};b.unpackFloat=function(n){return f.typeOf.object("packedFloat",n),mn?(Q[0]=n.x,Q[1]=n.y,Q[2]=n.z,Q[3]=n.w):(Q[0]=n.w,Q[1]=n.z,Q[2]=n.y,Q[3]=n.x),zn[0]};var pn=b;function t(n,o,c,y,p,O,e,h,d,j,R,m,A,C,N,S){this[0]=T(n,0),this[1]=T(p,0),this[2]=T(d,0),this[3]=T(A,0),this[4]=T(o,0),this[5]=T(O,0),this[6]=T(j,0),this[7]=T(C,0),this[8]=T(c,0),this[9]=T(e,0),this[10]=T(R,0),this[11]=T(N,0),this[12]=T(y,0),this[13]=T(h,0),this[14]=T(m,0),this[15]=T(S,0)}t.packedLength=16;t.pack=function(n,o,c){return f.typeOf.object("value",n),f.defined("array",o),c=T(c,0),o[c++]=n[0],o[c++]=n[1],o[c++]=n[2],o[c++]=n[3],o[c++]=n[4],o[c++]=n[5],o[c++]=n[6],o[c++]=n[7],o[c++]=n[8],o[c++]=n[9],o[c++]=n[10],o[c++]=n[11],o[c++]=n[12],o[c++]=n[13],o[c++]=n[14],o[c]=n[15],o};t.unpack=function(n,o,c){return f.defined("array",n),o=T(o,0),M(c)||(c=new t),c[0]=n[o++],c[1]=n[o++],c[2]=n[o++],c[3]=n[o++],c[4]=n[o++],c[5]=n[o++],c[6]=n[o++],c[7]=n[o++],c[8]=n[o++],c[9]=n[o++],c[10]=n[o++],c[11]=n[o++],c[12]=n[o++],c[13]=n[o++],c[14]=n[o++],c[15]=n[o],c};t.packArray=function(n,o){f.defined("array",n);let c=n.length,y=c*16;if(!M(o))o=new Array(y);else{if(!Array.isArray(o)&&o.length!==y)throw new H("If result is a typed array, it must have exactly array.length * 16 elements");o.length!==y&&(o.length=y)}for(let p=0;p<c;++p)t.pack(n[p],o,p*16);return o};t.unpackArray=function(n,o){if(f.defined("array",n),f.typeOf.number.greaterThanOrEquals("array.length",n.length,16),n.length%16!==0)throw new H("array length must be a multiple of 16.");let c=n.length;M(o)?o.length=c/16:o=new Array(c/16);for(let y=0;y<c;y+=16){let p=y/16;o[p]=t.unpack(n,y,o[p])}return o};t.clone=function(n,o){if(M(n))return M(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o[9]=n[9],o[10]=n[10],o[11]=n[11],o[12]=n[12],o[13]=n[13],o[14]=n[14],o[15]=n[15],o):new t(n[0],n[4],n[8],n[12],n[1],n[5],n[9],n[13],n[2],n[6],n[10],n[14],n[3],n[7],n[11],n[15])};t.fromArray=t.unpack;t.fromColumnMajorArray=function(n,o){return f.defined("values",n),t.clone(n,o)};t.fromRowMajorArray=function(n,o){return f.defined("values",n),M(o)?(o[0]=n[0],o[1]=n[4],o[2]=n[8],o[3]=n[12],o[4]=n[1],o[5]=n[5],o[6]=n[9],o[7]=n[13],o[8]=n[2],o[9]=n[6],o[10]=n[10],o[11]=n[14],o[12]=n[3],o[13]=n[7],o[14]=n[11],o[15]=n[15],o):new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15])};t.fromRotationTranslation=function(n,o,c){return f.typeOf.object("rotation",n),o=T(o,L.ZERO),M(c)?(c[0]=n[0],c[1]=n[1],c[2]=n[2],c[3]=0,c[4]=n[3],c[5]=n[4],c[6]=n[5],c[7]=0,c[8]=n[6],c[9]=n[7],c[10]=n[8],c[11]=0,c[12]=o.x,c[13]=o.y,c[14]=o.z,c[15]=1,c):new t(n[0],n[3],n[6],o.x,n[1],n[4],n[7],o.y,n[2],n[5],n[8],o.z,0,0,0,1)};t.fromTranslationQuaternionRotationScale=function(n,o,c,y){f.typeOf.object("translation",n),f.typeOf.object("rotation",o),f.typeOf.object("scale",c),M(y)||(y=new t);let p=c.x,O=c.y,e=c.z,h=o.x*o.x,d=o.x*o.y,j=o.x*o.z,R=o.x*o.w,m=o.y*o.y,A=o.y*o.z,C=o.y*o.w,N=o.z*o.z,S=o.z*o.w,P=o.w*o.w,_=h-m-N+P,U=2*(d-S),W=2*(j+C),i=2*(d+S),k=-h+m-N+P,V=2*(A-R),X=2*(j-C),B=2*(A+R),$=-h-m+N+P;return y[0]=_*p,y[1]=i*p,y[2]=X*p,y[3]=0,y[4]=U*O,y[5]=k*O,y[6]=B*O,y[7]=0,y[8]=W*e,y[9]=V*e,y[10]=$*e,y[11]=0,y[12]=n.x,y[13]=n.y,y[14]=n.z,y[15]=1,y};t.fromTranslationRotationScale=function(n,o){return f.typeOf.object("translationRotationScale",n),t.fromTranslationQuaternionRotationScale(n.translation,n.rotation,n.scale,o)};t.fromTranslation=function(n,o){return f.typeOf.object("translation",n),t.fromRotationTranslation(cn.IDENTITY,n,o)};t.fromScale=function(n,o){return f.typeOf.object("scale",n),M(o)?(o[0]=n.x,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=n.y,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=n.z,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o):new t(n.x,0,0,0,0,n.y,0,0,0,0,n.z,0,0,0,0,1)};t.fromUniformScale=function(n,o){return f.typeOf.number("scale",n),M(o)?(o[0]=n,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=n,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=n,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o):new t(n,0,0,0,0,n,0,0,0,0,n,0,0,0,0,1)};t.fromRotation=function(n,o){return f.typeOf.object("rotation",n),M(o)||(o=new t),o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=0,o[4]=n[3],o[5]=n[4],o[6]=n[5],o[7]=0,o[8]=n[6],o[9]=n[7],o[10]=n[8],o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o};var a=new L,s=new L,fn=new L;t.fromCamera=function(n,o){f.typeOf.object("camera",n);let c=n.position,y=n.direction,p=n.up;f.typeOf.object("camera.position",c),f.typeOf.object("camera.direction",y),f.typeOf.object("camera.up",p),L.normalize(y,a),L.normalize(L.cross(a,p,s),s),L.normalize(L.cross(s,a,fn),fn);let O=s.x,e=s.y,h=s.z,d=a.x,j=a.y,R=a.z,m=fn.x,A=fn.y,C=fn.z,N=c.x,S=c.y,P=c.z,_=O*-N+e*-S+h*-P,U=m*-N+A*-S+C*-P,W=d*N+j*S+R*P;return M(o)?(o[0]=O,o[1]=m,o[2]=-d,o[3]=0,o[4]=e,o[5]=A,o[6]=-j,o[7]=0,o[8]=h,o[9]=C,o[10]=-R,o[11]=0,o[12]=_,o[13]=U,o[14]=W,o[15]=1,o):new t(O,e,h,_,m,A,C,U,-d,-j,-R,W,0,0,0,1)};t.computePerspectiveFieldOfView=function(n,o,c,y,p){f.typeOf.number.greaterThan("fovY",n,0),f.typeOf.number.lessThan("fovY",n,Math.PI),f.typeOf.number.greaterThan("near",c,0),f.typeOf.number.greaterThan("far",y,0),f.typeOf.object("result",p);let e=1/Math.tan(n*.5),h=e/o,d=(y+c)/(c-y),j=2*y*c/(c-y);return p[0]=h,p[1]=0,p[2]=0,p[3]=0,p[4]=0,p[5]=e,p[6]=0,p[7]=0,p[8]=0,p[9]=0,p[10]=d,p[11]=-1,p[12]=0,p[13]=0,p[14]=j,p[15]=0,p};t.computeOrthographicOffCenter=function(n,o,c,y,p,O,e){f.typeOf.number("left",n),f.typeOf.number("right",o),f.typeOf.number("bottom",c),f.typeOf.number("top",y),f.typeOf.number("near",p),f.typeOf.number("far",O),f.typeOf.object("result",e);let h=1/(o-n),d=1/(y-c),j=1/(O-p),R=-(o+n)*h,m=-(y+c)*d,A=-(O+p)*j;return h*=2,d*=2,j*=-2,e[0]=h,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=d,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=j,e[11]=0,e[12]=R,e[13]=m,e[14]=A,e[15]=1,e};t.computePerspectiveOffCenter=function(n,o,c,y,p,O,e){f.typeOf.number("left",n),f.typeOf.number("right",o),f.typeOf.number("bottom",c),f.typeOf.number("top",y),f.typeOf.number("near",p),f.typeOf.number("far",O),f.typeOf.object("result",e);let h=2*p/(o-n),d=2*p/(y-c),j=(o+n)/(o-n),R=(y+c)/(y-c),m=-(O+p)/(O-p),A=-1,C=-2*O*p/(O-p);return e[0]=h,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=d,e[6]=0,e[7]=0,e[8]=j,e[9]=R,e[10]=m,e[11]=A,e[12]=0,e[13]=0,e[14]=C,e[15]=0,e};t.computeInfinitePerspectiveOffCenter=function(n,o,c,y,p,O){f.typeOf.number("left",n),f.typeOf.number("right",o),f.typeOf.number("bottom",c),f.typeOf.number("top",y),f.typeOf.number("near",p),f.typeOf.object("result",O);let e=2*p/(o-n),h=2*p/(y-c),d=(o+n)/(o-n),j=(y+c)/(y-c),R=-1,m=-1,A=-2*p;return O[0]=e,O[1]=0,O[2]=0,O[3]=0,O[4]=0,O[5]=h,O[6]=0,O[7]=0,O[8]=d,O[9]=j,O[10]=R,O[11]=m,O[12]=0,O[13]=0,O[14]=A,O[15]=0,O};t.computeViewportTransformation=function(n,o,c,y){M(y)||(y=new t),n=T(n,T.EMPTY_OBJECT);let p=T(n.x,0),O=T(n.y,0),e=T(n.width,0),h=T(n.height,0);o=T(o,0),c=T(c,1);let d=e*.5,j=h*.5,R=(c-o)*.5,m=d,A=j,C=R,N=p+d,S=O+j,P=o+R,_=1;return y[0]=m,y[1]=0,y[2]=0,y[3]=0,y[4]=0,y[5]=A,y[6]=0,y[7]=0,y[8]=0,y[9]=0,y[10]=C,y[11]=0,y[12]=N,y[13]=S,y[14]=P,y[15]=_,y};t.computeView=function(n,o,c,y,p){return f.typeOf.object("position",n),f.typeOf.object("direction",o),f.typeOf.object("up",c),f.typeOf.object("right",y),f.typeOf.object("result",p),p[0]=y.x,p[1]=c.x,p[2]=-o.x,p[3]=0,p[4]=y.y,p[5]=c.y,p[6]=-o.y,p[7]=0,p[8]=y.z,p[9]=c.z,p[10]=-o.z,p[11]=0,p[12]=-L.dot(y,n),p[13]=-L.dot(c,n),p[14]=L.dot(o,n),p[15]=1,p};t.toArray=function(n,o){return f.typeOf.object("matrix",n),M(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o[4]=n[4],o[5]=n[5],o[6]=n[6],o[7]=n[7],o[8]=n[8],o[9]=n[9],o[10]=n[10],o[11]=n[11],o[12]=n[12],o[13]=n[13],o[14]=n[14],o[15]=n[15],o):[n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]]};t.getElementIndex=function(n,o){return f.typeOf.number.greaterThanOrEquals("row",o,0),f.typeOf.number.lessThanOrEquals("row",o,3),f.typeOf.number.greaterThanOrEquals("column",n,0),f.typeOf.number.lessThanOrEquals("column",n,3),n*4+o};t.getColumn=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,3),f.typeOf.object("result",c);let y=o*4,p=n[y],O=n[y+1],e=n[y+2],h=n[y+3];return c.x=p,c.y=O,c.z=e,c.w=h,c};t.setColumn=function(n,o,c,y){f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,3),f.typeOf.object("cartesian",c),f.typeOf.object("result",y),y=t.clone(n,y);let p=o*4;return y[p]=c.x,y[p+1]=c.y,y[p+2]=c.z,y[p+3]=c.w,y};t.getRow=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,3),f.typeOf.object("result",c);let y=n[o],p=n[o+4],O=n[o+8],e=n[o+12];return c.x=y,c.y=p,c.z=O,c.w=e,c};t.setRow=function(n,o,c,y){return f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,3),f.typeOf.object("cartesian",c),f.typeOf.object("result",y),y=t.clone(n,y),y[o]=c.x,y[o+4]=c.y,y[o+8]=c.z,y[o+12]=c.w,y};t.setTranslation=function(n,o,c){return f.typeOf.object("matrix",n),f.typeOf.object("translation",o),f.typeOf.object("result",c),c[0]=n[0],c[1]=n[1],c[2]=n[2],c[3]=n[3],c[4]=n[4],c[5]=n[5],c[6]=n[6],c[7]=n[7],c[8]=n[8],c[9]=n[9],c[10]=n[10],c[11]=n[11],c[12]=o.x,c[13]=o.y,c[14]=o.z,c[15]=n[15],c};var Bn=new L;t.setScale=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("scale",o),f.typeOf.object("result",c);let y=t.getScale(n,Bn),p=o.x/y.x,O=o.y/y.y,e=o.z/y.z;return c[0]=n[0]*p,c[1]=n[1]*p,c[2]=n[2]*p,c[3]=n[3],c[4]=n[4]*O,c[5]=n[5]*O,c[6]=n[6]*O,c[7]=n[7],c[8]=n[8]*e,c[9]=n[9]*e,c[10]=n[10]*e,c[11]=n[11],c[12]=n[12],c[13]=n[13],c[14]=n[14],c[15]=n[15],c};var $n=new L;t.setUniformScale=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.number("scale",o),f.typeOf.object("result",c);let y=t.getScale(n,$n),p=o/y.x,O=o/y.y,e=o/y.z;return c[0]=n[0]*p,c[1]=n[1]*p,c[2]=n[2]*p,c[3]=n[3],c[4]=n[4]*O,c[5]=n[5]*O,c[6]=n[6]*O,c[7]=n[7],c[8]=n[8]*e,c[9]=n[9]*e,c[10]=n[10]*e,c[11]=n[11],c[12]=n[12],c[13]=n[13],c[14]=n[14],c[15]=n[15],c};var Tn=new L;t.getScale=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o.x=L.magnitude(L.fromElements(n[0],n[1],n[2],Tn)),o.y=L.magnitude(L.fromElements(n[4],n[5],n[6],Tn)),o.z=L.magnitude(L.fromElements(n[8],n[9],n[10],Tn)),o};var qn=new L;t.getMaximumScale=function(n){return t.getScale(n,qn),L.maximumComponent(qn)};var Yn=new L;t.setRotation=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("result",c);let y=t.getScale(n,Yn);return c[0]=o[0]*y.x,c[1]=o[1]*y.x,c[2]=o[2]*y.x,c[3]=n[3],c[4]=o[3]*y.y,c[5]=o[4]*y.y,c[6]=o[5]*y.y,c[7]=n[7],c[8]=o[6]*y.z,c[9]=o[7]*y.z,c[10]=o[8]*y.z,c[11]=n[11],c[12]=n[12],c[13]=n[13],c[14]=n[14],c[15]=n[15],c};var Zn=new L;t.getRotation=function(n,o){f.typeOf.object("matrix",n),f.typeOf.object("result",o);let c=t.getScale(n,Zn);return o[0]=n[0]/c.x,o[1]=n[1]/c.x,o[2]=n[2]/c.x,o[3]=n[4]/c.y,o[4]=n[5]/c.y,o[5]=n[6]/c.y,o[6]=n[8]/c.z,o[7]=n[9]/c.z,o[8]=n[10]/c.z,o};t.multiply=function(n,o,c){f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c);let y=n[0],p=n[1],O=n[2],e=n[3],h=n[4],d=n[5],j=n[6],R=n[7],m=n[8],A=n[9],C=n[10],N=n[11],S=n[12],P=n[13],_=n[14],U=n[15],W=o[0],i=o[1],k=o[2],V=o[3],X=o[4],B=o[5],$=o[6],Z=o[7],I=o[8],D=o[9],G=o[10],K=o[11],F=o[12],v=o[13],g=o[14],u=o[15],l=y*W+h*i+m*k+S*V,r=p*W+d*i+A*k+P*V,nn=O*W+j*i+C*k+_*V,on=e*W+R*i+N*k+U*V,en=y*X+h*B+m*$+S*Z,tn=p*X+d*B+A*$+P*Z,bn=O*X+j*B+C*$+_*Z,hn=e*X+R*B+N*$+U*Z,wn=y*I+h*D+m*G+S*K,jn=p*I+d*D+A*G+P*K,Mn=O*I+j*D+C*G+_*K,Y=e*I+R*D+N*G+U*K,_n=y*F+h*v+m*g+S*u,Un=p*F+d*v+A*g+P*u,Wn=O*F+j*v+C*g+_*u,Ln=e*F+R*v+N*g+U*u;return c[0]=l,c[1]=r,c[2]=nn,c[3]=on,c[4]=en,c[5]=tn,c[6]=bn,c[7]=hn,c[8]=wn,c[9]=jn,c[10]=Mn,c[11]=Y,c[12]=_n,c[13]=Un,c[14]=Wn,c[15]=Ln,c};t.add=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c[0]=n[0]+o[0],c[1]=n[1]+o[1],c[2]=n[2]+o[2],c[3]=n[3]+o[3],c[4]=n[4]+o[4],c[5]=n[5]+o[5],c[6]=n[6]+o[6],c[7]=n[7]+o[7],c[8]=n[8]+o[8],c[9]=n[9]+o[9],c[10]=n[10]+o[10],c[11]=n[11]+o[11],c[12]=n[12]+o[12],c[13]=n[13]+o[13],c[14]=n[14]+o[14],c[15]=n[15]+o[15],c};t.subtract=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c[0]=n[0]-o[0],c[1]=n[1]-o[1],c[2]=n[2]-o[2],c[3]=n[3]-o[3],c[4]=n[4]-o[4],c[5]=n[5]-o[5],c[6]=n[6]-o[6],c[7]=n[7]-o[7],c[8]=n[8]-o[8],c[9]=n[9]-o[9],c[10]=n[10]-o[10],c[11]=n[11]-o[11],c[12]=n[12]-o[12],c[13]=n[13]-o[13],c[14]=n[14]-o[14],c[15]=n[15]-o[15],c};t.multiplyTransformation=function(n,o,c){f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c);let y=n[0],p=n[1],O=n[2],e=n[4],h=n[5],d=n[6],j=n[8],R=n[9],m=n[10],A=n[12],C=n[13],N=n[14],S=o[0],P=o[1],_=o[2],U=o[4],W=o[5],i=o[6],k=o[8],V=o[9],X=o[10],B=o[12],$=o[13],Z=o[14],I=y*S+e*P+j*_,D=p*S+h*P+R*_,G=O*S+d*P+m*_,K=y*U+e*W+j*i,F=p*U+h*W+R*i,v=O*U+d*W+m*i,g=y*k+e*V+j*X,u=p*k+h*V+R*X,l=O*k+d*V+m*X,r=y*B+e*$+j*Z+A,nn=p*B+h*$+R*Z+C,on=O*B+d*$+m*Z+N;return c[0]=I,c[1]=D,c[2]=G,c[3]=0,c[4]=K,c[5]=F,c[6]=v,c[7]=0,c[8]=g,c[9]=u,c[10]=l,c[11]=0,c[12]=r,c[13]=nn,c[14]=on,c[15]=1,c};t.multiplyByMatrix3=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("rotation",o),f.typeOf.object("result",c);let y=n[0],p=n[1],O=n[2],e=n[4],h=n[5],d=n[6],j=n[8],R=n[9],m=n[10],A=o[0],C=o[1],N=o[2],S=o[3],P=o[4],_=o[5],U=o[6],W=o[7],i=o[8],k=y*A+e*C+j*N,V=p*A+h*C+R*N,X=O*A+d*C+m*N,B=y*S+e*P+j*_,$=p*S+h*P+R*_,Z=O*S+d*P+m*_,I=y*U+e*W+j*i,D=p*U+h*W+R*i,G=O*U+d*W+m*i;return c[0]=k,c[1]=V,c[2]=X,c[3]=0,c[4]=B,c[5]=$,c[6]=Z,c[7]=0,c[8]=I,c[9]=D,c[10]=G,c[11]=0,c[12]=n[12],c[13]=n[13],c[14]=n[14],c[15]=n[15],c};t.multiplyByTranslation=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("translation",o),f.typeOf.object("result",c);let y=o.x,p=o.y,O=o.z,e=y*n[0]+p*n[4]+O*n[8]+n[12],h=y*n[1]+p*n[5]+O*n[9]+n[13],d=y*n[2]+p*n[6]+O*n[10]+n[14];return c[0]=n[0],c[1]=n[1],c[2]=n[2],c[3]=n[3],c[4]=n[4],c[5]=n[5],c[6]=n[6],c[7]=n[7],c[8]=n[8],c[9]=n[9],c[10]=n[10],c[11]=n[11],c[12]=e,c[13]=h,c[14]=d,c[15]=n[15],c};t.multiplyByScale=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("scale",o),f.typeOf.object("result",c);let y=o.x,p=o.y,O=o.z;return y===1&&p===1&&O===1?t.clone(n,c):(c[0]=y*n[0],c[1]=y*n[1],c[2]=y*n[2],c[3]=n[3],c[4]=p*n[4],c[5]=p*n[5],c[6]=p*n[6],c[7]=n[7],c[8]=O*n[8],c[9]=O*n[9],c[10]=O*n[10],c[11]=n[11],c[12]=n[12],c[13]=n[13],c[14]=n[14],c[15]=n[15],c)};t.multiplyByUniformScale=function(n,o,c){return f.typeOf.object("matrix",n),f.typeOf.number("scale",o),f.typeOf.object("result",c),c[0]=n[0]*o,c[1]=n[1]*o,c[2]=n[2]*o,c[3]=n[3],c[4]=n[4]*o,c[5]=n[5]*o,c[6]=n[6]*o,c[7]=n[7],c[8]=n[8]*o,c[9]=n[9]*o,c[10]=n[10]*o,c[11]=n[11],c[12]=n[12],c[13]=n[13],c[14]=n[14],c[15]=n[15],c};t.multiplyByVector=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("cartesian",o),f.typeOf.object("result",c);let y=o.x,p=o.y,O=o.z,e=o.w,h=n[0]*y+n[4]*p+n[8]*O+n[12]*e,d=n[1]*y+n[5]*p+n[9]*O+n[13]*e,j=n[2]*y+n[6]*p+n[10]*O+n[14]*e,R=n[3]*y+n[7]*p+n[11]*O+n[15]*e;return c.x=h,c.y=d,c.z=j,c.w=R,c};t.multiplyByPointAsVector=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("cartesian",o),f.typeOf.object("result",c);let y=o.x,p=o.y,O=o.z,e=n[0]*y+n[4]*p+n[8]*O,h=n[1]*y+n[5]*p+n[9]*O,d=n[2]*y+n[6]*p+n[10]*O;return c.x=e,c.y=h,c.z=d,c};t.multiplyByPoint=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("cartesian",o),f.typeOf.object("result",c);let y=o.x,p=o.y,O=o.z,e=n[0]*y+n[4]*p+n[8]*O+n[12],h=n[1]*y+n[5]*p+n[9]*O+n[13],d=n[2]*y+n[6]*p+n[10]*O+n[14];return c.x=e,c.y=h,c.z=d,c};t.multiplyByScalar=function(n,o,c){return f.typeOf.object("matrix",n),f.typeOf.number("scalar",o),f.typeOf.object("result",c),c[0]=n[0]*o,c[1]=n[1]*o,c[2]=n[2]*o,c[3]=n[3]*o,c[4]=n[4]*o,c[5]=n[5]*o,c[6]=n[6]*o,c[7]=n[7]*o,c[8]=n[8]*o,c[9]=n[9]*o,c[10]=n[10]*o,c[11]=n[11]*o,c[12]=n[12]*o,c[13]=n[13]*o,c[14]=n[14]*o,c[15]=n[15]*o,c};t.negate=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o[0]=-n[0],o[1]=-n[1],o[2]=-n[2],o[3]=-n[3],o[4]=-n[4],o[5]=-n[5],o[6]=-n[6],o[7]=-n[7],o[8]=-n[8],o[9]=-n[9],o[10]=-n[10],o[11]=-n[11],o[12]=-n[12],o[13]=-n[13],o[14]=-n[14],o[15]=-n[15],o};t.transpose=function(n,o){f.typeOf.object("matrix",n),f.typeOf.object("result",o);let c=n[1],y=n[2],p=n[3],O=n[6],e=n[7],h=n[11];return o[0]=n[0],o[1]=n[4],o[2]=n[8],o[3]=n[12],o[4]=c,o[5]=n[5],o[6]=n[9],o[7]=n[13],o[8]=y,o[9]=O,o[10]=n[10],o[11]=n[14],o[12]=p,o[13]=e,o[14]=h,o[15]=n[15],o};t.abs=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o[0]=Math.abs(n[0]),o[1]=Math.abs(n[1]),o[2]=Math.abs(n[2]),o[3]=Math.abs(n[3]),o[4]=Math.abs(n[4]),o[5]=Math.abs(n[5]),o[6]=Math.abs(n[6]),o[7]=Math.abs(n[7]),o[8]=Math.abs(n[8]),o[9]=Math.abs(n[9]),o[10]=Math.abs(n[10]),o[11]=Math.abs(n[11]),o[12]=Math.abs(n[12]),o[13]=Math.abs(n[13]),o[14]=Math.abs(n[14]),o[15]=Math.abs(n[15]),o};t.equals=function(n,o){return n===o||M(n)&&M(o)&&n[12]===o[12]&&n[13]===o[13]&&n[14]===o[14]&&n[0]===o[0]&&n[1]===o[1]&&n[2]===o[2]&&n[4]===o[4]&&n[5]===o[5]&&n[6]===o[6]&&n[8]===o[8]&&n[9]===o[9]&&n[10]===o[10]&&n[3]===o[3]&&n[7]===o[7]&&n[11]===o[11]&&n[15]===o[15]};t.equalsEpsilon=function(n,o,c){return c=T(c,0),n===o||M(n)&&M(o)&&Math.abs(n[0]-o[0])<=c&&Math.abs(n[1]-o[1])<=c&&Math.abs(n[2]-o[2])<=c&&Math.abs(n[3]-o[3])<=c&&Math.abs(n[4]-o[4])<=c&&Math.abs(n[5]-o[5])<=c&&Math.abs(n[6]-o[6])<=c&&Math.abs(n[7]-o[7])<=c&&Math.abs(n[8]-o[8])<=c&&Math.abs(n[9]-o[9])<=c&&Math.abs(n[10]-o[10])<=c&&Math.abs(n[11]-o[11])<=c&&Math.abs(n[12]-o[12])<=c&&Math.abs(n[13]-o[13])<=c&&Math.abs(n[14]-o[14])<=c&&Math.abs(n[15]-o[15])<=c};t.getTranslation=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o.x=n[12],o.y=n[13],o.z=n[14],o};t.getMatrix3=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[4],o[4]=n[5],o[5]=n[6],o[6]=n[8],o[7]=n[9],o[8]=n[10],o};var In=new cn,Dn=new cn,Gn=new pn,Qn=new pn(0,0,0,1);t.inverse=function(n,o){f.typeOf.object("matrix",n),f.typeOf.object("result",o);let c=n[0],y=n[4],p=n[8],O=n[12],e=n[1],h=n[5],d=n[9],j=n[13],R=n[2],m=n[6],A=n[10],C=n[14],N=n[3],S=n[7],P=n[11],_=n[15],U=A*_,W=C*P,i=m*_,k=C*S,V=m*P,X=A*S,B=R*_,$=C*N,Z=R*P,I=A*N,D=R*S,G=m*N,K=U*h+k*d+V*j-(W*h+i*d+X*j),F=W*e+B*d+I*j-(U*e+$*d+Z*j),v=i*e+$*h+D*j-(k*e+B*h+G*j),g=X*e+Z*h+G*d-(V*e+I*h+D*d),u=W*y+i*p+X*O-(U*y+k*p+V*O),l=U*c+$*p+Z*O-(W*c+B*p+I*O),r=k*c+B*y+G*O-(i*c+$*y+D*O),nn=V*c+I*y+D*p-(X*c+Z*y+G*p);U=p*j,W=O*d,i=y*j,k=O*h,V=y*d,X=p*h,B=c*j,$=O*e,Z=c*d,I=p*e,D=c*h,G=y*e;let on=U*S+k*P+V*_-(W*S+i*P+X*_),en=W*N+B*P+I*_-(U*N+$*P+Z*_),tn=i*N+$*S+D*_-(k*N+B*S+G*_),bn=X*N+Z*S+G*P-(V*N+I*S+D*P),hn=i*A+X*C+W*m-(V*C+U*m+k*A),wn=Z*C+U*R+$*A-(B*A+I*C+W*R),jn=B*m+G*C+k*R-(D*C+i*R+$*m),Mn=D*A+V*R+I*m-(Z*m+G*A+X*R),Y=c*K+y*F+p*v+O*g;if(Math.abs(Y)<E.EPSILON21){if(cn.equalsEpsilon(t.getMatrix3(n,In),Dn,E.EPSILON7)&&pn.equals(t.getRow(n,3,Gn),Qn))return o[0]=0,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=0,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=0,o[11]=0,o[12]=-n[12],o[13]=-n[13],o[14]=-n[14],o[15]=1,o;throw new Rn("matrix is not invertible because its determinate is zero.")}return Y=1/Y,o[0]=K*Y,o[1]=F*Y,o[2]=v*Y,o[3]=g*Y,o[4]=u*Y,o[5]=l*Y,o[6]=r*Y,o[7]=nn*Y,o[8]=on*Y,o[9]=en*Y,o[10]=tn*Y,o[11]=bn*Y,o[12]=hn*Y,o[13]=wn*Y,o[14]=jn*Y,o[15]=Mn*Y,o};t.inverseTransformation=function(n,o){f.typeOf.object("matrix",n),f.typeOf.object("result",o);let c=n[0],y=n[1],p=n[2],O=n[4],e=n[5],h=n[6],d=n[8],j=n[9],R=n[10],m=n[12],A=n[13],C=n[14],N=-c*m-y*A-p*C,S=-O*m-e*A-h*C,P=-d*m-j*A-R*C;return o[0]=c,o[1]=O,o[2]=d,o[3]=0,o[4]=y,o[5]=e,o[6]=j,o[7]=0,o[8]=p,o[9]=h,o[10]=R,o[11]=0,o[12]=N,o[13]=S,o[14]=P,o[15]=1,o};var Hn=new t;t.inverseTranspose=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),t.inverse(t.transpose(n,Hn),o)};t.IDENTITY=Object.freeze(new t(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));t.ZERO=Object.freeze(new t(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));t.COLUMN0ROW0=0;t.COLUMN0ROW1=1;t.COLUMN0ROW2=2;t.COLUMN0ROW3=3;t.COLUMN1ROW0=4;t.COLUMN1ROW1=5;t.COLUMN1ROW2=6;t.COLUMN1ROW3=7;t.COLUMN2ROW0=8;t.COLUMN2ROW1=9;t.COLUMN2ROW2=10;t.COLUMN2ROW3=11;t.COLUMN3ROW0=12;t.COLUMN3ROW1=13;t.COLUMN3ROW2=14;t.COLUMN3ROW3=15;Object.defineProperties(t.prototype,{length:{get:function(){return t.packedLength}}});t.prototype.clone=function(n){return t.clone(this,n)};t.prototype.equals=function(n){return t.equals(this,n)};t.equalsArray=function(n,o,c){return n[0]===o[c]&&n[1]===o[c+1]&&n[2]===o[c+2]&&n[3]===o[c+3]&&n[4]===o[c+4]&&n[5]===o[c+5]&&n[6]===o[c+6]&&n[7]===o[c+7]&&n[8]===o[c+8]&&n[9]===o[c+9]&&n[10]===o[c+10]&&n[11]===o[c+11]&&n[12]===o[c+12]&&n[13]===o[c+13]&&n[14]===o[c+14]&&n[15]===o[c+15]};t.prototype.equalsEpsilon=function(n,o){return t.equalsEpsilon(this,n,o)};t.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) +(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) +(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) +(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var ho=t;function q(n,o,c,y){this.west=T(n,0),this.south=T(o,0),this.east=T(c,0),this.north=T(y,0)}Object.defineProperties(q.prototype,{width:{get:function(){return q.computeWidth(this)}},height:{get:function(){return q.computeHeight(this)}}});q.packedLength=4;q.pack=function(n,o,c){return f.typeOf.object("value",n),f.defined("array",o),c=T(c,0),o[c++]=n.west,o[c++]=n.south,o[c++]=n.east,o[c]=n.north,o};q.unpack=function(n,o,c){return f.defined("array",n),o=T(o,0),M(c)||(c=new q),c.west=n[o++],c.south=n[o++],c.east=n[o++],c.north=n[o],c};q.computeWidth=function(n){f.typeOf.object("rectangle",n);let o=n.east,c=n.west;return o<c&&(o+=E.TWO_PI),o-c};q.computeHeight=function(n){return f.typeOf.object("rectangle",n),n.north-n.south};q.fromDegrees=function(n,o,c,y,p){return n=E.toRadians(T(n,0)),o=E.toRadians(T(o,0)),c=E.toRadians(T(c,0)),y=E.toRadians(T(y,0)),M(p)?(p.west=n,p.south=o,p.east=c,p.north=y,p):new q(n,o,c,y)};q.fromRadians=function(n,o,c,y,p){return M(p)?(p.west=T(n,0),p.south=T(o,0),p.east=T(c,0),p.north=T(y,0),p):new q(n,o,c,y)};q.fromCartographicArray=function(n,o){f.defined("cartographics",n);let c=Number.MAX_VALUE,y=-Number.MAX_VALUE,p=Number.MAX_VALUE,O=-Number.MAX_VALUE,e=Number.MAX_VALUE,h=-Number.MAX_VALUE;for(let d=0,j=n.length;d<j;d++){let R=n[d];c=Math.min(c,R.longitude),y=Math.max(y,R.longitude),e=Math.min(e,R.latitude),h=Math.max(h,R.latitude);let m=R.longitude>=0?R.longitude:R.longitude+E.TWO_PI;p=Math.min(p,m),O=Math.max(O,m)}return y-c>O-p&&(c=p,y=O,y>E.PI&&(y=y-E.TWO_PI),c>E.PI&&(c=c-E.TWO_PI)),M(o)?(o.west=c,o.south=e,o.east=y,o.north=h,o):new q(c,e,y,h)};q.fromCartesianArray=function(n,o,c){f.defined("cartesians",n),o=T(o,dn.WGS84);let y=Number.MAX_VALUE,p=-Number.MAX_VALUE,O=Number.MAX_VALUE,e=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE;for(let j=0,R=n.length;j<R;j++){let m=o.cartesianToCartographic(n[j]);y=Math.min(y,m.longitude),p=Math.max(p,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);let A=m.longitude>=0?m.longitude:m.longitude+E.TWO_PI;O=Math.min(O,A),e=Math.max(e,A)}return p-y>e-O&&(y=O,p=e,p>E.PI&&(p=p-E.TWO_PI),y>E.PI&&(y=y-E.TWO_PI)),M(c)?(c.west=y,c.south=h,c.east=p,c.north=d,c):new q(y,h,p,d)};q.clone=function(n,o){if(M(n))return M(o)?(o.west=n.west,o.south=n.south,o.east=n.east,o.north=n.north,o):new q(n.west,n.south,n.east,n.north)};q.equalsEpsilon=function(n,o,c){return c=T(c,0),n===o||M(n)&&M(o)&&Math.abs(n.west-o.west)<=c&&Math.abs(n.south-o.south)<=c&&Math.abs(n.east-o.east)<=c&&Math.abs(n.north-o.north)<=c};q.prototype.clone=function(n){return q.clone(this,n)};q.prototype.equals=function(n){return q.equals(this,n)};q.equals=function(n,o){return n===o||M(n)&&M(o)&&n.west===o.west&&n.south===o.south&&n.east===o.east&&n.north===o.north};q.prototype.equalsEpsilon=function(n,o){return q.equalsEpsilon(this,n,o)};q.validate=function(n){f.typeOf.object("rectangle",n);let o=n.north;f.typeOf.number.greaterThanOrEquals("north",o,-E.PI_OVER_TWO),f.typeOf.number.lessThanOrEquals("north",o,E.PI_OVER_TWO);let c=n.south;f.typeOf.number.greaterThanOrEquals("south",c,-E.PI_OVER_TWO),f.typeOf.number.lessThanOrEquals("south",c,E.PI_OVER_TWO);let y=n.west;f.typeOf.number.greaterThanOrEquals("west",y,-Math.PI),f.typeOf.number.lessThanOrEquals("west",y,Math.PI);let p=n.east;f.typeOf.number.greaterThanOrEquals("east",p,-Math.PI),f.typeOf.number.lessThanOrEquals("east",p,Math.PI)};q.southwest=function(n,o){return f.typeOf.object("rectangle",n),M(o)?(o.longitude=n.west,o.latitude=n.south,o.height=0,o):new x(n.west,n.south)};q.northwest=function(n,o){return f.typeOf.object("rectangle",n),M(o)?(o.longitude=n.west,o.latitude=n.north,o.height=0,o):new x(n.west,n.north)};q.northeast=function(n,o){return f.typeOf.object("rectangle",n),M(o)?(o.longitude=n.east,o.latitude=n.north,o.height=0,o):new x(n.east,n.north)};q.southeast=function(n,o){return f.typeOf.object("rectangle",n),M(o)?(o.longitude=n.east,o.latitude=n.south,o.height=0,o):new x(n.east,n.south)};q.center=function(n,o){f.typeOf.object("rectangle",n);let c=n.east,y=n.west;c<y&&(c+=E.TWO_PI);let p=E.negativePiToPi((y+c)*.5),O=(n.south+n.north)*.5;return M(o)?(o.longitude=p,o.latitude=O,o.height=0,o):new x(p,O)};q.intersection=function(n,o,c){f.typeOf.object("rectangle",n),f.typeOf.object("otherRectangle",o);let y=n.east,p=n.west,O=o.east,e=o.west;y<p&&O>0?y+=E.TWO_PI:O<e&&y>0&&(O+=E.TWO_PI),y<p&&e<0?e+=E.TWO_PI:O<e&&p<0&&(p+=E.TWO_PI);let h=E.negativePiToPi(Math.max(p,e)),d=E.negativePiToPi(Math.min(y,O));if((n.west<n.east||o.west<o.east)&&d<=h)return;let j=Math.max(n.south,o.south),R=Math.min(n.north,o.north);if(!(j>=R))return M(c)?(c.west=h,c.south=j,c.east=d,c.north=R,c):new q(h,j,d,R)};q.simpleIntersection=function(n,o,c){f.typeOf.object("rectangle",n),f.typeOf.object("otherRectangle",o);let y=Math.max(n.west,o.west),p=Math.max(n.south,o.south),O=Math.min(n.east,o.east),e=Math.min(n.north,o.north);if(!(p>=e||y>=O))return M(c)?(c.west=y,c.south=p,c.east=O,c.north=e,c):new q(y,p,O,e)};q.union=function(n,o,c){f.typeOf.object("rectangle",n),f.typeOf.object("otherRectangle",o),M(c)||(c=new q);let y=n.east,p=n.west,O=o.east,e=o.west;y<p&&O>0?y+=E.TWO_PI:O<e&&y>0&&(O+=E.TWO_PI),y<p&&e<0?e+=E.TWO_PI:O<e&&p<0&&(p+=E.TWO_PI);let h=E.negativePiToPi(Math.min(p,e)),d=E.negativePiToPi(Math.max(y,O));return c.west=h,c.south=Math.min(n.south,o.south),c.east=d,c.north=Math.max(n.north,o.north),c};q.expand=function(n,o,c){return f.typeOf.object("rectangle",n),f.typeOf.object("cartographic",o),M(c)||(c=new q),c.west=Math.min(n.west,o.longitude),c.south=Math.min(n.south,o.latitude),c.east=Math.max(n.east,o.longitude),c.north=Math.max(n.north,o.latitude),c};q.contains=function(n,o){f.typeOf.object("rectangle",n),f.typeOf.object("cartographic",o);let c=o.longitude,y=o.latitude,p=n.west,O=n.east;return O<p&&(O+=E.TWO_PI,c<0&&(c+=E.TWO_PI)),(c>p||E.equalsEpsilon(c,p,E.EPSILON14))&&(c<O||E.equalsEpsilon(c,O,E.EPSILON14))&&y>=n.south&&y<=n.north};var Jn=new x;q.subsample=function(n,o,c,y){f.typeOf.object("rectangle",n),o=T(o,dn.WGS84),c=T(c,0),M(y)||(y=[]);let p=0,O=n.north,e=n.south,h=n.east,d=n.west,j=Jn;j.height=c,j.longitude=d,j.latitude=O,y[p]=o.cartographicToCartesian(j,y[p]),p++,j.longitude=h,y[p]=o.cartographicToCartesian(j,y[p]),p++,j.latitude=e,y[p]=o.cartographicToCartesian(j,y[p]),p++,j.longitude=d,y[p]=o.cartographicToCartesian(j,y[p]),p++,O<0?j.latitude=O:e>0?j.latitude=e:j.latitude=0;for(let R=1;R<8;++R)j.longitude=-Math.PI+R*E.PI_OVER_TWO,q.contains(n,j)&&(y[p]=o.cartographicToCartesian(j,y[p]),p++);return j.latitude===0&&(j.longitude=d,y[p]=o.cartographicToCartesian(j,y[p]),p++,j.longitude=h,y[p]=o.cartographicToCartesian(j,y[p]),p++),y.length=p,y};q.subsection=function(n,o,c,y,p,O){if(f.typeOf.object("rectangle",n),f.typeOf.number.greaterThanOrEquals("westLerp",o,0),f.typeOf.number.lessThanOrEquals("westLerp",o,1),f.typeOf.number.greaterThanOrEquals("southLerp",c,0),f.typeOf.number.lessThanOrEquals("southLerp",c,1),f.typeOf.number.greaterThanOrEquals("eastLerp",y,0),f.typeOf.number.lessThanOrEquals("eastLerp",y,1),f.typeOf.number.greaterThanOrEquals("northLerp",p,0),f.typeOf.number.lessThanOrEquals("northLerp",p,1),f.typeOf.number.lessThanOrEquals("westLerp",o,y),f.typeOf.number.lessThanOrEquals("southLerp",c,p),M(O)||(O=new q),n.west<=n.east){let h=n.east-n.west;O.west=n.west+o*h,O.east=n.west+y*h}else{let h=E.TWO_PI+n.east-n.west;O.west=E.negativePiToPi(n.west+o*h),O.east=E.negativePiToPi(n.west+y*h)}let e=n.north-n.south;return O.south=n.south+c*e,O.north=n.south+p*e,o===1&&(O.west=n.east),y===1&&(O.east=n.east),c===1&&(O.south=n.north),p===1&&(O.north=n.north),O};q.MAX_VALUE=Object.freeze(new q(-Math.PI,-E.PI_OVER_TWO,Math.PI,E.PI_OVER_TWO));var mo=q;function w(n,o){this.x=T(n,0),this.y=T(o,0)}w.fromElements=function(n,o,c){return M(c)?(c.x=n,c.y=o,c):new w(n,o)};w.clone=function(n,o){if(M(n))return M(o)?(o.x=n.x,o.y=n.y,o):new w(n.x,n.y)};w.fromCartesian3=w.clone;w.fromCartesian4=w.clone;w.packedLength=2;w.pack=function(n,o,c){return f.typeOf.object("value",n),f.defined("array",o),c=T(c,0),o[c++]=n.x,o[c]=n.y,o};w.unpack=function(n,o,c){return f.defined("array",n),o=T(o,0),M(c)||(c=new w),c.x=n[o++],c.y=n[o],c};w.packArray=function(n,o){f.defined("array",n);let c=n.length,y=c*2;if(!M(o))o=new Array(y);else{if(!Array.isArray(o)&&o.length!==y)throw new H("If result is a typed array, it must have exactly array.length * 2 elements");o.length!==y&&(o.length=y)}for(let p=0;p<c;++p)w.pack(n[p],o,p*2);return o};w.unpackArray=function(n,o){if(f.defined("array",n),f.typeOf.number.greaterThanOrEquals("array.length",n.length,2),n.length%2!==0)throw new H("array length must be a multiple of 2.");let c=n.length;M(o)?o.length=c/2:o=new Array(c/2);for(let y=0;y<c;y+=2){let p=y/2;o[p]=w.unpack(n,y,o[p])}return o};w.fromArray=w.unpack;w.maximumComponent=function(n){return f.typeOf.object("cartesian",n),Math.max(n.x,n.y)};w.minimumComponent=function(n){return f.typeOf.object("cartesian",n),Math.min(n.x,n.y)};w.minimumByComponent=function(n,o,c){return f.typeOf.object("first",n),f.typeOf.object("second",o),f.typeOf.object("result",c),c.x=Math.min(n.x,o.x),c.y=Math.min(n.y,o.y),c};w.maximumByComponent=function(n,o,c){return f.typeOf.object("first",n),f.typeOf.object("second",o),f.typeOf.object("result",c),c.x=Math.max(n.x,o.x),c.y=Math.max(n.y,o.y),c};w.clamp=function(n,o,c,y){f.typeOf.object("value",n),f.typeOf.object("min",o),f.typeOf.object("max",c),f.typeOf.object("result",y);let p=E.clamp(n.x,o.x,c.x),O=E.clamp(n.y,o.y,c.y);return y.x=p,y.y=O,y};w.magnitudeSquared=function(n){return f.typeOf.object("cartesian",n),n.x*n.x+n.y*n.y};w.magnitude=function(n){return Math.sqrt(w.magnitudeSquared(n))};var On=new w;w.distance=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),w.subtract(n,o,On),w.magnitude(On)};w.distanceSquared=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),w.subtract(n,o,On),w.magnitudeSquared(On)};w.normalize=function(n,o){f.typeOf.object("cartesian",n),f.typeOf.object("result",o);let c=w.magnitude(n);if(o.x=n.x/c,o.y=n.y/c,isNaN(o.x)||isNaN(o.y))throw new H("normalized result is not a number");return o};w.dot=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),n.x*o.x+n.y*o.y};w.cross=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),n.x*o.y-n.y*o.x};w.multiplyComponents=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x*o.x,c.y=n.y*o.y,c};w.divideComponents=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x/o.x,c.y=n.y/o.y,c};w.add=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x+o.x,c.y=n.y+o.y,c};w.subtract=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c.x=n.x-o.x,c.y=n.y-o.y,c};w.multiplyByScalar=function(n,o,c){return f.typeOf.object("cartesian",n),f.typeOf.number("scalar",o),f.typeOf.object("result",c),c.x=n.x*o,c.y=n.y*o,c};w.divideByScalar=function(n,o,c){return f.typeOf.object("cartesian",n),f.typeOf.number("scalar",o),f.typeOf.object("result",c),c.x=n.x/o,c.y=n.y/o,c};w.negate=function(n,o){return f.typeOf.object("cartesian",n),f.typeOf.object("result",o),o.x=-n.x,o.y=-n.y,o};w.abs=function(n,o){return f.typeOf.object("cartesian",n),f.typeOf.object("result",o),o.x=Math.abs(n.x),o.y=Math.abs(n.y),o};var An=new w;w.lerp=function(n,o,c,y){return f.typeOf.object("start",n),f.typeOf.object("end",o),f.typeOf.number("t",c),f.typeOf.object("result",y),w.multiplyByScalar(o,c,An),y=w.multiplyByScalar(n,1-c,y),w.add(An,y,y)};var Cn=new w,Sn=new w;w.angleBetween=function(n,o){return f.typeOf.object("left",n),f.typeOf.object("right",o),w.normalize(n,Cn),w.normalize(o,Sn),E.acosClamped(w.dot(Cn,Sn))};var Kn=new w;w.mostOrthogonalAxis=function(n,o){f.typeOf.object("cartesian",n),f.typeOf.object("result",o);let c=w.normalize(n,Kn);return w.abs(c,c),c.x<=c.y?o=w.clone(w.UNIT_X,o):o=w.clone(w.UNIT_Y,o),o};w.equals=function(n,o){return n===o||M(n)&&M(o)&&n.x===o.x&&n.y===o.y};w.equalsArray=function(n,o,c){return n.x===o[c]&&n.y===o[c+1]};w.equalsEpsilon=function(n,o,c,y){return n===o||M(n)&&M(o)&&E.equalsEpsilon(n.x,o.x,c,y)&&E.equalsEpsilon(n.y,o.y,c,y)};w.ZERO=Object.freeze(new w(0,0));w.ONE=Object.freeze(new w(1,1));w.UNIT_X=Object.freeze(new w(1,0));w.UNIT_Y=Object.freeze(new w(0,1));w.prototype.clone=function(n){return w.clone(this,n)};w.prototype.equals=function(n){return w.equals(this,n)};w.prototype.equalsEpsilon=function(n,o,c){return w.equalsEpsilon(this,n,o,c)};w.prototype.toString=function(){return`(${this.x}, ${this.y})`};var J=w;function z(n,o,c,y){this[0]=T(n,0),this[1]=T(c,0),this[2]=T(o,0),this[3]=T(y,0)}z.packedLength=4;z.pack=function(n,o,c){return f.typeOf.object("value",n),f.defined("array",o),c=T(c,0),o[c++]=n[0],o[c++]=n[1],o[c++]=n[2],o[c++]=n[3],o};z.unpack=function(n,o,c){return f.defined("array",n),o=T(o,0),M(c)||(c=new z),c[0]=n[o++],c[1]=n[o++],c[2]=n[o++],c[3]=n[o++],c};z.packArray=function(n,o){f.defined("array",n);let c=n.length,y=c*4;if(!M(o))o=new Array(y);else{if(!Array.isArray(o)&&o.length!==y)throw new H("If result is a typed array, it must have exactly array.length * 4 elements");o.length!==y&&(o.length=y)}for(let p=0;p<c;++p)z.pack(n[p],o,p*4);return o};z.unpackArray=function(n,o){if(f.defined("array",n),f.typeOf.number.greaterThanOrEquals("array.length",n.length,4),n.length%4!==0)throw new H("array length must be a multiple of 4.");let c=n.length;M(o)?o.length=c/4:o=new Array(c/4);for(let y=0;y<c;y+=4){let p=y/4;o[p]=z.unpack(n,y,o[p])}return o};z.clone=function(n,o){if(M(n))return M(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o):new z(n[0],n[2],n[1],n[3])};z.fromArray=z.unpack;z.fromColumnMajorArray=function(n,o){return f.defined("values",n),z.clone(n,o)};z.fromRowMajorArray=function(n,o){return f.defined("values",n),M(o)?(o[0]=n[0],o[1]=n[2],o[2]=n[1],o[3]=n[3],o):new z(n[0],n[1],n[2],n[3])};z.fromScale=function(n,o){return f.typeOf.object("scale",n),M(o)?(o[0]=n.x,o[1]=0,o[2]=0,o[3]=n.y,o):new z(n.x,0,0,n.y)};z.fromUniformScale=function(n,o){return f.typeOf.number("scale",n),M(o)?(o[0]=n,o[1]=0,o[2]=0,o[3]=n,o):new z(n,0,0,n)};z.fromRotation=function(n,o){f.typeOf.number("angle",n);let c=Math.cos(n),y=Math.sin(n);return M(o)?(o[0]=c,o[1]=y,o[2]=-y,o[3]=c,o):new z(c,-y,y,c)};z.toArray=function(n,o){return f.typeOf.object("matrix",n),M(o)?(o[0]=n[0],o[1]=n[1],o[2]=n[2],o[3]=n[3],o):[n[0],n[1],n[2],n[3]]};z.getElementIndex=function(n,o){return f.typeOf.number.greaterThanOrEquals("row",o,0),f.typeOf.number.lessThanOrEquals("row",o,1),f.typeOf.number.greaterThanOrEquals("column",n,0),f.typeOf.number.lessThanOrEquals("column",n,1),n*2+o};z.getColumn=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,1),f.typeOf.object("result",c);let y=o*2,p=n[y],O=n[y+1];return c.x=p,c.y=O,c};z.setColumn=function(n,o,c,y){f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,1),f.typeOf.object("cartesian",c),f.typeOf.object("result",y),y=z.clone(n,y);let p=o*2;return y[p]=c.x,y[p+1]=c.y,y};z.getRow=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,1),f.typeOf.object("result",c);let y=n[o],p=n[o+2];return c.x=y,c.y=p,c};z.setRow=function(n,o,c,y){return f.typeOf.object("matrix",n),f.typeOf.number.greaterThanOrEquals("index",o,0),f.typeOf.number.lessThanOrEquals("index",o,1),f.typeOf.object("cartesian",c),f.typeOf.object("result",y),y=z.clone(n,y),y[o]=c.x,y[o+2]=c.y,y};var Fn=new J;z.setScale=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("scale",o),f.typeOf.object("result",c);let y=z.getScale(n,Fn),p=o.x/y.x,O=o.y/y.y;return c[0]=n[0]*p,c[1]=n[1]*p,c[2]=n[2]*O,c[3]=n[3]*O,c};var vn=new J;z.setUniformScale=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.number("scale",o),f.typeOf.object("result",c);let y=z.getScale(n,vn),p=o/y.x,O=o/y.y;return c[0]=n[0]*p,c[1]=n[1]*p,c[2]=n[2]*O,c[3]=n[3]*O,c};var Nn=new J;z.getScale=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o.x=J.magnitude(J.fromElements(n[0],n[1],Nn)),o.y=J.magnitude(J.fromElements(n[2],n[3],Nn)),o};var Pn=new J;z.getMaximumScale=function(n){return z.getScale(n,Pn),J.maximumComponent(Pn)};var gn=new J;z.setRotation=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("result",c);let y=z.getScale(n,gn);return c[0]=o[0]*y.x,c[1]=o[1]*y.x,c[2]=o[2]*y.y,c[3]=o[3]*y.y,c};var un=new J;z.getRotation=function(n,o){f.typeOf.object("matrix",n),f.typeOf.object("result",o);let c=z.getScale(n,un);return o[0]=n[0]/c.x,o[1]=n[1]/c.x,o[2]=n[2]/c.y,o[3]=n[3]/c.y,o};z.multiply=function(n,o,c){f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c);let y=n[0]*o[0]+n[2]*o[1],p=n[0]*o[2]+n[2]*o[3],O=n[1]*o[0]+n[3]*o[1],e=n[1]*o[2]+n[3]*o[3];return c[0]=y,c[1]=O,c[2]=p,c[3]=e,c};z.add=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c[0]=n[0]+o[0],c[1]=n[1]+o[1],c[2]=n[2]+o[2],c[3]=n[3]+o[3],c};z.subtract=function(n,o,c){return f.typeOf.object("left",n),f.typeOf.object("right",o),f.typeOf.object("result",c),c[0]=n[0]-o[0],c[1]=n[1]-o[1],c[2]=n[2]-o[2],c[3]=n[3]-o[3],c};z.multiplyByVector=function(n,o,c){f.typeOf.object("matrix",n),f.typeOf.object("cartesian",o),f.typeOf.object("result",c);let y=n[0]*o.x+n[2]*o.y,p=n[1]*o.x+n[3]*o.y;return c.x=y,c.y=p,c};z.multiplyByScalar=function(n,o,c){return f.typeOf.object("matrix",n),f.typeOf.number("scalar",o),f.typeOf.object("result",c),c[0]=n[0]*o,c[1]=n[1]*o,c[2]=n[2]*o,c[3]=n[3]*o,c};z.multiplyByScale=function(n,o,c){return f.typeOf.object("matrix",n),f.typeOf.object("scale",o),f.typeOf.object("result",c),c[0]=n[0]*o.x,c[1]=n[1]*o.x,c[2]=n[2]*o.y,c[3]=n[3]*o.y,c};z.multiplyByUniformScale=function(n,o,c){return f.typeOf.object("matrix",n),f.typeOf.number("scale",o),f.typeOf.object("result",c),c[0]=n[0]*o,c[1]=n[1]*o,c[2]=n[2]*o,c[3]=n[3]*o,c};z.negate=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o[0]=-n[0],o[1]=-n[1],o[2]=-n[2],o[3]=-n[3],o};z.transpose=function(n,o){f.typeOf.object("matrix",n),f.typeOf.object("result",o);let c=n[0],y=n[2],p=n[1],O=n[3];return o[0]=c,o[1]=y,o[2]=p,o[3]=O,o};z.abs=function(n,o){return f.typeOf.object("matrix",n),f.typeOf.object("result",o),o[0]=Math.abs(n[0]),o[1]=Math.abs(n[1]),o[2]=Math.abs(n[2]),o[3]=Math.abs(n[3]),o};z.equals=function(n,o){return n===o||M(n)&&M(o)&&n[0]===o[0]&&n[1]===o[1]&&n[2]===o[2]&&n[3]===o[3]};z.equalsArray=function(n,o,c){return n[0]===o[c]&&n[1]===o[c+1]&&n[2]===o[c+2]&&n[3]===o[c+3]};z.equalsEpsilon=function(n,o,c){return c=T(c,0),n===o||M(n)&&M(o)&&Math.abs(n[0]-o[0])<=c&&Math.abs(n[1]-o[1])<=c&&Math.abs(n[2]-o[2])<=c&&Math.abs(n[3]-o[3])<=c};z.IDENTITY=Object.freeze(new z(1,0,0,1));z.ZERO=Object.freeze(new z(0,0,0,0));z.COLUMN0ROW0=0;z.COLUMN0ROW1=1;z.COLUMN1ROW0=2;z.COLUMN1ROW1=3;Object.defineProperties(z.prototype,{length:{get:function(){return z.packedLength}}});z.prototype.clone=function(n){return z.clone(this,n)};z.prototype.equals=function(n){return z.equals(this,n)};z.prototype.equalsEpsilon=function(n,o){return z.equalsEpsilon(this,n,o)};z.prototype.toString=function(){return`(${this[0]}, ${this[2]}) +(${this[1]}, ${this[3]})`};var Vo=z;export{pn as a,ho as b,mo as c,J as d,Vo as e}; diff --git a/libs/cesium/1.111/Workers/chunk-KD2PMTHD.js b/libs/cesium/1.111/Workers/chunk-KD2PMTHD.js new file mode 100644 index 000000000..7575432d8 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-KD2PMTHD.js @@ -0,0 +1,27 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{e as u}from"./chunk-ZUCO5WNM.js";function f(t){this.name="DeveloperError",this.message=t;let e;try{throw new Error}catch(o){e=o.stack}this.stack=e}u(Object.create)&&(f.prototype=Object.create(Error.prototype),f.prototype.constructor=f);f.prototype.toString=function(){let t=`${this.name}: ${this.message}`;return u(this.stack)&&(t+=` +${this.stack.toString()}`),t};f.throwInstantiationError=function(){throw new f("This function defines an interface and should not be called directly.")};var r=f;var n={};n.typeOf={};function c(t){return`${t} is required, actual value was undefined`}function a(t,e,o){return`Expected ${o} to be typeof ${e}, actual typeof was ${t}`}n.defined=function(t,e){if(!u(e))throw new r(c(t))};n.typeOf.func=function(t,e){if(typeof e!="function")throw new r(a(typeof e,"function",t))};n.typeOf.string=function(t,e){if(typeof e!="string")throw new r(a(typeof e,"string",t))};n.typeOf.number=function(t,e){if(typeof e!="number")throw new r(a(typeof e,"number",t))};n.typeOf.number.lessThan=function(t,e,o){if(n.typeOf.number(t,e),e>=o)throw new r(`Expected ${t} to be less than ${o}, actual value was ${e}`)};n.typeOf.number.lessThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e>o)throw new r(`Expected ${t} to be less than or equal to ${o}, actual value was ${e}`)};n.typeOf.number.greaterThan=function(t,e,o){if(n.typeOf.number(t,e),e<=o)throw new r(`Expected ${t} to be greater than ${o}, actual value was ${e}`)};n.typeOf.number.greaterThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e<o)throw new r(`Expected ${t} to be greater than or equal to ${o}, actual value was ${e}`)};n.typeOf.object=function(t,e){if(typeof e!="object")throw new r(a(typeof e,"object",t))};n.typeOf.bool=function(t,e){if(typeof e!="boolean")throw new r(a(typeof e,"boolean",t))};n.typeOf.bigint=function(t,e){if(typeof e!="bigint")throw new r(a(typeof e,"bigint",t))};n.typeOf.number.equals=function(t,e,o,i){if(n.typeOf.number(t,o),n.typeOf.number(e,i),o!==i)throw new r(`${t} must be equal to ${e}, the actual values are ${o} and ${i}`)};var l=n;export{r as a,l as b}; diff --git a/libs/cesium/1.111/Workers/chunk-MM64X6QX.js b/libs/cesium/1.111/Workers/chunk-MM64X6QX.js new file mode 100644 index 000000000..18fe746f2 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-MM64X6QX.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Q}from"./chunk-AAIHI2WK.js";import{a as z}from"./chunk-N52FZRFP.js";import{a as _}from"./chunk-WIRUK4BS.js";import{a as K}from"./chunk-JZL634RF.js";import{a as H}from"./chunk-3UAKIC5Y.js";import{b as J,c as W,d as P}from"./chunk-QEWKHB6D.js";import{d as j}from"./chunk-DV7DPSRL.js";import{d as k}from"./chunk-KCIWEUSR.js";import{a as L}from"./chunk-7XDW3BZW.js";import{a as b}from"./chunk-F33YCXD2.js";import{a as Z}from"./chunk-DUBQPPQZ.js";import{a as x}from"./chunk-K36PKEJW.js";import{a as F}from"./chunk-KD2PMTHD.js";import{e as g}from"./chunk-ZUCO5WNM.js";var M=new k,ot=new b,nt=new b,it=new b,st=new b;function O(t){t=x(t,x.EMPTY_OBJECT);let n=t.length,e=t.topRadius,h=t.bottomRadius,o=x(t.vertexFormat,_.DEFAULT),r=x(t.slices,128);if(!g(n))throw new F("options.length must be defined.");if(!g(e))throw new F("options.topRadius must be defined.");if(!g(h))throw new F("options.bottomRadius must be defined.");if(r<3)throw new F("options.slices must be greater than or equal to 3.");if(g(t.offsetAttribute)&&t.offsetAttribute===z.TOP)throw new F("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._length=n,this._topRadius=e,this._bottomRadius=h,this._vertexFormat=_.clone(o),this._slices=r,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderGeometry"}O.packedLength=_.packedLength+5;O.pack=function(t,n,e){if(!g(t))throw new F("value is required");if(!g(n))throw new F("array is required");return e=x(e,0),_.pack(t._vertexFormat,n,e),e+=_.packedLength,n[e++]=t._length,n[e++]=t._topRadius,n[e++]=t._bottomRadius,n[e++]=t._slices,n[e]=x(t._offsetAttribute,-1),n};var X=new _,C={vertexFormat:X,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};O.unpack=function(t,n,e){if(!g(t))throw new F("array is required");n=x(n,0);let h=_.unpack(t,n,X);n+=_.packedLength;let o=t[n++],r=t[n++],p=t[n++],D=t[n++],w=t[n];return g(e)?(e._vertexFormat=_.clone(h,e._vertexFormat),e._length=o,e._topRadius=r,e._bottomRadius=p,e._slices=D,e._offsetAttribute=w===-1?void 0:w,e):(C.length=o,C.topRadius=r,C.bottomRadius=p,C.slices=D,C.offsetAttribute=w===-1?void 0:w,new O(C))};O.createGeometry=function(t){let n=t._length,e=t._topRadius,h=t._bottomRadius,o=t._vertexFormat,r=t._slices;if(n<=0||e<0||h<0||e===0&&h===0)return;let p=r+r,D=r+p,w=p+p,E=Q.computePositions(n,e,h,r,!0),N=o.st?new Float32Array(w*2):void 0,c=o.normal?new Float32Array(w*3):void 0,m=o.tangent?new Float32Array(w*3):void 0,u=o.bitangent?new Float32Array(w*3):void 0,i,U=o.normal||o.tangent||o.bitangent;if(U){let T=o.tangent||o.bitangent,f=0,d=0,l=0,q=Math.atan2(h-e,n),A=ot;A.z=Math.sin(q);let B=Math.cos(q),R=it,y=nt;for(i=0;i<r;i++){let Y=i/r*Z.TWO_PI,tt=B*Math.cos(Y),et=B*Math.sin(Y);U&&(A.x=tt,A.y=et,T&&(R=b.normalize(b.cross(b.UNIT_Z,A,R),R)),o.normal&&(c[f++]=A.x,c[f++]=A.y,c[f++]=A.z,c[f++]=A.x,c[f++]=A.y,c[f++]=A.z),o.tangent&&(m[d++]=R.x,m[d++]=R.y,m[d++]=R.z,m[d++]=R.x,m[d++]=R.y,m[d++]=R.z),o.bitangent&&(y=b.normalize(b.cross(A,R,y),y),u[l++]=y.x,u[l++]=y.y,u[l++]=y.z,u[l++]=y.x,u[l++]=y.y,u[l++]=y.z))}for(i=0;i<r;i++)o.normal&&(c[f++]=0,c[f++]=0,c[f++]=-1),o.tangent&&(m[d++]=1,m[d++]=0,m[d++]=0),o.bitangent&&(u[l++]=0,u[l++]=-1,u[l++]=0);for(i=0;i<r;i++)o.normal&&(c[f++]=0,c[f++]=0,c[f++]=1),o.tangent&&(m[d++]=1,m[d++]=0,m[d++]=0),o.bitangent&&(u[l++]=0,u[l++]=1,u[l++]=0)}let $=12*r-12,s=K.createTypedArray(w,$),a=0,v=0;for(i=0;i<r-1;i++)s[a++]=v,s[a++]=v+2,s[a++]=v+3,s[a++]=v,s[a++]=v+3,s[a++]=v+1,v+=2;for(s[a++]=p-2,s[a++]=0,s[a++]=1,s[a++]=p-2,s[a++]=1,s[a++]=p-1,i=1;i<r-1;i++)s[a++]=p+i+1,s[a++]=p+i,s[a++]=p;for(i=1;i<r-1;i++)s[a++]=D,s[a++]=D+i,s[a++]=D+i+1;let V=0;if(o.st){let T=Math.max(e,h);for(i=0;i<w;i++){let f=b.fromArray(E,i*3,st);N[V++]=(f.x+T)/(2*T),N[V++]=(f.y+T)/(2*T)}}let S=new H;o.position&&(S.position=new P({componentDatatype:L.DOUBLE,componentsPerAttribute:3,values:E})),o.normal&&(S.normal=new P({componentDatatype:L.FLOAT,componentsPerAttribute:3,values:c})),o.tangent&&(S.tangent=new P({componentDatatype:L.FLOAT,componentsPerAttribute:3,values:m})),o.bitangent&&(S.bitangent=new P({componentDatatype:L.FLOAT,componentsPerAttribute:3,values:u})),o.st&&(S.st=new P({componentDatatype:L.FLOAT,componentsPerAttribute:2,values:N})),M.x=n*.5,M.y=Math.max(h,e);let I=new j(b.ZERO,k.magnitude(M));if(g(t._offsetAttribute)){n=E.length;let T=t._offsetAttribute===z.NONE?0:1,f=new Uint8Array(n/3).fill(T);S.applyOffset=new P({componentDatatype:L.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new W({attributes:S,indices:s,primitiveType:J.TRIANGLES,boundingSphere:I,offsetAttribute:t._offsetAttribute})};var G;O.getUnitCylinder=function(){return g(G)||(G=O.createGeometry(new O({topRadius:1,bottomRadius:1,length:1,vertexFormat:_.POSITION_ONLY}))),G};var yt=O;export{yt as a}; diff --git a/libs/cesium/1.111/Workers/chunk-MYZVCQ3M.js b/libs/cesium/1.111/Workers/chunk-MYZVCQ3M.js new file mode 100644 index 000000000..aa5405c55 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-MYZVCQ3M.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-Y33I6CKI.js";import{a as P}from"./chunk-EFCSU2FF.js";import{a as O,b as L}from"./chunk-F33YCXD2.js";import{a as y}from"./chunk-DUBQPPQZ.js";import{e as S}from"./chunk-ZUCO5WNM.js";var T={};function b(a,e){return y.equalsEpsilon(a.latitude,e.latitude,y.EPSILON10)&&y.equalsEpsilon(a.longitude,e.longitude,y.EPSILON10)}var q=new L,v=new L;function w(a,e,i,h){e=P(e,O.equalsEpsilon);let p=e.length;if(p<2)return;let E=S(h),u=S(i),l=new Array(p),g=new Array(p),r=new Array(p),d=e[0];l[0]=d;let f=a.cartesianToCartographic(d,q);u&&(f.height=i[0]),g[0]=f.height,E?r[0]=h[0]:r[0]=0;let o=g[0],m=r[0],t=o===m,n=1;for(let c=1;c<p;++c){let A=e[c],s=a.cartesianToCartographic(A,v);u&&(s.height=i[c]),t=t&&s.height===0,b(f,s)?f.height<s.height&&(g[n-1]=s.height):(l[n]=A,g[n]=s.height,E?r[n]=h[c]:r[n]=0,t=t&&g[n]===r[n],L.clone(s,f),++n)}if(!(t||n<2))return l.length=n,g.length=n,r.length=n,{positions:l,topHeights:g,bottomHeights:r}}var D=new Array(2),F=new Array(2),B={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};T.computePositions=function(a,e,i,h,p,E){let u=w(a,e,i,h);if(!S(u))return;e=u.positions,i=u.topHeights,h=u.bottomHeights;let l=e.length,g=l-2,r,d,f=y.chordLength(p,a.maximumRadius),o=B;if(o.minDistance=f,o.ellipsoid=a,E){let m=0,t;for(t=0;t<l-1;t++)m+=C.numberOfPoints(e[t],e[t+1],f)+1;r=new Float64Array(m*3),d=new Float64Array(m*3);let n=D,c=F;o.positions=n,o.height=c;let A=0;for(t=0;t<l-1;t++){n[0]=e[t],n[1]=e[t+1],c[0]=i[t],c[1]=i[t+1];let s=C.generateArc(o);r.set(s,A),c[0]=h[t],c[1]=h[t+1],d.set(C.generateArc(o),A),A+=s.length}}else o.positions=e,o.height=i,r=new Float64Array(C.generateArc(o)),o.height=h,d=new Float64Array(C.generateArc(o));return{bottomPositions:d,topPositions:r,numCorners:g}};var j=T;export{j as a}; diff --git a/libs/cesium/1.111/Workers/chunk-N52FZRFP.js b/libs/cesium/1.111/Workers/chunk-N52FZRFP.js new file mode 100644 index 000000000..ac7d40be2 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-N52FZRFP.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var e={NONE:0,TOP:1,ALL:2},t=Object.freeze(e);export{t as a}; diff --git a/libs/cesium/1.111/Workers/chunk-NLQJPKTT.js b/libs/cesium/1.111/Workers/chunk-NLQJPKTT.js new file mode 100644 index 000000000..a4a05c183 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-NLQJPKTT.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as le}from"./chunk-J4D4SQY2.js";import{a as Z}from"./chunk-Y33I6CKI.js";import{a as R}from"./chunk-JMG4RN2X.js";import{f as _,i as se}from"./chunk-DV7DPSRL.js";import{a as ae,b as v,d as $}from"./chunk-KCIWEUSR.js";import{a as e,b as ce,d as j}from"./chunk-F33YCXD2.js";import{a as Q}from"./chunk-DUBQPPQZ.js";var we={ROUNDED:0,MITERED:1,BEVELED:2},L=Object.freeze(we);var g=[new e,new e],ge=new e,pe=new e,xe=new e,Se=new e,Te=new e,Ee=new e,Be=new e,Ce=new e,ze=new e,P=new e,W=new e,I={},ee=new ce;function Ae(o,c){let a=new Array(o.length);for(let r=0;r<o.length;r++){let t=o[r];ee=c.cartesianToCartographic(t,ee),a[r]=ee.height,o[r]=c.scaleToGeodeticSurface(t,t)}return a}function te(o,c,a,r){let t=o[0],n=o[1],f=e.angleBetween(t,n),s=Math.ceil(f/r),m=new Array(s),l;if(c===a){for(l=0;l<s;l++)m[l]=c;return m.push(a),m}let y=(a-c)/s;for(l=1;l<s;l++){let x=c+l*y;m[l]=x}return m[0]=c,m.push(a),m}var X=new e,Y=new e;function Oe(o,c,a,r){let t=new R(a,r),n=t.projectPointOntoPlane(e.add(a,o,X),X),f=t.projectPointOntoPlane(e.add(a,c,Y),Y),s=$.angleBetween(n,f);return f.x*n.y-f.y*n.x>=0?-s:s}var je=new e(-1,0,0),N=new v,De=new v,re=new j,Me=j.IDENTITY.clone(),ve=new e,Ne=new ae,ie=new e;function D(o,c,a,r,t,n,f,s){let m=ve,l=Ne;N=se.eastNorthUpToFixedFrame(o,t,N),m=v.multiplyByPointAsVector(N,je,m),m=e.normalize(m,m);let T=Oe(m,c,o,t);re=j.fromRotationZ(T,re),ie.z=n,N=v.multiplyTransformation(N,v.fromRotationTranslation(re,ie,De),N);let y=Me;y[0]=f;for(let x=0;x<s;x++)for(let i=0;i<a.length;i+=3)l=e.fromArray(a,i,l),l=j.multiplyByVector(y,l,l),l=v.multiplyByPoint(N,l,l),r.push(l.x,l.y,l.z);return r}var Ve=new e;function ne(o,c,a,r,t,n,f){for(let s=0;s<o.length;s+=3){let m=e.fromArray(o,s,Ve);r=D(m,c,a,r,t,n[s/3],f,1)}return r}function be(o,c){let a=o.length,r=new Array(a*6),t=0,n=c.x+c.width/2,f=c.y+c.height/2,s=o[0];r[t++]=s.x-n,r[t++]=0,r[t++]=s.y-f;for(let m=1;m<a;m++){s=o[m];let l=s.x-n,T=s.y-f;r[t++]=l,r[t++]=0,r[t++]=T,r[t++]=l,r[t++]=0,r[t++]=T}return s=o[0],r[t++]=s.x-n,r[t++]=0,r[t++]=s.y-f,r}function fe(o,c){let a=o.length,r=new Array(a*3),t=0,n=c.x+c.width/2,f=c.y+c.height/2;for(let s=0;s<a;s++)r[t++]=o[s].x-n,r[t++]=0,r[t++]=o[s].y-f;return r}var me=new _,ue=new e,he=new j;function ye(o,c,a,r,t,n,f,s,m,l){let T=e.angleBetween(e.subtract(c,o,P),e.subtract(a,o,W)),y=r===L.BEVELED?0:Math.ceil(T/Q.toRadians(5)),x;t?x=j.fromQuaternion(_.fromAxisAngle(e.negate(o,P),T/(y+1),me),he):x=j.fromQuaternion(_.fromAxisAngle(o,T/(y+1),me),he);let i,d;if(c=e.clone(c,ue),y>0){let M=l?2:1;for(let w=0;w<y;w++)c=j.multiplyByVector(x,c,c),i=e.subtract(c,o,P),i=e.normalize(i,i),t||(i=e.negate(i,i)),d=n.scaleToGeodeticSurface(c,W),f=D(d,i,s,f,n,m,1,M)}else i=e.subtract(c,o,P),i=e.normalize(i,i),t||(i=e.negate(i,i)),d=n.scaleToGeodeticSurface(c,W),f=D(d,i,s,f,n,m,1,1),a=e.clone(a,ue),i=e.subtract(a,o,P),i=e.normalize(i,i),t||(i=e.negate(i,i)),d=n.scaleToGeodeticSurface(a,W),f=D(d,i,s,f,n,m,1,1);return f}I.removeDuplicatesFromShape=function(o){let c=o.length,a=[];for(let r=c-1,t=0;t<c;r=t++){let n=o[r],f=o[t];$.equals(n,f)||a.push(f)}return a};I.angleIsGreaterThanPi=function(o,c,a,r){let t=new R(a,r),n=t.projectPointOntoPlane(e.add(a,o,X),X),f=t.projectPointOntoPlane(e.add(a,c,Y),Y);return f.x*n.y-f.y*n.x>=0};var Fe=new e,Ge=new e;I.computePositions=function(o,c,a,r,t){let n=r._ellipsoid,f=Ae(o,n),s=r._granularity,m=r._cornerType,l=t?be(c,a):fe(c,a),T=t?fe(c,a):void 0,y=a.height/2,x=a.width/2,i=o.length,d=[],M=t?[]:void 0,w=ge,O=pe,h=xe,S=Se,B=Te,C=Ee,z=Be,u=Ce,E=ze,p=o[0],V=o[1];S=n.geodeticSurfaceNormal(p,S),w=e.subtract(V,p,w),w=e.normalize(w,w),u=e.cross(S,w,u),u=e.normalize(u,u);let b=f[0],A=f[1];t&&(M=D(p,u,T,M,n,b+y,1,1)),E=e.clone(p,E),p=V,O=e.negate(w,O);let F,G;for(let U=1;U<i-1;U++){let oe=t?2:1;if(V=o[U+1],p.equals(V)){le("Positions are too close and are considered equivalent with rounding error.");continue}w=e.subtract(V,p,w),w=e.normalize(w,w),h=e.add(w,O,h),h=e.normalize(h,h),S=n.geodeticSurfaceNormal(p,S);let q=e.multiplyByScalar(S,e.dot(w,S),Fe);e.subtract(w,q,q),e.normalize(q,q);let H=e.multiplyByScalar(S,e.dot(O,S),Ge);if(e.subtract(O,H,H),e.normalize(H,H),!Q.equalsEpsilon(Math.abs(e.dot(q,H)),1,Q.EPSILON7)){h=e.cross(h,S,h),h=e.cross(S,h,h),h=e.normalize(h,h);let k=1/Math.max(.25,e.magnitude(e.cross(h,O,P))),K=I.angleIsGreaterThanPi(w,O,p,n);K?(B=e.add(p,e.multiplyByScalar(h,k*x,h),B),C=e.add(B,e.multiplyByScalar(u,x,C),C),g[0]=e.clone(E,g[0]),g[1]=e.clone(C,g[1]),F=te(g,b+y,A+y,s),G=Z.generateArc({positions:g,granularity:s,ellipsoid:n}),d=ne(G,u,l,d,n,F,1),u=e.cross(S,w,u),u=e.normalize(u,u),z=e.add(B,e.multiplyByScalar(u,x,z),z),m===L.ROUNDED||m===L.BEVELED?ye(B,C,z,m,K,n,d,l,A+y,t):(h=e.negate(h,h),d=D(p,h,l,d,n,A+y,k,oe)),E=e.clone(z,E)):(B=e.add(p,e.multiplyByScalar(h,k*x,h),B),C=e.add(B,e.multiplyByScalar(u,-x,C),C),g[0]=e.clone(E,g[0]),g[1]=e.clone(C,g[1]),F=te(g,b+y,A+y,s),G=Z.generateArc({positions:g,granularity:s,ellipsoid:n}),d=ne(G,u,l,d,n,F,1),u=e.cross(S,w,u),u=e.normalize(u,u),z=e.add(B,e.multiplyByScalar(u,-x,z),z),m===L.ROUNDED||m===L.BEVELED?ye(B,C,z,m,K,n,d,l,A+y,t):d=D(p,h,l,d,n,A+y,k,oe),E=e.clone(z,E)),O=e.negate(w,O)}else d=D(E,u,l,d,n,b+y,1,1),E=p;b=A,A=f[U+1],p=V}g[0]=e.clone(E,g[0]),g[1]=e.clone(p,g[1]),F=te(g,b+y,A+y,s),G=Z.generateArc({positions:g,granularity:s,ellipsoid:n}),d=ne(G,u,l,d,n,F,1),t&&(M=D(p,u,T,M,n,A+y,1,1)),i=d.length;let de=t?i+M.length:i,J=new Float64Array(de);return J.set(d),t&&J.set(M,i),J};var $e=I;export{L as a,$e as b}; diff --git a/libs/cesium/1.111/Workers/chunk-OH4CN3UY.js b/libs/cesium/1.111/Workers/chunk-OH4CN3UY.js new file mode 100644 index 000000000..e6db4a909 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-OH4CN3UY.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{c as Z}from"./chunk-DV7DPSRL.js";import{a as o,b as ft,d as b}from"./chunk-F33YCXD2.js";import{a as R}from"./chunk-DUBQPPQZ.js";import{a as H}from"./chunk-K36PKEJW.js";import{a as w,b as et}from"./chunk-KD2PMTHD.js";import{e as g}from"./chunk-ZUCO5WNM.js";var nt={};nt.computeDiscriminant=function(t,e,r){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");return e*e-4*t*r};function mt(t,e,r){let n=t+e;return R.sign(t)!==R.sign(e)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(e)))<r?0:n}nt.computeRealRoots=function(t,e,r){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");let n;if(t===0)return e===0?[]:[-r/e];if(e===0){if(r===0)return[0,0];let a=Math.abs(r),f=Math.abs(t);if(a<f&&a/f<R.EPSILON14)return[0,0];if(a>f&&f/a<R.EPSILON14)return[];if(n=-r/t,n<0)return[];let l=Math.sqrt(n);return[-l,l]}else if(r===0)return n=-e/t,n<0?[n,0]:[0,n];let i=e*e,c=4*t*r,s=mt(i,-c,R.EPSILON14);if(s<0)return[];let u=-.5*mt(e,R.sign(e)*Math.sqrt(s),R.EPSILON14);return e>0?[u/t,r/u]:[r/u,u/t]};var T=nt;var ot={};ot.computeDiscriminant=function(t,e,r,n){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");let i=t*t,c=e*e,s=r*r,u=n*n;return 18*t*e*r*n+c*s-27*i*u-4*(t*s*r+c*e*n)};function rt(t,e,r,n){let i=t,c=e/3,s=r/3,u=n,a=i*s,f=c*u,l=c*c,d=s*s,p=i*s-l,q=i*u-c*s,m=c*u-d,h=4*p*m-q*q,C,D;if(h<0){let X,k,G;l*f>=a*d?(X=i,k=p,G=-2*c*p+i*q):(X=u,k=m,G=-u*q+2*s*m);let at=-(G<0?-1:1)*Math.abs(X)*Math.sqrt(-h);D=-G+at;let $=D/2,j=$<0?-Math.pow(-$,1/3):Math.pow($,1/3),tt=D===at?-j:-k/j;return C=k<=0?j+tt:-G/(j*j+tt*tt+k),l*f>=a*d?[(C-c)/i]:[-u/(C+s)]}let W=p,V=-2*c*p+i*q,L=m,B=-u*q+2*s*m,I=Math.sqrt(h),E=Math.sqrt(3)/2,P=Math.abs(Math.atan2(i*I,-V)/3);C=2*Math.sqrt(-W);let y=Math.cos(P);D=C*y;let S=C*(-y/2-E*Math.sin(P)),M=D+S>2*c?D-c:S-c,N=i,x=M/N;P=Math.abs(Math.atan2(u*I,-B)/3),C=2*Math.sqrt(-L),y=Math.cos(P),D=C*y,S=C*(-y/2-E*Math.sin(P));let _=-u,A=D+S<2*s?D+s:S+s,v=_/A,yt=N*A,ut=-M*A-N*_,bt=M*_,U=(s*ut-c*bt)/(-c*ut+s*yt);return x<=U?x<=v?U<=v?[x,U,v]:[x,v,U]:[v,x,U]:x<=v?[U,x,v]:U<=v?[U,v,x]:[v,U,x]}ot.computeRealRoots=function(t,e,r,n){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");let i,c;if(t===0)return T.computeRealRoots(e,r,n);if(e===0){if(r===0){if(n===0)return[0,0,0];c=-n/t;let s=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3);return[s,s,s]}else if(n===0)return i=T.computeRealRoots(t,0,r),i.Length===0?[0]:[i[0],0,i[1]];return rt(t,0,r,n)}else{if(r===0)return n===0?(c=-e/t,c<0?[c,0,0]:[0,0,c]):rt(t,e,0,n);if(n===0)return i=T.computeRealRoots(t,e,r),i.length===0?[0]:i[1]<=0?[i[0],i[1],0]:i[0]>=0?[0,i[0],i[1]]:[i[0],0,i[1]]}return rt(t,e,r,n)};var F=ot;var it={};it.computeDiscriminant=function(t,e,r,n,i){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");if(typeof i!="number")throw new w("e is a required number.");let c=t*t,s=c*t,u=e*e,a=u*e,f=r*r,l=f*r,d=n*n,p=d*n,q=i*i,m=q*i;return u*f*d-4*a*p-4*t*l*d+18*t*e*r*p-27*c*d*d+256*s*m+i*(18*a*r*n-4*u*l+16*t*f*f-80*t*e*f*n-6*t*u*d+144*c*r*d)+q*(144*t*u*r-27*u*u-128*c*f-192*c*e*n)};function z(t,e,r,n){let i=t*t,c=e-3*i/8,s=r-e*t/2+i*t/8,u=n-r*t/4+e*i/16-3*i*i/256,a=F.computeRealRoots(1,2*c,c*c-4*u,-s*s);if(a.length>0){let f=-t/4,l=a[a.length-1];if(Math.abs(l)<R.EPSILON14){let d=T.computeRealRoots(1,c,u);if(d.length===2){let p=d[0],q=d[1],m;if(p>=0&&q>=0){let h=Math.sqrt(p),C=Math.sqrt(q);return[f-C,f-h,f+h,f+C]}else{if(p>=0&&q<0)return m=Math.sqrt(p),[f-m,f+m];if(p<0&&q>=0)return m=Math.sqrt(q),[f-m,f+m]}}return[]}else if(l>0){let d=Math.sqrt(l),p=(c+l-s/d)/2,q=(c+l+s/d)/2,m=T.computeRealRoots(1,d,p),h=T.computeRealRoots(1,-d,q);return m.length!==0?(m[0]+=f,m[1]+=f,h.length!==0?(h[0]+=f,h[1]+=f,m[1]<=h[0]?[m[0],m[1],h[0],h[1]]:h[1]<=m[0]?[h[0],h[1],m[0],m[1]]:m[0]>=h[0]&&m[1]<=h[1]?[h[0],m[0],m[1],h[1]]:h[0]>=m[0]&&h[1]<=m[1]?[m[0],h[0],h[1],m[1]]:m[0]>h[0]&&m[0]<h[1]?[h[0],m[0],h[1],m[1]]:[m[0],h[0],m[1],h[1]]):m):h.length!==0?(h[0]+=f,h[1]+=f,h):[]}}return[]}function Y(t,e,r,n){let i=r*r,c=e*e,s=t*t,u=-2*e,a=r*t+c-4*n,f=s*n-r*e*t+i,l=F.computeRealRoots(1,u,a,f);if(l.length>0){let d=l[0],p=e-d,q=p*p,m=t/2,h=p/2,C=q-4*n,D=q+4*Math.abs(n),W=s-4*d,V=s+4*Math.abs(d),L,B;if(d<0||C*V<W*D){let N=Math.sqrt(W);L=N/2,B=N===0?0:(t*h-r)/N}else{let N=Math.sqrt(C);L=N===0?0:(t*h-r)/N,B=N/2}let I,E;m===0&&L===0?(I=0,E=0):R.sign(m)===R.sign(L)?(I=m+L,E=d/I):(E=m-L,I=d/E);let P,y;h===0&&B===0?(P=0,y=0):R.sign(h)===R.sign(B)?(P=h+B,y=n/P):(y=h-B,P=n/y);let S=T.computeRealRoots(1,I,P),M=T.computeRealRoots(1,E,y);if(S.length!==0)return M.length!==0?S[1]<=M[0]?[S[0],S[1],M[0],M[1]]:M[1]<=S[0]?[M[0],M[1],S[0],S[1]]:S[0]>=M[0]&&S[1]<=M[1]?[M[0],S[0],S[1],M[1]]:M[0]>=S[0]&&M[1]<=S[1]?[S[0],M[0],M[1],S[1]]:S[0]>M[0]&&S[0]<M[1]?[M[0],S[0],M[1],S[1]]:[S[0],M[0],S[1],M[1]]:S;if(M.length!==0)return M}return[]}it.computeRealRoots=function(t,e,r,n,i){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");if(typeof i!="number")throw new w("e is a required number.");if(Math.abs(t)<R.EPSILON15)return F.computeRealRoots(e,r,n,i);let c=e/t,s=r/t,u=n/t,a=i/t,f=c<0?1:0;switch(f+=s<0?f+1:f,f+=u<0?f+1:f,f+=a<0?f+1:f,f){case 0:return z(c,s,u,a);case 1:return Y(c,s,u,a);case 2:return Y(c,s,u,a);case 3:return z(c,s,u,a);case 4:return z(c,s,u,a);case 5:return Y(c,s,u,a);case 6:return z(c,s,u,a);case 7:return z(c,s,u,a);case 8:return Y(c,s,u,a);case 9:return z(c,s,u,a);case 10:return z(c,s,u,a);case 11:return Y(c,s,u,a);case 12:return z(c,s,u,a);case 13:return z(c,s,u,a);case 14:return z(c,s,u,a);case 15:return z(c,s,u,a);default:return}};var dt=it;function J(t,e){e=o.clone(H(e,o.ZERO)),o.equals(e,o.ZERO)||o.normalize(e,e),this.origin=o.clone(H(t,o.ZERO)),this.direction=e}J.clone=function(t,e){if(g(t))return g(e)?(e.origin=o.clone(t.origin),e.direction=o.clone(t.direction),e):new J(t.origin,t.direction)};J.getPoint=function(t,e,r){return et.typeOf.object("ray",t),et.typeOf.number("t",e),g(r)||(r=new o),r=o.multiplyByScalar(t.direction,e,r),o.add(t.origin,r,r)};var st=J;var O={};O.rayPlane=function(t,e,r){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("plane is required.");g(r)||(r=new o);let n=t.origin,i=t.direction,c=e.normal,s=o.dot(c,i);if(Math.abs(s)<R.EPSILON15)return;let u=(-e.distance-o.dot(c,n))/s;if(!(u<0))return r=o.multiplyByScalar(i,u,r),o.add(n,r,r)};var Ot=new o,Pt=new o,Mt=new o,lt=new o,ht=new o;O.rayTriangleParametric=function(t,e,r,n,i){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("p0 is required.");if(!g(r))throw new w("p1 is required.");if(!g(n))throw new w("p2 is required.");i=H(i,!1);let c=t.origin,s=t.direction,u=o.subtract(r,e,Ot),a=o.subtract(n,e,Pt),f=o.cross(s,a,Mt),l=o.dot(u,f),d,p,q,m,h;if(i){if(l<R.EPSILON6||(d=o.subtract(c,e,lt),q=o.dot(d,f),q<0||q>l)||(p=o.cross(d,u,ht),m=o.dot(s,p),m<0||q+m>l))return;h=o.dot(a,p)/l}else{if(Math.abs(l)<R.EPSILON6)return;let C=1/l;if(d=o.subtract(c,e,lt),q=o.dot(d,f)*C,q<0||q>1||(p=o.cross(d,u,ht),m=o.dot(s,p)*C,m<0||q+m>1))return;h=o.dot(a,p)*C}return h};O.rayTriangle=function(t,e,r,n,i,c){let s=O.rayTriangleParametric(t,e,r,n,i);if(!(!g(s)||s<0))return g(c)||(c=new o),o.multiplyByScalar(t.direction,s,c),o.add(t.origin,c,c)};var Ct=new st;O.lineSegmentTriangle=function(t,e,r,n,i,c,s){if(!g(t))throw new w("v0 is required.");if(!g(e))throw new w("v1 is required.");if(!g(r))throw new w("p0 is required.");if(!g(n))throw new w("p1 is required.");if(!g(i))throw new w("p2 is required.");let u=Ct;o.clone(t,u.origin),o.subtract(e,t,u.direction),o.normalize(u.direction,u.direction);let a=O.rayTriangleParametric(u,r,n,i,c);if(!(!g(a)||a<0||a>o.distance(t,e)))return g(s)||(s=new o),o.multiplyByScalar(u.direction,a,s),o.add(u.origin,s,s)};function Et(t,e,r,n){let i=e*e-4*t*r;if(i<0)return;if(i>0){let s=1/(2*t),u=Math.sqrt(i),a=(-e+u)*s,f=(-e-u)*s;return a<f?(n.root0=a,n.root1=f):(n.root0=f,n.root1=a),n}let c=-e/(2*t);if(c!==0)return n.root0=n.root1=c,n}var Nt={root0:0,root1:0};function Rt(t,e,r){g(r)||(r=new Z);let n=t.origin,i=t.direction,c=e.center,s=e.radius*e.radius,u=o.subtract(n,c,Mt),a=o.dot(i,i),f=2*o.dot(i,u),l=o.magnitudeSquared(u)-s,d=Et(a,f,l,Nt);if(g(d))return r.start=d.root0,r.stop=d.root1,r}O.raySphere=function(t,e,r){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("sphere is required.");if(r=Rt(t,e,r),!(!g(r)||r.stop<0))return r.start=Math.max(r.start,0),r};var Lt=new st;O.lineSegmentSphere=function(t,e,r,n){if(!g(t))throw new w("p0 is required.");if(!g(e))throw new w("p1 is required.");if(!g(r))throw new w("sphere is required.");let i=Lt;o.clone(t,i.origin);let c=o.subtract(e,t,i.direction),s=o.magnitude(c);if(o.normalize(c,c),n=Rt(i,r,n),!(!g(n)||n.stop<0||n.start>s))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,s),n};var It=new o,Dt=new o;O.rayEllipsoid=function(t,e){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("ellipsoid is required.");let r=e.oneOverRadii,n=o.multiplyComponents(r,t.origin,It),i=o.multiplyComponents(r,t.direction,Dt),c=o.magnitudeSquared(n),s=o.dot(n,i),u,a,f,l,d;if(c>1){if(s>=0)return;let p=s*s;if(u=c-1,a=o.magnitudeSquared(i),f=a*u,p<f)return;if(p>f){l=s*s-f,d=-s+Math.sqrt(l);let m=d/a,h=u/d;return m<h?new Z(m,h):{start:h,stop:m}}let q=Math.sqrt(u/a);return new Z(q,q)}else if(c<1)return u=c-1,a=o.magnitudeSquared(i),f=a*u,l=s*s-f,d=-s+Math.sqrt(l),new Z(0,d/a);if(s<0)return a=o.magnitudeSquared(i),new Z(0,-s/a)};function Q(t,e,r){let n=t+e;return R.sign(t)!==R.sign(e)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(e)))<r?0:n}function Bt(t,e,r,n,i){let c=n*n,s=i*i,u=(t[b.COLUMN1ROW1]-t[b.COLUMN2ROW2])*s,a=i*(n*Q(t[b.COLUMN1ROW0],t[b.COLUMN0ROW1],R.EPSILON15)+e.y),f=t[b.COLUMN0ROW0]*c+t[b.COLUMN2ROW2]*s+n*e.x+r,l=s*Q(t[b.COLUMN2ROW1],t[b.COLUMN1ROW2],R.EPSILON15),d=i*(n*Q(t[b.COLUMN2ROW0],t[b.COLUMN0ROW2])+e.z),p,q=[];if(d===0&&l===0){if(p=T.computeRealRoots(u,a,f),p.length===0)return q;let P=p[0],y=Math.sqrt(Math.max(1-P*P,0));if(q.push(new o(n,i*P,i*-y)),q.push(new o(n,i*P,i*y)),p.length===2){let S=p[1],M=Math.sqrt(Math.max(1-S*S,0));q.push(new o(n,i*S,i*-M)),q.push(new o(n,i*S,i*M))}return q}let m=d*d,h=l*l,C=u*u,D=d*l,W=C+h,V=2*(a*u+D),L=2*f*u+a*a-h+m,B=2*(f*a-D),I=f*f-m;if(W===0&&V===0&&L===0&&B===0)return q;p=dt.computeRealRoots(W,V,L,B,I);let E=p.length;if(E===0)return q;for(let P=0;P<E;++P){let y=p[P],S=y*y,M=Math.max(1-S,0),N=Math.sqrt(M),x;R.sign(u)===R.sign(f)?x=Q(u*S+f,a*y,R.EPSILON12):R.sign(f)===R.sign(a*y)?x=Q(u*S,a*y+f,R.EPSILON12):x=Q(u*S+a*y,f,R.EPSILON12);let _=Q(l*y,d,R.EPSILON15),A=x*_;A<0?q.push(new o(n,i*y,i*N)):A>0?q.push(new o(n,i*y,i*-N)):N!==0?(q.push(new o(n,i*y,i*-N)),q.push(new o(n,i*y,i*N)),++P):q.push(new o(n,i*y,i*N))}return q}var ct=new o,wt=new o,qt=new o,K=new o,xt=new o,Tt=new b,zt=new b,Wt=new b,Vt=new b,vt=new b,gt=new b,pt=new b,St=new o,Ut=new o,Qt=new ft;O.grazingAltitudeLocation=function(t,e){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("ellipsoid is required.");let r=t.origin,n=t.direction;if(!o.equals(r,o.ZERO)){let I=e.geodeticSurfaceNormal(r,ct);if(o.dot(n,I)>=0)return r}let i=g(this.rayEllipsoid(t,e)),c=e.transformPositionToScaledSpace(n,ct),s=o.normalize(c,c),u=o.mostOrthogonalAxis(c,K),a=o.normalize(o.cross(u,s,wt),wt),f=o.normalize(o.cross(s,a,qt),qt),l=Tt;l[0]=s.x,l[1]=s.y,l[2]=s.z,l[3]=a.x,l[4]=a.y,l[5]=a.z,l[6]=f.x,l[7]=f.y,l[8]=f.z;let d=b.transpose(l,zt),p=b.fromScale(e.radii,Wt),q=b.fromScale(e.oneOverRadii,Vt),m=vt;m[0]=0,m[1]=-n.z,m[2]=n.y,m[3]=n.z,m[4]=0,m[5]=-n.x,m[6]=-n.y,m[7]=n.x,m[8]=0;let h=b.multiply(b.multiply(d,q,gt),m,gt),C=b.multiply(b.multiply(h,p,pt),l,pt),D=b.multiplyByVector(h,r,xt),W=Bt(C,o.negate(D,ct),0,0,1),V,L,B=W.length;if(B>0){let I=o.clone(o.ZERO,Ut),E=Number.NEGATIVE_INFINITY;for(let y=0;y<B;++y){V=b.multiplyByVector(p,b.multiplyByVector(l,W[y],St),St);let S=o.normalize(o.subtract(V,r,K),K),M=o.dot(S,n);M>E&&(E=M,I=o.clone(V,I))}let P=e.cartesianToCartographic(I,Qt);return E=R.clamp(E,0,1),L=o.magnitude(o.subtract(I,r,K))*Math.sqrt(1-E*E),L=i?-L:L,P.height=L,e.cartographicToCartesian(P,new o)}};var At=new o;O.lineSegmentPlane=function(t,e,r,n){if(!g(t))throw new w("endPoint0 is required.");if(!g(e))throw new w("endPoint1 is required.");if(!g(r))throw new w("plane is required.");g(n)||(n=new o);let i=o.subtract(e,t,At),c=r.normal,s=o.dot(c,i);if(Math.abs(s)<R.EPSILON6)return;let u=o.dot(c,t),a=-(r.distance+u)/s;if(!(a<0||a>1))return o.multiplyByScalar(i,a,n),o.add(t,n,n),n};O.trianglePlaneIntersection=function(t,e,r,n){if(!g(t)||!g(e)||!g(r)||!g(n))throw new w("p0, p1, p2, and plane are required.");let i=n.normal,c=n.distance,s=o.dot(i,t)+c<0,u=o.dot(i,e)+c<0,a=o.dot(i,r)+c<0,f=0;f+=s?1:0,f+=u?1:0,f+=a?1:0;let l,d;if((f===1||f===2)&&(l=new o,d=new o),f===1){if(s)return O.lineSegmentPlane(t,e,n,l),O.lineSegmentPlane(t,r,n,d),{positions:[t,e,r,l,d],indices:[0,3,4,1,2,4,1,4,3]};if(u)return O.lineSegmentPlane(e,r,n,l),O.lineSegmentPlane(e,t,n,d),{positions:[t,e,r,l,d],indices:[1,3,4,2,0,4,2,4,3]};if(a)return O.lineSegmentPlane(r,t,n,l),O.lineSegmentPlane(r,e,n,d),{positions:[t,e,r,l,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(f===2)if(s)if(u){if(!a)return O.lineSegmentPlane(t,r,n,l),O.lineSegmentPlane(e,r,n,d),{positions:[t,e,r,l,d],indices:[0,1,4,0,4,3,2,3,4]}}else return O.lineSegmentPlane(r,e,n,l),O.lineSegmentPlane(t,e,n,d),{positions:[t,e,r,l,d],indices:[2,0,4,2,4,3,1,3,4]};else return O.lineSegmentPlane(e,t,n,l),O.lineSegmentPlane(r,t,n,d),{positions:[t,e,r,l,d],indices:[1,2,4,1,4,3,0,3,4]}};var qe=O;export{st as a,qe as b}; diff --git a/libs/cesium/1.111/Workers/chunk-P3JQY4NV.js b/libs/cesium/1.111/Workers/chunk-P3JQY4NV.js new file mode 100644 index 000000000..2f82b1679 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-P3JQY4NV.js @@ -0,0 +1,27 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{e}from"./chunk-ZUCO5WNM.js";function t(r){this.name="RuntimeError",this.message=r;let o;try{throw new Error}catch(s){o=s.stack}this.stack=o}e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t);t.prototype.toString=function(){let r=`${this.name}: ${this.message}`;return e(this.stack)&&(r+=` +${this.stack.toString()}`),r};var c=t;export{c as a}; diff --git a/libs/cesium/1.111/Workers/chunk-PG5ZS3T4.js b/libs/cesium/1.111/Workers/chunk-PG5ZS3T4.js new file mode 100644 index 000000000..9a36888ad --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-PG5ZS3T4.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as d}from"./chunk-DV7DPSRL.js";import{a as i}from"./chunk-F33YCXD2.js";import{a as z}from"./chunk-K36PKEJW.js";import{b as r}from"./chunk-KD2PMTHD.js";import{e as c}from"./chunk-ZUCO5WNM.js";function t(m,n,e){this.minimum=i.clone(z(m,i.ZERO)),this.maximum=i.clone(z(n,i.ZERO)),c(e)?e=i.clone(e):e=i.midpoint(this.minimum,this.maximum,new i),this.center=e}t.fromCorners=function(m,n,e){return r.defined("minimum",m),r.defined("maximum",n),c(e)||(e=new t),e.minimum=i.clone(m,e.minimum),e.maximum=i.clone(n,e.maximum),e.center=i.midpoint(m,n,e.center),e};t.fromPoints=function(m,n){if(c(n)||(n=new t),!c(m)||m.length===0)return n.minimum=i.clone(i.ZERO,n.minimum),n.maximum=i.clone(i.ZERO,n.maximum),n.center=i.clone(i.ZERO,n.center),n;let e=m[0].x,a=m[0].y,u=m[0].z,o=m[0].x,y=m[0].y,l=m[0].z,I=m.length;for(let E=1;E<I;E++){let M=m[E],p=M.x,Z=M.y,q=M.z;e=Math.min(p,e),o=Math.max(p,o),a=Math.min(Z,a),y=Math.max(Z,y),u=Math.min(q,u),l=Math.max(q,l)}let f=n.minimum;f.x=e,f.y=a,f.z=u;let x=n.maximum;return x.x=o,x.y=y,x.z=l,n.center=i.midpoint(f,x,n.center),n};t.clone=function(m,n){if(c(m))return c(n)?(n.minimum=i.clone(m.minimum,n.minimum),n.maximum=i.clone(m.maximum,n.maximum),n.center=i.clone(m.center,n.center),n):new t(m.minimum,m.maximum,m.center)};t.equals=function(m,n){return m===n||c(m)&&c(n)&&i.equals(m.center,n.center)&&i.equals(m.minimum,n.minimum)&&i.equals(m.maximum,n.maximum)};var h=new i;t.intersectPlane=function(m,n){r.defined("box",m),r.defined("plane",n),h=i.subtract(m.maximum,m.minimum,h);let e=i.multiplyByScalar(h,.5,h),a=n.normal,u=e.x*Math.abs(a.x)+e.y*Math.abs(a.y)+e.z*Math.abs(a.z),o=i.dot(m.center,a)+n.distance;return o-u>0?d.INSIDE:o+u<0?d.OUTSIDE:d.INTERSECTING};t.prototype.clone=function(m){return t.clone(this,m)};t.prototype.intersectPlane=function(m){return t.intersectPlane(this,m)};t.prototype.equals=function(m){return t.equals(this,m)};var P=t;export{P as a}; diff --git a/libs/cesium/1.111/Workers/chunk-PNRMC4IG.js b/libs/cesium/1.111/Workers/chunk-PNRMC4IG.js new file mode 100644 index 000000000..e776487bd --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-PNRMC4IG.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w,b as z,d as T,e as S}from"./chunk-KCIWEUSR.js";import{a as y}from"./chunk-7XDW3BZW.js";import{a as C,d as x}from"./chunk-F33YCXD2.js";import{a as h}from"./chunk-DUBQPPQZ.js";import{a as u,b as a}from"./chunk-KD2PMTHD.js";import{e as b}from"./chunk-ZUCO5WNM.js";var c={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};c.getMathType=function(e){switch(e){case c.SCALAR:return Number;case c.VEC2:return T;case c.VEC3:return C;case c.VEC4:return w;case c.MAT2:return S;case c.MAT3:return x;case c.MAT4:return z;default:throw new u("attributeType is not a valid value.")}};c.getNumberOfComponents=function(e){switch(e){case c.SCALAR:return 1;case c.VEC2:return 2;case c.VEC3:return 3;case c.VEC4:case c.MAT2:return 4;case c.MAT3:return 9;case c.MAT4:return 16;default:throw new u("attributeType is not a valid value.")}};c.getAttributeLocationCount=function(e){switch(e){case c.SCALAR:case c.VEC2:case c.VEC3:case c.VEC4:return 1;case c.MAT2:return 2;case c.MAT3:return 3;case c.MAT4:return 4;default:throw new u("attributeType is not a valid value.")}};c.getGlslType=function(e){switch(a.typeOf.string("attributeType",e),e){case c.SCALAR:return"float";case c.VEC2:return"vec2";case c.VEC3:return"vec3";case c.VEC4:return"vec4";case c.MAT2:return"mat2";case c.MAT3:return"mat3";case c.MAT4:return"mat4";default:throw new u("attributeType is not a valid value.")}};var N=Object.freeze(c);var V=1/256,D=256,r={};r.octEncodeInRange=function(e,t,n){a.defined("vector",e),a.defined("result",n);let o=C.magnitudeSquared(e);if(Math.abs(o-1)>h.EPSILON6)throw new u("vector must be normalized.");if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,d=n.y;n.x=(1-Math.abs(d))*h.signNotZero(i),n.y=(1-Math.abs(i))*h.signNotZero(d)}return n.x=h.toSNorm(n.x,t),n.y=h.toSNorm(n.y,t),n};r.octEncode=function(e,t){return r.octEncodeInRange(e,255,t)};var A=new T,F=new Uint8Array(1);function E(e){return F[0]=e,F[0]}r.octEncodeToCartesian4=function(e,t){return r.octEncodeInRange(e,65535,A),t.x=E(A.x*V),t.y=E(A.x),t.z=E(A.y*V),t.w=E(A.y),t};r.octDecodeInRange=function(e,t,n,o){if(a.defined("result",o),e<0||e>n||t<0||t>n)throw new u(`x and y must be unsigned normalized integers between 0 and ${n}`);if(o.x=h.fromSNorm(e,n),o.y=h.fromSNorm(t,n),o.z=1-(Math.abs(o.x)+Math.abs(o.y)),o.z<0){let i=o.x;o.x=(1-Math.abs(o.y))*h.signNotZero(i),o.y=(1-Math.abs(i))*h.signNotZero(o.y)}return C.normalize(o,o)};r.octDecode=function(e,t,n){return r.octDecodeInRange(e,t,255,n)};r.octDecodeFromCartesian4=function(e,t){a.typeOf.object("encoded",e),a.typeOf.object("result",t);let n=e.x,o=e.y,i=e.z,d=e.w;if(n<0||n>255||o<0||o>255||i<0||i>255||d<0||d>255)throw new u("x, y, z, and w must be unsigned normalized integers between 0 and 255");let f=n*D+o,s=i*D+d;return r.octDecodeInRange(f,s,65535,t)};r.octPackFloat=function(e){return a.defined("encoded",e),256*e.x+e.y};var l=new T;r.octEncodeFloat=function(e){return r.octEncode(e,l),r.octPackFloat(l)};r.octDecodeFloat=function(e,t){a.defined("value",e);let n=e/256,o=Math.floor(n),i=(n-o)*256;return r.octDecode(o,i,t)};r.octPack=function(e,t,n,o){a.defined("v1",e),a.defined("v2",t),a.defined("v3",n),a.defined("result",o);let i=r.octEncodeFloat(e),d=r.octEncodeFloat(t),f=r.octEncode(n,l);return o.x=65536*f.x+i,o.y=65536*f.y+d,o};r.octUnpack=function(e,t,n,o){a.defined("packed",e),a.defined("v1",t),a.defined("v2",n),a.defined("v3",o);let i=e.x/65536,d=Math.floor(i),f=(i-d)*65536;i=e.y/65536;let s=Math.floor(i),m=(i-s)*65536;r.octDecodeFloat(f,t),r.octDecodeFloat(m,n),r.octDecode(d,s,o)};r.compressTextureCoordinates=function(e){a.defined("textureCoordinates",e);let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};r.decompressTextureCoordinates=function(e,t){a.defined("compressed",e),a.defined("result",t);let n=e/4096,o=Math.floor(n);return t.x=o/4095,t.y=(e-o*4096)/4095,t};function g(e){return e>>1^-(e&1)}r.zigZagDeltaDecode=function(e,t,n){a.defined("uBuffer",e),a.defined("vBuffer",t),a.typeOf.number.equals("uBuffer.length","vBuffer.length",e.length,t.length),b(n)&&a.typeOf.number.equals("uBuffer.length","heightBuffer.length",e.length,n.length);let o=e.length,i=0,d=0,f=0;for(let s=0;s<o;++s)i+=g(e[s]),d+=g(t[s]),e[s]=i,t[s]=d,b(n)&&(f+=g(n[s]),n[s]=f)};r.dequantize=function(e,t,n,o){a.defined("typedArray",e),a.defined("componentDatatype",t),a.defined("type",n),a.defined("count",o);let i=N.getNumberOfComponents(n),d;switch(t){case y.BYTE:d=127;break;case y.UNSIGNED_BYTE:d=255;break;case y.SHORT:d=32767;break;case y.UNSIGNED_SHORT:d=65535;break;case y.INT:d=2147483647;break;case y.UNSIGNED_INT:d=4294967295;break;default:throw new u(`Cannot dequantize component datatype: ${t}`)}let f=new Float32Array(o*i);for(let s=0;s<o;s++)for(let m=0;m<i;m++){let p=s*i+m;f[p]=Math.max(e[p]/d,-1)}return f};r.decodeRGB565=function(e,t){a.defined("typedArray",e);let n=e.length*3;b(t)&&a.typeOf.number.equals("result.length","typedArray.length * 3",t.length,n);let o=e.length;b(t)||(t=new Float32Array(o*3));let i=32-1,d=64-1,f=1/31,s=1/63;for(let m=0;m<o;m++){let p=e[m],R=p>>11,I=p>>5&d,O=p&i,M=3*m;t[M]=R*f,t[M+1]=I*s,t[M+2]=O*f}return t};var W=r;export{W as a}; diff --git a/libs/cesium/1.111/Workers/chunk-QEWKHB6D.js b/libs/cesium/1.111/Workers/chunk-QEWKHB6D.js new file mode 100644 index 000000000..f9d6edb12 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-QEWKHB6D.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{f as O,i as G}from"./chunk-DV7DPSRL.js";import{b as l,c as R,d as a,e as L}from"./chunk-KCIWEUSR.js";import{a as A,b as h,d as y}from"./chunk-F33YCXD2.js";import{a as c}from"./chunk-CG3JQAX7.js";import{a as s}from"./chunk-K36PKEJW.js";import{a as N,b as w}from"./chunk-KD2PMTHD.js";import{e as I}from"./chunk-ZUCO5WNM.js";var U={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},M=Object.freeze(U);var r={POINTS:c.POINTS,LINES:c.LINES,LINE_LOOP:c.LINE_LOOP,LINE_STRIP:c.LINE_STRIP,TRIANGLES:c.TRIANGLES,TRIANGLE_STRIP:c.TRIANGLE_STRIP,TRIANGLE_FAN:c.TRIANGLE_FAN};r.isLines=function(t){return t===r.LINES||t===r.LINE_LOOP||t===r.LINE_STRIP};r.isTriangles=function(t){return t===r.TRIANGLES||t===r.TRIANGLE_STRIP||t===r.TRIANGLE_FAN};r.validate=function(t){return t===r.POINTS||t===r.LINES||t===r.LINE_LOOP||t===r.LINE_STRIP||t===r.TRIANGLES||t===r.TRIANGLE_STRIP||t===r.TRIANGLE_FAN};var F=Object.freeze(r);function _(t){t=s(t,s.EMPTY_OBJECT),w.typeOf.object("options.attributes",t.attributes),this.attributes=t.attributes,this.indices=t.indices,this.primitiveType=s(t.primitiveType,F.TRIANGLES),this.boundingSphere=t.boundingSphere,this.geometryType=s(t.geometryType,M.NONE),this.boundingSphereCV=t.boundingSphereCV,this.offsetAttribute=t.offsetAttribute}_.computeNumberOfVertices=function(t){w.typeOf.object("geometry",t);let m=-1;for(let u in t.attributes)if(t.attributes.hasOwnProperty(u)&&I(t.attributes[u])&&I(t.attributes[u].values)){let o=t.attributes[u],e=o.values.length/o.componentsPerAttribute;if(m!==e&&m!==-1)throw new N("All attribute lists must have the same number of attributes.");m=e}return m};var W=new h,H=new A,V=new l,Z=[new h,new h,new h],K=[new a,new a,new a],$=[new a,new a,new a],tt=new A,et=new O,rt=new l,nt=new L;_._textureCoordinateRotationPoints=function(t,m,u,o){let e,g=R.center(o,W),D=h.toCartesian(g,u,H),Y=G.eastNorthUpToFixedFrame(D,u,V),C=l.inverse(Y,V),b=K,f=Z;f[0].longitude=o.west,f[0].latitude=o.south,f[1].longitude=o.west,f[1].latitude=o.north,f[2].longitude=o.east,f[2].latitude=o.south;let n=tt;for(e=0;e<3;e++)h.toCartesian(f[e],u,n),n=l.multiplyByPointAsVector(C,n,n),b[e].x=n.x,b[e].y=n.y;let B=O.fromAxisAngle(A.UNIT_Z,-m,et),v=y.fromQuaternion(B,rt),j=t.length,T=Number.POSITIVE_INFINITY,p=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY,x=Number.NEGATIVE_INFINITY;for(e=0;e<j;e++)n=l.multiplyByPointAsVector(C,t[e],n),n=y.multiplyByVector(v,n,n),T=Math.min(T,n.x),p=Math.min(p,n.y),d=Math.max(d,n.x),x=Math.max(x,n.y);let k=L.fromRotation(m,nt),i=$;i[0].x=T,i[0].y=p,i[1].x=T,i[1].y=x,i[2].x=d,i[2].y=p;let P=b[0],z=b[2].x-P.x,X=b[1].y-P.y;for(e=0;e<3;e++){let E=i[e];L.multiplyByVector(k,E,E),E.x=(E.x-P.x)/z,E.y=(E.y-P.y)/X}let q=i[0],J=i[1],Q=i[2],S=new Array(6);return a.pack(q,S),a.pack(J,S,2),a.pack(Q,S,4),S};var Lt=_;function ot(t){if(t=s(t,s.EMPTY_OBJECT),!I(t.componentDatatype))throw new N("options.componentDatatype is required.");if(!I(t.componentsPerAttribute))throw new N("options.componentsPerAttribute is required.");if(t.componentsPerAttribute<1||t.componentsPerAttribute>4)throw new N("options.componentsPerAttribute must be between 1 and 4.");if(!I(t.values))throw new N("options.values is required.");this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=s(t.normalize,!1),this.values=t.values}var Ot=ot;export{M as a,F as b,Lt as c,Ot as d}; diff --git a/libs/cesium/1.111/Workers/chunk-QP27TPWQ.js b/libs/cesium/1.111/Workers/chunk-QP27TPWQ.js new file mode 100644 index 000000000..ac47b936f --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-QP27TPWQ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as A}from"./chunk-WIRUK4BS.js";import{a as Q}from"./chunk-AAJ456AA.js";import{a as ae}from"./chunk-3UAKIC5Y.js";import{b as oe,c as re,d as J}from"./chunk-QEWKHB6D.js";import{b as V,d as ie,f as N}from"./chunk-DV7DPSRL.js";import{a as b,b as O}from"./chunk-KCIWEUSR.js";import{a as H}from"./chunk-7XDW3BZW.js";import{a as r,d as u}from"./chunk-F33YCXD2.js";import{a as P}from"./chunk-DUBQPPQZ.js";import{a as m}from"./chunk-K36PKEJW.js";import{a as w,b as F}from"./chunk-KD2PMTHD.js";import{e as a}from"./chunk-ZUCO5WNM.js";function q(e){this.planes=m(e,[])}var X=[new r,new r,new r];r.clone(r.UNIT_X,X[0]);r.clone(r.UNIT_Y,X[1]);r.clone(r.UNIT_Z,X[2]);var E=new r,de=new r,fe=new Q(new r(1,0,0),0);q.fromBoundingSphere=function(e,t){if(!a(e))throw new w("boundingSphere is required.");a(t)||(t=new q);let n=X.length,f=t.planes;f.length=2*n;let p=e.center,_=e.radius,s=0;for(let y=0;y<n;++y){let i=X[y],c=f[s],d=f[s+1];a(c)||(c=f[s]=new b),a(d)||(d=f[s+1]=new b),r.multiplyByScalar(i,-_,E),r.add(p,E,E),c.x=i.x,c.y=i.y,c.z=i.z,c.w=-r.dot(i,E),r.multiplyByScalar(i,_,E),r.add(p,E,E),d.x=-i.x,d.y=-i.y,d.z=-i.z,d.w=-r.dot(r.negate(i,de),E),s+=2}return t};q.prototype.computeVisibility=function(e){if(!a(e))throw new w("boundingVolume is required.");let t=this.planes,n=!1;for(let f=0,p=t.length;f<p;++f){let _=e.intersectPlane(Q.fromCartesian4(t[f],fe));if(_===V.OUTSIDE)return V.OUTSIDE;_===V.INTERSECTING&&(n=!0)}return n?V.INTERSECTING:V.INSIDE};q.prototype.computeVisibilityWithPlaneMask=function(e,t){if(!a(e))throw new w("boundingVolume is required.");if(!a(t))throw new w("parentPlaneMask is required.");if(t===q.MASK_OUTSIDE||t===q.MASK_INSIDE)return t;let n=q.MASK_INSIDE,f=this.planes;for(let p=0,_=f.length;p<_;++p){let s=p<31?1<<p:0;if(p<31&&!(t&s))continue;let y=e.intersectPlane(Q.fromCartesian4(f[p],fe));if(y===V.OUTSIDE)return q.MASK_OUTSIDE;y===V.INTERSECTING&&(n|=s)}return n};q.MASK_OUTSIDE=4294967295;q.MASK_INSIDE=0;q.MASK_INDETERMINATE=2147483647;var $=q;function k(e){e=m(e,m.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far,this._cullingVolume=new $,this._orthographicMatrix=new O}function ce(e){if(!a(e.right)||!a(e.left)||!a(e.top)||!a(e.bottom)||!a(e.near)||!a(e.far))throw new w("right, left, top, bottom, near, or far parameters are not set.");if(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far){if(e.left>e.right)throw new w("right must be greater than left.");if(e.bottom>e.top)throw new w("top must be greater than bottom.");if(e.near<=0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=O.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix)}}Object.defineProperties(k.prototype,{projectionMatrix:{get:function(){return ce(this),this._orthographicMatrix}}});var me=new r,ye=new r,ge=new r,ee=new r;k.prototype.computeCullingVolume=function(e,t,n){if(!a(e))throw new w("position is required.");if(!a(t))throw new w("direction is required.");if(!a(n))throw new w("up is required.");let f=this._cullingVolume.planes,p=this.top,_=this.bottom,s=this.right,y=this.left,i=this.near,c=this.far,d=r.cross(t,n,me);r.normalize(d,d);let g=ye;r.multiplyByScalar(t,i,g),r.add(e,g,g);let l=ge;r.multiplyByScalar(d,y,l),r.add(g,l,l);let o=f[0];return a(o)||(o=f[0]=new b),o.x=d.x,o.y=d.y,o.z=d.z,o.w=-r.dot(d,l),r.multiplyByScalar(d,s,l),r.add(g,l,l),o=f[1],a(o)||(o=f[1]=new b),o.x=-d.x,o.y=-d.y,o.z=-d.z,o.w=-r.dot(r.negate(d,ee),l),r.multiplyByScalar(n,_,l),r.add(g,l,l),o=f[2],a(o)||(o=f[2]=new b),o.x=n.x,o.y=n.y,o.z=n.z,o.w=-r.dot(n,l),r.multiplyByScalar(n,p,l),r.add(g,l,l),o=f[3],a(o)||(o=f[3]=new b),o.x=-n.x,o.y=-n.y,o.z=-n.z,o.w=-r.dot(r.negate(n,ee),l),o=f[4],a(o)||(o=f[4]=new b),o.x=t.x,o.y=t.y,o.z=t.z,o.w=-r.dot(t,g),r.multiplyByScalar(t,c,l),r.add(e,l,l),o=f[5],a(o)||(o=f[5]=new b),o.x=-t.x,o.y=-t.y,o.z=-t.z,o.w=-r.dot(r.negate(t,ee),l),this._cullingVolume};k.prototype.getPixelDimensions=function(e,t,n,f,p){if(ce(this),!a(e)||!a(t))throw new w("Both drawingBufferWidth and drawingBufferHeight are required.");if(e<=0)throw new w("drawingBufferWidth must be greater than zero.");if(t<=0)throw new w("drawingBufferHeight must be greater than zero.");if(!a(n))throw new w("distance is required.");if(!a(f))throw new w("pixelRatio is required.");if(f<=0)throw new w("pixelRatio must be greater than zero.");if(!a(p))throw new w("A result object is required.");let _=this.right-this.left,s=this.top-this.bottom,y=f*_/e,i=f*s/t;return p.x=y,p.y=i,p};k.prototype.clone=function(e){return a(e)||(e=new k),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};k.prototype.equals=function(e){return a(e)&&e instanceof k&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};k.prototype.equalsEpsilon=function(e,t,n){return e===this||a(e)&&e instanceof k&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var he=k;function v(e){e=m(e,m.EMPTY_OBJECT),this._offCenterFrustum=new he,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far}v.packedLength=4;v.pack=function(e,t,n){return F.typeOf.object("value",e),F.defined("array",t),n=m(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};v.unpack=function(e,t,n){return F.defined("array",e),t=m(t,0),a(n)||(n=new v),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function j(e){if(!a(e.width)||!a(e.aspectRatio)||!a(e.near)||!a(e.far))throw new w("width, aspectRatio, near, or far parameters are not set.");let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){if(e.aspectRatio<0)throw new w("aspectRatio must be positive.");if(e.near<0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(v.prototype,{projectionMatrix:{get:function(){return j(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return j(this),this._offCenterFrustum}}});v.prototype.computeCullingVolume=function(e,t,n){return j(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};v.prototype.getPixelDimensions=function(e,t,n,f,p){return j(this),this._offCenterFrustum.getPixelDimensions(e,t,n,f,p)};v.prototype.clone=function(e){return a(e)||(e=new v),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};v.prototype.equals=function(e){return!a(e)||!(e instanceof v)?!1:(j(this),j(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};v.prototype.equalsEpsilon=function(e,t,n){return!a(e)||!(e instanceof v)?!1:(j(this),j(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var B=v;function S(e){e=m(e,m.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far,this._cullingVolume=new $,this._perspectiveMatrix=new O,this._infinitePerspective=new O}function te(e){if(!a(e.right)||!a(e.left)||!a(e.top)||!a(e.bottom)||!a(e.near)||!a(e.far))throw new w("right, left, top, bottom, near, or far parameters are not set.");let t=e.top,n=e.bottom,f=e.right,p=e.left,_=e.near,s=e.far;if(t!==e._top||n!==e._bottom||p!==e._left||f!==e._right||_!==e._near||s!==e._far){if(e.near<=0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._left=p,e._right=f,e._top=t,e._bottom=n,e._near=_,e._far=s,e._perspectiveMatrix=O.computePerspectiveOffCenter(p,f,n,t,_,s,e._perspectiveMatrix),e._infinitePerspective=O.computeInfinitePerspectiveOffCenter(p,f,n,t,_,e._infinitePerspective)}}Object.defineProperties(S.prototype,{projectionMatrix:{get:function(){return te(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return te(this),this._infinitePerspective}}});var Ce=new r,be=new r,Pe=new r,Oe=new r;S.prototype.computeCullingVolume=function(e,t,n){if(!a(e))throw new w("position is required.");if(!a(t))throw new w("direction is required.");if(!a(n))throw new w("up is required.");let f=this._cullingVolume.planes,p=this.top,_=this.bottom,s=this.right,y=this.left,i=this.near,c=this.far,d=r.cross(t,n,Ce),g=be;r.multiplyByScalar(t,i,g),r.add(e,g,g);let l=Pe;r.multiplyByScalar(t,c,l),r.add(e,l,l);let o=Oe;r.multiplyByScalar(d,y,o),r.add(g,o,o),r.subtract(o,e,o),r.normalize(o,o),r.cross(o,n,o),r.normalize(o,o);let h=f[0];return a(h)||(h=f[0]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(d,s,o),r.add(g,o,o),r.subtract(o,e,o),r.cross(n,o,o),r.normalize(o,o),h=f[1],a(h)||(h=f[1]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(n,_,o),r.add(g,o,o),r.subtract(o,e,o),r.cross(d,o,o),r.normalize(o,o),h=f[2],a(h)||(h=f[2]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(n,p,o),r.add(g,o,o),r.subtract(o,e,o),r.cross(o,d,o),r.normalize(o,o),h=f[3],a(h)||(h=f[3]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),h=f[4],a(h)||(h=f[4]=new b),h.x=t.x,h.y=t.y,h.z=t.z,h.w=-r.dot(t,g),r.negate(t,o),h=f[5],a(h)||(h=f[5]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,l),this._cullingVolume};S.prototype.getPixelDimensions=function(e,t,n,f,p){if(te(this),!a(e)||!a(t))throw new w("Both drawingBufferWidth and drawingBufferHeight are required.");if(e<=0)throw new w("drawingBufferWidth must be greater than zero.");if(t<=0)throw new w("drawingBufferHeight must be greater than zero.");if(!a(n))throw new w("distance is required.");if(!a(f))throw new w("pixelRatio is required");if(f<=0)throw new w("pixelRatio must be greater than zero.");if(!a(p))throw new w("A result object is required.");let _=1/this.near,s=this.top*_,y=2*f*n*s/t;s=this.right*_;let i=2*f*n*s/e;return p.x=i,p.y=y,p};S.prototype.clone=function(e){return a(e)||(e=new S),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};S.prototype.equals=function(e){return a(e)&&e instanceof S&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};S.prototype.equalsEpsilon=function(e,t,n){return e===this||a(e)&&e instanceof S&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var pe=S;function R(e){e=m(e,m.EMPTY_OBJECT),this._offCenterFrustum=new pe,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far,this.xOffset=m(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=m(e.yOffset,0),this._yOffset=this.yOffset}R.packedLength=6;R.pack=function(e,t,n){return F.typeOf.object("value",e),F.defined("array",t),n=m(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};R.unpack=function(e,t,n){return F.defined("array",e),t=m(t,0),a(n)||(n=new R),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function T(e){if(!a(e.fov)||!a(e.aspectRatio)||!a(e.near)||!a(e.far))throw new w("fov, aspectRatio, near, or far parameters are not set.");let t=e._offCenterFrustum;if(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset){if(e.fov<0||e.fov>=Math.PI)throw new w("fov must be in the range [0, PI).");if(e.aspectRatio<0)throw new w("aspectRatio must be positive.");if(e.near<0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset}}Object.defineProperties(R.prototype,{projectionMatrix:{get:function(){return T(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return T(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return T(this),this._fovy}},sseDenominator:{get:function(){return T(this),this._sseDenominator}},offCenterFrustum:{get:function(){return T(this),this._offCenterFrustum}}});R.prototype.computeCullingVolume=function(e,t,n){return T(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};R.prototype.getPixelDimensions=function(e,t,n,f,p){return T(this),this._offCenterFrustum.getPixelDimensions(e,t,n,f,p)};R.prototype.clone=function(e){return a(e)||(e=new R),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};R.prototype.equals=function(e){return!a(e)||!(e instanceof R)?!1:(T(this),T(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};R.prototype.equalsEpsilon=function(e,t,n){return!a(e)||!(e instanceof R)?!1:(T(this),T(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var L=R;var I=0,Fe=1;function Y(e){F.typeOf.object("options",e),F.typeOf.object("options.frustum",e.frustum),F.typeOf.object("options.origin",e.origin),F.typeOf.object("options.orientation",e.orientation);let t=e.frustum,n=e.orientation,f=e.origin,p=m(e.vertexFormat,A.DEFAULT),_=m(e._drawNearPlane,!0),s,y;t instanceof L?(s=I,y=L.packedLength):t instanceof B&&(s=Fe,y=B.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=r.clone(f),this._orientation=N.clone(n),this._drawNearPlane=_,this._vertexFormat=p,this._workerName="createFrustumGeometry",this.packedLength=2+y+r.packedLength+N.packedLength+A.packedLength}Y.pack=function(e,t,n){F.typeOf.object("value",e),F.defined("array",t),n=m(n,0);let f=e._frustumType,p=e._frustum;return t[n++]=f,f===I?(L.pack(p,t,n),n+=L.packedLength):(B.pack(p,t,n),n+=B.packedLength),r.pack(e._origin,t,n),n+=r.packedLength,N.pack(e._orientation,t,n),n+=N.packedLength,A.pack(e._vertexFormat,t,n),n+=A.packedLength,t[n]=e._drawNearPlane?1:0,t};var xe=new L,ze=new B,ve=new N,Re=new r,qe=new A;Y.unpack=function(e,t,n){F.defined("array",e),t=m(t,0);let f=e[t++],p;f===I?(p=L.unpack(e,t,xe),t+=L.packedLength):(p=B.unpack(e,t,ze),t+=B.packedLength);let _=r.unpack(e,t,Re);t+=r.packedLength;let s=N.unpack(e,t,ve);t+=N.packedLength;let y=A.unpack(e,t,qe);t+=A.packedLength;let i=e[t]===1;if(!a(n))return new Y({frustum:p,origin:_,orientation:s,vertexFormat:y,_drawNearPlane:i});let c=f===n._frustumType?n._frustum:void 0;return n._frustum=p.clone(c),n._frustumType=f,n._origin=r.clone(_,n._origin),n._orientation=N.clone(s,n._orientation),n._vertexFormat=A.clone(y,n._vertexFormat),n._drawNearPlane=i,n};function W(e,t,n,f,p,_,s,y){let i=e/3*2;for(let c=0;c<4;++c)a(t)&&(t[e]=_.x,t[e+1]=_.y,t[e+2]=_.z),a(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),a(f)&&(f[e]=y.x,f[e+1]=y.y,f[e+2]=y.z),e+=3;p[i]=0,p[i+1]=0,p[i+2]=1,p[i+3]=0,p[i+4]=1,p[i+5]=1,p[i+6]=0,p[i+7]=1}var Te=new u,Me=new O,ne=new O,se=new r,le=new r,we=new r,ke=new r,Se=new r,De=new r,U=new Array(3),Z=new Array(4);Z[0]=new b(-1,-1,1,1);Z[1]=new b(1,-1,1,1);Z[2]=new b(1,1,1,1);Z[3]=new b(-1,1,1,1);var _e=new Array(4);for(let e=0;e<4;++e)_e[e]=new b;Y._computeNearFarPlanes=function(e,t,n,f,p,_,s,y){let i=u.fromQuaternion(t,Te),c=m(_,se),d=m(s,le),g=m(y,we);c=u.getColumn(i,0,c),d=u.getColumn(i,1,d),g=u.getColumn(i,2,g),r.normalize(c,c),r.normalize(d,d),r.normalize(g,g),r.negate(c,c);let l=O.computeView(e,g,d,c,Me),o,h,M=f.projectionMatrix;if(n===I){let x=O.multiply(M,l,ne);h=O.inverse(x,ne)}else o=O.inverseTransformation(l,ne);a(h)?(U[0]=f.near,U[1]=f.far):(U[0]=0,U[1]=f.near,U[2]=f.far);for(let x=0;x<2;++x)for(let z=0;z<4;++z){let C=b.clone(Z[z],_e[z]);if(a(h)){C=O.multiplyByVector(h,C,C);let D=1/C.w;r.multiplyByScalar(C,D,C),r.subtract(C,e,C),r.normalize(C,C);let K=r.dot(g,C);r.multiplyByScalar(C,U[x]/K,C),r.add(C,e,C)}else{let D=f.offCenterFrustum;a(D)&&(f=D);let K=U[x],G=U[x+1];C.x=(C.x*(f.right-f.left)+f.left+f.right)*.5,C.y=(C.y*(f.top-f.bottom)+f.bottom+f.top)*.5,C.z=(C.z*(K-G)-K-G)*.5,C.w=1,O.multiplyByVector(o,C,C)}p[12*x+z*3]=C.x,p[12*x+z*3+1]=C.y,p[12*x+z*3+2]=C.z}};Y.createGeometry=function(e){let t=e._frustumType,n=e._frustum,f=e._origin,p=e._orientation,_=e._drawNearPlane,s=e._vertexFormat,y=_?6:5,i=new Float64Array(3*4*6);Y._computeNearFarPlanes(f,p,t,n,i);let c=3*4*2;i[c]=i[3*4],i[c+1]=i[3*4+1],i[c+2]=i[3*4+2],i[c+3]=i[0],i[c+4]=i[1],i[c+5]=i[2],i[c+6]=i[3*3],i[c+7]=i[3*3+1],i[c+8]=i[3*3+2],i[c+9]=i[3*7],i[c+10]=i[3*7+1],i[c+11]=i[3*7+2],c+=3*4,i[c]=i[3*5],i[c+1]=i[3*5+1],i[c+2]=i[3*5+2],i[c+3]=i[3],i[c+4]=i[3+1],i[c+5]=i[3+2],i[c+6]=i[0],i[c+7]=i[1],i[c+8]=i[2],i[c+9]=i[3*4],i[c+10]=i[3*4+1],i[c+11]=i[3*4+2],c+=3*4,i[c]=i[3],i[c+1]=i[3+1],i[c+2]=i[3+2],i[c+3]=i[3*5],i[c+4]=i[3*5+1],i[c+5]=i[3*5+2],i[c+6]=i[3*6],i[c+7]=i[3*6+1],i[c+8]=i[3*6+2],i[c+9]=i[3*2],i[c+10]=i[3*2+1],i[c+11]=i[3*2+2],c+=3*4,i[c]=i[3*2],i[c+1]=i[3*2+1],i[c+2]=i[3*2+2],i[c+3]=i[3*6],i[c+4]=i[3*6+1],i[c+5]=i[3*6+2],i[c+6]=i[3*7],i[c+7]=i[3*7+1],i[c+8]=i[3*7+2],i[c+9]=i[3*3],i[c+10]=i[3*3+1],i[c+11]=i[3*3+2],_||(i=i.subarray(3*4));let d=new ae({position:new J({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:i})});if(a(s.normal)||a(s.tangent)||a(s.bitangent)||a(s.st)){let l=a(s.normal)?new Float32Array(12*y):void 0,o=a(s.tangent)?new Float32Array(3*4*y):void 0,h=a(s.bitangent)?new Float32Array(3*4*y):void 0,M=a(s.st)?new Float32Array(2*4*y):void 0,x=se,z=le,C=we,D=r.negate(x,ke),K=r.negate(z,Se),G=r.negate(C,De);c=0,_&&(W(c,l,o,h,M,G,x,z),c+=3*4),W(c,l,o,h,M,C,D,z),c+=3*4,W(c,l,o,h,M,D,G,z),c+=3*4,W(c,l,o,h,M,K,G,D),c+=3*4,W(c,l,o,h,M,x,C,z),c+=3*4,W(c,l,o,h,M,z,C,D),a(l)&&(d.normal=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:l})),a(o)&&(d.tangent=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:o})),a(h)&&(d.bitangent=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:h})),a(M)&&(d.st=new J({componentDatatype:H.FLOAT,componentsPerAttribute:2,values:M}))}let g=new Uint16Array(6*y);for(let l=0;l<y;++l){let o=l*6,h=l*4;g[o]=h,g[o+1]=h+1,g[o+2]=h+2,g[o+3]=h,g[o+4]=h+2,g[o+5]=h+3}return new re({attributes:d,indices:g,primitiveType:oe.TRIANGLES,boundingSphere:ie.fromVertices(i)})};var Et=Y;export{B as a,L as b,Et as c}; diff --git a/libs/cesium/1.111/Workers/chunk-UWTP54MD.js b/libs/cesium/1.111/Workers/chunk-UWTP54MD.js new file mode 100644 index 000000000..3f3c17b68 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-UWTP54MD.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as y}from"./chunk-PNRMC4IG.js";import{d as F}from"./chunk-DV7DPSRL.js";import{b as d,c as W,d as x}from"./chunk-KCIWEUSR.js";import{a as A}from"./chunk-7XDW3BZW.js";import{a as s,c as M}from"./chunk-F33YCXD2.js";import{a as q}from"./chunk-DUBQPPQZ.js";import{a as P}from"./chunk-K36PKEJW.js";import{b as z}from"./chunk-KD2PMTHD.js";import{e as u}from"./chunk-ZUCO5WNM.js";function T(o,t){z.typeOf.object("ellipsoid",o),this._ellipsoid=o,this._cameraPosition=new s,this._cameraPositionInScaledSpace=new s,this._distanceToLimbInScaledSpaceSquared=0,u(t)&&(this.cameraPosition=t)}Object.defineProperties(T.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(o){let e=this._ellipsoid.transformPositionToScaledSpace(o,this._cameraPositionInScaledSpace),a=s.magnitudeSquared(e)-1;s.clone(o,this._cameraPosition),this._cameraPositionInScaledSpace=e,this._distanceToLimbInScaledSpaceSquared=a}}});var L=new s;T.prototype.isPointVisible=function(o){let e=this._ellipsoid.transformPositionToScaledSpace(o,L);return D(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};T.prototype.isScaledSpacePointVisible=function(o){return D(o,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var et=new s;T.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(o,t){let e=this._ellipsoid,a,i;return u(t)&&t<0&&e.minimumRadius>-t?(i=et,i.x=this._cameraPosition.x/(e.radii.x+t),i.y=this._cameraPosition.y/(e.radii.y+t),i.z=this._cameraPosition.z/(e.radii.z+t),a=i.x*i.x+i.y*i.y+i.z*i.z-1):(i=this._cameraPositionInScaledSpace,a=this._distanceToLimbInScaledSpaceSquared),D(o,i,a)};T.prototype.computeHorizonCullingPoint=function(o,t,e){return Z(this._ellipsoid,o,t,e)};var j=M.clone(M.UNIT_SPHERE);T.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(o,t,e,a){let i=U(this._ellipsoid,e,j);return Z(i,o,t,a)};T.prototype.computeHorizonCullingPointFromVertices=function(o,t,e,a,i){return v(this._ellipsoid,o,t,e,a,i)};T.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(o,t,e,a,i,c){let n=U(this._ellipsoid,i,j);return v(n,o,t,e,a,c)};var it=[];T.prototype.computeHorizonCullingPointFromRectangle=function(o,t,e){z.typeOf.object("rectangle",o);let a=W.subsample(o,t,0,it),i=F.fromPoints(a);if(!(s.magnitude(i.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(i.center,a,e)};var at=new s;function U(o,t,e){if(u(t)&&t<0&&o.minimumRadius>-t){let a=s.fromElements(o.radii.x+t,o.radii.y+t,o.radii.z+t,at);o=M.fromCartesian3(a,e)}return o}function Z(o,t,e,a){z.typeOf.object("directionToPoint",t),z.defined("positions",e),u(a)||(a=new s);let i=K(o,t),c=0;for(let n=0,r=e.length;n<r;++n){let m=e[n],l=Q(o,m,i);if(l<0)return;c=Math.max(c,l)}return J(i,c,a)}var O=new s;function v(o,t,e,a,i,c){z.typeOf.object("directionToPoint",t),z.defined("vertices",e),z.typeOf.number("stride",a),u(c)||(c=new s),a=P(a,3),i=P(i,s.ZERO);let n=K(o,t),r=0;for(let m=0,l=e.length;m<l;m+=a){O.x=e[m]+i.x,O.y=e[m+1]+i.y,O.z=e[m+2]+i.z;let p=Q(o,O,n);if(p<0)return;r=Math.max(r,p)}return J(n,r,c)}function D(o,t,e){let a=t,i=e,c=s.subtract(o,a,L),n=-s.dot(c,a);return!(i<0?n>0:n>i&&n*n/s.magnitudeSquared(c)>i)}var nt=new s,st=new s;function Q(o,t,e){let a=o.transformPositionToScaledSpace(t,nt),i=s.magnitudeSquared(a),c=Math.sqrt(i),n=s.divideByScalar(a,c,st);i=Math.max(1,i),c=Math.max(1,c);let r=s.dot(n,e),m=s.magnitude(s.cross(n,e,n)),l=1/c,p=Math.sqrt(i-1)*l;return 1/(r*l-m*p)}function J(o,t,e){if(!(t<=0||t===1/0||t!==t))return s.multiplyByScalar(o,t,e)}var R=new s;function K(o,t){return s.equals(t,s.ZERO)?t:(o.transformPositionToScaledSpace(t,R),s.normalize(R,R))}var xt=T;var b={};b.getHeight=function(o,t,e){return(o-e)*t+e};var ct=new s;b.getPosition=function(o,t,e,a,i){let c=t.cartesianToCartographic(o,ct),n=b.getHeight(c.height,e,a);return s.fromRadians(c.longitude,c.latitude,n,t,i)};var X=b;var rt={NONE:0,BITS12:1},S=Object.freeze(rt);var C=new s,mt=new s,f=new x,G=new d,dt=new d,lt=Math.pow(2,12);function h(o,t,e,a,i,c,n,r,m,l){let p=S.NONE,g,N;if(u(t)&&u(e)&&u(a)&&u(i)){let E=t.minimum,I=t.maximum,_=s.subtract(I,E,mt),$=a-e;Math.max(s.maximumComponent(_),$)<lt-1?p=S.BITS12:p=S.NONE,g=d.inverseTransformation(i,new d);let B=s.negate(E,C);d.multiply(d.fromTranslation(B,G),g,g);let w=C;w.x=1/_.x,w.y=1/_.y,w.z=1/_.z,d.multiply(d.fromScale(w,G),g,g),N=d.clone(i),d.setTranslation(N,s.ZERO,N),i=d.clone(i,new d);let tt=d.fromTranslation(E,G),ot=d.fromScale(_,dt),k=d.multiply(tt,ot,G);d.multiply(i,k,i),d.multiply(N,k,N)}this.quantization=p,this.minimumHeight=e,this.maximumHeight=a,this.center=s.clone(o),this.toScaledENU=g,this.fromScaledENU=i,this.matrix=N,this.hasVertexNormals=c,this.hasWebMercatorT=P(n,!1),this.hasGeodeticSurfaceNormals=P(r,!1),this.exaggeration=P(m,1),this.exaggerationRelativeHeight=P(l,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}h.prototype.encode=function(o,t,e,a,i,c,n,r){let m=a.x,l=a.y;if(this.quantization===S.BITS12){e=d.multiplyByPoint(this.toScaledENU,e,C),e.x=q.clamp(e.x,0,1),e.y=q.clamp(e.y,0,1),e.z=q.clamp(e.z,0,1);let p=this.maximumHeight-this.minimumHeight,g=q.clamp((i-this.minimumHeight)/p,0,1);x.fromElements(e.x,e.y,f);let N=y.compressTextureCoordinates(f);x.fromElements(e.z,g,f);let E=y.compressTextureCoordinates(f);x.fromElements(m,l,f);let I=y.compressTextureCoordinates(f);if(o[t++]=N,o[t++]=E,o[t++]=I,this.hasWebMercatorT){x.fromElements(n,0,f);let _=y.compressTextureCoordinates(f);o[t++]=_}}else s.subtract(e,this.center,C),o[t++]=C.x,o[t++]=C.y,o[t++]=C.z,o[t++]=i,o[t++]=m,o[t++]=l,this.hasWebMercatorT&&(o[t++]=n);return this.hasVertexNormals&&(o[t++]=y.octPackFloat(c)),this.hasGeodeticSurfaceNormals&&(o[t++]=r.x,o[t++]=r.y,o[t++]=r.z),t};var ht=new s,Y=new s;h.prototype.addGeodeticSurfaceNormals=function(o,t,e){if(this.hasGeodeticSurfaceNormals)return;let a=this.stride,i=o.length/a;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let c=this.stride;for(let n=0;n<i;n++){for(let p=0;p<a;p++){let g=n*a+p,N=n*c+p;t[N]=o[g]}let r=this.decodePosition(t,n,ht),m=e.geodeticSurfaceNormal(r,Y),l=n*c+this._offsetGeodeticSurfaceNormal;t[l]=m.x,t[l+1]=m.y,t[l+2]=m.z}};h.prototype.removeGeodeticSurfaceNormals=function(o,t){if(!this.hasGeodeticSurfaceNormals)return;let e=this.stride,a=o.length/e;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let i=this.stride;for(let c=0;c<a;c++)for(let n=0;n<i;n++){let r=c*e+n,m=c*i+n;t[m]=o[r]}};h.prototype.decodePosition=function(o,t,e){if(u(e)||(e=new s),t*=this.stride,this.quantization===S.BITS12){let a=y.decompressTextureCoordinates(o[t],f);e.x=a.x,e.y=a.y;let i=y.decompressTextureCoordinates(o[t+1],f);return e.z=i.x,d.multiplyByPoint(this.fromScaledENU,e,e)}return e.x=o[t],e.y=o[t+1],e.z=o[t+2],s.add(e,this.center,e)};h.prototype.getExaggeratedPosition=function(o,t,e){e=this.decodePosition(o,t,e);let a=this.exaggeration,i=this.exaggerationRelativeHeight;if(a!==1&&this.hasGeodeticSurfaceNormals){let n=this.decodeGeodeticSurfaceNormal(o,t,Y),r=this.decodeHeight(o,t),m=X.getHeight(r,a,i)-r;e.x+=n.x*m,e.y+=n.y*m,e.z+=n.z*m}return e};h.prototype.decodeTextureCoordinates=function(o,t,e){return u(e)||(e=new x),t*=this.stride,this.quantization===S.BITS12?y.decompressTextureCoordinates(o[t+2],e):x.fromElements(o[t+4],o[t+5],e)};h.prototype.decodeHeight=function(o,t){return t*=this.stride,this.quantization===S.BITS12?y.decompressTextureCoordinates(o[t+1],f).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:o[t+3]};h.prototype.decodeWebMercatorT=function(o,t){return t*=this.stride,this.quantization===S.BITS12?y.decompressTextureCoordinates(o[t+3],f).x:o[t+6]};h.prototype.getOctEncodedNormal=function(o,t,e){t=t*this.stride+this._offsetVertexNormal;let a=o[t]/256,i=Math.floor(a),c=(a-i)*256;return x.fromElements(i,c,e)};h.prototype.decodeGeodeticSurfaceNormal=function(o,t,e){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,e.x=o[t],e.y=o[t+1],e.z=o[t+2],e};h.prototype._calculateStrideAndOffsets=function(){let o=0;switch(this.quantization){case S.BITS12:o+=3;break;default:o+=6}this.hasWebMercatorT&&(o+=1),this.hasVertexNormals&&(this._offsetVertexNormal=o,o+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=o,o+=3),this.stride=o};var H={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},V={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};h.prototype.getAttributes=function(o){let t=A.FLOAT,e=A.getSizeInBytes(t),a=this.stride*e,i=0,c=[];function n(r,m){c.push({index:r,vertexBuffer:o,componentDatatype:t,componentsPerAttribute:m,offsetInBytes:i,strideInBytes:a}),i+=m*e}if(this.quantization===S.NONE){n(H.position3DAndHeight,4);let r=2;r+=this.hasWebMercatorT?1:0,r+=this.hasVertexNormals?1:0,n(H.textureCoordAndEncodedNormals,r),this.hasGeodeticSurfaceNormals&&n(H.geodeticSurfaceNormal,3)}else{let r=this.hasWebMercatorT||this.hasVertexNormals,m=this.hasWebMercatorT&&this.hasVertexNormals;n(V.compressed0,r?4:3),m&&n(V.compressed1,1),this.hasGeodeticSurfaceNormals&&n(V.geodeticSurfaceNormal,3)}return c};h.prototype.getAttributeLocations=function(){return this.quantization===S.NONE?H:V};h.clone=function(o,t){if(u(o))return u(t)||(t=new h),t.quantization=o.quantization,t.minimumHeight=o.minimumHeight,t.maximumHeight=o.maximumHeight,t.center=s.clone(o.center),t.toScaledENU=d.clone(o.toScaledENU),t.fromScaledENU=d.clone(o.fromScaledENU),t.matrix=d.clone(o.matrix),t.hasVertexNormals=o.hasVertexNormals,t.hasWebMercatorT=o.hasWebMercatorT,t.hasGeodeticSurfaceNormals=o.hasGeodeticSurfaceNormals,t.exaggeration=o.exaggeration,t.exaggerationRelativeHeight=o.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var At=h;export{xt as a,At as b}; diff --git a/libs/cesium/1.111/Workers/chunk-V6ZHITEJ.js b/libs/cesium/1.111/Workers/chunk-V6ZHITEJ.js new file mode 100644 index 000000000..89e41cd73 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-V6ZHITEJ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as c}from"./chunk-F33YCXD2.js";import{b as t}from"./chunk-KD2PMTHD.js";import{e as g}from"./chunk-ZUCO5WNM.js";function f(){this.high=c.clone(c.ZERO),this.low=c.clone(c.ZERO)}f.encode=function(n,o){t.typeOf.number("value",n),g(o)||(o={high:0,low:0});let h;return n>=0?(h=Math.floor(n/65536)*65536,o.high=h,o.low=n-h):(h=Math.floor(-n/65536)*65536,o.high=-h,o.low=n+h),o};var e={high:0,low:0};f.fromCartesian=function(n,o){t.typeOf.object("cartesian",n),g(o)||(o=new f);let h=o.high,i=o.low;return f.encode(n.x,e),h.x=e.high,i.x=e.low,f.encode(n.y,e),h.y=e.high,i.y=e.low,f.encode(n.z,e),h.z=e.high,i.z=e.low,o};var m=new f;f.writeElements=function(n,o,h){t.defined("cartesianArray",o),t.typeOf.number("index",h),t.typeOf.number.greaterThanOrEquals("index",h,0),f.fromCartesian(n,m);let i=m.high,w=m.low;o[h]=i.x,o[h+1]=i.y,o[h+2]=i.z,o[h+3]=w.x,o[h+4]=w.y,o[h+5]=w.z};var O=f;export{O as a}; diff --git a/libs/cesium/1.111/Workers/chunk-VD6RJEWG.js b/libs/cesium/1.111/Workers/chunk-VD6RJEWG.js new file mode 100644 index 000000000..46da6fb7d --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-VD6RJEWG.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as b}from"./chunk-N52FZRFP.js";import{a as u}from"./chunk-WIRUK4BS.js";import{a as O}from"./chunk-3UAKIC5Y.js";import{b as w,c as h,d as x}from"./chunk-QEWKHB6D.js";import{d}from"./chunk-DV7DPSRL.js";import{a as y}from"./chunk-7XDW3BZW.js";import{a as i}from"./chunk-F33YCXD2.js";import{a as p}from"./chunk-K36PKEJW.js";import{a as z,b as c}from"./chunk-KD2PMTHD.js";import{e as A}from"./chunk-ZUCO5WNM.js";var D=new i;function f(r){r=p(r,p.EMPTY_OBJECT);let o=r.minimum,m=r.maximum;if(c.typeOf.object("min",o),c.typeOf.object("max",m),A(r.offsetAttribute)&&r.offsetAttribute===b.TOP)throw new z("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");let a=p(r.vertexFormat,u.DEFAULT);this._minimum=i.clone(o),this._maximum=i.clone(m),this._vertexFormat=a,this._offsetAttribute=r.offsetAttribute,this._workerName="createBoxGeometry"}f.fromDimensions=function(r){r=p(r,p.EMPTY_OBJECT);let o=r.dimensions;c.typeOf.object("dimensions",o),c.typeOf.number.greaterThanOrEquals("dimensions.x",o.x,0),c.typeOf.number.greaterThanOrEquals("dimensions.y",o.y,0),c.typeOf.number.greaterThanOrEquals("dimensions.z",o.z,0);let m=i.multiplyByScalar(o,.5,new i);return new f({minimum:i.negate(m,new i),maximum:m,vertexFormat:r.vertexFormat,offsetAttribute:r.offsetAttribute})};f.fromAxisAlignedBoundingBox=function(r){return c.typeOf.object("boundingBox",r),new f({minimum:r.minimum,maximum:r.maximum})};f.packedLength=2*i.packedLength+u.packedLength+1;f.pack=function(r,o,m){return c.typeOf.object("value",r),c.defined("array",o),m=p(m,0),i.pack(r._minimum,o,m),i.pack(r._maximum,o,m+i.packedLength),u.pack(r._vertexFormat,o,m+2*i.packedLength),o[m+2*i.packedLength+u.packedLength]=p(r._offsetAttribute,-1),o};var _=new i,g=new i,k=new u,F={minimum:_,maximum:g,vertexFormat:k,offsetAttribute:void 0};f.unpack=function(r,o,m){c.defined("array",r),o=p(o,0);let a=i.unpack(r,o,_),s=i.unpack(r,o+i.packedLength,g),n=u.unpack(r,o+2*i.packedLength,k),e=r[o+2*i.packedLength+u.packedLength];return A(m)?(m._minimum=i.clone(a,m._minimum),m._maximum=i.clone(s,m._maximum),m._vertexFormat=u.clone(n,m._vertexFormat),m._offsetAttribute=e===-1?void 0:e,m):(F.offsetAttribute=e===-1?void 0:e,new f(F))};f.createGeometry=function(r){let o=r._minimum,m=r._maximum,a=r._vertexFormat;if(i.equals(o,m))return;let s=new O,n,e;if(a.position&&(a.st||a.normal||a.tangent||a.bitangent)){if(a.position&&(e=new Float64Array(6*4*3),e[0]=o.x,e[1]=o.y,e[2]=m.z,e[3]=m.x,e[4]=o.y,e[5]=m.z,e[6]=m.x,e[7]=m.y,e[8]=m.z,e[9]=o.x,e[10]=m.y,e[11]=m.z,e[12]=o.x,e[13]=o.y,e[14]=o.z,e[15]=m.x,e[16]=o.y,e[17]=o.z,e[18]=m.x,e[19]=m.y,e[20]=o.z,e[21]=o.x,e[22]=m.y,e[23]=o.z,e[24]=m.x,e[25]=o.y,e[26]=o.z,e[27]=m.x,e[28]=m.y,e[29]=o.z,e[30]=m.x,e[31]=m.y,e[32]=m.z,e[33]=m.x,e[34]=o.y,e[35]=m.z,e[36]=o.x,e[37]=o.y,e[38]=o.z,e[39]=o.x,e[40]=m.y,e[41]=o.z,e[42]=o.x,e[43]=m.y,e[44]=m.z,e[45]=o.x,e[46]=o.y,e[47]=m.z,e[48]=o.x,e[49]=m.y,e[50]=o.z,e[51]=m.x,e[52]=m.y,e[53]=o.z,e[54]=m.x,e[55]=m.y,e[56]=m.z,e[57]=o.x,e[58]=m.y,e[59]=m.z,e[60]=o.x,e[61]=o.y,e[62]=o.z,e[63]=m.x,e[64]=o.y,e[65]=o.z,e[66]=m.x,e[67]=o.y,e[68]=m.z,e[69]=o.x,e[70]=o.y,e[71]=m.z,s.position=new x({componentDatatype:y.DOUBLE,componentsPerAttribute:3,values:e})),a.normal){let t=new Float32Array(72);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,t[12]=0,t[13]=0,t[14]=-1,t[15]=0,t[16]=0,t[17]=-1,t[18]=0,t[19]=0,t[20]=-1,t[21]=0,t[22]=0,t[23]=-1,t[24]=1,t[25]=0,t[26]=0,t[27]=1,t[28]=0,t[29]=0,t[30]=1,t[31]=0,t[32]=0,t[33]=1,t[34]=0,t[35]=0,t[36]=-1,t[37]=0,t[38]=0,t[39]=-1,t[40]=0,t[41]=0,t[42]=-1,t[43]=0,t[44]=0,t[45]=-1,t[46]=0,t[47]=0,t[48]=0,t[49]=1,t[50]=0,t[51]=0,t[52]=1,t[53]=0,t[54]=0,t[55]=1,t[56]=0,t[57]=0,t[58]=1,t[59]=0,t[60]=0,t[61]=-1,t[62]=0,t[63]=0,t[64]=-1,t[65]=0,t[66]=0,t[67]=-1,t[68]=0,t[69]=0,t[70]=-1,t[71]=0,s.normal=new x({componentDatatype:y.FLOAT,componentsPerAttribute:3,values:t})}if(a.st){let t=new Float32Array(48);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,t[8]=1,t[9]=0,t[10]=0,t[11]=0,t[12]=0,t[13]=1,t[14]=1,t[15]=1,t[16]=0,t[17]=0,t[18]=1,t[19]=0,t[20]=1,t[21]=1,t[22]=0,t[23]=1,t[24]=1,t[25]=0,t[26]=0,t[27]=0,t[28]=0,t[29]=1,t[30]=1,t[31]=1,t[32]=1,t[33]=0,t[34]=0,t[35]=0,t[36]=0,t[37]=1,t[38]=1,t[39]=1,t[40]=0,t[41]=0,t[42]=1,t[43]=0,t[44]=1,t[45]=1,t[46]=0,t[47]=1,s.st=new x({componentDatatype:y.FLOAT,componentsPerAttribute:2,values:t})}if(a.tangent){let t=new Float32Array(72);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,t[12]=-1,t[13]=0,t[14]=0,t[15]=-1,t[16]=0,t[17]=0,t[18]=-1,t[19]=0,t[20]=0,t[21]=-1,t[22]=0,t[23]=0,t[24]=0,t[25]=1,t[26]=0,t[27]=0,t[28]=1,t[29]=0,t[30]=0,t[31]=1,t[32]=0,t[33]=0,t[34]=1,t[35]=0,t[36]=0,t[37]=-1,t[38]=0,t[39]=0,t[40]=-1,t[41]=0,t[42]=0,t[43]=-1,t[44]=0,t[45]=0,t[46]=-1,t[47]=0,t[48]=-1,t[49]=0,t[50]=0,t[51]=-1,t[52]=0,t[53]=0,t[54]=-1,t[55]=0,t[56]=0,t[57]=-1,t[58]=0,t[59]=0,t[60]=1,t[61]=0,t[62]=0,t[63]=1,t[64]=0,t[65]=0,t[66]=1,t[67]=0,t[68]=0,t[69]=1,t[70]=0,t[71]=0,s.tangent=new x({componentDatatype:y.FLOAT,componentsPerAttribute:3,values:t})}if(a.bitangent){let t=new Float32Array(72);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=1,t[14]=0,t[15]=0,t[16]=1,t[17]=0,t[18]=0,t[19]=1,t[20]=0,t[21]=0,t[22]=1,t[23]=0,t[24]=0,t[25]=0,t[26]=1,t[27]=0,t[28]=0,t[29]=1,t[30]=0,t[31]=0,t[32]=1,t[33]=0,t[34]=0,t[35]=1,t[36]=0,t[37]=0,t[38]=1,t[39]=0,t[40]=0,t[41]=1,t[42]=0,t[43]=0,t[44]=1,t[45]=0,t[46]=0,t[47]=1,t[48]=0,t[49]=0,t[50]=1,t[51]=0,t[52]=0,t[53]=1,t[54]=0,t[55]=0,t[56]=1,t[57]=0,t[58]=0,t[59]=1,t[60]=0,t[61]=0,t[62]=1,t[63]=0,t[64]=0,t[65]=1,t[66]=0,t[67]=0,t[68]=1,t[69]=0,t[70]=0,t[71]=1,s.bitangent=new x({componentDatatype:y.FLOAT,componentsPerAttribute:3,values:t})}n=new Uint16Array(6*2*3),n[0]=0,n[1]=1,n[2]=2,n[3]=0,n[4]=2,n[5]=3,n[6]=4+2,n[7]=4+1,n[8]=4+0,n[9]=4+3,n[10]=4+2,n[11]=4+0,n[12]=8+0,n[13]=8+1,n[14]=8+2,n[15]=8+0,n[16]=8+2,n[17]=8+3,n[18]=12+2,n[19]=12+1,n[20]=12+0,n[21]=12+3,n[22]=12+2,n[23]=12+0,n[24]=16+2,n[25]=16+1,n[26]=16+0,n[27]=16+3,n[28]=16+2,n[29]=16+0,n[30]=20+0,n[31]=20+1,n[32]=20+2,n[33]=20+0,n[34]=20+2,n[35]=20+3}else e=new Float64Array(8*3),e[0]=o.x,e[1]=o.y,e[2]=o.z,e[3]=m.x,e[4]=o.y,e[5]=o.z,e[6]=m.x,e[7]=m.y,e[8]=o.z,e[9]=o.x,e[10]=m.y,e[11]=o.z,e[12]=o.x,e[13]=o.y,e[14]=m.z,e[15]=m.x,e[16]=o.y,e[17]=m.z,e[18]=m.x,e[19]=m.y,e[20]=m.z,e[21]=o.x,e[22]=m.y,e[23]=m.z,s.position=new x({componentDatatype:y.DOUBLE,componentsPerAttribute:3,values:e}),n=new Uint16Array(6*2*3),n[0]=4,n[1]=5,n[2]=6,n[3]=4,n[4]=6,n[5]=7,n[6]=1,n[7]=0,n[8]=3,n[9]=1,n[10]=3,n[11]=2,n[12]=1,n[13]=6,n[14]=5,n[15]=1,n[16]=2,n[17]=6,n[18]=2,n[19]=3,n[20]=7,n[21]=2,n[22]=7,n[23]=6,n[24]=3,n[25]=0,n[26]=4,n[27]=3,n[28]=4,n[29]=7,n[30]=0,n[31]=1,n[32]=5,n[33]=0,n[34]=5,n[35]=4;let v=i.subtract(m,o,D),L=i.magnitude(v)*.5;if(A(r._offsetAttribute)){let t=e.length,T=r._offsetAttribute===b.NONE?0:1,E=new Uint8Array(t/3).fill(T);s.applyOffset=new x({componentDatatype:y.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}return new h({attributes:s,indices:n,primitiveType:w.TRIANGLES,boundingSphere:new d(i.ZERO,L),offsetAttribute:r._offsetAttribute})};var l;f.getUnitBox=function(){return A(l)||(l=f.createGeometry(f.fromDimensions({dimensions:new i(1,1,1),vertexFormat:u.POSITION_ONLY}))),l};var R=f;export{R as a}; diff --git a/libs/cesium/1.111/Workers/chunk-VFOAUMZG.js b/libs/cesium/1.111/Workers/chunk-VFOAUMZG.js new file mode 100644 index 000000000..f78832197 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-VFOAUMZG.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{e as j}from"./chunk-DV7DPSRL.js";import{a as E}from"./chunk-DUBQPPQZ.js";import{a as C}from"./chunk-K36PKEJW.js";import{b as n}from"./chunk-KD2PMTHD.js";import{e as O}from"./chunk-ZUCO5WNM.js";function l(r,o,t){return t<0&&(t+=1),t>1&&(t-=1),t*6<1?r+(o-r)*6*t:t*2<1?o:t*3<2?r+(o-r)*(2/3-t)*6:r}function e(r,o,t,f){this.red=C(r,1),this.green=C(o,1),this.blue=C(t,1),this.alpha=C(f,1)}e.fromCartesian4=function(r,o){return n.typeOf.object("cartesian",r),O(o)?(o.red=r.x,o.green=r.y,o.blue=r.z,o.alpha=r.w,o):new e(r.x,r.y,r.z,r.w)};e.fromBytes=function(r,o,t,f,s){return r=e.byteToFloat(C(r,255)),o=e.byteToFloat(C(o,255)),t=e.byteToFloat(C(t,255)),f=e.byteToFloat(C(f,255)),O(s)?(s.red=r,s.green=o,s.blue=t,s.alpha=f,s):new e(r,o,t,f)};e.fromAlpha=function(r,o,t){return n.typeOf.object("color",r),n.typeOf.number("alpha",o),O(t)?(t.red=r.red,t.green=r.green,t.blue=r.blue,t.alpha=o,t):new e(r.red,r.green,r.blue,o)};var A,g,m;j.supportsTypedArrays()&&(A=new ArrayBuffer(4),g=new Uint32Array(A),m=new Uint8Array(A));e.fromRgba=function(r,o){return g[0]=r,e.fromBytes(m[0],m[1],m[2],m[3],o)};e.fromHsl=function(r,o,t,f,s){r=C(r,0)%1,o=C(o,0),t=C(t,0),f=C(f,1);let c=t,b=t,i=t;if(o!==0){let S;t<.5?S=t*(1+o):S=t+o-t*o;let F=2*t-S;c=l(F,S,r+1/3),b=l(F,S,r),i=l(F,S,r-1/3)}return O(s)?(s.red=c,s.green=b,s.blue=i,s.alpha=f,s):new e(c,b,i,f)};e.fromRandom=function(r,o){r=C(r,C.EMPTY_OBJECT);let t=r.red;if(!O(t)){let b=C(r.minimumRed,0),i=C(r.maximumRed,1);n.typeOf.number.lessThanOrEquals("minimumRed",b,i),t=b+E.nextRandomNumber()*(i-b)}let f=r.green;if(!O(f)){let b=C(r.minimumGreen,0),i=C(r.maximumGreen,1);n.typeOf.number.lessThanOrEquals("minimumGreen",b,i),f=b+E.nextRandomNumber()*(i-b)}let s=r.blue;if(!O(s)){let b=C(r.minimumBlue,0),i=C(r.maximumBlue,1);n.typeOf.number.lessThanOrEquals("minimumBlue",b,i),s=b+E.nextRandomNumber()*(i-b)}let c=r.alpha;if(!O(c)){let b=C(r.minimumAlpha,0),i=C(r.maximumAlpha,1);n.typeOf.number.lessThanOrEquals("minumumAlpha",b,i),c=b+E.nextRandomNumber()*(i-b)}return O(o)?(o.red=t,o.green=f,o.blue=s,o.alpha=c,o):new e(t,f,s,c)};var a=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,z=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,p=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,R=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;e.fromCssColorString=function(r,o){n.typeOf.string("color",r),O(o)||(o=new e),r=r.trim();let t=e[r.toUpperCase()];if(O(t))return e.clone(t,o),o;let f=a.exec(r);return f!==null?(o.red=parseInt(f[1],16)/15,o.green=parseInt(f[2],16)/15,o.blue=parseInt(f[3],16)/15,o.alpha=parseInt(C(f[4],"f"),16)/15,o):(f=z.exec(r),f!==null?(o.red=parseInt(f[1],16)/255,o.green=parseInt(f[2],16)/255,o.blue=parseInt(f[3],16)/255,o.alpha=parseInt(C(f[4],"ff"),16)/255,o):(f=p.exec(r),f!==null?(o.red=parseFloat(f[1])/(f[1].substr(-1)==="%"?100:255),o.green=parseFloat(f[2])/(f[2].substr(-1)==="%"?100:255),o.blue=parseFloat(f[3])/(f[3].substr(-1)==="%"?100:255),o.alpha=parseFloat(C(f[4],"1.0")),o):(f=R.exec(r),f!==null?e.fromHsl(parseFloat(f[1])/360,parseFloat(f[2])/100,parseFloat(f[3])/100,parseFloat(C(f[4],"1.0")),o):(o=void 0,o))))};e.packedLength=4;e.pack=function(r,o,t){return n.typeOf.object("value",r),n.defined("array",o),t=C(t,0),o[t++]=r.red,o[t++]=r.green,o[t++]=r.blue,o[t]=r.alpha,o};e.unpack=function(r,o,t){return n.defined("array",r),o=C(o,0),O(t)||(t=new e),t.red=r[o++],t.green=r[o++],t.blue=r[o++],t.alpha=r[o],t};e.byteToFloat=function(r){return r/255};e.floatToByte=function(r){return r===1?255:r*256|0};e.clone=function(r,o){if(O(r))return O(o)?(o.red=r.red,o.green=r.green,o.blue=r.blue,o.alpha=r.alpha,o):new e(r.red,r.green,r.blue,r.alpha)};e.equals=function(r,o){return r===o||O(r)&&O(o)&&r.red===o.red&&r.green===o.green&&r.blue===o.blue&&r.alpha===o.alpha};e.equalsArray=function(r,o,t){return r.red===o[t]&&r.green===o[t+1]&&r.blue===o[t+2]&&r.alpha===o[t+3]};e.prototype.clone=function(r){return e.clone(this,r)};e.prototype.equals=function(r){return e.equals(this,r)};e.prototype.equalsEpsilon=function(r,o){return this===r||O(r)&&Math.abs(this.red-r.red)<=o&&Math.abs(this.green-r.green)<=o&&Math.abs(this.blue-r.blue)<=o&&Math.abs(this.alpha-r.alpha)<=o};e.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};e.prototype.toCssColorString=function(){let r=e.floatToByte(this.red),o=e.floatToByte(this.green),t=e.floatToByte(this.blue);return this.alpha===1?`rgb(${r},${o},${t})`:`rgba(${r},${o},${t},${this.alpha})`};e.prototype.toCssHexString=function(){let r=e.floatToByte(this.red).toString(16);r.length<2&&(r=`0${r}`);let o=e.floatToByte(this.green).toString(16);o.length<2&&(o=`0${o}`);let t=e.floatToByte(this.blue).toString(16);if(t.length<2&&(t=`0${t}`),this.alpha<1){let f=e.floatToByte(this.alpha).toString(16);return f.length<2&&(f=`0${f}`),`#${r}${o}${t}${f}`}return`#${r}${o}${t}`};e.prototype.toBytes=function(r){let o=e.floatToByte(this.red),t=e.floatToByte(this.green),f=e.floatToByte(this.blue),s=e.floatToByte(this.alpha);return O(r)?(r[0]=o,r[1]=t,r[2]=f,r[3]=s,r):[o,t,f,s]};e.prototype.toRgba=function(){return m[0]=e.floatToByte(this.red),m[1]=e.floatToByte(this.green),m[2]=e.floatToByte(this.blue),m[3]=e.floatToByte(this.alpha),g[0]};e.prototype.brighten=function(r,o){return n.typeOf.number("magnitude",r),n.typeOf.number.greaterThanOrEquals("magnitude",r,0),n.typeOf.object("result",o),r=1-r,o.red=1-(1-this.red)*r,o.green=1-(1-this.green)*r,o.blue=1-(1-this.blue)*r,o.alpha=this.alpha,o};e.prototype.darken=function(r,o){return n.typeOf.number("magnitude",r),n.typeOf.number.greaterThanOrEquals("magnitude",r,0),n.typeOf.object("result",o),r=1-r,o.red=this.red*r,o.green=this.green*r,o.blue=this.blue*r,o.alpha=this.alpha,o};e.prototype.withAlpha=function(r,o){return e.fromAlpha(this,r,o)};e.add=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red+o.red,t.green=r.green+o.green,t.blue=r.blue+o.blue,t.alpha=r.alpha+o.alpha,t};e.subtract=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red-o.red,t.green=r.green-o.green,t.blue=r.blue-o.blue,t.alpha=r.alpha-o.alpha,t};e.multiply=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red*o.red,t.green=r.green*o.green,t.blue=r.blue*o.blue,t.alpha=r.alpha*o.alpha,t};e.divide=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red/o.red,t.green=r.green/o.green,t.blue=r.blue/o.blue,t.alpha=r.alpha/o.alpha,t};e.mod=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red%o.red,t.green=r.green%o.green,t.blue=r.blue%o.blue,t.alpha=r.alpha%o.alpha,t};e.lerp=function(r,o,t,f){return n.typeOf.object("start",r),n.typeOf.object("end",o),n.typeOf.number("t",t),n.typeOf.object("result",f),f.red=E.lerp(r.red,o.red,t),f.green=E.lerp(r.green,o.green,t),f.blue=E.lerp(r.blue,o.blue,t),f.alpha=E.lerp(r.alpha,o.alpha,t),f};e.multiplyByScalar=function(r,o,t){return n.typeOf.object("color",r),n.typeOf.number("scalar",o),n.typeOf.object("result",t),t.red=r.red*o,t.green=r.green*o,t.blue=r.blue*o,t.alpha=r.alpha*o,t};e.divideByScalar=function(r,o,t){return n.typeOf.object("color",r),n.typeOf.number("scalar",o),n.typeOf.object("result",t),t.red=r.red/o,t.green=r.green/o,t.blue=r.blue/o,t.alpha=r.alpha/o,t};e.ALICEBLUE=Object.freeze(e.fromCssColorString("#F0F8FF"));e.ANTIQUEWHITE=Object.freeze(e.fromCssColorString("#FAEBD7"));e.AQUA=Object.freeze(e.fromCssColorString("#00FFFF"));e.AQUAMARINE=Object.freeze(e.fromCssColorString("#7FFFD4"));e.AZURE=Object.freeze(e.fromCssColorString("#F0FFFF"));e.BEIGE=Object.freeze(e.fromCssColorString("#F5F5DC"));e.BISQUE=Object.freeze(e.fromCssColorString("#FFE4C4"));e.BLACK=Object.freeze(e.fromCssColorString("#000000"));e.BLANCHEDALMOND=Object.freeze(e.fromCssColorString("#FFEBCD"));e.BLUE=Object.freeze(e.fromCssColorString("#0000FF"));e.BLUEVIOLET=Object.freeze(e.fromCssColorString("#8A2BE2"));e.BROWN=Object.freeze(e.fromCssColorString("#A52A2A"));e.BURLYWOOD=Object.freeze(e.fromCssColorString("#DEB887"));e.CADETBLUE=Object.freeze(e.fromCssColorString("#5F9EA0"));e.CHARTREUSE=Object.freeze(e.fromCssColorString("#7FFF00"));e.CHOCOLATE=Object.freeze(e.fromCssColorString("#D2691E"));e.CORAL=Object.freeze(e.fromCssColorString("#FF7F50"));e.CORNFLOWERBLUE=Object.freeze(e.fromCssColorString("#6495ED"));e.CORNSILK=Object.freeze(e.fromCssColorString("#FFF8DC"));e.CRIMSON=Object.freeze(e.fromCssColorString("#DC143C"));e.CYAN=Object.freeze(e.fromCssColorString("#00FFFF"));e.DARKBLUE=Object.freeze(e.fromCssColorString("#00008B"));e.DARKCYAN=Object.freeze(e.fromCssColorString("#008B8B"));e.DARKGOLDENROD=Object.freeze(e.fromCssColorString("#B8860B"));e.DARKGRAY=Object.freeze(e.fromCssColorString("#A9A9A9"));e.DARKGREEN=Object.freeze(e.fromCssColorString("#006400"));e.DARKGREY=e.DARKGRAY;e.DARKKHAKI=Object.freeze(e.fromCssColorString("#BDB76B"));e.DARKMAGENTA=Object.freeze(e.fromCssColorString("#8B008B"));e.DARKOLIVEGREEN=Object.freeze(e.fromCssColorString("#556B2F"));e.DARKORANGE=Object.freeze(e.fromCssColorString("#FF8C00"));e.DARKORCHID=Object.freeze(e.fromCssColorString("#9932CC"));e.DARKRED=Object.freeze(e.fromCssColorString("#8B0000"));e.DARKSALMON=Object.freeze(e.fromCssColorString("#E9967A"));e.DARKSEAGREEN=Object.freeze(e.fromCssColorString("#8FBC8F"));e.DARKSLATEBLUE=Object.freeze(e.fromCssColorString("#483D8B"));e.DARKSLATEGRAY=Object.freeze(e.fromCssColorString("#2F4F4F"));e.DARKSLATEGREY=e.DARKSLATEGRAY;e.DARKTURQUOISE=Object.freeze(e.fromCssColorString("#00CED1"));e.DARKVIOLET=Object.freeze(e.fromCssColorString("#9400D3"));e.DEEPPINK=Object.freeze(e.fromCssColorString("#FF1493"));e.DEEPSKYBLUE=Object.freeze(e.fromCssColorString("#00BFFF"));e.DIMGRAY=Object.freeze(e.fromCssColorString("#696969"));e.DIMGREY=e.DIMGRAY;e.DODGERBLUE=Object.freeze(e.fromCssColorString("#1E90FF"));e.FIREBRICK=Object.freeze(e.fromCssColorString("#B22222"));e.FLORALWHITE=Object.freeze(e.fromCssColorString("#FFFAF0"));e.FORESTGREEN=Object.freeze(e.fromCssColorString("#228B22"));e.FUCHSIA=Object.freeze(e.fromCssColorString("#FF00FF"));e.GAINSBORO=Object.freeze(e.fromCssColorString("#DCDCDC"));e.GHOSTWHITE=Object.freeze(e.fromCssColorString("#F8F8FF"));e.GOLD=Object.freeze(e.fromCssColorString("#FFD700"));e.GOLDENROD=Object.freeze(e.fromCssColorString("#DAA520"));e.GRAY=Object.freeze(e.fromCssColorString("#808080"));e.GREEN=Object.freeze(e.fromCssColorString("#008000"));e.GREENYELLOW=Object.freeze(e.fromCssColorString("#ADFF2F"));e.GREY=e.GRAY;e.HONEYDEW=Object.freeze(e.fromCssColorString("#F0FFF0"));e.HOTPINK=Object.freeze(e.fromCssColorString("#FF69B4"));e.INDIANRED=Object.freeze(e.fromCssColorString("#CD5C5C"));e.INDIGO=Object.freeze(e.fromCssColorString("#4B0082"));e.IVORY=Object.freeze(e.fromCssColorString("#FFFFF0"));e.KHAKI=Object.freeze(e.fromCssColorString("#F0E68C"));e.LAVENDER=Object.freeze(e.fromCssColorString("#E6E6FA"));e.LAVENDAR_BLUSH=Object.freeze(e.fromCssColorString("#FFF0F5"));e.LAWNGREEN=Object.freeze(e.fromCssColorString("#7CFC00"));e.LEMONCHIFFON=Object.freeze(e.fromCssColorString("#FFFACD"));e.LIGHTBLUE=Object.freeze(e.fromCssColorString("#ADD8E6"));e.LIGHTCORAL=Object.freeze(e.fromCssColorString("#F08080"));e.LIGHTCYAN=Object.freeze(e.fromCssColorString("#E0FFFF"));e.LIGHTGOLDENRODYELLOW=Object.freeze(e.fromCssColorString("#FAFAD2"));e.LIGHTGRAY=Object.freeze(e.fromCssColorString("#D3D3D3"));e.LIGHTGREEN=Object.freeze(e.fromCssColorString("#90EE90"));e.LIGHTGREY=e.LIGHTGRAY;e.LIGHTPINK=Object.freeze(e.fromCssColorString("#FFB6C1"));e.LIGHTSEAGREEN=Object.freeze(e.fromCssColorString("#20B2AA"));e.LIGHTSKYBLUE=Object.freeze(e.fromCssColorString("#87CEFA"));e.LIGHTSLATEGRAY=Object.freeze(e.fromCssColorString("#778899"));e.LIGHTSLATEGREY=e.LIGHTSLATEGRAY;e.LIGHTSTEELBLUE=Object.freeze(e.fromCssColorString("#B0C4DE"));e.LIGHTYELLOW=Object.freeze(e.fromCssColorString("#FFFFE0"));e.LIME=Object.freeze(e.fromCssColorString("#00FF00"));e.LIMEGREEN=Object.freeze(e.fromCssColorString("#32CD32"));e.LINEN=Object.freeze(e.fromCssColorString("#FAF0E6"));e.MAGENTA=Object.freeze(e.fromCssColorString("#FF00FF"));e.MAROON=Object.freeze(e.fromCssColorString("#800000"));e.MEDIUMAQUAMARINE=Object.freeze(e.fromCssColorString("#66CDAA"));e.MEDIUMBLUE=Object.freeze(e.fromCssColorString("#0000CD"));e.MEDIUMORCHID=Object.freeze(e.fromCssColorString("#BA55D3"));e.MEDIUMPURPLE=Object.freeze(e.fromCssColorString("#9370DB"));e.MEDIUMSEAGREEN=Object.freeze(e.fromCssColorString("#3CB371"));e.MEDIUMSLATEBLUE=Object.freeze(e.fromCssColorString("#7B68EE"));e.MEDIUMSPRINGGREEN=Object.freeze(e.fromCssColorString("#00FA9A"));e.MEDIUMTURQUOISE=Object.freeze(e.fromCssColorString("#48D1CC"));e.MEDIUMVIOLETRED=Object.freeze(e.fromCssColorString("#C71585"));e.MIDNIGHTBLUE=Object.freeze(e.fromCssColorString("#191970"));e.MINTCREAM=Object.freeze(e.fromCssColorString("#F5FFFA"));e.MISTYROSE=Object.freeze(e.fromCssColorString("#FFE4E1"));e.MOCCASIN=Object.freeze(e.fromCssColorString("#FFE4B5"));e.NAVAJOWHITE=Object.freeze(e.fromCssColorString("#FFDEAD"));e.NAVY=Object.freeze(e.fromCssColorString("#000080"));e.OLDLACE=Object.freeze(e.fromCssColorString("#FDF5E6"));e.OLIVE=Object.freeze(e.fromCssColorString("#808000"));e.OLIVEDRAB=Object.freeze(e.fromCssColorString("#6B8E23"));e.ORANGE=Object.freeze(e.fromCssColorString("#FFA500"));e.ORANGERED=Object.freeze(e.fromCssColorString("#FF4500"));e.ORCHID=Object.freeze(e.fromCssColorString("#DA70D6"));e.PALEGOLDENROD=Object.freeze(e.fromCssColorString("#EEE8AA"));e.PALEGREEN=Object.freeze(e.fromCssColorString("#98FB98"));e.PALETURQUOISE=Object.freeze(e.fromCssColorString("#AFEEEE"));e.PALEVIOLETRED=Object.freeze(e.fromCssColorString("#DB7093"));e.PAPAYAWHIP=Object.freeze(e.fromCssColorString("#FFEFD5"));e.PEACHPUFF=Object.freeze(e.fromCssColorString("#FFDAB9"));e.PERU=Object.freeze(e.fromCssColorString("#CD853F"));e.PINK=Object.freeze(e.fromCssColorString("#FFC0CB"));e.PLUM=Object.freeze(e.fromCssColorString("#DDA0DD"));e.POWDERBLUE=Object.freeze(e.fromCssColorString("#B0E0E6"));e.PURPLE=Object.freeze(e.fromCssColorString("#800080"));e.RED=Object.freeze(e.fromCssColorString("#FF0000"));e.ROSYBROWN=Object.freeze(e.fromCssColorString("#BC8F8F"));e.ROYALBLUE=Object.freeze(e.fromCssColorString("#4169E1"));e.SADDLEBROWN=Object.freeze(e.fromCssColorString("#8B4513"));e.SALMON=Object.freeze(e.fromCssColorString("#FA8072"));e.SANDYBROWN=Object.freeze(e.fromCssColorString("#F4A460"));e.SEAGREEN=Object.freeze(e.fromCssColorString("#2E8B57"));e.SEASHELL=Object.freeze(e.fromCssColorString("#FFF5EE"));e.SIENNA=Object.freeze(e.fromCssColorString("#A0522D"));e.SILVER=Object.freeze(e.fromCssColorString("#C0C0C0"));e.SKYBLUE=Object.freeze(e.fromCssColorString("#87CEEB"));e.SLATEBLUE=Object.freeze(e.fromCssColorString("#6A5ACD"));e.SLATEGRAY=Object.freeze(e.fromCssColorString("#708090"));e.SLATEGREY=e.SLATEGRAY;e.SNOW=Object.freeze(e.fromCssColorString("#FFFAFA"));e.SPRINGGREEN=Object.freeze(e.fromCssColorString("#00FF7F"));e.STEELBLUE=Object.freeze(e.fromCssColorString("#4682B4"));e.TAN=Object.freeze(e.fromCssColorString("#D2B48C"));e.TEAL=Object.freeze(e.fromCssColorString("#008080"));e.THISTLE=Object.freeze(e.fromCssColorString("#D8BFD8"));e.TOMATO=Object.freeze(e.fromCssColorString("#FF6347"));e.TURQUOISE=Object.freeze(e.fromCssColorString("#40E0D0"));e.VIOLET=Object.freeze(e.fromCssColorString("#EE82EE"));e.WHEAT=Object.freeze(e.fromCssColorString("#F5DEB3"));e.WHITE=Object.freeze(e.fromCssColorString("#FFFFFF"));e.WHITESMOKE=Object.freeze(e.fromCssColorString("#F5F5F5"));e.YELLOW=Object.freeze(e.fromCssColorString("#FFFF00"));e.YELLOWGREEN=Object.freeze(e.fromCssColorString("#9ACD32"));e.TRANSPARENT=Object.freeze(new e(0,0,0,0));var h=e;export{h as a}; diff --git a/libs/cesium/1.111/Workers/chunk-WIRUK4BS.js b/libs/cesium/1.111/Workers/chunk-WIRUK4BS.js new file mode 100644 index 000000000..85f84a92b --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-WIRUK4BS.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-K36PKEJW.js";import{a as O}from"./chunk-KD2PMTHD.js";import{e as f}from"./chunk-ZUCO5WNM.js";function n(e){e=t(e,t.EMPTY_OBJECT),this.position=t(e.position,!1),this.normal=t(e.normal,!1),this.st=t(e.st,!1),this.bitangent=t(e.bitangent,!1),this.tangent=t(e.tangent,!1),this.color=t(e.color,!1)}n.POSITION_ONLY=Object.freeze(new n({position:!0}));n.POSITION_AND_NORMAL=Object.freeze(new n({position:!0,normal:!0}));n.POSITION_NORMAL_AND_ST=Object.freeze(new n({position:!0,normal:!0,st:!0}));n.POSITION_AND_ST=Object.freeze(new n({position:!0,st:!0}));n.POSITION_AND_COLOR=Object.freeze(new n({position:!0,color:!0}));n.ALL=Object.freeze(new n({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));n.DEFAULT=n.POSITION_NORMAL_AND_ST;n.packedLength=6;n.pack=function(e,o,i){if(!f(e))throw new O("value is required");if(!f(o))throw new O("array is required");return i=t(i,0),o[i++]=e.position?1:0,o[i++]=e.normal?1:0,o[i++]=e.st?1:0,o[i++]=e.tangent?1:0,o[i++]=e.bitangent?1:0,o[i]=e.color?1:0,o};n.unpack=function(e,o,i){if(!f(e))throw new O("array is required");return o=t(o,0),f(i)||(i=new n),i.position=e[o++]===1,i.normal=e[o++]===1,i.st=e[o++]===1,i.tangent=e[o++]===1,i.bitangent=e[o++]===1,i.color=e[o]===1,i};n.clone=function(e,o){if(f(e))return f(o)||(o=new n),o.position=e.position,o.normal=e.normal,o.st=e.st,o.tangent=e.tangent,o.bitangent=e.bitangent,o.color=e.color,o};var _=n;export{_ as a}; diff --git a/libs/cesium/1.111/Workers/chunk-X42YZYOT.js b/libs/cesium/1.111/Workers/chunk-X42YZYOT.js new file mode 100644 index 000000000..16a8fdf19 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-X42YZYOT.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as fn,c as Tn}from"./chunk-ZUCO5WNM.js";var Dn=Tn((nt,bt)=>{var _=_||{};_.scope={};_.arrayIteratorImpl=function(p){var c=0;return function(){return c<p.length?{done:!1,value:p[c++]}:{done:!0}}};_.arrayIterator=function(p){return{next:_.arrayIteratorImpl(p)}};_.makeIterator=function(p){var c=typeof Symbol<"u"&&Symbol.iterator&&p[Symbol.iterator];return c?c.call(p):_.arrayIterator(p)};_.ASSUME_ES5=!1;_.ASSUME_NO_NATIVE_MAP=!1;_.ASSUME_NO_NATIVE_SET=!1;_.SIMPLE_FROUND_POLYFILL=!1;_.ISOLATE_POLYFILLS=!1;_.FORCE_POLYFILL_PROMISE=!1;_.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;_.getGlobal=function(p){p=[typeof globalThis=="object"&&globalThis,p,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var c=0;c<p.length;++c){var s=p[c];if(s&&s.Math==Math)return s}throw Error("Cannot find global object")};_.global=_.getGlobal(nt);_.defineProperty=_.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(p,c,s){return p==Array.prototype||p==Object.prototype||(p[c]=s.value),p};_.IS_SYMBOL_NATIVE=typeof Symbol=="function"&&typeof Symbol("x")=="symbol";_.TRUST_ES6_POLYFILLS=!_.ISOLATE_POLYFILLS||_.IS_SYMBOL_NATIVE;_.polyfills={};_.propertyToPolyfillSymbol={};_.POLYFILL_PREFIX="$jscp$";_.polyfill=function(p,c,s,y){c&&(_.ISOLATE_POLYFILLS?_.polyfillIsolated(p,c,s,y):_.polyfillUnisolated(p,c,s,y))};_.polyfillUnisolated=function(p,c,s,y){for(s=_.global,p=p.split("."),y=0;y<p.length-1;y++){var a=p[y];if(!(a in s))return;s=s[a]}p=p[p.length-1],y=s[p],c=c(y),c!=y&&c!=null&&_.defineProperty(s,p,{configurable:!0,writable:!0,value:c})};_.polyfillIsolated=function(p,c,s,y){var a=p.split(".");p=a.length===1,y=a[0],y=!p&&y in _.polyfills?_.polyfills:_.global;for(var g=0;g<a.length-1;g++){var i=a[g];if(!(i in y))return;y=y[i]}a=a[a.length-1],s=_.IS_SYMBOL_NATIVE&&s==="es6"?y[a]:null,c=c(s),c!=null&&(p?_.defineProperty(_.polyfills,a,{configurable:!0,writable:!0,value:c}):c!==s&&(_.propertyToPolyfillSymbol[a]===void 0&&(s=1e9*Math.random()>>>0,_.propertyToPolyfillSymbol[a]=_.IS_SYMBOL_NATIVE?_.global.Symbol(a):_.POLYFILL_PREFIX+s+"$"+a),_.defineProperty(y,_.propertyToPolyfillSymbol[a],{configurable:!0,writable:!0,value:c})))};_.polyfill("Promise",function(p){function c(){this.batch_=null}function s(i){return i instanceof a?i:new a(function(l,h){l(i)})}if(p&&(!(_.FORCE_POLYFILL_PROMISE||_.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&typeof _.global.PromiseRejectionEvent>"u")||!_.global.Promise||_.global.Promise.toString().indexOf("[native code]")===-1))return p;c.prototype.asyncExecute=function(i){if(this.batch_==null){this.batch_=[];var l=this;this.asyncExecuteFunction(function(){l.executeBatch_()})}this.batch_.push(i)};var y=_.global.setTimeout;c.prototype.asyncExecuteFunction=function(i){y(i,0)},c.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var i=this.batch_;this.batch_=[];for(var l=0;l<i.length;++l){var h=i[l];i[l]=null;try{h()}catch(I){this.asyncThrow_(I)}}}this.batch_=null},c.prototype.asyncThrow_=function(i){this.asyncExecuteFunction(function(){throw i})};var a=function(i){this.state_=0,this.result_=void 0,this.onSettledCallbacks_=[],this.isRejectionHandled_=!1;var l=this.createResolveAndReject_();try{i(l.resolve,l.reject)}catch(h){l.reject(h)}};a.prototype.createResolveAndReject_=function(){function i(I){return function(C){h||(h=!0,I.call(l,C))}}var l=this,h=!1;return{resolve:i(this.resolveTo_),reject:i(this.reject_)}},a.prototype.resolveTo_=function(i){if(i===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(i instanceof a)this.settleSameAsPromise_(i);else{t:switch(typeof i){case"object":var l=i!=null;break t;case"function":l=!0;break t;default:l=!1}l?this.resolveToNonPromiseObj_(i):this.fulfill_(i)}},a.prototype.resolveToNonPromiseObj_=function(i){var l=void 0;try{l=i.then}catch(h){this.reject_(h);return}typeof l=="function"?this.settleSameAsThenable_(l,i):this.fulfill_(i)},a.prototype.reject_=function(i){this.settle_(2,i)},a.prototype.fulfill_=function(i){this.settle_(1,i)},a.prototype.settle_=function(i,l){if(this.state_!=0)throw Error("Cannot settle("+i+", "+l+"): Promise already settled in state"+this.state_);this.state_=i,this.result_=l,this.state_===2&&this.scheduleUnhandledRejectionCheck_(),this.executeOnSettledCallbacks_()},a.prototype.scheduleUnhandledRejectionCheck_=function(){var i=this;y(function(){if(i.notifyUnhandledRejection_()){var l=_.global.console;typeof l<"u"&&l.error(i.result_)}},1)},a.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var i=_.global.CustomEvent,l=_.global.Event,h=_.global.dispatchEvent;return typeof h>"u"?!0:(typeof i=="function"?i=new i("unhandledrejection",{cancelable:!0}):typeof l=="function"?i=new l("unhandledrejection",{cancelable:!0}):(i=_.global.document.createEvent("CustomEvent"),i.initCustomEvent("unhandledrejection",!1,!0,i)),i.promise=this,i.reason=this.result_,h(i))},a.prototype.executeOnSettledCallbacks_=function(){if(this.onSettledCallbacks_!=null){for(var i=0;i<this.onSettledCallbacks_.length;++i)g.asyncExecute(this.onSettledCallbacks_[i]);this.onSettledCallbacks_=null}};var g=new c;return a.prototype.settleSameAsPromise_=function(i){var l=this.createResolveAndReject_();i.callWhenSettled_(l.resolve,l.reject)},a.prototype.settleSameAsThenable_=function(i,l){var h=this.createResolveAndReject_();try{i.call(l,h.resolve,h.reject)}catch(I){h.reject(I)}},a.prototype.then=function(i,l){function h(f,T){return typeof f=="function"?function(G){try{I(f(G))}catch(V){C(V)}}:T}var I,C,K=new a(function(f,T){I=f,C=T});return this.callWhenSettled_(h(i,I),h(l,C)),K},a.prototype.catch=function(i){return this.then(void 0,i)},a.prototype.callWhenSettled_=function(i,l){function h(){switch(I.state_){case 1:i(I.result_);break;case 2:l(I.result_);break;default:throw Error("Unexpected state: "+I.state_)}}var I=this;this.onSettledCallbacks_==null?g.asyncExecute(h):this.onSettledCallbacks_.push(h),this.isRejectionHandled_=!0},a.resolve=s,a.reject=function(i){return new a(function(l,h){h(i)})},a.race=function(i){return new a(function(l,h){for(var I=_.makeIterator(i),C=I.next();!C.done;C=I.next())s(C.value).callWhenSettled_(l,h)})},a.all=function(i){var l=_.makeIterator(i),h=l.next();return h.done?s([]):new a(function(I,C){function K(G){return function(V){f[G]=V,T--,T==0&&I(f)}}var f=[],T=0;do f.push(void 0),T++,s(h.value).callWhenSettled_(K(f.length-1),C),h=l.next();while(!h.done)})},a},"es6","es3");_.owns=function(p,c){return Object.prototype.hasOwnProperty.call(p,c)};_.assign=_.TRUST_ES6_POLYFILLS&&typeof Object.assign=="function"?Object.assign:function(p,c){for(var s=1;s<arguments.length;s++){var y=arguments[s];if(y)for(var a in y)_.owns(y,a)&&(p[a]=y[a])}return p};_.polyfill("Object.assign",function(p){return p||_.assign},"es6","es3");_.checkStringArgs=function(p,c,s){if(p==null)throw new TypeError("The 'this' value for String.prototype."+s+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+s+" must not be a regular expression");return p+""};_.polyfill("String.prototype.startsWith",function(p){return p||function(c,s){var y=_.checkStringArgs(this,c,"startsWith");c+="";var a=y.length,g=c.length;s=Math.max(0,Math.min(s|0,y.length));for(var i=0;i<g&&s<a;)if(y[s++]!=c[i++])return!1;return i>=g}},"es6","es3");_.polyfill("Array.prototype.copyWithin",function(p){function c(s){return s=Number(s),s===1/0||s===-1/0?s:s|0}return p||function(s,y,a){var g=this.length;if(s=c(s),y=c(y),a=a===void 0?g:c(a),s=0>s?Math.max(g+s,0):Math.min(s,g),y=0>y?Math.max(g+y,0):Math.min(y,g),a=0>a?Math.max(g+a,0):Math.min(a,g),s<y)for(;y<a;)y in this?this[s++]=this[y++]:(delete this[s++],y++);else for(a=Math.min(a,g+y-s),s+=a-y;a>y;)--a in this?this[--s]=this[a]:delete this[--s];return this}},"es6","es3");_.typedArrayCopyWithin=function(p){return p||Array.prototype.copyWithin};_.polyfill("Int8Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint8Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint8ClampedArray.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Int16Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint16Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Int32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Float32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Float64Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");var dt=function(){var p=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(p=p||__filename),function(c){function s(e){return t.locateFile?t.locateFile(e,Q):Q+e}function y(e,r,n){var o=r+n;for(n=r;e[n]&&!(n>=o);)++n;if(16<n-r&&e.buffer&&Ot)return Ot.decode(e.subarray(r,n));for(o="";r<n;){var m=e[r++];if(m&128){var b=e[r++]&63;if((m&224)==192)o+=String.fromCharCode((m&31)<<6|b);else{var X=e[r++]&63;m=(m&240)==224?(m&15)<<12|b<<6|X:(m&7)<<18|b<<12|X<<6|e[r++]&63,65536>m?o+=String.fromCharCode(m):(m-=65536,o+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else o+=String.fromCharCode(m)}return o}function a(e,r){return e?y(tt,e,r):""}function g(){var e=_t.buffer;t.HEAP8=q=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAP32=et=new Int32Array(e),t.HEAPU8=tt=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAPU32=x=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}function i(e){throw t.onAbort&&t.onAbort(e),e="Aborted("+e+")",J(e),Gt=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),ot(e),e}function l(e){try{if(e==z&&Z)return new Uint8Array(Z);if(ut)return ut(e);throw"both async and sync fetching of the wasm failed"}catch(r){i(r)}}function h(){if(!Z&&(It||$)){if(typeof fetch=="function"&&!z.startsWith("file://"))return fetch(z,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+z+"'";return e.arrayBuffer()}).catch(function(){return l(z)});if(st)return new Promise(function(e,r){st(z,function(n){e(new Uint8Array(n))},r)})}return Promise.resolve().then(function(){return l(z)})}function I(e){for(;0<e.length;)e.shift()(t)}function C(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(r){x[this.ptr+4>>2]=r},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(r){x[this.ptr+8>>2]=r},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_refcount=function(r){et[this.ptr>>2]=r},this.set_caught=function(r){q[this.ptr+12>>0]=r?1:0},this.get_caught=function(){return q[this.ptr+12>>0]!=0},this.set_rethrown=function(r){q[this.ptr+13>>0]=r?1:0},this.get_rethrown=function(){return q[this.ptr+13>>0]!=0},this.init=function(r,n){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(n),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){et[this.ptr>>2]+=1},this.release_ref=function(){var r=et[this.ptr>>2];return et[this.ptr>>2]=r-1,r===1},this.set_adjusted_ptr=function(r){x[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ln(this.get_type()))return x[this.excPtr>>2];var r=this.get_adjusted_ptr();return r!==0?r:this.excPtr}}function K(){function e(){if(!it&&(it=!0,t.calledRun=!0,!Gt)){if(Rt=!0,I(ct),ht(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Pt.unshift(t.postRun.shift());I(Pt)}}if(!(0<k)){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)jt.unshift(t.preRun.shift());I(jt),0<k||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e())}}function f(){}function T(e){return(e||f).__cache__}function G(e,r){var n=T(r),o=n[e];return o||(o=Object.create((r||f).prototype),o.ptr=e,n[e]=o)}function V(e){if(typeof e=="string"){for(var r=0,n=0;n<e.length;++n){var o=e.charCodeAt(n);127>=o?r++:2047>=o?r+=2:55296<=o&&57343>=o?(r+=4,++n):r+=3}if(r=Array(r+1),n=0,o=r.length,0<o){o=n+o-1;for(var m=0;m<e.length;++m){var b=e.charCodeAt(m);if(55296<=b&&57343>=b){var X=e.charCodeAt(++m);b=65536+((b&1023)<<10)|X&1023}if(127>=b){if(n>=o)break;r[n++]=b}else{if(2047>=b){if(n+1>=o)break;r[n++]=192|b>>6}else{if(65535>=b){if(n+2>=o)break;r[n++]=224|b>>12}else{if(n+3>=o)break;r[n++]=240|b>>18,r[n++]=128|b>>12&63}r[n++]=128|b>>6&63}r[n++]=128|b&63}}r[n]=0}return e=d.alloc(r,q),d.copy(r,q,e),e}return e}function at(e){if(typeof e=="object"){var r=d.alloc(e,q);return d.copy(e,q,r),r}return e}function H(){throw"cannot construct a VoidPtr, no constructor in IDL"}function B(){this.ptr=Mt(),T(B)[this.ptr]=this}function w(){this.ptr=Ft(),T(w)[this.ptr]=this}function Y(){this.ptr=wt(),T(Y)[this.ptr]=this}function A(){this.ptr=Vt(),T(A)[this.ptr]=this}function E(){this.ptr=Jt(),T(E)[this.ptr]=this}function j(){this.ptr=ne(),T(j)[this.ptr]=this}function P(){this.ptr=ae(),T(P)[this.ptr]=this}function O(){this.ptr=ce(),T(O)[this.ptr]=this}function W(){this.ptr=de(),T(W)[this.ptr]=this}function v(){throw"cannot construct a Status, no constructor in IDL"}function R(){this.ptr=Ie(),T(R)[this.ptr]=this}function S(){this.ptr=Ge(),T(S)[this.ptr]=this}function M(){this.ptr=Re(),T(M)[this.ptr]=this}function N(){this.ptr=Ue(),T(N)[this.ptr]=this}function U(){this.ptr=we(),T(U)[this.ptr]=this}function F(){this.ptr=We(),T(F)[this.ptr]=this}function L(){this.ptr=He(),T(L)[this.ptr]=this}function D(){this.ptr=Ke(),T(D)[this.ptr]=this}function u(){this.ptr=_r(),T(u)[this.ptr]=this}c=c===void 0?{}:c;var t=typeof c<"u"?c:{},ht,ot;t.ready=new Promise(function(e,r){ht=e,ot=r});var At=!1,Tt=!1;t.onRuntimeInitialized=function(){At=!0,Tt&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.onModuleParsed=function(){Tt=!0,At&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.isVersionSupported=function(e){return typeof e!="string"?!1:(e=e.split("."),2>e.length||3<e.length?!1:e[0]==1&&0<=e[1]&&5>=e[1]?!0:!(e[0]!=0||10<e[1]))};var Dt=Object.assign({},t),It=typeof window=="object",$=typeof importScripts=="function",gt=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Q="";if(gt){var vt=fn("fs"),pt=fn("path");Q=$?pt.dirname(Q)+"/":__dirname+"/";var Et=function(e,r){return e=e.startsWith("file://")?new URL(e):pt.normalize(e),vt.readFileSync(e,r?void 0:"utf8")},ut=function(e){return e=Et(e,!0),e.buffer||(e=new Uint8Array(e)),e},st=function(e,r,n){e=e.startsWith("file://")?new URL(e):pt.normalize(e),vt.readFile(e,function(o,m){o?n(o):r(m.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}}else(It||$)&&($?Q=self.location.href:typeof document<"u"&&document.currentScript&&(Q=document.currentScript.src),p&&(Q=p),Q=Q.indexOf("blob:")!==0?Q.substr(0,Q.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Et=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},$&&(ut=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),st=function(e,r,n){var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){o.status==200||o.status==0&&o.response?r(o.response):n()},o.onerror=n,o.send(null)});var dn=t.print||console.log.bind(console),J=t.printErr||console.warn.bind(console);Object.assign(t,Dt),Dt=null;var Z;t.wasmBinary&&(Z=t.wasmBinary),typeof WebAssembly!="object"&&i("no native wasm support detected");var _t,Gt=!1,Ot=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,q,tt,et,x,jt=[],ct=[],Pt=[],Rt=!1,k=0,yt=null,rt=null,z="draco_decoder.wasm";z.startsWith("data:application/octet-stream;base64,")||(z=s(z));var bn=0,hn=[null,[],[]],An={b:function(e,r,n){throw new C(e).init(r,n),bn++,e},a:function(){i("")},g:function(e,r,n){tt.copyWithin(e,r,r+n)},e:function(e){var r=tt.length;if(e>>>=0,2147483648<e)return!1;for(var n=1;4>=n;n*=2){var o=r*(1+.2/n);o=Math.min(o,e+100663296);var m=Math;o=Math.max(e,o),m=m.min.call(m,2147483648,o+(65536-o%65536)%65536);t:{o=_t.buffer;try{_t.grow(m-o.byteLength+65535>>>16),g();var b=1;break t}catch{}b=void 0}if(b)return!0}return!1},f:function(e){return 52},d:function(e,r,n,o,m){return 70},c:function(e,r,n,o){for(var m=0,b=0;b<n;b++){var X=x[r>>2],mn=x[r+4>>2];r+=8;for(var lt=0;lt<mn;lt++){var mt=tt[X+lt],ft=hn[e];mt===0||mt===10?((e===1?dn:J)(y(ft,0)),ft.length=0):ft.push(mt)}m+=mn}return x[o>>2]=m,0}};(function(){function e(m,b){t.asm=m.exports,_t=t.asm.h,g(),ct.unshift(t.asm.i),k--,t.monitorRunDependencies&&t.monitorRunDependencies(k),k==0&&(yt!==null&&(clearInterval(yt),yt=null),rt&&(m=rt,rt=null,m()))}function r(m){e(m.instance)}function n(m){return h().then(function(b){return WebAssembly.instantiate(b,o)}).then(function(b){return b}).then(m,function(b){J("failed to asynchronously prepare wasm: "+b),i(b)})}var o={a:An};if(k++,t.monitorRunDependencies&&t.monitorRunDependencies(k),t.instantiateWasm)try{return t.instantiateWasm(o,e)}catch(m){J("Module.instantiateWasm callback failed with error: "+m),ot(m)}return function(){return Z||typeof WebAssembly.instantiateStreaming!="function"||z.startsWith("data:application/octet-stream;base64,")||z.startsWith("file://")||gt||typeof fetch!="function"?n(r):fetch(z,{credentials:"same-origin"}).then(function(m){return WebAssembly.instantiateStreaming(m,o).then(r,function(b){return J("wasm streaming compile failed: "+b),J("falling back to ArrayBuffer instantiation"),n(r)})})}().catch(ot),{}})();var St=t._emscripten_bind_VoidPtr___destroy___0=function(){return(St=t._emscripten_bind_VoidPtr___destroy___0=t.asm.k).apply(null,arguments)},Mt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Mt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=t.asm.l).apply(null,arguments)},Nt=t._emscripten_bind_DecoderBuffer_Init_2=function(){return(Nt=t._emscripten_bind_DecoderBuffer_Init_2=t.asm.m).apply(null,arguments)},Ut=t._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Ut=t._emscripten_bind_DecoderBuffer___destroy___0=t.asm.n).apply(null,arguments)},Ft=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ft=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=t.asm.o).apply(null,arguments)},Lt=t._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(Lt=t._emscripten_bind_AttributeTransformData_transform_type_0=t.asm.p).apply(null,arguments)},Ct=t._emscripten_bind_AttributeTransformData___destroy___0=function(){return(Ct=t._emscripten_bind_AttributeTransformData___destroy___0=t.asm.q).apply(null,arguments)},wt=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(wt=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=t.asm.r).apply(null,arguments)},zt=t._emscripten_bind_GeometryAttribute___destroy___0=function(){return(zt=t._emscripten_bind_GeometryAttribute___destroy___0=t.asm.s).apply(null,arguments)},Vt=t._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Vt=t._emscripten_bind_PointAttribute_PointAttribute_0=t.asm.t).apply(null,arguments)},Bt=t._emscripten_bind_PointAttribute_size_0=function(){return(Bt=t._emscripten_bind_PointAttribute_size_0=t.asm.u).apply(null,arguments)},Wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(Wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=t.asm.v).apply(null,arguments)},Qt=t._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Qt=t._emscripten_bind_PointAttribute_attribute_type_0=t.asm.w).apply(null,arguments)},xt=t._emscripten_bind_PointAttribute_data_type_0=function(){return(xt=t._emscripten_bind_PointAttribute_data_type_0=t.asm.x).apply(null,arguments)},Yt=t._emscripten_bind_PointAttribute_num_components_0=function(){return(Yt=t._emscripten_bind_PointAttribute_num_components_0=t.asm.y).apply(null,arguments)},Ht=t._emscripten_bind_PointAttribute_normalized_0=function(){return(Ht=t._emscripten_bind_PointAttribute_normalized_0=t.asm.z).apply(null,arguments)},qt=t._emscripten_bind_PointAttribute_byte_stride_0=function(){return(qt=t._emscripten_bind_PointAttribute_byte_stride_0=t.asm.A).apply(null,arguments)},kt=t._emscripten_bind_PointAttribute_byte_offset_0=function(){return(kt=t._emscripten_bind_PointAttribute_byte_offset_0=t.asm.B).apply(null,arguments)},Xt=t._emscripten_bind_PointAttribute_unique_id_0=function(){return(Xt=t._emscripten_bind_PointAttribute_unique_id_0=t.asm.C).apply(null,arguments)},Kt=t._emscripten_bind_PointAttribute___destroy___0=function(){return(Kt=t._emscripten_bind_PointAttribute___destroy___0=t.asm.D).apply(null,arguments)},Jt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Jt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=t.asm.E).apply(null,arguments)},$t=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return($t=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=t.asm.F).apply(null,arguments)},Zt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(Zt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=t.asm.G).apply(null,arguments)},te=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(te=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=t.asm.H).apply(null,arguments)},ee=t._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ee=t._emscripten_bind_AttributeQuantizationTransform_range_0=t.asm.I).apply(null,arguments)},re=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(re=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=t.asm.J).apply(null,arguments)},ne=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(ne=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=t.asm.K).apply(null,arguments)},oe=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(oe=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=t.asm.L).apply(null,arguments)},_e=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(_e=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=t.asm.M).apply(null,arguments)},ie=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(ie=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=t.asm.N).apply(null,arguments)},ae=t._emscripten_bind_PointCloud_PointCloud_0=function(){return(ae=t._emscripten_bind_PointCloud_PointCloud_0=t.asm.O).apply(null,arguments)},pe=t._emscripten_bind_PointCloud_num_attributes_0=function(){return(pe=t._emscripten_bind_PointCloud_num_attributes_0=t.asm.P).apply(null,arguments)},ue=t._emscripten_bind_PointCloud_num_points_0=function(){return(ue=t._emscripten_bind_PointCloud_num_points_0=t.asm.Q).apply(null,arguments)},se=t._emscripten_bind_PointCloud___destroy___0=function(){return(se=t._emscripten_bind_PointCloud___destroy___0=t.asm.R).apply(null,arguments)},ce=t._emscripten_bind_Mesh_Mesh_0=function(){return(ce=t._emscripten_bind_Mesh_Mesh_0=t.asm.S).apply(null,arguments)},ye=t._emscripten_bind_Mesh_num_faces_0=function(){return(ye=t._emscripten_bind_Mesh_num_faces_0=t.asm.T).apply(null,arguments)},le=t._emscripten_bind_Mesh_num_attributes_0=function(){return(le=t._emscripten_bind_Mesh_num_attributes_0=t.asm.U).apply(null,arguments)},me=t._emscripten_bind_Mesh_num_points_0=function(){return(me=t._emscripten_bind_Mesh_num_points_0=t.asm.V).apply(null,arguments)},fe=t._emscripten_bind_Mesh___destroy___0=function(){return(fe=t._emscripten_bind_Mesh___destroy___0=t.asm.W).apply(null,arguments)},de=t._emscripten_bind_Metadata_Metadata_0=function(){return(de=t._emscripten_bind_Metadata_Metadata_0=t.asm.X).apply(null,arguments)},be=t._emscripten_bind_Metadata___destroy___0=function(){return(be=t._emscripten_bind_Metadata___destroy___0=t.asm.Y).apply(null,arguments)},he=t._emscripten_bind_Status_code_0=function(){return(he=t._emscripten_bind_Status_code_0=t.asm.Z).apply(null,arguments)},Ae=t._emscripten_bind_Status_ok_0=function(){return(Ae=t._emscripten_bind_Status_ok_0=t.asm._).apply(null,arguments)},Te=t._emscripten_bind_Status_error_msg_0=function(){return(Te=t._emscripten_bind_Status_error_msg_0=t.asm.$).apply(null,arguments)},De=t._emscripten_bind_Status___destroy___0=function(){return(De=t._emscripten_bind_Status___destroy___0=t.asm.aa).apply(null,arguments)},Ie=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ie=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=t.asm.ba).apply(null,arguments)},ge=t._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(ge=t._emscripten_bind_DracoFloat32Array_GetValue_1=t.asm.ca).apply(null,arguments)},ve=t._emscripten_bind_DracoFloat32Array_size_0=function(){return(ve=t._emscripten_bind_DracoFloat32Array_size_0=t.asm.da).apply(null,arguments)},Ee=t._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ee=t._emscripten_bind_DracoFloat32Array___destroy___0=t.asm.ea).apply(null,arguments)},Ge=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ge=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=t.asm.fa).apply(null,arguments)},Oe=t._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Oe=t._emscripten_bind_DracoInt8Array_GetValue_1=t.asm.ga).apply(null,arguments)},je=t._emscripten_bind_DracoInt8Array_size_0=function(){return(je=t._emscripten_bind_DracoInt8Array_size_0=t.asm.ha).apply(null,arguments)},Pe=t._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Pe=t._emscripten_bind_DracoInt8Array___destroy___0=t.asm.ia).apply(null,arguments)},Re=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Re=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=t.asm.ja).apply(null,arguments)},Se=t._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Se=t._emscripten_bind_DracoUInt8Array_GetValue_1=t.asm.ka).apply(null,arguments)},Me=t._emscripten_bind_DracoUInt8Array_size_0=function(){return(Me=t._emscripten_bind_DracoUInt8Array_size_0=t.asm.la).apply(null,arguments)},Ne=t._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ne=t._emscripten_bind_DracoUInt8Array___destroy___0=t.asm.ma).apply(null,arguments)},Ue=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Ue=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=t.asm.na).apply(null,arguments)},Fe=t._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Fe=t._emscripten_bind_DracoInt16Array_GetValue_1=t.asm.oa).apply(null,arguments)},Le=t._emscripten_bind_DracoInt16Array_size_0=function(){return(Le=t._emscripten_bind_DracoInt16Array_size_0=t.asm.pa).apply(null,arguments)},Ce=t._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Ce=t._emscripten_bind_DracoInt16Array___destroy___0=t.asm.qa).apply(null,arguments)},we=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(we=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=t.asm.ra).apply(null,arguments)},ze=t._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(ze=t._emscripten_bind_DracoUInt16Array_GetValue_1=t.asm.sa).apply(null,arguments)},Ve=t._emscripten_bind_DracoUInt16Array_size_0=function(){return(Ve=t._emscripten_bind_DracoUInt16Array_size_0=t.asm.ta).apply(null,arguments)},Be=t._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Be=t._emscripten_bind_DracoUInt16Array___destroy___0=t.asm.ua).apply(null,arguments)},We=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(We=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=t.asm.va).apply(null,arguments)},Qe=t._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Qe=t._emscripten_bind_DracoInt32Array_GetValue_1=t.asm.wa).apply(null,arguments)},xe=t._emscripten_bind_DracoInt32Array_size_0=function(){return(xe=t._emscripten_bind_DracoInt32Array_size_0=t.asm.xa).apply(null,arguments)},Ye=t._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Ye=t._emscripten_bind_DracoInt32Array___destroy___0=t.asm.ya).apply(null,arguments)},He=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(He=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=t.asm.za).apply(null,arguments)},qe=t._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(qe=t._emscripten_bind_DracoUInt32Array_GetValue_1=t.asm.Aa).apply(null,arguments)},ke=t._emscripten_bind_DracoUInt32Array_size_0=function(){return(ke=t._emscripten_bind_DracoUInt32Array_size_0=t.asm.Ba).apply(null,arguments)},Xe=t._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(Xe=t._emscripten_bind_DracoUInt32Array___destroy___0=t.asm.Ca).apply(null,arguments)},Ke=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ke=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=t.asm.Da).apply(null,arguments)},Je=t._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(Je=t._emscripten_bind_MetadataQuerier_HasEntry_2=t.asm.Ea).apply(null,arguments)},$e=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return($e=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=t.asm.Fa).apply(null,arguments)},Ze=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(Ze=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=t.asm.Ga).apply(null,arguments)},tr=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(tr=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=t.asm.Ha).apply(null,arguments)},er=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(er=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=t.asm.Ia).apply(null,arguments)},rr=t._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(rr=t._emscripten_bind_MetadataQuerier_NumEntries_1=t.asm.Ja).apply(null,arguments)},nr=t._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(nr=t._emscripten_bind_MetadataQuerier_GetEntryName_2=t.asm.Ka).apply(null,arguments)},or=t._emscripten_bind_MetadataQuerier___destroy___0=function(){return(or=t._emscripten_bind_MetadataQuerier___destroy___0=t.asm.La).apply(null,arguments)},_r=t._emscripten_bind_Decoder_Decoder_0=function(){return(_r=t._emscripten_bind_Decoder_Decoder_0=t.asm.Ma).apply(null,arguments)},ir=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ir=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=t.asm.Na).apply(null,arguments)},ar=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(ar=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=t.asm.Oa).apply(null,arguments)},pr=t._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pr=t._emscripten_bind_Decoder_GetAttributeId_2=t.asm.Pa).apply(null,arguments)},ur=t._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(ur=t._emscripten_bind_Decoder_GetAttributeIdByName_2=t.asm.Qa).apply(null,arguments)},sr=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(sr=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=t.asm.Ra).apply(null,arguments)},cr=t._emscripten_bind_Decoder_GetAttribute_2=function(){return(cr=t._emscripten_bind_Decoder_GetAttribute_2=t.asm.Sa).apply(null,arguments)},yr=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(yr=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=t.asm.Ta).apply(null,arguments)},lr=t._emscripten_bind_Decoder_GetMetadata_1=function(){return(lr=t._emscripten_bind_Decoder_GetMetadata_1=t.asm.Ua).apply(null,arguments)},mr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(mr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=t.asm.Va).apply(null,arguments)},fr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(fr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=t.asm.Wa).apply(null,arguments)},dr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(dr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=t.asm.Xa).apply(null,arguments)},br=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(br=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=t.asm.Ya).apply(null,arguments)},hr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(hr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=t.asm.Za).apply(null,arguments)},Ar=t._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ar=t._emscripten_bind_Decoder_GetAttributeFloat_3=t.asm._a).apply(null,arguments)},Tr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Tr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=t.asm.$a).apply(null,arguments)},Dr=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Dr=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=t.asm.ab).apply(null,arguments)},Ir=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ir=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=t.asm.bb).apply(null,arguments)},gr=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(gr=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=t.asm.cb).apply(null,arguments)},vr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(vr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=t.asm.db).apply(null,arguments)},Er=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Er=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=t.asm.eb).apply(null,arguments)},Gr=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Gr=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=t.asm.fb).apply(null,arguments)},Or=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Or=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=t.asm.gb).apply(null,arguments)},jr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(jr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=t.asm.hb).apply(null,arguments)},Pr=t._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Pr=t._emscripten_bind_Decoder_SkipAttributeTransform_1=t.asm.ib).apply(null,arguments)},Rr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=t.asm.jb).apply(null,arguments)},Sr=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sr=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=t.asm.kb).apply(null,arguments)},Mr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Mr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=t.asm.lb).apply(null,arguments)},Nr=t._emscripten_bind_Decoder___destroy___0=function(){return(Nr=t._emscripten_bind_Decoder___destroy___0=t.asm.mb).apply(null,arguments)},Ur=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Ur=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=t.asm.nb).apply(null,arguments)},Fr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Fr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=t.asm.ob).apply(null,arguments)},Lr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Lr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=t.asm.pb).apply(null,arguments)},Cr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Cr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=t.asm.qb).apply(null,arguments)},wr=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(wr=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=t.asm.rb).apply(null,arguments)},zr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(zr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=t.asm.sb).apply(null,arguments)},Vr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Vr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=t.asm.tb).apply(null,arguments)},Br=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Br=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=t.asm.ub).apply(null,arguments)},Wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=t.asm.vb).apply(null,arguments)},Qr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Qr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=t.asm.wb).apply(null,arguments)},xr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(xr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=t.asm.xb).apply(null,arguments)},Yr=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Yr=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=t.asm.yb).apply(null,arguments)},Hr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Hr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=t.asm.zb).apply(null,arguments)},qr=t._emscripten_enum_draco_DataType_DT_INVALID=function(){return(qr=t._emscripten_enum_draco_DataType_DT_INVALID=t.asm.Ab).apply(null,arguments)},kr=t._emscripten_enum_draco_DataType_DT_INT8=function(){return(kr=t._emscripten_enum_draco_DataType_DT_INT8=t.asm.Bb).apply(null,arguments)},Xr=t._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Xr=t._emscripten_enum_draco_DataType_DT_UINT8=t.asm.Cb).apply(null,arguments)},Kr=t._emscripten_enum_draco_DataType_DT_INT16=function(){return(Kr=t._emscripten_enum_draco_DataType_DT_INT16=t.asm.Db).apply(null,arguments)},Jr=t._emscripten_enum_draco_DataType_DT_UINT16=function(){return(Jr=t._emscripten_enum_draco_DataType_DT_UINT16=t.asm.Eb).apply(null,arguments)},$r=t._emscripten_enum_draco_DataType_DT_INT32=function(){return($r=t._emscripten_enum_draco_DataType_DT_INT32=t.asm.Fb).apply(null,arguments)},Zr=t._emscripten_enum_draco_DataType_DT_UINT32=function(){return(Zr=t._emscripten_enum_draco_DataType_DT_UINT32=t.asm.Gb).apply(null,arguments)},tn=t._emscripten_enum_draco_DataType_DT_INT64=function(){return(tn=t._emscripten_enum_draco_DataType_DT_INT64=t.asm.Hb).apply(null,arguments)},en=t._emscripten_enum_draco_DataType_DT_UINT64=function(){return(en=t._emscripten_enum_draco_DataType_DT_UINT64=t.asm.Ib).apply(null,arguments)},rn=t._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(rn=t._emscripten_enum_draco_DataType_DT_FLOAT32=t.asm.Jb).apply(null,arguments)},nn=t._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(nn=t._emscripten_enum_draco_DataType_DT_FLOAT64=t.asm.Kb).apply(null,arguments)},on=t._emscripten_enum_draco_DataType_DT_BOOL=function(){return(on=t._emscripten_enum_draco_DataType_DT_BOOL=t.asm.Lb).apply(null,arguments)},_n=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(_n=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=t.asm.Mb).apply(null,arguments)},an=t._emscripten_enum_draco_StatusCode_OK=function(){return(an=t._emscripten_enum_draco_StatusCode_OK=t.asm.Nb).apply(null,arguments)},pn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=t.asm.Ob).apply(null,arguments)},un=t._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(un=t._emscripten_enum_draco_StatusCode_IO_ERROR=t.asm.Pb).apply(null,arguments)},sn=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(sn=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=t.asm.Qb).apply(null,arguments)},cn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(cn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=t.asm.Rb).apply(null,arguments)},yn=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(yn=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=t.asm.Sb).apply(null,arguments)};t._malloc=function(){return(t._malloc=t.asm.Tb).apply(null,arguments)},t._free=function(){return(t._free=t.asm.Ub).apply(null,arguments)};var ln=function(){return(ln=t.asm.Vb).apply(null,arguments)};t.___start_em_js=15856,t.___stop_em_js=15954;var it;if(rt=function e(){it||K(),it||(rt=e)},t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();K(),f.prototype=Object.create(f.prototype),f.prototype.constructor=f,f.prototype.__class__=f,f.__cache__={},t.WrapperObject=f,t.getCache=T,t.wrapPointer=G,t.castObject=function(e,r){return G(e.ptr,r)},t.NULL=G(0),t.destroy=function(e){if(!e.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";e.__destroy__(),delete T(e.__class__)[e.ptr]},t.compare=function(e,r){return e.ptr===r.ptr},t.getPointer=function(e){return e.ptr},t.getClass=function(e){return e.__class__};var d={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(d.needed){for(var e=0;e<d.temps.length;e++)t._free(d.temps[e]);d.temps.length=0,t._free(d.buffer),d.buffer=0,d.size+=d.needed,d.needed=0}d.buffer||(d.size+=128,d.buffer=t._malloc(d.size),d.buffer||i(void 0)),d.pos=0},alloc:function(e,r){return d.buffer||i(void 0),e=e.length*r.BYTES_PER_ELEMENT,e=e+7&-8,d.pos+e>=d.size?(0<e||i(void 0),d.needed+=e,r=t._malloc(e),d.temps.push(r)):(r=d.buffer+d.pos,d.pos+=e),r},copy:function(e,r,n){switch(n>>>=0,r.BYTES_PER_ELEMENT){case 2:n>>>=1;break;case 4:n>>>=2;break;case 8:n>>>=3}for(var o=0;o<e.length;o++)r[n+o]=e[o]}};return H.prototype=Object.create(f.prototype),H.prototype.constructor=H,H.prototype.__class__=H,H.__cache__={},t.VoidPtr=H,H.prototype.__destroy__=H.prototype.__destroy__=function(){St(this.ptr)},B.prototype=Object.create(f.prototype),B.prototype.constructor=B,B.prototype.__class__=B,B.__cache__={},t.DecoderBuffer=B,B.prototype.Init=B.prototype.Init=function(e,r){var n=this.ptr;d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),Nt(n,e,r)},B.prototype.__destroy__=B.prototype.__destroy__=function(){Ut(this.ptr)},w.prototype=Object.create(f.prototype),w.prototype.constructor=w,w.prototype.__class__=w,w.__cache__={},t.AttributeTransformData=w,w.prototype.transform_type=w.prototype.transform_type=function(){return Lt(this.ptr)},w.prototype.__destroy__=w.prototype.__destroy__=function(){Ct(this.ptr)},Y.prototype=Object.create(f.prototype),Y.prototype.constructor=Y,Y.prototype.__class__=Y,Y.__cache__={},t.GeometryAttribute=Y,Y.prototype.__destroy__=Y.prototype.__destroy__=function(){zt(this.ptr)},A.prototype=Object.create(f.prototype),A.prototype.constructor=A,A.prototype.__class__=A,A.__cache__={},t.PointAttribute=A,A.prototype.size=A.prototype.size=function(){return Bt(this.ptr)},A.prototype.GetAttributeTransformData=A.prototype.GetAttributeTransformData=function(){return G(Wt(this.ptr),w)},A.prototype.attribute_type=A.prototype.attribute_type=function(){return Qt(this.ptr)},A.prototype.data_type=A.prototype.data_type=function(){return xt(this.ptr)},A.prototype.num_components=A.prototype.num_components=function(){return Yt(this.ptr)},A.prototype.normalized=A.prototype.normalized=function(){return!!Ht(this.ptr)},A.prototype.byte_stride=A.prototype.byte_stride=function(){return qt(this.ptr)},A.prototype.byte_offset=A.prototype.byte_offset=function(){return kt(this.ptr)},A.prototype.unique_id=A.prototype.unique_id=function(){return Xt(this.ptr)},A.prototype.__destroy__=A.prototype.__destroy__=function(){Kt(this.ptr)},E.prototype=Object.create(f.prototype),E.prototype.constructor=E,E.prototype.__class__=E,E.__cache__={},t.AttributeQuantizationTransform=E,E.prototype.InitFromAttribute=E.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!$t(r,e)},E.prototype.quantization_bits=E.prototype.quantization_bits=function(){return Zt(this.ptr)},E.prototype.min_value=E.prototype.min_value=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),te(r,e)},E.prototype.range=E.prototype.range=function(){return ee(this.ptr)},E.prototype.__destroy__=E.prototype.__destroy__=function(){re(this.ptr)},j.prototype=Object.create(f.prototype),j.prototype.constructor=j,j.prototype.__class__=j,j.__cache__={},t.AttributeOctahedronTransform=j,j.prototype.InitFromAttribute=j.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!oe(r,e)},j.prototype.quantization_bits=j.prototype.quantization_bits=function(){return _e(this.ptr)},j.prototype.__destroy__=j.prototype.__destroy__=function(){ie(this.ptr)},P.prototype=Object.create(f.prototype),P.prototype.constructor=P,P.prototype.__class__=P,P.__cache__={},t.PointCloud=P,P.prototype.num_attributes=P.prototype.num_attributes=function(){return pe(this.ptr)},P.prototype.num_points=P.prototype.num_points=function(){return ue(this.ptr)},P.prototype.__destroy__=P.prototype.__destroy__=function(){se(this.ptr)},O.prototype=Object.create(f.prototype),O.prototype.constructor=O,O.prototype.__class__=O,O.__cache__={},t.Mesh=O,O.prototype.num_faces=O.prototype.num_faces=function(){return ye(this.ptr)},O.prototype.num_attributes=O.prototype.num_attributes=function(){return le(this.ptr)},O.prototype.num_points=O.prototype.num_points=function(){return me(this.ptr)},O.prototype.__destroy__=O.prototype.__destroy__=function(){fe(this.ptr)},W.prototype=Object.create(f.prototype),W.prototype.constructor=W,W.prototype.__class__=W,W.__cache__={},t.Metadata=W,W.prototype.__destroy__=W.prototype.__destroy__=function(){be(this.ptr)},v.prototype=Object.create(f.prototype),v.prototype.constructor=v,v.prototype.__class__=v,v.__cache__={},t.Status=v,v.prototype.code=v.prototype.code=function(){return he(this.ptr)},v.prototype.ok=v.prototype.ok=function(){return!!Ae(this.ptr)},v.prototype.error_msg=v.prototype.error_msg=function(){return a(Te(this.ptr))},v.prototype.__destroy__=v.prototype.__destroy__=function(){De(this.ptr)},R.prototype=Object.create(f.prototype),R.prototype.constructor=R,R.prototype.__class__=R,R.__cache__={},t.DracoFloat32Array=R,R.prototype.GetValue=R.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ge(r,e)},R.prototype.size=R.prototype.size=function(){return ve(this.ptr)},R.prototype.__destroy__=R.prototype.__destroy__=function(){Ee(this.ptr)},S.prototype=Object.create(f.prototype),S.prototype.constructor=S,S.prototype.__class__=S,S.__cache__={},t.DracoInt8Array=S,S.prototype.GetValue=S.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Oe(r,e)},S.prototype.size=S.prototype.size=function(){return je(this.ptr)},S.prototype.__destroy__=S.prototype.__destroy__=function(){Pe(this.ptr)},M.prototype=Object.create(f.prototype),M.prototype.constructor=M,M.prototype.__class__=M,M.__cache__={},t.DracoUInt8Array=M,M.prototype.GetValue=M.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Se(r,e)},M.prototype.size=M.prototype.size=function(){return Me(this.ptr)},M.prototype.__destroy__=M.prototype.__destroy__=function(){Ne(this.ptr)},N.prototype=Object.create(f.prototype),N.prototype.constructor=N,N.prototype.__class__=N,N.__cache__={},t.DracoInt16Array=N,N.prototype.GetValue=N.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Fe(r,e)},N.prototype.size=N.prototype.size=function(){return Le(this.ptr)},N.prototype.__destroy__=N.prototype.__destroy__=function(){Ce(this.ptr)},U.prototype=Object.create(f.prototype),U.prototype.constructor=U,U.prototype.__class__=U,U.__cache__={},t.DracoUInt16Array=U,U.prototype.GetValue=U.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ze(r,e)},U.prototype.size=U.prototype.size=function(){return Ve(this.ptr)},U.prototype.__destroy__=U.prototype.__destroy__=function(){Be(this.ptr)},F.prototype=Object.create(f.prototype),F.prototype.constructor=F,F.prototype.__class__=F,F.__cache__={},t.DracoInt32Array=F,F.prototype.GetValue=F.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Qe(r,e)},F.prototype.size=F.prototype.size=function(){return xe(this.ptr)},F.prototype.__destroy__=F.prototype.__destroy__=function(){Ye(this.ptr)},L.prototype=Object.create(f.prototype),L.prototype.constructor=L,L.prototype.__class__=L,L.__cache__={},t.DracoUInt32Array=L,L.prototype.GetValue=L.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),qe(r,e)},L.prototype.size=L.prototype.size=function(){return ke(this.ptr)},L.prototype.__destroy__=L.prototype.__destroy__=function(){Xe(this.ptr)},D.prototype=Object.create(f.prototype),D.prototype.constructor=D,D.prototype.__class__=D,D.__cache__={},t.MetadataQuerier=D,D.prototype.HasEntry=D.prototype.HasEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),!!Je(n,e,r)},D.prototype.GetIntEntry=D.prototype.GetIntEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),$e(n,e,r)},D.prototype.GetIntEntryArray=D.prototype.GetIntEntryArray=function(e,r,n){var o=this.ptr;d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),n&&typeof n=="object"&&(n=n.ptr),Ze(o,e,r,n)},D.prototype.GetDoubleEntry=D.prototype.GetDoubleEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),tr(n,e,r)},D.prototype.GetStringEntry=D.prototype.GetStringEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),a(er(n,e,r))},D.prototype.NumEntries=D.prototype.NumEntries=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),rr(r,e)},D.prototype.GetEntryName=D.prototype.GetEntryName=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),a(nr(n,e,r))},D.prototype.__destroy__=D.prototype.__destroy__=function(){or(this.ptr)},u.prototype=Object.create(f.prototype),u.prototype.constructor=u,u.prototype.__class__=u,u.__cache__={},t.Decoder=u,u.prototype.DecodeArrayToPointCloud=u.prototype.DecodeArrayToPointCloud=function(e,r,n){var o=this.ptr;return d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),G(ir(o,e,r,n),v)},u.prototype.DecodeArrayToMesh=u.prototype.DecodeArrayToMesh=function(e,r,n){var o=this.ptr;return d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),G(ar(o,e,r,n),v)},u.prototype.GetAttributeId=u.prototype.GetAttributeId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),pr(n,e,r)},u.prototype.GetAttributeIdByName=u.prototype.GetAttributeIdByName=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),ur(n,e,r)},u.prototype.GetAttributeIdByMetadataEntry=u.prototype.GetAttributeIdByMetadataEntry=function(e,r,n){var o=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),n=n&&typeof n=="object"?n.ptr:V(n),sr(o,e,r,n)},u.prototype.GetAttribute=u.prototype.GetAttribute=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(cr(n,e,r),A)},u.prototype.GetAttributeByUniqueId=u.prototype.GetAttributeByUniqueId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(yr(n,e,r),A)},u.prototype.GetMetadata=u.prototype.GetMetadata=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),G(lr(r,e),W)},u.prototype.GetAttributeMetadata=u.prototype.GetAttributeMetadata=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(mr(n,e,r),W)},u.prototype.GetFaceFromMesh=u.prototype.GetFaceFromMesh=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!fr(o,e,r,n)},u.prototype.GetTriangleStripsFromMesh=u.prototype.GetTriangleStripsFromMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),dr(n,e,r)},u.prototype.GetTrianglesUInt16Array=u.prototype.GetTrianglesUInt16Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!br(o,e,r,n)},u.prototype.GetTrianglesUInt32Array=u.prototype.GetTrianglesUInt32Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!hr(o,e,r,n)},u.prototype.GetAttributeFloat=u.prototype.GetAttributeFloat=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ar(o,e,r,n)},u.prototype.GetAttributeFloatForAllPoints=u.prototype.GetAttributeFloatForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Tr(o,e,r,n)},u.prototype.GetAttributeIntForAllPoints=u.prototype.GetAttributeIntForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Dr(o,e,r,n)},u.prototype.GetAttributeInt8ForAllPoints=u.prototype.GetAttributeInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ir(o,e,r,n)},u.prototype.GetAttributeUInt8ForAllPoints=u.prototype.GetAttributeUInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!gr(o,e,r,n)},u.prototype.GetAttributeInt16ForAllPoints=u.prototype.GetAttributeInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!vr(o,e,r,n)},u.prototype.GetAttributeUInt16ForAllPoints=u.prototype.GetAttributeUInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Er(o,e,r,n)},u.prototype.GetAttributeInt32ForAllPoints=u.prototype.GetAttributeInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Gr(o,e,r,n)},u.prototype.GetAttributeUInt32ForAllPoints=u.prototype.GetAttributeUInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Or(o,e,r,n)},u.prototype.GetAttributeDataArrayForAllPoints=u.prototype.GetAttributeDataArrayForAllPoints=function(e,r,n,o,m){var b=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),o&&typeof o=="object"&&(o=o.ptr),m&&typeof m=="object"&&(m=m.ptr),!!jr(b,e,r,n,o,m)},u.prototype.SkipAttributeTransform=u.prototype.SkipAttributeTransform=function(e){var r=this.ptr;e&&typeof e=="object"&&(e=e.ptr),Pr(r,e)},u.prototype.GetEncodedGeometryType_Deprecated=u.prototype.GetEncodedGeometryType_Deprecated=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Rr(r,e)},u.prototype.DecodeBufferToPointCloud=u.prototype.DecodeBufferToPointCloud=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(Sr(n,e,r),v)},u.prototype.DecodeBufferToMesh=u.prototype.DecodeBufferToMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(Mr(n,e,r),v)},u.prototype.__destroy__=u.prototype.__destroy__=function(){Nr(this.ptr)},function(){function e(){t.ATTRIBUTE_INVALID_TRANSFORM=Ur(),t.ATTRIBUTE_NO_TRANSFORM=Fr(),t.ATTRIBUTE_QUANTIZATION_TRANSFORM=Lr(),t.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Cr(),t.INVALID=wr(),t.POSITION=zr(),t.NORMAL=Vr(),t.COLOR=Br(),t.TEX_COORD=Wr(),t.GENERIC=Qr(),t.INVALID_GEOMETRY_TYPE=xr(),t.POINT_CLOUD=Yr(),t.TRIANGULAR_MESH=Hr(),t.DT_INVALID=qr(),t.DT_INT8=kr(),t.DT_UINT8=Xr(),t.DT_INT16=Kr(),t.DT_UINT16=Jr(),t.DT_INT32=$r(),t.DT_UINT32=Zr(),t.DT_INT64=tn(),t.DT_UINT64=en(),t.DT_FLOAT32=rn(),t.DT_FLOAT64=nn(),t.DT_BOOL=on(),t.DT_TYPES_COUNT=_n(),t.OK=an(),t.DRACO_ERROR=pn(),t.IO_ERROR=un(),t.INVALID_PARAMETER=sn(),t.UNSUPPORTED_VERSION=cn(),t.UNKNOWN_VERSION=yn()}Rt?e():ct.unshift(e)}(),typeof t.onModuleParsed=="function"&&t.onModuleParsed(),t.Decoder.prototype.GetEncodedGeometryType=function(e){if(e.__class__&&e.__class__===t.DecoderBuffer)return t.Decoder.prototype.GetEncodedGeometryType_Deprecated(e);if(8>e.byteLength)return t.INVALID_GEOMETRY_TYPE;switch(e[7]){case 0:return t.POINT_CLOUD;case 1:return t.TRIANGULAR_MESH;default:return t.INVALID_GEOMETRY_TYPE}},c.ready}}();typeof nt=="object"&&typeof bt=="object"?bt.exports=dt:typeof define=="function"&&define.amd?define([],function(){return dt}):typeof nt=="object"&&(nt.DracoDecoderModule=dt)});export{Dn as a}; diff --git a/libs/cesium/1.111/Workers/chunk-Y33I6CKI.js b/libs/cesium/1.111/Workers/chunk-Y33I6CKI.js new file mode 100644 index 000000000..676cf9c2c --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-Y33I6CKI.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as _}from"./chunk-YXVAQU2G.js";import{a as G}from"./chunk-BSXS3UVL.js";import{b as B}from"./chunk-OH4CN3UY.js";import{a as b}from"./chunk-AAJ456AA.js";import{b as L}from"./chunk-KCIWEUSR.js";import{a,b as D,c as z}from"./chunk-F33YCXD2.js";import{a as E}from"./chunk-DUBQPPQZ.js";import{a as C}from"./chunk-K36PKEJW.js";import{a as I}from"./chunk-KD2PMTHD.js";import{e as T}from"./chunk-ZUCO5WNM.js";var p={};p.numberOfPoints=function(r,n,o){let e=a.distance(r,n);return Math.ceil(e/o)};p.numberOfPointsRhumbLine=function(r,n,o){let e=Math.pow(r.longitude-n.longitude,2)+Math.pow(r.latitude-n.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(e/(o*o))))};var V=new D;p.extractHeights=function(r,n){let o=r.length,e=new Array(o);for(let t=0;t<o;t++){let l=r[t];e[t]=n.cartesianToCartographic(l,V).height}return e};var Y=new L,W=new a,v=new a,F=new b(a.UNIT_X,0),H=new a,j=new b(a.UNIT_X,0),J=new a,K=new a,O=[];function q(r,n,o){let e=O;e.length=r;let t;if(n===o){for(t=0;t<r;t++)e[t]=n;return e}let u=(o-n)/r;for(t=0;t<r;t++){let d=n+t*u;e[t]=d}return e}var x=new D,N=new D,S=new a,k=new a,Q=new a,M=new _,R=new G;function $(r,n,o,e,t,l,u,d){let i=e.scaleToGeodeticSurface(r,k),w=e.scaleToGeodeticSurface(n,Q),h=p.numberOfPoints(r,n,o),f=e.cartesianToCartographic(i,x),y=e.cartesianToCartographic(w,N),g=q(h,t,l);M.setEndPoints(f,y);let P=M.surfaceDistance/h,c=d;f.height=t;let s=e.cartographicToCartesian(f,S);a.pack(s,u,c),c+=3;for(let m=1;m<h;m++){let A=M.interpolateUsingSurfaceDistance(m*P,N);A.height=g[m],s=e.cartographicToCartesian(A,S),a.pack(s,u,c),c+=3}return c}function tt(r,n,o,e,t,l,u,d){let i=e.cartesianToCartographic(r,x),w=e.cartesianToCartographic(n,N),h=p.numberOfPointsRhumbLine(i,w,o);i.height=0,w.height=0;let f=q(h,t,l);R.ellipsoid.equals(e)||(R=new G(void 0,void 0,e)),R.setEndPoints(i,w);let y=R.surfaceDistance/h,g=d;i.height=t;let P=e.cartographicToCartesian(i,S);a.pack(P,u,g),g+=3;for(let c=1;c<h;c++){let s=R.interpolateUsingSurfaceDistance(c*y,N);s.height=f[c],P=e.cartographicToCartesian(s,S),a.pack(P,u,g),g+=3}return g}p.wrapLongitude=function(r,n){let o=[],e=[];if(T(r)&&r.length>0){n=C(n,L.IDENTITY);let t=L.inverseTransformation(n,Y),l=L.multiplyByPoint(t,a.ZERO,W),u=a.normalize(L.multiplyByPointAsVector(t,a.UNIT_Y,v),v),d=b.fromPointNormal(l,u,F),i=a.normalize(L.multiplyByPointAsVector(t,a.UNIT_X,H),H),w=b.fromPointNormal(l,i,j),h=1;o.push(a.clone(r[0]));let f=o[0],y=r.length;for(let g=1;g<y;++g){let P=r[g];if(b.getPointDistance(w,f)<0||b.getPointDistance(w,P)<0){let c=B.lineSegmentPlane(f,P,d,J);if(T(c)){let s=a.multiplyByScalar(u,5e-9,K);b.getPointDistance(d,f)<0&&a.negate(s,s),o.push(a.add(c,s,new a)),e.push(h+1),a.negate(s,s),o.push(a.add(c,s,new a)),h=1}}o.push(a.clone(r[g])),h++,f=P}e.push(h)}return{positions:o,lengths:e}};p.generateArc=function(r){T(r)||(r={});let n=r.positions;if(!T(n))throw new I("options.positions is required.");let o=n.length,e=C(r.ellipsoid,z.WGS84),t=C(r.height,0),l=Array.isArray(t);if(o<1)return[];if(o===1){let c=e.scaleToGeodeticSurface(n[0],k);if(t=l?t[0]:t,t!==0){let s=e.geodeticSurfaceNormal(c,S);a.multiplyByScalar(s,t,s),a.add(c,s,c)}return[c.x,c.y,c.z]}let u=r.minDistance;if(!T(u)){let c=C(r.granularity,E.RADIANS_PER_DEGREE);u=E.chordLength(c,e.maximumRadius)}let d=0,i;for(i=0;i<o-1;i++)d+=p.numberOfPoints(n[i],n[i+1],u);let w=(d+1)*3,h=new Array(w),f=0;for(i=0;i<o-1;i++){let c=n[i],s=n[i+1],m=l?t[i]:t,A=l?t[i+1]:t;f=$(c,s,u,e,m,A,h,f)}O.length=0;let y=n[o-1],g=e.cartesianToCartographic(y,x);g.height=l?t[o-1]:t;let P=e.cartographicToCartesian(g,S);return a.pack(P,h,w-3),h};var U=new D,et=new D;p.generateRhumbArc=function(r){T(r)||(r={});let n=r.positions;if(!T(n))throw new I("options.positions is required.");let o=n.length,e=C(r.ellipsoid,z.WGS84),t=C(r.height,0),l=Array.isArray(t);if(o<1)return[];if(o===1){let m=e.scaleToGeodeticSurface(n[0],k);if(t=l?t[0]:t,t!==0){let A=e.geodeticSurfaceNormal(m,S);a.multiplyByScalar(A,t,A),a.add(m,A,m)}return[m.x,m.y,m.z]}let u=C(r.granularity,E.RADIANS_PER_DEGREE),d=0,i,w=e.cartesianToCartographic(n[0],U),h;for(i=0;i<o-1;i++)h=e.cartesianToCartographic(n[i+1],et),d+=p.numberOfPointsRhumbLine(w,h,u),w=D.clone(h,U);let f=(d+1)*3,y=new Array(f),g=0;for(i=0;i<o-1;i++){let m=n[i],A=n[i+1],X=l?t[i]:t,Z=l?t[i+1]:t;g=tt(m,A,u,e,X,Z,y,g)}O.length=0;let P=n[o-1],c=e.cartesianToCartographic(P,x);c.height=l?t[o-1]:t;let s=e.cartographicToCartesian(c,S);return a.pack(s,y,f-3),y};p.generateCartesianArc=function(r){let n=p.generateArc(r),o=n.length/3,e=new Array(o);for(let t=0;t<o;t++)e[t]=a.unpack(n,t*3);return e};p.generateCartesianRhumbArc=function(r){let n=p.generateRhumbArc(r),o=n.length/3,e=new Array(o);for(let t=0;t<o;t++)e[t]=a.unpack(n,t*3);return e};var mt=p;export{mt as a}; diff --git a/libs/cesium/1.111/Workers/chunk-Y664VY52.js b/libs/cesium/1.111/Workers/chunk-Y664VY52.js new file mode 100644 index 000000000..14a718ea5 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-Y664VY52.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as wt}from"./chunk-N52FZRFP.js";import{a as k}from"./chunk-WIRUK4BS.js";import{a as kt}from"./chunk-JZL634RF.js";import{a as Ct}from"./chunk-3UAKIC5Y.js";import{b as dt,c as _t,d as R}from"./chunk-QEWKHB6D.js";import{d as pt}from"./chunk-DV7DPSRL.js";import{d as ht}from"./chunk-KCIWEUSR.js";import{a as N}from"./chunk-7XDW3BZW.js";import{a as s,c as ot}from"./chunk-F33YCXD2.js";import{a as M}from"./chunk-DUBQPPQZ.js";import{a as p}from"./chunk-K36PKEJW.js";import{a as z}from"./chunk-KD2PMTHD.js";import{e as E}from"./chunk-ZUCO5WNM.js";var yt=new s,vt=new s,Et=new s,Mt=new s,Nt=new s,Rt=new s(1,1,1),Pt=Math.cos,At=Math.sin;function O(n){n=p(n,p.EMPTY_OBJECT);let m=p(n.radii,Rt),i=p(n.innerRadii,m),P=p(n.minimumClock,0),T=p(n.maximumClock,M.TWO_PI),A=p(n.minimumCone,0),b=p(n.maximumCone,M.PI),a=Math.round(p(n.stackPartitions,64)),u=Math.round(p(n.slicePartitions,64)),h=p(n.vertexFormat,k.DEFAULT);if(u<3)throw new z("options.slicePartitions cannot be less than three.");if(a<3)throw new z("options.stackPartitions cannot be less than three.");this._radii=s.clone(m),this._innerRadii=s.clone(i),this._minimumClock=P,this._maximumClock=T,this._minimumCone=A,this._maximumCone=b,this._stackPartitions=a,this._slicePartitions=u,this._vertexFormat=k.clone(h),this._offsetAttribute=n.offsetAttribute,this._workerName="createEllipsoidGeometry"}O.packedLength=2*s.packedLength+k.packedLength+7;O.pack=function(n,m,i){if(!E(n))throw new z("value is required");if(!E(m))throw new z("array is required");return i=p(i,0),s.pack(n._radii,m,i),i+=s.packedLength,s.pack(n._innerRadii,m,i),i+=s.packedLength,k.pack(n._vertexFormat,m,i),i+=k.packedLength,m[i++]=n._minimumClock,m[i++]=n._maximumClock,m[i++]=n._minimumCone,m[i++]=n._maximumCone,m[i++]=n._stackPartitions,m[i++]=n._slicePartitions,m[i]=p(n._offsetAttribute,-1),m};var bt=new s,xt=new s,Ot=new k,y={radii:bt,innerRadii:xt,vertexFormat:Ot,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};O.unpack=function(n,m,i){if(!E(n))throw new z("array is required");m=p(m,0);let P=s.unpack(n,m,bt);m+=s.packedLength;let T=s.unpack(n,m,xt);m+=s.packedLength;let A=k.unpack(n,m,Ot);m+=k.packedLength;let b=n[m++],a=n[m++],u=n[m++],h=n[m++],t=n[m++],o=n[m++],e=n[m];return E(i)?(i._radii=s.clone(P,i._radii),i._innerRadii=s.clone(T,i._innerRadii),i._vertexFormat=k.clone(A,i._vertexFormat),i._minimumClock=b,i._maximumClock=a,i._minimumCone=u,i._maximumCone=h,i._stackPartitions=t,i._slicePartitions=o,i._offsetAttribute=e===-1?void 0:e,i):(y.minimumClock=b,y.maximumClock=a,y.minimumCone=u,y.maximumCone=h,y.stackPartitions=t,y.slicePartitions=o,y.offsetAttribute=e===-1?void 0:e,new O(y))};O.createGeometry=function(n){let m=n._radii;if(m.x<=0||m.y<=0||m.z<=0)return;let i=n._innerRadii;if(i.x<=0||i.y<=0||i.z<=0)return;let P=n._minimumClock,T=n._maximumClock,A=n._minimumCone,b=n._maximumCone,a=n._vertexFormat,u=n._slicePartitions+1,h=n._stackPartitions+1;u=Math.round(u*Math.abs(T-P)/M.TWO_PI),h=Math.round(h*Math.abs(b-A)/M.PI),u<2&&(u=2),h<2&&(h=2);let t,o,e=0,D=[A],S=[P];for(t=0;t<h;t++)D.push(A+t*(b-A)/(h-1));for(D.push(b),o=0;o<u;o++)S.push(P+o*(T-P)/(u-1));S.push(T);let f=D.length,c=S.length,U=0,B=1,q=i.x!==m.x||i.y!==m.y||i.z!==m.z,J=!1,rt=!1,ct=!1;q&&(B=2,A>0&&(J=!0,U+=u-1),b<Math.PI&&(rt=!0,U+=u-1),(T-P)%M.TWO_PI?(ct=!0,U+=(h-1)*2+1):U+=1);let w=c*f*B,x=new Float64Array(w*3),X=new Array(w).fill(!1),st=new Array(w).fill(!1),at=u*h*B,Tt=6*(at+U+1-(u+h)*B),r=kt.createTypedArray(at,Tt),Y=a.normal?new Float32Array(w*3):void 0,j=a.tangent?new Float32Array(w*3):void 0,H=a.bitangent?new Float32Array(w*3):void 0,Z=a.st?new Float32Array(w*2):void 0,V=new Array(f),G=new Array(f);for(t=0;t<f;t++)V[t]=At(D[t]),G[t]=Pt(D[t]);let K=new Array(c),Q=new Array(c);for(o=0;o<c;o++)Q[o]=Pt(S[o]),K[o]=At(S[o]);for(t=0;t<f;t++)for(o=0;o<c;o++)x[e++]=m.x*V[t]*Q[o],x[e++]=m.y*V[t]*K[o],x[e++]=m.z*G[t];let $=w/2;if(q)for(t=0;t<f;t++)for(o=0;o<c;o++)x[e++]=i.x*V[t]*Q[o],x[e++]=i.y*V[t]*K[o],x[e++]=i.z*G[t],X[$]=!0,t>0&&t!==f-1&&o!==0&&o!==c-1&&(st[$]=!0),$++;e=0;let F,L;for(t=1;t<f-2;t++)for(F=t*c,L=(t+1)*c,o=1;o<c-2;o++)r[e++]=L+o,r[e++]=L+o+1,r[e++]=F+o+1,r[e++]=L+o,r[e++]=F+o+1,r[e++]=F+o;if(q){let g=f*c;for(t=1;t<f-2;t++)for(F=g+t*c,L=g+(t+1)*c,o=1;o<c-2;o++)r[e++]=L+o,r[e++]=F+o,r[e++]=F+o+1,r[e++]=L+o,r[e++]=F+o+1,r[e++]=L+o+1}let d,l;if(q){if(J)for(l=f*c,t=1;t<c-2;t++)r[e++]=t,r[e++]=t+1,r[e++]=l+t+1,r[e++]=t,r[e++]=l+t+1,r[e++]=l+t;if(rt)for(d=f*c-c,l=f*c*B-c,t=1;t<c-2;t++)r[e++]=d+t+1,r[e++]=d+t,r[e++]=l+t,r[e++]=d+t+1,r[e++]=l+t,r[e++]=l+t+1}if(ct){for(t=1;t<f-2;t++)l=c*f+c*t,d=c*t,r[e++]=l,r[e++]=d+c,r[e++]=d,r[e++]=l,r[e++]=l+c,r[e++]=d+c;for(t=1;t<f-2;t++)l=c*f+c*(t+1)-1,d=c*(t+1)-1,r[e++]=d+c,r[e++]=l,r[e++]=d,r[e++]=d+c,r[e++]=l+c,r[e++]=l}let v=new Ct;a.position&&(v.position=new R({componentDatatype:N.DOUBLE,componentsPerAttribute:3,values:x}));let ft=0,I=0,tt=0,nt=0,Ft=w/2,ut,lt=ot.fromCartesian3(m),Lt=ot.fromCartesian3(i);if(a.st||a.normal||a.tangent||a.bitangent){for(t=0;t<w;t++){ut=X[t]?Lt:lt;let g=s.fromArray(x,t*3,yt),C=ut.geodeticSurfaceNormal(g,vt);if(st[t]&&s.negate(C,C),a.st){let _=ht.negate(C,Nt);Z[ft++]=Math.atan2(_.y,_.x)/M.TWO_PI+.5,Z[ft++]=Math.asin(C.z)/Math.PI+.5}if(a.normal&&(Y[I++]=C.x,Y[I++]=C.y,Y[I++]=C.z),a.tangent||a.bitangent){let _=Et,et=0,it;if(X[t]&&(et=Ft),!J&&t>=et&&t<et+c*2?it=s.UNIT_X:it=s.UNIT_Z,s.cross(it,C,_),s.normalize(_,_),a.tangent&&(j[tt++]=_.x,j[tt++]=_.y,j[tt++]=_.z),a.bitangent){let W=s.cross(C,_,Mt);s.normalize(W,W),H[nt++]=W.x,H[nt++]=W.y,H[nt++]=W.z}}}a.st&&(v.st=new R({componentDatatype:N.FLOAT,componentsPerAttribute:2,values:Z})),a.normal&&(v.normal=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:Y})),a.tangent&&(v.tangent=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:j})),a.bitangent&&(v.bitangent=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:H}))}if(E(n._offsetAttribute)){let g=x.length,C=n._offsetAttribute===wt.NONE?0:1,_=new Uint8Array(g/3).fill(C);v.applyOffset=new R({componentDatatype:N.UNSIGNED_BYTE,componentsPerAttribute:1,values:_})}return new _t({attributes:v,indices:r,primitiveType:dt.TRIANGLES,boundingSphere:pt.fromEllipsoid(lt),offsetAttribute:n._offsetAttribute})};var mt;O.getUnitEllipsoid=function(){return E(mt)||(mt=O.createGeometry(new O({radii:new s(1,1,1),vertexFormat:k.POSITION_ONLY}))),mt};var Kt=O;export{Kt as a}; diff --git a/libs/cesium/1.111/Workers/chunk-YOHMVXAR.js b/libs/cesium/1.111/Workers/chunk-YOHMVXAR.js new file mode 100644 index 000000000..ea52bdc8d --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-YOHMVXAR.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-6FTJPHAD.js";import{a as st}from"./chunk-3ZQZIWLR.js";import{a as Z,b as H}from"./chunk-BVOZOPDI.js";import{a as V}from"./chunk-EFCSU2FF.js";import{a as U}from"./chunk-BSXS3UVL.js";import{b as it}from"./chunk-OH4CN3UY.js";import{a as ct}from"./chunk-AAJ456AA.js";import{a as ot}from"./chunk-JZL634RF.js";import{a as nt}from"./chunk-3UAKIC5Y.js";import{b as K,c as X,d as z}from"./chunk-QEWKHB6D.js";import{f as J}from"./chunk-DV7DPSRL.js";import{d as A}from"./chunk-KCIWEUSR.js";import{a as k}from"./chunk-7XDW3BZW.js";import{a as w,b as q,c as et,d as F}from"./chunk-F33YCXD2.js";import{a as I}from"./chunk-DUBQPPQZ.js";import{a as tt}from"./chunk-K36PKEJW.js";import{e as x}from"./chunk-ZUCO5WNM.js";function dt(n,i){this.positions=x(n)?n:[],this.holes=x(i)?i:[]}var rt=dt;function R(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(R.prototype,{length:{get:function(){return this._length}}});R.prototype.enqueue=function(n){this._array.push(n),this._length++};R.prototype.dequeue=function(){if(this._length===0)return;let n=this._array,i=this._offset,u=n[i];return n[i]=void 0,i++,i>10&&i*2>n.length&&(this._array=n.slice(i),i=0),this._offset=i,this._length--,u};R.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};R.prototype.contains=function(n){return this._array.indexOf(n)!==-1};R.prototype.clear=function(){this._array.length=this._offset=this._length=0};R.prototype.sort=function(n){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(n)};var $=R;var b={};b.computeHierarchyPackedLength=function(n,i){let u=0,c=[n];for(;c.length>0;){let r=c.pop();if(!x(r))continue;u+=2;let a=r.positions,t=r.holes;if(x(a)&&a.length>0&&(u+=a.length*i.packedLength),x(t)){let o=t.length;for(let e=0;e<o;++e)c.push(t[e])}}return u};b.packPolygonHierarchy=function(n,i,u,c){let r=[n];for(;r.length>0;){let a=r.pop();if(!x(a))continue;let t=a.positions,o=a.holes;if(i[u++]=x(t)?t.length:0,i[u++]=x(o)?o.length:0,x(t)){let e=t.length;for(let s=0;s<e;++s,u+=c.packedLength)c.pack(t[s],i,u)}if(x(o)){let e=o.length;for(let s=0;s<e;++s)r.push(o[s])}}return u};b.unpackPolygonHierarchy=function(n,i,u){let c=n[i++],r=n[i++],a=new Array(c),t=r>0?new Array(r):void 0;for(let o=0;o<c;++o,i+=u.packedLength)a[o]=u.unpack(n,i);for(let o=0;o<r;++o)t[o]=b.unpackPolygonHierarchy(n,i,u),i=t[o].startingIndex,delete t[o].startingIndex;return{positions:a,holes:t,startingIndex:i}};var O=new A;function ht(n,i,u,c){return A.subtract(i,n,O),A.multiplyByScalar(O,u/c,O),A.add(n,O,O),[O.x,O.y]}var G=new w;function gt(n,i,u,c){return w.subtract(i,n,G),w.multiplyByScalar(G,u/c,G),w.add(n,G,G),[G.x,G.y,G.z]}b.subdivideLineCount=function(n,i,u){let r=w.distance(n,i)/u,a=Math.max(0,Math.ceil(I.log2(r)));return Math.pow(2,a)};var j=new q,Q=new q,pt=new q,mt=new w,Y=new U;b.subdivideRhumbLineCount=function(n,i,u,c){let r=n.cartesianToCartographic(i,j),a=n.cartesianToCartographic(u,Q),o=new U(r,a,n).surfaceDistance/c,e=Math.max(0,Math.ceil(I.log2(o)));return Math.pow(2,e)};b.subdivideTexcoordLine=function(n,i,u,c,r,a){let t=b.subdivideLineCount(u,c,r),o=A.distance(n,i),e=o/t,s=a;s.length=t*2;let l=0;for(let h=0;h<t;h++){let f=ht(n,i,h*e,o);s[l++]=f[0],s[l++]=f[1]}return s};b.subdivideLine=function(n,i,u,c){let r=b.subdivideLineCount(n,i,u),a=w.distance(n,i),t=a/r;x(c)||(c=[]);let o=c;o.length=r*3;let e=0;for(let s=0;s<r;s++){let l=gt(n,i,s*t,a);o[e++]=l[0],o[e++]=l[1],o[e++]=l[2]}return o};b.subdivideTexcoordRhumbLine=function(n,i,u,c,r,a,t){let o=u.cartesianToCartographic(c,j),e=u.cartesianToCartographic(r,Q);Y.setEndPoints(o,e);let s=Y.surfaceDistance/a,l=Math.max(0,Math.ceil(I.log2(s))),h=Math.pow(2,l),f=A.distance(n,i),g=f/h,m=t;m.length=h*2;let p=0;for(let d=0;d<h;d++){let y=ht(n,i,d*g,f);m[p++]=y[0],m[p++]=y[1]}return m};b.subdivideRhumbLine=function(n,i,u,c,r){let a=n.cartesianToCartographic(i,j),t=n.cartesianToCartographic(u,Q),o=new U(a,t,n),e=o.surfaceDistance/c,s=Math.max(0,Math.ceil(I.log2(e))),l=Math.pow(2,s),h=o.surfaceDistance/l;x(r)||(r=[]);let f=r;f.length=l*3;let g=0;for(let m=0;m<l;m++){let p=o.interpolateUsingSurfaceDistance(m*h,pt),d=n.cartographicToCartesian(p,mt);f[g++]=d.x,f[g++]=d.y,f[g++]=d.z}return f};var yt=new w,xt=new w,wt=new w,bt=new w;b.scaleToGeodeticHeightExtruded=function(n,i,u,c,r){c=tt(c,et.WGS84);let a=yt,t=xt,o=wt,e=bt;if(x(n)&&x(n.attributes)&&x(n.attributes.position)){let s=n.attributes.position.values,l=s.length/2;for(let h=0;h<l;h+=3)w.fromArray(s,h,o),c.geodeticSurfaceNormal(o,a),e=c.scaleToGeodeticSurface(o,e),t=w.multiplyByScalar(a,u,t),t=w.add(e,t,t),s[h+l]=t.x,s[h+1+l]=t.y,s[h+2+l]=t.z,r&&(e=w.clone(o,e)),t=w.multiplyByScalar(a,i,t),t=w.add(e,t,t),s[h]=t.x,s[h+1]=t.y,s[h+2]=t.z}return n};b.polygonOutlinesFromHierarchy=function(n,i,u){let c=[],r=new $;r.enqueue(n);let a,t,o;for(;r.length!==0;){let e=r.dequeue(),s=e.positions;if(i)for(o=s.length,a=0;a<o;a++)u.scaleToGeodeticSurface(s[a],s[a]);if(s=V(s,w.equalsEpsilon,!0),s.length<3)continue;let l=e.holes?e.holes.length:0;for(a=0;a<l;a++){let h=e.holes[a],f=h.positions;if(i)for(o=f.length,t=0;t<o;++t)u.scaleToGeodeticSurface(f[t],f[t]);if(f=V(f,w.equalsEpsilon,!0),f.length<3)continue;c.push(f);let g=0;for(x(h.holes)&&(g=h.holes.length),t=0;t<g;t++)r.enqueue(h.holes[t])}c.push(s)}return c};var Lt=new q;function Tt(n,i,u){let c=u.cartesianToCartographic(n,j),r=u.cartesianToCartographic(i,Q);if(Math.sign(c.latitude)===Math.sign(r.latitude))return;Y.setEndPoints(c,r);let a=Y.findIntersectionWithLatitude(0,Lt);if(!x(a))return;let t=Math.min(c.longitude,r.longitude),o=Math.max(c.longitude,r.longitude);if(Math.abs(o-t)>I.PI){let e=t;t=o,o=e}if(!(a.longitude<t||a.longitude>o))return u.cartographicToCartesian(a)}function Et(n,i,u,c){if(c===M.RHUMB)return Tt(n,i,u);let r=it.lineSegmentPlane(n,i,ct.ORIGIN_XY_PLANE);if(x(r))return u.scaleToGeodeticSurface(r,r)}var vt=new q;function Ct(n,i,u){let c=[],r,a,t,o,e,s=0;for(;s<n.length;){r=n[s],a=n[(s+1)%n.length],t=I.sign(r.z),o=I.sign(a.z);let l=h=>i.cartesianToCartographic(h,vt).longitude;if(t===0)c.push({position:s,type:t,visited:!1,next:o,theta:l(r)});else if(o!==0){if(e=Et(r,a,i,u),++s,!x(e))continue;n.splice(s,0,e),c.push({position:s,type:t,visited:!1,next:o,theta:l(e)})}++s}return c}function lt(n,i,u,c,r,a,t){let o=[],e=a,s=h=>f=>f.position===h,l=[];do{let h=u[e];o.push(h);let f=c.findIndex(s(e)),g=c[f];if(!x(g)){++e;continue}let{visited:m,type:p,next:d}=g;if(g.visited=!0,p===0){if(d===0){let C=c[f-(t?1:-1)];if(C?.position===e+1)C.visited=!0;else{++e;continue}}if(!m&&t&&d>0||a===e&&!t&&d<0){++e;continue}}if(!(t?p>=0:p<=0)){++e;continue}m||l.push(e);let L=f+(t?1:-1),S=c[L];if(!x(S)){++e;continue}e=S.position}while(e<u.length&&e>=0&&e!==a&&o.length<u.length);n.splice(i,r,o);for(let h of l)i=lt(n,++i,u,c,0,h,!t);return i}b.splitPolygonsOnEquator=function(n,i,u,c){x(c)||(c=[]),c.splice(0,0,...n),c.length=n.length;let r=0;for(;r<c.length;){let a=c[r],t=a.slice();if(a.length<3){c[r]=t,++r;continue}let o=Ct(t,i,u);if(t.length===a.length||o.length<=1){c[r]=t,++r;continue}o.sort((s,l)=>s.theta-l.theta);let e=t[0].z>=0;r=lt(c,r,t,o,1,0,e)}return c};b.polygonsFromHierarchy=function(n,i,u,c,r,a){let t=[],o=[],e=new $;e.enqueue(n);let s=x(a);for(;e.length!==0;){let l=e.dequeue(),h=l.positions,f=l.holes,g,m;if(c)for(m=h.length,g=0;g<m;g++)r.scaleToGeodeticSurface(h[g],h[g]);if(i||(h=V(h,w.equalsEpsilon,!0)),h.length<3)continue;let p=u(h);if(!x(p))continue;let d=[],y=H.computeWindingOrder2D(p);if(y===Z.CLOCKWISE&&(p.reverse(),h=h.slice().reverse()),s){s=!1;let P=[h];if(P=a(P,P),P.length>1){for(let v of P)e.enqueue(new rt(v,f));continue}}let L=h.slice(),S=x(f)?f.length:0,C=[],T;for(g=0;g<S;g++){let P=f[g],v=P.positions;if(c)for(m=v.length,T=0;T<m;++T)r.scaleToGeodeticSurface(v[T],v[T]);if(i||(v=V(v,w.equalsEpsilon,!0)),v.length<3)continue;let E=u(v);if(!x(E))continue;y=H.computeWindingOrder2D(E),y===Z.CLOCKWISE&&(E.reverse(),v=v.slice().reverse()),C.push(v),d.push(L.length),L=L.concat(v),p=p.concat(E);let D=0;for(x(P.holes)&&(D=P.holes.length),T=0;T<D;T++)e.enqueue(P.holes[T])}t.push({outerRing:h,holes:C}),o.push({positions:L,positions2D:p,holes:d})}return{hierarchy:t,polygons:o}};var Pt=new A,Dt=new w,It=new J,St=new F;b.computeBoundingRectangle=function(n,i,u,c,r){let a=J.fromAxisAngle(n,c,It),t=F.fromQuaternion(a,St),o=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,h=u.length;for(let f=0;f<h;++f){let g=w.clone(u[f],Dt);F.multiplyByVector(t,g,g);let m=i(g,Pt);x(m)&&(o=Math.min(o,m.x),e=Math.max(e,m.x),s=Math.min(s,m.y),l=Math.max(l,m.y))}return r.x=o,r.y=s,r.width=e-o,r.height=l-s,r};b.createGeometryFromPositions=function(n,i,u,c,r,a,t){let o=H.triangulate(i.positions2D,i.holes);o.length<3&&(o=[0,1,2]);let e=i.positions,s=x(u),l=s?u.positions:void 0;if(r){let h=e.length,f=new Array(h*3),g=0;for(let d=0;d<h;d++){let y=e[d];f[g++]=y.x,f[g++]=y.y,f[g++]=y.z}let m={attributes:{position:new z({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:f})},indices:o,primitiveType:K.TRIANGLES};s&&(m.attributes.st=new z({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:A.packArray(l)}));let p=new X(m);return a.normal?st.computeNormal(p):p}if(t===M.GEODESIC)return H.computeSubdivision(n,e,o,l,c);if(t===M.RHUMB)return H.computeRhumbLineSubdivision(n,e,o,l,c)};var ut=[],at=[],_t=new w,At=new w;b.computeWallGeometry=function(n,i,u,c,r,a){let t,o,e,s,l,h,f,g,m,p=n.length,d=0,y=0,L=x(i),S=L?i.positions:void 0;if(r)for(o=p*3*2,t=new Array(o*2),L&&(m=p*2*2,g=new Array(m*2)),e=0;e<p;e++)s=n[e],l=n[(e+1)%p],t[d]=t[d+o]=s.x,++d,t[d]=t[d+o]=s.y,++d,t[d]=t[d+o]=s.z,++d,t[d]=t[d+o]=l.x,++d,t[d]=t[d+o]=l.y,++d,t[d]=t[d+o]=l.z,++d,L&&(h=S[e],f=S[(e+1)%p],g[y]=g[y+m]=h.x,++y,g[y]=g[y+m]=h.y,++y,g[y]=g[y+m]=f.x,++y,g[y]=g[y+m]=f.y,++y);else{let E=I.chordLength(c,u.maximumRadius),D=0;if(a===M.GEODESIC)for(e=0;e<p;e++)D+=b.subdivideLineCount(n[e],n[(e+1)%p],E);else if(a===M.RHUMB)for(e=0;e<p;e++)D+=b.subdivideRhumbLineCount(u,n[e],n[(e+1)%p],E);for(o=(D+p)*3,t=new Array(o*2),L&&(m=(D+p)*2,g=new Array(m*2)),e=0;e<p;e++){s=n[e],l=n[(e+1)%p];let _,N;L&&(h=S[e],f=S[(e+1)%p]),a===M.GEODESIC?(_=b.subdivideLine(s,l,E,at),L&&(N=b.subdivideTexcoordLine(h,f,s,l,E,ut))):a===M.RHUMB&&(_=b.subdivideRhumbLine(u,s,l,E,at),L&&(N=b.subdivideTexcoordRhumbLine(h,f,u,s,l,E,ut)));let ft=_.length;for(let B=0;B<ft;++B,++d)t[d]=_[B],t[d+o]=_[B];if(t[d]=l.x,t[d+o]=l.x,++d,t[d]=l.y,t[d+o]=l.y,++d,t[d]=l.z,t[d+o]=l.z,++d,L){let B=N.length;for(let W=0;W<B;++W,++y)g[y]=N[W],g[y+m]=N[W];g[y]=f.x,g[y+m]=f.x,++y,g[y]=f.y,g[y+m]=f.y,++y}}}p=t.length;let C=ot.createTypedArray(p/3,p-n.length*6),T=0;for(p/=6,e=0;e<p;e++){let E=e,D=E+1,_=E+p,N=_+1;s=w.fromArray(t,E*3,_t),l=w.fromArray(t,D*3,At),!w.equalsEpsilon(s,l,I.EPSILON10,I.EPSILON10)&&(C[T++]=E,C[T++]=_,C[T++]=D,C[T++]=D,C[T++]=_,C[T++]=N)}let P={attributes:new nt({position:new z({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:t})}),indices:C,primitiveType:K.TRIANGLES};return L&&(P.attributes.st=new z({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:g})),new X(P)};var se=b;export{se as a}; diff --git a/libs/cesium/1.111/Workers/chunk-YXVAQU2G.js b/libs/cesium/1.111/Workers/chunk-YXVAQU2G.js new file mode 100644 index 000000000..8cf126f12 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-YXVAQU2G.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as y,b as P,c as W}from"./chunk-F33YCXD2.js";import{a as L}from"./chunk-DUBQPPQZ.js";import{a as B}from"./chunk-K36PKEJW.js";import{b as q}from"./chunk-KD2PMTHD.js";import{e as T}from"./chunk-ZUCO5WNM.js";function Y(n){let a=n._uSquared,t=n._ellipsoid.maximumRadius,e=n._ellipsoid.minimumRadius,f=(t-e)/t,m=Math.cos(n._startHeading),_=Math.sin(n._startHeading),r=(1-f)*Math.tan(n._start.latitude),p=1/Math.sqrt(1+r*r),R=p*r,M=Math.atan2(r,m),l=p*_,U=l*l,i=1-U,A=Math.sqrt(i),c=a/4,o=c*c,h=o*c,S=o*o,u=1+c-3*o/4+5*h/4-175*S/64,C=1-c+15*o/8-35*h/8,d=1-3*c+35*o/4,g=1-5*c,w=u*M-C*Math.sin(2*M)*c/2-d*Math.sin(4*M)*o/16-g*Math.sin(6*M)*h/48-Math.sin(8*M)*5*S/512,s=n._constants;s.a=t,s.b=e,s.f=f,s.cosineHeading=m,s.sineHeading=_,s.tanU=r,s.cosineU=p,s.sineU=R,s.sigma=M,s.sineAlpha=l,s.sineSquaredAlpha=U,s.cosineSquaredAlpha=i,s.cosineAlpha=A,s.u2Over4=c,s.u4Over16=o,s.u6Over64=h,s.u8Over256=S,s.a0=u,s.a1=C,s.a2=d,s.a3=g,s.distanceRatio=w}function Z(n,a){return n*a*(4+n*(4-3*a))/16}function k(n,a,t,e,f,m,_){let r=Z(n,t);return(1-r)*n*a*(e+r*f*(_+r*m*(2*_*_-1)))}function $(n,a,t,e,f,m,_){let r=(a-t)/a,p=m-e,R=Math.atan((1-r)*Math.tan(f)),M=Math.atan((1-r)*Math.tan(_)),l=Math.cos(R),U=Math.sin(R),i=Math.cos(M),A=Math.sin(M),c=l*i,o=l*A,h=U*A,S=U*i,u=p,C=L.TWO_PI,d=Math.cos(u),g=Math.sin(u),w,s,O,H,b;do{d=Math.cos(u),g=Math.sin(u);let z=o-S*d;O=Math.sqrt(i*i*g*g+z*z),s=h+c*d,w=Math.atan2(O,s);let D;O===0?(D=0,H=1):(D=c*g/O,H=1-D*D),C=u,b=s-2*h/H,isFinite(b)||(b=0),u=p+k(r,D,H,w,O,s,b)}while(Math.abs(u-C)>L.EPSILON12);let v=H*(a*a-t*t)/(t*t),V=1+v*(4096+v*(v*(320-175*v)-768))/16384,I=v*(256+v*(v*(74-47*v)-128))/1024,F=b*b,J=I*O*(b+I*(s*(2*F-1)-I*b*(4*O*O-3)*(4*F-3)/6)/4),K=t*V*(w-J),Q=Math.atan2(i*g,o-S*d),X=Math.atan2(l*g,o*d-S);n._distance=K,n._startHeading=Q,n._endHeading=X,n._uSquared=v}var j=new y,x=new y;function N(n,a,t,e){let f=y.normalize(e.cartographicToCartesian(a,x),j),m=y.normalize(e.cartographicToCartesian(t,x),x);q.typeOf.number.greaterThanOrEquals("value",Math.abs(Math.abs(y.angleBetween(f,m))-Math.PI),.0125),$(n,e.maximumRadius,e.minimumRadius,a.longitude,a.latitude,t.longitude,t.latitude),n._start=P.clone(a,n._start),n._end=P.clone(t,n._end),n._start.height=0,n._end.height=0,Y(n)}function E(n,a,t){let e=B(t,W.WGS84);this._ellipsoid=e,this._start=new P,this._end=new P,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,T(n)&&T(a)&&N(this,n,a,e)}Object.defineProperties(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return q.defined("distance",this._distance),this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return q.defined("distance",this._distance),this._startHeading}},endHeading:{get:function(){return q.defined("distance",this._distance),this._endHeading}}});E.prototype.setEndPoints=function(n,a){q.defined("start",n),q.defined("end",a),N(this,n,a,this._ellipsoid)};E.prototype.interpolateUsingFraction=function(n,a){return this.interpolateUsingSurfaceDistance(this._distance*n,a)};E.prototype.interpolateUsingSurfaceDistance=function(n,a){q.defined("distance",this._distance);let t=this._constants,e=t.distanceRatio+n/t.b,f=Math.cos(2*e),m=Math.cos(4*e),_=Math.cos(6*e),r=Math.sin(2*e),p=Math.sin(4*e),R=Math.sin(6*e),M=Math.sin(8*e),l=e*e,U=e*l,i=t.u8Over256,A=t.u2Over4,c=t.u6Over64,o=t.u4Over16,h=2*U*i*f/3+e*(1-A+7*o/4-15*c/4+579*i/64-(o-15*c/4+187*i/16)*f-(5*c/4-115*i/16)*m-29*i*_/16)+(A/2-o+71*c/32-85*i/16)*r+(5*o/16-5*c/4+383*i/96)*p-l*((c-11*i/2)*r+5*i*p/2)+(29*c/96-29*i/16)*R+539*i*M/1536,S=Math.asin(Math.sin(h)*t.cosineAlpha),u=Math.atan(t.a/t.b*Math.tan(S));h=h-t.sigma;let C=Math.cos(2*t.sigma+h),d=Math.sin(h),g=Math.cos(h),w=t.cosineU*g,s=t.sineU*d,H=Math.atan2(d*t.sineHeading,w-s*t.cosineHeading)-k(t.f,t.sineAlpha,t.cosineSquaredAlpha,h,d,g,C);return T(a)?(a.longitude=this._start.longitude+H,a.latitude=u,a.height=0,a):new P(this._start.longitude+H,u,0)};var ct=E;export{ct as a}; diff --git a/libs/cesium/1.111/Workers/chunk-ZKHPTJEK.js b/libs/cesium/1.111/Workers/chunk-ZKHPTJEK.js new file mode 100644 index 000000000..66d1b262b --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-ZKHPTJEK.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as O}from"./chunk-DV7DPSRL.js";import{c as I,e as V}from"./chunk-KCIWEUSR.js";import{a as W,b as v}from"./chunk-F33YCXD2.js";import{a as R}from"./chunk-DUBQPPQZ.js";import{a as k}from"./chunk-KD2PMTHD.js";import{e as N}from"./chunk-ZUCO5WNM.js";var z=Math.cos,Z=Math.sin,D=Math.sqrt,L={};L.computePosition=function(t,_,l,h,G,u,a){let e=_.radiiSquared,i=t.nwCorner,r=t.boundingRectangle,n=i.latitude-t.granYCos*h+G*t.granXSin,X=z(n),Y=Z(n),d=e.z*Y,s=i.longitude+h*t.granYSin+G*t.granXCos,S=X*z(s),f=X*Z(s),w=e.x*S,m=e.y*f,M=D(w*S+m*f+d*Y);if(u.x=w/M,u.y=m/M,u.z=d/M,l){let o=t.stNwCorner;N(o)?(n=o.latitude-t.stGranYCos*h+G*t.stGranXSin,s=o.longitude+h*t.stGranYSin+G*t.stGranXCos,a.x=(s-t.stWest)*t.lonScalar,a.y=(n-t.stSouth)*t.latScalar):(a.x=(s-r.west)*t.lonScalar,a.y=(n-r.south)*t.latScalar)}};var A=new V,g=new W,F=new v,b=new W,q=new O;function B(t,_,l,h,G,u,a){let e=Math.cos(_),i=h*e,r=l*e,n=Math.sin(_),X=h*n,Y=l*n;g=q.project(t,g),g=W.subtract(g,b,g);let d=V.fromRotation(_,A);g=V.multiplyByVector(d,g,g),g=W.add(g,b,g),t=q.unproject(g,t),u-=1,a-=1;let s=t.latitude,S=s+u*Y,f=s-i*a,w=s-i*a+u*Y,m=Math.max(s,S,f,w),M=Math.min(s,S,f,w),o=t.longitude,y=o+u*r,T=o+a*X,E=o+a*X+u*r,j=Math.max(o,y,T,E),x=Math.min(o,y,T,E);return{north:m,south:M,east:j,west:x,granYCos:i,granYSin:X,granXCos:r,granXSin:Y,nwCorner:t}}L.computeOptions=function(t,_,l,h,G,u,a){let e=t.east,i=t.west,r=t.north,n=t.south,X=!1,Y=!1;r===R.PI_OVER_TWO&&(X=!0),n===-R.PI_OVER_TWO&&(Y=!0);let d,s=r-n;i>e?d=R.TWO_PI-i+e:d=e-i;let S=Math.ceil(d/_)+1,f=Math.ceil(s/_)+1,w=d/(S-1),m=s/(f-1),M=I.northwest(t,u),o=I.center(t,F);(l!==0||h!==0)&&(o.longitude<M.longitude&&(o.longitude+=R.TWO_PI),b=q.project(o,b));let y=m,T=w,E=0,j=0,x=I.clone(t,G),c={granYCos:y,granYSin:E,granXCos:T,granXSin:j,nwCorner:M,boundingRectangle:x,width:S,height:f,northCap:X,southCap:Y};if(l!==0){let C=B(M,l,w,m,o,S,f);if(r=C.north,n=C.south,e=C.east,i=C.west,r<-R.PI_OVER_TWO||r>R.PI_OVER_TWO||n<-R.PI_OVER_TWO||n>R.PI_OVER_TWO)throw new k("Rotated rectangle is invalid. It crosses over either the north or south pole.");c.granYCos=C.granYCos,c.granYSin=C.granYSin,c.granXCos=C.granXCos,c.granXSin=C.granXSin,x.north=r,x.south=n,x.east=e,x.west=i}if(h!==0){l=l-h;let C=I.northwest(x,a),P=B(C,l,w,m,o,S,f);c.stGranYCos=P.granYCos,c.stGranXCos=P.granXCos,c.stGranYSin=P.granYSin,c.stGranXSin=P.granXSin,c.stNwCorner=C,c.stWest=P.west,c.stSouth=P.south}return c};var nt=L;export{nt as a}; diff --git a/libs/cesium/1.111/Workers/chunk-ZUCO5WNM.js b/libs/cesium/1.111/Workers/chunk-ZUCO5WNM.js new file mode 100644 index 000000000..84c07d7b0 --- /dev/null +++ b/libs/cesium/1.111/Workers/chunk-ZUCO5WNM.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var i=Object.create;var u=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var o=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var a=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,d)=>(typeof require<"u"?require:e)[d]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),b=n=>e=>{var d=n[e];if(d)return d();throw new Error("Module not found in bundle: "+e)};var g=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var p=(n,e,d,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of l(e))!c.call(n,f)&&f!==d&&u(n,f,{get:()=>e[f],enumerable:!(t=r(e,f))||t.enumerable});return n};var h=(n,e,d)=>(d=n!=null?i(o(n)):{},p(e||!n||!n.__esModule?u(d,"default",{value:n,enumerable:!0}):d,n));function x(n){return n!=null}var k=x;export{a,b,g as c,h as d,k as e}; diff --git a/libs/cesium/1.111/Workers/combineGeometry.js b/libs/cesium/1.111/Workers/combineGeometry.js new file mode 100644 index 000000000..7c06a07bf --- /dev/null +++ b/libs/cesium/1.111/Workers/combineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-4H3LC6HP.js";import{a as r}from"./chunk-4M7FKQYC.js";import"./chunk-4XIXQUKW.js";import"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import"./chunk-ZUCO5WNM.js";function n(o,t){let m=e.unpackCombineGeometryParameters(o),i=e.combineGeometry(m);return e.packCombineGeometryResults(i,t)}var c=r(n);export{c as default}; diff --git a/libs/cesium/1.111/Workers/createBoxGeometry.js b/libs/cesium/1.111/Workers/createBoxGeometry.js new file mode 100644 index 000000000..a4102e0ab --- /dev/null +++ b/libs/cesium/1.111/Workers/createBoxGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-VD6RJEWG.js";import"./chunk-N52FZRFP.js";import"./chunk-WIRUK4BS.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as o}from"./chunk-ZUCO5WNM.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/libs/cesium/1.111/Workers/createBoxOutlineGeometry.js b/libs/cesium/1.111/Workers/createBoxOutlineGeometry.js new file mode 100644 index 000000000..e449ff682 --- /dev/null +++ b/libs/cesium/1.111/Workers/createBoxOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as d}from"./chunk-N52FZRFP.js";import{a as l}from"./chunk-3UAKIC5Y.js";import{b as O,c as h,d as p}from"./chunk-QEWKHB6D.js";import{d as A}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a}from"./chunk-7XDW3BZW.js";import{a as m}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as u}from"./chunk-K36PKEJW.js";import{a as b,b as r}from"./chunk-KD2PMTHD.js";import{e as c}from"./chunk-ZUCO5WNM.js";var g=new m;function f(e){e=u(e,u.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;if(r.typeOf.object("min",t),r.typeOf.object("max",n),c(e.offsetAttribute)&&e.offsetAttribute===d.TOP)throw new b("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._min=m.clone(t),this._max=m.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}f.fromDimensions=function(e){e=u(e,u.EMPTY_OBJECT);let t=e.dimensions;r.typeOf.object("dimensions",t),r.typeOf.number.greaterThanOrEquals("dimensions.x",t.x,0),r.typeOf.number.greaterThanOrEquals("dimensions.y",t.y,0),r.typeOf.number.greaterThanOrEquals("dimensions.z",t.z,0);let n=m.multiplyByScalar(t,.5,new m);return new f({minimum:m.negate(n,new m),maximum:n,offsetAttribute:e.offsetAttribute})};f.fromAxisAlignedBoundingBox=function(e){return r.typeOf.object("boundindBox",e),new f({minimum:e.minimum,maximum:e.maximum})};f.packedLength=2*m.packedLength+1;f.pack=function(e,t,n){return r.typeOf.object("value",e),r.defined("array",t),n=u(n,0),m.pack(e._min,t,n),m.pack(e._max,t,n+m.packedLength),t[n+m.packedLength*2]=u(e._offsetAttribute,-1),t};var w=new m,x=new m,_={minimum:w,maximum:x,offsetAttribute:void 0};f.unpack=function(e,t,n){r.defined("array",e),t=u(t,0);let s=m.unpack(e,t,w),o=m.unpack(e,t+m.packedLength,x),i=e[t+m.packedLength*2];return c(n)?(n._min=m.clone(s,n._min),n._max=m.clone(o,n._max),n._offsetAttribute=i===-1?void 0:i,n):(_.offsetAttribute=i===-1?void 0:i,new f(_))};f.createGeometry=function(e){let t=e._min,n=e._max;if(m.equals(t,n))return;let s=new l,o=new Uint16Array(12*2),i=new Float64Array(8*3);i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=n.x,i[4]=t.y,i[5]=t.z,i[6]=n.x,i[7]=n.y,i[8]=t.z,i[9]=t.x,i[10]=n.y,i[11]=t.z,i[12]=t.x,i[13]=t.y,i[14]=n.z,i[15]=n.x,i[16]=t.y,i[17]=n.z,i[18]=n.x,i[19]=n.y,i[20]=n.z,i[21]=t.x,i[22]=n.y,i[23]=n.z,s.position=new p({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:i}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let k=m.subtract(n,t,g),E=m.magnitude(k)*.5;if(c(e._offsetAttribute)){let T=i.length,B=e._offsetAttribute===d.NONE?0:1,z=new Uint8Array(T/3).fill(B);s.applyOffset=new p({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:z})}return new h({attributes:s,indices:o,primitiveType:O.LINES,boundingSphere:new A(m.ZERO,E),offsetAttribute:e._offsetAttribute})};var y=f;function L(e,t){return c(t)&&(e=y.unpack(e,t)),y.createGeometry(e)}var R=L;export{R as default}; diff --git a/libs/cesium/1.111/Workers/createCircleGeometry.js b/libs/cesium/1.111/Workers/createCircleGeometry.js new file mode 100644 index 000000000..44c8d7ea7 --- /dev/null +++ b/libs/cesium/1.111/Workers/createCircleGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as s}from"./chunk-CEN2FMLA.js";import"./chunk-CN7OWDF4.js";import"./chunk-FDKE3YW2.js";import"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import"./chunk-N52FZRFP.js";import{a as d}from"./chunk-WIRUK4BS.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as l,c as a}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as c}from"./chunk-K36PKEJW.js";import{b as p}from"./chunk-KD2PMTHD.js";import{e as m}from"./chunk-ZUCO5WNM.js";function n(e){e=c(e,c.EMPTY_OBJECT);let r=e.radius;p.typeOf.number("radius",r);let o={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new s(o),this._workerName="createCircleGeometry"}n.packedLength=s.packedLength;n.pack=function(e,r,o){return p.typeOf.object("value",e),s.pack(e._ellipseGeometry,r,o)};var x=new s({center:new l,semiMajorAxis:1,semiMinorAxis:1}),t={center:new l,radius:void 0,ellipsoid:a.clone(a.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new d,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};n.unpack=function(e,r,o){let i=s.unpack(e,r,x);return t.center=l.clone(i._center,t.center),t.ellipsoid=a.clone(i._ellipsoid,t.ellipsoid),t.height=i._height,t.extrudedHeight=i._extrudedHeight,t.granularity=i._granularity,t.vertexFormat=d.clone(i._vertexFormat,t.vertexFormat),t.stRotation=i._stRotation,t.shadowVolume=i._shadowVolume,m(o)?(t.semiMajorAxis=i._semiMajorAxis,t.semiMinorAxis=i._semiMinorAxis,o._ellipseGeometry=new s(t),o):(t.radius=i._semiMajorAxis,new n(t))};n.createGeometry=function(e){return s.createGeometry(e._ellipseGeometry)};n.createShadowVolume=function(e,r,o){let i=e._ellipseGeometry._granularity,u=e._ellipseGeometry._ellipsoid,h=r(i,u),f=o(i,u);return new n({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:u,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:h,height:f,vertexFormat:d.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(n.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var _=n;function g(e,r){return m(r)&&(e=_.unpack(e,r)),e._ellipseGeometry._center=l.clone(e._ellipseGeometry._center),e._ellipseGeometry._ellipsoid=a.clone(e._ellipseGeometry._ellipsoid),_.createGeometry(e)}var E=g;export{E as default}; diff --git a/libs/cesium/1.111/Workers/createCircleOutlineGeometry.js b/libs/cesium/1.111/Workers/createCircleOutlineGeometry.js new file mode 100644 index 000000000..b2d114fd4 --- /dev/null +++ b/libs/cesium/1.111/Workers/createCircleOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as n}from"./chunk-A7HHFHR4.js";import"./chunk-CN7OWDF4.js";import"./chunk-N52FZRFP.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as o,c as s}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as u}from"./chunk-K36PKEJW.js";import{b as d}from"./chunk-KD2PMTHD.js";import{e as a}from"./chunk-ZUCO5WNM.js";function m(e){e=u(e,u.EMPTY_OBJECT);let r=e.radius;d.typeOf.number("radius",r);let l={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new n(l),this._workerName="createCircleOutlineGeometry"}m.packedLength=n.packedLength;m.pack=function(e,r,l){return d.typeOf.object("value",e),n.pack(e._ellipseGeometry,r,l)};var p=new n({center:new o,semiMajorAxis:1,semiMinorAxis:1}),i={center:new o,radius:void 0,ellipsoid:s.clone(s.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};m.unpack=function(e,r,l){let t=n.unpack(e,r,p);return i.center=o.clone(t._center,i.center),i.ellipsoid=s.clone(t._ellipsoid,i.ellipsoid),i.height=t._height,i.extrudedHeight=t._extrudedHeight,i.granularity=t._granularity,i.numberOfVerticalLines=t._numberOfVerticalLines,a(l)?(i.semiMajorAxis=t._semiMajorAxis,i.semiMinorAxis=t._semiMinorAxis,l._ellipseGeometry=new n(i),l):(i.radius=t._semiMajorAxis,new m(i))};m.createGeometry=function(e){return n.createGeometry(e._ellipseGeometry)};var c=m;function f(e,r){return a(r)&&(e=c.unpack(e,r)),e._ellipseGeometry._center=o.clone(e._ellipseGeometry._center),e._ellipseGeometry._ellipsoid=s.clone(e._ellipseGeometry._ellipsoid),c.createGeometry(e)}var E=f;export{E as default}; diff --git a/libs/cesium/1.111/Workers/createCoplanarPolygonGeometry.js b/libs/cesium/1.111/Workers/createCoplanarPolygonGeometry.js new file mode 100644 index 000000000..21c5dec2f --- /dev/null +++ b/libs/cesium/1.111/Workers/createCoplanarPolygonGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as et}from"./chunk-4HIMVLZZ.js";import{a as U}from"./chunk-ENWPNENP.js";import"./chunk-EMZN2RVW.js";import{a as y}from"./chunk-YOHMVXAR.js";import"./chunk-6FTJPHAD.js";import{a as I}from"./chunk-FDKE3YW2.js";import{a as $}from"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import{a as u}from"./chunk-WIRUK4BS.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import{b as ot}from"./chunk-BVOZOPDI.js";import{a as tt}from"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as J}from"./chunk-JZL634RF.js";import{a as X}from"./chunk-3UAKIC5Y.js";import{b as K,c as Y,d as z}from"./chunk-QEWKHB6D.js";import{d as Z,f as Q}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{d as x}from"./chunk-KCIWEUSR.js";import{a as N}from"./chunk-7XDW3BZW.js";import{a as i,c as m,d as P}from"./chunk-F33YCXD2.js";import{a as q}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as f}from"./chunk-K36PKEJW.js";import{b as B}from"./chunk-KD2PMTHD.js";import{e as g}from"./chunk-ZUCO5WNM.js";var st=new i,at=new et,pt=new x,lt=new x,mt=new i,ft=new i,ut=new i,V=new i,yt=new i,ht=new i,nt=new Q,dt=new P,gt=new P,Pt=new i;function wt(e,t,o,a,h,A,r,n,p){let b=e.positions,c=ot.triangulate(e.positions2D,e.holes);c.length<3&&(c=[0,1,2]);let w=J.createTypedArray(b.length,c.length);w.set(c);let S=dt;if(a!==0){let d=Q.fromAxisAngle(r,a,nt);if(S=P.fromQuaternion(d,S),t.tangent||t.bitangent){d=Q.fromAxisAngle(r,-a,nt);let G=P.fromQuaternion(d,gt);n=i.normalize(P.multiplyByVector(G,n,n),n),t.bitangent&&(p=i.normalize(i.cross(r,n,p),p))}}else S=P.clone(P.IDENTITY,S);let j=lt;t.st&&(j.x=o.x,j.y=o.y);let k=b.length,C=k*3,L=new Float64Array(C),T=t.normal?new Float32Array(C):void 0,D=t.tangent?new Float32Array(C):void 0,R=t.bitangent?new Float32Array(C):void 0,H=t.st?new Float32Array(k*2):void 0,M=0,F=0,l=0,O=0,s=0;for(let d=0;d<k;d++){let G=b[d];if(L[M++]=G.x,L[M++]=G.y,L[M++]=G.z,t.st)if(g(h)&&h.positions.length===k)H[s++]=h.positions[d].x,H[s++]=h.positions[d].y;else{let it=P.multiplyByVector(S,G,st),v=A(it,pt);x.subtract(v,j,v);let rt=q.clamp(v.x/o.width,0,1),ct=q.clamp(v.y/o.height,0,1);H[s++]=rt,H[s++]=ct}t.normal&&(T[F++]=r.x,T[F++]=r.y,T[F++]=r.z),t.tangent&&(D[O++]=n.x,D[O++]=n.y,D[O++]=n.z),t.bitangent&&(R[l++]=p.x,R[l++]=p.y,R[l++]=p.z)}let _=new X;return t.position&&(_.position=new z({componentDatatype:N.DOUBLE,componentsPerAttribute:3,values:L})),t.normal&&(_.normal=new z({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(_.tangent=new z({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:D})),t.bitangent&&(_.bitangent=new z({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:R})),t.st&&(_.st=new z({componentDatatype:N.FLOAT,componentsPerAttribute:2,values:H})),new Y({attributes:_,indices:w,primitiveType:K.TRIANGLES})}function E(e){e=f(e,f.EMPTY_OBJECT);let t=e.polygonHierarchy,o=e.textureCoordinates;B.defined("options.polygonHierarchy",t);let a=f(e.vertexFormat,u.DEFAULT);this._vertexFormat=u.clone(a),this._polygonHierarchy=t,this._stRotation=f(e.stRotation,0),this._ellipsoid=m.clone(f(e.ellipsoid,m.WGS84)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=o,this.packedLength=y.computeHierarchyPackedLength(t,i)+u.packedLength+m.packedLength+(g(o)?y.computeHierarchyPackedLength(o,x):1)+2}E.fromPositions=function(e){e=f(e,f.EMPTY_OBJECT),B.defined("options.positions",e.positions);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new E(t)};E.pack=function(e,t,o){return B.typeOf.object("value",e),B.defined("array",t),o=f(o,0),o=y.packPolygonHierarchy(e._polygonHierarchy,t,o,i),m.pack(e._ellipsoid,t,o),o+=m.packedLength,u.pack(e._vertexFormat,t,o),o+=u.packedLength,t[o++]=e._stRotation,g(e._textureCoordinates)?o=y.packPolygonHierarchy(e._textureCoordinates,t,o,x):t[o++]=-1,t[o++]=e.packedLength,t};var _t=m.clone(m.UNIT_SPHERE),At=new u,bt={polygonHierarchy:{}};E.unpack=function(e,t,o){B.defined("array",e),t=f(t,0);let a=y.unpackPolygonHierarchy(e,t,i);t=a.startingIndex,delete a.startingIndex;let h=m.unpack(e,t,_t);t+=m.packedLength;let A=u.unpack(e,t,At);t+=u.packedLength;let r=e[t++],n=e[t]===-1?void 0:y.unpackPolygonHierarchy(e,t,x);g(n)?(t=n.startingIndex,delete n.startingIndex):t++;let p=e[t++];return g(o)||(o=new E(bt)),o._polygonHierarchy=a,o._ellipsoid=m.clone(h,o._ellipsoid),o._vertexFormat=u.clone(A,o._vertexFormat),o._stRotation=r,o._textureCoordinates=n,o.packedLength=p,o};E.createGeometry=function(e){let t=e._vertexFormat,o=e._polygonHierarchy,a=e._stRotation,h=e._textureCoordinates,A=g(h),r=o.positions;if(r=tt(r,i.equalsEpsilon,!0),r.length<3)return;let n=mt,p=ft,b=ut,c=yt,w=ht;if(!U.computeProjectTo2DArguments(r,V,c,w))return;if(n=i.cross(c,w,n),n=i.normalize(n,n),!i.equalsEpsilon(V,i.ZERO,q.EPSILON6)){let s=e._ellipsoid.geodeticSurfaceNormal(V,Pt);i.dot(n,s)<0&&(n=i.negate(n,n),c=i.negate(c,c))}let j=U.createProjectPointsTo2DFunction(V,c,w),k=U.createProjectPointTo2DFunction(V,c,w);t.tangent&&(p=i.clone(c,p)),t.bitangent&&(b=i.clone(w,b));let C=y.polygonsFromHierarchy(o,A,j,!1),L=C.hierarchy,T=C.polygons,D=function(s){return s},R=A?y.polygonsFromHierarchy(h,!0,D,!1).polygons:void 0;if(L.length===0)return;r=L[0].outerRing;let H=Z.fromPoints(r),M=y.computeBoundingRectangle(n,k,r,a,at),F=[];for(let s=0;s<T.length;s++){let _=new I({geometry:wt(T[s],t,M,a,A?R[s]:void 0,k,n,p,b)});F.push(_)}let l=$.combineInstances(F)[0];l.attributes.position.values=new Float64Array(l.attributes.position.values),l.indices=J.createTypedArray(l.attributes.position.values.length/3,l.indices);let O=l.attributes;return t.position||delete O.position,new Y({attributes:O,indices:l.indices,primitiveType:l.primitiveType,boundingSphere:H})};var W=E;function kt(e,t){return g(t)&&(e=W.unpack(e,t)),W.createGeometry(e)}var Xt=kt;export{Xt as default}; diff --git a/libs/cesium/1.111/Workers/createCoplanarPolygonOutlineGeometry.js b/libs/cesium/1.111/Workers/createCoplanarPolygonOutlineGeometry.js new file mode 100644 index 000000000..ded192276 --- /dev/null +++ b/libs/cesium/1.111/Workers/createCoplanarPolygonOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as T}from"./chunk-ENWPNENP.js";import"./chunk-EMZN2RVW.js";import{a as f}from"./chunk-YOHMVXAR.js";import"./chunk-6FTJPHAD.js";import{a as G}from"./chunk-FDKE3YW2.js";import{a as C}from"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import"./chunk-BVOZOPDI.js";import{a as L}from"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as w}from"./chunk-JZL634RF.js";import{a as O}from"./chunk-3UAKIC5Y.js";import{b,c as d,d as k}from"./chunk-QEWKHB6D.js";import{d as P}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as H}from"./chunk-7XDW3BZW.js";import{a as l,c as g}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as c}from"./chunk-K36PKEJW.js";import{b as a}from"./chunk-KD2PMTHD.js";import{e as u}from"./chunk-ZUCO5WNM.js";function E(o){let e=o.length,t=new Float64Array(e*3),r=w.createTypedArray(e,e*2),i=0,s=0;for(let n=0;n<e;n++){let p=o[n];t[i++]=p.x,t[i++]=p.y,t[i++]=p.z,r[s++]=n,r[s++]=(n+1)%e}let y=new O({position:new k({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:t})});return new d({attributes:y,indices:r,primitiveType:b.LINES})}function m(o){o=c(o,c.EMPTY_OBJECT);let e=o.polygonHierarchy;a.defined("options.polygonHierarchy",e),this._polygonHierarchy=e,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=f.computeHierarchyPackedLength(e,l)+1}m.fromPositions=function(o){o=c(o,c.EMPTY_OBJECT),a.defined("options.positions",o.positions);let e={polygonHierarchy:{positions:o.positions}};return new m(e)};m.pack=function(o,e,t){return a.typeOf.object("value",o),a.defined("array",e),t=c(t,0),t=f.packPolygonHierarchy(o._polygonHierarchy,e,t,l),e[t]=o.packedLength,e};var v={polygonHierarchy:{}};m.unpack=function(o,e,t){a.defined("array",o),e=c(e,0);let r=f.unpackPolygonHierarchy(o,e,l);e=r.startingIndex,delete r.startingIndex;let i=o[e];return u(t)||(t=new m(v)),t._polygonHierarchy=r,t.packedLength=i,t};m.createGeometry=function(o){let e=o._polygonHierarchy,t=e.positions;if(t=L(t,l.equalsEpsilon,!0),t.length<3||!T.validOutline(t))return;let i=f.polygonOutlinesFromHierarchy(e,!1);if(i.length===0)return;let s=[];for(let p=0;p<i.length;p++){let _=new G({geometry:E(i[p])});s.push(_)}let y=C.combineInstances(s)[0],n=P.fromPoints(e.positions);return new d({attributes:y.attributes,indices:y.indices,primitiveType:y.primitiveType,boundingSphere:n})};var h=m;function A(o,e){return u(e)&&(o=h.unpack(o,e)),o._ellipsoid=g.clone(o._ellipsoid),h.createGeometry(o)}var Z=A;export{Z as default}; diff --git a/libs/cesium/1.111/Workers/createCorridorGeometry.js b/libs/cesium/1.111/Workers/createCorridorGeometry.js new file mode 100644 index 000000000..664d3239b --- /dev/null +++ b/libs/cesium/1.111/Workers/createCorridorGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-C4WD3G7A.js";import{a as ht}from"./chunk-NLQJPKTT.js";import"./chunk-J4D4SQY2.js";import"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import{a as _t}from"./chunk-N52FZRFP.js";import{a as J}from"./chunk-WIRUK4BS.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import{b as yt}from"./chunk-BVOZOPDI.js";import{a as Pt}from"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as Nt}from"./chunk-JZL634RF.js";import{a as Ct}from"./chunk-3UAKIC5Y.js";import{b as Mt,c as Vt,d as x}from"./chunk-QEWKHB6D.js";import{d as St}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{c as Et}from"./chunk-KCIWEUSR.js";import{a as F}from"./chunk-7XDW3BZW.js";import{a as o,b as bt,c as I}from"./chunk-F33YCXD2.js";import{a as st}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as B}from"./chunk-K36PKEJW.js";import{b as it}from"./chunk-KD2PMTHD.js";import{e as X}from"./chunk-ZUCO5WNM.js";var zt=new o,kt=new o,wt=new o,Tt=new o,jt=new o,Ht=new o,at=new o,ft=new o;function Ut(t,e){for(let i=0;i<t.length;i++)t[i]=e.scaleToGeodeticSurface(t[i],t[i]);return t}function Z(t,e,i,l,d,f){let h=t.normals,O=t.tangents,g=t.bitangents,r=o.normalize(o.cross(i,e,at),at);f.normal&&M.addAttribute(h,e,l,d),f.tangent&&M.addAttribute(O,r,l,d),f.bitangent&&M.addAttribute(g,i,l,d)}function Bt(t,e,i){let l=t.positions,d=t.corners,f=t.endPositions,h=t.lefts,O=t.normals,g=new Ct,r,a=0,s=0,n,A=0,u;for(n=0;n<l.length;n+=2)u=l[n].length-3,a+=u,A+=u*2,s+=l[n+1].length-3;for(a+=3,s+=3,n=0;n<d.length;n++){r=d[n];let c=d[n].leftPositions;X(c)?(u=c.length,a+=u,A+=u):(u=d[n].rightPositions.length,s+=u,A+=u)}let b=X(f),p;b&&(p=f[0].length-3,a+=p,s+=p,p/=3,A+=p*6);let R=a+s,m=new Float64Array(R),C=e.normal?new Float32Array(R):void 0,D=e.tangent?new Float32Array(R):void 0,lt=e.bitangent?new Float32Array(R):void 0,z={normals:C,tangents:D,bitangents:lt},y=0,E=R-1,S,V,H,G,P=zt,w=kt,nt,ot,mt=p/2,_=Nt.createTypedArray(R/3,A),T=0;if(b){ot=wt,nt=Tt;let c=f[0];for(P=o.fromArray(O,0,P),w=o.fromArray(h,0,w),n=0;n<mt;n++)ot=o.fromArray(c,(mt-1-n)*3,ot),nt=o.fromArray(c,(mt+n)*3,nt),M.addAttribute(m,nt,y),M.addAttribute(m,ot,void 0,E),Z(z,P,w,y,E,e),V=y/3,G=V+1,S=(E-2)/3,H=S-1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=G,y+=3,E-=3}let At=0,ut=0,rt=l[At++],q=l[At++];m.set(rt,y),m.set(q,E-q.length+1),w=o.fromArray(h,ut,w);let ct,dt;for(u=q.length-3,n=0;n<u;n+=3)ct=i.geodeticSurfaceNormal(o.fromArray(rt,n,at),at),dt=i.geodeticSurfaceNormal(o.fromArray(q,u-n,ft),ft),P=o.normalize(o.add(ct,dt,P),P),Z(z,P,w,y,E,e),V=y/3,G=V+1,S=(E-2)/3,H=S-1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=G,y+=3,E-=3;for(ct=i.geodeticSurfaceNormal(o.fromArray(rt,u,at),at),dt=i.geodeticSurfaceNormal(o.fromArray(q,u,ft),ft),P=o.normalize(o.add(ct,dt,P),P),ut+=3,n=0;n<d.length;n++){let c;r=d[n];let $=r.leftPositions,v=r.rightPositions,L,U,N=Ht,k=wt,Y=Tt;if(P=o.fromArray(O,ut,P),X($)){for(Z(z,P,w,void 0,E,e),E-=3,L=G,U=H,c=0;c<$.length/3;c++)N=o.fromArray($,c*3,N),_[T++]=L,_[T++]=U-c-1,_[T++]=U-c,M.addAttribute(m,N,void 0,E),k=o.fromArray(m,(U-c-1)*3,k),Y=o.fromArray(m,L*3,Y),w=o.normalize(o.subtract(k,Y,w),w),Z(z,P,w,void 0,E,e),E-=3;N=o.fromArray(m,L*3,N),k=o.subtract(o.fromArray(m,U*3,k),N,k),Y=o.subtract(o.fromArray(m,(U-c)*3,Y),N,Y),w=o.normalize(o.add(k,Y,w),w),Z(z,P,w,y,void 0,e),y+=3}else{for(Z(z,P,w,y,void 0,e),y+=3,L=H,U=G,c=0;c<v.length/3;c++)N=o.fromArray(v,c*3,N),_[T++]=L,_[T++]=U+c,_[T++]=U+c+1,M.addAttribute(m,N,y),k=o.fromArray(m,L*3,k),Y=o.fromArray(m,(U+c)*3,Y),w=o.normalize(o.subtract(k,Y,w),w),Z(z,P,w,y,void 0,e),y+=3;N=o.fromArray(m,L*3,N),k=o.subtract(o.fromArray(m,(U+c)*3,k),N,k),Y=o.subtract(o.fromArray(m,U*3,Y),N,Y),w=o.normalize(o.negate(o.add(Y,k,w),w),w),Z(z,P,w,void 0,E,e),E-=3}for(rt=l[At++],q=l[At++],rt.splice(0,3),q.splice(q.length-3,3),m.set(rt,y),m.set(q,E-q.length+1),u=q.length-3,ut+=3,w=o.fromArray(h,ut,w),c=0;c<q.length;c+=3)ct=i.geodeticSurfaceNormal(o.fromArray(rt,c,at),at),dt=i.geodeticSurfaceNormal(o.fromArray(q,u-c,ft),ft),P=o.normalize(o.add(ct,dt,P),P),Z(z,P,w,y,E,e),G=y/3,V=G-1,H=(E-2)/3,S=H+1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=G,y+=3,E-=3;y-=3,E+=3}if(P=o.fromArray(O,O.length-3,P),Z(z,P,w,y,E,e),b){y+=3,E-=3,ot=wt,nt=Tt;let c=f[1];for(n=0;n<mt;n++)ot=o.fromArray(c,(p-n-1)*3,ot),nt=o.fromArray(c,n*3,nt),M.addAttribute(m,ot,void 0,E),M.addAttribute(m,nt,y),Z(z,P,w,y,E,e),G=y/3,V=G-1,H=(E-2)/3,S=H+1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=G,y+=3,E-=3}if(g.position=new x({componentDatatype:F.DOUBLE,componentsPerAttribute:3,values:m}),e.st){let c=new Float32Array(R/3*2),$,v,L=0;if(b){a/=3,s/=3;let U=Math.PI/(p+1);v=1/(a-p+1),$=1/(s-p+1);let N,k=p/2;for(n=k+1;n<p+1;n++)N=st.PI_OVER_TWO+U*n,c[L++]=$*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=1;n<s-p+1;n++)c[L++]=n*$,c[L++]=0;for(n=p;n>k;n--)N=st.PI_OVER_TWO-n*U,c[L++]=1-$*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=k;n>0;n--)N=st.PI_OVER_TWO-U*n,c[L++]=1-v*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=a-p;n>0;n--)c[L++]=n*v,c[L++]=1;for(n=1;n<k+1;n++)N=st.PI_OVER_TWO+U*n,c[L++]=v*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N))}else{for(a/=3,s/=3,v=1/(a-1),$=1/(s-1),n=0;n<s;n++)c[L++]=n*$,c[L++]=0;for(n=a;n>0;n--)c[L++]=(n-1)*v,c[L++]=1}g.st=new x({componentDatatype:F.FLOAT,componentsPerAttribute:2,values:c})}return e.normal&&(g.normal=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:z.normals})),e.tangent&&(g.tangent=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:z.tangents})),e.bitangent&&(g.bitangent=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:z.bitangents})),{attributes:g,indices:_}}function qt(t,e){if(!e.normal&&!e.tangent&&!e.bitangent&&!e.st)return t;let i=t.position.values,l,d;(e.normal||e.bitangent)&&(l=t.normal.values,d=t.bitangent.values);let f=t.position.values.length/18,h=f*3,O=f*2,g=h*2,r;if(e.normal||e.bitangent||e.tangent){let a=e.normal?new Float32Array(h*6):void 0,s=e.tangent?new Float32Array(h*6):void 0,n=e.bitangent?new Float32Array(h*6):void 0,A=zt,u=kt,b=wt,p=Tt,R=jt,m=Ht,C=g;for(r=0;r<h;r+=3){let D=C+g;A=o.fromArray(i,r,A),u=o.fromArray(i,r+h,u),b=o.fromArray(i,(r+3)%h,b),u=o.subtract(u,A,u),b=o.subtract(b,A,b),p=o.normalize(o.cross(u,b,p),p),e.normal&&(M.addAttribute(a,p,D),M.addAttribute(a,p,D+3),M.addAttribute(a,p,C),M.addAttribute(a,p,C+3)),(e.tangent||e.bitangent)&&(m=o.fromArray(l,r,m),e.bitangent&&(M.addAttribute(n,m,D),M.addAttribute(n,m,D+3),M.addAttribute(n,m,C),M.addAttribute(n,m,C+3)),e.tangent&&(R=o.normalize(o.cross(m,p,R),R),M.addAttribute(s,R,D),M.addAttribute(s,R,D+3),M.addAttribute(s,R,C),M.addAttribute(s,R,C+3))),C+=6}if(e.normal){for(a.set(l),r=0;r<h;r+=3)a[r+h]=-l[r],a[r+h+1]=-l[r+1],a[r+h+2]=-l[r+2];t.normal.values=a}else t.normal=void 0;if(e.bitangent?(n.set(d),n.set(d,h),t.bitangent.values=n):t.bitangent=void 0,e.tangent){let D=t.tangent.values;s.set(D),s.set(D,h),t.tangent.values=s}}if(e.st){let a=t.st.values,s=new Float32Array(O*6);s.set(a),s.set(a,O);let n=O*2;for(let A=0;A<2;A++){for(s[n++]=a[0],s[n++]=a[1],r=2;r<O;r+=2){let u=a[r],b=a[r+1];s[n++]=u,s[n++]=b,s[n++]=u,s[n++]=b}s[n++]=a[0],s[n++]=a[1]}t.st.values=s}return t}function Ot(t,e,i){i[e++]=t[0],i[e++]=t[1],i[e++]=t[2];for(let l=3;l<t.length;l+=3){let d=t[l],f=t[l+1],h=t[l+2];i[e++]=d,i[e++]=f,i[e++]=h,i[e++]=d,i[e++]=f,i[e++]=h}return i[e++]=t[0],i[e++]=t[1],i[e++]=t[2],i}function Gt(t,e){let i=new J({position:e.position,normal:e.normal||e.bitangent||t.shadowVolume,tangent:e.tangent,bitangent:e.normal||e.bitangent,st:e.st}),l=t.ellipsoid,d=M.computePositions(t),f=Bt(d,i,l),h=t.height,O=t.extrudedHeight,g=f.attributes,r=f.indices,a=g.position.values,s=a.length,n=new Float64Array(s*6),A=new Float64Array(s);A.set(a);let u=new Float64Array(s*4);a=yt.scaleToGeodeticHeight(a,h,l),u=Ot(a,0,u),A=yt.scaleToGeodeticHeight(A,O,l),u=Ot(A,s*2,u),n.set(a),n.set(A,s),n.set(u,s*2),g.position.values=n,g=qt(g,e);let b,p=s/3;if(t.shadowVolume){let S=g.normal.values;s=S.length;let V=new Float32Array(s*6);for(b=0;b<s;b++)S[b]=-S[b];V.set(S,s),V=Ot(S,s*4,V),g.extrudeDirection=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:V}),e.normal||(g.normal=void 0)}if(X(t.offsetAttribute)){let S=new Uint8Array(p*6);if(t.offsetAttribute===_t.TOP)S=S.fill(1,0,p).fill(1,p*2,p*4);else{let V=t.offsetAttribute===_t.NONE?0:1;S=S.fill(V)}g.applyOffset=new x({componentDatatype:F.UNSIGNED_BYTE,componentsPerAttribute:1,values:S})}let R=r.length,m=p+p,C=Nt.createTypedArray(n.length/3,R*2+m*3);C.set(r);let D=R;for(b=0;b<R;b+=3){let S=r[b],V=r[b+1],H=r[b+2];C[D++]=H+p,C[D++]=V+p,C[D++]=S+p}let lt,z,y,E;for(b=0;b<m;b+=2)lt=b+m,z=lt+m,y=lt+1,E=z+1,C[D++]=lt,C[D++]=z,C[D++]=y,C[D++]=y,C[D++]=z,C[D++]=E;return{attributes:g,indices:C}}var Dt=new o,gt=new o,Q=new bt;function Rt(t,e,i,l,d,f){let h=o.subtract(e,t,Dt);o.normalize(h,h);let O=i.geodeticSurfaceNormal(t,gt),g=o.cross(h,O,Dt);o.multiplyByScalar(g,l,g);let r=d.latitude,a=d.longitude,s=f.latitude,n=f.longitude;o.add(t,g,gt),i.cartesianToCartographic(gt,Q);let A=Q.latitude,u=Q.longitude;r=Math.min(r,A),a=Math.min(a,u),s=Math.max(s,A),n=Math.max(n,u),o.subtract(t,g,gt),i.cartesianToCartographic(gt,Q),A=Q.latitude,u=Q.longitude,r=Math.min(r,A),a=Math.min(a,u),s=Math.max(s,A),n=Math.max(n,u),d.latitude=r,d.longitude=a,f.latitude=s,f.longitude=n}var K=new o,pt=new o,W=new bt,j=new bt;function Yt(t,e,i,l,d){t=Ut(t,e);let f=Pt(t,o.equalsEpsilon),h=f.length;if(h<2||i<=0)return new Et;let O=i*.5;W.latitude=Number.POSITIVE_INFINITY,W.longitude=Number.POSITIVE_INFINITY,j.latitude=Number.NEGATIVE_INFINITY,j.longitude=Number.NEGATIVE_INFINITY;let g,r;if(l===ht.ROUNDED){let n=f[0];o.subtract(n,f[1],K),o.normalize(K,K),o.multiplyByScalar(K,O,K),o.add(n,K,pt),e.cartesianToCartographic(pt,Q),g=Q.latitude,r=Q.longitude,W.latitude=Math.min(W.latitude,g),W.longitude=Math.min(W.longitude,r),j.latitude=Math.max(j.latitude,g),j.longitude=Math.max(j.longitude,r)}for(let n=0;n<h-1;++n)Rt(f[n],f[n+1],e,O,W,j);let a=f[h-1];o.subtract(a,f[h-2],K),o.normalize(K,K),o.multiplyByScalar(K,O,K),o.add(a,K,pt),Rt(a,pt,e,O,W,j),l===ht.ROUNDED&&(e.cartesianToCartographic(pt,Q),g=Q.latitude,r=Q.longitude,W.latitude=Math.min(W.latitude,g),W.longitude=Math.min(W.longitude,r),j.latitude=Math.max(j.latitude,g),j.longitude=Math.max(j.longitude,r));let s=X(d)?d:new Et;return s.north=j.latitude,s.south=W.latitude,s.east=j.longitude,s.west=W.longitude,s}function et(t){t=B(t,B.EMPTY_OBJECT);let e=t.positions,i=t.width;it.defined("options.positions",e),it.defined("options.width",i);let l=B(t.height,0),d=B(t.extrudedHeight,l);this._positions=e,this._ellipsoid=I.clone(B(t.ellipsoid,I.WGS84)),this._vertexFormat=J.clone(B(t.vertexFormat,J.DEFAULT)),this._width=i,this._height=Math.max(l,d),this._extrudedHeight=Math.min(l,d),this._cornerType=B(t.cornerType,ht.ROUNDED),this._granularity=B(t.granularity,st.RADIANS_PER_DEGREE),this._shadowVolume=B(t.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=t.offsetAttribute,this._rectangle=void 0,this.packedLength=1+e.length*o.packedLength+I.packedLength+J.packedLength+7}et.pack=function(t,e,i){it.defined("value",t),it.defined("array",e),i=B(i,0);let l=t._positions,d=l.length;e[i++]=d;for(let f=0;f<d;++f,i+=o.packedLength)o.pack(l[f],e,i);return I.pack(t._ellipsoid,e,i),i+=I.packedLength,J.pack(t._vertexFormat,e,i),i+=J.packedLength,e[i++]=t._width,e[i++]=t._height,e[i++]=t._extrudedHeight,e[i++]=t._cornerType,e[i++]=t._granularity,e[i++]=t._shadowVolume?1:0,e[i]=B(t._offsetAttribute,-1),e};var It=I.clone(I.UNIT_SPHERE),Wt=new J,tt={positions:void 0,ellipsoid:It,vertexFormat:Wt,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};et.unpack=function(t,e,i){it.defined("array",t),e=B(e,0);let l=t[e++],d=new Array(l);for(let u=0;u<l;++u,e+=o.packedLength)d[u]=o.unpack(t,e);let f=I.unpack(t,e,It);e+=I.packedLength;let h=J.unpack(t,e,Wt);e+=J.packedLength;let O=t[e++],g=t[e++],r=t[e++],a=t[e++],s=t[e++],n=t[e++]===1,A=t[e];return X(i)?(i._positions=d,i._ellipsoid=I.clone(f,i._ellipsoid),i._vertexFormat=J.clone(h,i._vertexFormat),i._width=O,i._height=g,i._extrudedHeight=r,i._cornerType=a,i._granularity=s,i._shadowVolume=n,i._offsetAttribute=A===-1?void 0:A,i):(tt.positions=d,tt.width=O,tt.height=g,tt.extrudedHeight=r,tt.cornerType=a,tt.granularity=s,tt.shadowVolume=n,tt.offsetAttribute=A===-1?void 0:A,new et(tt))};et.computeRectangle=function(t,e){t=B(t,B.EMPTY_OBJECT);let i=t.positions,l=t.width;it.defined("options.positions",i),it.defined("options.width",l);let d=B(t.ellipsoid,I.WGS84),f=B(t.cornerType,ht.ROUNDED);return Yt(i,d,l,f,e)};et.createGeometry=function(t){let e=t._positions,i=t._width,l=t._ellipsoid;e=Ut(e,l);let d=Pt(e,o.equalsEpsilon);if(d.length<2||i<=0)return;let f=t._height,h=t._extrudedHeight,O=!st.equalsEpsilon(f,h,0,st.EPSILON2),g=t._vertexFormat,r={ellipsoid:l,positions:d,width:i,cornerType:t._cornerType,granularity:t._granularity,saveAttributes:!0},a;if(O)r.height=f,r.extrudedHeight=h,r.shadowVolume=t._shadowVolume,r.offsetAttribute=t._offsetAttribute,a=Gt(r,g);else{let A=M.computePositions(r);if(a=Bt(A,g,l),a.attributes.position.values=yt.scaleToGeodeticHeight(a.attributes.position.values,f,l),X(t._offsetAttribute)){let u=t._offsetAttribute===_t.NONE?0:1,b=a.attributes.position.values.length,p=new Uint8Array(b/3).fill(u);a.attributes.applyOffset=new x({componentDatatype:F.UNSIGNED_BYTE,componentsPerAttribute:1,values:p})}}let s=a.attributes,n=St.fromVertices(s.position.values,void 0,3);return g.position||(a.attributes.position.values=void 0),new Vt({attributes:s,indices:a.indices,primitiveType:Mt.TRIANGLES,boundingSphere:n,offsetAttribute:t._offsetAttribute})};et.createShadowVolume=function(t,e,i){let l=t._granularity,d=t._ellipsoid,f=e(l,d),h=i(l,d);return new et({positions:t._positions,width:t._width,cornerType:t._cornerType,ellipsoid:d,granularity:l,extrudedHeight:f,height:h,vertexFormat:J.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(et.prototype,{rectangle:{get:function(){return X(this._rectangle)||(this._rectangle=Yt(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var Lt=et;function Jt(t,e){return X(e)&&(t=Lt.unpack(t,e)),t._ellipsoid=I.clone(t._ellipsoid),Lt.createGeometry(t)}var Ae=Jt;export{Ae as default}; diff --git a/libs/cesium/1.111/Workers/createCorridorOutlineGeometry.js b/libs/cesium/1.111/Workers/createCorridorOutlineGeometry.js new file mode 100644 index 000000000..a1dbffc1b --- /dev/null +++ b/libs/cesium/1.111/Workers/createCorridorOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as S}from"./chunk-C4WD3G7A.js";import{a as Q}from"./chunk-NLQJPKTT.js";import"./chunk-J4D4SQY2.js";import"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import{a as W}from"./chunk-N52FZRFP.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import{b as K}from"./chunk-BVOZOPDI.js";import{a as it}from"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as Z}from"./chunk-JZL634RF.js";import{a as et}from"./chunk-3UAKIC5Y.js";import{b as I,c as tt,d as J}from"./chunk-QEWKHB6D.js";import{d as x}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as z}from"./chunk-7XDW3BZW.js";import{a as A,c as P}from"./chunk-F33YCXD2.js";import{a as q}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as H}from"./chunk-K36PKEJW.js";import{b as M}from"./chunk-KD2PMTHD.js";import{e as C}from"./chunk-ZUCO5WNM.js";var ot=new A,nt=new A,rt=new A;function ft(t,i){for(let e=0;e<t.length;e++)t[e]=i.scaleToGeodeticSurface(t[e],t[e]);return t}function st(t,i){let e=[],l=t.positions,h=t.corners,m=t.endPositions,D=new et,y,u=0,p=0,o,g=0,d;for(o=0;o<l.length;o+=2)d=l[o].length-3,u+=d,g+=d/3*4,p+=l[o+1].length-3;for(u+=3,p+=3,o=0;o<h.length;o++){y=h[o];let c=h[o].leftPositions;C(c)?(d=c.length,u+=d,g+=d/3*2):(d=h[o].rightPositions.length,p+=d,g+=d/3*2)}let _=C(m),w;_&&(w=m[0].length-3,u+=w,p+=w,w/=3,g+=w*4);let T=u+p,b=new Float64Array(T),n=0,s=T-1,a,E,L,k,U,O,j=w/2,r=Z.createTypedArray(T/3,g+4),f=0;if(r[f++]=n/3,r[f++]=(s-2)/3,_){e.push(n/3),O=ot,U=nt;let c=m[0];for(o=0;o<j;o++)O=A.fromArray(c,(j-1-o)*3,O),U=A.fromArray(c,(j+o)*3,U),S.addAttribute(b,U,n),S.addAttribute(b,O,void 0,s),E=n/3,k=E+1,a=(s-2)/3,L=a-1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3}let G=0,F=l[G++],N=l[G++];for(b.set(F,n),b.set(N,s-N.length+1),d=N.length-3,e.push(n/3,(s-2)/3),o=0;o<d;o+=3)E=n/3,k=E+1,a=(s-2)/3,L=a-1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3;for(o=0;o<h.length;o++){let c;y=h[o];let Y=y.leftPositions,X=y.rightPositions,v,B=rt;if(C(Y)){for(s-=3,v=L,e.push(k),c=0;c<Y.length/3;c++)B=A.fromArray(Y,c*3,B),r[f++]=v-c-1,r[f++]=v-c,S.addAttribute(b,B,void 0,s),s-=3;e.push(v-Math.floor(Y.length/6)),i===Q.BEVELED&&e.push((s-2)/3+1),n+=3}else{for(n+=3,v=k,e.push(L),c=0;c<X.length/3;c++)B=A.fromArray(X,c*3,B),r[f++]=v+c,r[f++]=v+c+1,S.addAttribute(b,B,n),n+=3;e.push(v+Math.floor(X.length/6)),i===Q.BEVELED&&e.push(n/3-1),s-=3}for(F=l[G++],N=l[G++],F.splice(0,3),N.splice(N.length-3,3),b.set(F,n),b.set(N,s-N.length+1),d=N.length-3,c=0;c<N.length;c+=3)k=n/3,E=k-1,L=(s-2)/3,a=L+1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3;n-=3,s+=3,e.push(n/3,(s-2)/3)}if(_){n+=3,s-=3,O=ot,U=nt;let c=m[1];for(o=0;o<j;o++)O=A.fromArray(c,(w-o-1)*3,O),U=A.fromArray(c,o*3,U),S.addAttribute(b,O,void 0,s),S.addAttribute(b,U,n),k=n/3,E=k-1,L=(s-2)/3,a=L+1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3;e.push(n/3)}else e.push(n/3,(s-2)/3);return r[f++]=n/3,r[f++]=(s-2)/3,D.position=new J({componentDatatype:z.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:D,indices:r,wallIndices:e}}function ct(t){let i=t.ellipsoid,e=S.computePositions(t),l=st(e,t.cornerType),h=l.wallIndices,m=t.height,D=t.extrudedHeight,y=l.attributes,u=l.indices,p=y.position.values,o=p.length,g=new Float64Array(o);g.set(p);let d=new Float64Array(o*2);if(p=K.scaleToGeodeticHeight(p,m,i),g=K.scaleToGeodeticHeight(g,D,i),d.set(p),d.set(g,o),y.position.values=d,o/=3,C(t.offsetAttribute)){let a=new Uint8Array(o*2);if(t.offsetAttribute===W.TOP)a=a.fill(1,0,o);else{let E=t.offsetAttribute===W.NONE?0:1;a=a.fill(E)}y.applyOffset=new J({componentDatatype:z.UNSIGNED_BYTE,componentsPerAttribute:1,values:a})}let _,w=u.length,T=Z.createTypedArray(d.length/3,(w+h.length)*2);T.set(u);let b=w;for(_=0;_<w;_+=2){let a=u[_],E=u[_+1];T[b++]=a+o,T[b++]=E+o}let n,s;for(_=0;_<h.length;_++)n=h[_],s=n+o,T[b++]=n,T[b++]=s;return{attributes:y,indices:T}}function V(t){t=H(t,H.EMPTY_OBJECT);let i=t.positions,e=t.width;M.typeOf.object("options.positions",i),M.typeOf.number("options.width",e);let l=H(t.height,0),h=H(t.extrudedHeight,l);this._positions=i,this._ellipsoid=P.clone(H(t.ellipsoid,P.WGS84)),this._width=e,this._height=Math.max(l,h),this._extrudedHeight=Math.min(l,h),this._cornerType=H(t.cornerType,Q.ROUNDED),this._granularity=H(t.granularity,q.RADIANS_PER_DEGREE),this._offsetAttribute=t.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+i.length*A.packedLength+P.packedLength+6}V.pack=function(t,i,e){M.typeOf.object("value",t),M.typeOf.object("array",i),e=H(e,0);let l=t._positions,h=l.length;i[e++]=h;for(let m=0;m<h;++m,e+=A.packedLength)A.pack(l[m],i,e);return P.pack(t._ellipsoid,i,e),e+=P.packedLength,i[e++]=t._width,i[e++]=t._height,i[e++]=t._extrudedHeight,i[e++]=t._cornerType,i[e++]=t._granularity,i[e]=H(t._offsetAttribute,-1),i};var lt=P.clone(P.UNIT_SPHERE),R={positions:void 0,ellipsoid:lt,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};V.unpack=function(t,i,e){M.typeOf.object("array",t),i=H(i,0);let l=t[i++],h=new Array(l);for(let d=0;d<l;++d,i+=A.packedLength)h[d]=A.unpack(t,i);let m=P.unpack(t,i,lt);i+=P.packedLength;let D=t[i++],y=t[i++],u=t[i++],p=t[i++],o=t[i++],g=t[i];return C(e)?(e._positions=h,e._ellipsoid=P.clone(m,e._ellipsoid),e._width=D,e._height=y,e._extrudedHeight=u,e._cornerType=p,e._granularity=o,e._offsetAttribute=g===-1?void 0:g,e):(R.positions=h,R.width=D,R.height=y,R.extrudedHeight=u,R.cornerType=p,R.granularity=o,R.offsetAttribute=g===-1?void 0:g,new V(R))};V.createGeometry=function(t){let i=t._positions,e=t._width,l=t._ellipsoid;i=ft(i,l);let h=it(i,A.equalsEpsilon);if(h.length<2||e<=0)return;let m=t._height,D=t._extrudedHeight,y=!q.equalsEpsilon(m,D,0,q.EPSILON2),u={ellipsoid:l,positions:h,width:e,cornerType:t._cornerType,granularity:t._granularity,saveAttributes:!1},p;if(y)u.height=m,u.extrudedHeight=D,u.offsetAttribute=t._offsetAttribute,p=ct(u);else{let d=S.computePositions(u);if(p=st(d,u.cornerType),p.attributes.position.values=K.scaleToGeodeticHeight(p.attributes.position.values,m,l),C(t._offsetAttribute)){let _=p.attributes.position.values.length,w=t._offsetAttribute===W.NONE?0:1,T=new Uint8Array(_/3).fill(w);p.attributes.applyOffset=new J({componentDatatype:z.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})}}let o=p.attributes,g=x.fromVertices(o.position.values,void 0,3);return new tt({attributes:o,indices:p.indices,primitiveType:I.LINES,boundingSphere:g,offsetAttribute:t._offsetAttribute})};var $=V;function ht(t,i){return C(i)&&(t=$.unpack(t,i)),t._ellipsoid=P.clone(t._ellipsoid),$.createGeometry(t)}var Ot=ht;export{Ot as default}; diff --git a/libs/cesium/1.111/Workers/createCylinderGeometry.js b/libs/cesium/1.111/Workers/createCylinderGeometry.js new file mode 100644 index 000000000..4b46c114f --- /dev/null +++ b/libs/cesium/1.111/Workers/createCylinderGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-MM64X6QX.js";import"./chunk-AAIHI2WK.js";import"./chunk-N52FZRFP.js";import"./chunk-WIRUK4BS.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as o}from"./chunk-ZUCO5WNM.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/libs/cesium/1.111/Workers/createCylinderOutlineGeometry.js b/libs/cesium/1.111/Workers/createCylinderOutlineGeometry.js new file mode 100644 index 000000000..d50bf256a --- /dev/null +++ b/libs/cesium/1.111/Workers/createCylinderOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-AAIHI2WK.js";import{a as V}from"./chunk-N52FZRFP.js";import{a as N}from"./chunk-JZL634RF.js";import{a as k}from"./chunk-3UAKIC5Y.js";import{b as D,c as P,d as L}from"./chunk-QEWKHB6D.js";import{d as y}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{d as A}from"./chunk-KCIWEUSR.js";import{a as R}from"./chunk-7XDW3BZW.js";import{a as S}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as c}from"./chunk-K36PKEJW.js";import{a as T,b as m}from"./chunk-KD2PMTHD.js";import{e as d}from"./chunk-ZUCO5WNM.js";var w=new A;function a(t){t=c(t,c.EMPTY_OBJECT);let e=t.length,i=t.topRadius,f=t.bottomRadius,o=c(t.slices,128),r=Math.max(c(t.numberOfVerticalLines,16),0);if(m.typeOf.number("options.positions",e),m.typeOf.number("options.topRadius",i),m.typeOf.number("options.bottomRadius",f),m.typeOf.number.greaterThanOrEquals("options.slices",o,3),d(t.offsetAttribute)&&t.offsetAttribute===V.TOP)throw new T("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._length=e,this._topRadius=i,this._bottomRadius=f,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}a.packedLength=6;a.pack=function(t,e,i){return m.typeOf.object("value",t),m.defined("array",e),i=c(i,0),e[i++]=t._length,e[i++]=t._topRadius,e[i++]=t._bottomRadius,e[i++]=t._slices,e[i++]=t._numberOfVerticalLines,e[i]=c(t._offsetAttribute,-1),e};var b={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};a.unpack=function(t,e,i){m.defined("array",t),e=c(e,0);let f=t[e++],o=t[e++],r=t[e++],h=t[e++],l=t[e++],p=t[e];return d(i)?(i._length=f,i._topRadius=o,i._bottomRadius=r,i._slices=h,i._numberOfVerticalLines=l,i._offsetAttribute=p===-1?void 0:p,i):(b.length=f,b.topRadius=o,b.bottomRadius=r,b.slices=h,b.numberOfVerticalLines=l,b.offsetAttribute=p===-1?void 0:p,new a(b))};a.createGeometry=function(t){let e=t._length,i=t._topRadius,f=t._bottomRadius,o=t._slices,r=t._numberOfVerticalLines;if(e<=0||i<0||f<0||i===0&&f===0)return;let h=o*2,l=M.computePositions(e,i,f,o,!1),p=o*2,E;if(r>0){let O=Math.min(r,o);E=Math.round(o/O),p+=O}let s=N.createTypedArray(h,p*2),u=0,n;for(n=0;n<o-1;n++)s[u++]=n,s[u++]=n+1,s[u++]=n+o,s[u++]=n+1+o;if(s[u++]=o-1,s[u++]=0,s[u++]=o+o-1,s[u++]=o,r>0)for(n=0;n<o;n+=E)s[u++]=n,s[u++]=n+o;let _=new k;_.position=new L({componentDatatype:R.DOUBLE,componentsPerAttribute:3,values:l}),w.x=e*.5,w.y=Math.max(f,i);let g=new y(S.ZERO,A.magnitude(w));if(d(t._offsetAttribute)){e=l.length;let O=t._offsetAttribute===V.NONE?0:1,B=new Uint8Array(e/3).fill(O);_.applyOffset=new L({componentDatatype:R.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return new P({attributes:_,indices:s,primitiveType:D.LINES,boundingSphere:g,offsetAttribute:t._offsetAttribute})};var C=a;function G(t,e){return d(e)&&(t=C.unpack(t,e)),C.createGeometry(t)}var et=G;export{et as default}; diff --git a/libs/cesium/1.111/Workers/createEllipseGeometry.js b/libs/cesium/1.111/Workers/createEllipseGeometry.js new file mode 100644 index 000000000..31d244404 --- /dev/null +++ b/libs/cesium/1.111/Workers/createEllipseGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as o}from"./chunk-CEN2FMLA.js";import"./chunk-CN7OWDF4.js";import"./chunk-FDKE3YW2.js";import"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import"./chunk-N52FZRFP.js";import"./chunk-WIRUK4BS.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as t,c}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as n}from"./chunk-ZUCO5WNM.js";function a(r,i){return n(i)&&(r=o.unpack(r,i)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),o.createGeometry(r)}var u=a;export{u as default}; diff --git a/libs/cesium/1.111/Workers/createEllipseOutlineGeometry.js b/libs/cesium/1.111/Workers/createEllipseOutlineGeometry.js new file mode 100644 index 000000000..1654673bb --- /dev/null +++ b/libs/cesium/1.111/Workers/createEllipseOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as i}from"./chunk-A7HHFHR4.js";import"./chunk-CN7OWDF4.js";import"./chunk-N52FZRFP.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as t,c}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as o}from"./chunk-ZUCO5WNM.js";function a(r,n){return o(n)&&(r=i.unpack(r,n)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),i.createGeometry(r)}var p=a;export{p as default}; diff --git a/libs/cesium/1.111/Workers/createEllipsoidGeometry.js b/libs/cesium/1.111/Workers/createEllipsoidGeometry.js new file mode 100644 index 000000000..6541f0acf --- /dev/null +++ b/libs/cesium/1.111/Workers/createEllipsoidGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-Y664VY52.js";import"./chunk-N52FZRFP.js";import"./chunk-WIRUK4BS.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as o}from"./chunk-ZUCO5WNM.js";function i(r,t){return o(t)&&(r=e.unpack(r,t)),e.createGeometry(r)}var a=i;export{a as default}; diff --git a/libs/cesium/1.111/Workers/createEllipsoidOutlineGeometry.js b/libs/cesium/1.111/Workers/createEllipsoidOutlineGeometry.js new file mode 100644 index 000000000..86f607ac4 --- /dev/null +++ b/libs/cesium/1.111/Workers/createEllipsoidOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-DEMPH3MF.js";import"./chunk-N52FZRFP.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as n}from"./chunk-ZUCO5WNM.js";function u(r,e){return n(r.buffer,e)&&(r=t.unpack(r,e)),t.createGeometry(r)}var a=u;export{a as default}; diff --git a/libs/cesium/1.111/Workers/createFrustumGeometry.js b/libs/cesium/1.111/Workers/createFrustumGeometry.js new file mode 100644 index 000000000..98877a2d5 --- /dev/null +++ b/libs/cesium/1.111/Workers/createFrustumGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{c as r}from"./chunk-QP27TPWQ.js";import"./chunk-WIRUK4BS.js";import"./chunk-AAJ456AA.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as o}from"./chunk-ZUCO5WNM.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/libs/cesium/1.111/Workers/createFrustumOutlineGeometry.js b/libs/cesium/1.111/Workers/createFrustumOutlineGeometry.js new file mode 100644 index 000000000..445ad41cc --- /dev/null +++ b/libs/cesium/1.111/Workers/createFrustumOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as k,b as _,c as j}from"./chunk-QP27TPWQ.js";import"./chunk-WIRUK4BS.js";import"./chunk-AAJ456AA.js";import{a as A}from"./chunk-3UAKIC5Y.js";import{b as N,c as g,d as F}from"./chunk-QEWKHB6D.js";import{d as T,f as s}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as b}from"./chunk-7XDW3BZW.js";import{a}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as d}from"./chunk-K36PKEJW.js";import{b as h}from"./chunk-KD2PMTHD.js";import{e as w}from"./chunk-ZUCO5WNM.js";var L=0,C=1;function l(e){h.typeOf.object("options",e),h.typeOf.object("options.frustum",e.frustum),h.typeOf.object("options.origin",e.origin),h.typeOf.object("options.orientation",e.orientation);let t=e.frustum,o=e.orientation,u=e.origin,c=d(e._drawNearPlane,!0),m,p;t instanceof _?(m=L,p=_.packedLength):t instanceof k&&(m=C,p=k.packedLength),this._frustumType=m,this._frustum=t.clone(),this._origin=a.clone(u),this._orientation=s.clone(o),this._drawNearPlane=c,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+p+a.packedLength+s.packedLength}l.pack=function(e,t,o){h.typeOf.object("value",e),h.defined("array",t),o=d(o,0);let u=e._frustumType,c=e._frustum;return t[o++]=u,u===L?(_.pack(c,t,o),o+=_.packedLength):(k.pack(c,t,o),o+=k.packedLength),a.pack(e._origin,t,o),o+=a.packedLength,s.pack(e._orientation,t,o),o+=s.packedLength,t[o]=e._drawNearPlane?1:0,t};var E=new _,G=new k,R=new s,S=new a;l.unpack=function(e,t,o){h.defined("array",e),t=d(t,0);let u=e[t++],c;u===L?(c=_.unpack(e,t,E),t+=_.packedLength):(c=k.unpack(e,t,G),t+=k.packedLength);let m=a.unpack(e,t,S);t+=a.packedLength;let p=s.unpack(e,t,R);t+=s.packedLength;let P=e[t]===1;if(!w(o))return new l({frustum:c,origin:m,orientation:p,_drawNearPlane:P});let n=u===o._frustumType?o._frustum:void 0;return o._frustum=c.clone(n),o._frustumType=u,o._origin=a.clone(m,o._origin),o._orientation=s.clone(p,o._orientation),o._drawNearPlane=P,o};l.createGeometry=function(e){let t=e._frustumType,o=e._frustum,u=e._origin,c=e._orientation,m=e._drawNearPlane,p=new Float64Array(3*4*2);j._computeNearFarPlanes(u,c,t,o,p);let P=new A({position:new F({componentDatatype:b.DOUBLE,componentsPerAttribute:3,values:p})}),n,r,y=m?2:1,i=new Uint16Array(8*(y+1)),f=m?0:1;for(;f<2;++f)n=m?f*8:0,r=f*4,i[n]=r,i[n+1]=r+1,i[n+2]=r+1,i[n+3]=r+2,i[n+4]=r+2,i[n+5]=r+3,i[n+6]=r+3,i[n+7]=r;for(f=0;f<2;++f)n=(y+f)*8,r=f*4,i[n]=r,i[n+1]=r+4,i[n+2]=r+1,i[n+3]=r+5,i[n+4]=r+2,i[n+5]=r+6,i[n+6]=r+3,i[n+7]=r+7;return new g({attributes:P,indices:i,primitiveType:N.LINES,boundingSphere:T.fromVertices(p)})};var O=l;function D(e,t){return w(t)&&(e=O.unpack(e,t)),O.createGeometry(e)}var I=D;export{I as default}; diff --git a/libs/cesium/1.111/Workers/createGeometry.js b/libs/cesium/1.111/Workers/createGeometry.js new file mode 100644 index 000000000..db92c7392 --- /dev/null +++ b/libs/cesium/1.111/Workers/createGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as p}from"./chunk-4H3LC6HP.js";import{a as y}from"./chunk-4M7FKQYC.js";import"./chunk-4XIXQUKW.js";import"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{a as f,b as m,e as i}from"./chunk-ZUCO5WNM.js";var b=m({"./combineGeometry.js":()=>import("./combineGeometry.js"),"./createBoxGeometry.js":()=>import("./createBoxGeometry.js"),"./createBoxOutlineGeometry.js":()=>import("./createBoxOutlineGeometry.js"),"./createCircleGeometry.js":()=>import("./createCircleGeometry.js"),"./createCircleOutlineGeometry.js":()=>import("./createCircleOutlineGeometry.js"),"./createCoplanarPolygonGeometry.js":()=>import("./createCoplanarPolygonGeometry.js"),"./createCoplanarPolygonOutlineGeometry.js":()=>import("./createCoplanarPolygonOutlineGeometry.js"),"./createCorridorGeometry.js":()=>import("./createCorridorGeometry.js"),"./createCorridorOutlineGeometry.js":()=>import("./createCorridorOutlineGeometry.js"),"./createCylinderGeometry.js":()=>import("./createCylinderGeometry.js"),"./createCylinderOutlineGeometry.js":()=>import("./createCylinderOutlineGeometry.js"),"./createEllipseGeometry.js":()=>import("./createEllipseGeometry.js"),"./createEllipseOutlineGeometry.js":()=>import("./createEllipseOutlineGeometry.js"),"./createEllipsoidGeometry.js":()=>import("./createEllipsoidGeometry.js"),"./createEllipsoidOutlineGeometry.js":()=>import("./createEllipsoidOutlineGeometry.js"),"./createFrustumGeometry.js":()=>import("./createFrustumGeometry.js"),"./createFrustumOutlineGeometry.js":()=>import("./createFrustumOutlineGeometry.js"),"./createGeometry.js":()=>import("./createGeometry.js"),"./createGroundPolylineGeometry.js":()=>import("./createGroundPolylineGeometry.js"),"./createPlaneGeometry.js":()=>import("./createPlaneGeometry.js"),"./createPlaneOutlineGeometry.js":()=>import("./createPlaneOutlineGeometry.js"),"./createPolygonGeometry.js":()=>import("./createPolygonGeometry.js"),"./createPolygonOutlineGeometry.js":()=>import("./createPolygonOutlineGeometry.js"),"./createPolylineGeometry.js":()=>import("./createPolylineGeometry.js"),"./createPolylineVolumeGeometry.js":()=>import("./createPolylineVolumeGeometry.js"),"./createPolylineVolumeOutlineGeometry.js":()=>import("./createPolylineVolumeOutlineGeometry.js"),"./createRectangleGeometry.js":()=>import("./createRectangleGeometry.js"),"./createRectangleOutlineGeometry.js":()=>import("./createRectangleOutlineGeometry.js"),"./createSimplePolylineGeometry.js":()=>import("./createSimplePolylineGeometry.js"),"./createSphereGeometry.js":()=>import("./createSphereGeometry.js"),"./createSphereOutlineGeometry.js":()=>import("./createSphereOutlineGeometry.js"),"./createTaskProcessorWorker.js":()=>import("./createTaskProcessorWorker.js"),"./createVectorTileClampedPolylines.js":()=>import("./createVectorTileClampedPolylines.js"),"./createVectorTileGeometries.js":()=>import("./createVectorTileGeometries.js"),"./createVectorTilePoints.js":()=>import("./createVectorTilePoints.js"),"./createVectorTilePolygons.js":()=>import("./createVectorTilePolygons.js"),"./createVectorTilePolylines.js":()=>import("./createVectorTilePolylines.js"),"./createVerticesFromGoogleEarthEnterpriseBuffer.js":()=>import("./createVerticesFromGoogleEarthEnterpriseBuffer.js"),"./createVerticesFromHeightmap.js":()=>import("./createVerticesFromHeightmap.js"),"./createVerticesFromQuantizedTerrainMesh.js":()=>import("./createVerticesFromQuantizedTerrainMesh.js"),"./createWallGeometry.js":()=>import("./createWallGeometry.js"),"./createWallOutlineGeometry.js":()=>import("./createWallOutlineGeometry.js"),"./decodeDraco.js":()=>import("./decodeDraco.js"),"./decodeGoogleEarthEnterprisePacket.js":()=>import("./decodeGoogleEarthEnterprisePacket.js"),"./decodeI3S.js":()=>import("./decodeI3S.js"),"./transcodeKTX2.js":()=>import("./transcodeKTX2.js"),"./transferTypedArrayTest.js":()=>import("./transferTypedArrayTest.js"),"./upsampleQuantizedTerrainMesh.js":()=>import("./upsampleQuantizedTerrainMesh.js")});var c={};async function k(r){let e=c[r];return i(e)||(typeof exports=="object"?c[e]=e=f(`Workers/${r}`):(e=(await b(`./${r}.js`)).default,c[e]=e)),e}async function g(r,e){let o=r.subTasks,l=o.length,s=new Array(l);for(let t=0;t<l;t++){let n=o[t],u=n.geometry,a=n.moduleName;i(a)?s[t]=k(a).then(d=>d(u,n.offset)):s[t]=u}return Promise.all(s).then(function(t){return p.packCreateGeometryResults(t,e)})}var C=y(g);export{C as default}; diff --git a/libs/cesium/1.111/Workers/createGroundPolylineGeometry.js b/libs/cesium/1.111/Workers/createGroundPolylineGeometry.js new file mode 100644 index 000000000..9d569abc7 --- /dev/null +++ b/libs/cesium/1.111/Workers/createGroundPolylineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as _e}from"./chunk-4XIXQUKW.js";import{a as Z}from"./chunk-6FTJPHAD.js";import{a as _t}from"./chunk-V6ZHITEJ.js";import{a as Oe}from"./chunk-YXVAQU2G.js";import{a as Le}from"./chunk-EFCSU2FF.js";import{a as te}from"./chunk-BSXS3UVL.js";import{b as Qt}from"./chunk-OH4CN3UY.js";import{a as jt}from"./chunk-AAJ456AA.js";import{c as Ce,d as zt}from"./chunk-QEWKHB6D.js";import{a as Pt,d as U,f as Kt,g as xe,h as Ne}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{c as G,d as Bt}from"./chunk-KCIWEUSR.js";import{a as vt}from"./chunk-7XDW3BZW.js";import{a as t,b as u,c as z,d as bt}from"./chunk-F33YCXD2.js";import{a as p}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as O}from"./chunk-K36PKEJW.js";import{a as St,b as et}from"./chunk-KD2PMTHD.js";import{e as g}from"./chunk-ZUCO5WNM.js";function rt(e){e=O(e,O.EMPTY_OBJECT),this._ellipsoid=O(e.ellipsoid,z.WGS84),this._rectangle=O(e.rectangle,G.MAX_VALUE),this._projection=new Pt(this._ellipsoid),this._numberOfLevelZeroTilesX=O(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=O(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(rt.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});rt.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};rt.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};rt.prototype.rectangleToNativeRectangle=function(e,i){et.defined("rectangle",e);let r=p.toDegrees(e.west),n=p.toDegrees(e.south),o=p.toDegrees(e.east),a=p.toDegrees(e.north);return g(i)?(i.west=r,i.south=n,i.east=o,i.north=a,i):new G(r,n,o,a)};rt.prototype.tileXYToNativeRectangle=function(e,i,r,n){let o=this.tileXYToRectangle(e,i,r,n);return o.west=p.toDegrees(o.west),o.south=p.toDegrees(o.south),o.east=p.toDegrees(o.east),o.north=p.toDegrees(o.north),o};rt.prototype.tileXYToRectangle=function(e,i,r,n){let o=this._rectangle,a=this.getNumberOfXTilesAtLevel(r),c=this.getNumberOfYTilesAtLevel(r),l=o.width/a,s=e*l+o.west,d=(e+1)*l+o.west,h=o.height/c,N=o.north-i*h,S=o.north-(i+1)*h;return g(n)||(n=new G(s,S,d,N)),n.west=s,n.south=S,n.east=d,n.north=N,n};rt.prototype.positionToTileXY=function(e,i,r){let n=this._rectangle;if(!G.contains(n,e))return;let o=this.getNumberOfXTilesAtLevel(i),a=this.getNumberOfYTilesAtLevel(i),c=n.width/o,l=n.height/a,s=e.longitude;n.east<n.west&&(s+=p.TWO_PI);let d=(s-n.west)/c|0;d>=o&&(d=o-1);let h=(n.north-e.latitude)/l|0;return h>=a&&(h=a-1),g(r)?(r.x=d,r.y=h,r):new Bt(d,h)};var De=rt;var Ie=new t,He=new t,ke=new u,ee=new t,hn=new t,ye=new U,pn=new De,Lt=[new u,new u,new u,new u],Ot=new Bt,w={};w.initialize=function(){let e=w._initPromise;return g(e)||(e=xe.fetchJson(Ne("Assets/approximateTerrainHeights.json")).then(function(i){w._terrainHeights=i}),w._initPromise=e),e};w.getMinimumMaximumHeights=function(e,i){if(et.defined("rectangle",e),!g(w._terrainHeights))throw new St("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");i=O(i,z.WGS84);let r=Ae(e),n=w._defaultMinTerrainHeight,o=w._defaultMaxTerrainHeight;if(g(r)){let a=`${r.level}-${r.x}-${r.y}`,c=w._terrainHeights[a];g(c)&&(n=c[0],o=c[1]),i.cartographicToCartesian(G.northeast(e,ke),Ie),i.cartographicToCartesian(G.southwest(e,ke),He),t.midpoint(He,Ie,ee);let l=i.scaleToGeodeticSurface(ee,hn);if(g(l)){let s=t.distance(ee,l);n=Math.min(n,-s)}else n=w._defaultMinTerrainHeight}return n=Math.max(w._defaultMinTerrainHeight,n),{minimumTerrainHeight:n,maximumTerrainHeight:o}};w.getBoundingSphere=function(e,i){if(et.defined("rectangle",e),!g(w._terrainHeights))throw new St("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");i=O(i,z.WGS84);let r=Ae(e),n=w._defaultMaxTerrainHeight;if(g(r)){let a=`${r.level}-${r.x}-${r.y}`,c=w._terrainHeights[a];g(c)&&(n=c[1])}let o=U.fromRectangle3D(e,i,0);return U.fromRectangle3D(e,i,n,ye),U.union(o,ye,o)};function Ae(e){u.fromRadians(e.east,e.north,0,Lt[0]),u.fromRadians(e.west,e.north,0,Lt[1]),u.fromRadians(e.east,e.south,0,Lt[2]),u.fromRadians(e.west,e.south,0,Lt[3]);let i=0,r=0,n=0,o=0,a=w._terrainHeightsMaxLevel,c;for(c=0;c<=a;++c){let l=!1;for(let s=0;s<4;++s){let d=Lt[s];if(pn.positionToTileXY(d,c,Ot),s===0)n=Ot.x,o=Ot.y;else if(n!==Ot.x||o!==Ot.y){l=!0;break}}if(l)break;i=n,r=o}if(c!==0)return{x:i,y:r,level:c>a?a:c-1}}w._terrainHeightsMaxLevel=6;w._defaultMaxTerrainHeight=9e3;w._defaultMinTerrainHeight=-1e5;w._terrainHeights=void 0;w._initPromise=void 0;Object.defineProperties(w,{initialized:{get:function(){return g(w._terrainHeights)}}});var Xt=w;var le=[Pt,_e],dn=le.length,Ke=Math.cos(p.toRadians(30)),Me=Math.cos(p.toRadians(150)),Qe=0,tn=1e3;function ct(e){e=O(e,O.EMPTY_OBJECT);let i=e.positions;if(!g(i)||i.length<2)throw new St("At least two positions are required.");if(g(e.arcType)&&e.arcType!==Z.GEODESIC&&e.arcType!==Z.RHUMB)throw new St("Valid options for arcType are ArcType.GEODESIC and ArcType.RHUMB.");this.width=O(e.width,1),this._positions=i,this.granularity=O(e.granularity,9999),this.loop=O(e.loop,!1),this.arcType=O(e.arcType,Z.GEODESIC),this._ellipsoid=z.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(ct.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+z.packedLength+1+1}}});ct.setProjectionAndEllipsoid=function(e,i){let r=0;for(let n=0;n<dn;n++)if(i instanceof le[n]){r=n;break}e._projectionIndex=r,e._ellipsoid=i.ellipsoid};var fn=new t,Re=new t,Pe=new t;function se(e,i,r,n,o){let a=P(n,e,0,fn),c=P(n,e,r,Re),l=P(n,i,0,Pe),s=nt(c,a,Re),d=nt(l,a,Pe);return t.cross(d,s,o),t.normalize(o,o)}var mn=new u,gn=new t,un=new t,wn=new t;function ne(e,i,r,n,o,a,c,l,s,d,h){if(o===0)return;let N;a===Z.GEODESIC?N=new Oe(e,i,c):a===Z.RHUMB&&(N=new te(e,i,c));let S=N.surfaceDistance;if(S<o)return;let R=se(e,i,n,c,wn),D=Math.ceil(S/o),I=S/D,j=I,W=D-1,f=l.length;for(let X=0;X<W;X++){let v=N.interpolateUsingSurfaceDistance(j,mn),y=P(c,v,r,gn),H=P(c,v,n,un);t.pack(R,l,f),t.pack(y,s,f),t.pack(H,d,f),h.push(v.latitude),h.push(v.longitude),f+=3,j+=I}}var oe=new u;function P(e,i,r,n){return u.clone(i,oe),oe.height=r,u.toCartesian(oe,e,n)}ct.pack=function(e,i,r){et.typeOf.object("value",e),et.defined("array",i);let n=O(r,0),o=e._positions,a=o.length;i[n++]=a;for(let c=0;c<a;++c){let l=o[c];t.pack(l,i,n),n+=3}return i[n++]=e.granularity,i[n++]=e.loop?1:0,i[n++]=e.arcType,z.pack(e._ellipsoid,i,n),n+=z.packedLength,i[n++]=e._projectionIndex,i[n++]=e._scene3DOnly?1:0,i};ct.unpack=function(e,i,r){et.defined("array",e);let n=O(i,0),o=e[n++],a=new Array(o);for(let S=0;S<o;S++)a[S]=t.unpack(e,n),n+=3;let c=e[n++],l=e[n++]===1,s=e[n++],d=z.unpack(e,n);n+=z.packedLength;let h=e[n++],N=e[n++]===1;return g(r)||(r=new ct({positions:a})),r._positions=a,r.granularity=c,r.loop=l,r.arcType=s,r._ellipsoid=d,r._projectionIndex=h,r._scene3DOnly=N,r};function nt(e,i,r){return t.subtract(e,i,r),t.normalize(r,r),r}function be(e,i,r,n){return n=nt(e,i,n),n=t.cross(n,r,n),n=t.normalize(n,n),n=t.cross(r,n,n),n}var Sn=new t,Tn=new t,En=new t,en=new t,xn=0,Nn=-1;function ie(e,i,r,n,o){let a=nt(r,i,en),c=be(e,i,a,Sn),l=be(n,i,a,Tn);if(p.equalsEpsilon(t.dot(c,l),Nn,p.EPSILON5))return o=t.cross(a,c,o),o=t.normalize(o,o),o;o=t.add(l,c,o),o=t.normalize(o,o);let s=t.cross(a,o,En);return t.dot(l,s)<xn&&(o=t.negate(o,o)),o}var Ut=jt.fromPointNormal(t.ZERO,t.UNIT_Y),Cn=new t,_n=new t,Ln=new t,On=new t,Dn=new t,Yt=new t,Ft=new u,ve=new u,Be=new u;ct.createGeometry=function(e){let i=!e._scene3DOnly,r=e.loop,n=e._ellipsoid,o=e.granularity,a=e.arcType,c=new le[e._projectionIndex](n),l=Qe,s=tn,d,h,N=e._positions,S=N.length;S===2&&(r=!1);let R,D,I,j,W=new te(void 0,void 0,n),f,X,v,y=[N[0]];for(h=0;h<S-1;h++)R=N[h],D=N[h+1],f=Qt.lineSegmentPlane(R,D,Ut,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&(e.arcType===Z.GEODESIC?y.push(t.clone(f)):e.arcType===Z.RHUMB&&(v=n.cartesianToCartographic(f,Ft).longitude,I=n.cartesianToCartographic(R,Ft),j=n.cartesianToCartographic(D,ve),W.setEndPoints(I,j),X=W.findIntersectionWithLongitude(v,Be),f=n.cartographicToCartesian(X,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&y.push(t.clone(f)))),y.push(D);r&&(R=N[S-1],D=N[0],f=Qt.lineSegmentPlane(R,D,Ut,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&(e.arcType===Z.GEODESIC?y.push(t.clone(f)):e.arcType===Z.RHUMB&&(v=n.cartesianToCartographic(f,Ft).longitude,I=n.cartesianToCartographic(R,Ft),j=n.cartesianToCartographic(D,ve),W.setEndPoints(I,j),X=W.findIntersectionWithLongitude(v,Be),f=n.cartographicToCartesian(X,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&y.push(t.clone(f)))));let H=y.length,C=new Array(H);for(h=0;h<H;h++){let F=u.fromCartesian(y[h],n);F.height=0,C[h]=F}if(C=Le(C,u.equalsEpsilon),H=C.length,H<2)return;let k=[],b=[],B=[],E=[],x=Cn,L=_n,_=Ln,Y=On,A=Dn,m=C[0],V=C[1],It=C[H-1];for(x=P(n,It,l,x),Y=P(n,V,l,Y),L=P(n,m,l,L),_=P(n,m,s,_),r?A=ie(x,L,_,Y,A):A=se(m,V,s,n,A),t.pack(A,b,0),t.pack(L,B,0),t.pack(_,E,0),k.push(m.latitude),k.push(m.longitude),ne(m,V,l,s,o,a,n,b,B,E,k),h=1;h<H-1;++h){x=t.clone(L,x),L=t.clone(Y,L);let F=C[h];P(n,F,s,_),P(n,C[h+1],l,Y),ie(x,L,_,Y,A),d=b.length,t.pack(A,b,d),t.pack(L,B,d),t.pack(_,E,d),k.push(F.latitude),k.push(F.longitude),ne(C[h],C[h+1],l,s,o,a,n,b,B,E,k)}let M=C[H-1],Tt=C[H-2];if(L=P(n,M,l,L),_=P(n,M,s,_),r){let F=C[0];x=P(n,Tt,l,x),Y=P(n,F,l,Y),A=ie(x,L,_,Y,A)}else A=se(Tt,M,s,n,A);if(d=b.length,t.pack(A,b,d),t.pack(L,B,d),t.pack(_,E,d),k.push(M.latitude),k.push(M.longitude),r){for(ne(M,m,l,s,o,a,n,b,B,E,k),d=b.length,h=0;h<3;++h)b[d+h]=b[h],B[d+h]=B[h],E[d+h]=E[h];k.push(m.latitude),k.push(m.longitude)}return Qn(r,c,B,E,b,k,i)};var In=new t,Hn=new bt,kn=new Kt;function ze(e,i,r,n){let o=nt(r,i,In),a=t.dot(o,e);if(a>Ke||a<Me){let c=nt(n,r,en),l=a<Me?p.PI_OVER_TWO:-p.PI_OVER_TWO,s=Kt.fromAxisAngle(c,l,kn),d=bt.fromQuaternion(s,Hn);return bt.multiplyByVector(d,e,e),!0}return!1}var je=new u,yn=new t,Xe=new t;function Dt(e,i,r,n,o){let a=u.toCartesian(i,e._ellipsoid,yn),c=t.add(a,r,Xe),l=!1,s=e._ellipsoid,d=s.cartesianToCartographic(c,je);Math.abs(i.longitude-d.longitude)>p.PI_OVER_TWO&&(l=!0,c=t.subtract(a,r,Xe),d=s.cartesianToCartographic(c,je)),d.height=0;let h=e.project(d,o);return o=t.subtract(h,n,o),o.z=0,o=t.normalize(o,o),l&&t.negate(o,o),o}var An=new t,Ye=new t;function Fe(e,i,r,n,o,a){let c=t.subtract(i,e,An);t.normalize(c,c);let l=r-Qe,s=t.multiplyByScalar(c,l,Ye);t.add(e,s,o);let d=n-tn;s=t.multiplyByScalar(c,d,Ye),t.add(i,s,a)}var Mn=new t;function Gt(e,i){let r=jt.getPointDistance(Ut,e),n=jt.getPointDistance(Ut,i),o=Mn;p.equalsEpsilon(r,0,p.EPSILON2)?(o=nt(i,e,o),t.multiplyByScalar(o,p.EPSILON2,o),t.add(e,o,e)):p.equalsEpsilon(n,0,p.EPSILON2)&&(o=nt(e,i,o),t.multiplyByScalar(o,p.EPSILON2,o),t.add(i,o,i))}function Rn(e,i){let r=Math.abs(e.longitude),n=Math.abs(i.longitude);if(p.equalsEpsilon(r,p.PI,p.EPSILON11)){let o=p.sign(i.longitude);return e.longitude=o*(r-p.EPSILON11),1}else if(p.equalsEpsilon(n,p.PI,p.EPSILON11)){let o=p.sign(e.longitude);return i.longitude=o*(n-p.EPSILON11),2}return 0}var nn=new u,on=new u,Ge=new t,re=new t,Ue=new t,We=new t,Pn=new t,qe=new t,bn=[nn,on],vn=new G,Bn=new t,zn=new t,jn=new t,Xn=new t,Yn=new t,Fn=new t,ae=new t,ce=new t,Gn=new t,Un=new t,Wn=new t,Ze=new t,qn=new t,Zn=new t,Vn=new _t,$n=new _t,Ve=new t,Jn=new t,$e=new t,Kn=[new U,new U],rn=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],Je=rn.length;function Qn(e,i,r,n,o,a,c){let l,s,d=i._ellipsoid,h=r.length/3-1,N=h*8,S=N*4,R=h*36,D=N>65535?new Uint32Array(R):new Uint16Array(R),I=new Float64Array(N*3),j=new Float32Array(S),W=new Float32Array(S),f=new Float32Array(S),X=new Float32Array(S),v=new Float32Array(S),y,H,C,k;c&&(y=new Float32Array(S),H=new Float32Array(S),C=new Float32Array(S),k=new Float32Array(N*2));let b=a.length/2,B=0,E=nn;E.height=0;let x=on;x.height=0;let L=Ge,_=re;if(c)for(s=0,l=1;l<b;l++)E.latitude=a[s],E.longitude=a[s+1],x.latitude=a[s+2],x.longitude=a[s+3],L=i.project(E,L),_=i.project(x,_),B+=t.distance(L,_),s+=2;let Y=n.length/3;_=t.unpack(n,0,_);let A=0;for(s=3,l=1;l<Y;l++)L=t.clone(_,L),_=t.unpack(n,s,_),A+=t.distance(L,_),s+=3;let m;s=3;let V=0,It=0,M=0,Tt=0,F=!1,st=t.unpack(r,0,We),lt=t.unpack(n,0,re),q=t.unpack(o,0,qe);if(e){let ht=t.unpack(r,r.length-6,Ue);ze(q,ht,st,lt)&&(q=t.negate(q,q))}let pe=0,de=0,Wt=0;for(l=0;l<h;l++){let ht=t.clone(st,Ue),Zt=t.clone(lt,Ge),mt=t.clone(q,Pn);F&&(mt=t.negate(mt,mt)),st=t.unpack(r,s,We),lt=t.unpack(n,s,re),q=t.unpack(o,s,qe),F=ze(q,ht,st,lt),E.latitude=a[V],E.longitude=a[V+1],x.latitude=a[V+2],x.longitude=a[V+3];let pt,gt,ot,it;if(c){let T=Rn(E,x);pt=i.project(E,Yn),gt=i.project(x,Fn);let wt=nt(gt,pt,Ve);wt.y=Math.abs(wt.y),ot=ae,it=ce,T===0||t.dot(wt,t.UNIT_Y)>Ke?(ot=Dt(i,E,mt,pt,ae),it=Dt(i,x,q,gt,ce)):T===1?(it=Dt(i,x,q,gt,ce),ot.x=0,ot.y=p.sign(E.longitude-Math.abs(x.longitude)),ot.z=0):(ot=Dt(i,E,mt,pt,ae),it.x=0,it.y=p.sign(E.longitude-x.longitude),it.z=0)}let ge=t.distance(Zt,lt),ue=_t.fromCartesian(ht,Vn),Ht=t.subtract(st,ht,Gn),an=t.normalize(Ht,Ze),xt=t.subtract(Zt,ht,Un);xt=t.normalize(xt,xt);let ut=t.cross(an,xt,Ze);ut=t.normalize(ut,ut);let kt=t.cross(xt,mt,qn);kt=t.normalize(kt,kt);let yt=t.subtract(lt,st,Wn);yt=t.normalize(yt,yt);let At=t.cross(q,yt,Zn);At=t.normalize(At,At);let cn=ge/A,sn=pe/A,Vt=0,Nt,Mt,dt,we=0,Se=0;if(c){Vt=t.distance(pt,gt),Nt=_t.fromCartesian(pt,$n),Mt=t.subtract(gt,pt,Ve),dt=t.normalize(Mt,Jn);let T=dt.x;dt.x=dt.y,dt.y=-T,we=Vt/B,Se=de/B}for(m=0;m<8;m++){let T=Tt+m*4,wt=It+m*2,Ct=T+3,Ee=m<4?1:-1,Rt=m===2||m===3||m===6||m===7?1:-1;t.pack(ue.high,j,T),j[Ct]=Ht.x,t.pack(ue.low,W,T),W[Ct]=Ht.y,t.pack(kt,f,T),f[Ct]=Ht.z,t.pack(At,X,T),X[Ct]=cn*Ee,t.pack(ut,v,T);let ft=sn*Rt;ft===0&&Rt<0&&(ft=9),v[Ct]=ft,c&&(y[T]=Nt.high.x,y[T+1]=Nt.high.y,y[T+2]=Nt.low.x,y[T+3]=Nt.low.y,C[T]=-ot.y,C[T+1]=ot.x,C[T+2]=it.y,C[T+3]=-it.x,H[T]=Mt.x,H[T+1]=Mt.y,H[T+2]=dt.x,H[T+3]=dt.y,k[wt]=we*Ee,ft=Se*Rt,ft===0&&Rt<0&&(ft=9),k[wt+1]=ft)}let $=jn,J=Xn,K=Bn,Q=zn,ln=G.fromCartographicArray(bn,vn),Te=Xt.getMinimumMaximumHeights(ln,d),$t=Te.minimumTerrainHeight,Jt=Te.maximumTerrainHeight;Wt+=Math.abs($t),Wt+=Math.abs(Jt),Fe(ht,Zt,$t,Jt,$,K),Fe(st,lt,$t,Jt,J,Q);let tt=t.multiplyByScalar(ut,p.EPSILON5,$e);t.add($,tt,$),t.add(J,tt,J),t.add(K,tt,K),t.add(Q,tt,Q),Gt($,J),Gt(K,Q),t.pack($,I,M),t.pack(J,I,M+3),t.pack(Q,I,M+6),t.pack(K,I,M+9),tt=t.multiplyByScalar(ut,-2*p.EPSILON5,$e),t.add($,tt,$),t.add(J,tt,J),t.add(K,tt,K),t.add(Q,tt,Q),Gt($,J),Gt(K,Q),t.pack($,I,M+12),t.pack(J,I,M+15),t.pack(Q,I,M+18),t.pack(K,I,M+21),V+=2,s+=3,It+=16,M+=24,Tt+=32,pe+=ge,de+=Vt}s=0;let fe=0;for(l=0;l<h;l++){for(m=0;m<Je;m++)D[s+m]=rn[m]+fe;fe+=8,s+=Je}let qt=Kn;U.fromVertices(r,t.ZERO,3,qt[0]),U.fromVertices(n,t.ZERO,3,qt[1]);let me=U.fromBoundingSpheres(qt);me.radius+=Wt/(h*2);let Et={position:new zt({componentDatatype:vt.DOUBLE,componentsPerAttribute:3,normalize:!1,values:I}),startHiAndForwardOffsetX:at(j),startLoAndForwardOffsetY:at(W),startNormalAndForwardOffsetZ:at(f),endNormalAndTextureCoordinateNormalizationX:at(X),rightNormalAndTextureCoordinateNormalizationY:at(v)};return c&&(Et.startHiLo2D=at(y),Et.offsetAndRight2D=at(H),Et.startEndNormals2D=at(C),Et.texcoordNormalization2D=new zt({componentDatatype:vt.FLOAT,componentsPerAttribute:2,normalize:!1,values:k})),new Ce({attributes:Et,indices:D,boundingSphere:me})}function at(e){return new zt({componentDatatype:vt.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}ct._projectNormal=Dt;var he=ct;function to(e,i){return Xt.initialize().then(function(){return g(i)&&(e=he.unpack(e,i)),he.createGeometry(e)})}var ti=to;export{ti as default}; diff --git a/libs/cesium/1.111/Workers/createPlaneGeometry.js b/libs/cesium/1.111/Workers/createPlaneGeometry.js new file mode 100644 index 000000000..d3c913857 --- /dev/null +++ b/libs/cesium/1.111/Workers/createPlaneGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as m}from"./chunk-WIRUK4BS.js";import{a as b}from"./chunk-3UAKIC5Y.js";import{b as v,c as x,d as p}from"./chunk-QEWKHB6D.js";import{d as A}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as c}from"./chunk-7XDW3BZW.js";import{a as y}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as i}from"./chunk-K36PKEJW.js";import{b as u}from"./chunk-KD2PMTHD.js";import{e as f}from"./chunk-ZUCO5WNM.js";function s(r){r=i(r,i.EMPTY_OBJECT);let e=i(r.vertexFormat,m.DEFAULT);this._vertexFormat=e,this._workerName="createPlaneGeometry"}s.packedLength=m.packedLength;s.pack=function(r,e,o){return u.typeOf.object("value",r),u.defined("array",e),o=i(o,0),m.pack(r._vertexFormat,e,o),e};var d=new m,P={vertexFormat:d};s.unpack=function(r,e,o){u.defined("array",r),e=i(e,0);let a=m.unpack(r,e,d);return f(o)?(o._vertexFormat=m.clone(a,o._vertexFormat),o):new s(P)};var F=new y(-.5,-.5,0),l=new y(.5,.5,0);s.createGeometry=function(r){let e=r._vertexFormat,o=new b,a,n;if(e.position){if(n=new Float64Array(4*3),n[0]=F.x,n[1]=F.y,n[2]=0,n[3]=l.x,n[4]=F.y,n[5]=0,n[6]=l.x,n[7]=l.y,n[8]=0,n[9]=F.x,n[10]=l.y,n[11]=0,o.position=new p({componentDatatype:c.DOUBLE,componentsPerAttribute:3,values:n}),e.normal){let t=new Float32Array(12);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,o.normal=new p({componentDatatype:c.FLOAT,componentsPerAttribute:3,values:t})}if(e.st){let t=new Float32Array(8);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,o.st=new p({componentDatatype:c.FLOAT,componentsPerAttribute:2,values:t})}if(e.tangent){let t=new Float32Array(12);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,o.tangent=new p({componentDatatype:c.FLOAT,componentsPerAttribute:3,values:t})}if(e.bitangent){let t=new Float32Array(12);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,o.bitangent=new p({componentDatatype:c.FLOAT,componentsPerAttribute:3,values:t})}a=new Uint16Array(2*3),a[0]=0,a[1]=1,a[2]=2,a[3]=0,a[4]=2,a[5]=3}return new x({attributes:o,indices:a,primitiveType:v.TRIANGLES,boundingSphere:new A(y.ZERO,Math.sqrt(2))})};var w=s;function h(r,e){return f(e)&&(r=w.unpack(r,e)),w.createGeometry(r)}var M=h;export{M as default}; diff --git a/libs/cesium/1.111/Workers/createPlaneOutlineGeometry.js b/libs/cesium/1.111/Workers/createPlaneOutlineGeometry.js new file mode 100644 index 000000000..325093956 --- /dev/null +++ b/libs/cesium/1.111/Workers/createPlaneOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l}from"./chunk-3UAKIC5Y.js";import{b as d,c as y,d as s}from"./chunk-QEWKHB6D.js";import{d as c}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as f}from"./chunk-7XDW3BZW.js";import{a}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import{b as m}from"./chunk-KD2PMTHD.js";import{e as i}from"./chunk-ZUCO5WNM.js";function o(){this._workerName="createPlaneOutlineGeometry"}o.packedLength=0;o.pack=function(r,e){return m.defined("value",r),m.defined("array",e),e};o.unpack=function(r,e,t){return m.defined("array",r),i(t)?t:new o};var n=new a(-.5,-.5,0),p=new a(.5,.5,0);o.createGeometry=function(){let r=new l,e=new Uint16Array(4*2),t=new Float64Array(4*3);return t[0]=n.x,t[1]=n.y,t[2]=n.z,t[3]=p.x,t[4]=n.y,t[5]=n.z,t[6]=p.x,t[7]=p.y,t[8]=n.z,t[9]=n.x,t[10]=p.y,t[11]=n.z,r.position=new s({componentDatatype:f.DOUBLE,componentsPerAttribute:3,values:t}),e[0]=0,e[1]=1,e[2]=1,e[3]=2,e[4]=2,e[5]=3,e[6]=3,e[7]=0,new y({attributes:r,indices:e,primitiveType:d.LINES,boundingSphere:new c(a.ZERO,Math.sqrt(2))})};var u=o;function w(r,e){return i(e)&&(r=u.unpack(r,e)),u.createGeometry(r)}var D=w;export{D as default}; diff --git a/libs/cesium/1.111/Workers/createPolygonGeometry.js b/libs/cesium/1.111/Workers/createPolygonGeometry.js new file mode 100644 index 000000000..fd031831d --- /dev/null +++ b/libs/cesium/1.111/Workers/createPolygonGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Pt}from"./chunk-4HIMVLZZ.js";import{a as S}from"./chunk-YOHMVXAR.js";import{a as X}from"./chunk-6FTJPHAD.js";import{a as ft}from"./chunk-FDKE3YW2.js";import{a as It}from"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import{a as At}from"./chunk-J4D4SQY2.js";import{a as Tt}from"./chunk-YXVAQU2G.js";import{a as dt}from"./chunk-N52FZRFP.js";import{a as Q}from"./chunk-WIRUK4BS.js";import{a as K}from"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import{a as _t,b as at}from"./chunk-BVOZOPDI.js";import"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import{a as bt,b as Et}from"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as ut}from"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import{c as pt,d as ot}from"./chunk-QEWKHB6D.js";import{d as Ot,f as mt}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{c as lt,d as E}from"./chunk-KCIWEUSR.js";import{a as et}from"./chunk-7XDW3BZW.js";import{a as f,b as Z,c as v,d as U}from"./chunk-F33YCXD2.js";import{a as c}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as N}from"./chunk-K36PKEJW.js";import{a as rt,b as G}from"./chunk-KD2PMTHD.js";import{e as P}from"./chunk-ZUCO5WNM.js";function Dt(t,e){if(!P(t)||!P(e))throw new rt("identifier and message are required.");At(t,e)}var Nt=Dt;function b(t,e){this.position=t,P(this.position)||(this.position=new E),this.tangentPlane=e,P(this.tangentPlane)||(this.tangentPlane=b.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(b.prototype,{ellipsoid:{get:function(){return this.tangentPlane.ellipsoid}},x:{get:function(){return this.position.x}},y:{get:function(){return this.position.y}},conformalLatitude:{get:function(){let t=E.magnitude(this.position),e=2*this.ellipsoid.maximumRadius;return this.tangentPlane.plane.normal.z*(c.PI_OVER_TWO-2*Math.atan2(t,e))}},longitude:{get:function(){let t=c.PI_OVER_TWO+Math.atan2(this.y,this.x);return t>Math.PI&&(t-=c.TWO_PI),t}}});var st=new Z,Vt=new f;b.prototype.getLatitude=function(t){P(t)||(t=v.WGS84),st.latitude=this.conformalLatitude,st.longitude=this.longitude,st.height=0;let e=this.ellipsoid.cartographicToCartesian(st,Vt);return t.cartesianToCartographic(e,st),st.latitude};var Mt=new bt,Bt=new f,jt=new f;b.fromCartesian=function(t,e){G.defined("cartesian",t);let o=c.signNotZero(t.z),n=b.NORTH_POLE_TANGENT_PLANE,i=b.SOUTH_POLE;o<0&&(n=b.SOUTH_POLE_TANGENT_PLANE,i=b.NORTH_POLE);let r=Mt;r.origin=n.ellipsoid.scaleToGeocentricSurface(t,r.origin),r.direction=f.subtract(r.origin,i,Bt),f.normalize(r.direction,r.direction);let a=Et.rayPlane(r,n.plane,jt),h=f.subtract(a,i,a),l=f.dot(n.xAxis,h),u=o*f.dot(n.yAxis,h);return P(e)?(e.position=new E(l,u),e.tangentPlane=n,e):new b(new E(l,u),n)};b.fromCartesianArray=function(t,e){G.defined("cartesians",t);let o=t.length;P(e)?e.length=o:e=new Array(o);for(let n=0;n<o;n++)e[n]=b.fromCartesian(t[n],e[n]);return e};b.clone=function(t,e){if(P(t))return P(e)?(e.position=t.position,e.tangentPlane=t.tangentPlane,e):new b(t.position,t.tangentPlane)};b.HALF_UNIT_SPHERE=Object.freeze(new v(.5,.5,.5));b.NORTH_POLE=Object.freeze(new f(0,0,.5));b.SOUTH_POLE=Object.freeze(new f(0,0,-.5));b.NORTH_POLE_TANGENT_PLANE=Object.freeze(new K(b.NORTH_POLE,b.HALF_UNIT_SPHERE));b.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new K(b.SOUTH_POLE,b.HALF_UNIT_SPHERE));var k=b;var Wt=new Z,Ht=new Z;function Gt(t,e,o,n){let r=n.cartesianToCartographic(t,Wt).height,a=n.cartesianToCartographic(e,Ht);a.height=r,n.cartographicToCartesian(a,e);let h=n.cartesianToCartographic(o,Ht);h.height=r-100,n.cartographicToCartesian(h,o)}var Ct=new Pt,kt=new f,zt=new f,Ut=new f,Yt=new f,qt=new f,Qt=new f,gt=new f,J=new f,ct=new f,Jt=new E,Zt=new E,Kt=new f,xt=new mt,Xt=new U,$t=new U;function wt(t){let e=t.vertexFormat,o=t.geometry,n=t.shadowVolume,i=o.attributes.position.values,r=P(o.attributes.st)?o.attributes.st.values:void 0,a=i.length,h=t.wall,l=t.top||h,u=t.bottom||h;if(e.st||e.normal||e.tangent||e.bitangent||n){let g=t.boundingRectangle,s=t.rotationAxis,O=t.projectTo2d,H=t.ellipsoid,B=t.stRotation,C=t.perPositionHeight,R=Jt;R.x=g.x,R.y=g.y;let V=e.st?new Float32Array(2*(a/3)):void 0,d;e.normal&&(C&&l&&!h?d=o.attributes.normal.values:d=new Float32Array(a));let I=e.tangent?new Float32Array(a):void 0,A=e.bitangent?new Float32Array(a):void 0,F=n?new Float32Array(a):void 0,w=0,y=0,T=zt,m=Ut,_=Yt,j=!0,q=Xt,$=$t;if(B!==0){let M=mt.fromAxisAngle(s,B,xt);q=U.fromQuaternion(M,q),M=mt.fromAxisAngle(s,-B,xt),$=U.fromQuaternion(M,$)}else q=U.clone(U.IDENTITY,q),$=U.clone(U.IDENTITY,$);let p=0,L=0;l&&u&&(p=a/2,L=a/3,a/=2);for(let M=0;M<a;M+=3){let W=f.fromArray(i,M,Kt);if(e.st&&!P(r)){let x=U.multiplyByVector(q,W,kt);x=H.scaleToGeodeticSurface(x,x);let D=O(x,Zt);E.subtract(D,R,D);let tt=c.clamp(D.x/g.width,0,1),it=c.clamp(D.y/g.height,0,1);u&&(V[w+L]=tt,V[w+1+L]=it),l&&(V[w]=tt,V[w+1]=it),w+=2}if(e.normal||e.tangent||e.bitangent||n){let x=y+1,D=y+2;if(h){if(M+3<a){let tt=f.fromArray(i,M+3,qt);if(j){let it=f.fromArray(i,M+a,Qt);C&&Gt(W,tt,it,H),f.subtract(tt,W,tt),f.subtract(it,W,it),T=f.normalize(f.cross(it,tt,T),T),j=!1}f.equalsEpsilon(tt,W,c.EPSILON10)&&(j=!0)}(e.tangent||e.bitangent)&&(_=H.geodeticSurfaceNormal(W,_),e.tangent&&(m=f.normalize(f.cross(_,T,m),m)))}else T=H.geodeticSurfaceNormal(W,T),(e.tangent||e.bitangent)&&(C&&(gt=f.fromArray(d,y,gt),J=f.cross(f.UNIT_Z,gt,J),J=f.normalize(U.multiplyByVector($,J,J),J),e.bitangent&&(ct=f.normalize(f.cross(gt,J,ct),ct))),m=f.cross(f.UNIT_Z,T,m),m=f.normalize(U.multiplyByVector($,m,m),m),e.bitangent&&(_=f.normalize(f.cross(T,m,_),_)));e.normal&&(t.wall?(d[y+p]=T.x,d[x+p]=T.y,d[D+p]=T.z):u&&(d[y+p]=-T.x,d[x+p]=-T.y,d[D+p]=-T.z),(l&&!C||h)&&(d[y]=T.x,d[x]=T.y,d[D]=T.z)),n&&(h&&(T=H.geodeticSurfaceNormal(W,T)),F[y+p]=-T.x,F[x+p]=-T.y,F[D+p]=-T.z),e.tangent&&(t.wall?(I[y+p]=m.x,I[x+p]=m.y,I[D+p]=m.z):u&&(I[y+p]=-m.x,I[x+p]=-m.y,I[D+p]=-m.z),l&&(C?(I[y]=J.x,I[x]=J.y,I[D]=J.z):(I[y]=m.x,I[x]=m.y,I[D]=m.z))),e.bitangent&&(u&&(A[y+p]=_.x,A[x+p]=_.y,A[D+p]=_.z),l&&(C?(A[y]=ct.x,A[x]=ct.y,A[D]=ct.z):(A[y]=_.x,A[x]=_.y,A[D]=_.z))),y+=3}}e.st&&!P(r)&&(o.attributes.st=new ot({componentDatatype:et.FLOAT,componentsPerAttribute:2,values:V})),e.normal&&(o.attributes.normal=new ot({componentDatatype:et.FLOAT,componentsPerAttribute:3,values:d})),e.tangent&&(o.attributes.tangent=new ot({componentDatatype:et.FLOAT,componentsPerAttribute:3,values:I})),e.bitangent&&(o.attributes.bitangent=new ot({componentDatatype:et.FLOAT,componentsPerAttribute:3,values:A})),n&&(o.attributes.extrudeDirection=new ot({componentDatatype:et.FLOAT,componentsPerAttribute:3,values:F}))}if(t.extrude&&P(t.offsetAttribute)){let g=i.length/3,s=new Uint8Array(g);if(t.offsetAttribute===dt.TOP)l&&u||h?s=s.fill(1,0,g/2):l&&(s=s.fill(1));else{let O=t.offsetAttribute===dt.NONE?0:1;s=s.fill(O)}o.attributes.applyOffset=new ot({componentDatatype:et.UNSIGNED_BYTE,componentsPerAttribute:1,values:s})}return o}var te=new Z,ee=new Z,nt={westOverIDL:0,eastOverIDL:0},ht=new Tt;function oe(t,e,o,n,i){if(i=N(i,new lt),!P(t)||t.length<3)return i.west=0,i.north=0,i.south=0,i.east=0,i;if(o===X.RHUMB)return lt.fromCartesianArray(t,e,i);ht.ellipsoid.equals(e)||(ht=new Tt(void 0,void 0,e)),i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,nt.westOverIDL=Number.POSITIVE_INFINITY,nt.eastOverIDL=Number.NEGATIVE_INFINITY;let r=1/c.chordLength(n,e.maximumRadius),a=t.length,h=e.cartesianToCartographic(t[0],ee),l=te,u;for(let g=1;g<a;g++)u=l,l=h,h=e.cartesianToCartographic(t[g],u),ht.setEndPoints(l,h),Rt(ht,r,i,nt);return u=l,l=h,h=e.cartesianToCartographic(t[0],u),ht.setEndPoints(l,h),Rt(ht,r,i,nt),i.east-i.west>nt.eastOverIDL-nt.westOverIDL&&(i.west=nt.westOverIDL,i.east=nt.eastOverIDL,i.east>c.PI&&(i.east=i.east-c.TWO_PI),i.west>c.PI&&(i.west=i.west-c.TWO_PI)),i}var ne=new Z;function Rt(t,e,o,n){let i=t.surfaceDistance,r=Math.ceil(i*e),a=r>0?i/(r-1):Number.POSITIVE_INFINITY,h=0;for(let l=0;l<r;l++){let u=t.interpolateUsingSurfaceDistance(h,ne);h+=a;let g=u.longitude,s=u.latitude;o.west=Math.min(o.west,g),o.east=Math.max(o.east,g),o.south=Math.min(o.south,s),o.north=Math.max(o.north,s);let O=g>=0?g:g+c.TWO_PI;n.westOverIDL=Math.min(n.westOverIDL,O),n.eastOverIDL=Math.max(n.eastOverIDL,O)}}var Lt=[];function ie(t,e,o,n,i,r,a,h,l,u){let g={walls:[]},s;if(a||h){let d=S.createGeometryFromPositions(t,e,o,n,r,l,u),I=d.attributes.position.values,A=d.indices,F,w;if(a&&h){let y=I.concat(I);F=y.length/3,w=ut.createTypedArray(F,A.length*2),w.set(A);let T=A.length,m=F/2;for(s=0;s<T;s+=3){let _=w[s]+m,j=w[s+1]+m,q=w[s+2]+m;w[s+T]=q,w[s+1+T]=j,w[s+2+T]=_}if(d.attributes.position.values=y,r&&l.normal){let _=d.attributes.normal.values;d.attributes.normal.values=new Float32Array(y.length),d.attributes.normal.values.set(_)}if(l.st&&P(o)){let _=d.attributes.st.values;d.attributes.st.values=new Float32Array(F*2),d.attributes.st.values=_.concat(_)}d.indices=w}else if(h){for(F=I.length/3,w=ut.createTypedArray(F,A.length),s=0;s<A.length;s+=3)w[s]=A[s+2],w[s+1]=A[s+1],w[s+2]=A[s];d.indices=w}g.topAndBottom=new ft({geometry:d})}let O=i.outerRing,H=K.fromPoints(O,t),B=H.projectPointsOntoPlane(O,Lt),C=at.computeWindingOrder2D(B);C===_t.CLOCKWISE&&(O=O.slice().reverse());let R=S.computeWallGeometry(O,o,t,n,r,u);g.walls.push(new ft({geometry:R}));let V=i.holes;for(s=0;s<V.length;s++){let d=V[s];B=H.projectPointsOntoPlane(d,Lt),C=at.computeWindingOrder2D(B),C===_t.COUNTER_CLOCKWISE&&(d=d.slice().reverse()),R=S.computeWallGeometry(d,o,t,n,r,u),g.walls.push(new ft({geometry:R}))}return g}function z(t){if(G.typeOf.object("options",t),G.typeOf.object("options.polygonHierarchy",t.polygonHierarchy),P(t.perPositionHeight)&&t.perPositionHeight&&P(t.height))throw new rt("Cannot use both options.perPositionHeight and options.height");if(P(t.arcType)&&t.arcType!==X.GEODESIC&&t.arcType!==X.RHUMB)throw new rt("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");let e=t.polygonHierarchy,o=N(t.vertexFormat,Q.DEFAULT),n=N(t.ellipsoid,v.WGS84),i=N(t.granularity,c.RADIANS_PER_DEGREE),r=N(t.stRotation,0),a=t.textureCoordinates,h=N(t.perPositionHeight,!1),l=h&&P(t.extrudedHeight),u=N(t.height,0),g=N(t.extrudedHeight,u);if(!l){let s=Math.max(u,g);g=Math.min(u,g),u=s}this._vertexFormat=Q.clone(o),this._ellipsoid=v.clone(n),this._granularity=i,this._stRotation=r,this._height=u,this._extrudedHeight=g,this._closeTop=N(t.closeTop,!0),this._closeBottom=N(t.closeBottom,!0),this._polygonHierarchy=e,this._perPositionHeight=h,this._perPositionHeightExtrude=l,this._shadowVolume=N(t.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=t.offsetAttribute,this._arcType=N(t.arcType,X.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=a,this.packedLength=S.computeHierarchyPackedLength(e,f)+v.packedLength+Q.packedLength+(a?S.computeHierarchyPackedLength(a,E):1)+12}z.fromPositions=function(t){t=N(t,N.EMPTY_OBJECT),G.defined("options.positions",t.positions);let e={polygonHierarchy:{positions:t.positions},height:t.height,extrudedHeight:t.extrudedHeight,vertexFormat:t.vertexFormat,stRotation:t.stRotation,ellipsoid:t.ellipsoid,granularity:t.granularity,perPositionHeight:t.perPositionHeight,closeTop:t.closeTop,closeBottom:t.closeBottom,offsetAttribute:t.offsetAttribute,arcType:t.arcType,textureCoordinates:t.textureCoordinates};return new z(e)};z.pack=function(t,e,o){return G.typeOf.object("value",t),G.defined("array",e),o=N(o,0),o=S.packPolygonHierarchy(t._polygonHierarchy,e,o,f),v.pack(t._ellipsoid,e,o),o+=v.packedLength,Q.pack(t._vertexFormat,e,o),o+=Q.packedLength,e[o++]=t._height,e[o++]=t._extrudedHeight,e[o++]=t._granularity,e[o++]=t._stRotation,e[o++]=t._perPositionHeightExtrude?1:0,e[o++]=t._perPositionHeight?1:0,e[o++]=t._closeTop?1:0,e[o++]=t._closeBottom?1:0,e[o++]=t._shadowVolume?1:0,e[o++]=N(t._offsetAttribute,-1),e[o++]=t._arcType,P(t._textureCoordinates)?o=S.packPolygonHierarchy(t._textureCoordinates,e,o,E):e[o++]=-1,e[o++]=t.packedLength,e};var re=v.clone(v.UNIT_SPHERE),ae=new Q,se={polygonHierarchy:{}};z.unpack=function(t,e,o){G.defined("array",t),e=N(e,0);let n=S.unpackPolygonHierarchy(t,e,f);e=n.startingIndex,delete n.startingIndex;let i=v.unpack(t,e,re);e+=v.packedLength;let r=Q.unpack(t,e,ae);e+=Q.packedLength;let a=t[e++],h=t[e++],l=t[e++],u=t[e++],g=t[e++]===1,s=t[e++]===1,O=t[e++]===1,H=t[e++]===1,B=t[e++]===1,C=t[e++],R=t[e++],V=t[e]===-1?void 0:S.unpackPolygonHierarchy(t,e,E);P(V)?(e=V.startingIndex,delete V.startingIndex):e++;let d=t[e++];return P(o)||(o=new z(se)),o._polygonHierarchy=n,o._ellipsoid=v.clone(i,o._ellipsoid),o._vertexFormat=Q.clone(r,o._vertexFormat),o._height=a,o._extrudedHeight=h,o._granularity=l,o._stRotation=u,o._perPositionHeightExtrude=g,o._perPositionHeight=s,o._closeTop=O,o._closeBottom=H,o._shadowVolume=B,o._offsetAttribute=C===-1?void 0:C,o._arcType=R,o._textureCoordinates=V,o.packedLength=d,o};var ce=new E,he=new E,fe=new k;function vt(t,e,o,n,i,r){let a=t.longitude,h=a>=0?a:a+c.TWO_PI;i.westOverIdl=Math.min(i.westOverIdl,h),i.eastOverIdl=Math.max(i.eastOverIdl,h),r.west=Math.min(r.west,a),r.east=Math.max(r.east,a);let l=t.getLatitude(o),u=l;if(r.south=Math.min(r.south,l),r.north=Math.max(r.north,l),n!==X.RHUMB){let O=E.subtract(e.position,t.position,ce),H=E.dot(e.position,O)/E.dot(O,O);if(H>0&&H<1){let B=E.add(e.position,E.multiplyByScalar(O,-H,O),he),C=k.clone(e,fe);C.position=B;let R=C.getLatitude(o);r.south=Math.min(r.south,R),r.north=Math.max(r.north,R),Math.abs(l)>Math.abs(R)&&(u=R)}}let g=e.x*t.y-t.x*e.y,s=Math.sign(g);s!==0&&(s*=E.angleBetween(e.position,t.position)),u>=0&&(i.northAngle+=s),u<=0&&(i.southAngle+=s)}var St=new k,le=new k,Y={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};z.computeRectangleFromPositions=function(t,e,o,n){if(G.defined("positions",t),P(n)||(n=new lt),t.length<3)return n;n.west=Number.POSITIVE_INFINITY,n.east=Number.NEGATIVE_INFINITY,n.south=Number.POSITIVE_INFINITY,n.north=Number.NEGATIVE_INFINITY,Y.northAngle=0,Y.southAngle=0,Y.westOverIdl=Number.POSITIVE_INFINITY,Y.eastOverIdl=Number.NEGATIVE_INFINITY;let i=t.length,r=k.fromCartesian(t[0],le);for(let a=1;a<i;a++){let h=k.fromCartesian(t[a],St);vt(h,r,e,o,Y,n),r=k.clone(h,r)}return vt(k.fromCartesian(t[0],St),r,e,o,Y,n),n.east-n.west>Y.eastOverIdl-Y.westOverIdl&&(n.west=Y.westOverIdl,n.east=Y.eastOverIdl,n.east>c.PI&&(n.east=n.east-c.TWO_PI),n.west>c.PI&&(n.west=n.west-c.TWO_PI)),c.equalsEpsilon(Math.abs(Y.northAngle),c.TWO_PI,c.EPSILON10)&&(n.north=c.PI_OVER_TWO,n.east=c.PI,n.west=-c.PI),c.equalsEpsilon(Math.abs(Y.southAngle),c.TWO_PI,c.EPSILON10)&&(n.south=-c.PI_OVER_TWO,n.east=c.PI,n.west=-c.PI),n};z.computeRectangle=function(t,e){G.typeOf.object("options",t),G.typeOf.object("options.polygonHierarchy",t.polygonHierarchy),Nt("PolygonGeometry.computeRectangle","PolygonGeometry.computeRectangle was deprecated in CesiumJS 1.110. It will be removed in CesiumJS 1.112. Use PolygonGeometry.computeRectangleFromPositions instead.");let o=N(t.granularity,c.RADIANS_PER_DEGREE),n=N(t.arcType,X.GEODESIC);if(n!==X.GEODESIC&&n!==X.RHUMB)throw new rt("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");let i=t.polygonHierarchy,r=N(t.ellipsoid,v.WGS84);return oe(i.positions,r,n,o,e)};var me=new k;function ue(t,e,o){return t.height>=c.PI||t.width>=c.PI?k.fromCartesian(e[0],me).tangentPlane:K.fromPoints(e,o)}var Ft=new Z;function de(t,e,o){return(n,i)=>{if(t.height>=c.PI||t.width>=c.PI){if(t.south<0&&t.north>0){P(i)||(i=[]);for(let a=0;a<n.length;++a){let h=o.cartesianToCartographic(n[a],Ft);i[a]=new E(h.longitude/c.PI,h.latitude/c.PI_OVER_TWO)}return i.length=n.length,i}return k.fromCartesianArray(n,i)}return K.fromPoints(e,o).projectPointsOntoPlane(n,i)}}function ge(t,e,o){if(t.height>=c.PI||t.width>=c.PI)return(i,r)=>{if(t.south<0&&t.north>0){let a=o.cartesianToCartographic(i,Ft);return P(r)||(r=new E),r.x=a.longitude/c.PI,r.y=a.latitude/c.PI_OVER_TWO,r}return k.fromCartesian(i,r)};let n=K.fromPoints(e,o);return(i,r)=>n.projectPointsOntoPlane(i,r)}function pe(t,e,o,n){return(i,r)=>!n&&(t.height>=c.PI_OVER_TWO||t.width>=2*c.PI_OVER_THREE)?S.splitPolygonsOnEquator(i,e,o,r):i}function Pe(t,e,o,n){if(e.height>=c.PI||e.width>=c.PI)return Pt.fromRectangle(e,void 0,Ct);let i=t,r=K.fromPoints(i,o);return S.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),i,n,Ct)}z.createGeometry=function(t){let e=t._vertexFormat,o=t._ellipsoid,n=t._granularity,i=t._stRotation,r=t._polygonHierarchy,a=t._perPositionHeight,h=t._closeTop,l=t._closeBottom,u=t._arcType,g=t._textureCoordinates,s=P(g),O=r.positions;if(O.length<3)return;let H=t.rectangle,B=S.polygonsFromHierarchy(r,s,de(H,O,o),!a,o,pe(H,o,u,a)),C=B.hierarchy,R=B.polygons,V=function(p){return p},d=s?S.polygonsFromHierarchy(g,!0,V,!1,o).polygons:void 0;if(C.length===0)return;let I=C[0].outerRing,A=Pe(I,H,o,i),F=[],w=t._height,y=t._extrudedHeight,T=t._perPositionHeightExtrude||!c.equalsEpsilon(w,y,0,c.EPSILON2),m={perPositionHeight:a,vertexFormat:e,geometry:void 0,rotationAxis:ue(H,I,o).plane.normal,projectTo2d:ge(H,I,o),boundingRectangle:A,ellipsoid:o,stRotation:i,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:u},_;if(T)for(m.extrude=!0,m.top=h,m.bottom=l,m.shadowVolume=t._shadowVolume,m.offsetAttribute=t._offsetAttribute,_=0;_<R.length;_++){let p=ie(o,R[_],s?d[_]:void 0,n,C[_],a,h,l,e,u),L;h&&l?(L=p.topAndBottom,m.geometry=S.scaleToGeodeticHeightExtruded(L.geometry,w,y,o,a)):h?(L=p.topAndBottom,L.geometry.attributes.position.values=at.scaleToGeodeticHeight(L.geometry.attributes.position.values,w,o,!a),m.geometry=L.geometry):l&&(L=p.topAndBottom,L.geometry.attributes.position.values=at.scaleToGeodeticHeight(L.geometry.attributes.position.values,y,o,!0),m.geometry=L.geometry),(h||l)&&(m.wall=!1,L.geometry=wt(m),F.push(L));let M=p.walls;m.wall=!0;for(let W=0;W<M.length;W++){let x=M[W];m.geometry=S.scaleToGeodeticHeightExtruded(x.geometry,w,y,o,a),x.geometry=wt(m),F.push(x)}}else for(_=0;_<R.length;_++){let p=new ft({geometry:S.createGeometryFromPositions(o,R[_],s?d[_]:void 0,n,a,e,u)});if(p.geometry.attributes.position.values=at.scaleToGeodeticHeight(p.geometry.attributes.position.values,w,o,!a),m.geometry=p.geometry,p.geometry=wt(m),P(t._offsetAttribute)){let L=p.geometry.attributes.position.values.length,M=t._offsetAttribute===dt.NONE?0:1,W=new Uint8Array(L/3).fill(M);p.geometry.attributes.applyOffset=new ot({componentDatatype:et.UNSIGNED_BYTE,componentsPerAttribute:1,values:W})}F.push(p)}let j=It.combineInstances(F)[0];j.attributes.position.values=new Float64Array(j.attributes.position.values),j.indices=ut.createTypedArray(j.attributes.position.values.length/3,j.indices);let q=j.attributes,$=Ot.fromVertices(q.position.values);return e.position||delete q.position,new pt({attributes:q,indices:j.indices,primitiveType:j.primitiveType,boundingSphere:$,offsetAttribute:t._offsetAttribute})};z.createShadowVolume=function(t,e,o){let n=t._granularity,i=t._ellipsoid,r=e(n,i),a=o(n,i);return new z({polygonHierarchy:t._polygonHierarchy,ellipsoid:i,stRotation:t._stRotation,granularity:n,perPositionHeight:!1,extrudedHeight:r,height:a,vertexFormat:Q.POSITION_ONLY,shadowVolume:!0,arcType:t._arcType})};function _e(t){let e=-t._stRotation;if(e===0)return[0,0,0,1,1,0];let o=t._ellipsoid,n=t._polygonHierarchy.positions,i=t.rectangle;return pt._textureCoordinateRotationPoints(n,e,o,i)}Object.defineProperties(z.prototype,{rectangle:{get:function(){if(!P(this._rectangle)){let t=this._polygonHierarchy.positions;this._rectangle=z.computeRectangleFromPositions(t,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return P(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=_e(this)),this._textureCoordinateRotationPoints}}});var yt=z;function Te(t,e){return P(e)&&(t=yt.unpack(t,e)),t._ellipsoid=v.clone(t._ellipsoid),yt.createGeometry(t)}var po=Te;export{po as default}; diff --git a/libs/cesium/1.111/Workers/createPolygonOutlineGeometry.js b/libs/cesium/1.111/Workers/createPolygonOutlineGeometry.js new file mode 100644 index 000000000..afa514c28 --- /dev/null +++ b/libs/cesium/1.111/Workers/createPolygonOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-YOHMVXAR.js";import{a as b}from"./chunk-6FTJPHAD.js";import{a as W}from"./chunk-FDKE3YW2.js";import{a as V}from"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import{a as D}from"./chunk-N52FZRFP.js";import{a as F}from"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import{a as j,b as k}from"./chunk-BVOZOPDI.js";import"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as M}from"./chunk-JZL634RF.js";import{a as B}from"./chunk-3UAKIC5Y.js";import{b as U,c as C,d as S}from"./chunk-QEWKHB6D.js";import{d as z}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as w}from"./chunk-7XDW3BZW.js";import{a as v,c as y}from"./chunk-F33YCXD2.js";import{a as T}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as P}from"./chunk-K36PKEJW.js";import{a as G,b as A}from"./chunk-KD2PMTHD.js";import{e as O}from"./chunk-ZUCO5WNM.js";var Y=[],R=[];function K(e,t,r,H,l){let p=F.fromPoints(t,e).projectPointsOntoPlane(t,Y);k.computeWindingOrder2D(p)===j.CLOCKWISE&&(p.reverse(),t=t.slice().reverse());let n,i,o=t.length,c=0;if(H)for(n=new Float64Array(o*2*3),i=0;i<o;i++){let u=t[i],h=t[(i+1)%o];n[c++]=u.x,n[c++]=u.y,n[c++]=u.z,n[c++]=h.x,n[c++]=h.y,n[c++]=h.z}else{let u=0;if(l===b.GEODESIC)for(i=0;i<o;i++)u+=a.subdivideLineCount(t[i],t[(i+1)%o],r);else if(l===b.RHUMB)for(i=0;i<o;i++)u+=a.subdivideRhumbLineCount(e,t[i],t[(i+1)%o],r);for(n=new Float64Array(u*3),i=0;i<o;i++){let h;l===b.GEODESIC?h=a.subdivideLine(t[i],t[(i+1)%o],r,R):l===b.RHUMB&&(h=a.subdivideRhumbLine(e,t[i],t[(i+1)%o],r,R));let g=h.length;for(let d=0;d<g;++d)n[c++]=h[d]}}o=n.length/3;let f=o*2,m=M.createTypedArray(o,f);for(c=0,i=0;i<o-1;i++)m[c++]=i,m[c++]=i+1;return m[c++]=o-1,m[c++]=0,new W({geometry:new C({attributes:new B({position:new S({componentDatatype:w.DOUBLE,componentsPerAttribute:3,values:n})}),indices:m,primitiveType:U.LINES})})}function q(e,t,r,H,l){let p=F.fromPoints(t,e).projectPointsOntoPlane(t,Y);k.computeWindingOrder2D(p)===j.CLOCKWISE&&(p.reverse(),t=t.slice().reverse());let n,i,o=t.length,c=new Array(o),f=0;if(H)for(n=new Float64Array(o*2*3*2),i=0;i<o;++i){c[i]=f/3;let g=t[i],d=t[(i+1)%o];n[f++]=g.x,n[f++]=g.y,n[f++]=g.z,n[f++]=d.x,n[f++]=d.y,n[f++]=d.z}else{let g=0;if(l===b.GEODESIC)for(i=0;i<o;i++)g+=a.subdivideLineCount(t[i],t[(i+1)%o],r);else if(l===b.RHUMB)for(i=0;i<o;i++)g+=a.subdivideRhumbLineCount(e,t[i],t[(i+1)%o],r);for(n=new Float64Array(g*3*2),i=0;i<o;++i){c[i]=f/3;let d;l===b.GEODESIC?d=a.subdivideLine(t[i],t[(i+1)%o],r,R):l===b.RHUMB&&(d=a.subdivideRhumbLine(e,t[i],t[(i+1)%o],r,R));let E=d.length;for(let N=0;N<E;++N)n[f++]=d[N]}}o=n.length/(3*2);let m=c.length,u=(o*2+m)*2,h=M.createTypedArray(o+m,u);for(f=0,i=0;i<o;++i)h[f++]=i,h[f++]=(i+1)%o,h[f++]=i+o,h[f++]=(i+1)%o+o;for(i=0;i<m;i++){let g=c[i];h[f++]=g,h[f++]=g+o}return new W({geometry:new C({attributes:new B({position:new S({componentDatatype:w.DOUBLE,componentsPerAttribute:3,values:n})}),indices:h,primitiveType:U.LINES})})}function L(e){if(A.typeOf.object("options",e),A.typeOf.object("options.polygonHierarchy",e.polygonHierarchy),e.perPositionHeight&&O(e.height))throw new G("Cannot use both options.perPositionHeight and options.height");if(O(e.arcType)&&e.arcType!==b.GEODESIC&&e.arcType!==b.RHUMB)throw new G("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");let t=e.polygonHierarchy,r=P(e.ellipsoid,y.WGS84),H=P(e.granularity,T.RADIANS_PER_DEGREE),l=P(e.perPositionHeight,!1),_=l&&O(e.extrudedHeight),p=P(e.arcType,b.GEODESIC),s=P(e.height,0),n=P(e.extrudedHeight,s);if(!_){let i=Math.max(s,n);n=Math.min(s,n),s=i}this._ellipsoid=y.clone(r),this._granularity=H,this._height=s,this._extrudedHeight=n,this._arcType=p,this._polygonHierarchy=t,this._perPositionHeight=l,this._perPositionHeightExtrude=_,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=a.computeHierarchyPackedLength(t,v)+y.packedLength+8}L.pack=function(e,t,r){return A.typeOf.object("value",e),A.defined("array",t),r=P(r,0),r=a.packPolygonHierarchy(e._polygonHierarchy,t,r,v),y.pack(e._ellipsoid,t,r),r+=y.packedLength,t[r++]=e._height,t[r++]=e._extrudedHeight,t[r++]=e._granularity,t[r++]=e._perPositionHeightExtrude?1:0,t[r++]=e._perPositionHeight?1:0,t[r++]=e._arcType,t[r++]=P(e._offsetAttribute,-1),t[r]=e.packedLength,t};var J=y.clone(y.UNIT_SPHERE),Q={polygonHierarchy:{}};L.unpack=function(e,t,r){A.defined("array",e),t=P(t,0);let H=a.unpackPolygonHierarchy(e,t,v);t=H.startingIndex,delete H.startingIndex;let l=y.unpack(e,t,J);t+=y.packedLength;let _=e[t++],p=e[t++],s=e[t++],n=e[t++]===1,i=e[t++]===1,o=e[t++],c=e[t++],f=e[t];return O(r)||(r=new L(Q)),r._polygonHierarchy=H,r._ellipsoid=y.clone(l,r._ellipsoid),r._height=_,r._extrudedHeight=p,r._granularity=s,r._perPositionHeight=i,r._perPositionHeightExtrude=n,r._arcType=o,r._offsetAttribute=c===-1?void 0:c,r.packedLength=f,r};L.fromPositions=function(e){e=P(e,P.EMPTY_OBJECT),A.defined("options.positions",e.positions);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new L(t)};L.createGeometry=function(e){let t=e._ellipsoid,r=e._granularity,H=e._polygonHierarchy,l=e._perPositionHeight,_=e._arcType,p=a.polygonOutlinesFromHierarchy(H,!l,t);if(p.length===0)return;let s,n=[],i=T.chordLength(r,t.maximumRadius),o=e._height,c=e._extrudedHeight,f=e._perPositionHeightExtrude||!T.equalsEpsilon(o,c,0,T.EPSILON2),m,u;if(f)for(u=0;u<p.length;u++){if(s=q(t,p[u],i,l,_),s.geometry=a.scaleToGeodeticHeightExtruded(s.geometry,o,c,t,l),O(e._offsetAttribute)){let d=s.geometry.attributes.position.values.length/3,E=new Uint8Array(d);e._offsetAttribute===D.TOP?E=E.fill(1,0,d/2):(m=e._offsetAttribute===D.NONE?0:1,E=E.fill(m)),s.geometry.attributes.applyOffset=new S({componentDatatype:w.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}n.push(s)}else for(u=0;u<p.length;u++){if(s=K(t,p[u],i,l,_),s.geometry.attributes.position.values=k.scaleToGeodeticHeight(s.geometry.attributes.position.values,o,t,!l),O(e._offsetAttribute)){let d=s.geometry.attributes.position.values.length;m=e._offsetAttribute===D.NONE?0:1;let E=new Uint8Array(d/3).fill(m);s.geometry.attributes.applyOffset=new S({componentDatatype:w.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}n.push(s)}let h=V.combineInstances(n)[0],g=z.fromVertices(h.attributes.position.values);return new C({attributes:h.attributes,indices:h.indices,primitiveType:h.primitiveType,boundingSphere:g,offsetAttribute:e._offsetAttribute})};var x=L;function X(e,t){return O(t)&&(e=x.unpack(e,t)),e._ellipsoid=y.clone(e._ellipsoid),x.createGeometry(e)}var Oe=X;export{Oe as default}; diff --git a/libs/cesium/1.111/Workers/createPolylineGeometry.js b/libs/cesium/1.111/Workers/createPolylineGeometry.js new file mode 100644 index 000000000..cc732e04d --- /dev/null +++ b/libs/cesium/1.111/Workers/createPolylineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as m}from"./chunk-VFOAUMZG.js";import{a as N}from"./chunk-6FTJPHAD.js";import{a as U}from"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import{a as k}from"./chunk-WIRUK4BS.js";import{a as le}from"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as se}from"./chunk-JZL634RF.js";import{a as ce}from"./chunk-3UAKIC5Y.js";import{a as ne,b as re,c as ie,d as O}from"./chunk-QEWKHB6D.js";import{d as oe}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as x}from"./chunk-7XDW3BZW.js";import{a as p,c as u}from"./chunk-F33YCXD2.js";import{a as J}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as A}from"./chunk-K36PKEJW.js";import{a as V}from"./chunk-KD2PMTHD.js";import{e as h}from"./chunk-ZUCO5WNM.js";var me=[];function Ae(e,o,t,n,c){let s=me;s.length=c;let l,E=t.red,a=t.green,r=t.blue,w=t.alpha,b=n.red,i=n.green,f=n.blue,L=n.alpha;if(m.equals(t,n)){for(l=0;l<c;l++)s[l]=m.clone(t);return s}let M=(b-E)/c,W=(i-a)/c,z=(f-r)/c,B=(L-w)/c;for(l=0;l<c;l++)s[l]=new m(E+l*M,a+l*W,r+l*z,w+l*B);return s}function q(e){e=A(e,A.EMPTY_OBJECT);let o=e.positions,t=e.colors,n=A(e.width,1),c=A(e.colorsPerVertex,!1);if(!h(o)||o.length<2)throw new V("At least two positions are required.");if(typeof n!="number")throw new V("width must be a number");if(h(t)&&(c&&t.length<o.length||!c&&t.length<o.length-1))throw new V("colors has an invalid length.");this._positions=o,this._colors=t,this._width=n,this._colorsPerVertex=c,this._vertexFormat=k.clone(A(e.vertexFormat,k.DEFAULT)),this._arcType=A(e.arcType,N.GEODESIC),this._granularity=A(e.granularity,J.RADIANS_PER_DEGREE),this._ellipsoid=u.clone(A(e.ellipsoid,u.WGS84)),this._workerName="createPolylineGeometry";let s=1+o.length*p.packedLength;s+=h(t)?1+t.length*m.packedLength:1,this.packedLength=s+u.packedLength+k.packedLength+4}q.pack=function(e,o,t){if(!h(e))throw new V("value is required");if(!h(o))throw new V("array is required");t=A(t,0);let n,c=e._positions,s=c.length;for(o[t++]=s,n=0;n<s;++n,t+=p.packedLength)p.pack(c[n],o,t);let l=e._colors;for(s=h(l)?l.length:0,o[t++]=s,n=0;n<s;++n,t+=m.packedLength)m.pack(l[n],o,t);return u.pack(e._ellipsoid,o,t),t+=u.packedLength,k.pack(e._vertexFormat,o,t),t+=k.packedLength,o[t++]=e._width,o[t++]=e._colorsPerVertex?1:0,o[t++]=e._arcType,o[t]=e._granularity,o};var de=u.clone(u.UNIT_SPHERE),ue=new k,S={positions:void 0,colors:void 0,ellipsoid:de,vertexFormat:ue,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};q.unpack=function(e,o,t){if(!h(e))throw new V("array is required");o=A(o,0);let n,c=e[o++],s=new Array(c);for(n=0;n<c;++n,o+=p.packedLength)s[n]=p.unpack(e,o);c=e[o++];let l=c>0?new Array(c):void 0;for(n=0;n<c;++n,o+=m.packedLength)l[n]=m.unpack(e,o);let E=u.unpack(e,o,de);o+=u.packedLength;let a=k.unpack(e,o,ue);o+=k.packedLength;let r=e[o++],w=e[o++]===1,b=e[o++],i=e[o];return h(t)?(t._positions=s,t._colors=l,t._ellipsoid=u.clone(E,t._ellipsoid),t._vertexFormat=k.clone(a,t._vertexFormat),t._width=r,t._colorsPerVertex=w,t._arcType=b,t._granularity=i,t):(S.positions=s,S.colors=l,S.width=r,S.colorsPerVertex=w,S.arcType=b,S.granularity=i,new q(S))};var pe=new p,ae=new p,fe=new p,he=new p;q.createGeometry=function(e){let o=e._width,t=e._vertexFormat,n=e._colors,c=e._colorsPerVertex,s=e._arcType,l=e._granularity,E=e._ellipsoid,a,r,w,b=[],i=le(e._positions,p.equalsEpsilon,!1,b);if(h(n)&&b.length>0){let d=0,P=b[0];n=n.filter(function(G,T){let g=!1;return c?g=T===P||T===0&&P===1:g=T+1===P,g?(d++,P=b[d],!1):!0})}let f=i.length;if(f<2||o<=0)return;if(s===N.GEODESIC||s===N.RHUMB){let d,P;s===N.GEODESIC?(d=J.chordLength(l,E.maximumRadius),P=U.numberOfPoints):(d=l,P=U.numberOfPointsRhumbLine);let G=U.extractHeights(i,E);if(h(n)){let T=1;for(a=0;a<f-1;++a)T+=P(i[a],i[a+1],d);let g=new Array(T),D=0;for(a=0;a<f-1;++a){let Z=i[a],$=i[a+1],I=n[a],ee=P(Z,$,d);if(c&&a<T){let _e=n[a+1],te=Ae(Z,$,I,_e,ee),Pe=te.length;for(r=0;r<Pe;++r)g[D++]=te[r]}else for(r=0;r<ee;++r)g[D++]=m.clone(I)}g[D]=m.clone(n[n.length-1]),n=g,me.length=0}s===N.GEODESIC?i=U.generateCartesianArc({positions:i,minDistance:d,ellipsoid:E,height:G}):i=U.generateCartesianRhumbArc({positions:i,granularity:d,ellipsoid:E,height:G})}f=i.length;let L=f*4-4,M=new Float64Array(L*3),W=new Float64Array(L*3),z=new Float64Array(L*3),B=new Float32Array(L*2),K=t.st?new Float32Array(L*2):void 0,y=h(n)?new Uint8Array(L*4):void 0,H=0,j=0,X=0,Y=0,_;for(r=0;r<f;++r){r===0?(_=pe,p.subtract(i[0],i[1],_),p.add(i[0],_,_)):_=i[r-1],p.clone(_,fe),p.clone(i[r],ae),r===f-1?(_=pe,p.subtract(i[f-1],i[f-2],_),p.add(i[f-1],_,_)):_=i[r+1],p.clone(_,he);let d,P;h(y)&&(r!==0&&!c?d=n[r-1]:d=n[r],r!==f-1&&(P=n[r]));let G=r===0?2:0,T=r===f-1?2:4;for(w=G;w<T;++w){p.pack(ae,M,H),p.pack(fe,W,H),p.pack(he,z,H),H+=3;let g=w-2<0?-1:1;if(B[j++]=2*(w%2)-1,B[j++]=g*o,t.st&&(K[X++]=r/(f-1),K[X++]=Math.max(B[j-2],0)),h(y)){let D=w<2?d:P;y[Y++]=m.floatToByte(D.red),y[Y++]=m.floatToByte(D.green),y[Y++]=m.floatToByte(D.blue),y[Y++]=m.floatToByte(D.alpha)}}}let v=new ce;v.position=new O({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:M}),v.prevPosition=new O({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:W}),v.nextPosition=new O({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:z}),v.expandAndWidth=new O({componentDatatype:x.FLOAT,componentsPerAttribute:2,values:B}),t.st&&(v.st=new O({componentDatatype:x.FLOAT,componentsPerAttribute:2,values:K})),h(y)&&(v.color=new O({componentDatatype:x.UNSIGNED_BYTE,componentsPerAttribute:4,values:y,normalize:!0}));let C=se.createTypedArray(L,f*6-6),F=0,R=0,we=f-1;for(r=0;r<we;++r)C[R++]=F,C[R++]=F+2,C[R++]=F+1,C[R++]=F+1,C[R++]=F+2,C[R++]=F+3,F+=4;return new ie({attributes:v,indices:C,primitiveType:re.TRIANGLES,boundingSphere:oe.fromPoints(i),geometryType:ne.POLYLINES})};var Q=q;function ge(e,o){return h(o)&&(e=Q.unpack(e,o)),e._ellipsoid=u.clone(e._ellipsoid),Q.createGeometry(e)}var He=ge;export{He as default}; diff --git a/libs/cesium/1.111/Workers/createPolylineVolumeGeometry.js b/libs/cesium/1.111/Workers/createPolylineVolumeGeometry.js new file mode 100644 index 000000000..a11158be8 --- /dev/null +++ b/libs/cesium/1.111/Workers/createPolylineVolumeGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-4HIMVLZZ.js";import{a as W}from"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import{a as x,b as j}from"./chunk-NLQJPKTT.js";import{a as I}from"./chunk-J4D4SQY2.js";import"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import{a as g}from"./chunk-WIRUK4BS.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import{a as $,b as V}from"./chunk-BVOZOPDI.js";import{a as Z}from"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as X}from"./chunk-JZL634RF.js";import{a as Q}from"./chunk-3UAKIC5Y.js";import{b as Y,c as z,d as U}from"./chunk-QEWKHB6D.js";import{d as K}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{d as C}from"./chunk-KCIWEUSR.js";import{a as B}from"./chunk-7XDW3BZW.js";import{a as T,c as f}from"./chunk-F33YCXD2.js";import{a as J}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as k}from"./chunk-K36PKEJW.js";import{a as D}from"./chunk-KD2PMTHD.js";import{e as _}from"./chunk-ZUCO5WNM.js";function oe(t,e,n,o){let l=new Q;o.position&&(l.position=new U({componentDatatype:B.DOUBLE,componentsPerAttribute:3,values:t}));let i=e.length,u=t.length/3,L=(u-i*2)/(i*2),E=V.triangulate(e),G=(L-1)*i*6+E.length*2,r=X.createTypedArray(u,G),m,s,d,b,A,q,F=i*2,p=0;for(m=0;m<L-1;m++){for(s=0;s<i-1;s++)d=s*2+m*i*2,q=d+F,b=d+1,A=b+F,r[p++]=b,r[p++]=d,r[p++]=A,r[p++]=A,r[p++]=d,r[p++]=q;d=i*2-2+m*i*2,b=d+1,A=b+F,q=d+F,r[p++]=b,r[p++]=d,r[p++]=A,r[p++]=A,r[p++]=d,r[p++]=q}if(o.st||o.tangent||o.bitangent){let c=new Float32Array(u*2),S=1/(L-1),w=1/n.height,O=n.height/2,y,a,h=0;for(m=0;m<L;m++){for(y=m*S,a=w*(e[0].y+O),c[h++]=y,c[h++]=a,s=1;s<i;s++)a=w*(e[s].y+O),c[h++]=y,c[h++]=a,c[h++]=y,c[h++]=a;a=w*(e[0].y+O),c[h++]=y,c[h++]=a}for(s=0;s<i;s++)y=0,a=w*(e[s].y+O),c[h++]=y,c[h++]=a;for(s=0;s<i;s++)y=(L-1)*S,a=w*(e[s].y+O),c[h++]=y,c[h++]=a;l.st=new U({componentDatatype:B.FLOAT,componentsPerAttribute:2,values:new Float32Array(c)})}let N=u-i*2;for(m=0;m<E.length;m+=3){let c=E[m]+N,S=E[m+1]+N,w=E[m+2]+N;r[p++]=c,r[p++]=S,r[p++]=w,r[p++]=w+i,r[p++]=S+i,r[p++]=c+i}let P=new z({attributes:l,indices:r,boundingSphere:K.fromVertices(t),primitiveType:Y.TRIANGLES});if(o.normal&&(P=W.computeNormal(P)),o.tangent||o.bitangent){try{P=W.computeTangentAndBitangent(P)}catch{I("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}o.tangent||(P.attributes.tangent=void 0),o.bitangent||(P.attributes.bitangent=void 0),o.st||(P.attributes.st=void 0)}return P}function R(t){t=k(t,k.EMPTY_OBJECT);let e=t.polylinePositions,n=t.shapePositions;if(!_(e))throw new D("options.polylinePositions is required.");if(!_(n))throw new D("options.shapePositions is required.");this._positions=e,this._shape=n,this._ellipsoid=f.clone(k(t.ellipsoid,f.WGS84)),this._cornerType=k(t.cornerType,x.ROUNDED),this._vertexFormat=g.clone(k(t.vertexFormat,g.DEFAULT)),this._granularity=k(t.granularity,J.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let o=1+e.length*T.packedLength;o+=1+n.length*C.packedLength,this.packedLength=o+f.packedLength+g.packedLength+2}R.pack=function(t,e,n){if(!_(t))throw new D("value is required");if(!_(e))throw new D("array is required");n=k(n,0);let o,l=t._positions,i=l.length;for(e[n++]=i,o=0;o<i;++o,n+=T.packedLength)T.pack(l[o],e,n);let u=t._shape;for(i=u.length,e[n++]=i,o=0;o<i;++o,n+=C.packedLength)C.pack(u[o],e,n);return f.pack(t._ellipsoid,e,n),n+=f.packedLength,g.pack(t._vertexFormat,e,n),n+=g.packedLength,e[n++]=t._cornerType,e[n]=t._granularity,e};var ee=f.clone(f.UNIT_SPHERE),te=new g,v={polylinePositions:void 0,shapePositions:void 0,ellipsoid:ee,vertexFormat:te,cornerType:void 0,granularity:void 0};R.unpack=function(t,e,n){if(!_(t))throw new D("array is required");e=k(e,0);let o,l=t[e++],i=new Array(l);for(o=0;o<l;++o,e+=T.packedLength)i[o]=T.unpack(t,e);l=t[e++];let u=new Array(l);for(o=0;o<l;++o,e+=C.packedLength)u[o]=C.unpack(t,e);let L=f.unpack(t,e,ee);e+=f.packedLength;let E=g.unpack(t,e,te);e+=g.packedLength;let G=t[e++],r=t[e];return _(n)?(n._positions=i,n._shape=u,n._ellipsoid=f.clone(L,n._ellipsoid),n._vertexFormat=g.clone(E,n._vertexFormat),n._cornerType=G,n._granularity=r,n):(v.polylinePositions=i,v.shapePositions=u,v.cornerType=G,v.granularity=r,new R(v))};var ne=new M;R.createGeometry=function(t){let e=t._positions,n=Z(e,T.equalsEpsilon),o=t._shape;if(o=j.removeDuplicatesFromShape(o),n.length<2||o.length<3)return;V.computeWindingOrder2D(o)===$.CLOCKWISE&&o.reverse();let l=M.fromPoints(o,ne),i=j.computePositions(n,o,l,t,!0);return oe(i,o,l,t._vertexFormat)};var H=R;function ie(t,e){return _(e)&&(t=H.unpack(t,e)),t._ellipsoid=f.clone(t._ellipsoid),H.createGeometry(t)}var Re=ie;export{Re as default}; diff --git a/libs/cesium/1.111/Workers/createPolylineVolumeOutlineGeometry.js b/libs/cesium/1.111/Workers/createPolylineVolumeOutlineGeometry.js new file mode 100644 index 000000000..453b536ee --- /dev/null +++ b/libs/cesium/1.111/Workers/createPolylineVolumeOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w}from"./chunk-4HIMVLZZ.js";import{a as N,b as E}from"./chunk-NLQJPKTT.js";import"./chunk-J4D4SQY2.js";import"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import{a as G,b as v}from"./chunk-BVOZOPDI.js";import{a as q}from"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as k}from"./chunk-JZL634RF.js";import{a as O}from"./chunk-3UAKIC5Y.js";import{b as A,c as S,d as R}from"./chunk-QEWKHB6D.js";import{d as C}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{d as _}from"./chunk-KCIWEUSR.js";import{a as b}from"./chunk-7XDW3BZW.js";import{a,c as s}from"./chunk-F33YCXD2.js";import{a as D}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as d}from"./chunk-K36PKEJW.js";import{a as y}from"./chunk-KD2PMTHD.js";import{e as u}from"./chunk-ZUCO5WNM.js";function U(o,i){let t=new O;t.position=new R({componentDatatype:b.DOUBLE,componentsPerAttribute:3,values:o});let e=i.length,r=t.position.values.length/3,f=o.length/3/e,p=k.createTypedArray(r,2*e*(f+1)),m,n,l=0;m=0;let h=m*e;for(n=0;n<e-1;n++)p[l++]=n+h,p[l++]=n+h+1;for(p[l++]=e-1+h,p[l++]=h,m=f-1,h=m*e,n=0;n<e-1;n++)p[l++]=n+h,p[l++]=n+h+1;for(p[l++]=e-1+h,p[l++]=h,m=0;m<f-1;m++){let T=e*m,W=T+e;for(n=0;n<e;n++)p[l++]=n+T,p[l++]=n+W}return new S({attributes:t,indices:k.createTypedArray(r,p),boundingSphere:C.fromVertices(o),primitiveType:A.LINES})}function g(o){o=d(o,d.EMPTY_OBJECT);let i=o.polylinePositions,t=o.shapePositions;if(!u(i))throw new y("options.polylinePositions is required.");if(!u(t))throw new y("options.shapePositions is required.");this._positions=i,this._shape=t,this._ellipsoid=s.clone(d(o.ellipsoid,s.WGS84)),this._cornerType=d(o.cornerType,N.ROUNDED),this._granularity=d(o.granularity,D.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let e=1+i.length*a.packedLength;e+=1+t.length*_.packedLength,this.packedLength=e+s.packedLength+2}g.pack=function(o,i,t){if(!u(o))throw new y("value is required");if(!u(i))throw new y("array is required");t=d(t,0);let e,r=o._positions,c=r.length;for(i[t++]=c,e=0;e<c;++e,t+=a.packedLength)a.pack(r[e],i,t);let f=o._shape;for(c=f.length,i[t++]=c,e=0;e<c;++e,t+=_.packedLength)_.pack(f[e],i,t);return s.pack(o._ellipsoid,i,t),t+=s.packedLength,i[t++]=o._cornerType,i[t]=o._granularity,i};var B=s.clone(s.UNIT_SPHERE),P={polylinePositions:void 0,shapePositions:void 0,ellipsoid:B,height:void 0,cornerType:void 0,granularity:void 0};g.unpack=function(o,i,t){if(!u(o))throw new y("array is required");i=d(i,0);let e,r=o[i++],c=new Array(r);for(e=0;e<r;++e,i+=a.packedLength)c[e]=a.unpack(o,i);r=o[i++];let f=new Array(r);for(e=0;e<r;++e,i+=_.packedLength)f[e]=_.unpack(o,i);let p=s.unpack(o,i,B);i+=s.packedLength;let m=o[i++],n=o[i];return u(t)?(t._positions=c,t._shape=f,t._ellipsoid=s.clone(p,t._ellipsoid),t._cornerType=m,t._granularity=n,t):(P.polylinePositions=c,P.shapePositions=f,P.cornerType=m,P.granularity=n,new g(P))};var M=new w;g.createGeometry=function(o){let i=o._positions,t=q(i,a.equalsEpsilon),e=o._shape;if(e=E.removeDuplicatesFromShape(e),t.length<2||e.length<3)return;v.computeWindingOrder2D(e)===G.CLOCKWISE&&e.reverse();let r=w.fromPoints(e,M),c=E.computePositions(t,e,r,o,!1);return U(c,e)};var L=g;function j(o,i){return u(i)&&(o=L.unpack(o,i)),o._ellipsoid=s.clone(o._ellipsoid),L.createGeometry(o)}var he=j;export{he as default}; diff --git a/libs/cesium/1.111/Workers/createRectangleGeometry.js b/libs/cesium/1.111/Workers/createRectangleGeometry.js new file mode 100644 index 000000000..70f5c5554 --- /dev/null +++ b/libs/cesium/1.111/Workers/createRectangleGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as J}from"./chunk-ZKHPTJEK.js";import{a as Nt}from"./chunk-FDKE3YW2.js";import{a as zt}from"./chunk-3ZQZIWLR.js";import"./chunk-PNRMC4IG.js";import"./chunk-V6ZHITEJ.js";import{a as ut}from"./chunk-N52FZRFP.js";import{a as X}from"./chunk-WIRUK4BS.js";import{b as Rt}from"./chunk-BVOZOPDI.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as yt}from"./chunk-JZL634RF.js";import{a as Vt}from"./chunk-3UAKIC5Y.js";import{b as Mt,c as Pt,d as q}from"./chunk-QEWKHB6D.js";import{d as st,f as Lt}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{c as S,d as G,e as At}from"./chunk-KCIWEUSR.js";import{a as Y}from"./chunk-7XDW3BZW.js";import{a as _,b as wt,c as H,d as ft}from"./chunk-F33YCXD2.js";import{a as W}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as L}from"./chunk-K36PKEJW.js";import{a as Et,b as lt}from"./chunk-KD2PMTHD.js";import{e as $}from"./chunk-ZUCO5WNM.js";var Tt=new _,Bt=new _,Ut=new _,Yt=new _,qt=new S,Zt=new G,Kt=new st,$t=new st;function Xt(t,e){let n=new Pt({attributes:new Vt,primitiveType:Mt.TRIANGLES});return n.attributes.position=new q({componentDatatype:Y.DOUBLE,componentsPerAttribute:3,values:e.positions}),t.normal&&(n.attributes.normal=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:e.normals})),t.tangent&&(n.attributes.tangent=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:e.tangents})),t.bitangent&&(n.attributes.bitangent=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:e.bitangents})),n}function Gt(t,e,n,r){let a=t.length,c=e.normal?new Float32Array(a):void 0,l=e.tangent?new Float32Array(a):void 0,u=e.bitangent?new Float32Array(a):void 0,p=0,d=Yt,o=Ut,i=Bt;if(e.normal||e.tangent||e.bitangent)for(let f=0;f<a;f+=3){let s=_.fromArray(t,f,Tt),h=p+1,g=p+2;i=n.geodeticSurfaceNormal(s,i),(e.tangent||e.bitangent)&&(_.cross(_.UNIT_Z,i,o),ft.multiplyByVector(r,o,o),_.normalize(o,o),e.bitangent&&_.normalize(_.cross(i,o,d),d)),e.normal&&(c[p]=i.x,c[h]=i.y,c[g]=i.z),e.tangent&&(l[p]=o.x,l[h]=o.y,l[g]=o.z),e.bitangent&&(u[p]=d.x,u[h]=d.y,u[g]=d.z),p+=3}return Xt(e,{positions:t,normals:c,tangents:l,bitangents:u})}var Ct=new _,jt=new _;function te(t,e,n){let r=t.length,a=e.normal?new Float32Array(r):void 0,c=e.tangent?new Float32Array(r):void 0,l=e.bitangent?new Float32Array(r):void 0,u=0,p=0,d=0,o=!0,i=Yt,f=Ut,s=Bt;if(e.normal||e.tangent||e.bitangent)for(let h=0;h<r;h+=6){let g=_.fromArray(t,h,Tt),A=_.fromArray(t,(h+6)%r,Ct);if(o){let b=_.fromArray(t,(h+3)%r,jt);_.subtract(A,g,A),_.subtract(b,g,b),s=_.normalize(_.cross(b,A,s),s),o=!1}_.equalsEpsilon(A,g,W.EPSILON10)&&(o=!0),(e.tangent||e.bitangent)&&(i=n.geodeticSurfaceNormal(g,i),e.tangent&&(f=_.normalize(_.cross(i,s,f),f))),e.normal&&(a[u++]=s.x,a[u++]=s.y,a[u++]=s.z,a[u++]=s.x,a[u++]=s.y,a[u++]=s.z),e.tangent&&(c[p++]=f.x,c[p++]=f.y,c[p++]=f.z,c[p++]=f.x,c[p++]=f.y,c[p++]=f.z),e.bitangent&&(l[d++]=i.x,l[d++]=i.y,l[d++]=i.z,l[d++]=i.x,l[d++]=i.y,l[d++]=i.z)}return Xt(e,{positions:t,normals:a,tangents:c,bitangents:l})}function It(t,e){let n=t._vertexFormat,r=t._ellipsoid,a=e.height,c=e.width,l=e.northCap,u=e.southCap,p=0,d=a,o=a,i=0;l&&(p=1,o-=1,i+=1),u&&(d-=1,o-=1,i+=1),i+=c*o;let f=n.position?new Float64Array(i*3):void 0,s=n.st?new Float32Array(i*2):void 0,h=0,g=0,A=Tt,b=Zt,z=Number.MAX_VALUE,F=Number.MAX_VALUE,j=-Number.MAX_VALUE,T=-Number.MAX_VALUE;for(let x=p;x<d;++x)for(let k=0;k<c;++k)J.computePosition(e,r,n.st,x,k,A,b),f[h++]=A.x,f[h++]=A.y,f[h++]=A.z,n.st&&(s[g++]=b.x,s[g++]=b.y,z=Math.min(z,b.x),F=Math.min(F,b.y),j=Math.max(j,b.x),T=Math.max(T,b.y));if(l&&(J.computePosition(e,r,n.st,0,0,A,b),f[h++]=A.x,f[h++]=A.y,f[h++]=A.z,n.st&&(s[g++]=b.x,s[g++]=b.y,z=b.x,F=b.y,j=b.x,T=b.y)),u&&(J.computePosition(e,r,n.st,a-1,0,A,b),f[h++]=A.x,f[h++]=A.y,f[h]=A.z,n.st&&(s[g++]=b.x,s[g]=b.y,z=Math.min(z,b.x),F=Math.min(F,b.y),j=Math.max(j,b.x),T=Math.max(T,b.y))),n.st&&(z<0||F<0||j>1||T>1))for(let x=0;x<s.length;x+=2)s[x]=(s[x]-z)/(j-z),s[x+1]=(s[x+1]-F)/(T-F);let m=Gt(f,n,r,e.tangentRotationMatrix),K=6*(c-1)*(o-1);l&&(K+=3*(c-1)),u&&(K+=3*(c-1));let P=yt.createTypedArray(i,K),D=0,N=0,O;for(O=0;O<o-1;++O){for(let x=0;x<c-1;++x){let k=D,M=k+c,I=M+1,rt=k+1;P[N++]=k,P[N++]=M,P[N++]=rt,P[N++]=rt,P[N++]=M,P[N++]=I,++D}++D}if(l||u){let x=i-1,k=i-1;l&&u&&(x=i-2);let M,I;if(D=0,l)for(O=0;O<c-1;O++)M=D,I=M+1,P[N++]=x,P[N++]=M,P[N++]=I,++D;if(u)for(D=(o-1)*c,O=0;O<c-1;O++)M=D,I=M+1,P[N++]=M,P[N++]=k,P[N++]=I,++D}return m.indices=P,n.st&&(m.attributes.st=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:2,values:s})),m}function ht(t,e,n,r,a){return t[e++]=r[n],t[e++]=r[n+1],t[e++]=r[n+2],t[e++]=a[n],t[e++]=a[n+1],t[e]=a[n+2],t}function pt(t,e,n,r){return t[e++]=r[n],t[e++]=r[n+1],t[e++]=r[n],t[e]=r[n+1],t}var Dt=new X;function ee(t,e){let n=t._shadowVolume,r=t._offsetAttribute,a=t._vertexFormat,c=t._extrudedHeight,l=t._surfaceHeight,u=t._ellipsoid,p=e.height,d=e.width,o;if(n){let R=X.clone(a,Dt);R.normal=!0,t._vertexFormat=R}let i=It(t,e);n&&(t._vertexFormat=a);let f=Rt.scaleToGeodeticHeight(i.attributes.position.values,l,u,!1);f=new Float64Array(f);let s=f.length,h=s*2,g=new Float64Array(h);g.set(f);let A=Rt.scaleToGeodeticHeight(i.attributes.position.values,c,u);g.set(A,s),i.attributes.position.values=g;let b=a.normal?new Float32Array(h):void 0,z=a.tangent?new Float32Array(h):void 0,F=a.bitangent?new Float32Array(h):void 0,j=a.st?new Float32Array(h/3*2):void 0,T,m;if(a.normal){for(m=i.attributes.normal.values,b.set(m),o=0;o<s;o++)m[o]=-m[o];b.set(m,s),i.attributes.normal.values=b}if(n){m=i.attributes.normal.values,a.normal||(i.attributes.normal=void 0);let R=new Float32Array(h);for(o=0;o<s;o++)m[o]=-m[o];R.set(m,s),i.attributes.extrudeDirection=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:R})}let K,P=$(r);if(P){let R=s/3*2,at=new Uint8Array(R);r===ut.TOP?at=at.fill(1,0,R/2):(K=r===ut.NONE?0:1,at=at.fill(K)),i.attributes.applyOffset=new q({componentDatatype:Y.UNSIGNED_BYTE,componentsPerAttribute:1,values:at})}if(a.tangent){let R=i.attributes.tangent.values;for(z.set(R),o=0;o<s;o++)R[o]=-R[o];z.set(R,s),i.attributes.tangent.values=z}if(a.bitangent){let R=i.attributes.bitangent.values;F.set(R),F.set(R,s),i.attributes.bitangent.values=F}a.st&&(T=i.attributes.st.values,j.set(T),j.set(T,s/3*2),i.attributes.st.values=j);let D=i.indices,N=D.length,O=s/3,x=yt.createTypedArray(h/3,N*2);for(x.set(D),o=0;o<N;o+=3)x[o+N]=D[o+2]+O,x[o+1+N]=D[o+1]+O,x[o+2+N]=D[o]+O;i.indices=x;let k=e.northCap,M=e.southCap,I=p,rt=2,dt=0,xt=4,St=4;k&&(rt-=1,I-=1,dt+=1,xt-=2,St-=1),M&&(rt-=1,I-=1,dt+=1,xt-=2,St-=1),dt+=rt*d+2*I-xt;let gt=(dt+St)*2,C=new Float64Array(gt*3),E=n?new Float32Array(gt*3):void 0,Z=P?new Uint8Array(gt):void 0,V=a.st?new Float32Array(gt*2):void 0,et=r===ut.TOP;P&&!et&&(K=r===ut.ALL?1:0,Z=Z.fill(K));let v=0,B=0,y=0,U=0,nt=d*I,w;for(o=0;o<nt;o+=d)w=o*3,C=ht(C,v,w,f,A),v+=6,a.st&&(V=pt(V,B,o*2,T),B+=4),n&&(y+=3,E[y++]=m[w],E[y++]=m[w+1],E[y++]=m[w+2]),et&&(Z[U++]=1,U+=1);if(M){let R=k?nt+1:nt;for(w=R*3,o=0;o<2;o++)C=ht(C,v,w,f,A),v+=6,a.st&&(V=pt(V,B,R*2,T),B+=4),n&&(y+=3,E[y++]=m[w],E[y++]=m[w+1],E[y++]=m[w+2]),et&&(Z[U++]=1,U+=1)}else for(o=nt-d;o<nt;o++)w=o*3,C=ht(C,v,w,f,A),v+=6,a.st&&(V=pt(V,B,o*2,T),B+=4),n&&(y+=3,E[y++]=m[w],E[y++]=m[w+1],E[y++]=m[w+2]),et&&(Z[U++]=1,U+=1);for(o=nt-1;o>0;o-=d)w=o*3,C=ht(C,v,w,f,A),v+=6,a.st&&(V=pt(V,B,o*2,T),B+=4),n&&(y+=3,E[y++]=m[w],E[y++]=m[w+1],E[y++]=m[w+2]),et&&(Z[U++]=1,U+=1);if(k){let R=nt;for(w=R*3,o=0;o<2;o++)C=ht(C,v,w,f,A),v+=6,a.st&&(V=pt(V,B,R*2,T),B+=4),n&&(y+=3,E[y++]=m[w],E[y++]=m[w+1],E[y++]=m[w+2]),et&&(Z[U++]=1,U+=1)}else for(o=d-1;o>=0;o--)w=o*3,C=ht(C,v,w,f,A),v+=6,a.st&&(V=pt(V,B,o*2,T),B+=4),n&&(y+=3,E[y++]=m[w],E[y++]=m[w+1],E[y++]=m[w+2]),et&&(Z[U++]=1,U+=1);let ot=te(C,a,u);a.st&&(ot.attributes.st=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:2,values:V})),n&&(ot.attributes.extrudeDirection=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:E})),P&&(ot.attributes.applyOffset=new q({componentDatatype:Y.UNSIGNED_BYTE,componentsPerAttribute:1,values:Z}));let it=yt.createTypedArray(gt,dt*6),mt,_t,kt,bt;s=C.length/3;let ct=0;for(o=0;o<s-1;o+=2){mt=o,bt=(mt+2)%s;let R=_.fromArray(C,mt*3,Ct),at=_.fromArray(C,bt*3,jt);_.equalsEpsilon(R,at,W.EPSILON10)||(_t=(mt+1)%s,kt=(_t+2)%s,it[ct++]=mt,it[ct++]=_t,it[ct++]=bt,it[ct++]=bt,it[ct++]=_t,it[ct++]=kt)}return ot.indices=it,ot=zt.combineInstances([new Nt({geometry:i}),new Nt({geometry:ot})]),ot[0]}var ne=[new _,new _,new _,new _],Wt=new wt,oe=new wt;function Ht(t,e,n,r,a){if(n===0)return S.clone(t,a);let c=J.computeOptions(t,e,n,0,qt,Wt),l=c.height,u=c.width,p=ne;return J.computePosition(c,r,!1,0,0,p[0]),J.computePosition(c,r,!1,0,u-1,p[1]),J.computePosition(c,r,!1,l-1,0,p[2]),J.computePosition(c,r,!1,l-1,u-1,p[3]),S.fromCartesianArray(p,r,a)}function Q(t){t=L(t,L.EMPTY_OBJECT);let e=t.rectangle;if(lt.typeOf.object("rectangle",e),S.validate(e),e.north<e.south)throw new Et("options.rectangle.north must be greater than or equal to options.rectangle.south");let n=L(t.height,0),r=L(t.extrudedHeight,n);this._rectangle=S.clone(e),this._granularity=L(t.granularity,W.RADIANS_PER_DEGREE),this._ellipsoid=H.clone(L(t.ellipsoid,H.WGS84)),this._surfaceHeight=Math.max(n,r),this._rotation=L(t.rotation,0),this._stRotation=L(t.stRotation,0),this._vertexFormat=X.clone(L(t.vertexFormat,X.DEFAULT)),this._extrudedHeight=Math.min(n,r),this._shadowVolume=L(t.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=t.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}Q.packedLength=S.packedLength+H.packedLength+X.packedLength+7;Q.pack=function(t,e,n){return lt.typeOf.object("value",t),lt.defined("array",e),n=L(n,0),S.pack(t._rectangle,e,n),n+=S.packedLength,H.pack(t._ellipsoid,e,n),n+=H.packedLength,X.pack(t._vertexFormat,e,n),n+=X.packedLength,e[n++]=t._granularity,e[n++]=t._surfaceHeight,e[n++]=t._rotation,e[n++]=t._stRotation,e[n++]=t._extrudedHeight,e[n++]=t._shadowVolume?1:0,e[n]=L(t._offsetAttribute,-1),e};var Jt=new S,Qt=H.clone(H.UNIT_SPHERE),tt={rectangle:Jt,ellipsoid:Qt,vertexFormat:Dt,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Q.unpack=function(t,e,n){lt.defined("array",t),e=L(e,0);let r=S.unpack(t,e,Jt);e+=S.packedLength;let a=H.unpack(t,e,Qt);e+=H.packedLength;let c=X.unpack(t,e,Dt);e+=X.packedLength;let l=t[e++],u=t[e++],p=t[e++],d=t[e++],o=t[e++],i=t[e++]===1,f=t[e];return $(n)?(n._rectangle=S.clone(r,n._rectangle),n._ellipsoid=H.clone(a,n._ellipsoid),n._vertexFormat=X.clone(c,n._vertexFormat),n._granularity=l,n._surfaceHeight=u,n._rotation=p,n._stRotation=d,n._extrudedHeight=o,n._shadowVolume=i,n._offsetAttribute=f===-1?void 0:f,n):(tt.granularity=l,tt.height=u,tt.rotation=p,tt.stRotation=d,tt.extrudedHeight=o,tt.shadowVolume=i,tt.offsetAttribute=f===-1?void 0:f,new Q(tt))};Q.computeRectangle=function(t,e){t=L(t,L.EMPTY_OBJECT);let n=t.rectangle;if(lt.typeOf.object("rectangle",n),S.validate(n),n.north<n.south)throw new Et("options.rectangle.north must be greater than or equal to options.rectangle.south");let r=L(t.granularity,W.RADIANS_PER_DEGREE),a=L(t.ellipsoid,H.WGS84),c=L(t.rotation,0);return Ht(n,r,c,a,e)};var ie=new ft,Ft=new Lt,ae=new wt;Q.createGeometry=function(t){if(W.equalsEpsilon(t._rectangle.north,t._rectangle.south,W.EPSILON10)||W.equalsEpsilon(t._rectangle.east,t._rectangle.west,W.EPSILON10))return;let e=t._rectangle,n=t._ellipsoid,r=t._rotation,a=t._stRotation,c=t._vertexFormat,l=J.computeOptions(e,t._granularity,r,a,qt,Wt,oe),u=ie;if(a!==0||r!==0){let s=S.center(e,ae),h=n.geodeticSurfaceNormalCartographic(s,Ct);Lt.fromAxisAngle(h,-a,Ft),ft.fromQuaternion(Ft,u)}else ft.clone(ft.IDENTITY,u);let p=t._surfaceHeight,d=t._extrudedHeight,o=!W.equalsEpsilon(p,d,0,W.EPSILON2);l.lonScalar=1/t._rectangle.width,l.latScalar=1/t._rectangle.height,l.tangentRotationMatrix=u;let i,f;if(e=t._rectangle,o){i=ee(t,l);let s=st.fromRectangle3D(e,n,p,$t),h=st.fromRectangle3D(e,n,d,Kt);f=st.union(s,h)}else{if(i=It(t,l),i.attributes.position.values=Rt.scaleToGeodeticHeight(i.attributes.position.values,p,n,!1),$(t._offsetAttribute)){let s=i.attributes.position.values.length,h=t._offsetAttribute===ut.NONE?0:1,g=new Uint8Array(s/3).fill(h);i.attributes.applyOffset=new q({componentDatatype:Y.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}f=st.fromRectangle3D(e,n,p)}return c.position||delete i.attributes.position,new Pt({attributes:i.attributes,indices:i.indices,primitiveType:i.primitiveType,boundingSphere:f,offsetAttribute:t._offsetAttribute})};Q.createShadowVolume=function(t,e,n){let r=t._granularity,a=t._ellipsoid,c=e(r,a),l=n(r,a);return new Q({rectangle:t._rectangle,rotation:t._rotation,ellipsoid:a,stRotation:t._stRotation,granularity:r,extrudedHeight:l,height:c,vertexFormat:X.POSITION_ONLY,shadowVolume:!0})};var vt=new S,se=[new G,new G,new G],re=new At,ce=new wt;function le(t){if(t._stRotation===0)return[0,0,0,1,1,0];let e=S.clone(t._rectangle,vt),n=t._granularity,r=t._ellipsoid,a=t._rotation-t._stRotation,c=Ht(e,n,a,r,vt),l=se;l[0].x=c.west,l[0].y=c.south,l[1].x=c.west,l[1].y=c.north,l[2].x=c.east,l[2].y=c.south;let u=t.rectangle,p=At.fromRotation(t._stRotation,re),d=S.center(u,ce);for(let h=0;h<3;++h){let g=l[h];g.x-=d.longitude,g.y-=d.latitude,At.multiplyByVector(p,g,g),g.x+=d.longitude,g.y+=d.latitude,g.x=(g.x-u.west)/u.width,g.y=(g.y-u.south)/u.height}let o=l[0],i=l[1],f=l[2],s=new Array(6);return G.pack(o,s),G.pack(i,s,2),G.pack(f,s,4),s}Object.defineProperties(Q.prototype,{rectangle:{get:function(){return $(this._rotatedRectangle)||(this._rotatedRectangle=Ht(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return $(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=le(this)),this._textureCoordinateRotationPoints}}});var Ot=Q;function fe(t,e){return $(e)&&(t=Ot.unpack(t,e)),t._ellipsoid=H.clone(t._ellipsoid),t._rectangle=S.clone(t._rectangle),Ot.createGeometry(t)}var Ye=fe;export{Ye as default}; diff --git a/libs/cesium/1.111/Workers/createRectangleOutlineGeometry.js b/libs/cesium/1.111/Workers/createRectangleOutlineGeometry.js new file mode 100644 index 000000000..04bb91395 --- /dev/null +++ b/libs/cesium/1.111/Workers/createRectangleOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as N}from"./chunk-ZKHPTJEK.js";import{a as z}from"./chunk-N52FZRFP.js";import{b as B}from"./chunk-BVOZOPDI.js";import"./chunk-BSXS3UVL.js";import{a as O}from"./chunk-JZL634RF.js";import{a as F}from"./chunk-3UAKIC5Y.js";import{b as q,c as x,d as v}from"./chunk-QEWKHB6D.js";import{d as C}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{c as m}from"./chunk-KCIWEUSR.js";import{a as y}from"./chunk-7XDW3BZW.js";import{a as M,b as Y,c as b}from"./chunk-F33YCXD2.js";import{a as P}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as A}from"./chunk-K36PKEJW.js";import{a as k}from"./chunk-KD2PMTHD.js";import{e as S}from"./chunk-ZUCO5WNM.js";var j=new C,K=new C,Q=new M,X=new m;function V(t,e){let o=t._ellipsoid,g=e.height,r=e.width,d=e.northCap,h=e.southCap,a=g,w=2,u=0,E=4;d&&(w-=1,a-=1,u+=1,E-=2),h&&(w-=1,a-=1,u+=1,E-=2),u+=w*r+2*a-E;let i=new Float64Array(u*3),n=0,l=0,p,s=Q;if(d)N.computePosition(e,o,!1,l,0,s),i[n++]=s.x,i[n++]=s.y,i[n++]=s.z;else for(p=0;p<r;p++)N.computePosition(e,o,!1,l,p,s),i[n++]=s.x,i[n++]=s.y,i[n++]=s.z;for(p=r-1,l=1;l<g;l++)N.computePosition(e,o,!1,l,p,s),i[n++]=s.x,i[n++]=s.y,i[n++]=s.z;if(l=g-1,!h)for(p=r-2;p>=0;p--)N.computePosition(e,o,!1,l,p,s),i[n++]=s.x,i[n++]=s.y,i[n++]=s.z;for(p=0,l=g-2;l>0;l--)N.computePosition(e,o,!1,l,p,s),i[n++]=s.x,i[n++]=s.y,i[n++]=s.z;let T=i.length/3*2,R=O.createTypedArray(i.length/3,T),c=0;for(let H=0;H<i.length/3-1;H++)R[c++]=H,R[c++]=H+1;R[c++]=i.length/3-1,R[c++]=0;let f=new x({attributes:new F,primitiveType:q.LINES});return f.attributes.position=new v({componentDatatype:y.DOUBLE,componentsPerAttribute:3,values:i}),f.indices=R,f}function Z(t,e){let o=t._surfaceHeight,g=t._extrudedHeight,r=t._ellipsoid,d=g,h=o,a=V(t,e),w=e.height,u=e.width,E=B.scaleToGeodeticHeight(a.attributes.position.values,h,r,!1),i=E.length,n=new Float64Array(i*2);n.set(E);let l=B.scaleToGeodeticHeight(a.attributes.position.values,d,r);n.set(l,i),a.attributes.position.values=n;let p=e.northCap,s=e.southCap,T=4;p&&(T-=1),s&&(T-=1);let R=(n.length/3+T)*2,c=O.createTypedArray(n.length/3,R);i=n.length/6;let f=0;for(let _=0;_<i-1;_++)c[f++]=_,c[f++]=_+1,c[f++]=_+i,c[f++]=_+i+1;c[f++]=i-1,c[f++]=0,c[f++]=i+i-1,c[f++]=i,c[f++]=0,c[f++]=i;let H;if(p)H=w-1;else{let _=u-1;c[f++]=_,c[f++]=_+i,H=u+w-2}if(c[f++]=H,c[f++]=H+i,!s){let _=u+H-1;c[f++]=_,c[f]=_+i}return a.indices=c,a}function D(t){t=A(t,A.EMPTY_OBJECT);let e=t.rectangle,o=A(t.granularity,P.RADIANS_PER_DEGREE),g=A(t.ellipsoid,b.WGS84),r=A(t.rotation,0);if(!S(e))throw new k("rectangle is required.");if(m.validate(e),e.north<e.south)throw new k("options.rectangle.north must be greater than options.rectangle.south");let d=A(t.height,0),h=A(t.extrudedHeight,d);this._rectangle=m.clone(e),this._granularity=o,this._ellipsoid=g,this._surfaceHeight=Math.max(d,h),this._rotation=r,this._extrudedHeight=Math.min(d,h),this._offsetAttribute=t.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}D.packedLength=m.packedLength+b.packedLength+5;D.pack=function(t,e,o){if(!S(t))throw new k("value is required");if(!S(e))throw new k("array is required");return o=A(o,0),m.pack(t._rectangle,e,o),o+=m.packedLength,b.pack(t._ellipsoid,e,o),o+=b.packedLength,e[o++]=t._granularity,e[o++]=t._surfaceHeight,e[o++]=t._rotation,e[o++]=t._extrudedHeight,e[o]=A(t._offsetAttribute,-1),e};var J=new m,W=b.clone(b.UNIT_SPHERE),L={rectangle:J,ellipsoid:W,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};D.unpack=function(t,e,o){if(!S(t))throw new k("array is required");e=A(e,0);let g=m.unpack(t,e,J);e+=m.packedLength;let r=b.unpack(t,e,W);e+=b.packedLength;let d=t[e++],h=t[e++],a=t[e++],w=t[e++],u=t[e];return S(o)?(o._rectangle=m.clone(g,o._rectangle),o._ellipsoid=b.clone(r,o._ellipsoid),o._surfaceHeight=h,o._rotation=a,o._extrudedHeight=w,o._offsetAttribute=u===-1?void 0:u,o):(L.granularity=d,L.height=h,L.rotation=a,L.extrudedHeight=w,L.offsetAttribute=u===-1?void 0:u,new D(L))};var $=new Y;D.createGeometry=function(t){let e=t._rectangle,o=t._ellipsoid,g=N.computeOptions(e,t._granularity,t._rotation,0,X,$),r,d;if(P.equalsEpsilon(e.north,e.south,P.EPSILON10)||P.equalsEpsilon(e.east,e.west,P.EPSILON10))return;let h=t._surfaceHeight,a=t._extrudedHeight,w=!P.equalsEpsilon(h,a,0,P.EPSILON2),u;if(w){if(r=Z(t,g),S(t._offsetAttribute)){let n=r.attributes.position.values.length/3,l=new Uint8Array(n);t._offsetAttribute===z.TOP?l=l.fill(1,0,n/2):(u=t._offsetAttribute===z.NONE?0:1,l=l.fill(u)),r.attributes.applyOffset=new v({componentDatatype:y.UNSIGNED_BYTE,componentsPerAttribute:1,values:l})}let E=C.fromRectangle3D(e,o,h,K),i=C.fromRectangle3D(e,o,a,j);d=C.union(E,i)}else{if(r=V(t,g),r.attributes.position.values=B.scaleToGeodeticHeight(r.attributes.position.values,h,o,!1),S(t._offsetAttribute)){let E=r.attributes.position.values.length;u=t._offsetAttribute===z.NONE?0:1;let i=new Uint8Array(E/3).fill(u);r.attributes.applyOffset=new v({componentDatatype:y.UNSIGNED_BYTE,componentsPerAttribute:1,values:i})}d=C.fromRectangle3D(e,o,h)}return new x({attributes:r.attributes,indices:r.indices,primitiveType:q.LINES,boundingSphere:d,offsetAttribute:t._offsetAttribute})};var U=D;function G(t,e){return S(e)&&(t=U.unpack(t,e)),t._ellipsoid=b.clone(t._ellipsoid),t._rectangle=m.clone(t._rectangle),U.createGeometry(t)}var Ht=G;export{Ht as default}; diff --git a/libs/cesium/1.111/Workers/createSimplePolylineGeometry.js b/libs/cesium/1.111/Workers/createSimplePolylineGeometry.js new file mode 100644 index 000000000..0a0463994 --- /dev/null +++ b/libs/cesium/1.111/Workers/createSimplePolylineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-VFOAUMZG.js";import{a as L}from"./chunk-6FTJPHAD.js";import{a as E}from"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as X}from"./chunk-JZL634RF.js";import{a as Q}from"./chunk-3UAKIC5Y.js";import{b as j,c as K,d as Y}from"./chunk-QEWKHB6D.js";import{d as W}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as H}from"./chunk-7XDW3BZW.js";import{a as k,c as b}from"./chunk-F33YCXD2.js";import{a as q}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as w}from"./chunk-K36PKEJW.js";import{a as D}from"./chunk-KD2PMTHD.js";import{e as u}from"./chunk-ZUCO5WNM.js";function Z(t,e,o,i,s,c,p){let g=E.numberOfPoints(t,e,s),f,n=o.red,m=o.green,d=o.blue,T=o.alpha,l=i.red,h=i.green,y=i.blue,V=i.alpha;if(r.equals(o,i)){for(f=0;f<g;f++)c[p++]=r.floatToByte(n),c[p++]=r.floatToByte(m),c[p++]=r.floatToByte(d),c[p++]=r.floatToByte(T);return p}let M=(l-n)/g,C=(h-m)/g,G=(y-d)/g,_=(V-T)/g,a=p;for(f=0;f<g;f++)c[a++]=r.floatToByte(n+f*M),c[a++]=r.floatToByte(m+f*C),c[a++]=r.floatToByte(d+f*G),c[a++]=r.floatToByte(T+f*_);return a}function R(t){t=w(t,w.EMPTY_OBJECT);let e=t.positions,o=t.colors,i=w(t.colorsPerVertex,!1);if(!u(e)||e.length<2)throw new D("At least two positions are required.");if(u(o)&&(i&&o.length<e.length||!i&&o.length<e.length-1))throw new D("colors has an invalid length.");this._positions=e,this._colors=o,this._colorsPerVertex=i,this._arcType=w(t.arcType,L.GEODESIC),this._granularity=w(t.granularity,q.RADIANS_PER_DEGREE),this._ellipsoid=w(t.ellipsoid,b.WGS84),this._workerName="createSimplePolylineGeometry";let s=1+e.length*k.packedLength;s+=u(o)?1+o.length*r.packedLength:1,this.packedLength=s+b.packedLength+3}R.pack=function(t,e,o){if(!u(t))throw new D("value is required");if(!u(e))throw new D("array is required");o=w(o,0);let i,s=t._positions,c=s.length;for(e[o++]=c,i=0;i<c;++i,o+=k.packedLength)k.pack(s[i],e,o);let p=t._colors;for(c=u(p)?p.length:0,e[o++]=c,i=0;i<c;++i,o+=r.packedLength)r.pack(p[i],e,o);return b.pack(t._ellipsoid,e,o),o+=b.packedLength,e[o++]=t._colorsPerVertex?1:0,e[o++]=t._arcType,e[o]=t._granularity,e};R.unpack=function(t,e,o){if(!u(t))throw new D("array is required");e=w(e,0);let i,s=t[e++],c=new Array(s);for(i=0;i<s;++i,e+=k.packedLength)c[i]=k.unpack(t,e);s=t[e++];let p=s>0?new Array(s):void 0;for(i=0;i<s;++i,e+=r.packedLength)p[i]=r.unpack(t,e);let g=b.unpack(t,e);e+=b.packedLength;let f=t[e++]===1,n=t[e++],m=t[e];return u(o)?(o._positions=c,o._colors=p,o._ellipsoid=g,o._colorsPerVertex=f,o._arcType=n,o._granularity=m,o):new R({positions:c,colors:p,ellipsoid:g,colorsPerVertex:f,arcType:n,granularity:m})};var F=new Array(2),N=new Array(2),$={positions:F,height:N,ellipsoid:void 0,minDistance:void 0,granularity:void 0};R.createGeometry=function(t){let e=t._positions,o=t._colors,i=t._colorsPerVertex,s=t._arcType,c=t._granularity,p=t._ellipsoid,g=q.chordLength(c,p.maximumRadius),f=u(o)&&!i,n,m=e.length,d,T,l,h,y=0;if(s===L.GEODESIC||s===L.RHUMB){let _,a,P;s===L.GEODESIC?(_=q.chordLength(c,p.maximumRadius),a=E.numberOfPoints,P=E.generateArc):(_=c,a=E.numberOfPointsRhumbLine,P=E.generateRhumbArc);let v=E.extractHeights(e,p),B=$;if(s===L.GEODESIC?B.minDistance=g:B.granularity=c,B.ellipsoid=p,f){let A=0;for(n=0;n<m-1;n++)A+=a(e[n],e[n+1],_)+1;d=new Float64Array(A*3),l=new Uint8Array(A*4),B.positions=F,B.height=N;let S=0;for(n=0;n<m-1;++n){F[0]=e[n],F[1]=e[n+1],N[0]=v[n],N[1]=v[n+1];let O=P(B);if(u(o)){let z=O.length/3;h=o[n];for(let U=0;U<z;++U)l[S++]=r.floatToByte(h.red),l[S++]=r.floatToByte(h.green),l[S++]=r.floatToByte(h.blue),l[S++]=r.floatToByte(h.alpha)}d.set(O,y),y+=O.length}}else if(B.positions=e,B.height=v,d=new Float64Array(P(B)),u(o)){for(l=new Uint8Array(d.length/3*4),n=0;n<m-1;++n){let S=e[n],O=e[n+1],z=o[n],U=o[n+1];y=Z(S,O,z,U,g,l,y)}let A=o[m-1];l[y++]=r.floatToByte(A.red),l[y++]=r.floatToByte(A.green),l[y++]=r.floatToByte(A.blue),l[y++]=r.floatToByte(A.alpha)}}else{T=f?m*2-2:m,d=new Float64Array(T*3),l=u(o)?new Uint8Array(T*4):void 0;let _=0,a=0;for(n=0;n<m;++n){let P=e[n];if(f&&n>0&&(k.pack(P,d,_),_+=3,h=o[n-1],l[a++]=r.floatToByte(h.red),l[a++]=r.floatToByte(h.green),l[a++]=r.floatToByte(h.blue),l[a++]=r.floatToByte(h.alpha)),f&&n===m-1)break;k.pack(P,d,_),_+=3,u(o)&&(h=o[n],l[a++]=r.floatToByte(h.red),l[a++]=r.floatToByte(h.green),l[a++]=r.floatToByte(h.blue),l[a++]=r.floatToByte(h.alpha))}}let V=new Q;V.position=new Y({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:d}),u(o)&&(V.color=new Y({componentDatatype:H.UNSIGNED_BYTE,componentsPerAttribute:4,values:l,normalize:!0})),T=d.length/3;let M=(T-1)*2,C=X.createTypedArray(T,M),G=0;for(n=0;n<T-1;++n)C[G++]=n,C[G++]=n+1;return new K({attributes:V,indices:C,primitiveType:j.LINES,boundingSphere:W.fromPoints(e)})};var J=R;function x(t,e){return u(e)&&(t=J.unpack(t,e)),t._ellipsoid=b.clone(t._ellipsoid),J.createGeometry(t)}var _e=x;export{_e as default}; diff --git a/libs/cesium/1.111/Workers/createSphereGeometry.js b/libs/cesium/1.111/Workers/createSphereGeometry.js new file mode 100644 index 000000000..0c7abd387 --- /dev/null +++ b/libs/cesium/1.111/Workers/createSphereGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-Y664VY52.js";import"./chunk-N52FZRFP.js";import{a as m}from"./chunk-WIRUK4BS.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as s}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as l}from"./chunk-K36PKEJW.js";import{b as p}from"./chunk-KD2PMTHD.js";import{e as c}from"./chunk-ZUCO5WNM.js";function n(e){let t=l(e.radius,1),o={radii:new s(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new r(o),this._workerName="createSphereGeometry"}n.packedLength=r.packedLength;n.pack=function(e,t,a){return p.typeOf.object("value",e),r.pack(e._ellipsoidGeometry,t,a)};var f=new r,i={radius:void 0,radii:new s,vertexFormat:new m,stackPartitions:void 0,slicePartitions:void 0};n.unpack=function(e,t,a){let o=r.unpack(e,t,f);return i.vertexFormat=m.clone(o._vertexFormat,i.vertexFormat),i.stackPartitions=o._stackPartitions,i.slicePartitions=o._slicePartitions,c(a)?(s.clone(o._radii,i.radii),a._ellipsoidGeometry=new r(i),a):(i.radius=o._radii.x,new n(i))};n.createGeometry=function(e){return r.createGeometry(e._ellipsoidGeometry)};var d=n;function u(e,t){return c(t)&&(e=d.unpack(e,t)),d.createGeometry(e)}var v=u;export{v as default}; diff --git a/libs/cesium/1.111/Workers/createSphereOutlineGeometry.js b/libs/cesium/1.111/Workers/createSphereOutlineGeometry.js new file mode 100644 index 000000000..228c328ec --- /dev/null +++ b/libs/cesium/1.111/Workers/createSphereOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-DEMPH3MF.js";import"./chunk-N52FZRFP.js";import"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as d}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as l}from"./chunk-K36PKEJW.js";import{b as u}from"./chunk-KD2PMTHD.js";import{e as a}from"./chunk-ZUCO5WNM.js";function s(i){let e=l(i.radius,1),r={radii:new d(e,e,e),stackPartitions:i.stackPartitions,slicePartitions:i.slicePartitions,subdivisions:i.subdivisions};this._ellipsoidGeometry=new t(r),this._workerName="createSphereOutlineGeometry"}s.packedLength=t.packedLength;s.pack=function(i,e,o){return u.typeOf.object("value",i),t.pack(i._ellipsoidGeometry,e,o)};var m=new t,n={radius:void 0,radii:new d,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};s.unpack=function(i,e,o){let r=t.unpack(i,e,m);return n.stackPartitions=r._stackPartitions,n.slicePartitions=r._slicePartitions,n.subdivisions=r._subdivisions,a(o)?(d.clone(r._radii,n.radii),o._ellipsoidGeometry=new t(n),o):(n.radius=r._radii.x,new s(n))};s.createGeometry=function(i){return t.createGeometry(i._ellipsoidGeometry)};var c=s;function p(i,e){return a(e)&&(i=c.unpack(i,e)),c.createGeometry(i)}var w=p;export{w as default}; diff --git a/libs/cesium/1.111/Workers/createTaskProcessorWorker.js b/libs/cesium/1.111/Workers/createTaskProcessorWorker.js new file mode 100644 index 000000000..2dcf48de9 --- /dev/null +++ b/libs/cesium/1.111/Workers/createTaskProcessorWorker.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-4M7FKQYC.js";import"./chunk-ZUCO5WNM.js";export{a as default}; diff --git a/libs/cesium/1.111/Workers/createVectorTileClampedPolylines.js b/libs/cesium/1.111/Workers/createVectorTileClampedPolylines.js new file mode 100644 index 000000000..a53d8b348 --- /dev/null +++ b/libs/cesium/1.111/Workers/createVectorTileClampedPolylines.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as J}from"./chunk-4M7FKQYC.js";import{a as Y}from"./chunk-PNRMC4IG.js";import{a as B}from"./chunk-JZL634RF.js";import{a as X}from"./chunk-4FFHQQYZ.js";import{c as W}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as t,b as k,c as _}from"./chunk-F33YCXD2.js";import{a as v}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import"./chunk-ZUCO5WNM.js";var V=32767,it=Math.cos(v.toRadians(150)),ct=new k,rt=new t;function at(e,o,c,i,s,A,h){let g=e.length,f=new Float64Array(g*3);for(let d=0;d<g;++d){let l=e[d],r=o[d],E=c[d],n=v.lerp(i.west,i.east,l/V),p=v.lerp(i.south,i.north,r/V),w=v.lerp(s,A,E/V),x=k.fromRadians(n,p,w,ct),P=h.cartographicToCartesian(x,rt);t.pack(P,f,d*3)}return f}function dt(e){let o=e.length,c=new Uint32Array(o+1),i=0;for(let s=0;s<o;++s)c[s]=i,i+=e[s];return c[o]=i,c}var lt=new k,ht=new k;function ft(e,o,c,i){let s=i.length,A=e.length,h=new Uint8Array(A),g=lt,f=ht,d=0;for(let r=0;r<s;r++){let E=i[r],n=E;for(let p=1;p<E;p++){let w=d+p,x=w-1;f.longitude=e[w],f.latitude=o[w],g.longitude=e[x],g.latitude=o[x],k.equals(f,g)&&(n--,h[x]=1)}i[r]=n,d+=E}let l=0;for(let r=0;r<A;r++)h[r]!==1&&(e[l]=e[r],o[l]=o[r],c[l]=c[r],l++)}function ot(e){let o=e*8,c=o*3,i=o*4;this.startEllipsoidNormals=new Float32Array(c),this.endEllipsoidNormals=new Float32Array(c),this.startPositionAndHeights=new Float32Array(i),this.startFaceNormalAndVertexCornerIds=new Float32Array(i),this.endPositionAndHeights=new Float32Array(i),this.endFaceNormalAndHalfWidths=new Float32Array(i),this.vertexBatchIds=new Uint16Array(o),this.indices=B.createTypedArray(o,36*e),this.vec3Offset=0,this.vec4Offset=0,this.batchIdOffset=0,this.indexOffset=0,this.volumeStartIndex=0}var Q=new t,pt=new t;function $(e,o,c,i,s){let A=t.subtract(c,o,pt),h=t.subtract(o,e,Q);return t.normalize(A,A),t.normalize(h,h),t.dot(A,h)<it&&(h=t.multiplyByScalar(h,-1,Q)),t.add(A,h,s),t.equals(s,t.ZERO)&&(s=t.subtract(e,o)),t.cross(s,i,s),t.cross(i,s,s),t.normalize(s,s),s}var st=[0,2,6,0,6,4,0,1,3,0,3,2,0,4,5,0,5,1,5,3,1,5,7,3,7,5,4,7,4,6,7,6,2,7,2,3],j=st.length,tt=new t,ut=new t,mt=new t,At=new t,Nt=new t;ot.prototype.addVolume=function(e,o,c,i,s,A,h,g,f,d){let l=t.add(o,f,tt),r=d.geodeticSurfaceNormal(l,ut);l=t.add(c,f,tt);let E=d.geodeticSurfaceNormal(l,At),n=$(e,o,c,r,mt),p=$(i,c,o,E,Nt),w=this.startEllipsoidNormals,x=this.endEllipsoidNormals,P=this.startPositionAndHeights,H=this.startFaceNormalAndVertexCornerIds,b=this.endPositionAndHeights,a=this.endFaceNormalAndHalfWidths,F=this.vertexBatchIds,m=this.batchIdOffset,I=this.vec3Offset,u=this.vec4Offset,N;for(N=0;N<8;N++)t.pack(r,w,I),t.pack(E,x,I),t.pack(o,P,u),P[u+3]=s,t.pack(c,b,u),b[u+3]=A,t.pack(n,H,u),H[u+3]=N,t.pack(p,a,u),a[u+3]=h,F[m++]=g,I+=3,u+=4;this.batchIdOffset=m,this.vec3Offset=I,this.vec4Offset=u;let C=this.indices,y=this.volumeStartIndex,z=this.indexOffset;for(N=0;N<j;N++)C[z+N]=st[N]+y;this.volumeStartIndex+=8,this.indexOffset+=j};var gt=new W,Et=new _,wt=new t,M=new t,It=new t,xt=new t,T=new t;function Pt(e,o){let c=new Uint16Array(e.positions),i=new Uint16Array(e.widths),s=new Uint32Array(e.counts),A=new Uint16Array(e.batchIds),h=gt,g=Et,f=wt,d=new Float64Array(e.packedBuffer),l=0,r=d[l++],E=d[l++];W.unpack(d,l,h),l+=W.packedLength,_.unpack(d,l,g),l+=_.packedLength,t.unpack(d,l,f);let n,p=c.length/3,w=c.subarray(0,p),x=c.subarray(p,2*p),P=c.subarray(2*p,3*p);Y.zigZagDeltaDecode(w,x,P),ft(w,x,P,s);let H=s.length,b=0;for(n=0;n<H;n++){let y=s[n];b+=y-1}let a=new ot(b),F=at(w,x,P,h,r,E,g,f);p=w.length;let m=new Float32Array(p*3);for(n=0;n<p;++n)m[n*3]=F[n*3]-f.x,m[n*3+1]=F[n*3+1]-f.y,m[n*3+2]=F[n*3+2]-f.z;let I=0,u=0;for(n=0;n<H;n++){let y=s[n]-1,z=i[n]*.5,et=A[n],q=I;for(let D=0;D<y;D++){let S=t.unpack(m,I,It),O=t.unpack(m,I+3,xt),G=P[u],Z=P[u+1];G=v.lerp(r,E,G/V),Z=v.lerp(r,E,Z/V),u++;let L=M,R=T;if(D===0){let U=q+y*3,K=t.unpack(m,U,M);if(t.equals(K,S))t.unpack(m,U-3,L);else{let nt=t.subtract(S,O,M);L=t.add(nt,S,M)}}else t.unpack(m,I-3,L);if(D===y-1){let U=t.unpack(m,q,T);if(t.equals(U,O))t.unpack(m,q+3,R);else{let K=t.subtract(O,S,T);R=t.add(K,O,T)}}else t.unpack(m,I+6,R);a.addVolume(L,S,O,R,G,Z,z,et,f,g),I+=3}I+=3,u++}let N=a.indices;o.push(a.startEllipsoidNormals.buffer),o.push(a.endEllipsoidNormals.buffer),o.push(a.startPositionAndHeights.buffer),o.push(a.startFaceNormalAndVertexCornerIds.buffer),o.push(a.endPositionAndHeights.buffer),o.push(a.endFaceNormalAndHalfWidths.buffer),o.push(a.vertexBatchIds.buffer),o.push(N.buffer);let C={indexDatatype:N.BYTES_PER_ELEMENT===2?B.UNSIGNED_SHORT:B.UNSIGNED_INT,startEllipsoidNormals:a.startEllipsoidNormals.buffer,endEllipsoidNormals:a.endEllipsoidNormals.buffer,startPositionAndHeights:a.startPositionAndHeights.buffer,startFaceNormalAndVertexCornerIds:a.startFaceNormalAndVertexCornerIds.buffer,endPositionAndHeights:a.endPositionAndHeights.buffer,endFaceNormalAndHalfWidths:a.endFaceNormalAndHalfWidths.buffer,vertexBatchIds:a.vertexBatchIds.buffer,indices:N.buffer};if(e.keepDecodedPositions){let y=dt(s);o.push(F.buffer,y.buffer),C=X(C,{decodedPositions:F.buffer,decodedPositionOffsets:y.buffer})}return C}var Vt=J(Pt);export{Vt as default}; diff --git a/libs/cesium/1.111/Workers/createVectorTileGeometries.js b/libs/cesium/1.111/Workers/createVectorTileGeometries.js new file mode 100644 index 000000000..bada1d94f --- /dev/null +++ b/libs/cesium/1.111/Workers/createVectorTileGeometries.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P}from"./chunk-VFOAUMZG.js";import{a as z}from"./chunk-MM64X6QX.js";import"./chunk-AAIHI2WK.js";import{a as H}from"./chunk-Y664VY52.js";import{a as Y}from"./chunk-4M7FKQYC.js";import{a as j}from"./chunk-VD6RJEWG.js";import"./chunk-N52FZRFP.js";import"./chunk-WIRUK4BS.js";import{a as W}from"./chunk-JZL634RF.js";import"./chunk-3UAKIC5Y.js";import"./chunk-QEWKHB6D.js";import{d as E}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{b as d}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as o}from"./chunk-F33YCXD2.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as l}from"./chunk-ZUCO5WNM.js";function X(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var J=X;var S=new o,$=d.packedLength+o.packedLength,ee=d.packedLength+2,ne=d.packedLength+o.packedLength,te=o.packedLength+1,u={modelMatrix:new d,boundingVolume:new E};function oe(e,c){let n=c*$,i=o.unpack(e,n,S);n+=o.packedLength;let r=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(r,i,r);let t=u.boundingVolume;return o.clone(o.ZERO,t.center),t.radius=Math.sqrt(3),u}function ce(e,c){let n=c*ee,i=e[n++],r=e[n++],t=o.fromElements(i,i,r,S),s=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(s,t,s);let h=u.boundingVolume;return o.clone(o.ZERO,h.center),h.radius=Math.sqrt(2),u}function se(e,c){let n=c*ne,i=o.unpack(e,n,S);n+=o.packedLength;let r=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(r,i,r);let t=u.boundingVolume;return o.clone(o.ZERO,t.center),t.radius=1,u}function ie(e,c){let n=c*te,i=e[n++],r=o.unpack(e,n,S),t=d.fromTranslation(r,u.modelMatrix);d.multiplyByUniformScale(t,i,t);let s=u.boundingVolume;return o.clone(o.ZERO,s.center),s.radius=1,u}var de=new o;function R(e,c,n,i,r){if(!l(c))return;let t=n.length,s=i.attributes.position.values,h=i.indices,a=e.positions,x=e.vertexBatchIds,y=e.indices,I=e.batchIds,p=e.batchTableColors,T=e.batchedIndices,U=e.indexOffsets,v=e.indexCounts,L=e.boundingVolumes,F=e.modelMatrix,Z=e.center,V=e.positionOffset,B=e.batchIdIndex,O=e.indexOffset,D=e.batchedIndicesOffset;for(let w=0;w<t;++w){let C=r(c,w),k=C.modelMatrix;d.multiply(F,k,k);let M=n[w],A=s.length;for(let f=0;f<A;f+=3){let m=o.unpack(s,f,de);d.multiplyByPoint(k,m,m),o.subtract(m,Z,m),o.pack(m,a,V*3+f),x[B++]=M}let b=h.length;for(let f=0;f<b;++f)y[O+f]=h[f]+V;let g=w+D;T[g]=new J({offset:O,count:b,color:P.fromRgba(p[M]),batchIds:[M]}),I[g]=M,U[g]=O,v[g]=b,L[g]=E.transform(C.boundingVolume,k),V+=A/3,O+=b}e.positionOffset=V,e.batchIdIndex=B,e.indexOffset=O,e.batchedIndicesOffset+=t}var K=new o,Q=new d;function re(e){let c=new Float64Array(e),n=0;o.unpack(c,n,K),n+=o.packedLength,d.unpack(c,n,Q)}function le(e){let c=e.length,n=0;for(let i=0;i<c;++i)n+=P.packedLength+3+e[i].batchIds.length;return n}function ae(e,c,n){let i=n.length,r=1+1+i*E.packedLength+1+le(c),t=new Float64Array(r),s=0;t[s++]=e,t[s++]=i;for(let a=0;a<i;++a)E.pack(n[a],t,s),s+=E.packedLength;let h=c.length;t[s++]=h;for(let a=0;a<h;++a){let x=c[a];P.pack(x.color,t,s),s+=P.packedLength,t[s++]=x.offset,t[s++]=x.count;let y=x.batchIds,I=y.length;t[s++]=I;for(let p=0;p<I;++p)t[s++]=y[p]}return t}function fe(e,c){let n=l(e.boxes)?new Float32Array(e.boxes):void 0,i=l(e.boxBatchIds)?new Uint16Array(e.boxBatchIds):void 0,r=l(e.cylinders)?new Float32Array(e.cylinders):void 0,t=l(e.cylinderBatchIds)?new Uint16Array(e.cylinderBatchIds):void 0,s=l(e.ellipsoids)?new Float32Array(e.ellipsoids):void 0,h=l(e.ellipsoidBatchIds)?new Uint16Array(e.ellipsoidBatchIds):void 0,a=l(e.spheres)?new Float32Array(e.spheres):void 0,x=l(e.sphereBatchIds)?new Uint16Array(e.sphereBatchIds):void 0,y=l(n)?i.length:0,I=l(r)?t.length:0,p=l(s)?h.length:0,T=l(a)?x.length:0,U=j.getUnitBox(),v=z.getUnitCylinder(),L=H.getUnitEllipsoid(),F=U.attributes.position.values,Z=v.attributes.position.values,V=L.attributes.position.values,B=F.length*y;B+=Z.length*I,B+=V.length*(p+T);let O=U.indices,D=v.indices,w=L.indices,C=O.length*y;C+=D.length*I,C+=w.length*(p+T);let k=new Float32Array(B),M=new Uint16Array(B/3),A=W.createTypedArray(B/3,C),b=y+I+p+T,g=new Uint16Array(b),f=new Array(b),m=new Uint32Array(b),q=new Uint32Array(b),_=new Array(b);re(e.packedBuffer);let G={batchTableColors:new Uint32Array(e.batchTableColors),positions:k,vertexBatchIds:M,indices:A,batchIds:g,batchedIndices:f,indexOffsets:m,indexCounts:q,boundingVolumes:_,positionOffset:0,batchIdIndex:0,indexOffset:0,batchedIndicesOffset:0,modelMatrix:Q,center:K};R(G,n,i,U,oe),R(G,r,t,v,ce),R(G,s,h,L,se),R(G,a,x,L,ie);let N=ae(A.BYTES_PER_ELEMENT,f,_);return c.push(k.buffer,M.buffer,A.buffer),c.push(g.buffer,m.buffer,q.buffer),c.push(N.buffer),{positions:k.buffer,vertexBatchIds:M.buffer,indices:A.buffer,indexOffsets:m.buffer,indexCounts:q.buffer,batchIds:g.buffer,packedBuffer:N.buffer}}var Oe=Y(fe);export{Oe as default}; diff --git a/libs/cesium/1.111/Workers/createVectorTilePoints.js b/libs/cesium/1.111/Workers/createVectorTilePoints.js new file mode 100644 index 000000000..27c010a15 --- /dev/null +++ b/libs/cesium/1.111/Workers/createVectorTilePoints.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as x}from"./chunk-4M7FKQYC.js";import{a as w}from"./chunk-PNRMC4IG.js";import{c}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as h,b as l,c as p}from"./chunk-F33YCXD2.js";import{a as i}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import"./chunk-ZUCO5WNM.js";var u=32767,F=new l,L=new h,b=new c,y=new p,a={min:void 0,max:void 0};function V(t){t=new Float64Array(t);let o=0;a.min=t[o++],a.max=t[o++],c.unpack(t,o,b),o+=c.packedLength,p.unpack(t,o,y)}function z(t,o){let s=new Uint16Array(t.positions);V(t.packedBuffer);let e=b,C=y,A=a.min,P=a.max,n=s.length/3,f=s.subarray(0,n),g=s.subarray(n,2*n),d=s.subarray(2*n,3*n);w.zigZagDeltaDecode(f,g,d);let m=new Float64Array(s.length);for(let r=0;r<n;++r){let k=f[r],E=g[r],H=d[r],M=i.lerp(e.west,e.east,k/u),R=i.lerp(e.south,e.north,E/u),T=i.lerp(A,P,H/u),v=l.fromRadians(M,R,T,F),D=C.cartographicToCartesian(v,L);h.pack(D,m,r*3)}return o.push(m.buffer),{positions:m.buffer}}var G=x(z);export{G as default}; diff --git a/libs/cesium/1.111/Workers/createVectorTilePolygons.js b/libs/cesium/1.111/Workers/createVectorTilePolygons.js new file mode 100644 index 000000000..0b10556f4 --- /dev/null +++ b/libs/cesium/1.111/Workers/createVectorTilePolygons.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as R}from"./chunk-VFOAUMZG.js";import{a as It}from"./chunk-4M7FKQYC.js";import{a as M}from"./chunk-EMZN2RVW.js";import{a as bt}from"./chunk-PNRMC4IG.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as W}from"./chunk-JZL634RF.js";import"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{c as z}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as o,b as nt,c as j}from"./chunk-F33YCXD2.js";import{a as et}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as A}from"./chunk-ZUCO5WNM.js";var kt=new o,Bt=new j,Nt=new z,E={min:void 0,max:void 0,indexBytesPerElement:void 0};function Pt(s){let u=new Float64Array(s),n=0;E.indexBytesPerElement=u[n++],E.min=u[n++],E.max=u[n++],o.unpack(u,n,kt),n+=o.packedLength,j.unpack(u,n,Bt),n+=j.packedLength,z.unpack(u,n,Nt)}function Tt(s){let u=s.length,n=0;for(let y=0;y<u;++y)n+=R.packedLength+3+s[y].batchIds.length;return n}function Ct(s,u,n){let y=u.length,O=1+1+y*M.packedLength+1+Tt(n),c=new Float64Array(O),i=0;c[i++]=s,c[i++]=y;for(let x=0;x<y;++x)M.pack(u[x],c,i),i+=M.packedLength;let V=n.length;c[i++]=V;for(let x=0;x<V;++x){let B=n[x];R.pack(B.color,c,i),i+=R.packedLength,c[i++]=B.offset,c[i++]=B.count;let P=B.batchIds,w=P.length;c[i++]=w;for(let h=0;h<w;++h)c[i++]=P[h]}return c}var yt=32767,wt=new o,Ht=new o,St=new o,Ut=new o,Ft=new o,Lt=new nt,Mt=new z;function Rt(s,u){Pt(s.packedBuffer);let n;E.indexBytesPerElement===2?n=new Uint16Array(s.indices):n=new Uint32Array(s.indices);let O=new Uint16Array(s.positions),c=new Uint32Array(s.counts),i=new Uint32Array(s.indexCounts),V=new Uint32Array(s.batchIds),x=new Uint32Array(s.batchTableColors),B=new Array(c.length),P=kt,w=Bt,h=Nt,ot=E.min,st=E.max,T=s.minimumHeights,C=s.maximumHeights;A(T)&&A(C)&&(T=new Float32Array(T),C=new Float32Array(C));let t,f,l,N=O.length/2,ct=O.subarray(0,N),it=O.subarray(N,2*N);bt.zigZagDeltaDecode(ct,it);let rt=new Float64Array(N*3);for(t=0;t<N;++t){let e=ct[t],p=it[t],L=et.lerp(h.west,h.east,e/yt),k=et.lerp(h.south,h.north,p/yt),b=nt.fromRadians(L,k,0,Lt),Y=w.cartographicToCartesian(b,wt);o.pack(Y,rt,t*3)}let H=c.length,at=new Array(H),Z=new Array(H),ft=0,lt=0;for(t=0;t<H;++t)at[t]=ft,Z[t]=lt,ft+=c[t],lt+=i[t];let S=new Float32Array(N*3*2),_=new Uint16Array(N*2),D=new Uint32Array(Z.length),G=new Uint32Array(i.length),r=[],g={};for(t=0;t<H;++t)l=x[t],A(g[l])?(g[l].positionLength+=c[t],g[l].indexLength+=i[t],g[l].batchIds.push(t)):g[l]={positionLength:c[t],indexLength:i[t],offset:0,indexOffset:0,batchIds:[t]};let a,dt=0,ht=0;for(l in g)if(g.hasOwnProperty(l)){a=g[l],a.offset=dt,a.indexOffset=ht;let e=a.positionLength*2,p=a.indexLength*2+a.positionLength*6;dt+=e,ht+=p,a.indexLength=p}let U=[];for(l in g)g.hasOwnProperty(l)&&(a=g[l],U.push({color:R.fromRgba(parseInt(l)),offset:a.indexOffset,count:a.indexLength,batchIds:a.batchIds}));for(t=0;t<H;++t){l=x[t],a=g[l];let e=a.offset,p=e*3,L=e,k=at[t],b=c[t],Y=V[t],mt=ot,gt=st;A(T)&&A(C)&&(mt=T[t],gt=C[t]);let q=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY,K=Number.POSITIVE_INFINITY,Q=Number.NEGATIVE_INFINITY;for(f=0;f<b;++f){let m=o.unpack(rt,k*3+f*3,wt);w.scaleToGeodeticSurface(m,m);let I=w.cartesianToCartographic(m,Lt),F=I.latitude,pt=I.longitude;q=Math.min(F,q),J=Math.max(F,J),K=Math.min(pt,K),Q=Math.max(pt,Q);let xt=w.geodeticSurfaceNormal(m,Ht),v=o.multiplyByScalar(xt,mt,St),$=o.add(m,v,Ut);v=o.multiplyByScalar(xt,gt,v);let tt=o.add(m,v,Ft);o.subtract(tt,P,tt),o.subtract($,P,$),o.pack(tt,S,p),o.pack($,S,p+3),_[L]=Y,_[L+1]=Y,p+=6,L+=2}h=Mt,h.west=K,h.east=Q,h.south=q,h.north=J,B[t]=M.fromRectangle(h,ot,st,w);let d=a.indexOffset,X=Z[t],Ot=i[t];for(D[t]=d,f=0;f<Ot;f+=3){let m=n[X+f]-k,I=n[X+f+1]-k,F=n[X+f+2]-k;r[d++]=m*2+e,r[d++]=I*2+e,r[d++]=F*2+e,r[d++]=F*2+1+e,r[d++]=I*2+1+e,r[d++]=m*2+1+e}for(f=0;f<b;++f){let m=f,I=(f+1)%b;r[d++]=m*2+1+e,r[d++]=I*2+e,r[d++]=m*2+e,r[d++]=m*2+1+e,r[d++]=I*2+1+e,r[d++]=I*2+e}a.offset+=b*2,a.indexOffset=d,G[t]=d-D[t]}r=W.createTypedArray(S.length/3,r);let At=U.length;for(let e=0;e<At;++e){let p=U[e].batchIds,L=0,k=p.length;for(let b=0;b<k;++b)L+=G[p[b]];U[e].count=L}let Et=r.BYTES_PER_ELEMENT===2?W.UNSIGNED_SHORT:W.UNSIGNED_INT,ut=Ct(Et,B,U);return u.push(S.buffer,r.buffer,D.buffer,G.buffer,_.buffer,ut.buffer),{positions:S.buffer,indices:r.buffer,indexOffsets:D.buffer,indexCounts:G.buffer,batchIds:_.buffer,packedBuffer:ut.buffer}}var Jt=It(Rt);export{Jt as default}; diff --git a/libs/cesium/1.111/Workers/createVectorTilePolylines.js b/libs/cesium/1.111/Workers/createVectorTilePolylines.js new file mode 100644 index 000000000..8d7ae7764 --- /dev/null +++ b/libs/cesium/1.111/Workers/createVectorTilePolylines.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as K}from"./chunk-4M7FKQYC.js";import{a as G}from"./chunk-PNRMC4IG.js";import{a as S}from"./chunk-JZL634RF.js";import{a as B}from"./chunk-4FFHQQYZ.js";import{c as R}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as t,b as _,c as L}from"./chunk-F33YCXD2.js";import{a as F}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import"./chunk-ZUCO5WNM.js";var O=32767,ct=new _,rt=new t;function it(n,o,p,m,s){let d=n.length/3,U=n.subarray(0,d),v=n.subarray(d,2*d),P=n.subarray(2*d,3*d);G.zigZagDeltaDecode(U,v,P);let D=new Float64Array(n.length);for(let u=0;u<d;++u){let e=U[u],A=v[u],l=P[u],k=F.lerp(o.west,o.east,e/O),I=F.lerp(o.south,o.north,A/O),E=F.lerp(p,m,l/O),g=_.fromRadians(k,I,E,ct),C=s.cartographicToCartesian(g,rt);t.pack(C,D,u*3)}return D}var Y=it;var X=new R,$=new L,j=new t,H={min:void 0,max:void 0};function at(n){n=new Float64Array(n);let o=0;H.min=n[o++],H.max=n[o++],R.unpack(n,o,X),o+=R.packedLength,L.unpack(n,o,$),o+=L.packedLength,t.unpack(n,o,j)}function ft(n){let o=n.length,p=new Uint32Array(o+1),m=0;for(let s=0;s<o;++s)p[s]=m,m+=n[s];return p[o]=m,p}var Z=new t,q=new t,J=new t,dt=new t,Q=new t;function ut(n,o){let p=new Uint16Array(n.positions),m=new Uint16Array(n.widths),s=new Uint32Array(n.counts),d=new Uint16Array(n.batchIds);at(n.packedBuffer);let U=X,v=$,P=j,D=H.min,u=H.max,e=Y(p,U,D,u,v),A=e.length/3,l=A*4-4,k=new Float32Array(l*3),I=new Float32Array(l*3),E=new Float32Array(l*3),g=new Float32Array(l*2),C=new Uint16Array(l),N=0,z=0,tt=0,r,h=0,M=s.length;for(r=0;r<M;++r){let a=s[r],nt=m[r],ot=d[r];for(let f=0;f<a;++f){let w;if(f===0){let c=t.unpack(e,h*3,Z),T=t.unpack(e,(h+1)*3,q);w=t.subtract(c,T,J),t.add(c,w,w)}else w=t.unpack(e,(h+f-1)*3,J);let W=t.unpack(e,(h+f)*3,dt),x;if(f===a-1){let c=t.unpack(e,(h+a-1)*3,Z),T=t.unpack(e,(h+a-2)*3,q);x=t.subtract(c,T,Q),t.add(c,x,x)}else x=t.unpack(e,(h+f+1)*3,Q);t.subtract(w,P,w),t.subtract(W,P,W),t.subtract(x,P,x);let et=f===0?2:0,st=f===a-1?2:4;for(let c=et;c<st;++c){t.pack(W,k,N),t.pack(w,I,N),t.pack(x,E,N),N+=3;let T=c-2<0?-1:1;g[z++]=2*(c%2)-1,g[z++]=T*nt,C[tt++]=ot}}h+=a}let i=S.createTypedArray(l,A*6-6),b=0,y=0;for(M=A-1,r=0;r<M;++r)i[y++]=b,i[y++]=b+2,i[y++]=b+1,i[y++]=b+1,i[y++]=b+2,i[y++]=b+3,b+=4;o.push(k.buffer,I.buffer,E.buffer),o.push(g.buffer,C.buffer,i.buffer);let V={indexDatatype:i.BYTES_PER_ELEMENT===2?S.UNSIGNED_SHORT:S.UNSIGNED_INT,currentPositions:k.buffer,previousPositions:I.buffer,nextPositions:E.buffer,expandAndWidth:g.buffer,batchIds:C.buffer,indices:i.buffer};if(n.keepDecodedPositions){let a=ft(s);o.push(e.buffer,a.buffer),V=B(V,{decodedPositions:e.buffer,decodedPositionOffsets:a.buffer})}return V}var It=K(ut);export{It as default}; diff --git a/libs/cesium/1.111/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js b/libs/cesium/1.111/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js new file mode 100644 index 000000000..b15ba4f41 --- /dev/null +++ b/libs/cesium/1.111/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Gt,b as Xt}from"./chunk-UWTP54MD.js";import{a as kt}from"./chunk-4M7FKQYC.js";import{a as lt}from"./chunk-4XIXQUKW.js";import{a as Dt}from"./chunk-EMZN2RVW.js";import"./chunk-PNRMC4IG.js";import"./chunk-JMG4RN2X.js";import{a as qt}from"./chunk-PG5ZS3T4.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{d as zt,i as Lt}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{b as $,c as Ot,d as wt}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as P,b as N,c as Ht}from"./chunk-F33YCXD2.js";import{a as r}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import{a as Vt}from"./chunk-P3JQY4NV.js";import{a as Ut}from"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{e as ht}from"./chunk-ZUCO5WNM.js";var te=Uint16Array.BYTES_PER_ELEMENT,mt=Int32Array.BYTES_PER_ELEMENT,Pt=Uint32Array.BYTES_PER_ELEMENT,ee=Float32Array.BYTES_PER_ELEMENT,H=Float64Array.BYTES_PER_ELEMENT;function tt(n,l,e){e=Ut(e,r);let i=n.length;for(let c=0;c<i;++c)if(e.equalsEpsilon(n[c],l,r.EPSILON12))return c;return-1}function oe(n,l){n.ellipsoid=Ht.clone(n.ellipsoid),n.rectangle=Ot.clone(n.rectangle);let e=se(n.buffer,n.relativeToCenter,n.ellipsoid,n.rectangle,n.nativeRectangle,n.exaggeration,n.exaggerationRelativeHeight,n.skirtHeight,n.includeWebMercatorT,n.negativeAltitudeExponentBias,n.negativeElevationThreshold),i=e.vertices;l.push(i.buffer);let c=e.indices;return l.push(c.buffer),{vertices:i.buffer,indices:c.buffer,numberOfAttributes:e.encoding.stride,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,boundingSphere3D:e.boundingSphere3D,orientedBoundingBox:e.orientedBoundingBox,occludeePointInScaledSpace:e.occludeePointInScaledSpace,encoding:e.encoding,vertexCountWithoutSkirts:e.vertexCountWithoutSkirts,indexCountWithoutSkirts:e.indexCountWithoutSkirts,westIndicesSouthToNorth:e.westIndicesSouthToNorth,southIndicesEastToWest:e.southIndicesEastToWest,eastIndicesNorthToSouth:e.eastIndicesNorthToSouth,northIndicesWestToEast:e.northIndicesWestToEast}}var u=new N,G=new P,ne=new P,ie=new P,re=new $;function se(n,l,e,i,c,et,m,ot,T,nt,it){let I,h,E,f,x,p;ht(i)?(I=i.west,h=i.south,E=i.east,f=i.north,x=i.width,p=i.height):(I=r.toRadians(c.west),h=r.toRadians(c.south),E=r.toRadians(c.east),f=r.toRadians(c.north),x=r.toRadians(i.width),p=r.toRadians(i.height));let X=[h,f],A=[I,E],V=Lt.eastNorthUpToFixedFrame(l,e),j=$.inverseTransformation(V,re),O,Q;T&&(O=lt.geodeticLatitudeToMercatorAngle(h),Q=1/(lt.geodeticLatitudeToMercatorAngle(f)-O));let y=et!==1,a=new DataView(n),z=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY,b=ne;b.x=Number.POSITIVE_INFINITY,b.y=Number.POSITIVE_INFINITY,b.z=Number.POSITIVE_INFINITY;let M=ie;M.x=Number.NEGATIVE_INFINITY,M.y=Number.NEGATIVE_INFINITY,M.z=Number.NEGATIVE_INFINITY;let o=0,S=0,At=0,rt,L;for(L=0;L<4;++L){let t=o;rt=a.getUint32(t,!0),t+=Pt;let d=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(A,d)===-1&&A.push(d);let Y=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(X,Y)===-1&&X.push(Y),t+=2*H;let B=a.getInt32(t,!0);t+=mt,S+=B,B=a.getInt32(t,!0),At+=B*3,o+=rt+Pt}let yt=[],bt=[],g=new Array(S),R=new Array(S),_=new Array(S),C=T?new Array(S):[],F=y?new Array(S):[],v=new Array(At),k=[],st=[],ct=[],W=[],s=0,pt=0;for(o=0,L=0;L<4;++L){rt=a.getUint32(o,!0),o+=Pt;let t=o,d=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let Y=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let B=r.toRadians(a.getFloat64(o,!0)*180),Ft=B*.5;o+=H;let vt=r.toRadians(a.getFloat64(o,!0)*180),Wt=vt*.5;o+=H;let Yt=a.getInt32(o,!0);o+=mt;let Zt=a.getInt32(o,!0);o+=mt,o+=mt;let St=new Array(Yt);for(let U=0;U<Yt;++U){let Z=d+a.getUint8(o++)*B;u.longitude=Z;let D=Y+a.getUint8(o++)*vt;u.latitude=D;let w=a.getFloat32(o,!0);if(o+=ee,w!==0&&w<it&&(w*=-Math.pow(2,nt)),w*=6371010,u.height=w,tt(A,Z)!==-1||tt(X,D)!==-1){let dt=tt(yt,u,N);if(dt===-1)yt.push(N.clone(u)),bt.push(s);else{St[U]=bt[dt];continue}}St[U]=s,Math.abs(Z-I)<Ft?k.push({index:s,cartographic:N.clone(u)}):Math.abs(Z-E)<Ft?ct.push({index:s,cartographic:N.clone(u)}):Math.abs(D-h)<Wt?st.push({index:s,cartographic:N.clone(u)}):Math.abs(D-f)<Wt&&W.push({index:s,cartographic:N.clone(u)}),z=Math.min(w,z),J=Math.max(w,J),_[s]=w;let Nt=e.cartographicToCartesian(u);if(g[s]=Nt,T&&(C[s]=(lt.geodeticLatitudeToMercatorAngle(D)-O)*Q),y){let dt=e.geodeticSurfaceNormal(Nt);F[s]=dt}$.multiplyByPoint(j,Nt,G),P.minimumByComponent(G,b,b),P.maximumByComponent(G,M,M);let Tt=(Z-I)/(E-I);Tt=r.clamp(Tt,0,1);let Bt=(D-h)/(f-h);Bt=r.clamp(Bt,0,1),R[s]=new wt(Tt,Bt),++s}let $t=Zt*3;for(let U=0;U<$t;++U,++pt)v[pt]=St[a.getUint16(o,!0)],o+=te;if(rt!==o-t)throw new Vt("Invalid terrain tile.")}g.length=s,R.length=s,_.length=s,T&&(C.length=s),y&&(F.length=s);let Mt=s,jt=pt,K={hMin:z,lastBorderPoint:void 0,skirtHeight:ot,toENU:j,ellipsoid:e,minimum:b,maximum:M};k.sort(function(t,d){return d.cartographic.latitude-t.cartographic.latitude}),st.sort(function(t,d){return t.cartographic.longitude-d.cartographic.longitude}),ct.sort(function(t,d){return t.cartographic.latitude-d.cartographic.latitude}),W.sort(function(t,d){return d.cartographic.longitude-t.cartographic.longitude});let q=1e-5;if(gt(g,_,R,C,F,v,K,k,-q*x,!0,-q*p),gt(g,_,R,C,F,v,K,st,-q*p,!1),gt(g,_,R,C,F,v,K,ct,q*x,!0,q*p),gt(g,_,R,C,F,v,K,W,q*p,!1),k.length>0&&W.length>0){let t=k[0].index,d=Mt,Y=W[W.length-1].index,B=g.length-1;v.push(Y,B,d,d,t,Y)}S=g.length;let Qt=zt.fromPoints(g),Rt;ht(i)&&(Rt=Dt.fromRectangle(i,z,J,e));let Jt=new Gt(e).computeHorizonCullingPointPossiblyUnderEllipsoid(l,g,z),Kt=new qt(b,M,l),It=new Xt(l,Kt,K.hMin,J,V,!1,T,y,et,m),_t=new Float32Array(S*It.stride),Ct=0;for(let t=0;t<S;++t)Ct=It.encode(_t,Ct,g[t],R[t],_[t],void 0,C[t],F[t]);let at=k.map(function(t){return t.index}).reverse(),Et=st.map(function(t){return t.index}).reverse(),ut=ct.map(function(t){return t.index}).reverse(),xt=W.map(function(t){return t.index}).reverse();return Et.unshift(ut[ut.length-1]),Et.push(at[0]),xt.unshift(at[at.length-1]),xt.push(ut[0]),{vertices:_t,indices:new Uint16Array(v),maximumHeight:J,minimumHeight:z,encoding:It,boundingSphere3D:Qt,orientedBoundingBox:Rt,occludeePointInScaledSpace:Jt,vertexCountWithoutSkirts:Mt,indexCountWithoutSkirts:jt,westIndicesSouthToNorth:at,southIndicesEastToWest:Et,eastIndicesNorthToSouth:ut,northIndicesWestToEast:xt}}function gt(n,l,e,i,c,et,m,ot,T,nt,it){let I=ot.length;for(let h=0;h<I;++h){let E=ot[h],f=E.cartographic,x=E.index,p=n.length,X=f.longitude,A=f.latitude;A=r.clamp(A,-r.PI_OVER_TWO,r.PI_OVER_TWO);let V=f.height-m.skirtHeight;m.hMin=Math.min(m.hMin,V),N.fromRadians(X,A,V,u),nt&&(u.longitude+=T),nt?h===I-1?u.latitude+=it:h===0&&(u.latitude-=it):u.latitude+=T;let j=m.ellipsoid.cartographicToCartesian(u);n.push(j),l.push(V),e.push(wt.clone(e[x])),i.length>0&&i.push(i[x]),c.length>0&&c.push(c[x]),$.multiplyByPoint(m.toENU,j,G);let O=m.minimum,Q=m.maximum;P.minimumByComponent(G,O,O),P.maximumByComponent(G,Q,Q);let ft=m.lastBorderPoint;if(ht(ft)){let y=ft.index;et.push(y,p-1,p,p,x,y)}m.lastBorderPoint=E}}var Ae=kt(oe);export{Ae as default}; diff --git a/libs/cesium/1.111/Workers/createVerticesFromHeightmap.js b/libs/cesium/1.111/Workers/createVerticesFromHeightmap.js new file mode 100644 index 000000000..806e654bc --- /dev/null +++ b/libs/cesium/1.111/Workers/createVerticesFromHeightmap.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as sr,b as fr}from"./chunk-UWTP54MD.js";import{a as tr}from"./chunk-4M7FKQYC.js";import{a as Ue}from"./chunk-4XIXQUKW.js";import{a as ar}from"./chunk-EMZN2RVW.js";import"./chunk-PNRMC4IG.js";import"./chunk-JMG4RN2X.js";import{a as nr}from"./chunk-PG5ZS3T4.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{d as er,i as ir}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{b as xe,c as ae,d as rr}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as ie,c as Ie}from"./chunk-F33YCXD2.js";import{a as ge}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import{a as He}from"./chunk-P3JQY4NV.js";import{a as Y}from"./chunk-K36PKEJW.js";import{a as he}from"./chunk-KD2PMTHD.js";import{c as Ir,d as xr,e as G}from"./chunk-ZUCO5WNM.js";var ur=Ir((qr,Te)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var D=function(){var A={};A.defaultNoDataValue=-34027999387901484e22,A.decode=function(r,a){a=a||{};var t=a.encodedMaskData||a.encodedMaskData===null,i=n(r,a.inputOffset||0,t),o=a.noDataValue!==null?a.noDataValue:A.defaultNoDataValue,s=V(i,a.pixelType||Float32Array,a.encodedMaskData,o,a.returnMask),u={width:i.width,height:i.height,pixelData:s.resultPixels,minValue:s.minValue,maxValue:i.pixels.maxValue,noDataValue:o};return s.resultMask&&(u.maskData=s.resultMask),a.returnEncodedMask&&i.mask&&(u.encodedMaskData=i.mask.bitset?i.mask.bitset:null),a.returnFileInfo&&(u.fileInfo=b(i),a.computeUsedBitDepths&&(u.fileInfo.bitDepths=X(i))),u};var V=function(r,a,t,i,o){var s=0,u=r.pixels.numBlocksX,m=r.pixels.numBlocksY,l=Math.floor(r.width/u),f=Math.floor(r.height/m),h=2*r.maxZError,c=Number.MAX_VALUE,g;t=t||(r.mask?r.mask.bitset:null);var v,U;v=new a(r.width*r.height),o&&t&&(U=new Uint8Array(r.width*r.height));for(var M=new Float32Array(l*f),S,I,k=0;k<=m;k++){var w=k!==m?f:r.height%m;if(w!==0)for(var d=0;d<=u;d++){var x=d!==u?l:r.width%u;if(x!==0){var T=k*r.width*f+d*l,y=r.width-x,p=r.pixels.blocks[s],L,B,E;p.encoding<2?(p.encoding===0?L=p.rawData:(e(p.stuffedData,p.bitsPerPixel,p.numValidPixels,p.offset,h,M,r.pixels.maxValue),L=M),B=0):p.encoding===2?E=0:E=p.offset;var O;if(t)for(I=0;I<w;I++){for(T&7&&(O=t[T>>3],O<<=T&7),S=0;S<x;S++)T&7||(O=t[T>>3]),O&128?(U&&(U[T]=1),g=p.encoding<2?L[B++]:E,c=c>g?g:c,v[T++]=g):(U&&(U[T]=0),v[T++]=i),O<<=1;T+=y}else if(p.encoding<2)for(I=0;I<w;I++){for(S=0;S<x;S++)g=L[B++],c=c>g?g:c,v[T++]=g;T+=y}else for(c=c>E?E:c,I=0;I<w;I++){for(S=0;S<x;S++)v[T++]=E;T+=y}if(p.encoding===1&&B!==p.numValidPixels)throw"Block and Mask do not match";s++}}}return{resultPixels:v,resultMask:U,minValue:c}},b=function(r){return{fileIdentifierString:r.fileIdentifierString,fileVersion:r.fileVersion,imageType:r.imageType,height:r.height,width:r.width,maxZError:r.maxZError,eofOffset:r.eofOffset,mask:r.mask?{numBlocksX:r.mask.numBlocksX,numBlocksY:r.mask.numBlocksY,numBytes:r.mask.numBytes,maxValue:r.mask.maxValue}:null,pixels:{numBlocksX:r.pixels.numBlocksX,numBlocksY:r.pixels.numBlocksY,numBytes:r.pixels.numBytes,maxValue:r.pixels.maxValue,noDataValue:r.noDataValue}}},X=function(r){for(var a=r.pixels.numBlocksX*r.pixels.numBlocksY,t={},i=0;i<a;i++){var o=r.pixels.blocks[i];o.encoding===0?t.float32=!0:o.encoding===1?t[o.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},n=function(r,a,t){var i={},o=new Uint8Array(r,a,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,o),i.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+i.fileIdentifierString;a+=10;var s=new DataView(r,a,24);if(i.fileVersion=s.getInt32(0,!0),i.imageType=s.getInt32(4,!0),i.height=s.getUint32(8,!0),i.width=s.getUint32(12,!0),i.maxZError=s.getFloat64(16,!0),a+=24,!t)if(s=new DataView(r,a,16),i.mask={},i.mask.numBlocksY=s.getUint32(0,!0),i.mask.numBlocksX=s.getUint32(4,!0),i.mask.numBytes=s.getUint32(8,!0),i.mask.maxValue=s.getFloat32(12,!0),a+=16,i.mask.numBytes>0){var u=new Uint8Array(Math.ceil(i.width*i.height/8));s=new DataView(r,a,i.mask.numBytes);var m=s.getInt16(0,!0),l=2,f=0;do{if(m>0)for(;m--;)u[f++]=s.getUint8(l++);else{var h=s.getUint8(l++);for(m=-m;m--;)u[f++]=h}m=s.getInt16(l,!0),l+=2}while(l<i.mask.numBytes);if(m!==-32768||f<u.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=u,a+=i.mask.numBytes}else i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue||(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));s=new DataView(r,a,16),i.pixels={},i.pixels.numBlocksY=s.getUint32(0,!0),i.pixels.numBlocksX=s.getUint32(4,!0),i.pixels.numBytes=s.getUint32(8,!0),i.pixels.maxValue=s.getFloat32(12,!0),a+=16;var c=i.pixels.numBlocksX,g=i.pixels.numBlocksY,v=c+(i.width%c>0?1:0),U=g+(i.height%g>0?1:0);i.pixels.blocks=new Array(v*U);for(var M=0,S=0;S<U;S++)for(var I=0;I<v;I++){var k=0,w=r.byteLength-a;s=new DataView(r,a,Math.min(10,w));var d={};i.pixels.blocks[M++]=d;var x=s.getUint8(0);if(k++,d.encoding=x&63,d.encoding>3)throw"Invalid block encoding ("+d.encoding+")";if(d.encoding===2){a++;continue}if(x!==0&&x!==2){if(x>>=6,d.offsetType=x,x===2)d.offset=s.getInt8(1),k++;else if(x===1)d.offset=s.getInt16(1,!0),k+=2;else if(x===0)d.offset=s.getFloat32(1,!0),k+=4;else throw"Invalid block offset type";if(d.encoding===1)if(x=s.getUint8(k),k++,d.bitsPerPixel=x&63,x>>=6,d.numValidPixelsType=x,x===2)d.numValidPixels=s.getUint8(k),k++;else if(x===1)d.numValidPixels=s.getUint16(k,!0),k+=2;else if(x===0)d.numValidPixels=s.getUint32(k,!0),k+=4;else throw"Invalid valid pixel count type"}if(a+=k,d.encoding!==3){var T,y;if(d.encoding===0){var p=(i.pixels.numBytes-1)/4;if(p!==Math.floor(p))throw"uncompressed block has invalid length";T=new ArrayBuffer(p*4),y=new Uint8Array(T),y.set(new Uint8Array(r,a,p*4));var L=new Float32Array(T);d.rawData=L,a+=p*4}else if(d.encoding===1){var B=Math.ceil(d.numValidPixels*d.bitsPerPixel/8),E=Math.ceil(B/4);T=new ArrayBuffer(E*4),y=new Uint8Array(T),y.set(new Uint8Array(r,a,B)),d.stuffedData=new Uint32Array(T),a+=B}}}return i.eofOffset=a,i},e=function(r,a,t,i,o,s,u){var m=(1<<a)-1,l=0,f,h=0,c,g,v=Math.ceil((u-i)/o),U=r.length*4-Math.ceil(a*t/8);for(r[r.length-1]<<=8*U,f=0;f<t;f++){if(h===0&&(g=r[l++],h=32),h>=a)c=g>>>h-a&m,h-=a;else{var M=a-h;c=(g&m)<<M&m,g=r[l++],h=32-M,c+=g>>>h}s[f]=c<v?i+c*o:u}return s};return A}(),se=function(){"use strict";var A={unstuff:function(n,e,r,a,t,i,o,s){var u=(1<<r)-1,m=0,l,f=0,h,c,g,v,U=n.length*4-Math.ceil(r*a/8);if(n[n.length-1]<<=8*U,t)for(l=0;l<a;l++)f===0&&(c=n[m++],f=32),f>=r?(h=c>>>f-r&u,f-=r):(g=r-f,h=(c&u)<<g&u,c=n[m++],f=32-g,h+=c>>>f),e[l]=t[h];else for(v=Math.ceil((s-i)/o),l=0;l<a;l++)f===0&&(c=n[m++],f=32),f>=r?(h=c>>>f-r&u,f-=r):(g=r-f,h=(c&u)<<g&u,c=n[m++],f=32-g,h+=c>>>f),e[l]=h<v?i+h*o:s},unstuffLUT:function(n,e,r,a,t,i){var o=(1<<e)-1,s=0,u=0,m=0,l=0,f=0,h,c=[],g=n.length*4-Math.ceil(e*r/8);n[n.length-1]<<=8*g;var v=Math.ceil((i-a)/t);for(u=0;u<r;u++)l===0&&(h=n[s++],l=32),l>=e?(f=h>>>l-e&o,l-=e):(m=e-l,f=(h&o)<<m&o,h=n[s++],l=32-m,f+=h>>>l),c[u]=f<v?a+f*t:i;return c.unshift(a),c},unstuff2:function(n,e,r,a,t,i,o,s){var u=(1<<r)-1,m=0,l,f=0,h=0,c,g,v;if(t)for(l=0;l<a;l++)f===0&&(g=n[m++],f=32,h=0),f>=r?(c=g>>>h&u,f-=r,h+=r):(v=r-f,c=g>>>h&u,g=n[m++],f=32-v,c|=(g&(1<<v)-1)<<r-v,h=v),e[l]=t[c];else{var U=Math.ceil((s-i)/o);for(l=0;l<a;l++)f===0&&(g=n[m++],f=32,h=0),f>=r?(c=g>>>h&u,f-=r,h+=r):(v=r-f,c=g>>>h&u,g=n[m++],f=32-v,c|=(g&(1<<v)-1)<<r-v,h=v),e[l]=c<U?i+c*o:s}return e},unstuffLUT2:function(n,e,r,a,t,i){var o=(1<<e)-1,s=0,u=0,m=0,l=0,f=0,h=0,c,g=[],v=Math.ceil((i-a)/t);for(u=0;u<r;u++)l===0&&(c=n[s++],l=32,h=0),l>=e?(f=c>>>h&o,l-=e,h+=e):(m=e-l,f=c>>>h&o,c=n[s++],l=32-m,f|=(c&(1<<m)-1)<<e-m,h=m),g[u]=f<v?a+f*t:i;return g.unshift(a),g},originalUnstuff:function(n,e,r,a){var t=(1<<r)-1,i=0,o,s=0,u,m,l,f=n.length*4-Math.ceil(r*a/8);for(n[n.length-1]<<=8*f,o=0;o<a;o++)s===0&&(m=n[i++],s=32),s>=r?(u=m>>>s-r&t,s-=r):(l=r-s,u=(m&t)<<l&t,m=n[i++],s=32-l,u+=m>>>s),e[o]=u;return e},originalUnstuff2:function(n,e,r,a){var t=(1<<r)-1,i=0,o,s=0,u=0,m,l,f;for(o=0;o<a;o++)s===0&&(l=n[i++],s=32,u=0),s>=r?(m=l>>>u&t,s-=r,u+=r):(f=r-s,m=l>>>u&t,l=n[i++],s=32-f,m|=(l&(1<<f)-1)<<r-f,u=f),e[o]=m;return e}},V={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(n){for(var e=65535,r=65535,a=n.length,t=Math.floor(a/2),i=0;t;){var o=t>=359?359:t;t-=o;do e+=n[i++]<<8,r+=e+=n[i++];while(--o);e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16)}return a&1&&(r+=e+=n[i]<<8),e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16),(r<<16|e)>>>0},readHeaderInfo:function(n,e){var r=e.ptr,a=new Uint8Array(n,r,6),t={};if(t.fileIdentifierString=String.fromCharCode.apply(null,a),t.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+t.fileIdentifierString;r+=6;var i=new DataView(n,r,8),o=i.getInt32(0,!0);t.fileVersion=o,r+=4,o>=3&&(t.checksum=i.getUint32(4,!0),r+=4),i=new DataView(n,r,12),t.height=i.getUint32(0,!0),t.width=i.getUint32(4,!0),r+=8,o>=4?(t.numDims=i.getUint32(8,!0),r+=4):t.numDims=1,i=new DataView(n,r,40),t.numValidPixel=i.getUint32(0,!0),t.microBlockSize=i.getInt32(4,!0),t.blobSize=i.getInt32(8,!0),t.imageType=i.getInt32(12,!0),t.maxZError=i.getFloat64(16,!0),t.zMin=i.getFloat64(24,!0),t.zMax=i.getFloat64(32,!0),r+=40,e.headerInfo=t,e.ptr=r;var s,u;if(o>=3&&(u=o>=4?52:48,s=this.computeChecksumFletcher32(new Uint8Array(n,r-u,t.blobSize-14)),s!==t.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(n,e){var r=e.headerInfo,a=this.getDataTypeArray(r.imageType),t=r.numDims*this.getDataTypeSize(r.imageType),i=this.readSubArray(n,e.ptr,a,t),o=this.readSubArray(n,e.ptr+t,a,t);e.ptr+=2*t;var s,u=!0;for(s=0;s<r.numDims;s++)if(i[s]!==o[s]){u=!1;break}return r.minValues=i,r.maxValues=o,u},readSubArray:function(n,e,r,a){var t;if(r===Uint8Array)t=new Uint8Array(n,e,a);else{var i=new ArrayBuffer(a),o=new Uint8Array(i);o.set(new Uint8Array(n,e,a)),t=new r(i)}return t},readMask:function(n,e){var r=e.ptr,a=e.headerInfo,t=a.width*a.height,i=a.numValidPixel,o=new DataView(n,r,4),s={};if(s.numBytes=o.getUint32(0,!0),r+=4,(i===0||t===i)&&s.numBytes!==0)throw"invalid mask";var u,m;if(i===0)u=new Uint8Array(Math.ceil(t/8)),s.bitset=u,m=new Uint8Array(t),e.pixels.resultMask=m,r+=s.numBytes;else if(s.numBytes>0){u=new Uint8Array(Math.ceil(t/8)),o=new DataView(n,r,s.numBytes);var l=o.getInt16(0,!0),f=2,h=0,c=0;do{if(l>0)for(;l--;)u[h++]=o.getUint8(f++);else for(c=o.getUint8(f++),l=-l;l--;)u[h++]=c;l=o.getInt16(f,!0),f+=2}while(f<s.numBytes);if(l!==-32768||h<u.length)throw"Unexpected end of mask RLE encoding";m=new Uint8Array(t);var g=0,v=0;for(v=0;v<t;v++)v&7?(g=u[v>>3],g<<=v&7):g=u[v>>3],g&128&&(m[v]=1);e.pixels.resultMask=m,s.bitset=u,r+=s.numBytes}return e.ptr=r,e.mask=s,!0},readDataOneSweep:function(n,e,r){var a=e.ptr,t=e.headerInfo,i=t.numDims,o=t.width*t.height,s=t.imageType,u=t.numValidPixel*V.getDataTypeSize(s)*i,m,l=e.pixels.resultMask;if(r===Uint8Array)m=new Uint8Array(n,a,u);else{var f=new ArrayBuffer(u),h=new Uint8Array(f);h.set(new Uint8Array(n,a,u)),m=new r(f)}if(m.length===o*i)e.pixels.resultPixels=m;else{e.pixels.resultPixels=new r(o*i);var c=0,g=0,v=0,U=0;if(i>1)for(v=0;v<i;v++)for(U=v*o,g=0;g<o;g++)l[g]&&(e.pixels.resultPixels[U+g]=m[c++]);else for(g=0;g<o;g++)l[g]&&(e.pixels.resultPixels[g]=m[c++])}return a+=u,e.ptr=a,!0},readHuffmanTree:function(n,e){var r=this.HUFFMAN_LUT_BITS_MAX,a=new DataView(n,e.ptr,16);e.ptr+=16;var t=a.getInt32(0,!0);if(t<2)throw"unsupported Huffman version";var i=a.getInt32(4,!0),o=a.getInt32(8,!0),s=a.getInt32(12,!0);if(o>=s)return!1;var u=new Uint32Array(s-o);V.decodeBits(n,e,u);var m=[],l,f,h,c;for(l=o;l<s;l++)f=l-(l<i?0:i),m[f]={first:u[l-o],second:null};var g=n.byteLength-e.ptr,v=Math.ceil(g/4),U=new ArrayBuffer(v*4),M=new Uint8Array(U);M.set(new Uint8Array(n,e.ptr,g));var S=new Uint32Array(U),I=0,k,w=0;for(k=S[0],l=o;l<s;l++)f=l-(l<i?0:i),c=m[f].first,c>0&&(m[f].second=k<<I>>>32-c,32-I>=c?(I+=c,I===32&&(I=0,w++,k=S[w])):(I+=c-32,w++,k=S[w],m[f].second|=k>>>32-I));var d=0,x=0,T=new b;for(l=0;l<m.length;l++)m[l]!==void 0&&(d=Math.max(d,m[l].first));d>=r?x=r:x=d,d>=30&&console.log("WARning, large NUM LUT BITS IS "+d);var y=[],p,L,B,E,O,F;for(l=o;l<s;l++)if(f=l-(l<i?0:i),c=m[f].first,c>0)if(p=[c,f],c<=x)for(L=m[f].second<<x-c,B=1<<x-c,h=0;h<B;h++)y[L|h]=p;else for(L=m[f].second,F=T,E=c-1;E>=0;E--)O=L>>>E&1,O?(F.right||(F.right=new b),F=F.right):(F.left||(F.left=new b),F=F.left),E===0&&!F.val&&(F.val=p[1]);return{decodeLut:y,numBitsLUTQick:x,numBitsLUT:d,tree:T,stuffedData:S,srcPtr:w,bitPos:I}},readHuffman:function(n,e,r){var a=e.headerInfo,t=a.numDims,i=e.headerInfo.height,o=e.headerInfo.width,s=o*i,u=this.readHuffmanTree(n,e),m=u.decodeLut,l=u.tree,f=u.stuffedData,h=u.srcPtr,c=u.bitPos,g=u.numBitsLUTQick,v=u.numBitsLUT,U=e.headerInfo.imageType===0?128:0,M,S,I,k=e.pixels.resultMask,w,d,x,T,y,p,L,B=0;c>0&&(h++,c=0);var E=f[h],O=e.encodeMode===1,F=new r(s*t),N=F,z;for(z=0;z<a.numDims;z++){if(t>1&&(N=new r(F.buffer,s*z,s),B=0),e.headerInfo.numValidPixel===o*i)for(p=0,T=0;T<i;T++)for(y=0;y<o;y++,p++){if(S=0,w=E<<c>>>32-g,d=w,32-c<g&&(w|=f[h+1]>>>64-c-g,d=w),m[d])S=m[d][1],c+=m[d][0];else for(w=E<<c>>>32-v,d=w,32-c<v&&(w|=f[h+1]>>>64-c-v,d=w),M=l,L=0;L<v;L++)if(x=w>>>v-L-1&1,M=x?M.right:M.left,!(M.left||M.right)){S=M.val,c=c+L+1;break}c>=32&&(c-=32,h++,E=f[h]),I=S-U,O?(y>0?I+=B:T>0?I+=N[p-o]:I+=B,I&=255,N[p]=I,B=I):N[p]=I}else for(p=0,T=0;T<i;T++)for(y=0;y<o;y++,p++)if(k[p]){if(S=0,w=E<<c>>>32-g,d=w,32-c<g&&(w|=f[h+1]>>>64-c-g,d=w),m[d])S=m[d][1],c+=m[d][0];else for(w=E<<c>>>32-v,d=w,32-c<v&&(w|=f[h+1]>>>64-c-v,d=w),M=l,L=0;L<v;L++)if(x=w>>>v-L-1&1,M=x?M.right:M.left,!(M.left||M.right)){S=M.val,c=c+L+1;break}c>=32&&(c-=32,h++,E=f[h]),I=S-U,O?(y>0&&k[p-1]?I+=B:T>0&&k[p-o]?I+=N[p-o]:I+=B,I&=255,N[p]=I,B=I):N[p]=I}e.ptr=e.ptr+(h+1)*4+(c>0?4:0)}e.pixels.resultPixels=F},decodeBits:function(n,e,r,a,t){{var i=e.headerInfo,o=i.fileVersion,s=0,u=new DataView(n,e.ptr,5),m=u.getUint8(0);s++;var l=m>>6,f=l===0?4:3-l,h=(m&32)>0,c=m&31,g=0;if(f===1)g=u.getUint8(s),s++;else if(f===2)g=u.getUint16(s,!0),s+=2;else if(f===4)g=u.getUint32(s,!0),s+=4;else throw"Invalid valid pixel count type";var v=2*i.maxZError,U,M,S,I,k,w,d,x,T,y,p=i.numDims>1?i.maxValues[t]:i.zMax;if(h){for(e.counter.lut++,x=u.getUint8(s),T=c,s++,I=Math.ceil((x-1)*c/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),e.ptr+=s,S.set(new Uint8Array(n,e.ptr,I)),d=new Uint32Array(M),e.ptr+=I,y=0;x-1>>>y;)y++;I=Math.ceil(g*y/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),S.set(new Uint8Array(n,e.ptr,I)),U=new Uint32Array(M),e.ptr+=I,o>=3?w=A.unstuffLUT2(d,c,x-1,a,v,p):w=A.unstuffLUT(d,c,x-1,a,v,p),o>=3?A.unstuff2(U,r,y,g,w):A.unstuff(U,r,y,g,w)}else e.counter.bitstuffer++,y=c,e.ptr+=s,y>0&&(I=Math.ceil(g*y/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),S.set(new Uint8Array(n,e.ptr,I)),U=new Uint32Array(M),e.ptr+=I,o>=3?a==null?A.originalUnstuff2(U,r,y,g):A.unstuff2(U,r,y,g,!1,a,v,p):a==null?A.originalUnstuff(U,r,y,g):A.unstuff(U,r,y,g,!1,a,v,p))}},readTiles:function(n,e,r){var a=e.headerInfo,t=a.width,i=a.height,o=a.microBlockSize,s=a.imageType,u=V.getDataTypeSize(s),m=Math.ceil(t/o),l=Math.ceil(i/o);e.pixels.numBlocksY=l,e.pixels.numBlocksX=m,e.pixels.ptr=0;var f=0,h=0,c=0,g=0,v=0,U=0,M=0,S=0,I=0,k=0,w=0,d=0,x=0,T=0,y=0,p=0,L,B,E,O,F,N,z=new r(o*o),ke=i%o||o,ye=t%o||o,J,Z,ue=a.numDims,te,j=e.pixels.resultMask,q=e.pixels.resultPixels;for(c=0;c<l;c++)for(v=c!==l-1?o:ke,g=0;g<m;g++)for(U=g!==m-1?o:ye,w=c*t*o+g*o,d=t-U,te=0;te<ue;te++){if(ue>1&&(q=new r(e.pixels.resultPixels.buffer,t*i*te*u,t*i)),M=n.byteLength-e.ptr,L=new DataView(n,e.ptr,Math.min(10,M)),B={},p=0,S=L.getUint8(0),p++,I=S>>6&255,k=S>>2&15,k!==(g*o>>3&15))throw"integrity issue";if(N=S&3,N>3)throw e.ptr+=p,"Invalid block encoding ("+N+")";if(N===2){e.counter.constant++,e.ptr+=p;continue}else if(N===0){if(e.counter.uncompressed++,e.ptr+=p,x=v*U*u,T=n.byteLength-e.ptr,x=x<T?x:T,E=new ArrayBuffer(x%u===0?x:x+u-x%u),O=new Uint8Array(E),O.set(new Uint8Array(n,e.ptr,x)),F=new r(E),y=0,j)for(f=0;f<v;f++){for(h=0;h<U;h++)j[w]&&(q[w]=F[y++]),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)q[w++]=F[y++];w+=d}e.ptr+=y*u}else if(J=V.getDataTypeUsed(s,I),Z=V.getOnePixel(B,p,J,L),p+=V.getDataTypeSize(J),N===3)if(e.ptr+=p,e.counter.constantoffset++,j)for(f=0;f<v;f++){for(h=0;h<U;h++)j[w]&&(q[w]=Z),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)q[w++]=Z;w+=d}else if(e.ptr+=p,V.decodeBits(n,e,z,Z,te),p=0,j)for(f=0;f<v;f++){for(h=0;h<U;h++)j[w]&&(q[w]=z[p++]),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)q[w++]=z[p++];w+=d}}},formatFileInfo:function(n){return{fileIdentifierString:n.headerInfo.fileIdentifierString,fileVersion:n.headerInfo.fileVersion,imageType:n.headerInfo.imageType,height:n.headerInfo.height,width:n.headerInfo.width,numValidPixel:n.headerInfo.numValidPixel,microBlockSize:n.headerInfo.microBlockSize,blobSize:n.headerInfo.blobSize,maxZError:n.headerInfo.maxZError,pixelType:V.getPixelType(n.headerInfo.imageType),eofOffset:n.eofOffset,mask:n.mask?{numBytes:n.mask.numBytes}:null,pixels:{numBlocksX:n.pixels.numBlocksX,numBlocksY:n.pixels.numBlocksY,maxValue:n.headerInfo.zMax,minValue:n.headerInfo.zMin,noDataValue:n.noDataValue}}},constructConstantSurface:function(n){var e=n.headerInfo.zMax,r=n.headerInfo.numDims,a=n.headerInfo.height*n.headerInfo.width,t=a*r,i=0,o=0,s=0,u=n.pixels.resultMask;if(u)if(r>1)for(i=0;i<r;i++)for(s=i*a,o=0;o<a;o++)u[o]&&(n.pixels.resultPixels[s+o]=e);else for(o=0;o<a;o++)u[o]&&(n.pixels.resultPixels[o]=e);else if(n.pixels.resultPixels.fill)n.pixels.resultPixels.fill(e);else for(o=0;o<t;o++)n.pixels.resultPixels[o]=e},getDataTypeArray:function(n){var e;switch(n){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:e=Float32Array;break;case 7:e=Float64Array;break;default:e=Float32Array}return e},getPixelType:function(n){var e;switch(n){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:e="F32";break;case 7:e="F64";break;default:e="F32"}return e},isValidPixelValue:function(n,e){if(e==null)return!1;var r;switch(n){case 0:r=e>=-128&&e<=127;break;case 1:r=e>=0&&e<=255;break;case 2:r=e>=-32768&&e<=32767;break;case 3:r=e>=0&&e<=65536;break;case 4:r=e>=-2147483648&&e<=2147483647;break;case 5:r=e>=0&&e<=4294967296;break;case 6:r=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:r=e>=5e-324&&e<=17976931348623157e292;break;default:r=!1}return r},getDataTypeSize:function(n){var e=0;switch(n){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=n}return e},getDataTypeUsed:function(n,e){var r=n;switch(n){case 2:case 4:r=n-e;break;case 3:case 5:r=n-2*e;break;case 6:e===0?r=n:e===1?r=2:r=1;break;case 7:e===0?r=n:r=n-2*e+1;break;default:r=n;break}return r},getOnePixel:function(n,e,r,a){var t=0;switch(r){case 0:t=a.getInt8(e);break;case 1:t=a.getUint8(e);break;case 2:t=a.getInt16(e,!0);break;case 3:t=a.getUint16(e,!0);break;case 4:t=a.getInt32(e,!0);break;case 5:t=a.getUInt32(e,!0);break;case 6:t=a.getFloat32(e,!0);break;case 7:t=a.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return t}},b=function(n,e,r){this.val=n,this.left=e,this.right=r},X={decode:function(n,e){e=e||{};var r=e.noDataValue,a=0,t={};if(t.ptr=e.inputOffset||0,t.pixels={},!!V.readHeaderInfo(n,t)){var i=t.headerInfo,o=i.fileVersion,s=V.getDataTypeArray(i.imageType);V.readMask(n,t),i.numValidPixel!==i.width*i.height&&!t.pixels.resultMask&&(t.pixels.resultMask=e.maskData);var u=i.width*i.height;if(t.pixels.resultPixels=new s(u*i.numDims),t.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},i.numValidPixel!==0)if(i.zMax===i.zMin)V.constructConstantSurface(t);else if(o>=4&&V.checkMinMaxRanges(n,t))V.constructConstantSurface(t);else{var m=new DataView(n,t.ptr,2),l=m.getUint8(0);if(t.ptr++,l)V.readDataOneSweep(n,t,s);else if(o>1&&i.imageType<=1&&Math.abs(i.maxZError-.5)<1e-5){var f=m.getUint8(1);if(t.ptr++,t.encodeMode=f,f>2||o<4&&f>1)throw"Invalid Huffman flag "+f;f?V.readHuffman(n,t,s):V.readTiles(n,t,s)}else V.readTiles(n,t,s)}t.eofOffset=t.ptr;var h;e.inputOffset?(h=t.headerInfo.blobSize+e.inputOffset-t.ptr,Math.abs(h)>=1&&(t.eofOffset=e.inputOffset+t.headerInfo.blobSize)):(h=t.headerInfo.blobSize-t.ptr,Math.abs(h)>=1&&(t.eofOffset=t.headerInfo.blobSize));var c={width:i.width,height:i.height,pixelData:t.pixels.resultPixels,minValue:i.zMin,maxValue:i.zMax,validPixelCount:i.numValidPixel,dimCount:i.numDims,dimStats:{minValues:i.minValues,maxValues:i.maxValues},maskData:t.pixels.resultMask};if(t.pixels.resultMask&&V.isValidPixelValue(i.imageType,r)){var g=t.pixels.resultMask;for(a=0;a<u;a++)g[a]||(c.pixelData[a]=r);c.noDataValue=r}return t.noDataValue=r,e.returnFileInfo&&(c.fileInfo=V.formatFileInfo(t)),c}},getBandCount:function(n){var e=0,r=0,a={};for(a.ptr=0,a.pixels={};r<n.byteLength-58;)V.readHeaderInfo(n,a),r+=a.headerInfo.blobSize,e++,a.ptr=r;return e}};return X}(),C=function(){var A=new ArrayBuffer(4),V=new Uint8Array(A),b=new Uint32Array(A);return b[0]=1,V[0]===1}(),re={decode:function(A,V){if(!C)throw"Big endian system is not supported.";V=V||{};var b=V.inputOffset||0,X=new Uint8Array(A,b,10),n=String.fromCharCode.apply(null,X),e,r;if(n.trim()==="CntZImage")e=D,r=1;else if(n.substring(0,5)==="Lerc2")e=se,r=2;else throw"Unexpected file identifier string: "+n;for(var a=0,t=A.byteLength-10,i,o=[],s,u,m={width:0,height:0,pixels:[],pixelType:V.pixelType,mask:null,statistics:[]};b<t;){var l=e.decode(A,{inputOffset:b,encodedMaskData:i,maskData:u,returnMask:a===0,returnEncodedMask:a===0,returnFileInfo:!0,pixelType:V.pixelType||null,noDataValue:V.noDataValue||null});b=l.fileInfo.eofOffset,a===0&&(i=l.encodedMaskData,u=l.maskData,m.width=l.width,m.height=l.height,m.dimCount=l.dimCount||1,m.pixelType=l.pixelType||l.fileInfo.pixelType,m.mask=l.maskData),r>1&&l.fileInfo.mask&&l.fileInfo.mask.numBytes>0&&o.push(l.maskData),a++,m.pixels.push(l.pixelData),m.statistics.push({minValue:l.minValue,maxValue:l.maxValue,noDataValue:l.noDataValue,dimStats:l.dimStats})}var f,h,c;if(r>1&&o.length>1){for(c=m.width*m.height,m.bandMasks=o,u=new Uint8Array(c),u.set(o[0]),f=1;f<o.length;f++)for(s=o[f],h=0;h<c;h++)u[h]=u[h]&s[h];m.maskData=u}return m}};typeof define=="function"&&define.amd?define([],function(){return re}):typeof Te<"u"&&Te.exports?Te.exports=re:this.Lerc=re})()});var Ur={NONE:0,LERC:1},or=Object.freeze(Ur);var Q={};Q.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var Ye=new ie,Tr=new xe,kr=new ie,yr=new ie;Q.computeVertices=function(D){if(!G(D)||!G(D.heightmap))throw new he("options.heightmap is required.");if(!G(D.width)||!G(D.height))throw new he("options.width and options.height are required.");if(!G(D.nativeRectangle))throw new he("options.nativeRectangle is required.");if(!G(D.skirtHeight))throw new he("options.skirtHeight is required.");let se=Math.cos,C=Math.sin,re=Math.sqrt,A=Math.atan,V=Math.exp,b=ge.PI_OVER_TWO,X=ge.toRadians,n=D.heightmap,e=D.width,r=D.height,a=D.skirtHeight,t=a>0,i=Y(D.isGeographic,!0),o=Y(D.ellipsoid,Ie.WGS84),s=1/o.maximumRadius,u=ae.clone(D.nativeRectangle),m=ae.clone(D.rectangle),l,f,h,c;G(m)?(l=m.west,f=m.south,h=m.east,c=m.north):i?(l=X(u.west),f=X(u.south),h=X(u.east),c=X(u.north)):(l=u.west*s,f=b-2*A(V(-u.south*s)),h=u.east*s,c=b-2*A(V(-u.north*s)));let g=D.relativeToCenter,v=G(g);g=v?g:ie.ZERO;let U=Y(D.includeWebMercatorT,!1),M=Y(D.exaggeration,1),S=Y(D.exaggerationRelativeHeight,0),k=M!==1,w=Y(D.structure,Q.DEFAULT_STRUCTURE),d=Y(w.heightScale,Q.DEFAULT_STRUCTURE.heightScale),x=Y(w.heightOffset,Q.DEFAULT_STRUCTURE.heightOffset),T=Y(w.elementsPerHeight,Q.DEFAULT_STRUCTURE.elementsPerHeight),y=Y(w.stride,Q.DEFAULT_STRUCTURE.stride),p=Y(w.elementMultiplier,Q.DEFAULT_STRUCTURE.elementMultiplier),L=Y(w.isBigEndian,Q.DEFAULT_STRUCTURE.isBigEndian),B=ae.computeWidth(u),E=ae.computeHeight(u),O=B/(e-1),F=E/(r-1);i||(B*=s,E*=s);let N=o.radiiSquared,z=N.x,ke=N.y,ye=N.z,J=65536,Z=-65536,ue=ir.eastNorthUpToFixedFrame(g,o),te=xe.inverseTransformation(ue,Tr),j,q;U&&(j=Ue.geodeticLatitudeToMercatorAngle(f),q=1/(Ue.geodeticLatitudeToMercatorAngle(c)-j));let fe=kr;fe.x=Number.POSITIVE_INFINITY,fe.y=Number.POSITIVE_INFINITY,fe.z=Number.POSITIVE_INFINITY;let oe=yr;oe.x=Number.NEGATIVE_INFINITY,oe.y=Number.NEGATIVE_INFINITY,oe.z=Number.NEGATIVE_INFINITY;let Me=Number.POSITIVE_INFINITY,ce=e*r,mr=a>0?e*2+r*2:0,ne=ce+mr,ve=new Array(ne),Xe=new Array(ne),_e=new Array(ne),ze=U?new Array(ne):[],Ze=k?new Array(ne):[],Se=0,Ve=r,De=0,Ae=e;t&&(--Se,++Ve,--De,++Ae);let de=1e-5;for(let H=Se;H<Ve;++H){let K=H;K<0&&(K=0),K>=r&&(K=r-1);let W=u.north-F*K;i?W=X(W):W=b-2*A(V(-W*s));let Le=(W-f)/(c-f);Le=ge.clamp(Le,0,1);let we=H===Se,pe=H===Ve-1;a>0&&(we?W+=de*E:pe&&(W-=de*E));let Qe=se(W),Be=C(W),Je=ye*Be,Ke;U&&(Ke=(Ue.geodeticLatitudeToMercatorAngle(W)-j)*q);for(let me=De;me<Ae;++me){let $=me;$<0&&($=0),$>=e&&($=e-1);let Fe=K*(e*y)+$*y,R;if(T===1)R=n[Fe];else{R=0;let _;if(L)for(_=0;_<T;++_)R=R*p+n[Fe+_];else for(_=T-1;_>=0;--_)R=R*p+n[Fe+_]}R=R*d+x,Z=Math.max(Z,R),J=Math.min(J,R);let P=u.west+O*$;i?P=X(P):P=P*s;let be=(P-l)/(h-l);be=ge.clamp(be,0,1);let ee=K*e+$;if(a>0){let _=me===De,Re=me===Ae-1,pr=we||pe||_||Re;if((we||pe)&&(_||Re))continue;pr&&(R-=a,_?(ee=ce+(r-K-1),P-=de*B):pe?ee=ce+r+(e-$-1):Re?(ee=ce+r+e+K,P+=de*B):we&&(ee=ce+r+e+r+$))}let Ne=Qe*se(P),Ce=Qe*C(P),$e=z*Ne,Pe=ke*Ce,Oe=1/re($e*Ne+Pe*Ce+Je*Be),vr=$e*Oe,dr=Pe*Oe,wr=Je*Oe,le=new ie;le.x=vr+Ne*R,le.y=dr+Ce*R,le.z=wr+Be*R,xe.multiplyByPoint(te,le,Ye),ie.minimumByComponent(Ye,fe,fe),ie.maximumByComponent(Ye,oe,oe),Me=Math.min(Me,R),ve[ee]=le,_e[ee]=new rr(be,Le),Xe[ee]=R,U&&(ze[ee]=Ke),k&&(Ze[ee]=o.geodeticSurfaceNormal(le))}}let hr=er.fromPoints(ve),je;G(m)&&(je=ar.fromRectangle(m,J,Z,o));let qe;v&&(qe=new sr(o).computeHorizonCullingPointPossiblyUnderEllipsoid(g,ve,J));let gr=new nr(fe,oe,g),Ee=new fr(g,gr,Me,Z,ue,!1,U,k,M,S),We=new Float32Array(ne*Ee.stride),Ge=0;for(let H=0;H<ne;++H)Ge=Ee.encode(We,Ge,ve[H],_e[H],Xe[H],void 0,ze[H],Ze[H]);return{vertices:We,maximumHeight:Z,minimumHeight:J,encoding:Ee,boundingSphere3D:hr,orientedBoundingBox:je,occludeePointInScaledSpace:qe}};var lr=Q;var cr=xr(ur(),1);function Mr(D,se){if(D.encoding===or.LERC){let A;try{A=cr.default.decode(D.heightmap)}catch(b){throw new He(b)}if(A.statistics[0].minValue===Number.MAX_VALUE)throw new He("Invalid tile data");D.heightmap=A.pixels[0],D.width=A.width,D.height=A.height}D.ellipsoid=Ie.clone(D.ellipsoid),D.rectangle=ae.clone(D.rectangle);let C=lr.computeVertices(D),re=C.vertices;return se.push(re.buffer),{vertices:re.buffer,numberOfAttributes:C.encoding.stride,minimumHeight:C.minimumHeight,maximumHeight:C.maximumHeight,gridWidth:D.width,gridHeight:D.height,boundingSphere3D:C.boundingSphere3D,orientedBoundingBox:C.orientedBoundingBox,occludeePointInScaledSpace:C.occludeePointInScaledSpace,encoding:C.encoding,westIndicesSouthToNorth:C.westIndicesSouthToNorth,southIndicesEastToWest:C.southIndicesEastToWest,eastIndicesNorthToSouth:C.eastIndicesNorthToSouth,northIndicesWestToEast:C.northIndicesWestToEast}}var Pr=tr(Mr);export{Pr as default}; diff --git a/libs/cesium/1.111/Workers/createVerticesFromQuantizedTerrainMesh.js b/libs/cesium/1.111/Workers/createVerticesFromQuantizedTerrainMesh.js new file mode 100644 index 000000000..6969f378d --- /dev/null +++ b/libs/cesium/1.111/Workers/createVerticesFromQuantizedTerrainMesh.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Ct,b as vt}from"./chunk-UWTP54MD.js";import{a as Mt}from"./chunk-4M7FKQYC.js";import{a as z}from"./chunk-4XIXQUKW.js";import"./chunk-PNRMC4IG.js";import{a as Wt}from"./chunk-PG5ZS3T4.js";import{a as X}from"./chunk-JZL634RF.js";import{i as At}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{b as U,c as bt,d as lt}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as P,b as wt,c as pt}from"./chunk-F33YCXD2.js";import{a as f}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import{a as m}from"./chunk-KD2PMTHD.js";import{e as w}from"./chunk-ZUCO5WNM.js";function T(){m.throwInstantiationError()}Object.defineProperties(T.prototype,{errorEvent:{get:m.throwInstantiationError},credit:{get:m.throwInstantiationError},tilingScheme:{get:m.throwInstantiationError},hasWaterMask:{get:m.throwInstantiationError},hasVertexNormals:{get:m.throwInstantiationError},availability:{get:m.throwInstantiationError}});var Ot=[];T.getRegularGridIndices=function(t,n){if(t*n>=f.FOUR_GIGABYTES)throw new m("The total number of vertices (width * height) must be less than 4,294,967,296.");let o=Ot[t];w(o)||(Ot[t]=o=[]);let e=o[n];return w(e)||(t*n<f.SIXTY_FOUR_KILOBYTES?e=o[n]=new Uint16Array((t-1)*(n-1)*6):e=o[n]=new Uint32Array((t-1)*(n-1)*6),Pt(t,n,e,0)),e};var Gt=[];T.getRegularGridIndicesAndEdgeIndices=function(t,n){if(t*n>=f.FOUR_GIGABYTES)throw new m("The total number of vertices (width * height) must be less than 4,294,967,296.");let o=Gt[t];w(o)||(Gt[t]=o=[]);let e=o[n];if(!w(e)){let r=T.getRegularGridIndices(t,n),s=Lt(t,n),i=s.westIndicesSouthToNorth,c=s.southIndicesEastToWest,h=s.eastIndicesNorthToSouth,E=s.northIndicesWestToEast;e=o[n]={indices:r,westIndicesSouthToNorth:i,southIndicesEastToWest:c,eastIndicesNorthToSouth:h,northIndicesWestToEast:E}}return e};var kt=[];T.getRegularGridAndSkirtIndicesAndEdgeIndices=function(t,n){if(t*n>=f.FOUR_GIGABYTES)throw new m("The total number of vertices (width * height) must be less than 4,294,967,296.");let o=kt[t];w(o)||(kt[t]=o=[]);let e=o[n];if(!w(e)){let r=t*n,s=(t-1)*(n-1)*6,i=t*2+n*2,c=Math.max(0,i-4)*6,h=r+i,E=s+c,g=Lt(t,n),d=g.westIndicesSouthToNorth,p=g.southIndicesEastToWest,b=g.eastIndicesNorthToSouth,L=g.northIndicesWestToEast,N=X.createTypedArray(h,E);Pt(t,n,N,0),T.addSkirtIndices(d,p,b,L,r,N,s),e=o[n]={indices:N,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:b,northIndicesWestToEast:L,indexCountWithoutSkirts:s}}return e};T.addSkirtIndices=function(t,n,o,e,r,s,i){let c=r;i=Z(t,c,s,i),c+=t.length,i=Z(n,c,s,i),c+=n.length,i=Z(o,c,s,i),c+=o.length,Z(e,c,s,i)};function Lt(t,n){let o=new Array(n),e=new Array(t),r=new Array(n),s=new Array(t),i;for(i=0;i<t;++i)s[i]=i,e[i]=t*n-1-i;for(i=0;i<n;++i)r[i]=(i+1)*t-1,o[i]=(n-i-1)*t;return{westIndicesSouthToNorth:o,southIndicesEastToWest:e,eastIndicesNorthToSouth:r,northIndicesWestToEast:s}}function Pt(t,n,o,e){let r=0;for(let s=0;s<n-1;++s){for(let i=0;i<t-1;++i){let c=r,h=c+t,E=h+1,g=c+1;o[e++]=c,o[e++]=h,o[e++]=g,o[e++]=g,o[e++]=h,o[e++]=E,++r}++r}}function Z(t,n,o,e){let r=t[0],s=t.length;for(let i=1;i<s;++i){let c=t[i];o[e++]=r,o[e++]=c,o[e++]=n,o[e++]=n,o[e++]=c,o[e++]=n+1,r=c,++n}return e}T.heightmapTerrainQuality=.25;T.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(t,n,o){return t.maximumRadius*2*Math.PI*T.heightmapTerrainQuality/(n*o)};T.prototype.requestTileGeometry=m.throwInstantiationError;T.prototype.getLevelMaximumGeometricError=m.throwInstantiationError;T.prototype.getTileDataAvailable=m.throwInstantiationError;T.prototype.loadTileDataAvailability=m.throwInstantiationError;var Vt=T;var ht=32767,D=new P,Xt=new P,Zt=new P,u=new wt,Y=new lt;function Jt(t,n){let o=t.quantizedVertices,e=o.length/3,r=t.octEncodedNormals,s=t.westIndices.length+t.eastIndices.length+t.southIndices.length+t.northIndices.length,i=t.includeWebMercatorT,c=t.exaggeration,h=t.exaggerationRelativeHeight,g=c!==1,d=bt.clone(t.rectangle),p=d.west,b=d.south,L=d.east,N=d.north,I=pt.clone(t.ellipsoid),y=t.minimumHeight,v=t.maximumHeight,S=t.relativeToCenter,_=At.eastNorthUpToFixedFrame(S,I),O=U.inverseTransformation(_,new U),G,A;i&&(G=z.geodeticLatitudeToMercatorAngle(b),A=1/(z.geodeticLatitudeToMercatorAngle(N)-G));let j=o.subarray(0,e),q=o.subarray(e,2*e),Q=o.subarray(e*2,3*e),R=w(r),l=new Array(e),M=new Array(e),et=new Array(e),It=i?new Array(e):[],gt=g?new Array(e):[],W=Xt;W.x=Number.POSITIVE_INFINITY,W.y=Number.POSITIVE_INFINITY,W.z=Number.POSITIVE_INFINITY;let C=Zt;C.x=Number.NEGATIVE_INFINITY,C.y=Number.NEGATIVE_INFINITY,C.z=Number.NEGATIVE_INFINITY;let ot=Number.POSITIVE_INFINITY,nt=Number.NEGATIVE_INFINITY,it=Number.POSITIVE_INFINITY,rt=Number.NEGATIVE_INFINITY;for(let a=0;a<e;++a){let x=j[a],Kt=q[a],St=x/ht,xt=Kt/ht,yt=f.lerp(y,v,Q[a]/ht);u.longitude=f.lerp(p,L,St),u.latitude=f.lerp(b,N,xt),u.height=yt,ot=Math.min(u.longitude,ot),nt=Math.max(u.longitude,nt),it=Math.min(u.latitude,it),rt=Math.max(u.latitude,rt);let dt=I.cartographicToCartesian(u);l[a]=new lt(St,xt),M[a]=yt,et[a]=dt,i&&(It[a]=(z.geodeticLatitudeToMercatorAngle(u.latitude)-G)*A),g&&(gt[a]=I.geodeticSurfaceNormal(dt)),U.multiplyByPoint(O,dt,D),P.minimumByComponent(D,W,W),P.maximumByComponent(D,C,C)}let st=tt(t.westIndices,function(a,x){return l[a].y-l[x].y}),ct=tt(t.eastIndices,function(a,x){return l[x].y-l[a].y}),at=tt(t.southIndices,function(a,x){return l[x].x-l[a].x}),ut=tt(t.northIndices,function(a,x){return l[a].x-l[x].x}),mt;y<0&&(mt=new Ct(I).computeHorizonCullingPointPossiblyUnderEllipsoid(S,et,y));let k=y;k=Math.min(k,J(t.westIndices,t.westSkirtHeight,M,l,d,I,O,W,C)),k=Math.min(k,J(t.southIndices,t.southSkirtHeight,M,l,d,I,O,W,C)),k=Math.min(k,J(t.eastIndices,t.eastSkirtHeight,M,l,d,I,O,W,C)),k=Math.min(k,J(t.northIndices,t.northSkirtHeight,M,l,d,I,O,W,C));let Ft=new Wt(W,C,S),V=new vt(S,Ft,k,v,_,R,i,g,c,h),F=V.stride,Bt=e*F+s*F,B=new Float32Array(Bt),ft=0;for(let a=0;a<e;++a){if(R){let x=a*2;Y.x=r[x],Y.y=r[x+1]}ft=V.encode(B,ft,et[a],l[a],M[a],Y,It[a],gt[a])}let Ht=Math.max(0,(s-4)*2),_t=t.indices.length+Ht*3,K=X.createTypedArray(e+s,_t);K.set(t.indices,0);let Tt=1e-4,Et=(nt-ot)*Tt,Nt=(rt-it)*Tt,Yt=-Et,Rt=0,Ut=Et,zt=0,Dt=0,jt=Nt,qt=0,Qt=-Nt,H=e*F;return $(B,H,st,V,M,l,r,I,d,t.westSkirtHeight,G,A,Yt,Rt),H+=t.westIndices.length*F,$(B,H,at,V,M,l,r,I,d,t.southSkirtHeight,G,A,qt,Qt),H+=t.southIndices.length*F,$(B,H,ct,V,M,l,r,I,d,t.eastSkirtHeight,G,A,Ut,zt),H+=t.eastIndices.length*F,$(B,H,ut,V,M,l,r,I,d,t.northSkirtHeight,G,A,Dt,jt),Vt.addSkirtIndices(st,at,ct,ut,e,K,t.indices.length),n.push(B.buffer,K.buffer),{vertices:B.buffer,indices:K.buffer,westIndicesSouthToNorth:st,southIndicesEastToWest:at,eastIndicesNorthToSouth:ct,northIndicesWestToEast:ut,vertexStride:F,center:S,minimumHeight:y,maximumHeight:v,occludeePointInScaledSpace:mt,encoding:V,indexCountWithoutSkirts:t.indices.length}}function J(t,n,o,e,r,s,i,c,h){let E=Number.POSITIVE_INFINITY,g=r.north,d=r.south,p=r.east,b=r.west;p<b&&(p+=f.TWO_PI);let L=t.length;for(let N=0;N<L;++N){let I=t[N],y=o[I],v=e[I];u.longitude=f.lerp(b,p,v.x),u.latitude=f.lerp(d,g,v.y),u.height=y-n;let S=s.cartographicToCartesian(u,D);U.multiplyByPoint(i,S,S),P.minimumByComponent(S,c,c),P.maximumByComponent(S,h,h),E=Math.min(E,u.height)}return E}function $(t,n,o,e,r,s,i,c,h,E,g,d,p,b){let L=w(i),N=h.north,I=h.south,y=h.east,v=h.west;y<v&&(y+=f.TWO_PI);let S=o.length;for(let _=0;_<S;++_){let O=o[_],G=r[O],A=s[O];u.longitude=f.lerp(v,y,A.x)+p,u.latitude=f.lerp(I,N,A.y)+b,u.height=G-E;let j=c.cartographicToCartesian(u,D);if(L){let R=O*2;Y.x=i[R],Y.y=i[R+1]}let q;e.hasWebMercatorT&&(q=(z.geodeticLatitudeToMercatorAngle(u.latitude)-g)*d);let Q;e.hasGeodeticSurfaceNormals&&(Q=c.geodeticSurfaceNormal(j)),n=e.encode(t,n,j,A,u.height,Y,q,Q)}}function tt(t,n){let o;return typeof t.slice=="function"&&(o=t.slice(),typeof o.sort!="function"&&(o=void 0)),w(o)||(o=Array.prototype.slice.call(t)),o.sort(n),o}var Se=Mt(Jt);export{Se as default}; diff --git a/libs/cesium/1.111/Workers/createWallGeometry.js b/libs/cesium/1.111/Workers/createWallGeometry.js new file mode 100644 index 000000000..8bb1b4ff5 --- /dev/null +++ b/libs/cesium/1.111/Workers/createWallGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as nt}from"./chunk-MYZVCQ3M.js";import"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import{a as _}from"./chunk-WIRUK4BS.js";import"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as ot}from"./chunk-JZL634RF.js";import{a as it}from"./chunk-3UAKIC5Y.js";import{b as tt,c as et,d as R}from"./chunk-QEWKHB6D.js";import{d as I}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as S}from"./chunk-7XDW3BZW.js";import{a as s,c as l}from"./chunk-F33YCXD2.js";import{a as J}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as w}from"./chunk-K36PKEJW.js";import{a as P}from"./chunk-KD2PMTHD.js";import{e as r}from"./chunk-ZUCO5WNM.js";var Q=new s,Y=new s,lt=new s,st=new s,pt=new s,ut=new s,ft=new s;function k(t){t=w(t,w.EMPTY_OBJECT);let e=t.positions,o=t.maximumHeights,n=t.minimumHeights;if(!r(e))throw new P("options.positions is required.");if(r(o)&&o.length!==e.length)throw new P("options.positions and options.maximumHeights must have the same length.");if(r(n)&&n.length!==e.length)throw new P("options.positions and options.minimumHeights must have the same length.");let i=w(t.vertexFormat,_.DEFAULT),c=w(t.granularity,J.RADIANS_PER_DEGREE),a=w(t.ellipsoid,l.WGS84);this._positions=e,this._minimumHeights=n,this._maximumHeights=o,this._vertexFormat=_.clone(i),this._granularity=c,this._ellipsoid=l.clone(a),this._workerName="createWallGeometry";let m=1+e.length*s.packedLength+2;r(n)&&(m+=n.length),r(o)&&(m+=o.length),this.packedLength=m+l.packedLength+_.packedLength+1}k.pack=function(t,e,o){if(!r(t))throw new P("value is required");if(!r(e))throw new P("array is required");o=w(o,0);let n,i=t._positions,c=i.length;for(e[o++]=c,n=0;n<c;++n,o+=s.packedLength)s.pack(i[n],e,o);let a=t._minimumHeights;if(c=r(a)?a.length:0,e[o++]=c,r(a))for(n=0;n<c;++n)e[o++]=a[n];let m=t._maximumHeights;if(c=r(m)?m.length:0,e[o++]=c,r(m))for(n=0;n<c;++n)e[o++]=m[n];return l.pack(t._ellipsoid,e,o),o+=l.packedLength,_.pack(t._vertexFormat,e,o),o+=_.packedLength,e[o]=t._granularity,e};var mt=l.clone(l.UNIT_SPHERE),rt=new _,M={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:mt,vertexFormat:rt,granularity:void 0};k.unpack=function(t,e,o){if(!r(t))throw new P("array is required");e=w(e,0);let n,i=t[e++],c=new Array(i);for(n=0;n<i;++n,e+=s.packedLength)c[n]=s.unpack(t,e);i=t[e++];let a;if(i>0)for(a=new Array(i),n=0;n<i;++n)a[n]=t[e++];i=t[e++];let m;if(i>0)for(m=new Array(i),n=0;n<i;++n)m[n]=t[e++];let q=l.unpack(t,e,mt);e+=l.packedLength;let H=_.unpack(t,e,rt);e+=_.packedLength;let f=t[e];return r(o)?(o._positions=c,o._minimumHeights=a,o._maximumHeights=m,o._ellipsoid=l.clone(q,o._ellipsoid),o._vertexFormat=_.clone(H,o._vertexFormat),o._granularity=f,o):(M.positions=c,M.minimumHeights=a,M.maximumHeights=m,M.granularity=f,new k(M))};k.fromConstantHeights=function(t){t=w(t,w.EMPTY_OBJECT);let e=t.positions;if(!r(e))throw new P("options.positions is required.");let o,n,i=t.minimumHeight,c=t.maximumHeight,a=r(i),m=r(c);if(a||m){let H=e.length;o=a?new Array(H):void 0,n=m?new Array(H):void 0;for(let f=0;f<H;++f)a&&(o[f]=i),m&&(n[f]=c)}let q={positions:e,maximumHeights:n,minimumHeights:o,ellipsoid:t.ellipsoid,vertexFormat:t.vertexFormat};return new k(q)};k.createGeometry=function(t){let e=t._positions,o=t._minimumHeights,n=t._maximumHeights,i=t._vertexFormat,c=t._granularity,a=t._ellipsoid,m=nt.computePositions(a,e,n,o,c,!0);if(!r(m))return;let q=m.bottomPositions,H=m.topPositions,f=m.numCorners,W=H.length,y=W*2,h=i.position?new Float64Array(y):void 0,b=i.normal?new Float32Array(y):void 0,x=i.tangent?new Float32Array(y):void 0,F=i.bitangent?new Float32Array(y):void 0,B=i.st?new Float32Array(y/3*2):void 0,v=0,T=0,C=0,z=0,U=0,g=ft,d=ut,A=pt,Z=!0;W/=3;let p,j=0,ct=1/(W-f-1);for(p=0;p<W;++p){let E=p*3,u=s.fromArray(H,E,Q),G=s.fromArray(q,E,Y);if(i.position&&(h[v++]=G.x,h[v++]=G.y,h[v++]=G.z,h[v++]=u.x,h[v++]=u.y,h[v++]=u.z),i.st&&(B[U++]=j,B[U++]=0,B[U++]=j,B[U++]=1),i.normal||i.tangent||i.bitangent){let N=s.clone(s.ZERO,st),K=s.subtract(u,a.geodeticSurfaceNormal(u,Y),Y);if(p+1<W&&(N=s.fromArray(H,E+3,st)),Z){let V=s.subtract(N,u,lt),at=s.subtract(K,u,Q);g=s.normalize(s.cross(at,V,g),g),Z=!1}s.equalsEpsilon(u,N,J.EPSILON10)?Z=!0:(j+=ct,i.tangent&&(d=s.normalize(s.subtract(N,u,d),d)),i.bitangent&&(A=s.normalize(s.cross(g,d,A),A))),i.normal&&(b[T++]=g.x,b[T++]=g.y,b[T++]=g.z,b[T++]=g.x,b[T++]=g.y,b[T++]=g.z),i.tangent&&(x[z++]=d.x,x[z++]=d.y,x[z++]=d.z,x[z++]=d.x,x[z++]=d.y,x[z++]=d.z),i.bitangent&&(F[C++]=A.x,F[C++]=A.y,F[C++]=A.z,F[C++]=A.x,F[C++]=A.y,F[C++]=A.z)}}let D=new it;i.position&&(D.position=new R({componentDatatype:S.DOUBLE,componentsPerAttribute:3,values:h})),i.normal&&(D.normal=new R({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:b})),i.tangent&&(D.tangent=new R({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:x})),i.bitangent&&(D.bitangent=new R({componentDatatype:S.FLOAT,componentsPerAttribute:3,values:F})),i.st&&(D.st=new R({componentDatatype:S.FLOAT,componentsPerAttribute:2,values:B}));let $=y/3;y-=6*(f+1);let L=ot.createTypedArray($,y),O=0;for(p=0;p<$-2;p+=2){let E=p,u=p+2,G=s.fromArray(h,E*3,Q),N=s.fromArray(h,u*3,Y);if(s.equalsEpsilon(G,N,J.EPSILON10))continue;let K=p+1,V=p+3;L[O++]=K,L[O++]=E,L[O++]=V,L[O++]=V,L[O++]=E,L[O++]=u}return new et({attributes:D,indices:L,primitiveType:tt.TRIANGLES,boundingSphere:new I.fromVertices(h)})};var X=k;function ht(t,e){return r(e)&&(t=X.unpack(t,e)),t._ellipsoid=l.clone(t._ellipsoid),X.createGeometry(t)}var Ot=ht;export{Ot as default}; diff --git a/libs/cesium/1.111/Workers/createWallOutlineGeometry.js b/libs/cesium/1.111/Workers/createWallOutlineGeometry.js new file mode 100644 index 000000000..9b0881adf --- /dev/null +++ b/libs/cesium/1.111/Workers/createWallOutlineGeometry.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as B}from"./chunk-MYZVCQ3M.js";import"./chunk-Y33I6CKI.js";import"./chunk-YXVAQU2G.js";import"./chunk-EFCSU2FF.js";import"./chunk-BSXS3UVL.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as N}from"./chunk-JZL634RF.js";import{a as M}from"./chunk-3UAKIC5Y.js";import{b as q,c as R,d as W}from"./chunk-QEWKHB6D.js";import{d as D}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import"./chunk-KCIWEUSR.js";import{a as S}from"./chunk-7XDW3BZW.js";import{a as p,c as l}from"./chunk-F33YCXD2.js";import{a as O}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import{a as d}from"./chunk-K36PKEJW.js";import{a as _}from"./chunk-KD2PMTHD.js";import{e as m}from"./chunk-ZUCO5WNM.js";var G=new p,U=new p;function w(i){i=d(i,d.EMPTY_OBJECT);let t=i.positions,e=i.maximumHeights,o=i.minimumHeights;if(!m(t))throw new _("options.positions is required.");if(m(e)&&e.length!==t.length)throw new _("options.positions and options.maximumHeights must have the same length.");if(m(o)&&o.length!==t.length)throw new _("options.positions and options.minimumHeights must have the same length.");let s=d(i.granularity,O.RADIANS_PER_DEGREE),r=d(i.ellipsoid,l.WGS84);this._positions=t,this._minimumHeights=o,this._maximumHeights=e,this._granularity=s,this._ellipsoid=l.clone(r),this._workerName="createWallOutlineGeometry";let n=1+t.length*p.packedLength+2;m(o)&&(n+=o.length),m(e)&&(n+=e.length),this.packedLength=n+l.packedLength+1}w.pack=function(i,t,e){if(!m(i))throw new _("value is required");if(!m(t))throw new _("array is required");e=d(e,0);let o,s=i._positions,r=s.length;for(t[e++]=r,o=0;o<r;++o,e+=p.packedLength)p.pack(s[o],t,e);let n=i._minimumHeights;if(r=m(n)?n.length:0,t[e++]=r,m(n))for(o=0;o<r;++o)t[e++]=n[o];let c=i._maximumHeights;if(r=m(c)?c.length:0,t[e++]=r,m(c))for(o=0;o<r;++o)t[e++]=c[o];return l.pack(i._ellipsoid,t,e),e+=l.packedLength,t[e]=i._granularity,t};var z=l.clone(l.UNIT_SPHERE),b={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:z,granularity:void 0};w.unpack=function(i,t,e){if(!m(i))throw new _("array is required");t=d(t,0);let o,s=i[t++],r=new Array(s);for(o=0;o<s;++o,t+=p.packedLength)r[o]=p.unpack(i,t);s=i[t++];let n;if(s>0)for(n=new Array(s),o=0;o<s;++o)n[o]=i[t++];s=i[t++];let c;if(s>0)for(c=new Array(s),o=0;o<s;++o)c[o]=i[t++];let E=l.unpack(i,t,z);t+=l.packedLength;let u=i[t];return m(e)?(e._positions=r,e._minimumHeights=n,e._maximumHeights=c,e._ellipsoid=l.clone(E,e._ellipsoid),e._granularity=u,e):(b.positions=r,b.minimumHeights=n,b.maximumHeights=c,b.granularity=u,new w(b))};w.fromConstantHeights=function(i){i=d(i,d.EMPTY_OBJECT);let t=i.positions;if(!m(t))throw new _("options.positions is required.");let e,o,s=i.minimumHeight,r=i.maximumHeight,n=m(s),c=m(r);if(n||c){let u=t.length;e=n?new Array(u):void 0,o=c?new Array(u):void 0;for(let g=0;g<u;++g)n&&(e[g]=s),c&&(o[g]=r)}let E={positions:t,maximumHeights:o,minimumHeights:e,ellipsoid:i.ellipsoid};return new w(E)};w.createGeometry=function(i){let t=i._positions,e=i._minimumHeights,o=i._maximumHeights,s=i._granularity,r=i._ellipsoid,n=B.computePositions(r,t,o,e,s,!1);if(!m(n))return;let c=n.bottomPositions,E=n.topPositions,u=E.length,g=u*2,f=new Float64Array(g),P=0;u/=3;let h;for(h=0;h<u;++h){let A=h*3,k=p.fromArray(E,A,G),L=p.fromArray(c,A,U);f[P++]=L.x,f[P++]=L.y,f[P++]=L.z,f[P++]=k.x,f[P++]=k.y,f[P++]=k.z}let V=new M({position:new W({componentDatatype:S.DOUBLE,componentsPerAttribute:3,values:f})}),y=g/3;g=2*y-4+y;let a=N.createTypedArray(y,g),H=0;for(h=0;h<y-2;h+=2){let A=h,k=h+2,L=p.fromArray(f,A*3,G),v=p.fromArray(f,k*3,U);if(p.equalsEpsilon(L,v,O.EPSILON10))continue;let T=h+1,x=h+3;a[H++]=T,a[H++]=A,a[H++]=T,a[H++]=x,a[H++]=A,a[H++]=k}return a[H++]=y-2,a[H++]=y-1,new R({attributes:V,indices:a,primitiveType:q.LINES,boundingSphere:new D.fromVertices(f)})};var C=w;function J(i,t){return m(t)&&(i=C.unpack(i,t)),i._ellipsoid=l.clone(i._ellipsoid),C.createGeometry(i)}var pi=J;export{pi as default}; diff --git a/libs/cesium/1.111/Workers/decodeDraco.js b/libs/cesium/1.111/Workers/decodeDraco.js new file mode 100644 index 000000000..4ffc5595e --- /dev/null +++ b/libs/cesium/1.111/Workers/decodeDraco.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as O}from"./chunk-X42YZYOT.js";import{a as I}from"./chunk-4M7FKQYC.js";import{a as m}from"./chunk-JZL634RF.js";import{a as w}from"./chunk-7XDW3BZW.js";import"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import{a as A}from"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{d as D,e as d}from"./chunk-ZUCO5WNM.js";var b=D(O(),1),o;function F(t,e){let i=t.num_points(),a=t.num_faces(),n=new o.DracoInt32Array,s=a*3,r=m.createTypedArray(i,s),u=0;for(let c=0;c<a;++c)e.GetFaceFromMesh(t,c,n),r[u+0]=n.GetValue(0),r[u+1]=n.GetValue(1),r[u+2]=n.GetValue(2),u+=3;return o.destroy(n),{typedArray:r,numberOfIndices:s}}function U(t,e,i,a,n){let s,r;a.quantizationBits<=8?(r=new o.DracoUInt8Array,s=new Uint8Array(n),e.GetAttributeUInt8ForAllPoints(t,i,r)):a.quantizationBits<=16?(r=new o.DracoUInt16Array,s=new Uint16Array(n),e.GetAttributeUInt16ForAllPoints(t,i,r)):(r=new o.DracoFloat32Array,s=new Float32Array(n),e.GetAttributeFloatForAllPoints(t,i,r));for(let u=0;u<n;++u)s[u]=r.GetValue(u);return o.destroy(r),s}function k(t,e,i,a){let n,s;switch(i.data_type()){case 1:case 11:s=new o.DracoInt8Array,n=new Int8Array(a),e.GetAttributeInt8ForAllPoints(t,i,s);break;case 2:s=new o.DracoUInt8Array,n=new Uint8Array(a),e.GetAttributeUInt8ForAllPoints(t,i,s);break;case 3:s=new o.DracoInt16Array,n=new Int16Array(a),e.GetAttributeInt16ForAllPoints(t,i,s);break;case 4:s=new o.DracoUInt16Array,n=new Uint16Array(a),e.GetAttributeUInt16ForAllPoints(t,i,s);break;case 5:case 7:s=new o.DracoInt32Array,n=new Int32Array(a),e.GetAttributeInt32ForAllPoints(t,i,s);break;case 6:case 8:s=new o.DracoUInt32Array,n=new Uint32Array(a),e.GetAttributeUInt32ForAllPoints(t,i,s);break;case 9:case 10:s=new o.DracoFloat32Array,n=new Float32Array(a),e.GetAttributeFloatForAllPoints(t,i,s);break}for(let r=0;r<a;++r)n[r]=s.GetValue(r);return o.destroy(s),n}function p(t,e,i){let a=t.num_points(),n=i.num_components(),s,r=new o.AttributeQuantizationTransform;if(r.InitFromAttribute(i)){let y=new Array(n);for(let f=0;f<n;++f)y[f]=r.min_value(f);s={quantizationBits:r.quantization_bits(),minValues:y,range:r.range(),octEncoded:!1}}o.destroy(r),r=new o.AttributeOctahedronTransform,r.InitFromAttribute(i)&&(s={quantizationBits:r.quantization_bits(),octEncoded:!0}),o.destroy(r);let u=a*n,c;d(s)?c=U(t,e,i,s,u):c=k(t,e,i,u);let l=w.fromTypedArray(c);return{array:c,data:{componentsPerAttribute:n,componentDatatype:l,byteOffset:i.byte_offset(),byteStride:w.getSizeInBytes(l)*n,normalized:i.normalized(),quantization:s}}}function _(t){let e=new o.Decoder;t.dequantizeInShader&&(e.SkipAttributeTransform(o.POSITION),e.SkipAttributeTransform(o.NORMAL));let i=new o.DecoderBuffer;if(i.Init(t.buffer,t.buffer.length),e.GetEncodedGeometryType(i)!==o.POINT_CLOUD)throw new A("Draco geometry type must be POINT_CLOUD.");let n=new o.PointCloud,s=e.DecodeBufferToPointCloud(i,n);if(!s.ok()||n.ptr===0)throw new A(`Error decoding draco point cloud: ${s.error_msg()}`);o.destroy(i);let r={},u=t.properties;for(let c in u)if(u.hasOwnProperty(c)){let l;if(c==="POSITION"||c==="NORMAL"){let y=e.GetAttributeId(n,o[c]);l=e.GetAttribute(n,y)}else{let y=u[c];l=e.GetAttributeByUniqueId(n,y)}r[c]=p(n,e,l)}return o.destroy(n),o.destroy(e),r}function g(t){let e=new o.Decoder,i=["POSITION","NORMAL","COLOR","TEX_COORD"];if(t.dequantizeInShader)for(let f=0;f<i.length;++f)e.SkipAttributeTransform(o[i[f]]);let a=t.bufferView,n=new o.DecoderBuffer;if(n.Init(t.array,a.byteLength),e.GetEncodedGeometryType(n)!==o.TRIANGULAR_MESH)throw new A("Unsupported draco mesh geometry type.");let r=new o.Mesh,u=e.DecodeBufferToMesh(n,r);if(!u.ok()||r.ptr===0)throw new A(`Error decoding draco mesh geometry: ${u.error_msg()}`);o.destroy(n);let c={},l=t.compressedAttributes;for(let f in l)if(l.hasOwnProperty(f)){let P=l[f],T=e.GetAttributeByUniqueId(r,P);c[f]=p(r,e,T)}let y={indexArray:F(r,e),attributeData:c};return o.destroy(r),o.destroy(e),y}async function z(t,e){return d(t.bufferView)?g(t):_(t)}async function C(t,e){let i=t.webAssemblyConfig;return d(i)&&d(i.wasmBinaryFile)?o=await(0,b.default)(i):o=await(0,b.default)(),!0}async function G(t,e){let i=t.webAssemblyConfig;return d(i)?C(t,e):z(t,e)}var h=I(G);export{h as default}; diff --git a/libs/cesium/1.111/Workers/decodeGoogleEarthEnterprisePacket.js b/libs/cesium/1.111/Workers/decodeGoogleEarthEnterprisePacket.js new file mode 100644 index 000000000..a3cb3b37b --- /dev/null +++ b/libs/cesium/1.111/Workers/decodeGoogleEarthEnterprisePacket.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Se}from"./chunk-4M7FKQYC.js";import{a as D}from"./chunk-P3JQY4NV.js";import{b as ae}from"./chunk-KD2PMTHD.js";import{c as R,d as Ot,e as me}from"./chunk-ZUCO5WNM.js";var Ie=R((Li,Ae)=>{"use strict";var zt=(t,i,e,r)=>{let s=t&65535|0,n=t>>>16&65535|0,c=0;for(;e!==0;){c=e>2e3?2e3:e,e-=c;do s=s+i[r++]|0,n=n+s|0;while(--c);s%=65521,n%=65521}return s|n<<16|0};Ae.exports=zt});var De=R((Pi,Re)=>{"use strict";var Ht=()=>{let t,i=[];for(var e=0;e<256;e++){t=e;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;i[e]=t}return i},Ft=new Uint32Array(Ht()),Vt=(t,i,e,r)=>{let s=Ft,n=r+e;t^=-1;for(let c=r;c<n;c++)t=t>>>8^s[(t^i[c])&255];return t^-1};Re.exports=Vt});var Oe=R((zi,Ue)=>{"use strict";Ue.exports=function(i,e){let r,s,n,c,f,_,a,o,v,w,l,u,I,p,x,T,g,d,E,A,h,S,k,b,m=i.state;r=i.next_in,k=i.input,s=r+(i.avail_in-5),n=i.next_out,b=i.output,c=n-(e-i.avail_out),f=n+(i.avail_out-257),_=m.dmax,a=m.wsize,o=m.whave,v=m.wnext,w=m.window,l=m.hold,u=m.bits,I=m.lencode,p=m.distcode,x=(1<<m.lenbits)-1,T=(1<<m.distbits)-1;e:do{u<15&&(l+=k[r++]<<u,u+=8,l+=k[r++]<<u,u+=8),g=I[l&x];t:for(;;){if(d=g>>>24,l>>>=d,u-=d,d=g>>>16&255,d===0)b[n++]=g&65535;else if(d&16){E=g&65535,d&=15,d&&(u<d&&(l+=k[r++]<<u,u+=8),E+=l&(1<<d)-1,l>>>=d,u-=d),u<15&&(l+=k[r++]<<u,u+=8,l+=k[r++]<<u,u+=8),g=p[l&T];i:for(;;){if(d=g>>>24,l>>>=d,u-=d,d=g>>>16&255,d&16){if(A=g&65535,d&=15,u<d&&(l+=k[r++]<<u,u+=8,u<d&&(l+=k[r++]<<u,u+=8)),A+=l&(1<<d)-1,A>_){i.msg="invalid distance too far back",m.mode=16209;break e}if(l>>>=d,u-=d,d=n-c,A>d){if(d=A-d,d>o&&m.sane){i.msg="invalid distance too far back",m.mode=16209;break e}if(h=0,S=w,v===0){if(h+=a-d,d<E){E-=d;do b[n++]=w[h++];while(--d);h=n-A,S=b}}else if(v<d){if(h+=a+v-d,d-=v,d<E){E-=d;do b[n++]=w[h++];while(--d);if(h=0,v<E){d=v,E-=d;do b[n++]=w[h++];while(--d);h=n-A,S=b}}}else if(h+=v-d,d<E){E-=d;do b[n++]=w[h++];while(--d);h=n-A,S=b}for(;E>2;)b[n++]=S[h++],b[n++]=S[h++],b[n++]=S[h++],E-=3;E&&(b[n++]=S[h++],E>1&&(b[n++]=S[h++]))}else{h=n-A;do b[n++]=b[h++],b[n++]=b[h++],b[n++]=b[h++],E-=3;while(E>2);E&&(b[n++]=b[h++],E>1&&(b[n++]=b[h++]))}}else if(d&64){i.msg="invalid distance code",m.mode=16209;break e}else{g=p[(g&65535)+(l&(1<<d)-1)];continue i}break}}else if(d&64)if(d&32){m.mode=16191;break e}else{i.msg="invalid literal/length code",m.mode=16209;break e}else{g=I[(g&65535)+(l&(1<<d)-1)];continue t}break}}while(r<s&&n<f);E=u>>3,r-=E,u-=E<<3,l&=(1<<u)-1,i.next_in=r,i.next_out=n,i.avail_in=r<s?5+(s-r):5-(r-s),i.avail_out=n<f?257+(f-n):257-(n-f),m.hold=l,m.bits=u}});var Me=R((Hi,Ne)=>{"use strict";var Gt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Yt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Xt=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),qt=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Kt=(t,i,e,r,s,n,c,f)=>{let _=f.bits,a=0,o=0,v=0,w=0,l=0,u=0,I=0,p=0,x=0,T=0,g,d,E,A,h,S=null,k,b=new Uint16Array(15+1),m=new Uint16Array(15+1),L=null,Ee,W,Q;for(a=0;a<=15;a++)b[a]=0;for(o=0;o<r;o++)b[i[e+o]]++;for(l=_,w=15;w>=1&&b[w]===0;w--);if(l>w&&(l=w),w===0)return s[n++]=1<<24|64<<16|0,s[n++]=1<<24|64<<16|0,f.bits=1,0;for(v=1;v<w&&b[v]===0;v++);for(l<v&&(l=v),p=1,a=1;a<=15;a++)if(p<<=1,p-=b[a],p<0)return-1;if(p>0&&(t===0||w!==1))return-1;for(m[1]=0,a=1;a<15;a++)m[a+1]=m[a]+b[a];for(o=0;o<r;o++)i[e+o]!==0&&(c[m[i[e+o]]++]=o);if(t===0?(S=L=c,k=20):t===1?(S=Gt,L=Yt,k=257):(S=Xt,L=qt,k=0),T=0,o=0,a=v,h=n,u=l,I=0,E=-1,x=1<<l,A=x-1,t===1&&x>852||t===2&&x>592)return 1;for(;;){Ee=a-I,c[o]+1<k?(W=0,Q=c[o]):c[o]>=k?(W=L[c[o]-k],Q=S[c[o]-k]):(W=32+64,Q=0),g=1<<a-I,d=1<<u,v=d;do d-=g,s[h+(T>>I)+d]=Ee<<24|W<<16|Q|0;while(d!==0);for(g=1<<a-1;T&g;)g>>=1;if(g!==0?(T&=g-1,T+=g):T=0,o++,--b[a]===0){if(a===w)break;a=i[e+c[o]]}if(a>l&&(T&A)!==E){for(I===0&&(I=l),h+=v,u=a-I,p=1<<u;u+I<w&&(p-=b[u+I],!(p<=0));)u++,p<<=1;if(x+=1<<u,t===1&&x>852||t===2&&x>592)return 1;E=T&A,s[E]=l<<24|u<<16|h-n|0}}return T!==0&&(s[h+T]=a-I<<24|64<<16|0),f.bits=l,0};Ne.exports=Kt});var J=R((Fi,Ze)=>{"use strict";Ze.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var bt=R((Vi,O)=>{"use strict";var he=Ie(),M=De(),jt=Oe(),X=Me(),Wt=0,st=1,ft=2,{Z_FINISH:Be,Z_BLOCK:Qt,Z_TREES:$,Z_OK:P,Z_STREAM_END:Jt,Z_NEED_DICT:$t,Z_STREAM_ERROR:U,Z_DATA_ERROR:lt,Z_MEM_ERROR:ue,Z_BUF_ERROR:ei,Z_DEFLATED:Ce}=J(),ne=16180,Le=16181,Pe=16182,ze=16183,He=16184,Fe=16185,Ve=16186,Ge=16187,Ye=16188,Xe=16189,ie=16190,Z=16191,se=16192,qe=16193,fe=16194,Ke=16195,je=16196,We=16197,Qe=16198,ee=16199,te=16200,Je=16201,$e=16202,et=16203,tt=16204,it=16205,le=16206,nt=16207,rt=16208,y=16209,we=16210,ct=16211,ti=852,ii=592,ni=15,ri=ni,at=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function ai(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var z=t=>{if(!t)return 1;let i=t.state;return!i||i.strm!==t||i.mode<ne||i.mode>ct?1:0},dt=t=>{if(z(t))return U;let i=t.state;return t.total_in=t.total_out=i.total=0,t.msg="",i.wrap&&(t.adler=i.wrap&1),i.mode=ne,i.last=0,i.havedict=0,i.flags=-1,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(ti),i.distcode=i.distdyn=new Int32Array(ii),i.sane=1,i.back=-1,P},ht=t=>{if(z(t))return U;let i=t.state;return i.wsize=0,i.whave=0,i.wnext=0,dt(t)},ut=(t,i)=>{let e;if(z(t))return U;let r=t.state;return i<0?(e=0,i=-i):(e=(i>>4)+5,i<48&&(i&=15)),i&&(i<8||i>15)?U:(r.window!==null&&r.wbits!==i&&(r.window=null),r.wrap=e,r.wbits=i,ht(t))},wt=(t,i)=>{if(!t)return U;let e=new ai;t.state=e,e.strm=t,e.window=null,e.mode=ne;let r=ut(t,i);return r!==P&&(t.state=null),r},oi=t=>wt(t,ri),ot=!0,ce,de,si=t=>{if(ot){ce=new Int32Array(512),de=new Int32Array(32);let i=0;for(;i<144;)t.lens[i++]=8;for(;i<256;)t.lens[i++]=9;for(;i<280;)t.lens[i++]=7;for(;i<288;)t.lens[i++]=8;for(X(st,t.lens,0,288,ce,0,t.work,{bits:9}),i=0;i<32;)t.lens[i++]=5;X(ft,t.lens,0,32,de,0,t.work,{bits:5}),ot=!1}t.lencode=ce,t.lenbits=9,t.distcode=de,t.distbits=5},xt=(t,i,e,r)=>{let s,n=t.state;return n.window===null&&(n.wsize=1<<n.wbits,n.wnext=0,n.whave=0,n.window=new Uint8Array(n.wsize)),r>=n.wsize?(n.window.set(i.subarray(e-n.wsize,e),0),n.wnext=0,n.whave=n.wsize):(s=n.wsize-n.wnext,s>r&&(s=r),n.window.set(i.subarray(e-r,e-r+s),n.wnext),r-=s,r?(n.window.set(i.subarray(e-r,e),0),n.wnext=r,n.whave=n.wsize):(n.wnext+=s,n.wnext===n.wsize&&(n.wnext=0),n.whave<n.wsize&&(n.whave+=s))),0},fi=(t,i)=>{let e,r,s,n,c,f,_,a,o,v,w,l,u,I,p=0,x,T,g,d,E,A,h,S,k=new Uint8Array(4),b,m,L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(z(t)||!t.output||!t.input&&t.avail_in!==0)return U;e=t.state,e.mode===Z&&(e.mode=se),c=t.next_out,s=t.output,_=t.avail_out,n=t.next_in,r=t.input,f=t.avail_in,a=e.hold,o=e.bits,v=f,w=_,S=P;e:for(;;)switch(e.mode){case ne:if(e.wrap===0){e.mode=se;break}for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.wrap&2&&a===35615){e.wbits===0&&(e.wbits=15),e.check=0,k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0),a=0,o=0,e.mode=Le;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((a&255)<<8)+(a>>8))%31){t.msg="incorrect header check",e.mode=y;break}if((a&15)!==Ce){t.msg="unknown compression method",e.mode=y;break}if(a>>>=4,o-=4,h=(a&15)+8,e.wbits===0&&(e.wbits=h),h>15||h>e.wbits){t.msg="invalid window size",e.mode=y;break}e.dmax=1<<e.wbits,e.flags=0,t.adler=e.check=1,e.mode=a&512?Xe:Z,a=0,o=0;break;case Le:for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.flags=a,(e.flags&255)!==Ce){t.msg="unknown compression method",e.mode=y;break}if(e.flags&57344){t.msg="unknown header flags set",e.mode=y;break}e.head&&(e.head.text=a>>8&1),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0)),a=0,o=0,e.mode=Pe;case Pe:for(;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.head&&(e.head.time=a),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,k[2]=a>>>16&255,k[3]=a>>>24&255,e.check=M(e.check,k,4,0)),a=0,o=0,e.mode=ze;case ze:for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.head&&(e.head.xflags=a&255,e.head.os=a>>8),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0)),a=0,o=0,e.mode=He;case He:if(e.flags&1024){for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.length=a,e.head&&(e.head.extra_len=a),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0)),a=0,o=0}else e.head&&(e.head.extra=null);e.mode=Fe;case Fe:if(e.flags&1024&&(l=e.length,l>f&&(l=f),l&&(e.head&&(h=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(r.subarray(n,n+l),h)),e.flags&512&&e.wrap&4&&(e.check=M(e.check,r,l,n)),f-=l,n+=l,e.length-=l),e.length))break e;e.length=0,e.mode=Ve;case Ve:if(e.flags&2048){if(f===0)break e;l=0;do h=r[n+l++],e.head&&h&&e.length<65536&&(e.head.name+=String.fromCharCode(h));while(h&&l<f);if(e.flags&512&&e.wrap&4&&(e.check=M(e.check,r,l,n)),f-=l,n+=l,h)break e}else e.head&&(e.head.name=null);e.length=0,e.mode=Ge;case Ge:if(e.flags&4096){if(f===0)break e;l=0;do h=r[n+l++],e.head&&h&&e.length<65536&&(e.head.comment+=String.fromCharCode(h));while(h&&l<f);if(e.flags&512&&e.wrap&4&&(e.check=M(e.check,r,l,n)),f-=l,n+=l,h)break e}else e.head&&(e.head.comment=null);e.mode=Ye;case Ye:if(e.flags&512){for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.wrap&4&&a!==(e.check&65535)){t.msg="header crc mismatch",e.mode=y;break}a=0,o=0}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=!0),t.adler=e.check=0,e.mode=Z;break;case Xe:for(;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}t.adler=e.check=at(a),a=0,o=0,e.mode=ie;case ie:if(e.havedict===0)return t.next_out=c,t.avail_out=_,t.next_in=n,t.avail_in=f,e.hold=a,e.bits=o,$t;t.adler=e.check=1,e.mode=Z;case Z:if(i===Qt||i===$)break e;case se:if(e.last){a>>>=o&7,o-=o&7,e.mode=le;break}for(;o<3;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}switch(e.last=a&1,a>>>=1,o-=1,a&3){case 0:e.mode=qe;break;case 1:if(si(e),e.mode=ee,i===$){a>>>=2,o-=2;break e}break;case 2:e.mode=je;break;case 3:t.msg="invalid block type",e.mode=y}a>>>=2,o-=2;break;case qe:for(a>>>=o&7,o-=o&7;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if((a&65535)!==(a>>>16^65535)){t.msg="invalid stored block lengths",e.mode=y;break}if(e.length=a&65535,a=0,o=0,e.mode=fe,i===$)break e;case fe:e.mode=Ke;case Ke:if(l=e.length,l){if(l>f&&(l=f),l>_&&(l=_),l===0)break e;s.set(r.subarray(n,n+l),c),f-=l,n+=l,_-=l,c+=l,e.length-=l;break}e.mode=Z;break;case je:for(;o<14;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.nlen=(a&31)+257,a>>>=5,o-=5,e.ndist=(a&31)+1,a>>>=5,o-=5,e.ncode=(a&15)+4,a>>>=4,o-=4,e.nlen>286||e.ndist>30){t.msg="too many length or distance symbols",e.mode=y;break}e.have=0,e.mode=We;case We:for(;e.have<e.ncode;){for(;o<3;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.lens[L[e.have++]]=a&7,a>>>=3,o-=3}for(;e.have<19;)e.lens[L[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,b={bits:e.lenbits},S=X(Wt,e.lens,0,19,e.lencode,0,e.work,b),e.lenbits=b.bits,S){t.msg="invalid code lengths set",e.mode=y;break}e.have=0,e.mode=Qe;case Qe:for(;e.have<e.nlen+e.ndist;){for(;p=e.lencode[a&(1<<e.lenbits)-1],x=p>>>24,T=p>>>16&255,g=p&65535,!(x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(g<16)a>>>=x,o-=x,e.lens[e.have++]=g;else{if(g===16){for(m=x+2;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(a>>>=x,o-=x,e.have===0){t.msg="invalid bit length repeat",e.mode=y;break}h=e.lens[e.have-1],l=3+(a&3),a>>>=2,o-=2}else if(g===17){for(m=x+3;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=x,o-=x,h=0,l=3+(a&7),a>>>=3,o-=3}else{for(m=x+7;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=x,o-=x,h=0,l=11+(a&127),a>>>=7,o-=7}if(e.have+l>e.nlen+e.ndist){t.msg="invalid bit length repeat",e.mode=y;break}for(;l--;)e.lens[e.have++]=h}}if(e.mode===y)break;if(e.lens[256]===0){t.msg="invalid code -- missing end-of-block",e.mode=y;break}if(e.lenbits=9,b={bits:e.lenbits},S=X(st,e.lens,0,e.nlen,e.lencode,0,e.work,b),e.lenbits=b.bits,S){t.msg="invalid literal/lengths set",e.mode=y;break}if(e.distbits=6,e.distcode=e.distdyn,b={bits:e.distbits},S=X(ft,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,b),e.distbits=b.bits,S){t.msg="invalid distances set",e.mode=y;break}if(e.mode=ee,i===$)break e;case ee:e.mode=te;case te:if(f>=6&&_>=258){t.next_out=c,t.avail_out=_,t.next_in=n,t.avail_in=f,e.hold=a,e.bits=o,jt(t,w),c=t.next_out,s=t.output,_=t.avail_out,n=t.next_in,r=t.input,f=t.avail_in,a=e.hold,o=e.bits,e.mode===Z&&(e.back=-1);break}for(e.back=0;p=e.lencode[a&(1<<e.lenbits)-1],x=p>>>24,T=p>>>16&255,g=p&65535,!(x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(T&&!(T&240)){for(d=x,E=T,A=g;p=e.lencode[A+((a&(1<<d+E)-1)>>d)],x=p>>>24,T=p>>>16&255,g=p&65535,!(d+x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=d,o-=d,e.back+=d}if(a>>>=x,o-=x,e.back+=x,e.length=g,T===0){e.mode=it;break}if(T&32){e.back=-1,e.mode=Z;break}if(T&64){t.msg="invalid literal/length code",e.mode=y;break}e.extra=T&15,e.mode=Je;case Je:if(e.extra){for(m=e.extra;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.length+=a&(1<<e.extra)-1,a>>>=e.extra,o-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=$e;case $e:for(;p=e.distcode[a&(1<<e.distbits)-1],x=p>>>24,T=p>>>16&255,g=p&65535,!(x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(!(T&240)){for(d=x,E=T,A=g;p=e.distcode[A+((a&(1<<d+E)-1)>>d)],x=p>>>24,T=p>>>16&255,g=p&65535,!(d+x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=d,o-=d,e.back+=d}if(a>>>=x,o-=x,e.back+=x,T&64){t.msg="invalid distance code",e.mode=y;break}e.offset=g,e.extra=T&15,e.mode=et;case et:if(e.extra){for(m=e.extra;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.offset+=a&(1<<e.extra)-1,a>>>=e.extra,o-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){t.msg="invalid distance too far back",e.mode=y;break}e.mode=tt;case tt:if(_===0)break e;if(l=w-_,e.offset>l){if(l=e.offset-l,l>e.whave&&e.sane){t.msg="invalid distance too far back",e.mode=y;break}l>e.wnext?(l-=e.wnext,u=e.wsize-l):u=e.wnext-l,l>e.length&&(l=e.length),I=e.window}else I=s,u=c-e.offset,l=e.length;l>_&&(l=_),_-=l,e.length-=l;do s[c++]=I[u++];while(--l);e.length===0&&(e.mode=te);break;case it:if(_===0)break e;s[c++]=e.length,_--,e.mode=te;break;case le:if(e.wrap){for(;o<32;){if(f===0)break e;f--,a|=r[n++]<<o,o+=8}if(w-=_,t.total_out+=w,e.total+=w,e.wrap&4&&w&&(t.adler=e.check=e.flags?M(e.check,s,w,c-w):he(e.check,s,w,c-w)),w=_,e.wrap&4&&(e.flags?a:at(a))!==e.check){t.msg="incorrect data check",e.mode=y;break}a=0,o=0}e.mode=nt;case nt:if(e.wrap&&e.flags){for(;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.wrap&4&&a!==(e.total&4294967295)){t.msg="incorrect length check",e.mode=y;break}a=0,o=0}e.mode=rt;case rt:S=Jt;break e;case y:S=lt;break e;case we:return ue;case ct:default:return U}return t.next_out=c,t.avail_out=_,t.next_in=n,t.avail_in=f,e.hold=a,e.bits=o,(e.wsize||w!==t.avail_out&&e.mode<y&&(e.mode<le||i!==Be))&&xt(t,t.output,t.next_out,w-t.avail_out)?(e.mode=we,ue):(v-=t.avail_in,w-=t.avail_out,t.total_in+=v,t.total_out+=w,e.total+=w,e.wrap&4&&w&&(t.adler=e.check=e.flags?M(e.check,s,w,t.next_out-w):he(e.check,s,w,t.next_out-w)),t.data_type=e.bits+(e.last?64:0)+(e.mode===Z?128:0)+(e.mode===ee||e.mode===fe?256:0),(v===0&&w===0||i===Be)&&S===P&&(S=ei),S)},li=t=>{if(z(t))return U;let i=t.state;return i.window&&(i.window=null),t.state=null,P},ci=(t,i)=>{if(z(t))return U;let e=t.state;return e.wrap&2?(e.head=i,i.done=!1,P):U},di=(t,i)=>{let e=i.length,r,s,n;return z(t)||(r=t.state,r.wrap!==0&&r.mode!==ie)?U:r.mode===ie&&(s=1,s=he(s,i,e,0),s!==r.check)?lt:(n=xt(t,i,e,e),n?(r.mode=we,ue):(r.havedict=1,P))};O.exports.inflateReset=ht;O.exports.inflateReset2=ut;O.exports.inflateResetKeep=dt;O.exports.inflateInit=oi;O.exports.inflateInit2=wt;O.exports.inflate=fi;O.exports.inflateEnd=li;O.exports.inflateGetHeader=ci;O.exports.inflateSetDictionary=di;O.exports.inflateInfo="pako inflate (from Nodeca project)"});var _t=R((Gi,xe)=>{"use strict";var hi=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);xe.exports.assign=function(t){let i=Array.prototype.slice.call(arguments,1);for(;i.length;){let e=i.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let r in e)hi(e,r)&&(t[r]=e[r])}}return t};xe.exports.flattenChunks=t=>{let i=0;for(let r=0,s=t.length;r<s;r++)i+=t[r].length;let e=new Uint8Array(i);for(let r=0,s=0,n=t.length;r<n;r++){let c=t[r];e.set(c,s),s+=c.length}return e}});var kt=R((Yi,re)=>{"use strict";var gt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{gt=!1}var q=new Uint8Array(256);for(let t=0;t<256;t++)q[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;q[254]=q[254]=1;re.exports.string2buf=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let i,e,r,s,n,c=t.length,f=0;for(s=0;s<c;s++)e=t.charCodeAt(s),(e&64512)===55296&&s+1<c&&(r=t.charCodeAt(s+1),(r&64512)===56320&&(e=65536+(e-55296<<10)+(r-56320),s++)),f+=e<128?1:e<2048?2:e<65536?3:4;for(i=new Uint8Array(f),n=0,s=0;n<f;s++)e=t.charCodeAt(s),(e&64512)===55296&&s+1<c&&(r=t.charCodeAt(s+1),(r&64512)===56320&&(e=65536+(e-55296<<10)+(r-56320),s++)),e<128?i[n++]=e:e<2048?(i[n++]=192|e>>>6,i[n++]=128|e&63):e<65536?(i[n++]=224|e>>>12,i[n++]=128|e>>>6&63,i[n++]=128|e&63):(i[n++]=240|e>>>18,i[n++]=128|e>>>12&63,i[n++]=128|e>>>6&63,i[n++]=128|e&63);return i};var ui=(t,i)=>{if(i<65534&&t.subarray&>)return String.fromCharCode.apply(null,t.length===i?t:t.subarray(0,i));let e="";for(let r=0;r<i;r++)e+=String.fromCharCode(t[r]);return e};re.exports.buf2string=(t,i)=>{let e=i||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,i));let r,s,n=new Array(e*2);for(s=0,r=0;r<e;){let c=t[r++];if(c<128){n[s++]=c;continue}let f=q[c];if(f>4){n[s++]=65533,r+=f-1;continue}for(c&=f===2?31:f===3?15:7;f>1&&r<e;)c=c<<6|t[r++]&63,f--;if(f>1){n[s++]=65533;continue}c<65536?n[s++]=c:(c-=65536,n[s++]=55296|c>>10&1023,n[s++]=56320|c&1023)}return ui(n,s)};re.exports.utf8border=(t,i)=>{i=i||t.length,i>t.length&&(i=t.length);let e=i-1;for(;e>=0&&(t[e]&192)===128;)e--;return e<0||e===0?i:e+q[t[e]]>i?e:i}});var Et=R((Xi,pt)=>{"use strict";pt.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var St=R((qi,mt)=>{"use strict";function wi(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}mt.exports=wi});var vt=R((Ki,Tt)=>{"use strict";function xi(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}Tt.exports=xi});var Rt=R((ji,V)=>{"use strict";var B=bt(),At=_t(),ge=kt(),ke=Et(),bi=St(),_i=vt(),It=Object.prototype.toString,{Z_NO_FLUSH:gi,Z_FINISH:ki,Z_OK:K,Z_STREAM_END:be,Z_NEED_DICT:_e,Z_STREAM_ERROR:pi,Z_DATA_ERROR:yt,Z_MEM_ERROR:Ei}=J();function j(t){this.options=At.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});let i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),i.windowBits>=0&&i.windowBits<16&&!(t&&t.windowBits)&&(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&(i.windowBits&15||(i.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new bi,this.strm.avail_out=0;let e=B.inflateInit2(this.strm,i.windowBits);if(e!==K)throw new Error(ke[e]);if(this.header=new _i,B.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=ge.string2buf(i.dictionary):It.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(e=B.inflateSetDictionary(this.strm,i.dictionary),e!==K)))throw new Error(ke[e])}j.prototype.push=function(t,i){let e=this.strm,r=this.options.chunkSize,s=this.options.dictionary,n,c,f;if(this.ended)return!1;for(i===~~i?c=i:c=i===!0?ki:gi,It.call(t)==="[object ArrayBuffer]"?e.input=new Uint8Array(t):e.input=t,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(r),e.next_out=0,e.avail_out=r),n=B.inflate(e,c),n===_e&&s&&(n=B.inflateSetDictionary(e,s),n===K?n=B.inflate(e,c):n===yt&&(n=_e));e.avail_in>0&&n===be&&e.state.wrap>0&&t[e.next_in]!==0;)B.inflateReset(e),n=B.inflate(e,c);switch(n){case pi:case yt:case _e:case Ei:return this.onEnd(n),this.ended=!0,!1}if(f=e.avail_out,e.next_out&&(e.avail_out===0||n===be))if(this.options.to==="string"){let _=ge.utf8border(e.output,e.next_out),a=e.next_out-_,o=ge.buf2string(e.output,_);e.next_out=a,e.avail_out=r-a,a&&e.output.set(e.output.subarray(_,_+a),0),this.onData(o)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(n===K&&f===0)){if(n===be)return n=B.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};j.prototype.onData=function(t){this.chunks.push(t)};j.prototype.onEnd=function(t){t===K&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=At.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function pe(t,i){let e=new j(i);if(e.push(t),e.err)throw e.msg||ke[e.err];return e.result}function mi(t,i){return i=i||{},i.raw=!0,pe(t,i)}V.exports.Inflate=j;V.exports.inflate=pe;V.exports.inflateRaw=mi;V.exports.ungzip=pe;V.exports.constants=J()});var Nt=1953029805,Mt=2917034100;function oe(t,i){if(oe.passThroughDataForTesting)return i;ae.typeOf.object("key",t),ae.typeOf.object("data",i);let e=t.byteLength;if(e===0||e%4!==0)throw new D("The length of key must be greater than 0 and a multiple of 4.");let r=new DataView(i),s=r.getUint32(0,!0);if(s===Nt||s===Mt)return i;let n=new DataView(t),c=0,f=i.byteLength,_=f-f%8,a=e,o,v=8;for(;c<_;)for(v=(v+8)%24,o=v;c<_&&o<a;)r.setUint32(c,r.getUint32(c,!0)^n.getUint32(o,!0),!0),r.setUint32(c+4,r.getUint32(c+4,!0)^n.getUint32(o+4,!0),!0),c+=8,o+=24;if(c<f)for(o>=a&&(v=(v+8)%24,o=v);c<f;)r.setUint8(c,r.getUint8(c)^n.getUint8(o)),c++,o++}oe.passThroughDataForTesting=!1;var Te=oe;function Zt(t,i){return(t&i)!==0}var F=Zt;var Bt=[1,2,4,8],ve=15,Ct=16,Lt=64,Pt=128;function N(t,i,e,r,s,n){this._bits=t,this.cnodeVersion=i,this.imageryVersion=e,this.terrainVersion=r,this.imageryProvider=s,this.terrainProvider=n,this.ancestorHasTerrain=!1,this.terrainState=void 0}N.clone=function(t,i){return me(i)?(i._bits=t._bits,i.cnodeVersion=t.cnodeVersion,i.imageryVersion=t.imageryVersion,i.terrainVersion=t.terrainVersion,i.imageryProvider=t.imageryProvider,i.terrainProvider=t.terrainProvider):i=new N(t._bits,t.cnodeVersion,t.imageryVersion,t.terrainVersion,t.imageryProvider,t.terrainProvider),i.ancestorHasTerrain=t.ancestorHasTerrain,i.terrainState=t.terrainState,i};N.prototype.setParent=function(t){this.ancestorHasTerrain=t.ancestorHasTerrain||this.hasTerrain()};N.prototype.hasSubtree=function(){return F(this._bits,Ct)};N.prototype.hasImagery=function(){return F(this._bits,Lt)};N.prototype.hasTerrain=function(){return F(this._bits,Pt)};N.prototype.hasChildren=function(){return F(this._bits,ve)};N.prototype.hasChild=function(t){return F(this._bits,Bt[t])};N.prototype.getChildBitmask=function(){return this._bits&ve};var ye=N;var Ut=Ot(Rt(),1);var G=Uint16Array.BYTES_PER_ELEMENT,H=Int32Array.BYTES_PER_ELEMENT,Y=Uint32Array.BYTES_PER_ELEMENT,C={METADATA:0,TERRAIN:1,DBROOT:2};C.fromString=function(t){if(t==="Metadata")return C.METADATA;if(t==="Terrain")return C.TERRAIN;if(t==="DbRoot")return C.DBROOT};function Si(t,i){let e=C.fromString(t.type),r=t.buffer;Te(t.key,r);let s=Di(r);r=s.buffer;let n=s.length;switch(e){case C.METADATA:return vi(r,n,t.quadKey);case C.TERRAIN:return Ii(r,n,i);case C.DBROOT:return i.push(r),{buffer:r}}}var Ti=32301;function vi(t,i,e){let r=new DataView(t),s=0,n=r.getUint32(s,!0);if(s+=Y,n!==Ti)throw new D("Invalid magic");let c=r.getUint32(s,!0);if(s+=Y,c!==1)throw new D("Invalid data type. Must be 1 for QuadTreePacket");let f=r.getUint32(s,!0);if(s+=Y,f!==2)throw new D("Invalid QuadTreePacket version. Only version 2 is supported.");let _=r.getInt32(s,!0);s+=H;let a=r.getInt32(s,!0);if(s+=H,a!==32)throw new D("Invalid instance size.");let o=r.getInt32(s,!0);s+=H;let v=r.getInt32(s,!0);s+=H;let w=r.getInt32(s,!0);if(s+=H,o!==_*a+s)throw new D("Invalid dataBufferOffset");if(o+v+w!==i)throw new D("Invalid packet offsets");let l=[];for(let g=0;g<_;++g){let d=r.getUint8(s);++s,++s;let E=r.getUint16(s,!0);s+=G;let A=r.getUint16(s,!0);s+=G;let h=r.getUint16(s,!0);s+=G,s+=G,s+=G,s+=H,s+=H,s+=8;let S=r.getUint8(s++),k=r.getUint8(s++);s+=G,l.push(new ye(d,E,A,h,S,k))}let u=[],I=0;function p(g,d,E){let A=!1;if(E===4){if(d.hasSubtree())return;A=!0}for(let h=0;h<4;++h){let S=g+h.toString();if(A)u[S]=null;else if(E<4)if(!d.hasChild(h))u[S]=null;else{if(I===_){console.log("Incorrect number of instances");return}let k=l[I++];u[S]=k,p(S,k,E+1)}}}let x=0,T=l[I++];return e===""?++x:u[e]=T,p(e,T,x),u}var yi=5,Ai=4;function Ii(t,i,e){let r=new DataView(t),s=function(f){for(let _=0;_<Ai;++_){let a=r.getUint32(f,!0);if(f+=Y,f+=a,f>i)throw new D("Malformed terrain packet found.")}return f},n=0,c=[];for(;c.length<yi;){let f=n;n=s(n);let _=t.slice(f,n);e.push(_),c.push(_)}return c}var Dt=1953029805,Ri=2917034100;function Di(t){let i=new DataView(t),e=0,r=i.getUint32(e,!0);if(e+=Y,r!==Dt&&r!==Ri)throw new D("Invalid magic");let s=i.getUint32(e,r===Dt);e+=Y;let n=new Uint8Array(t,e),c=Ut.default.inflate(n);if(c.length!==s)throw new D("Size of packet doesn't match header");return c}var en=Se(Si);export{en as default}; diff --git a/libs/cesium/1.111/Workers/decodeI3S.js b/libs/cesium/1.111/Workers/decodeI3S.js new file mode 100644 index 000000000..253d240c2 --- /dev/null +++ b/libs/cesium/1.111/Workers/decodeI3S.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as $}from"./chunk-X42YZYOT.js";import{a as Z}from"./chunk-4M7FKQYC.js";import{a as Q}from"./chunk-4XIXQUKW.js";import{a as Y,b as D,c as W,d as X}from"./chunk-F33YCXD2.js";import{a as N}from"./chunk-DUBQPPQZ.js";import"./chunk-K36PKEJW.js";import"./chunk-KD2PMTHD.js";import{d as K,e as f}from"./chunk-ZUCO5WNM.js";var H=K($(),1),q;function tt(r,t,e,n,c,s){let o=e*(1-r)+n*r,u=c*(1-r)+s*r;return o*(1-t)+u*t}function P(r,t,e,n){let c=r+t*e;return n[c]}function et(r,t,e){let n=e.nativeExtent,c=(r-n.west)/(n.east-n.west)*(e.width-1),s=(t-n.south)/(n.north-n.south)*(e.height-1),o=Math.floor(c),u=Math.floor(s);c-=o,s-=u;let y=o<e.width?o+1:o,a=u<e.height?u+1:u;u=e.height-1-u,a=e.height-1-a;let l=P(o,u,e.width,e.buffer),i=P(y,u,e.width,e.buffer),w=P(o,a,e.width,e.buffer),A=P(y,a,e.width,e.buffer),p=tt(c,s,l,i,w,A);return p=p*e.scale+e.offset,p}function J(r,t,e){for(let n=0;n<e.length;n++){let c=e[n].nativeExtent,s=new Y;if(e[n].projectionType==="WebMercator"){let o=e[n].projection._ellipsoid._radii;s=new Q(new W(o.x,o.y,o.z)).project(new D(r,t,0))}else s.x=r,s.y=t;if(s.x>c.west&&s.x<c.east&&s.y>c.south&&s.y<c.north)return et(s.x,s.y,e[n])}return 0}function nt(r,t,e,n,c,s,o){if(o)return;let u=J(c.longitude,c.latitude,s);for(let y=0;y<r;++y){let a=J(c.longitude+N.toRadians(e*t[y*3]),c.latitude+N.toRadians(n*t[y*3+1]),s);t[y*3+2]+=a-u}}function rt(r,t,e,n,c,s,o,u,y){if(r===0||!f(t)||t.length===0)return;let a=new W(Math.sqrt(o.x),Math.sqrt(o.y),Math.sqrt(o.z));for(let l=0;l<r;++l){let i=l*3,w=i+1,A=i+2,p=new D;p.longitude=n.longitude+N.toRadians(u*t[i]),p.latitude=n.latitude+N.toRadians(y*t[w]),p.height=n.height+t[A];let h={};a.cartographicToCartesian(p,h),h.x-=c.x,h.y-=c.y,h.z-=c.z;let m={};if(X.multiplyByVector(s,h,m),t[i]=m.x,t[w]=m.y,t[A]=m.z,f(e)){let C=new Y(e[i],e[w],e[A]),x={};X.multiplyByVector(s,C,x),e[i]=x.x,e[w]=x.y,e[A]=x.z}}}function ot(r,t,e){for(let n=0;n<r;++n){let c=e[n*4]/65535,s=e[n*4+1]/65535,o=(e[n*4+2]-e[n*4])/65535,u=(e[n*4+3]-e[n*4+1])/65535;t[n*2]*=o,t[n*2]+=c,t[n*2+1]*=u,t[n*2+1]+=s}}function st(r,t,e,n,c,s){if(r===0||!f(e)||e.length===0)return{buffers:[],bufferViews:[],accessors:[],meshes:[],nodes:[],nodesInScene:[]};let o=[],u=[],y=[],a=[],l=[],i=[];f(t)&&(r=t.length);let w=new Uint32Array(r);if(f(t))for(let b=0;b<r;++b)w[b]=t[b];else for(let b=0;b<r;++b)w[b]=b;let A=new Blob([w],{type:"application/binary"}),p=URL.createObjectURL(A),h=r,m=e.subarray(0,h*3),C=new Blob([m],{type:"application/binary"}),x=URL.createObjectURL(C),I=Number.POSITIVE_INFINITY,g=Number.NEGATIVE_INFINITY,O=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,U=Number.POSITIVE_INFINITY,j=Number.NEGATIVE_INFINITY;for(let b=0;b<m.length/3;b++)I=Math.min(I,m[b*3+0]),g=Math.max(g,m[b*3+0]),O=Math.min(O,m[b*3+1]),L=Math.max(L,m[b*3+1]),U=Math.min(U,m[b*3+2]),j=Math.max(j,m[b*3+2]);let R=n?n.subarray(0,h*3):void 0,S;if(f(R)){let b=new Blob([R],{type:"application/binary"});S=URL.createObjectURL(b)}let _=c?c.subarray(0,h*2):void 0,k;if(f(_)){let b=new Blob([_],{type:"application/binary"});k=URL.createObjectURL(b)}let T=f(s)?s.subarray(0,h*4):void 0,z;if(f(T)){let b=new Blob([T],{type:"application/binary"});z=URL.createObjectURL(b)}let E=0,G=0,B=0,F=0,M=0,d=E,V={};return V.POSITION=E,o.push({uri:x,byteLength:m.byteLength}),u.push({buffer:E,byteOffset:0,byteLength:m.byteLength,target:34962}),y.push({bufferView:E,byteOffset:0,componentType:5126,count:r,type:"VEC3",max:[I,O,U],min:[g,L,j]}),f(S)&&(++d,G=d,V.NORMAL=G,o.push({uri:S,byteLength:R.byteLength}),u.push({buffer:G,byteOffset:0,byteLength:R.byteLength,target:34962}),y.push({bufferView:G,byteOffset:0,componentType:5126,count:r,type:"VEC3"})),f(k)&&(++d,B=d,V.TEXCOORD_0=B,o.push({uri:k,byteLength:_.byteLength}),u.push({buffer:B,byteOffset:0,byteLength:_.byteLength,target:34962}),y.push({bufferView:B,byteOffset:0,componentType:5126,count:r,type:"VEC2"})),f(z)&&(++d,F=d,V.COLOR_0=F,o.push({uri:z,byteLength:T.byteLength}),u.push({buffer:F,byteOffset:0,byteLength:T.byteLength,target:34962}),y.push({bufferView:F,byteOffset:0,componentType:5121,normalized:!0,count:r,type:"VEC4"})),++d,M=d,o.push({uri:p,byteLength:w.byteLength}),u.push({buffer:M,byteOffset:0,byteLength:w.byteLength,target:34963}),y.push({bufferView:M,byteOffset:0,componentType:5125,count:r,type:"SCALAR"}),a.push({primitives:[{attributes:V,indices:M,material:0}]}),i.push(0),l.push({mesh:0}),{buffers:o,bufferViews:u,accessors:y,meshes:a,nodes:l,nodesInScene:i}}function it(r,t,e,n){let c=new Uint8Array(r,0,5);return c[0]==="D".charCodeAt()&&c[1]==="R".charCodeAt()&&c[2]==="A".charCodeAt()&&c[3]==="C".charCodeAt()&&c[4]==="O".charCodeAt()?ct(r,e):at(r,t,e,n)}function ct(r){let t=q,e=new t.DecoderBuffer,n=new Uint8Array(r);e.Init(n,n.length);let c=new t.Decoder,s=c.GetEncodedGeometryType(e),o=new t.MetadataQuerier,u,y;s===t.TRIANGULAR_MESH&&(u=new t.Mesh,y=c.DecodeBufferToMesh(e,u));let a={vertexCount:[0],featureCount:0};if(f(y)&&y.ok()&&u.ptr!==0){let l=u.num_faces(),i=u.num_attributes(),w=u.num_points();a.indices=new Uint32Array(l*3);let A=a.indices;a.vertexCount[0]=w,a.scale_x=1,a.scale_y=1;let p=new t.DracoInt32Array(3);for(let h=0;h<l;++h)c.GetFaceFromMesh(u,h,p),A[h*3]=p.GetValue(0),A[h*3+1]=p.GetValue(1),A[h*3+2]=p.GetValue(2);t.destroy(p);for(let h=0;h<i;++h){let m=c.GetAttribute(u,h),C=ut(t,c,u,m,w),x=m.attribute_type(),I="unknown";x===t.POSITION?I="positions":x===t.NORMAL?I="normals":x===t.COLOR?I="colors":x===t.TEX_COORD&&(I="uv0s");let g=c.GetAttributeMetadata(u,h);if(g.ptr!==0){let O=o.NumEntries(g);for(let L=0;L<O;++L){let U=o.GetEntryName(g,L);U==="i3s-scale_x"?a.scale_x=o.GetDoubleEntry(g,"i3s-scale_x"):U==="i3s-scale_y"?a.scale_y=o.GetDoubleEntry(g,"i3s-scale_y"):U==="i3s-attribute-type"&&(I=o.GetStringEntry(g,"i3s-attribute-type"))}}f(a[I])&&console.log("Attribute already exists",I),a[I]=C,I==="feature-index"&&a.featureCount++}t.destroy(u)}return t.destroy(o),t.destroy(c),a}function ut(r,t,e,n,c){let s=n.num_components()*c,o,y=[function(){},function(){o=new r.DracoInt8Array(s),t.GetAttributeInt8ForAllPoints(e,n,o)||console.error("Bad stream");let l=new Int8Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l},function(){o=new r.DracoInt8Array(s),t.GetAttributeUInt8ForAllPoints(e,n,o)||console.error("Bad stream");let l=new Uint8Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l},function(){o=new r.DracoInt16Array(s),t.GetAttributeInt16ForAllPoints(e,n,o)||console.error("Bad stream");let l=new Int16Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l},function(){o=new r.DracoInt16Array(s),t.GetAttributeUInt16ForAllPoints(e,n,o)||console.error("Bad stream");let l=new Uint16Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l},function(){o=new r.DracoInt32Array(s),t.GetAttributeInt32ForAllPoints(e,n,o)||console.error("Bad stream");let l=new Int32Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l},function(){o=new r.DracoInt32Array(s),t.GetAttributeUInt32ForAllPoints(e,n,o)||console.error("Bad stream");let l=new Uint32Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l},function(){},function(){},function(){o=new r.DracoFloat32Array(s),t.GetAttributeFloatForAllPoints(e,n,o)||console.error("Bad stream");let l=new Float32Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l},function(){},function(){o=new r.DracoUInt8Array(s),t.GetAttributeUInt8ForAllPoints(e,n,o)||console.error("Bad stream");let l=new Uint8Array(s);for(let i=0;i<s;++i)l[i]=o.GetValue(i);return l}][n.data_type()]();return f(o)&&r.destroy(o),y}var v={position:function(r,t,e){let n=r.vertexCount*3;return r.positions=new Float32Array(t,e,n),e+=n*4,e},normal:function(r,t,e){let n=r.vertexCount*3;return r.normals=new Float32Array(t,e,n),e+=n*4,e},uv0:function(r,t,e){let n=r.vertexCount*2;return r.uv0s=new Float32Array(t,e,n),e+=n*4,e},color:function(r,t,e){let n=r.vertexCount*4;return r.colors=new Uint8Array(t,e,n),e+=n,e},featureId:function(r,t,e){let n=r.featureCount;return e+=n*8,e},id:function(r,t,e){let n=r.featureCount;return e+=n*8,e},faceRange:function(r,t,e){let n=r.featureCount*2;return r.faceRange=new Uint32Array(t,e,n),e+=n*4,e},uvRegion:function(r,t,e){let n=r.vertexCount*4;return r["uv-region"]=new Uint16Array(t,e,n),e+=n*2,e},region:function(r,t,e){let n=r.vertexCount*4;return r["uv-region"]=new Uint16Array(t,e,n),e+=n*2,e}};function at(r,t,e,n){let c={vertexCount:0},s=new DataView(r);try{let o=0;if(c.vertexCount=s.getUint32(o,1),o+=4,c.featureCount=s.getUint32(o,1),o+=4,f(e))for(let u=0;u<e.attributes.length;u++)f(v[e.attributes[u]])?o=v[e.attributes[u]](c,r,o):console.error("Unknown decoder for",e.attributes[u]);else{let u=t.ordering,y=t.featureAttributeOrder;f(n)&&f(n.geometryData)&&f(n.geometryData[0])&&f(n.geometryData[0].params)&&(u=Object.keys(n.geometryData[0].params.vertexAttributes),y=Object.keys(n.geometryData[0].params.featureAttributes));for(let a=0;a<u.length;a++){let l=v[u[a]];o=l(c,r,o)}for(let a=0;a<y.length;a++){let l=v[y[a]];o=l(c,r,o)}}}catch(o){console.error(o)}return c.scale_x=1,c.scale_y=1,c}function lt(r){let t=it(r.binaryData,r.schema,r.bufferInfo,r.featureData);f(r.geoidDataList)&&r.geoidDataList.length>0&&nt(t.vertexCount,t.positions,t.scale_x,t.scale_y,r.cartographicCenter,r.geoidDataList,!1),rt(t.vertexCount,t.positions,t.normals,r.cartographicCenter,r.cartesianCenter,r.parentRotation,r.ellipsoidRadiiSquare,t.scale_x,t.scale_y),f(t.uv0s)&&f(t["uv-region"])&&ot(t.vertexCount,t.uv0s,t["uv-region"]);let e=st(t.vertexCount,t.indices,t.positions,t.normals,t.uv0s,t.colors),n={};if(f(t["feature-index"]))n.positions=t.positions,n.indices=t.indices,n.featureIndex=t["feature-index"],n.cartesianCenter=r.cartesianCenter,n.parentRotation=r.parentRotation;else if(f(t.faceRange)){n.positions=t.positions,n.indices=t.indices,n.sourceURL=r.url,n.cartesianCenter=r.cartesianCenter,n.parentRotation=r.parentRotation,n.featureIndex=new Array(t.positions.length);for(let s=0;s<t.faceRange.length-1;s+=2){let o=s/2,u=t.faceRange[s],y=t.faceRange[s+1];for(let a=u;a<=y;a++)n.featureIndex[a*3]=o,n.featureIndex[a*3+1]=o,n.featureIndex[a*3+2]=o}}return e._customAttributes=n,{meshData:e}}async function ft(r,t){let e=r.webAssemblyConfig;return f(e)&&f(e.wasmBinaryFile)?q=await(0,H.default)(e):q=await(0,H.default)(),!0}function yt(r,t){let e=r.webAssemblyConfig;return f(e)?ft(r,t):lt(r,t)}var gt=Z(yt);export{gt as default}; diff --git a/libs/cesium/1.111/Workers/transcodeKTX2.js b/libs/cesium/1.111/Workers/transcodeKTX2.js new file mode 100644 index 000000000..77af22e57 --- /dev/null +++ b/libs/cesium/1.111/Workers/transcodeKTX2.js @@ -0,0 +1,56 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r_}from"./chunk-4M7FKQYC.js";import{a as K}from"./chunk-CG3JQAX7.js";import{a as oe}from"./chunk-P3JQY4NV.js";import{a as n_}from"./chunk-K36PKEJW.js";import{b as __}from"./chunk-KD2PMTHD.js";import{a as Gt,c as or,d as sr,e as ge}from"./chunk-ZUCO5WNM.js";var s_=or((it,Pt)=>{var Nt=function(){var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(i=i||__filename),function(f){f=f||{};var r=typeof f<"u"?f:{},B,l;r.ready=new Promise(function(e,t){B=e,l=t});var P={},C;for(C in r)r.hasOwnProperty(C)&&(P[C]=r[C]);var h=[],y="./this.program",m=function(e,t){throw t},V=!1,d=!1,p=!1,Q=!1;V=typeof window=="object",d=typeof importScripts=="function",p=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Q=!V&&!p&&!d;var u="";function X(e){return r.locateFile?r.locateFile(e,u):u+e}var J,ae,W,ee,g,Fe;p?(d?u=Gt("path").dirname(u)+"/":u=__dirname+"/",J=function(t,_){return g||(g=Gt("fs")),Fe||(Fe=Gt("path")),t=Fe.normalize(t),g.readFileSync(t,_?null:"utf8")},W=function(t){var _=J(t,!0);return _.buffer||(_=new Uint8Array(_)),Se(_.buffer),_},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),h=process.argv.slice(2),process.on("uncaughtException",function(e){if(!(e instanceof rr))throw e}),process.on("unhandledRejection",Ke),m=function(e){process.exit(e)},r.inspect=function(){return"[Emscripten Module object]"}):Q?(typeof read<"u"&&(J=function(t){return read(t)}),W=function(t){var _;return typeof readbuffer=="function"?new Uint8Array(readbuffer(t)):(_=read(t,"binary"),Se(typeof _=="object"),_)},typeof scriptArgs<"u"?h=scriptArgs:typeof arguments<"u"&&(h=arguments),typeof quit=="function"&&(m=function(e){quit(e)}),typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)):(V||d)&&(d?u=self.location.href:typeof document<"u"&&document.currentScript&&(u=document.currentScript.src),i&&(u=i),u.indexOf("blob:")!==0?u=u.substr(0,u.lastIndexOf("/")+1):u="",J=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},d&&(W=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),ae=function(e,t,_){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){if(n.status==200||n.status==0&&n.response){t(n.response);return}_()},n.onerror=_,n.send(null)},ee=function(e){document.title=e});var ot=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(C in P)P.hasOwnProperty(C)&&(r[C]=P[C]);P=null,r.arguments&&(h=r.arguments),r.thisProgram&&(y=r.thisProgram),r.quit&&(m=r.quit);var De=0,Ie=function(e){De=e},ce;r.wasmBinary&&(ce=r.wasmBinary);var st=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Ke("no native wasm support detected");var Ae,de=!1,be;function Se(e,t){e||Ke("Assertion failed: "+t)}var we=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function He(e,t,_){for(var n=t+_,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&we)return we.decode(e.subarray(t,o));for(var a="";t<o;){var c=e[t++];if(!(c&128)){a+=String.fromCharCode(c);continue}var s=e[t++]&63;if((c&224)==192){a+=String.fromCharCode((c&31)<<6|s);continue}var R=e[t++]&63;if((c&240)==224?c=(c&15)<<12|s<<6|R:c=(c&7)<<18|s<<12|R<<6|e[t++]&63,c<65536)a+=String.fromCharCode(c);else{var T=c-65536;a+=String.fromCharCode(55296|T>>10,56320|T&1023)}}return a}function Xe(e,t){return e?He(D,e,t):""}function Rt(e,t,_,n){if(!(n>0))return 0;for(var o=_,a=_+n-1,c=0;c<e.length;++c){var s=e.charCodeAt(c);if(s>=55296&&s<=57343){var R=e.charCodeAt(++c);s=65536+((s&1023)<<10)|R&1023}if(s<=127){if(_>=a)break;t[_++]=s}else if(s<=2047){if(_+1>=a)break;t[_++]=192|s>>6,t[_++]=128|s&63}else if(s<=65535){if(_+2>=a)break;t[_++]=224|s>>12,t[_++]=128|s>>6&63,t[_++]=128|s&63}else{if(_+3>=a)break;t[_++]=240|s>>18,t[_++]=128|s>>12&63,t[_++]=128|s>>6&63,t[_++]=128|s&63}}return t[_]=0,_-o}function L(e,t,_){return Rt(e,D,t,_)}function j(e){for(var t=0,_=0;_<e.length;++_){var n=e.charCodeAt(_);n>=55296&&n<=57343&&(n=65536+((n&1023)<<10)|e.charCodeAt(++_)&1023),n<=127?++t:n<=2047?t+=2:n<=65535?t+=3:t+=4}return t}var fe=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function at(e,t){for(var _=e,n=_>>1,o=n+t/2;!(n>=o)&&Ge[n];)++n;if(_=n<<1,_-e>32&&fe)return fe.decode(D.subarray(e,_));for(var a="",c=0;!(c>=t/2);++c){var s=Te[e+c*2>>1];if(s==0)break;a+=String.fromCharCode(s)}return a}function xe(e,t,_){if(_===void 0&&(_=2147483647),_<2)return 0;_-=2;for(var n=t,o=_<e.length*2?_/2:e.length,a=0;a<o;++a){var c=e.charCodeAt(a);Te[t>>1]=c,t+=2}return Te[t>>1]=0,t-n}function f_(e){return e.length*2}function T_(e,t){for(var _=0,n="";!(_>=t/4);){var o=H[e+_*4>>2];if(o==0)break;if(++_,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|a&1023)}else n+=String.fromCharCode(o)}return n}function u_(e,t,_){if(_===void 0&&(_=2147483647),_<4)return 0;for(var n=t,o=n+_-4,a=0;a<e.length;++a){var c=e.charCodeAt(a);if(c>=55296&&c<=57343){var s=e.charCodeAt(++a);c=65536+((c&1023)<<10)|s&1023}if(H[t>>2]=c,t+=4,t+4>o)break}return H[t>>2]=0,t-n}function O_(e){for(var t=0,_=0;_<e.length;++_){var n=e.charCodeAt(_);n>=55296&&n<=57343&&++_,t+=4}return t}function l_(e,t){return e%t>0&&(e+=t-e%t),e}var ct,$e,D,Te,Ge,H,z,pt,Et;function Ut(e){ct=e,r.HEAP8=$e=new Int8Array(e),r.HEAP16=Te=new Int16Array(e),r.HEAP32=H=new Int32Array(e),r.HEAPU8=D=new Uint8Array(e),r.HEAPU16=Ge=new Uint16Array(e),r.HEAPU32=z=new Uint32Array(e),r.HEAPF32=pt=new Float32Array(e),r.HEAPF64=Et=new Float64Array(e)}var ur=r.INITIAL_MEMORY||16777216,Ve,vt=[],ht=[],K_=[],yt=[],M_=!1;function B_(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)S_(r.preRun.shift());ke(vt)}function C_(){M_=!0,ke(ht)}function F_(){ke(K_)}function d_(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)V_(r.postRun.shift());ke(yt)}function S_(e){vt.unshift(e)}function G_(e){ht.unshift(e)}function V_(e){yt.unshift(e)}var ue=0,At=null,Ne=null;function N_(e){ue++,r.monitorRunDependencies&&r.monitorRunDependencies(ue)}function P_(e){if(ue--,r.monitorRunDependencies&&r.monitorRunDependencies(ue),ue==0&&(At!==null&&(clearInterval(At),At=null),Ne)){var t=Ne;Ne=null,t()}}r.preloadedImages={},r.preloadedAudios={};function Ke(e){r.onAbort&&r.onAbort(e),e+="",te(e),de=!0,be=1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(e);throw l(t),t}function gt(e,t){return String.prototype.startsWith?e.startsWith(t):e.indexOf(t)===0}var p_="data:application/octet-stream;base64,";function Lt(e){return gt(e,p_)}var E_="file://";function mt(e){return gt(e,E_)}var x="basis_transcoder.wasm";Lt(x)||(x=X(x));function Dt(e){try{if(e==x&&ce)return new Uint8Array(ce);if(W)return W(e);throw"both async and sync fetching of the wasm failed"}catch(t){Ke(t)}}function U_(){if(!ce&&(V||d)){if(typeof fetch=="function"&&!mt(x))return fetch(x,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+x+"'";return e.arrayBuffer()}).catch(function(){return Dt(x)});if(ae)return new Promise(function(e,t){ae(x,function(_){e(new Uint8Array(_))},t)})}return Promise.resolve().then(function(){return Dt(x)})}function v_(){var e={a:er};function t(c,s){var R=c.exports;r.asm=R,Ae=r.asm.K,Ut(Ae.buffer),Ve=r.asm.O,G_(r.asm.L),P_("wasm-instantiate")}N_("wasm-instantiate");function _(c){t(c.instance)}function n(c){return U_().then(function(s){var R=WebAssembly.instantiate(s,e);return R}).then(c,function(s){te("failed to asynchronously prepare wasm: "+s),Ke(s)})}function o(){return!ce&&typeof WebAssembly.instantiateStreaming=="function"&&!Lt(x)&&!mt(x)&&typeof fetch=="function"?fetch(x,{credentials:"same-origin"}).then(function(c){var s=WebAssembly.instantiateStreaming(c,e);return s.then(_,function(R){return te("wasm streaming compile failed: "+R),te("falling back to ArrayBuffer instantiation"),n(_)})}):n(_)}if(r.instantiateWasm)try{var a=r.instantiateWasm(e,t);return a}catch(c){return te("Module.instantiateWasm callback failed with error: "+c),!1}return o().catch(l),{}}function ke(e){for(;e.length>0;){var t=e.shift();if(typeof t=="function"){t(r);continue}var _=t.func;typeof _=="number"?t.arg===void 0?Ve.get(_)():Ve.get(_)(t.arg):_(t.arg===void 0?null:t.arg)}}var We={};function je(e){for(;e.length;){var t=e.pop(),_=e.pop();_(t)}}function Pe(e){return this.fromWireType(z[e>>2])}var Me={},Oe={},Ye={},h_=48,y_=57;function ze(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return t>=h_&&t<=y_?"_"+e:e}function qe(e,t){return e=ze(e),new Function("body","return function "+e+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(t)}function ft(e,t){var _=qe(t,function(n){this.name=t,this.message=n;var o=new Error(n).stack;o!==void 0&&(this.stack=this.toString()+` +`+o.replace(/^Error(:[^\n]*)?\n/,""))});return _.prototype=Object.create(e.prototype),_.prototype.constructor=_,_.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},_}var It=void 0;function Ze(e){throw new It(e)}function se(e,t,_){e.forEach(function(s){Ye[s]=t});function n(s){var R=_(s);R.length!==e.length&&Ze("Mismatched type converter count");for(var T=0;T<e.length;++T)q(e[T],R[T])}var o=new Array(t.length),a=[],c=0;t.forEach(function(s,R){Oe.hasOwnProperty(s)?o[R]=Oe[s]:(a.push(s),Me.hasOwnProperty(s)||(Me[s]=[]),Me[s].push(function(){o[R]=Oe[s],++c,c===a.length&&n(o)}))}),a.length===0&&n(o)}function g_(e){var t=We[e];delete We[e];var _=t.rawConstructor,n=t.rawDestructor,o=t.fields,a=o.map(function(c){return c.getterReturnType}).concat(o.map(function(c){return c.setterArgumentType}));se([e],a,function(c){var s={};return o.forEach(function(R,T){var O=R.fieldName,M=c[T],G=R.getter,N=R.getterContext,v=c[T+o.length],I=R.setter,k=R.setterContext;s[O]={read:function(Z){return M.fromWireType(G(N,Z))},write:function(Z,ye){var ie=[];I(k,Z,v.toWireType(ie,ye)),je(ie)}}}),[{name:t.name,fromWireType:function(R){var T={};for(var O in s)T[O]=s[O].read(R);return n(R),T},toWireType:function(R,T){for(var O in s)if(!(O in T))throw new TypeError('Missing field: "'+O+'"');var M=_();for(O in s)s[O].write(M,T[O]);return R!==null&&R.push(n,M),M},argPackAdvance:8,readValueFromPointer:Pe,destructorFunction:n}]})}function Qe(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function L_(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);bt=e}var bt=void 0;function U(e){for(var t="",_=e;D[_];)t+=bt[D[_++]];return t}var Be=void 0;function S(e){throw new Be(e)}function q(e,t,_){if(_=_||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||S('type "'+n+'" must have a positive integer typeid pointer'),Oe.hasOwnProperty(e)){if(_.ignoreDuplicateRegistrations)return;S("Cannot register type '"+n+"' twice")}if(Oe[e]=t,delete Ye[e],Me.hasOwnProperty(e)){var o=Me[e];delete Me[e],o.forEach(function(a){a()})}}function m_(e,t,_,n,o){var a=Qe(_);t=U(t),q(e,{name:t,fromWireType:function(c){return!!c},toWireType:function(c,s){return s?n:o},argPackAdvance:8,readValueFromPointer:function(c){var s;if(_===1)s=$e;else if(_===2)s=Te;else if(_===4)s=H;else throw new TypeError("Unknown boolean type size: "+t);return this.fromWireType(s[c>>a])},destructorFunction:null})}function D_(e){if(!(this instanceof Re)||!(e instanceof Re))return!1;for(var t=this.$$.ptrType.registeredClass,_=this.$$.ptr,n=e.$$.ptrType.registeredClass,o=e.$$.ptr;t.baseClass;)_=t.upcast(_),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&_===o}function I_(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function Tt(e){function t(_){return _.$$.ptrType.registeredClass.name}S(t(e)+" instance already deleted")}var ut=!1;function wt(e){}function b_(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function Ht(e){e.count.value-=1;var t=e.count.value===0;t&&b_(e)}function pe(e){return typeof FinalizationGroup>"u"?(pe=function(t){return t},e):(ut=new FinalizationGroup(function(t){for(var _=t.next();!_.done;_=t.next()){var n=_.value;n.ptr?Ht(n):console.warn("object already deleted: "+n.ptr)}}),pe=function(t){return ut.register(t,t.$$,t.$$),t},wt=function(t){ut.unregister(t.$$)},pe(e))}function w_(){if(this.$$.ptr||Tt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=pe(Object.create(Object.getPrototypeOf(this),{$$:{value:I_(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function H_(){this.$$.ptr||Tt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&S("Object already scheduled for deletion"),wt(this),Ht(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function X_(){return!this.$$.ptr}var Ee=void 0,Ue=[];function Ot(){for(;Ue.length;){var e=Ue.pop();e.$$.deleteScheduled=!1,e.delete()}}function x_(){return this.$$.ptr||Tt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&S("Object already scheduled for deletion"),Ue.push(this),Ue.length===1&&Ee&&Ee(Ot),this.$$.deleteScheduled=!0,this}function $_(){Re.prototype.isAliasOf=D_,Re.prototype.clone=w_,Re.prototype.delete=H_,Re.prototype.isDeleted=X_,Re.prototype.deleteLater=x_}function Re(){}var Xt={};function xt(e,t,_){if(e[t].overloadTable===void 0){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||S("Function '"+_+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function lt(e,t,_){r.hasOwnProperty(e)?((_===void 0||r[e].overloadTable!==void 0&&r[e].overloadTable[_]!==void 0)&&S("Cannot register public name '"+e+"' twice"),xt(r,e,e),r.hasOwnProperty(_)&&S("Cannot register multiple overloads of a function with the same number of arguments ("+_+")!"),r[e].overloadTable[_]=t):(r[e]=t,_!==void 0&&(r[e].numArguments=_))}function k_(e,t,_,n,o,a,c,s){this.name=e,this.constructor=t,this.instancePrototype=_,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=c,this.downcast=s,this.pureVirtualFunctions=[]}function Kt(e,t,_){for(;t!==_;)t.upcast||S("Expected null or instance of "+_.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function W_(e,t){if(t===null)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name);var _=t.$$.ptrType.registeredClass,n=Kt(t.$$.ptr,_,this.registeredClass);return n}function j_(e,t){var _;if(t===null)return this.isReference&&S("null is not a valid "+this.name),this.isSmartPointer?(_=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,_),_):0;t.$$||S('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&S("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(_=Kt(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&S("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?_=t.$$.smartPtr:S("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:_=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)_=t.$$.smartPtr;else{var o=t.clone();_=this.rawShare(_,ne(function(){o.delete()})),e!==null&&e.push(this.rawDestructor,_)}break;default:S("Unsupporting sharing policy")}return _}function Y_(e,t){if(t===null)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&S("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var _=t.$$.ptrType.registeredClass,n=Kt(t.$$.ptr,_,this.registeredClass);return n}function z_(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function q_(e){this.rawDestructor&&this.rawDestructor(e)}function Z_(e){e!==null&&e.delete()}function $t(e,t,_){if(t===_)return e;if(_.baseClass===void 0)return null;var n=$t(e,t,_.baseClass);return n===null?null:_.downcast(n)}function Q_(){return Object.keys(ve).length}function J_(){var e=[];for(var t in ve)ve.hasOwnProperty(t)&&e.push(ve[t]);return e}function en(e){Ee=e,Ue.length&&Ee&&Ee(Ot)}function tn(){r.getInheritedInstanceCount=Q_,r.getLiveInheritedInstances=J_,r.flushPendingDeletes=Ot,r.setDelayFunction=en}var ve={};function _n(e,t){for(t===void 0&&S("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function nn(e,t){return t=_n(e,t),ve[t]}function Je(e,t){(!t.ptrType||!t.ptr)&&Ze("makeClassHandle requires ptr and ptrType");var _=!!t.smartPtrType,n=!!t.smartPtr;return _!==n&&Ze("Both smartPtrType and smartPtr must be specified"),t.count={value:1},pe(Object.create(e,{$$:{value:t}}))}function rn(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var _=nn(this.registeredClass,t);if(_!==void 0){if(_.$$.count.value===0)return _.$$.ptr=t,_.$$.smartPtr=e,_.clone();var n=_.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?Je(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Je(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=this.registeredClass.getActualType(t),c=Xt[a];if(!c)return o.call(this);var s;this.isConst?s=c.constPointerType:s=c.pointerType;var R=$t(t,this.registeredClass,s.registeredClass);return R===null?o.call(this):this.isSmartPointer?Je(s.registeredClass.instancePrototype,{ptrType:s,ptr:R,smartPtrType:this,smartPtr:e}):Je(s.registeredClass.instancePrototype,{ptrType:s,ptr:R})}function on(){_e.prototype.getPointee=z_,_e.prototype.destructor=q_,_e.prototype.argPackAdvance=8,_e.prototype.readValueFromPointer=Pe,_e.prototype.deleteObject=Z_,_e.prototype.fromWireType=rn}function _e(e,t,_,n,o,a,c,s,R,T,O){this.name=e,this.registeredClass=t,this.isReference=_,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=c,this.rawGetPointee=s,this.rawConstructor=R,this.rawShare=T,this.rawDestructor=O,!o&&t.baseClass===void 0?n?(this.toWireType=W_,this.destructorFunction=null):(this.toWireType=Y_,this.destructorFunction=null):this.toWireType=j_}function kt(e,t,_){r.hasOwnProperty(e)||Ze("Replacing nonexistant public symbol"),r[e].overloadTable!==void 0&&_!==void 0?r[e].overloadTable[_]=t:(r[e]=t,r[e].argCount=_)}function sn(e,t,_){var n=r["dynCall_"+e];return _&&_.length?n.apply(null,[t].concat(_)):n.call(null,t)}function Rn(e,t,_){return e.indexOf("j")!=-1?sn(e,t,_):Ve.get(t).apply(null,_)}function an(e,t){var _=[];return function(){_.length=arguments.length;for(var n=0;n<arguments.length;n++)_[n]=arguments[n];return Rn(e,t,_)}}function Y(e,t){e=U(e);function _(){return e.indexOf("j")!=-1?an(e,t):Ve.get(t)}var n=_();return typeof n!="function"&&S("unknown function pointer with signature "+e+": "+t),n}var Wt=void 0;function jt(e){var t=Qt(e),_=U(t);return re(t),_}function et(e,t){var _=[],n={};function o(a){if(!n[a]&&!Oe[a]){if(Ye[a]){Ye[a].forEach(o);return}_.push(a),n[a]=!0}}throw t.forEach(o),new Wt(e+": "+_.map(jt).join([", "]))}function cn(e,t,_,n,o,a,c,s,R,T,O,M,G){O=U(O),a=Y(o,a),s&&(s=Y(c,s)),T&&(T=Y(R,T)),G=Y(M,G);var N=ze(O);lt(N,function(){et("Cannot construct "+O+" due to unbound types",[n])}),se([e,t,_],n?[n]:[],function(v){v=v[0];var I,k;n?(I=v.registeredClass,k=I.instancePrototype):k=Re.prototype;var Z=qe(N,function(){if(Object.getPrototypeOf(this)!==ye)throw new Be("Use 'new' to construct "+O);if(ie.constructor_body===void 0)throw new Be(O+" has no accessible constructor");var t_=ie.constructor_body[arguments.length];if(t_===void 0)throw new Be("Tried to invoke ctor of "+O+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(ie.constructor_body).toString()+") parameters instead!");return t_.apply(this,arguments)}),ye=Object.create(k,{constructor:{value:Z}});Z.prototype=ye;var ie=new k_(O,Z,ye,G,I,a,s,T),ir=new _e(O,ie,!0,!1,!1),Jt=new _e(O+"*",ie,!1,!1,!1),e_=new _e(O+" const*",ie,!1,!0,!1);return Xt[e]={pointerType:Jt,constPointerType:e_},kt(N,Z),[ir,Jt,e_]})}function Mt(e,t){for(var _=[],n=0;n<e;n++)_.push(H[(t>>2)+n]);return _}function An(e,t,_,n,o,a){Se(t>0);var c=Mt(t,_);o=Y(n,o);var s=[a],R=[];se([],[e],function(T){T=T[0];var O="constructor "+T.name;if(T.registeredClass.constructor_body===void 0&&(T.registeredClass.constructor_body=[]),T.registeredClass.constructor_body[t-1]!==void 0)throw new Be("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+T.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return T.registeredClass.constructor_body[t-1]=function(){et("Cannot construct "+T.name+" due to unbound types",c)},se([],c,function(M){return T.registeredClass.constructor_body[t-1]=function(){arguments.length!==t-1&&S(O+" called with "+arguments.length+" arguments, expected "+(t-1)),R.length=0,s.length=t;for(var N=1;N<t;++N)s[N]=M[N].toWireType(R,arguments[N-1]);var v=o.apply(null,s);return je(R),M[0].fromWireType(v)},[]}),[]})}function Yt(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var _=qe(e.name||"unknownFunctionName",function(){});_.prototype=e.prototype;var n=new _,o=e.apply(n,t);return o instanceof Object?o:n}function zt(e,t,_,n,o){var a=t.length;a<2&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var c=t[1]!==null&&_!==null,s=!1,R=1;R<t.length;++R)if(t[R]!==null&&t[R].destructorFunction===void 0){s=!0;break}for(var T=t[0].name!=="void",O="",M="",R=0;R<a-2;++R)O+=(R!==0?", ":"")+"arg"+R,M+=(R!==0?", ":"")+"arg"+R+"Wired";var G="return function "+ze(e)+"("+O+`) { +if (arguments.length !== `+(a-2)+`) { +throwBindingError('function `+e+" called with ' + arguments.length + ' arguments, expected "+(a-2)+` args!'); +} +`;s&&(G+=`var destructors = []; +`);var N=s?"destructors":"null",v=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],I=[S,n,o,je,t[0],t[1]];c&&(G+="var thisWired = classParam.toWireType("+N+`, this); +`);for(var R=0;R<a-2;++R)G+="var arg"+R+"Wired = argType"+R+".toWireType("+N+", arg"+R+"); // "+t[R+2].name+` +`,v.push("argType"+R),I.push(t[R+2]);if(c&&(M="thisWired"+(M.length>0?", ":"")+M),G+=(T?"var rv = ":"")+"invoker(fn"+(M.length>0?", ":"")+M+`); +`,s)G+=`runDestructors(destructors); +`;else for(var R=c?1:2;R<t.length;++R){var k=R===1?"thisWired":"arg"+(R-2)+"Wired";t[R].destructorFunction!==null&&(G+=k+"_dtor("+k+"); // "+t[R].name+` +`,v.push(k+"_dtor"),I.push(t[R].destructorFunction))}T&&(G+=`var ret = retType.fromWireType(rv); +return ret; +`),G+=`} +`,v.push(G);var Z=Yt(Function,v).apply(null,I);return Z}function fn(e,t,_,n,o,a,c,s){var R=Mt(_,n);t=U(t),a=Y(o,a),se([],[e],function(T){T=T[0];var O=T.name+"."+t;s&&T.registeredClass.pureVirtualFunctions.push(t);function M(){et("Cannot call "+O+" due to unbound types",R)}var G=T.registeredClass.instancePrototype,N=G[t];return N===void 0||N.overloadTable===void 0&&N.className!==T.name&&N.argCount===_-2?(M.argCount=_-2,M.className=T.name,G[t]=M):(xt(G,t,O),G[t].overloadTable[_-2]=M),se([],R,function(v){var I=zt(O,v,T,a,c);return G[t].overloadTable===void 0?(I.argCount=_-2,G[t]=I):G[t].overloadTable[_-2]=I,[]}),[]})}function Tn(e,t,_){e=U(e),se([],[t],function(n){return n=n[0],r[e]=n.fromWireType(_),[]})}var Bt=[],$=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Ct(e){e>4&&--$[e].refcount===0&&($[e]=void 0,Bt.push(e))}function un(){for(var e=0,t=5;t<$.length;++t)$[t]!==void 0&&++e;return e}function On(){for(var e=5;e<$.length;++e)if($[e]!==void 0)return $[e];return null}function ln(){r.count_emval_handles=un,r.get_first_emval=On}function ne(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var t=Bt.length?Bt.pop():$.length;return $[t]={refcount:1,value:e},t}}}function Kn(e,t){t=U(t),q(e,{name:t,fromWireType:function(_){var n=$[_].value;return Ct(_),n},toWireType:function(_,n){return ne(n)},argPackAdvance:8,readValueFromPointer:Pe,destructorFunction:null})}function Mn(e,t,_){switch(t){case 0:return function(n){var o=_?$e:D;return this.fromWireType(o[n])};case 1:return function(n){var o=_?Te:Ge;return this.fromWireType(o[n>>1])};case 2:return function(n){var o=_?H:z;return this.fromWireType(o[n>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function Bn(e,t,_,n){var o=Qe(_);t=U(t);function a(){}a.values={},q(e,{name:t,constructor:a,fromWireType:function(c){return this.constructor.values[c]},toWireType:function(c,s){return s.value},argPackAdvance:8,readValueFromPointer:Mn(t,o,n),destructorFunction:null}),lt(t,a)}function tt(e,t){var _=Oe[e];return _===void 0&&S(t+" has unknown type "+jt(e)),_}function Cn(e,t,_){var n=tt(e,"enum");t=U(t);var o=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:_},constructor:{value:qe(n.name+"_"+t,function(){})}});o.values[_]=a,o[t]=a}function Ce(e){if(e===null)return"null";var t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():""+e}function Fn(e,t){switch(t){case 2:return function(_){return this.fromWireType(pt[_>>2])};case 3:return function(_){return this.fromWireType(Et[_>>3])};default:throw new TypeError("Unknown float type: "+e)}}function dn(e,t,_){var n=Qe(_);t=U(t),q(e,{name:t,fromWireType:function(o){return o},toWireType:function(o,a){if(typeof a!="number"&&typeof a!="boolean")throw new TypeError('Cannot convert "'+Ce(a)+'" to '+this.name);return a},argPackAdvance:8,readValueFromPointer:Fn(t,n),destructorFunction:null})}function Sn(e,t,_,n,o,a){var c=Mt(t,_);e=U(e),o=Y(n,o),lt(e,function(){et("Cannot call "+e+" due to unbound types",c)},t-1),se([],c,function(s){var R=[s[0],null].concat(s.slice(1));return kt(e,zt(e,R,null,o,a),t-1),[]})}function Gn(e,t,_){switch(t){case 0:return _?function(o){return $e[o]}:function(o){return D[o]};case 1:return _?function(o){return Te[o>>1]}:function(o){return Ge[o>>1]};case 2:return _?function(o){return H[o>>2]}:function(o){return z[o>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function Vn(e,t,_,n,o){t=U(t),o===-1&&(o=4294967295);var a=Qe(_),c=function(T){return T};if(n===0){var s=32-8*_;c=function(T){return T<<s>>>s}}var R=t.indexOf("unsigned")!=-1;q(e,{name:t,fromWireType:c,toWireType:function(T,O){if(typeof O!="number"&&typeof O!="boolean")throw new TypeError('Cannot convert "'+Ce(O)+'" to '+this.name);if(O<n||O>o)throw new TypeError('Passing a number "'+Ce(O)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return R?O>>>0:O|0},argPackAdvance:8,readValueFromPointer:Gn(t,a,n!==0),destructorFunction:null})}function Nn(e,t,_){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=n[t];function a(c){c=c>>2;var s=z,R=s[c],T=s[c+1];return new o(ct,T,R)}_=U(_),q(e,{name:_,fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})}function Pn(e,t){t=U(t);var _=t==="std::string";q(e,{name:t,fromWireType:function(n){var o=z[n>>2],a;if(_)for(var c=n+4,s=0;s<=o;++s){var R=n+4+s;if(s==o||D[R]==0){var T=R-c,O=Xe(c,T);a===void 0?a=O:(a+=String.fromCharCode(0),a+=O),c=R+1}}else{for(var M=new Array(o),s=0;s<o;++s)M[s]=String.fromCharCode(D[n+4+s]);a=M.join("")}return re(n),a},toWireType:function(n,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var a,c=typeof o=="string";c||o instanceof Uint8Array||o instanceof Uint8ClampedArray||o instanceof Int8Array||S("Cannot pass non-string to std::string"),_&&c?a=function(){return j(o)}:a=function(){return o.length};var s=a(),R=dt(4+s+1);if(z[R>>2]=s,_&&c)L(o,R+4,s+1);else if(c)for(var T=0;T<s;++T){var O=o.charCodeAt(T);O>255&&(re(R),S("String has UTF-16 code units that do not fit in 8 bits")),D[R+4+T]=O}else for(var T=0;T<s;++T)D[R+4+T]=o[T];return n!==null&&n.push(re,R),R},argPackAdvance:8,readValueFromPointer:Pe,destructorFunction:function(n){re(n)}})}function pn(e,t,_){_=U(_);var n,o,a,c,s;t===2?(n=at,o=xe,c=f_,a=function(){return Ge},s=1):t===4&&(n=T_,o=u_,c=O_,a=function(){return z},s=2),q(e,{name:_,fromWireType:function(R){for(var T=z[R>>2],O=a(),M,G=R+4,N=0;N<=T;++N){var v=R+4+N*t;if(N==T||O[v>>s]==0){var I=v-G,k=n(G,I);M===void 0?M=k:(M+=String.fromCharCode(0),M+=k),G=v+t}}return re(R),M},toWireType:function(R,T){typeof T!="string"&&S("Cannot pass non-string to C++ string type "+_);var O=c(T),M=dt(4+O+t);return z[M>>2]=O>>s,o(T,M+4,O+t),R!==null&&R.push(re,M),M},argPackAdvance:8,readValueFromPointer:Pe,destructorFunction:function(R){re(R)}})}function En(e,t,_,n,o,a){We[e]={name:U(t),rawConstructor:Y(_,n),rawDestructor:Y(o,a),fields:[]}}function Un(e,t,_,n,o,a,c,s,R,T){We[e].fields.push({fieldName:U(t),getterReturnType:_,getter:Y(n,o),getterContext:a,setterArgumentType:c,setter:Y(s,R),setterContext:T})}function vn(e,t){t=U(t),q(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:function(){},toWireType:function(_,n){}})}function he(e){return e||S("Cannot use deleted val. handle = "+e),$[e].value}function hn(e,t,_){e=he(e),t=tt(t,"emval::as");var n=[],o=ne(n);return H[_>>2]=o,t.toWireType(n,e)}var yn={};function _t(e){var t=yn[e];return t===void 0?U(e):t}var Ft=[];function gn(e,t,_,n){e=Ft[e],t=he(t),_=_t(_),e(t,_,null,n)}function qt(){return typeof globalThis=="object"?globalThis:function(){return Function}()("return this")()}function Ln(e){return e===0?ne(qt()):(e=_t(e),ne(qt()[e]))}function mn(e){var t=Ft.length;return Ft.push(e),t}function Dn(e,t){for(var _=new Array(e),n=0;n<e;++n)_[n]=tt(H[(t>>2)+n],"parameter "+n);return _}function In(e,t){for(var _=Dn(e,t),n=_[0],o=n.name+"_$"+_.slice(1).map(function(N){return N.name}).join("_")+"$",a=["retType"],c=[n],s="",R=0;R<e-1;++R)s+=(R!==0?", ":"")+"arg"+R,a.push("argType"+R),c.push(_[1+R]);for(var T=ze("methodCaller_"+o),O="return function "+T+`(handle, name, destructors, args) { +`,M=0,R=0;R<e-1;++R)O+=" var arg"+R+" = argType"+R+".readValueFromPointer(args"+(M?"+"+M:"")+`); +`,M+=_[R+1].argPackAdvance;O+=" var rv = handle[name]("+s+`); +`;for(var R=0;R<e-1;++R)_[R+1].deleteObject&&(O+=" argType"+R+".deleteObject(arg"+R+`); +`);n.isVoid||(O+=` return retType.toWireType(destructors, rv); +`),O+=`}; +`,a.push(O);var G=Yt(Function,a).apply(null,c);return mn(G)}function bn(e){return e=_t(e),ne(r[e])}function wn(e,t){return e=he(e),t=he(t),ne(e[t])}function Hn(e){e>4&&($[e].refcount+=1)}function Xn(e){for(var t="",_=0;_<e;++_)t+=(_!==0?", ":"")+"arg"+_;for(var n="return function emval_allocator_"+e+`(constructor, argTypes, args) { +`,_=0;_<e;++_)n+="var argType"+_+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+_+'], "parameter '+_+`"); +var arg`+_+" = argType"+_+`.readValueFromPointer(args); +args += argType`+_+`['argPackAdvance']; +`;return n+="var obj = new constructor("+t+`); +return __emval_register(obj); +} +`,new Function("requireRegisteredType","Module","__emval_register",n)(tt,r,ne)}var Zt={};function xn(e,t,_,n){e=he(e);var o=Zt[t];return o||(o=Xn(t),Zt[t]=o),o(e,_,n)}function $n(e){return ne(_t(e))}function kn(e){var t=$[e].value;je(t),Ct(e)}function Wn(){Ke()}function jn(e,t,_){D.copyWithin(e,t,t+_)}function Yn(e){try{return Ae.grow(e-ct.byteLength+65535>>>16),Ut(Ae.buffer),1}catch{}}function zn(e){var t=D.length;e=e>>>0;var _=2147483648;if(e>_)return!1;for(var n=1;n<=4;n*=2){var o=t*(1+.2/n);o=Math.min(o,e+100663296);var a=Math.min(_,l_(Math.max(e,o),65536)),c=Yn(a);if(c)return!0}return!1}var nt={mappings:{},buffers:[null,[],[]],printChar:function(e,t){var _=nt.buffers[e];t===0||t===10?((e===1?ot:te)(He(_,0)),_.length=0):_.push(t)},varargs:void 0,get:function(){nt.varargs+=4;var e=H[nt.varargs-4>>2];return e},getStr:function(e){var t=Xe(e);return t},get64:function(e,t){return e}};function qn(e){return 0}function Zn(e,t,_,n,o){}function Qn(e,t,_,n){for(var o=0,a=0;a<_;a++){for(var c=H[t+a*8>>2],s=H[t+(a*8+4)>>2],R=0;R<s;R++)nt.printChar(e,D[c+R]);o+=s}return H[n>>2]=o,0}function Jn(e){Ie(e|0)}It=r.InternalError=ft(Error,"InternalError"),L_(),Be=r.BindingError=ft(Error,"BindingError"),$_(),on(),tn(),Wt=r.UnboundTypeError=ft(Error,"UnboundTypeError"),ln();var er={t:g_,I:m_,x:cn,w:An,d:fn,k:Tn,H:Kn,n:Bn,a:Cn,A:dn,i:Sn,j:Vn,h:Nn,B:Pn,v:pn,u:En,c:Un,J:vn,m:hn,s:gn,b:Ct,y:Ln,p:In,r:bn,e:wn,g:Hn,q:xn,f:$n,l:kn,o:Wn,E:jn,F:zn,G:qn,C:Zn,z:Qn,D:Jn},Or=v_(),tr=r.___wasm_call_ctors=function(){return(tr=r.___wasm_call_ctors=r.asm.L).apply(null,arguments)},dt=r._malloc=function(){return(dt=r._malloc=r.asm.M).apply(null,arguments)},re=r._free=function(){return(re=r._free=r.asm.N).apply(null,arguments)},Qt=r.___getTypeName=function(){return(Qt=r.___getTypeName=r.asm.P).apply(null,arguments)},_r=r.___embind_register_native_and_builtin_types=function(){return(_r=r.___embind_register_native_and_builtin_types=r.asm.Q).apply(null,arguments)},nr=r.dynCall_jiji=function(){return(nr=r.dynCall_jiji=r.asm.R).apply(null,arguments)},rt;function rr(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}Ne=function e(){rt||St(),rt||(Ne=e)};function St(e){if(e=e||h,ue>0||(B_(),ue>0))return;function t(){rt||(rt=!0,r.calledRun=!0,!de&&(C_(),F_(),B(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),d_()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),t()},1)):t()}if(r.run=St,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return St(),f.ready}}();typeof it=="object"&&typeof Pt=="object"?Pt.exports=Nt:typeof define=="function"&&define.amd?define([],function(){return Nt}):typeof it=="object"&&(it.BASIS=Nt)});var F={UNSIGNED_BYTE:K.UNSIGNED_BYTE,UNSIGNED_SHORT:K.UNSIGNED_SHORT,UNSIGNED_INT:K.UNSIGNED_INT,FLOAT:K.FLOAT,HALF_FLOAT:K.HALF_FLOAT_OES,UNSIGNED_INT_24_8:K.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:K.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:K.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:K.UNSIGNED_SHORT_5_6_5};F.toWebGLConstant=function(i,f){switch(i){case F.UNSIGNED_BYTE:return K.UNSIGNED_BYTE;case F.UNSIGNED_SHORT:return K.UNSIGNED_SHORT;case F.UNSIGNED_INT:return K.UNSIGNED_INT;case F.FLOAT:return K.FLOAT;case F.HALF_FLOAT:return f.webgl2?K.HALF_FLOAT:K.HALF_FLOAT_OES;case F.UNSIGNED_INT_24_8:return K.UNSIGNED_INT_24_8;case F.UNSIGNED_SHORT_4_4_4_4:return K.UNSIGNED_SHORT_4_4_4_4;case F.UNSIGNED_SHORT_5_5_5_1:return K.UNSIGNED_SHORT_5_5_5_1;case F.UNSIGNED_SHORT_5_6_5:return F.UNSIGNED_SHORT_5_6_5}};F.isPacked=function(i){return i===F.UNSIGNED_INT_24_8||i===F.UNSIGNED_SHORT_4_4_4_4||i===F.UNSIGNED_SHORT_5_5_5_1||i===F.UNSIGNED_SHORT_5_6_5};F.sizeInBytes=function(i){switch(i){case F.UNSIGNED_BYTE:return 1;case F.UNSIGNED_SHORT:case F.UNSIGNED_SHORT_4_4_4_4:case F.UNSIGNED_SHORT_5_5_5_1:case F.UNSIGNED_SHORT_5_6_5:case F.HALF_FLOAT:return 2;case F.UNSIGNED_INT:case F.FLOAT:case F.UNSIGNED_INT_24_8:return 4}};F.validate=function(i){return i===F.UNSIGNED_BYTE||i===F.UNSIGNED_SHORT||i===F.UNSIGNED_INT||i===F.FLOAT||i===F.HALF_FLOAT||i===F.UNSIGNED_INT_24_8||i===F.UNSIGNED_SHORT_4_4_4_4||i===F.UNSIGNED_SHORT_5_5_5_1||i===F.UNSIGNED_SHORT_5_6_5};var b=Object.freeze(F);var A={DEPTH_COMPONENT:K.DEPTH_COMPONENT,DEPTH_STENCIL:K.DEPTH_STENCIL,ALPHA:K.ALPHA,RED:K.RED,RG:K.RG,RGB:K.RGB,RGBA:K.RGBA,LUMINANCE:K.LUMINANCE,LUMINANCE_ALPHA:K.LUMINANCE_ALPHA,RGB_DXT1:K.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:K.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:K.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:K.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:K.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:K.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:K.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:K.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:K.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:K.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:K.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:K.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:K.COMPRESSED_RGBA_BPTC_UNORM};A.componentsLength=function(i){switch(i){case A.RGB:return 3;case A.RGBA:return 4;case A.LUMINANCE_ALPHA:case A.RG:return 2;case A.ALPHA:case A.RED:case A.LUMINANCE:return 1;default:return 1}};A.validate=function(i){return i===A.DEPTH_COMPONENT||i===A.DEPTH_STENCIL||i===A.ALPHA||i===A.RED||i===A.RG||i===A.RGB||i===A.RGBA||i===A.LUMINANCE||i===A.LUMINANCE_ALPHA||i===A.RGB_DXT1||i===A.RGBA_DXT1||i===A.RGBA_DXT3||i===A.RGBA_DXT5||i===A.RGB_PVRTC_4BPPV1||i===A.RGB_PVRTC_2BPPV1||i===A.RGBA_PVRTC_4BPPV1||i===A.RGBA_PVRTC_2BPPV1||i===A.RGBA_ASTC||i===A.RGB_ETC1||i===A.RGB8_ETC2||i===A.RGBA8_ETC2_EAC||i===A.RGBA_BC7};A.isColorFormat=function(i){return i===A.ALPHA||i===A.RGB||i===A.RGBA||i===A.LUMINANCE||i===A.LUMINANCE_ALPHA};A.isDepthFormat=function(i){return i===A.DEPTH_COMPONENT||i===A.DEPTH_STENCIL};A.isCompressedFormat=function(i){return i===A.RGB_DXT1||i===A.RGBA_DXT1||i===A.RGBA_DXT3||i===A.RGBA_DXT5||i===A.RGB_PVRTC_4BPPV1||i===A.RGB_PVRTC_2BPPV1||i===A.RGBA_PVRTC_4BPPV1||i===A.RGBA_PVRTC_2BPPV1||i===A.RGBA_ASTC||i===A.RGB_ETC1||i===A.RGB8_ETC2||i===A.RGBA8_ETC2_EAC||i===A.RGBA_BC7};A.isDXTFormat=function(i){return i===A.RGB_DXT1||i===A.RGBA_DXT1||i===A.RGBA_DXT3||i===A.RGBA_DXT5};A.isPVRTCFormat=function(i){return i===A.RGB_PVRTC_4BPPV1||i===A.RGB_PVRTC_2BPPV1||i===A.RGBA_PVRTC_4BPPV1||i===A.RGBA_PVRTC_2BPPV1};A.isASTCFormat=function(i){return i===A.RGBA_ASTC};A.isETC1Format=function(i){return i===A.RGB_ETC1};A.isETC2Format=function(i){return i===A.RGB8_ETC2||i===A.RGBA8_ETC2_EAC};A.isBC7Format=function(i){return i===A.RGBA_BC7};A.compressedTextureSizeInBytes=function(i,f,r){switch(i){case A.RGB_DXT1:case A.RGBA_DXT1:case A.RGB_ETC1:case A.RGB8_ETC2:return Math.floor((f+3)/4)*Math.floor((r+3)/4)*8;case A.RGBA_DXT3:case A.RGBA_DXT5:case A.RGBA_ASTC:case A.RGBA8_ETC2_EAC:return Math.floor((f+3)/4)*Math.floor((r+3)/4)*16;case A.RGB_PVRTC_4BPPV1:case A.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(f,8)*Math.max(r,8)*4+7)/8);case A.RGB_PVRTC_2BPPV1:case A.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(f,16)*Math.max(r,8)*2+7)/8);case A.RGBA_BC7:return Math.ceil(f/4)*Math.ceil(r/4)*16;default:return 0}};A.textureSizeInBytes=function(i,f,r,B){let l=A.componentsLength(i);return b.isPacked(f)&&(l=1),l*b.sizeInBytes(f)*r*B};A.alignmentInBytes=function(i,f,r){let B=A.textureSizeInBytes(i,f,r,1)%4;return B===0?4:B===2?2:1};A.createTypedArray=function(i,f,r,B){let l,P=b.sizeInBytes(f);P===Uint8Array.BYTES_PER_ELEMENT?l=Uint8Array:P===Uint16Array.BYTES_PER_ELEMENT?l=Uint16Array:P===Float32Array.BYTES_PER_ELEMENT&&f===b.FLOAT?l=Float32Array:l=Uint32Array;let C=A.componentsLength(i)*r*B;return new l(C)};A.flipY=function(i,f,r,B,l){if(l===1)return i;let P=A.createTypedArray(f,r,B,l),C=A.componentsLength(f),h=B*C;for(let y=0;y<l;++y){let m=y*B*C,V=(l-y-1)*B*C;for(let d=0;d<h;++d)P[V+d]=i[m+d]}return P};A.toInternalFormat=function(i,f,r){if(!r.webgl2)return i;if(i===A.DEPTH_STENCIL)return K.DEPTH24_STENCIL8;if(i===A.DEPTH_COMPONENT){if(f===b.UNSIGNED_SHORT)return K.DEPTH_COMPONENT16;if(f===b.UNSIGNED_INT)return K.DEPTH_COMPONENT24}if(f===b.FLOAT)switch(i){case A.RGBA:return K.RGBA32F;case A.RGB:return K.RGB32F;case A.RG:return K.RG32F;case A.RED:return K.R32F}if(f===b.HALF_FLOAT)switch(i){case A.RGBA:return K.RGBA16F;case A.RGB:return K.RGB16F;case A.RG:return K.RG16F;case A.RED:return K.R16F}return i};var E=Object.freeze(A);var Rr={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},Le=Object.freeze(Rr);var Vt=class{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}},le=class{constructor(f,r,B,l){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(f.buffer,f.byteOffset+r,B),this._littleEndian=l,this._offset=0}_nextUint8(){let f=this._dataView.getUint8(this._offset);return this._offset+=1,f}_nextUint16(){let f=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,f}_nextUint32(){let f=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,f}_nextUint64(){let f=this._dataView.getUint32(this._offset,this._littleEndian),r=this._dataView.getUint32(this._offset+4,this._littleEndian),B=f+2**32*r;return this._offset+=8,B}_nextInt32(){let f=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,f}_nextUint8Array(f){let r=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,f);return this._offset+=f,r}_skip(f){return this._offset+=f,this}_scan(f,r=0){let B=this._offset,l=0;for(;this._dataView.getUint8(this._offset)!==r&&l<f;)l++,this._offset++;return l<f&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+B,l)}};var dr=new Uint8Array([0]),w=[171,75,84,88,32,50,48,187,13,10,26,10];function i_(i){return typeof TextDecoder<"u"?new TextDecoder().decode(i):Buffer.from(i).toString("utf8")}function o_(i){let f=new Uint8Array(i.buffer,i.byteOffset,w.length);if(f[0]!==w[0]||f[1]!==w[1]||f[2]!==w[2]||f[3]!==w[3]||f[4]!==w[4]||f[5]!==w[5]||f[6]!==w[6]||f[7]!==w[7]||f[8]!==w[8]||f[9]!==w[9]||f[10]!==w[10]||f[11]!==w[11])throw new Error("Missing KTX 2.0 identifier.");let r=new Vt,B=17*Uint32Array.BYTES_PER_ELEMENT,l=new le(i,w.length,B,!0);r.vkFormat=l._nextUint32(),r.typeSize=l._nextUint32(),r.pixelWidth=l._nextUint32(),r.pixelHeight=l._nextUint32(),r.pixelDepth=l._nextUint32(),r.layerCount=l._nextUint32(),r.faceCount=l._nextUint32();let P=l._nextUint32();r.supercompressionScheme=l._nextUint32();let C=l._nextUint32(),h=l._nextUint32(),y=l._nextUint32(),m=l._nextUint32(),V=l._nextUint64(),d=l._nextUint64(),p=P*3*8,Q=new le(i,w.length+B,p,!0);for(let L=0;L<P;L++)r.levels.push({levelData:new Uint8Array(i.buffer,i.byteOffset+Q._nextUint64(),Q._nextUint64()),uncompressedByteLength:Q._nextUint64()});let u=new le(i,C,h,!0),X={vendorId:u._skip(4)._nextUint16(),descriptorType:u._nextUint16(),versionNumber:u._nextUint16(),descriptorBlockSize:u._nextUint16(),colorModel:u._nextUint8(),colorPrimaries:u._nextUint8(),transferFunction:u._nextUint8(),flags:u._nextUint8(),texelBlockDimension:[u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8()],bytesPlane:[u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8()],samples:[]},J=6,ae=4,W=(X.descriptorBlockSize/4-J)/ae;for(let L=0;L<W;L++){let j={bitOffset:u._nextUint16(),bitLength:u._nextUint8(),channelType:u._nextUint8(),samplePosition:[u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};j.channelType&64?(j.sampleLower=u._nextInt32(),j.sampleUpper=u._nextInt32()):(j.sampleLower=u._nextUint32(),j.sampleUpper=u._nextUint32()),X.samples[L]=j}r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(X);let ee=new le(i,y,m,!0);for(;ee._offset<m;){let L=ee._nextUint32(),j=ee._scan(L),fe=i_(j);if(r.keyValue[fe]=ee._nextUint8Array(L-j.byteLength-1),fe.match(/^ktx/i)){let xe=i_(r.keyValue[fe]);r.keyValue[fe]=xe.substring(0,xe.lastIndexOf("\0"))}let at=L%4?4-L%4:0;ee._skip(at)}if(d<=0)return r;let g=new le(i,V,d,!0),Fe=g._nextUint16(),ot=g._nextUint16(),te=g._nextUint32(),De=g._nextUint32(),Ie=g._nextUint32(),ce=g._nextUint32(),st=[];for(let L=0;L<P;L++)st.push({imageFlags:g._nextUint32(),rgbSliceByteOffset:g._nextUint32(),rgbSliceByteLength:g._nextUint32(),alphaSliceByteOffset:g._nextUint32(),alphaSliceByteLength:g._nextUint32()});let Ae=V+g._offset,de=Ae+te,be=de+De,Se=be+Ie,we=new Uint8Array(i.buffer,i.byteOffset+Ae,te),He=new Uint8Array(i.buffer,i.byteOffset+de,De),Xe=new Uint8Array(i.buffer,i.byteOffset+be,Ie),Rt=new Uint8Array(i.buffer,i.byteOffset+Se,ce);return r.globalData={endpointCount:Fe,selectorCount:ot,imageDescs:st,endpointsData:we,selectorsData:He,tablesData:Xe,extendedData:Rt},r}var R_=sr(s_(),1),a_=["positiveX","negativeX","positiveY","negativeY","positiveZ","negativeZ"],c_=163,A_=166,me;function ar(i,f){__.typeOf.object("transcoderModule",me);let r=i.ktx2Buffer,B=i.supportedTargetFormats,l;try{l=o_(r)}catch{throw new oe("Invalid KTX2 file.")}if(l.layerCount!==0)throw new oe("KTX2 texture arrays are not supported.");if(l.pixelDepth!==0)throw new oe("KTX2 3D textures are unsupported.");let P=l.dataFormatDescriptor[0],C=new Array(l.levelCount);return l.vkFormat===0&&(P.colorModel===c_||P.colorModel===A_)?Ar(r,l,B,me,f,C):(f.push(r.buffer),cr(l,C)),C}function cr(i,f){let r=i.vkFormat===Le.VK_FORMAT_R8G8B8_SRGB?E.RGB:E.RGBA,B;i.vkFormat===Le.VK_FORMAT_R8G8B8A8_UNORM?B=b.UNSIGNED_BYTE:i.vkFormat===Le.VK_FORMAT_R16G16B16A16_SFLOAT?B=b.HALF_FLOAT:i.vkFormat===Le.VK_FORMAT_R32G32B32A32_SFLOAT&&(B=b.FLOAT);for(let l=0;l<i.levels.length;++l){let P={};f[l]=P;let C=i.levels[l].levelData,h=i.pixelWidth>>l,y=i.pixelHeight>>l,m=h*y*E.componentsLength(r);for(let V=0;V<i.faceCount;++V){let d=C.byteOffset+m*i.typeSize*V,p;!ge(B)||b.sizeInBytes(B)===1?p=new Uint8Array(C.buffer,d,m):b.sizeInBytes(B)===2?p=new Uint16Array(C.buffer,d,m):p=new Float32Array(C.buffer,d,m),P[a_[V]]={internalFormat:r,datatype:B,width:h,height:y,levelBuffer:p}}}}function Ar(i,f,r,B,l,P){let C=new B.KTX2File(i),h=C.getWidth(),y=C.getHeight(),m=C.getLevels(),V=C.getHasAlpha();if(!(h>0)||!(y>0)||!(m>0))throw C.close(),C.delete(),new oe("Invalid KTX2 file");let d,p,Q=f.dataFormatDescriptor[0],u=B.transcoder_texture_format;if(Q.colorModel===c_)if(r.etc)d=V?E.RGBA8_ETC2_EAC:E.RGB8_ETC2,p=V?u.cTFETC2_RGBA:u.cTFETC1_RGB;else if(r.etc1&&!V)d=E.RGB_ETC1,p=u.cTFETC1_RGB;else if(r.s3tc)d=V?E.RGBA_DXT5:E.RGB_DXT1,p=V?u.cTFBC3_RGBA:u.cTFBC1_RGB;else if(r.pvrtc)d=V?E.RGBA_PVRTC_4BPPV1:E.RGB_PVRTC_4BPPV1,p=V?u.cTFPVRTC1_4_RGBA:u.cTFPVRTC1_4_RGB;else if(r.astc)d=E.RGBA_ASTC,p=u.cTFASTC_4x4_RGBA;else if(r.bc7)d=E.RGBA_BC7,p=u.cTFBC7_RGBA;else throw new oe("No transcoding format target available for ETC1S compressed ktx2.");else if(Q.colorModel===A_)if(r.astc)d=E.RGBA_ASTC,p=u.cTFASTC_4x4_RGBA;else if(r.bc7)d=E.RGBA_BC7,p=u.cTFBC7_RGBA;else if(r.s3tc)d=V?E.RGBA_DXT5:E.RGB_DXT1,p=V?u.cTFBC3_RGBA:u.cTFBC1_RGB;else if(r.etc)d=V?E.RGBA8_ETC2_EAC:E.RGB8_ETC2,p=V?u.cTFETC2_RGBA:u.cTFETC1_RGB;else if(r.etc1&&!V)d=E.RGB_ETC1,p=u.cTFETC1_RGB;else if(r.pvrtc)d=V?E.RGBA_PVRTC_4BPPV1:E.RGB_PVRTC_4BPPV1,p=V?u.cTFPVRTC1_4_RGBA:u.cTFPVRTC1_4_RGB;else throw new oe("No transcoding format target available for UASTC compressed ktx2.");if(!C.startTranscoding())throw C.close(),C.delete(),new oe("startTranscoding() failed");for(let X=0;X<f.levels.length;++X){let J={};P[X]=J,h=f.pixelWidth>>X,y=f.pixelHeight>>X;let ae=C.getImageTranscodedSizeInBytes(X,0,0,p.value),W=new Uint8Array(ae),ee=C.transcodeImage(W,X,0,0,p.value,0,-1,-1);if(!ge(ee))throw new oe("transcodeImage() failed.");l.push(W.buffer),J[a_[0]]={internalFormat:d,width:h,height:y,levelBuffer:W}}return C.close(),C.delete(),P}async function fr(i,f){let r=i.webAssemblyConfig,B=n_(R_.default,self.BASIS);return ge(r.wasmBinaryFile)?me=await B(r):me=await B(),me.initializeBasis(),!0}function Tr(i,f){let r=i.webAssemblyConfig;return ge(r)?fr(i,f):ar(i,f)}var yr=r_(Tr);export{yr as default}; diff --git a/libs/cesium/1.111/Workers/transferTypedArrayTest.js b/libs/cesium/1.111/Workers/transferTypedArrayTest.js new file mode 100644 index 000000000..99e043267 --- /dev/null +++ b/libs/cesium/1.111/Workers/transferTypedArrayTest.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +self.onmessage=function(a){let s=a.data.array,e=self.webkitPostMessage||self.postMessage;try{e({array:s},[s.buffer])}catch{e({})}}; diff --git a/libs/cesium/1.111/Workers/upsampleQuantizedTerrainMesh.js b/libs/cesium/1.111/Workers/upsampleQuantizedTerrainMesh.js new file mode 100644 index 000000000..e799a83f2 --- /dev/null +++ b/libs/cesium/1.111/Workers/upsampleQuantizedTerrainMesh.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.111 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as be,b as Ne}from"./chunk-UWTP54MD.js";import{a as Ae}from"./chunk-4M7FKQYC.js";import{a as ue}from"./chunk-EMZN2RVW.js";import{a as ee}from"./chunk-PNRMC4IG.js";import"./chunk-JMG4RN2X.js";import"./chunk-PG5ZS3T4.js";import"./chunk-OH4CN3UY.js";import"./chunk-AAJ456AA.js";import{a as Ve}from"./chunk-JZL634RF.js";import{d as de}from"./chunk-DV7DPSRL.js";import"./chunk-4FFHQQYZ.js";import{c as Se,d as Z}from"./chunk-KCIWEUSR.js";import"./chunk-7XDW3BZW.js";import{a as A,b as Ie,c as Ce}from"./chunk-F33YCXD2.js";import{a as N}from"./chunk-DUBQPPQZ.js";import"./chunk-CG3JQAX7.js";import"./chunk-P3JQY4NV.js";import"./chunk-K36PKEJW.js";import{a as V,b as q}from"./chunk-KD2PMTHD.js";import{e as f}from"./chunk-ZUCO5WNM.js";var ne={};ne.clipTriangleAtAxisAlignedThreshold=function(n,h,o,i,s,e){if(!f(n))throw new V("threshold is required.");if(!f(h))throw new V("keepAbove is required.");if(!f(o))throw new V("u0 is required.");if(!f(i))throw new V("u1 is required.");if(!f(s))throw new V("u2 is required.");f(e)?e.length=0:e=[];let g,w,c;h?(g=o<n,w=i<n,c=s<n):(g=o>n,w=i>n,c=s>n);let p=g+w+c,d,u,r,l,I,C;return p===1?g?(d=(n-o)/(i-o),u=(n-o)/(s-o),e.push(1),e.push(2),u!==1&&(e.push(-1),e.push(0),e.push(2),e.push(u)),d!==1&&(e.push(-1),e.push(0),e.push(1),e.push(d))):w?(r=(n-i)/(s-i),l=(n-i)/(o-i),e.push(2),e.push(0),l!==1&&(e.push(-1),e.push(1),e.push(0),e.push(l)),r!==1&&(e.push(-1),e.push(1),e.push(2),e.push(r))):c&&(I=(n-s)/(o-s),C=(n-s)/(i-s),e.push(0),e.push(1),C!==1&&(e.push(-1),e.push(2),e.push(1),e.push(C)),I!==1&&(e.push(-1),e.push(2),e.push(0),e.push(I))):p===2?!g&&o!==n?(l=(n-i)/(o-i),I=(n-s)/(o-s),e.push(0),e.push(-1),e.push(1),e.push(0),e.push(l),e.push(-1),e.push(2),e.push(0),e.push(I)):!w&&i!==n?(C=(n-s)/(i-s),d=(n-o)/(i-o),e.push(1),e.push(-1),e.push(2),e.push(1),e.push(C),e.push(-1),e.push(0),e.push(1),e.push(d)):!c&&s!==n&&(u=(n-o)/(s-o),r=(n-i)/(s-i),e.push(2),e.push(-1),e.push(0),e.push(2),e.push(u),e.push(-1),e.push(1),e.push(2),e.push(r)):p!==3&&(e.push(0),e.push(1),e.push(2)),e};ne.computeBarycentricCoordinates=function(n,h,o,i,s,e,g,w,c){if(!f(n))throw new V("x is required.");if(!f(h))throw new V("y is required.");if(!f(o))throw new V("x1 is required.");if(!f(i))throw new V("y1 is required.");if(!f(s))throw new V("x2 is required.");if(!f(e))throw new V("y2 is required.");if(!f(g))throw new V("x3 is required.");if(!f(w))throw new V("y3 is required.");let p=o-g,d=g-s,u=e-w,r=i-w,l=1/(u*p+d*r),I=h-w,C=n-g,R=(u*C+d*I)*l,O=(-r*C+p*I)*l,W=1-R-O;return f(c)?(c.x=R,c.y=O,c.z=W,c):new A(R,O,W)};ne.computeLineSegmentLineSegmentIntersection=function(n,h,o,i,s,e,g,w,c){q.typeOf.number("x00",n),q.typeOf.number("y00",h),q.typeOf.number("x01",o),q.typeOf.number("y01",i),q.typeOf.number("x10",s),q.typeOf.number("y10",e),q.typeOf.number("x11",g),q.typeOf.number("y11",w);let p=(g-s)*(h-e)-(w-e)*(n-s),d=(o-n)*(h-e)-(i-h)*(n-s),u=(w-e)*(o-n)-(g-s)*(i-h);if(u===0)return;let r=p/u,l=d/u;if(r>=0&&r<=1&&l>=0&&l<=1)return f(c)||(c=new Z),c.x=n+r*(o-n),c.y=h+r*(i-h),c};var ie=ne;var a=32767,z=a/2|0,Me=[],ze=[],Xe=[],te=new Ie,E=new A,Ke=[],We=[],Ye=[],Le=[],_e=[],Je=new A,Qe=new de,Ze=new ue,Ge=new Z,$e=new A;function je(n,h){let o=n.isEastChild,i=n.isNorthChild,s=o?z:0,e=o?a:z,g=i?z:0,w=i?a:z,c=Ke,p=We,d=Ye,u=_e;c.length=0,p.length=0,d.length=0,u.length=0;let r=Le;r.length=0;let l={},I=n.vertices,C=n.indices;C=C.subarray(0,n.indexCountWithoutSkirts);let R=Ne.clone(n.encoding),O=R.hasVertexNormals,W=0,Y=n.vertexCountWithoutSkirts,se=n.minimumHeight,ae=n.maximumHeight,D=new Array(Y),G=new Array(Y),L=new Array(Y),F=O?new Array(Y*2):void 0,$=20,H,t,k,x,y;for(t=0,k=0;t<Y;++t,k+=2){let v=R.decodeTextureCoordinates(I,t,Ge);if(H=R.decodeHeight(I,t),x=N.clamp(v.x*a|0,0,a),y=N.clamp(v.y*a|0,0,a),L[t]=N.clamp((H-se)/(ae-se)*a|0,0,a),x<$&&(x=0),y<$&&(y=0),a-x<$&&(x=a),a-y<$&&(y=a),D[t]=x,G[t]=y,O){let Q=R.getOctEncodedNormal(I,t,$e);F[k]=Q.x,F[k+1]=Q.y}(o&&x>=z||!o&&x<=z)&&(i&&y>=z||!i&&y<=z)&&(l[t]=W,c.push(x),p.push(y),d.push(L[t]),O&&(u.push(F[k]),u.push(F[k+1])),++W)}let T=[];T.push(new m),T.push(new m),T.push(new m);let B=[];B.push(new m),B.push(new m),B.push(new m);let b,j;for(t=0;t<C.length;t+=3){let v=C[t],Q=C[t+1],Be=C[t+2],De=D[v],Fe=D[Q],ke=D[Be];T[0].initializeIndexed(D,G,L,F,v),T[1].initializeIndexed(D,G,L,F,Q),T[2].initializeIndexed(D,G,L,F,Be);let P=ie.clipTriangleAtAxisAlignedThreshold(z,o,De,Fe,ke,Me);b=0,!(b>=P.length)&&(b=B[0].initializeFromClipResult(P,b,T),!(b>=P.length)&&(b=B[1].initializeFromClipResult(P,b,T),!(b>=P.length)&&(b=B[2].initializeFromClipResult(P,b,T),j=ie.clipTriangleAtAxisAlignedThreshold(z,i,B[0].getV(),B[1].getV(),B[2].getV(),ze),Oe(c,p,d,u,r,l,j,B,O),b<P.length&&(B[2].clone(B[1]),B[2].initializeFromClipResult(P,b,T),j=ie.clipTriangleAtAxisAlignedThreshold(z,i,B[0].getV(),B[1].getV(),B[2].getV(),ze),Oe(c,p,d,u,r,l,j,B,O)))))}let He=o?-a:0,qe=i?-a:0,me=[],ge=[],le=[],we=[],U=Number.MAX_VALUE,_=-U,M=Xe;M.length=0;let re=Ce.clone(n.ellipsoid),J=Se.clone(n.childRectangle),Ee=J.north,Re=J.south,ce=J.east,xe=J.west;for(ce<xe&&(ce+=N.TWO_PI),t=0;t<c.length;++t)x=Math.round(c[t]),x<=s?(me.push(t),x=0):x>=e?(le.push(t),x=a):x=x*2+He,c[t]=x,y=Math.round(p[t]),y<=g?(ge.push(t),y=0):y>=w?(we.push(t),y=a):y=y*2+qe,p[t]=y,H=N.lerp(se,ae,d[t]/a),H<U&&(U=H),H>_&&(_=H),d[t]=H,te.longitude=N.lerp(xe,ce,x/a),te.latitude=N.lerp(Re,Ee,y/a),te.height=H,re.cartographicToCartesian(te,E),M.push(E.x),M.push(E.y),M.push(E.z);let he=de.fromVertices(M,A.ZERO,3,Qe),Ue=ue.fromRectangle(J,U,_,re,Ze),ve=new be(re).computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(he.center,M,3,he.center,U,Je),Pe=_-U,X=new Uint16Array(c.length+p.length+d.length);for(t=0;t<c.length;++t)X[t]=c[t];let fe=c.length;for(t=0;t<p.length;++t)X[fe+t]=p[t];for(fe+=p.length,t=0;t<d.length;++t)X[fe+t]=a*(d[t]-U)/Pe;let pe=Ve.createTypedArray(c.length,r),ye;if(O){let v=new Uint8Array(u);h.push(X.buffer,pe.buffer,v.buffer),ye=v.buffer}else h.push(X.buffer,pe.buffer);return{vertices:X.buffer,encodedNormals:ye,indices:pe.buffer,minimumHeight:U,maximumHeight:_,westIndices:me,southIndices:ge,eastIndices:le,northIndices:we,boundingSphere:he,orientedBoundingBox:Ue,horizonOcclusionPoint:ve}}function m(){this.vertexBuffer=void 0,this.index=void 0,this.first=void 0,this.second=void 0,this.ratio=void 0}m.prototype.clone=function(n){return f(n)||(n=new m),n.uBuffer=this.uBuffer,n.vBuffer=this.vBuffer,n.heightBuffer=this.heightBuffer,n.normalBuffer=this.normalBuffer,n.index=this.index,n.first=this.first,n.second=this.second,n.ratio=this.ratio,n};m.prototype.initializeIndexed=function(n,h,o,i,s){this.uBuffer=n,this.vBuffer=h,this.heightBuffer=o,this.normalBuffer=i,this.index=s,this.first=void 0,this.second=void 0,this.ratio=void 0};m.prototype.initializeFromClipResult=function(n,h,o){let i=h+1;return n[h]!==-1?o[n[h]].clone(this):(this.vertexBuffer=void 0,this.index=void 0,this.first=o[n[i]],++i,this.second=o[n[i]],++i,this.ratio=n[i],++i),i};m.prototype.getKey=function(){return this.isIndexed()?this.index:JSON.stringify({first:this.first.getKey(),second:this.second.getKey(),ratio:this.ratio})};m.prototype.isIndexed=function(){return f(this.index)};m.prototype.getH=function(){return f(this.index)?this.heightBuffer[this.index]:N.lerp(this.first.getH(),this.second.getH(),this.ratio)};m.prototype.getU=function(){return f(this.index)?this.uBuffer[this.index]:N.lerp(this.first.getU(),this.second.getU(),this.ratio)};m.prototype.getV=function(){return f(this.index)?this.vBuffer[this.index]:N.lerp(this.first.getV(),this.second.getV(),this.ratio)};var K=new Z,oe=-1,en=[new A,new A],nn=[new A,new A];function Te(n,h){++oe;let o=en[oe],i=nn[oe];return o=ee.octDecode(n.first.getNormalX(),n.first.getNormalY(),o),i=ee.octDecode(n.second.getNormalX(),n.second.getNormalY(),i),E=A.lerp(o,i,n.ratio,E),A.normalize(E,E),ee.octEncode(E,h),--oe,h}m.prototype.getNormalX=function(){return f(this.index)?this.normalBuffer[this.index*2]:(K=Te(this,K),K.x)};m.prototype.getNormalY=function(){return f(this.index)?this.normalBuffer[this.index*2+1]:(K=Te(this,K),K.y)};var S=[];S.push(new m);S.push(new m);S.push(new m);S.push(new m);function Oe(n,h,o,i,s,e,g,w,c){if(g.length===0)return;let p=0,d=0;for(;d<g.length;)d=S[p++].initializeFromClipResult(g,d,w);for(let u=0;u<p;++u){let r=S[u];if(r.isIndexed())r.newIndex=e[r.index],r.uBuffer=n,r.vBuffer=h,r.heightBuffer=o,c&&(r.normalBuffer=i);else{let l=r.getKey();if(f(e[l]))r.newIndex=e[l];else{let I=n.length;n.push(r.getU()),h.push(r.getV()),o.push(r.getH()),c&&(i.push(r.getNormalX()),i.push(r.getNormalY())),r.newIndex=I,e[l]=I}}}p===3?(s.push(S[0].newIndex),s.push(S[1].newIndex),s.push(S[2].newIndex)):p===4&&(s.push(S[0].newIndex),s.push(S[1].newIndex),s.push(S[2].newIndex),s.push(S[0].newIndex),s.push(S[2].newIndex),s.push(S[3].newIndex))}var An=Ae(je);export{An as default};